Name: series-workflowz6lpf Phase: Succeeded StartedAt: 2026-08-11 01:10:09 +0000 UTC FinishedAt: 2026-08-11 05:06:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6lpf[0] Phase: Succeeded StartedAt: 2026-08-11 01:10:09 +0000 UTC FinishedAt: 2026-08-11 01:14:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6lpf[0].run-triage Phase: Succeeded StartedAt: 2026-08-11 01:10:09 +0000 UTC FinishedAt: 2026-08-11 01:14:20 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "f5098b6bae761e346ebcd9da7f95622c04733cff", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DRM_VKMS", "DRM_FBDEV_EMULATION" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "f5098b6bae761e346ebcd9da7f95622c04733cff", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DRM_VKMS", "DRM_FBDEV_EMULATION" ], "series_id": "3a6e4ca1-6efd-4128-bc62-1793fc793b0c" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "drm_client_modeset_wait_for_vblank", "drm_crtc_wait_one_vblank", "drm_crtc_wait_one_vblank_internal" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDAxOjExPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RSTV9WS01TJiMzNDssCiAgICAmIzM0O0RSTV9GQkRFVl9FTVVMQVRJT04mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rJiMzNDssCiAgICAmIzM0O2RybV9jcnRjX3dhaXRfb25lX3ZibGFuayYjMzQ7LAogICAgJiMzNDtkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwmIzM0OwogIF0sCiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZWZhY3RvcnMgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AgYnkgZXh0cmFjdGluZyBpdHMgY29yZSB3YWl0aW5nIGxvZ2ljIGludG8gYSBuZXcgaW50ZXJuYWwgZnVuY3Rpb24gYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAuIFRoaXMgYWxsb3dzIGNhbGxlcnMgbGlrZSBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgdGhhdCBhbHJlYWR5IGhvbGQgYSB2YmxhbmsgcmVmZXJlbmNlIHRvIHdhaXQgd2l0aG91dCBhY3F1aXJpbmcgYW5kIHJlbGVhc2luZyB0aGUgcmVmZXJlbmNlIGFnYWluLiBUaGUgY2hhbmdlcyBhcmUgcHVyZWx5IHJlbGF0ZWQgdG8gY29udHJvbCBmbG93LCByZWZlcmVuY2UgY291bnRpbmcsIGFuZCB3YWl0IHF1ZXVlcy4gVGhlcmUgYXJlIG5vIG5ldyBkYXRhIHN0cnVjdHVyZXMgYWxsb2NhdGVkLCBubyBzdHJ1Y3R1cmVzIGNvcGllZCB0byB1c2VyIHNwYWNlLCBhbmQgbm8gdW5pbml0aWFsaXplZCBtZW1vcnkgcmlza3MgaW50cm9kdWNlZC4gQW55IHBvdGVudGlhbCBidWdzIGludHJvZHVjZWQgYnkgdGhpcyBwYXRjaCAoc3VjaCBhcyB1c2UtYWZ0ZXItZnJlZSBkdWUgdG8gaW5jb3JyZWN0IHJlZmVyZW5jZSBjb3VudGluZykgd291bGQgYmUgY2F1Z2h0IGJ5IEtBU0FOIG9yIHN0YW5kYXJkIGtlcm5lbCBkZWJ1Z2dpbmcgdG9vbHMuIFRoZXJlZm9yZSwgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCBuZWNlc3NhcnkuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlZmFjdG9ycyB0aGUgdmJsYW5rIHdhaXRpbmcgbG9naWMgaW4gdGhlIERSTSBjb3JlIHRvIGF2b2lkIG5lc3RlZCBgZHJtX2NydGNfdmJsYW5rX2dldGAgY2FsbHMsIGludHJvZHVjaW5nIGEgbmV3IGludGVybmFsIGhlbHBlciBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYC4gVGhpcyBmaXhlcyBhIHBvdGVudGlhbCBpc3N1ZSBpbiBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgYW5kIG1vZGlmaWVzIHRoZSBleGVjdXRpb24gZmxvdyBvZiBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGZiZGV2IGlvY3RscyAoZS5nLiwgYEZCSU9fV0FJVEZPUlZTWU5DYCkgYW5kIERSTSBhdG9taWMgY29tbWl0cy4gVGhlIGNoYW5nZXMgaGF2ZSBhIGZ1bmN0aW9uYWwgaW1wYWN0IG9uIHRoZSBEUk0gY29yZSBhbmQgYXJlIHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTE8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBkNDBkZWNjY2NmZGMyODQ2MjJjMjM2NmVhYjgyMmIyNzcwNTM2ZWQ4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgMTEgMDE6MTE6NTggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jXG5pbmRleCAwMDgwYThlOTU1NmE1Li43ZmYwZjI0YTBmNTAyIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmNcbkBAIC0xMzI4LDcgJiM0MzsxMzI4LDcgQEAgaW50IGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92Ymxhbmsoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIHVuc2lnbmVkIGlcbiBcdCAqL1xuIFx0cmV0ID0gZHJtX2NydGNfdmJsYW5rX2dldChjcnRjKTtcbiBcdGlmICghcmV0KSB7XG4tXHRcdGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhjcnRjKTtcbiYjNDM7XHRcdGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTtcbiBcdFx0ZHJtX2NydGNfdmJsYW5rX3B1dChjcnRjKTtcbiBcdH1cbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmggYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmhcbmluZGV4IGY4OTNiMWUzYTU5NmUuLjZmZDMzNjcyZDIwNmEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaFxuQEAgLTExNSw2ICYjNDM7MTE1LDcgQEAgdm9pZCBkcm1fdmJsYW5rX2Rpc2FibGVfYW5kX3NhdmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpO1xuIGludCBkcm1fdmJsYW5rX2dldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7XG4gdm9pZCBkcm1fdmJsYW5rX3B1dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7XG4gdTY0IGRybV92YmxhbmtfY291bnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpO1xuJiM0MztpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7XG4gXG4gLyogZHJtX3ZibGFua193b3JrLmMgKi9cbiBzdGF0aWMgaW5saW5lIHZvaWQgZHJtX3ZibGFua19mbHVzaF93b3JrZXIoc3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jXG5pbmRleCBmOTBmYjJkMTNlNDIzLi45Y2FjNzAxM2I0YzljIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuY1xuQEAgLTEyOTcsNiAmIzQzOzEyOTcsMzIgQEAgdm9pZCBkcm1fY3J0Y192YmxhbmtfcHV0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcbiB9XG4gRVhQT1JUX1NZTUJPTChkcm1fY3J0Y192YmxhbmtfcHV0KTtcbiBcbiYjNDM7LyoqXG4mIzQzOyAqIGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbCAtIHdhaXQgZm9yIG9uZSB2YmxhbmtcbiYjNDM7ICogQGNydGM6IERSTSBjcnRjXG4mIzQzOyAqXG4mIzQzOyAqIFRoaXMgd2FpdHMgZm9yIG9uZSB2YmxhbmsgdG8gcGFzcyBvbiBAY3J0YywgdXNpbmcgdGhlIGlycSBkcml2ZXIgaW50ZXJmYWNlcy5cbiYjNDM7ICogRXZlcnkgY2FsbGVyIG11c3QgaG9sZCBhIHZibGFuayByZWZlcmVuY2UgYWNyb3NzIHRoZSBjb21wbGV0ZSB3YWl0LlxuJiM0MzsgKlxuJiM0MzsgKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIG9uIGZhaWx1cmVzLlxuJiM0MzsgKi9cbiYjNDM7aW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy1cdTAwM2VkZXY7XG4mIzQzO1x0aW50IHBpcGUgPSBkcm1fY3J0Y19pbmRleChjcnRjKTtcbiYjNDM7XHRzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2YmxhbmsgPSBkcm1fY3J0Y192YmxhbmtfY3J0YyhjcnRjKTtcbiYjNDM7XHRpbnQgcmV0O1xuJiM0MztcdHU2NCBsYXN0O1xuJiM0MztcbiYjNDM7XHRsYXN0ID0gZHJtX3ZibGFua19jb3VudChkZXYsIHBpcGUpO1xuJiM0MztcbiYjNDM7XHRyZXQgPSB3YWl0X2V2ZW50X3RpbWVvdXQodmJsYW5rLVx1MDAzZXF1ZXVlLFxuJiM0MztcdFx0XHRcdCBsYXN0ICE9IGRybV92YmxhbmtfY291bnQoZGV2LCBwaXBlKSxcbiYjNDM7XHRcdFx0XHQgbXNlY3NfdG9famlmZmllcygxMDAwKSk7XG4mIzQzO1xuJiM0MztcdHJldHVybiByZXQgPyAwIDogLUVUSU1FRE9VVDtcbiYjNDM7fVxuJiM0MztcbiAvKipcbiAgKiBkcm1fY3J0Y193YWl0X29uZV92YmxhbmsgLSB3YWl0IGZvciBvbmUgdmJsYW5rXG4gICogQGNydGM6IERSTSBjcnRjXG5AQCAtMTMxMSwyNiAmIzQzOzEzMzcsMjAgQEAgaW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpXG4ge1xuIFx0c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtXHUwMDNlZGV2O1xuIFx0aW50IHBpcGUgPSBkcm1fY3J0Y19pbmRleChjcnRjKTtcbi1cdHN0cnVjdCBkcm1fdmJsYW5rX2NydGMgKnZibGFuayA9IGRybV9jcnRjX3ZibGFua19jcnRjKGNydGMpO1xuIFx0aW50IHJldDtcbi1cdHU2NCBsYXN0O1xuIFxuIFx0cmV0ID0gZHJtX3ZibGFua19nZXQoZGV2LCBwaXBlKTtcbiBcdGlmIChkcm1fV0FSTihkZXYsIHJldCwgXCYjMzQ7dmJsYW5rIG5vdCBhdmFpbGFibGUgb24gY3J0YyAlaSwgcmV0PSVpXFxuXCYjMzQ7LFxuIFx0XHQgICAgIHBpcGUsIHJldCkpXG4gXHRcdHJldHVybiByZXQ7XG4gXG4tXHRsYXN0ID0gZHJtX3ZibGFua19jb3VudChkZXYsIHBpcGUpO1xuLVxuLVx0cmV0ID0gd2FpdF9ldmVudF90aW1lb3V0KHZibGFuay1cdTAwM2VxdWV1ZSxcbi1cdFx0XHRcdCBsYXN0ICE9IGRybV92YmxhbmtfY291bnQoZGV2LCBwaXBlKSxcbi1cdFx0XHRcdCBtc2Vjc190b19qaWZmaWVzKDEwMDApKTtcbiYjNDM7XHRyZXQgPSBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoY3J0Yyk7XG4gXG4tXHRkcm1fV0FSTihkZXYsIHJldCA9PSAwLCBcJiMzNDt2Ymxhbmsgd2FpdCB0aW1lZCBvdXQgb24gY3J0YyAlaVxcblwmIzM0OywgcGlwZSk7XG4mIzQzO1x0ZHJtX1dBUk4oZGV2LCByZXQgPT0gLUVUSU1FRE9VVCwgXCYjMzQ7dmJsYW5rIHdhaXQgdGltZWQgb3V0IG9uIGNydGMgJWlcXG5cJiMzNDssIHBpcGUpO1xuIFxuIFx0ZHJtX3ZibGFua19wdXQoZGV2LCBwaXBlKTtcbiBcbi1cdHJldHVybiByZXQgPyAwIDogLUVUSU1FRE9VVDtcbiYjNDM7XHRyZXR1cm4gcmV0O1xuIH1cbiBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayk7XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTE8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RSTV9WS01TJiMzNDssCiAgICAmIzM0O0RSTV9GQkRFVl9FTVVMQVRJT04mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rJiMzNDssCiAgICAmIzM0O2RybV9jcnRjX3dhaXRfb25lX3ZibGFuayYjMzQ7LAogICAgJiMzNDtkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVmYWN0b3JzIHRoZSB2Ymxhbmsgd2FpdGluZyBsb2dpYyBpbiB0aGUgRFJNIGNvcmUgdG8gYXZvaWQgbmVzdGVkIGBkcm1fY3J0Y192YmxhbmtfZ2V0YCBjYWxscywgaW50cm9kdWNpbmcgYSBuZXcgaW50ZXJuYWwgaGVscGVyIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgLiBUaGlzIGZpeGVzIGEgcG90ZW50aWFsIGlzc3VlIGluIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBhbmQgbW9kaWZpZXMgdGhlIGV4ZWN1dGlvbiBmbG93IG9mIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgLiBUaGVzZSBmdW5jdGlvbnMgYXJlIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgZmJkZXYgaW9jdGxzIChlLmcuLCBgRkJJT19XQUlURk9SVlNZTkNgKSBhbmQgRFJNIGF0b21pYyBjb21taXRzLiBUaGUgY2hhbmdlcyBoYXZlIGEgZnVuY3Rpb25hbCBpbXBhY3Qgb24gdGhlIERSTSBjb3JlIGFuZCBhcmUgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGQ0MGRlY2NjY2ZkYzI4NDYyMmMyMzY2ZWFiODIyYjI3NzA1MzZlZDgKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEF1ZyAxMSAwMToxMTo1OCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYwppbmRleCAwMDgwYThlOTU1NmE1Li43ZmYwZjI0YTBmNTAyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jCkBAIC0xMzI4LDcgJiM0MzsxMzI4LDcgQEAgaW50IGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92Ymxhbmsoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIHVuc2lnbmVkIGkKIAkgKi8KIAlyZXQgPSBkcm1fY3J0Y192YmxhbmtfZ2V0KGNydGMpOwogCWlmICghcmV0KSB7Ci0JCWRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhjcnRjKTsKJiM0MzsJCWRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTsKIAkJZHJtX2NydGNfdmJsYW5rX3B1dChjcnRjKTsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaCBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaAppbmRleCBmODkzYjFlM2E1OTZlLi42ZmQzMzY3MmQyMDZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCkBAIC0xMTUsNiAmIzQzOzExNSw3IEBAIHZvaWQgZHJtX3ZibGFua19kaXNhYmxlX2FuZF9zYXZlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTsKIGludCBkcm1fdmJsYW5rX2dldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7CiB2b2lkIGRybV92YmxhbmtfcHV0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTsKIHU2NCBkcm1fdmJsYW5rX2NvdW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTsKJiM0MztpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7CiAKIC8qIGRybV92Ymxhbmtfd29yay5jICovCiBzdGF0aWMgaW5saW5lIHZvaWQgZHJtX3ZibGFua19mbHVzaF93b3JrZXIoc3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMKaW5kZXggZjkwZmIyZDEzZTQyMy4uOWNhYzcwMTNiNGM5YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jCkBAIC0xMjk3LDYgJiM0MzsxMjk3LDMyIEBAIHZvaWQgZHJtX2NydGNfdmJsYW5rX3B1dChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB9CiBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3ZibGFua19wdXQpOwogCiYjNDM7LyoqCiYjNDM7ICogZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsIC0gd2FpdCBmb3Igb25lIHZibGFuawomIzQzOyAqIEBjcnRjOiBEUk0gY3J0YwomIzQzOyAqCiYjNDM7ICogVGhpcyB3YWl0cyBmb3Igb25lIHZibGFuayB0byBwYXNzIG9uIEBjcnRjLCB1c2luZyB0aGUgaXJxIGRyaXZlciBpbnRlcmZhY2VzLgomIzQzOyAqIEV2ZXJ5IGNhbGxlciBtdXN0IGhvbGQgYSB2YmxhbmsgcmVmZXJlbmNlIGFjcm9zcyB0aGUgY29tcGxldGUgd2FpdC4KJiM0MzsgKgomIzQzOyAqIFJldHVybnM6IDAgb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3Igb24gZmFpbHVyZXMuCiYjNDM7ICovCiYjNDM7aW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0mZ3Q7ZGV2OwomIzQzOwlpbnQgcGlwZSA9IGRybV9jcnRjX2luZGV4KGNydGMpOwomIzQzOwlzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2YmxhbmsgPSBkcm1fY3J0Y192YmxhbmtfY3J0YyhjcnRjKTsKJiM0MzsJaW50IHJldDsKJiM0MzsJdTY0IGxhc3Q7CiYjNDM7CiYjNDM7CWxhc3QgPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSk7CiYjNDM7CiYjNDM7CXJldCA9IHdhaXRfZXZlbnRfdGltZW91dCh2YmxhbmstJmd0O3F1ZXVlLAomIzQzOwkJCQkgbGFzdCAhPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSksCiYjNDM7CQkJCSBtc2Vjc190b19qaWZmaWVzKDEwMDApKTsKJiM0MzsKJiM0MzsJcmV0dXJuIHJldCA/IDAgOiAtRVRJTUVET1VUOwomIzQzO30KJiM0MzsKIC8qKgogICogZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rIC0gd2FpdCBmb3Igb25lIHZibGFuawogICogQGNydGM6IERSTSBjcnRjCkBAIC0xMzExLDI2ICYjNDM7MTMzNywyMCBAQCBpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0mZ3Q7ZGV2OwogCWludCBwaXBlID0gZHJtX2NydGNfaW5kZXgoY3J0Yyk7Ci0Jc3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rID0gZHJtX2NydGNfdmJsYW5rX2NydGMoY3J0Yyk7CiAJaW50IHJldDsKLQl1NjQgbGFzdDsKIAogCXJldCA9IGRybV92YmxhbmtfZ2V0KGRldiwgcGlwZSk7CiAJaWYgKGRybV9XQVJOKGRldiwgcmV0LCAmIzM0O3ZibGFuayBub3QgYXZhaWxhYmxlIG9uIGNydGMgJWksIHJldD0laVxuJiMzNDssCiAJCSAgICAgcGlwZSwgcmV0KSkKIAkJcmV0dXJuIHJldDsKIAotCWxhc3QgPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSk7Ci0KLQlyZXQgPSB3YWl0X2V2ZW50X3RpbWVvdXQodmJsYW5rLSZndDtxdWV1ZSwKLQkJCQkgbGFzdCAhPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSksCi0JCQkJIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOwomIzQzOwlyZXQgPSBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoY3J0Yyk7CiAKLQlkcm1fV0FSTihkZXYsIHJldCA9PSAwLCAmIzM0O3ZibGFuayB3YWl0IHRpbWVkIG91dCBvbiBjcnRjICVpXG4mIzM0OywgcGlwZSk7CiYjNDM7CWRybV9XQVJOKGRldiwgcmV0ID09IC1FVElNRURPVVQsICYjMzQ7dmJsYW5rIHdhaXQgdGltZWQgb3V0IG9uIGNydGMgJWlcbiYjMzQ7LCBwaXBlKTsKIAogCWRybV92YmxhbmtfcHV0KGRldiwgcGlwZSk7CiAKLQlyZXR1cm4gcmV0ID8gMCA6IC1FVElNRURPVVQ7CiYjNDM7CXJldHVybiByZXQ7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayk7CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE0OQoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDMwMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQb3RlbnRpYWwgRnV6emluZyBUYXJnZXQ6IERSTSBDbGllbnQgTW9kZXNldCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgYSBwYXRjaCBoZXJlIHRoYXQmIzM5O3MgdG91Y2hpbmcgYGRybV9jbGllbnRfbW9kZXNldC5jYCwgYGRybV9pbnRlcm5hbC5oYCwgYW5kIGBkcm1fdmJsYW5rLmNgLiBNeSBpbml0aWFsIHJlYWQgc2F5cyBpdCYjMzk7cyByZWZhY3RvcmluZyBzb21lIHZibGFuayB3YWl0aW5nIGxvZ2ljLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIHB1bGxpbmcgb3V0IHRoZSB3YWl0aW5nIHBhcnQgZnJvbSBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYCBpbnRvIGEgbmV3IGludGVybmFsIGZ1bmN0aW9uLCBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYC4gVGhlIGtleSBjaGFuZ2Ugc2VlbXMgdG8gYmUgdGhhdCBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgaXMgbm93IGdvaW5nIHRvIHVzZSB0aGlzIGludGVybmFsIGZ1bmN0aW9uIGluc3RlYWQgb2YgdGhlIG9yaWdpbmFsIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgLgoKTXkgZmlyc3QgZ3V0IHJlYWN0aW9uIGlzLCAmIzM0O0htbSwgcG90ZW50aWFsbHkgaW50ZXJlc3RpbmcgZm9yIGZ1enppbmcuJiMzNDsgSXQmIzM5O3MgY2hhbmdpbmcgdGhlIGV4ZWN1dGlvbiBwYXRoIG9mIHRob3NlIHR3byBmdW5jdGlvbnMsIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBhbmQgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AuIFRoZSBjcml0aWNhbCBwb2ludCBoZXJlIGlzIHRoYXQgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIGFscmVhZHkgY2FsbHMgYGRybV9jcnRjX3ZibGFua19nZXRgIGJlZm9yZSBpdCBzdGFydHMgd2FpdGluZywgYW5kIHRoZSByZWZhY3RvciBpcyBhdm9pZGluZyBhICpuZXN0ZWQqIGNhbGwgdG8gYGRybV9jcnRjX3ZibGFua19nZXRgLiBUaGF0IHNtZWxscyBsaWtlIGEgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uIG9yIHNvbWUgdGltaW5nLXJlbGF0ZWQgYnVnIGNvdWxkIGJlIGV4cG9zZWQgd2l0aCB0aGUgbmV3IGFwcHJvYWNoLgoKQnV0IHdhaXQgYSBtaW51dGUuLi4gYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgLi4uIHRoYXQmIzM5O3MgcGFydCBvZiBEUk0gY2xpZW50IG1vZGVzZXQsIHJpZ2h0PyBBbmQgaXNuJiMzOTt0ICp0aGF0KiBhY2Nlc3NpYmxlIGZyb20gdXNlcnNwYWNlPyBUaHJvdWdoIERSTSBpb2N0bHMgb3Igc3lzZnM/IFllYWgsIEkmIzM5O20gcHJldHR5IHN1cmUgaXQgaXMuIEFscmlnaHQsIEkgbmVlZCB0byBjb25maXJtIHdoZXJlIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBpcyBhY3R1YWxseSBjYWxsZWQuIFRoYXQmIzM5O3MgYSBjcnVjaWFsIHBpZWNlIG9mIGluZm9ybWF0aW9uIGJlZm9yZSBJIG1ha2UgYSBjYWxsIG9uIGZ1enppbmcuIEdvdHRhIHNlZSB3aGF0IHRoZSBjYWxsIHNpdGVzIGxvb2sgbGlrZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAwMToxMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYz0xMjk1PUVYUE9SVF9TWU1CT0woZHJtX2NsaWVudF9tb2Rlc2V0X2RwbXMpO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjk3LS8qKlxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyOTg6ICogZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuaygpIC0gV2FpdCBmb3IgdGhlIG5leHQgVkJMQU5LIHRvIG9jY3VyXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTI5OS0gKiBAY2xpZW50OiBEUk0gY2xpZW50XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEzMDgtICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTMwOTppbnQgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayhzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgdW5zaWduZWQgaW50IGNydGNfaW5kZXgpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTMxMC17XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEzMzgtfVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEzMzk6RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzQwLVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9MzE1PXN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZmJfZGlydHkoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlcilcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTMyNi1cdGlmIChjcnRjX2luZGV4IFx1MDAzZT0gMClcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MzI3Olx0XHRkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKFx1MDAyNmhlbHBlci1cdTAwM2VjbGllbnQsIGNydGNfaW5kZXgpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zMjgtXHRtdXRleF91bmxvY2soXHUwMDI2aGVscGVyLVx1MDAzZWxvY2spO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9OTg0PWludCBkcm1fZmJfaGVscGVyX2lvY3RsKHN0cnVjdCBmYl9pbmZvICppbmZvLCB1bnNpZ25lZCBpbnQgY21kLFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTAwOS1cdFx0ICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjEwMTA6XHRcdHJldCA9IGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmsoXHUwMDI2ZmJfaGVscGVyLVx1MDAzZWNsaWVudCwgMCk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEwMTEtXHRcdGJyZWFrO1xuLS1cbmluY2x1ZGUvZHJtL2RybV9jbGllbnQuaD0yMTk9aW50IGRybV9jbGllbnRfbW9kZXNldF9kcG1zKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCBpbnQgbW9kZSk7XG5pbmNsdWRlL2RybS9kcm1fY2xpZW50Lmg6MjIwOmludCBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCB1bnNpZ25lZCBpbnQgY3J0Y19pbmRleCk7XG5pbmNsdWRlL2RybS9kcm1fY2xpZW50LmgtMjIxLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDAxOjEyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ2MDAKCQkJCQkJCW91dHB1dDogMjIKCQkJCQkJCXRob3VnaHRzOiAzMDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgRFJNL0ZCREVWIEludGVyYWN0aW9uIEJ1ZyBGaXgqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgZml4IHJlbGF0ZWQgdG8gYGRybV9mYl9oZWxwZXJfaW9jdGxgIGFuZCBgZHJtX2ZiX2hlbHBlcl9mYl9kaXJ0eWAuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRoYXQgdGhpcyBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UsIHNwZWNpZmljYWxseSB0aHJvdWdoIHRoZSBgRkJJT19XQUlURk9SVlNZTkNgIGlvY3RsLCBhbmQgcG9zc2libHkgb3RoZXJzLiBHaXZlbiBzeXprYWxsZXImIzM5O3MgZnV6emluZyBvZiB0aGUgRFJNIHN1YnN5c3RlbSwgbGlrZSB3aXRoIHZnZW0gYW5kIHZrbXMsIHRoaXMgaXMgZGVmaW5pdGVseSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSB0cmlnZ2VyZWQgaW4gYSBmdXp6aW5nIGNhbXBhaWduLgoKVGhlIGNvcmUgb2YgdGhlIGlzc3VlIHNlZW1zIHRvIGJlIHRoZSBvcmRlciBvZiBvcGVyYXRpb25zIGluIHdhaXRpbmcgZm9yIGEgdmJsYW5rLiBTcGVjaWZpY2FsbHksIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIHdhcyBiZWluZyBjYWxsZWQgKmFmdGVyKiBhIGBkcm1fY3J0Y192YmxhbmtfZ2V0YCwgd2hpY2ggaW4gdHVybiwgd291bGQgY2FsbCBgZHJtX3ZibGFua19nZXRgICphZ2FpbiouIFRoYXQmIzM5O3MgaW5lZmZpY2llbnQgYW5kIHBvdGVudGlhbGx5IGJ1Z2d5LiBUaGlzIGlzIGEgY2xlYXIgZnVuY3Rpb25hbCBjaGFuZ2UsIG5vdCBqdXN0IGEgY29zbWV0aWMgb25lLgoKTXkgbmV4dCBzdGVwIGlzIHRvIGRpZyBpbnRvIHRoZSByZWxldmFudCBmdW5jdGlvbnMuIExldCYjMzk7cyBsb29rIGF0IGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgIGFuZCBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYC4gYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AgaXMgdGhlIGV4cG9ydGVkLCBwdWJsaWMgaW50ZXJmYWNlLCB1c2VkIGJ5IG51bWVyb3VzIERSTSBkcml2ZXJzLiBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYCBpcyB0aGUgaW50ZXJuYWwgaGVscGVyIGZ1bmN0aW9uLiBFdmVuIHRob3VnaCBpdCYjMzk7cyBpbnRlcm5hbCwgdGhlIGZhY3QgdGhhdCBpdCBpc24mIzM5O3QgYHN0YXRpY2AgbWVhbnMgaXQgdGVjaG5pY2FsbHkgaGFzIGEgc3ltYm9sLCBzbyBJIHNob3VsZCBpbmNsdWRlIGl0IGluIG15IHJldmlldy4KCkkgd2FudCB0byBmb2N1cyBvbiB0aGVzZSBzeW1ib2xzIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgaXMgaGFwcGVuaW5nOgoqICAgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgCiogICBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYAoqICAgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAKCkZpbmFsbHksIGEgcXVpY2sgY2hlY2sgb2YgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRFJNIGFuZCBGQl9IRUxQRVIgaXMgaW4gb3JkZXIsIGp1c3QgdG8gbWFrZSBzdXJlIHdlJiMzOTtyZSBub3QgZGVhbGluZyB3aXRoIHNvbWUgdW51c3VhbCBjb25maWd1cmF0aW9uIGRlcGVuZGVuY3kuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIERSTV9GQkRFVl9FTVVMQVRJT04mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZz0yOD1tZW51IFwmIzM0O1N1cHBvcnRlZCBEUk0gY2xpZW50c1wmIzM0O1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMzAtXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjMxOmNvbmZpZyBEUk1fRkJERVZfRU1VTEFUSU9OXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMyLVx0Ym9vbCBcJiMzNDtFbmFibGUgbGVnYWN5IGZiZGV2IHN1cHBvcnQgZm9yIHlvdXIgbW9kZXNldHRpbmcgZHJpdmVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTQ2MAoJCQkJCQkJb3V0cHV0OiAxOQoJCQkJCQkJdGhvdWdodHM6IDQwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBmcm9tIGFuIGV4cGVydCYjMzk7cyBwZXJzcGVjdGl2ZToKCioqRGl2aW5nIGludG8gdGhlIEZyYW1lYnVmZmVyIEVtdWxhdGlvbioqCgpIYW5nIG9uIGEgc2Vjb25k4oCmIEkmIzM5O20gc2VlaW5nIHRoaXMgYGRybV9mYl9oZWxwZXIuY2AgZmlsZSBhbmQgaXRzIGNvbXBpbGF0aW9uIHVuZGVyIGBDT05GSUdfRFJNX0ZCREVWX0VNVUxBVElPTmAuIFRoYXQmIzM5O3MgaW50ZXJlc3RpbmcsIGFuZCBpdCBpbW1lZGlhdGVseSB0cmlnZ2VycyBzb21lIGZsYWdzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aHkgdGhpcyBlbXVsYXRpb24gaXMgZXZlbiBoYXBwZW5pbmcuIExldCBtZSBxdWlja2x5IGp1bXAgb3ZlciB0byB0aGUgYGRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZWAuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGlzIGBkcm1fZmJkZXZfZW11bGF0aW9uYCBjb25maWcgb3B0aW9uIHRpZXMgaW50byB0aGUgYmlnZ2VyIHBpY3R1cmUgb2YgdGhlIERpcmVjdCBSZW5kZXJpbmcgTWFuYWdlciAoRFJNKSBhbmQgZnJhbWVidWZmZXJzLiBNeSBzcGlkZXktc2Vuc2UgdGVsbHMgbWUgdGhpcyBpcyBrZXkgdG8gaG93IHNvbWUgbGVnYWN5IGZyYW1lYnVmZmVyIGludGVyYWN0aW9ucyBhcmUgaGFuZGxlZCBpbiB0aGUgRFJNIHdvcmxkLCBhbmQgSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIHRoZSB1bmRlcmx5aW5nIGRlcGVuZGVuY2llcyBhbmQgY29uZmlndXJhdGlvbiBjaG9pY2VzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDAxOjEyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RybV9mYl9oZWxwZXImIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDE1NjggbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbkRvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3Q9MTA5PWZiZGV2IEhlbHBlciBGdW5jdGlvbnMgUmVmZXJlbmNlXG4tLVxuRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy1oZWxwZXJzLnJzdC0xMTEtXG5Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0OjExMjouLiBrZXJuZWwtZG9jOjogZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuY1xuRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy1oZWxwZXJzLnJzdC0xMTMtICAgOmRvYzogZmJkZXYgaGVscGVyc1xuRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy1oZWxwZXJzLnJzdC0xMTQtXG5Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0OjExNTouLiBrZXJuZWwtZG9jOjogaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oXG5Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0LTExNi0gICA6aW50ZXJuYWw6XG5Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0LTExNy1cbkRvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3Q6MTE4Oi4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jXG5Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0LTExOS0gICA6ZXhwb3J0OlxuLS1cbmRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZT0xNTk9ZHJtX2ttc19oZWxwZXItJChDT05GSUdfRFJNX1BBTkVMX0JSSURHRSkgJiM0Mzs9IGJyaWRnZS9wYW5lbC5vXG5kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGU6MTYwOmRybV9rbXNfaGVscGVyLSQoQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT04pICYjNDM7PSBkcm1fZmJfaGVscGVyLm9cbmRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZS0xNjEtb2JqLSQoQ09ORklHX0RSTV9LTVNfSEVMUEVSKSAmIzQzOz0gZHJtX2ttc19oZWxwZXIub1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmMtNDQtI2luY2x1ZGUgXHUwMDNjZHJtL2RybV9lZGlkLmhcdTAwM2VcbmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmM6NDU6I2luY2x1ZGUgXHUwMDNjZHJtL2RybV9mYl9oZWxwZXIuaFx1MDAzZVxuZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXkuYy00Ni0jaW5jbHVkZSBcdTAwM2Nkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaFx1MDAzZVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmM9MTc0MT1pbnQgYW1kZ3B1X2Rpc3BsYXlfc3VzcGVuZF9oZWxwZXIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpXG4tLVxuZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXkuYy0xNzc2LVxuZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXkuYzoxNzc3Olx0XHRpZiAoIWRybV9mYl9oZWxwZXJfZ2VtX2lzX2ZiKGRldi1cdTAwM2VmYl9oZWxwZXIsIGZiLVx1MDAzZW9ialswXSkpIHtcbmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmMtMTc3OC1cdFx0XHRzdHJ1Y3QgYW1kZ3B1X2JvICpyb2JqID0gZ2VtX3RvX2FtZGdwdV9ibyhmYi1cdTAwM2VvYmpbMF0pO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9rbXMuYy0zMS0jaW5jbHVkZSBcdTAwM2Nkcm0vZHJtX2Rydi5oXHUwMDNlXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfa21zLmM6MzI6I2luY2x1ZGUgXHUwMDNjZHJtL2RybV9mYl9oZWxwZXIuaFx1MDAzZVxuZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5jLTMzLSNpbmNsdWRlIFwmIzM0O2FtZGdwdV91dmQuaFwmIzM0O1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2RybS5oPTE4PXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlO1xuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZHJtLmg6MTk6c3RydWN0IGRybV9mYl9oZWxwZXI7XG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9kcm0uaDoyMDpzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9zdXJmYWNlX3NpemU7XG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9kcm0uaC0yMS1cbi0tXG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9kcm0uaD01Nz1zdHJ1Y3QgYXJtYWRhX3ByaXZhdGUge1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2RybS5oLTc4LSNpZiBkZWZpbmVkKENPTkZJR19EUk1fRkJERVZfRU1VTEFUSU9OKVxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZHJtLmg6Nzk6aW50IGFybWFkYV9mYmRldl9kcml2ZXJfZmJkZXZfcHJvYmUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiaCxcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2RybS5oOjgwOlx0XHRcdFx0ICAgIHN0cnVjdCBkcm1fZmJfaGVscGVyX3N1cmZhY2Vfc2l6ZSAqc2l6ZXMpO1xuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZHJtLmgtODEtI2RlZmluZSBBUk1BREFfRkJERVZfRFJJVkVSX09QUyBcXFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmMtMTMtI2luY2x1ZGUgXHUwMDNjZHJtL2RybV9kcnYuaFx1MDAzZVxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYzoxNDojaW5jbHVkZSBcdTAwM2Nkcm0vZHJtX2ZiX2hlbHBlci5oXHUwMDNlXG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9mYmRldi5jLTE1LSNpbmNsdWRlIFx1MDAzY2RybS9kcm1fZm91cmNjLmhcdTAwM2Vcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9mYmRldi5jPTIzPXN0YXRpYyB2b2lkIGFybWFkYV9mYmRldl9mYl9kZXN0cm95KHN0cnVjdCBmYl9pbmZvICppbmZvKVxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYy0yNC17XG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9mYmRldi5jOjI1Olx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiaCA9IGluZm8tXHUwMDNlcGFyO1xuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYy0yNi1cbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmM6Mjc6XHRkcm1fZmJfaGVscGVyX2ZpbmkoZmJoKTtcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmMtMjgtXG4tLVxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYz0zND1zdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBhcm1hZGFfZmJfb3BzID0ge1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmMtNDAtXG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9mYmRldi5jOjQxOnN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9mdW5jcyBhcm1hZGFfZmJkZXZfaGVscGVyX2Z1bmNzO1xuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYy00Mi1cbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmM6NDM6aW50IGFybWFkYV9mYmRldl9kcml2ZXJfZmJkZXZfcHJvYmUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiaCxcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmM6NDQ6XHRcdFx0XHQgICAgc3RydWN0IGRybV9mYl9oZWxwZXJfc3VyZmFjZV9zaXplICpzaXplcylcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmMtNDUte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmMtMTAxLVxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYzoxMDI6XHRkcm1fZmJfaGVscGVyX2ZpbGxfaW5mbyhpbmZvLCBmYmgsIHNpemVzKTtcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmMtMTAzLVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy01LSNpbmNsdWRlIFx1MDAzY2RybS9kcm1fZHJ2LmhcdTAwM2VcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzo2OiNpbmNsdWRlIFx1MDAzY2RybS9kcm1fZmJfaGVscGVyLmhcdTAwM2VcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy03LSNpbmNsdWRlIFx1MDAzY2RybS9kcm1fZm91cmNjLmhcdTAwM2Vcbi0tXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM9MTY9c3RhdGljIHZvaWQgZHJtX2ZiZGV2X2NsaWVudF9mcmVlKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTE3LXtcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzoxODpcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBkcm1fZmJfaGVscGVyX2Zyb21fY2xpZW50KGNsaWVudCk7XG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtMTktXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM6MjA6XHRkcm1fZmJfaGVscGVyX3VucHJlcGFyZShmYl9oZWxwZXIpO1xuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTIxLVx0a2ZyZWUoZmJfaGVscGVyKTtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM9MjQ9c3RhdGljIHZvaWQgZHJtX2ZiZGV2X2NsaWVudF91bnJlZ2lzdGVyKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTI1LXtcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzoyNjpcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBkcm1fZmJfaGVscGVyX2Zyb21fY2xpZW50KGNsaWVudCk7XG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtMjctXG4tLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTMxLVx0XHQgKi9cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzozMjpcdFx0ZHJtX2ZiX2hlbHBlcl91bnJlZ2lzdGVyX2luZm8oZmJfaGVscGVyKTtcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy0zMy1cdH0gZWxzZSB7XG4tLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jPTQxPXN0YXRpYyBpbnQgZHJtX2ZiZGV2X2NsaWVudF9yZXN0b3JlKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCBib29sIGZvcmNlKVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTQyLXtcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzo0MzpcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBkcm1fZmJfaGVscGVyX2Zyb21fY2xpZW50KGNsaWVudCk7XG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtNDQtXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM6NDU6XHRkcm1fZmJfaGVscGVyX3Jlc3RvcmVfZmJkZXZfbW9kZV91bmxvY2tlZChmYl9oZWxwZXIsIGZvcmNlKTtcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy00Ni1cbi0tXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM9NTA9c3RhdGljIGludCBkcm1fZmJkZXZfY2xpZW50X2hvdHBsdWcoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQpXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtNTEte1xuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjUyOlx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9IGRybV9mYl9oZWxwZXJfZnJvbV9jbGllbnQoY2xpZW50KTtcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy01My1cdHN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjbGllbnQtXHUwMDNlZGV2O1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy01Ni1cdGlmIChkZXYtXHUwMDNlZmJfaGVscGVyKVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjU3Olx0XHRyZXR1cm4gZHJtX2ZiX2hlbHBlcl9ob3RwbHVnX2V2ZW50KGRldi1cdTAwM2VmYl9oZWxwZXIpO1xuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTU4LVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjU5Olx0cmV0ID0gZHJtX2ZiX2hlbHBlcl9pbml0KGRldiwgZmJfaGVscGVyKTtcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy02MC1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTY1LVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjY2Olx0cmV0ID0gZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZyhmYl9oZWxwZXIpO1xuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTY3LVx0aWYgKHJldClcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzo2ODpcdFx0Z290byBlcnJfZHJtX2ZiX2hlbHBlcl9maW5pO1xuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTY5LVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy03MS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzo3MjplcnJfZHJtX2ZiX2hlbHBlcl9maW5pOlxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjczOlx0ZHJtX2ZiX2hlbHBlcl9maW5pKGZiX2hlbHBlcik7XG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtNzQtZXJyX2RybV9lcnI6XG4tLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jPTc5PXN0YXRpYyBpbnQgZHJtX2ZiZGV2X2NsaWVudF9zdXNwZW5kKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTgwLXtcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzo4MTpcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBkcm1fZmJfaGVscGVyX2Zyb21fY2xpZW50KGNsaWVudCk7XG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtODItXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM6ODM6XHRkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kX3VubG9ja2VkKGZiX2hlbHBlciwgdHJ1ZSk7XG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtODQtXG4tLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jPTg4PXN0YXRpYyBpbnQgZHJtX2ZiZGV2X2NsaWVudF9yZXN1bWUoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQpXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtODkte1xuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjkwOlx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9IGRybV9mYl9oZWxwZXJfZnJvbV9jbGllbnQoY2xpZW50KTtcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy05MS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzo5MjpcdGRybV9mYl9oZWxwZXJfc2V0X3N1c3BlbmRfdW5sb2NrZWQoZmJfaGVscGVyLCBmYWxzZSk7XG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtOTMtXG4tLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jPTEyNj1pbnQgZHJtX2ZiZGV2X2NsaWVudF9zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvICpmb3JtYXQpXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtMTI3LXtcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzoxMjg6XHRzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyO1xuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTEyOS1cdHVuc2lnbmVkIGludCBjb2xvcl9tb2RlO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy0xNTktXHRcdHJldHVybiAtRU5PTUVNO1xuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjE2MDpcdGRybV9mYl9oZWxwZXJfcHJlcGFyZShkZXYsIGZiX2hlbHBlciwgY29sb3JfbW9kZSwgTlVMTCk7XG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtMTYxLVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy0xNzItZXJyX2RybV9jbGllbnRfaW5pdDpcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzoxNzM6XHRkcm1fZmJfaGVscGVyX3VucHJlcGFyZShmYl9oZWxwZXIpO1xuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTE3NC1cdGtmcmVlKGZiX2hlbHBlcik7XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9hdXRoLmM9NDMwPUVYUE9SVF9TWU1CT0woZHJtX21hc3Rlcl9wdXQpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9hdXRoLmMtNDMxLVxuZHJpdmVycy9ncHUvZHJtL2RybV9hdXRoLmM6NDMyOi8qIFVzZWQgYnkgZHJtX2NsaWVudCBhbmQgZHJtX2ZiX2hlbHBlciAqL1xuZHJpdmVycy9ncHUvZHJtL2RybV9hdXRoLmMtNDMzLWJvb2wgZHJtX21hc3Rlcl9pbnRlcm5hbF9hY3F1aXJlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9hdXRoLmM9NDQzPUVYUE9SVF9TWU1CT0woZHJtX21hc3Rlcl9pbnRlcm5hbF9hY3F1aXJlKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fYXV0aC5jLTQ0NC1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fYXV0aC5jOjQ0NTovKiBVc2VkIGJ5IGRybV9jbGllbnQgYW5kIGRybV9mYl9oZWxwZXIgKi9cbmRyaXZlcnMvZ3B1L2RybS9kcm1fYXV0aC5jLTQ0Ni12b2lkIGRybV9tYXN0ZXJfaW50ZXJuYWxfcmVsZWFzZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMzYtI2luY2x1ZGUgXHUwMDNjZHJtL2RybV9kcnYuaFx1MDAzZVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzozNzojaW5jbHVkZSBcdTAwM2Nkcm0vZHJtX2ZiX2hlbHBlci5oXHUwMDNlXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTM4LSNpbmNsdWRlIFx1MDAzY2RybS9kcm1fZm91cmNjLmhcdTAwM2Vcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jPTc1PU1PRFVMRV9QQVJNX0RFU0MoZHJtX2xlYWtfZmJkZXZfc21lbSxcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTk0LSAqIEl0IGlzIHBvc3NpYmxlLCB0aG91Z2ggcGVyaGFwcyBzb21ld2hhdCB0cmlja3ksIHRvIGltcGxlbWVudCByYWNlLWZyZWVcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6OTU6ICogaG90cGx1ZyBkZXRlY3Rpb24gdXNpbmcgdGhlIGZiZGV2IGhlbHBlcnMuIFRoZSBkcm1fZmJfaGVscGVyX3ByZXBhcmUoKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05Ni0gKiBoZWxwZXIgbXVzdCBiZSBjYWxsZWQgZmlyc3QgdG8gaW5pdGlhbGl6ZSB0aGUgbWluaW11bSByZXF1aXJlZCB0byBtYWtlXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMDEtICogZW5jb2RlcnMgYW5kIGNvbm5lY3RvcnMuIFRvIGZpbmlzaCB1cCB0aGUgZmJkZXYgaGVscGVyIGluaXRpYWxpemF0aW9uLCB0aGVcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTAyOiAqIGRybV9mYl9oZWxwZXJfaW5pdCgpIGZ1bmN0aW9uIGlzIGNhbGxlZC4gVG8gcHJvYmUgZm9yIGFsbCBhdHRhY2hlZCBkaXNwbGF5c1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMDMtICogYW5kIHNldCB1cCBhbiBpbml0aWFsIGNvbmZpZ3VyYXRpb24gdXNpbmcgdGhlIGRldGVjdGVkIGhhcmR3YXJlLCBkcml2ZXJzXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjEwNDogKiBzaG91bGQgY2FsbCBkcm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmlnKCkuXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEwNS0gKlxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMDYtICogSWYgXHUwMDI2ZHJtX2ZyYW1lYnVmZmVyX2Z1bmNzLmRpcnR5IGlzIHNldCwgdGhlXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjEwNzogKiBkcm1fZmJfaGVscGVyX3tjZmIsc3lzfV97d3JpdGUsZmlsbHJlY3QsY29weWFyZWEsaW1hZ2VibGl0fSBmdW5jdGlvbnMgd2lsbFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxMDg6ICogYWNjdW11bGF0ZSBjaGFuZ2VzIGFuZCBzY2hlZHVsZSBcdTAwMjZkcm1fZmJfaGVscGVyLmRpcnR5X3dvcmsgdG8gcnVuIHJpZ2h0XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEwOS0gKiBhd2F5LiBUaGlzIHdvcmtlciB0aGVuIGNhbGxzIHRoZSBkaXJ0eSgpIGZ1bmN0aW9uIGVuc3VyaW5nIHRoYXQgaXQgd2lsbFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMTAtICogYWx3YXlzIHJ1biBpbiBwcm9jZXNzIGNvbnRleHQgc2luY2UgdGhlIGZiXyooKSBmdW5jdGlvbiBjb3VsZCBiZSBydW5uaW5nIGluXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjExMTogKiBhdG9taWMgY29udGV4dC4gSWYgZHJtX2ZiX2hlbHBlcl9kZWZlcnJlZF9pbygpIGlzIHVzZWQgYXMgdGhlIGRlZmVycmVkX2lvXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTExMi0gKiBjYWxsYmFjayBpdCB3aWxsIGFsc28gc2NoZWR1bGUgZGlydHlfd29yayB3aXRoIHRoZSBkYW1hZ2UgY29sbGVjdGVkIGZyb20gdGhlXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYz0xMTY9c3RhdGljIGludFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxMTc6X19kcm1fZmJfaGVscGVyX3Jlc3RvcmVfZmJkZXZfbW9kZV91bmxvY2tlZChzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMTgtXHRcdFx0XHRcdCAgICBib29sIGZvcmNlKVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTMzLVx0XHQgKiB0byBiZSBoZWxkLiBCdXQgZm9yIGZvcmNlZCByZXN0b3JlcyB3ZSYjMzk7cmUgaW50ZW50aW9uYWxseVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxMzQ6XHRcdCAqIHJhY2luZyBoZXJlLCBzZWUgZHJtX2ZiX2hlbHBlcl9zZXRfcGFyKCkuXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEzNS1cdFx0ICovXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xNDYtXHRpZiAoZG9fZGVsYXllZClcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTQ3Olx0XHRkcm1fZmJfaGVscGVyX2hvdHBsdWdfZXZlbnQoZmJfaGVscGVyKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTQ4LVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTU1LS8qKlxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxNTY6ICogZHJtX2ZiX2hlbHBlcl9yZXN0b3JlX2ZiZGV2X21vZGVfdW5sb2NrZWQgLSByZXN0b3JlIGZiZGV2IGNvbmZpZ3VyYXRpb25cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTU3LSAqIEBmYl9oZWxwZXI6IGRyaXZlci1hbGxvY2F0ZWQgZmJkZXYgaGVscGVyLCBjYW4gYmUgTlVMTFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTY2LSAqL1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxNjc6aW50IGRybV9mYl9oZWxwZXJfcmVzdG9yZV9mYmRldl9tb2RlX3VubG9ja2VkKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIsIGJvb2wgZm9yY2UpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE2OC17XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjE2OTpcdHJldHVybiBfX2RybV9mYl9oZWxwZXJfcmVzdG9yZV9mYmRldl9tb2RlX3VubG9ja2VkKGZiX2hlbHBlciwgZm9yY2UpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xNzAtfVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxNzE6RVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX3Jlc3RvcmVfZmJkZXZfbW9kZV91bmxvY2tlZCk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE3Mi1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTczOnN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZHBtcyhzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgaW50IGRwbXNfbW9kZSlcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTc0LXtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTc1Olx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9IGluZm8tXHUwMDNlcGFyO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xNzYtXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xODItLyoqXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjE4MzogKiBkcm1fZmJfaGVscGVyX2JsYW5rIC0gaW1wbGVtZW50YXRpb24gZm9yIFx1MDAyNmZiX29wcy5mYl9ibGFua1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xODQtICogQGJsYW5rOiBkZXNpcmVkIGJsYW5raW5nIHN0YXRlXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xODYtICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjE4NzppbnQgZHJtX2ZiX2hlbHBlcl9ibGFuayhpbnQgYmxhbmssIHN0cnVjdCBmYl9pbmZvICppbmZvKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xODgte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTk0LVx0Y2FzZSBGQl9CTEFOS19VTkJMQU5LOlxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxOTU6XHRcdGRybV9mYl9oZWxwZXJfZHBtcyhpbmZvLCBEUk1fTU9ERV9EUE1TX09OKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTk2LVx0XHRicmVhaztcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE5OC1cdGNhc2UgRkJfQkxBTktfTk9STUFMOlxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxOTk6XHRcdGRybV9mYl9oZWxwZXJfZHBtcyhpbmZvLCBEUk1fTU9ERV9EUE1TX1NUQU5EQlkpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMDAtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMjAyLVx0Y2FzZSBGQl9CTEFOS19IU1lOQ19TVVNQRU5EOlxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoyMDM6XHRcdGRybV9mYl9oZWxwZXJfZHBtcyhpbmZvLCBEUk1fTU9ERV9EUE1TX1NUQU5EQlkpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMDQtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMjA2LVx0Y2FzZSBGQl9CTEFOS19WU1lOQ19TVVNQRU5EOlxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoyMDc6XHRcdGRybV9mYl9oZWxwZXJfZHBtcyhpbmZvLCBEUk1fTU9ERV9EUE1TX1NVU1BFTkQpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMDgtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMjEwLVx0Y2FzZSBGQl9CTEFOS19QT1dFUkRPV046XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjIxMTpcdFx0ZHJtX2ZiX2hlbHBlcl9kcG1zKGluZm8sIERSTV9NT0RFX0RQTVNfT0ZGKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMjEyLVx0XHRicmVhaztcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTIxNS19XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjIxNjpFWFBPUlRfU1lNQk9MKGRybV9mYl9oZWxwZXJfYmxhbmspO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMTctXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjIxODpzdGF0aWMgdm9pZCBkcm1fZmJfaGVscGVyX3Jlc3VtZV93b3JrZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMTkte1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoyMjA6XHRzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBkcm1fZmJfaGVscGVyLFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMjEtXHRcdFx0XHRcdFx0ICAgIHJlc3VtZV93b3JrKTtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTIyNy1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MjI4OnN0YXRpYyBpbnQgZmluZF9jcnRjX2luZGV4X2F0b21pYyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMjkte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMjc4LVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoyNzk6c3RhdGljIGludCBmaW5kX2NydGNfaW5kZXhfbGVnYWN5KHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTI4MC17XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yOTctXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjI5ODpzdGF0aWMgaW50IGRybV9mYl9oZWxwZXJfZmluZF9jcnRjX2luZGV4KHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTI5OS17XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zMTQtXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjMxNTpzdGF0aWMgdm9pZCBkcm1fZmJfaGVscGVyX2ZiX2RpcnR5KHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTMxNi17XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zMjQtXHRtdXRleF9sb2NrKFx1MDAyNmhlbHBlci1cdTAwM2Vsb2NrKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MzI1Olx0Y3J0Y19pbmRleCA9IGRybV9mYl9oZWxwZXJfZmluZF9jcnRjX2luZGV4KGhlbHBlcik7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTMyNi1cdGlmIChjcnRjX2luZGV4IFx1MDAzZT0gMClcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTM1Ny1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MzU4OnN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZGFtYWdlX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zNTkte1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzozNjA6XHRzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBkcm1fZmJfaGVscGVyLCBkYW1hZ2Vfd29yayk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTM2MS1cbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTM2NC1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MzY1Olx0ZHJtX2ZiX2hlbHBlcl9mYl9kaXJ0eShoZWxwZXIpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zNjYtfVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMzY4LS8qKlxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzozNjk6ICogZHJtX2ZiX2hlbHBlcl9wcmVwYXJlIC0gc2V0dXAgYSBkcm1fZmJfaGVscGVyIHN0cnVjdHVyZVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zNzAtICogQGRldjogRFJNIGRldmljZVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMzc3LSAqL1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzozNzg6dm9pZCBkcm1fZmJfaGVscGVyX3ByZXBhcmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlcixcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMzc5LVx0XHRcdCAgIHVuc2lnbmVkIGludCBwcmVmZXJyZWRfYnBwLFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzozODA6XHRcdFx0ICAgY29uc3Qgc3RydWN0IGRybV9mYl9oZWxwZXJfZnVuY3MgKmZ1bmNzKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zODEte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMzk2LVx0c3Bpbl9sb2NrX2luaXQoXHUwMDI2aGVscGVyLVx1MDAzZWRhbWFnZV9sb2NrKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6Mzk3Olx0SU5JVF9XT1JLKFx1MDAyNmhlbHBlci1cdTAwM2VyZXN1bWVfd29yaywgZHJtX2ZiX2hlbHBlcl9yZXN1bWVfd29ya2VyKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6Mzk4Olx0SU5JVF9XT1JLKFx1MDAyNmhlbHBlci1cdTAwM2VkYW1hZ2Vfd29yaywgZHJtX2ZiX2hlbHBlcl9kYW1hZ2Vfd29yayk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTM5OS1cdGhlbHBlci1cdTAwM2VkYW1hZ2VfY2xpcC54MSA9IGhlbHBlci1cdTAwM2VkYW1hZ2VfY2xpcC55MSA9IH4wO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDA0LX1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NDA1OkVYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9wcmVwYXJlKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDA2LVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MDctLyoqXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQwODogKiBkcm1fZmJfaGVscGVyX3VucHJlcGFyZSAtIGNsZWFuIHVwIGEgZHJtX2ZiX2hlbHBlciBzdHJ1Y3R1cmVcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDA5LSAqIEBmYl9oZWxwZXI6IGRyaXZlci1hbGxvY2F0ZWQgZmJkZXYgaGVscGVyIHN0cnVjdHVyZSB0byBzZXQgdXBcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDEwLSAqXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQxMTogKiBDbGVhbnMgdXAgdGhlIGZyYW1lYnVmZmVyIGhlbHBlci4gSW52ZXJzZSBvZiBkcm1fZmJfaGVscGVyX3ByZXBhcmUoKS5cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDEyLSAqL1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo0MTM6dm9pZCBkcm1fZmJfaGVscGVyX3VucHJlcGFyZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MTQte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDE2LX1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NDE3OkVYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl91bnByZXBhcmUpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MTgtXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQxOS0vKipcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NDIwOiAqIGRybV9mYl9oZWxwZXJfaW5pdCAtIGluaXRpYWxpemUgYSBcdTAwMjZzdHJ1Y3QgZHJtX2ZiX2hlbHBlclxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MjEtICogQGRldjogZHJtIGRldmljZVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDI1LSAqIE5vdGUgdGhhdCB0aGlzIHdvbiYjMzk7dCB5ZXQgdG91Y2ggdGhlIGhhcmR3YXJlICh0aHJvdWdoIHRoZSBkcml2ZXIgaW50ZXJmYWNlcylcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NDI2OiAqIG5vciByZWdpc3RlciB0aGUgZmJkZXYuIFRoaXMgaXMgb25seSBkb25lIGluIGRybV9mYl9oZWxwZXJfaW5pdGlhbF9jb25maWcoKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MjctICogdG8gYWxsb3cgZHJpdmVyIHdyaXRlcyBtb3JlIGNvbnRyb2wgb3ZlciB0aGUgZXhhY3QgaW5pdCBzZXF1ZW5jZS5cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDI4LSAqXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQyOTogKiBEcml2ZXJzIG11c3QgY2FsbCBkcm1fZmJfaGVscGVyX3ByZXBhcmUoKSBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLlxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MzAtICpcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQzMy0gKi9cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NDM0OmludCBkcm1fZmJfaGVscGVyX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldixcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NDM1Olx0XHQgICAgICAgc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcilcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDM2LXtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQ0MC19XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQ0MTpFWFBPUlRfU1lNQk9MKGRybV9mYl9oZWxwZXJfaW5pdCk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQ0Mi1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NDQzOnN0YXRpYyBzdHJ1Y3QgZmJfaW5mbyAqZHJtX2ZiX2hlbHBlcl9hbGxvY19pbmZvKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQ0NC17XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00NzAtXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQ3MTpzdGF0aWMgdm9pZCBkcm1fZmJfaGVscGVyX3JlbGVhc2VfaW5mbyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00NzIte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDg1LS8qKlxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo0ODY6ICogZHJtX2ZiX2hlbHBlcl91bnJlZ2lzdGVyX2luZm8gLSB1bnJlZ2lzdGVyIGZiX2luZm8gZnJhbWVidWZmZXIgZGV2aWNlXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQ4Ny0gKiBAZmJfaGVscGVyOiBkcml2ZXItYWxsb2NhdGVkIGZiZGV2IGhlbHBlciwgbXVzdCBub3QgYmUgTlVMTFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDkwLSAqIGZyYW1lYnVmZmVyIGRldmljZS4gVGhpcyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgcmVsZWFzaW5nIGFsbCByZXNvdXJjZXMgZm9yXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQ5MTogKiBAZmJfaGVscGVyIGJ5IGNhbGxpbmcgZHJtX2ZiX2hlbHBlcl9maW5pKCkuXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQ5Mi0gKi9cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NDkzOnZvaWQgZHJtX2ZiX2hlbHBlcl91bnJlZ2lzdGVyX2luZm8oc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcilcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDk0LXtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQ5Ni19XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQ5NzpFWFBPUlRfU1lNQk9MKGRybV9mYl9oZWxwZXJfdW5yZWdpc3Rlcl9pbmZvKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDk4LVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00OTktLyoqXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjUwMDogKiBkcm1fZmJfaGVscGVyX2ZpbmkgLSBmaW5pYWxpemUgYSBcdTAwMjZzdHJ1Y3QgZHJtX2ZiX2hlbHBlclxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy01MDEtICogQGZiX2hlbHBlcjogZHJpdmVyLWFsbG9jYXRlZCBmYmRldiBoZWxwZXIsIGNhbiBiZSBOVUxMXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy01MDQtICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjUwNTp2b2lkIGRybV9mYl9oZWxwZXJfZmluaShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy01MDYte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNTE3LVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo1MTg6XHRkcm1fZmJfaGVscGVyX3JlbGVhc2VfaW5mbyhmYl9oZWxwZXIpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy01MTktfVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo1MjA6RVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX2ZpbmkpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy01MjEtXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjUyMjpzdGF0aWMgdm9pZCBkcm1fZmJfaGVscGVyX2FkZF9kYW1hZ2VfY2xpcChzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLCB1MzIgeCwgdTMyIHksXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTUyMy1cdFx0XHRcdFx0ICB1MzIgd2lkdGgsIHUzMiBoZWlnaHQpXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy01MzUtXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjUzNjpzdGF0aWMgdm9pZCBkcm1fZmJfaGVscGVyX2RhbWFnZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLCB1MzIgeCwgdTMyIHksXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTUzNy1cdFx0XHRcdCB1MzIgd2lkdGgsIHUzMiBoZWlnaHQpXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy01NDktXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjU1MDpcdGRybV9mYl9oZWxwZXJfYWRkX2RhbWFnZV9jbGlwKGhlbHBlciwgeCwgeSwgd2lkdGgsIGhlaWdodCk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTU1MS1cbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTU1OS0gKi9cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NTYwOnN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfbWVtb3J5X3JhbmdlX3RvX2NsaXAoc3RydWN0IGZiX2luZm8gKmluZm8sIG9mZl90IG9mZiwgc2l6ZV90IGxlbixcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNTYxLVx0XHRcdFx0XHQgICAgICAgc3RydWN0IGRybV9yZWN0ICpjbGlwKVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNTkyLS8qIERvbiYjMzk7dCB1c2UgaW4gbmV3IGNvZGUuICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjU5Mzp2b2lkIGRybV9mYl9oZWxwZXJfZGFtYWdlX3JhbmdlKHN0cnVjdCBmYl9pbmZvICppbmZvLCBvZmZfdCBvZmYsIHNpemVfdCBsZW4pXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTU5NC17XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjU5NTpcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBpbmZvLVx1MDAzZXBhcjtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNTk2LVx0c3RydWN0IGRybV9yZWN0IGRhbWFnZV9hcmVhO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy01OTctXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjU5ODpcdGRybV9mYl9oZWxwZXJfbWVtb3J5X3JhbmdlX3RvX2NsaXAoaW5mbywgb2ZmLCBsZW4sIFx1MDAyNmRhbWFnZV9hcmVhKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NTk5Olx0ZHJtX2ZiX2hlbHBlcl9kYW1hZ2UoZmJfaGVscGVyLCBkYW1hZ2VfYXJlYS54MSwgZGFtYWdlX2FyZWEueTEsXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTYwMC1cdFx0XHQgICAgIGRybV9yZWN0X3dpZHRoKFx1MDAyNmRhbWFnZV9hcmVhKSxcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTYwMi19XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjYwMzpFWFBPUlRfU1lNQk9MKGRybV9mYl9oZWxwZXJfZGFtYWdlX3JhbmdlKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjA0LVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02MDUtLyogRG9uJiMzOTt0IHVzZSBpbiBuZXcgY29kZS4gKi9cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NjA2OnZvaWQgZHJtX2ZiX2hlbHBlcl9kYW1hZ2VfYXJlYShzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgdTMyIHgsIHUzMiB5LCB1MzIgd2lkdGgsIHUzMiBoZWlnaHQpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTYwNy17XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjYwODpcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBpbmZvLVx1MDAzZXBhcjtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjA5LVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2MTA6XHRkcm1fZmJfaGVscGVyX2RhbWFnZShmYl9oZWxwZXIsIHgsIHksIHdpZHRoLCBoZWlnaHQpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02MTEtfVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2MTI6RVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX2RhbWFnZV9hcmVhKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjEzLVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjE1LS8qKlxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2MTY6ICogZHJtX2ZiX2hlbHBlcl9kZWZlcnJlZF9pbygpIC0gZmJkZXYgZGVmZXJyZWRfaW8gY2FsbGJhY2sgZnVuY3Rpb25cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjE3LSAqIEBpbmZvOiBmYl9pbmZvIHN0cnVjdCBwb2ludGVyXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02MjItICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjYyMzp2b2lkIGRybV9mYl9oZWxwZXJfZGVmZXJyZWRfaW8oc3RydWN0IGZiX2luZm8gKmluZm8sIHN0cnVjdCBsaXN0X2hlYWQgKnBhZ2VyZWZsaXN0KVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02MjQte1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2MjU6XHRzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyID0gaW5mby1cdTAwM2VwYXI7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTYyNi1cdHVuc2lnbmVkIGxvbmcgc3RhcnQsIGVuZCwgbWluX29mZiwgbWF4X29mZiwgdG90YWxfc2l6ZTtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTY1MC1cdGlmIChtaW5fb2ZmIFx1MDAzYyBtYXhfb2ZmKSB7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjY1MTpcdFx0ZHJtX2ZiX2hlbHBlcl9tZW1vcnlfcmFuZ2VfdG9fY2xpcChpbmZvLCBtaW5fb2ZmLCBtYXhfb2ZmIC0gbWluX29mZiwgXHUwMDI2ZGFtYWdlX2FyZWEpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2NTI6XHRcdGRybV9mYl9oZWxwZXJfZGFtYWdlKGhlbHBlciwgZGFtYWdlX2FyZWEueDEsIGRhbWFnZV9hcmVhLnkxLFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02NTMtXHRcdFx0XHQgICAgIGRybV9yZWN0X3dpZHRoKFx1MDAyNmRhbWFnZV9hcmVhKSxcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTY1Ni19XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjY1NzpFWFBPUlRfU1lNQk9MKGRybV9mYl9oZWxwZXJfZGVmZXJyZWRfaW8pO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02NTgtI2VuZGlmXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02NjAtLyoqXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjY2MTogKiBkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kIC0gd3JhcHBlciBhcm91bmQgZmJfc2V0X3N1c3BlbmRcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjYyLSAqIEBmYl9oZWxwZXI6IGRyaXZlci1hbGxvY2F0ZWQgZmJkZXYgaGVscGVyLCBjYW4gYmUgTlVMTFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjY1LSAqIEEgd3JhcHBlciBhcm91bmQgZmJfc2V0X3N1c3BlbmQgaW1wbGVtZW50ZWQgYnkgZmJkZXYgY29yZS5cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NjY2OiAqIFVzZSBkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kX3VubG9ja2VkKCkgaWYgeW91IGRvbiYjMzk7dCBuZWVkIHRvIHRha2VcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjY3LSAqIHRoZSBsb2NrIHlvdXJzZWxmXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTY2OC0gKi9cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NjY5OnZvaWQgZHJtX2ZiX2hlbHBlcl9zZXRfc3VzcGVuZChzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLCBib29sIHN1c3BlbmQpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTY3MC17XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02NzgtfVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2Nzk6RVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjgwLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02ODEtLyoqXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjY4MjogKiBkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kX3VubG9ja2VkIC0gd3JhcHBlciBhcm91bmQgZmJfc2V0X3N1c3BlbmQgdGhhdCBhbHNvXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTY4My0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZXMgdGhlIGNvbnNvbGUgbG9ja1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjk0LSAqXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjY5NTogKiBVc2UgZHJtX2ZiX2hlbHBlcl9zZXRfc3VzcGVuZCgpIGlmIHlvdSBuZWVkIHRvIHRha2UgdGhlIGxvY2sgeW91cnNlbGYuXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTY5Ni0gKi9cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6Njk3OnZvaWQgZHJtX2ZiX2hlbHBlcl9zZXRfc3VzcGVuZF91bmxvY2tlZChzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02OTgtXHRcdFx0XHRcdGJvb2wgc3VzcGVuZClcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTcxMS1cdFx0ICogQ2FuY2VsIHBlbmRpbmcgZGFtYWdlIHdvcmsuIER1cmluZyBHUFUgcmVzZXQsIFZCbGFua1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo3MTI6XHRcdCAqIGludGVycnVwdHMgYXJlIGRpc2FibGVkIGFuZCBkcm1fZmJfaGVscGVyX2ZiX2RpcnR5KClcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNzEzLVx0XHQgKiB3b3VsZCB3YWl0IGZvciBWQmxhbmsgdGltZW91dCBvdGhlcndpc2UuXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy03MjgtXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjcyOTpcdGRybV9mYl9oZWxwZXJfc2V0X3N1c3BlbmQoZmJfaGVscGVyLCBzdXNwZW5kKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNzMwLVx0Y29uc29sZV91bmxvY2soKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNzMxLX1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NzMyOkVYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9zZXRfc3VzcGVuZF91bmxvY2tlZCk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTczMy1cbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jPTc2Nj1zdGF0aWMgaW50IHNldGNtYXBfbGVnYWN5KHN0cnVjdCBmYl9jbWFwICpjbWFwLCBzdHJ1Y3QgZmJfaW5mbyAqaW5mbylcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNzY3LXtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NzY4Olx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9IGluZm8tXHUwMDNlcGFyO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy03NjktXHRzdHJ1Y3QgZHJtX21vZGVfc2V0ICptb2Rlc2V0O1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9ODQ5PXN0YXRpYyBpbnQgc2V0Y21hcF9hdG9taWMoc3RydWN0IGZiX2NtYXAgKmNtYXAsIHN0cnVjdCBmYl9pbmZvICppbmZvKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy04NTAte1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo4NTE6XHRzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyID0gaW5mby1cdTAwM2VwYXI7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTg1Mi1cdHN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBmYl9oZWxwZXItXHUwMDNlZGV2O1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtOTM3LS8qKlxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo5Mzg6ICogZHJtX2ZiX2hlbHBlcl9zZXRjbWFwIC0gaW1wbGVtZW50YXRpb24gZm9yIFx1MDAyNmZiX29wcy5mYl9zZXRjbWFwXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTkzOS0gKiBAY21hcDogY21hcCB0byBzZXRcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTk0MS0gKi9cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6OTQyOmludCBkcm1fZmJfaGVscGVyX3NldGNtYXAoc3RydWN0IGZiX2NtYXAgKmNtYXAsIHN0cnVjdCBmYl9pbmZvICppbmZvKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05NDMte1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo5NDQ6XHRzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyID0gaW5mby1cdTAwM2VwYXI7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTk0NS1cdHN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBmYl9oZWxwZXItXHUwMDNlZGV2O1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtOTcyLX1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6OTczOkVYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9zZXRjbWFwKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtOTc0LVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05NzUtLyoqXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjk3NjogKiBkcm1fZmJfaGVscGVyX2lvY3RsIC0gbGVnYWN5IGlvY3RsIGltcGxlbWVudGF0aW9uXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTk3Ny0gKiBAaW5mbzogZmJkZXYgcmVnaXN0ZXJlZCBieSB0aGUgaGVscGVyXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05ODMtICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjk4NDppbnQgZHJtX2ZiX2hlbHBlcl9pb2N0bChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgdW5zaWduZWQgaW50IGNtZCxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtOTg1LVx0XHRcdHVuc2lnbmVkIGxvbmcgYXJnKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05ODYte1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo5ODc6XHRzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyID0gaW5mby1cdTAwM2VwYXI7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTk4OC1cdGludCByZXQgPSAwO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTAxNy19XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjEwMTg6RVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX2lvY3RsKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTAxOS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9MTAyMD1zdGF0aWMgYm9vbCBkcm1fZmJfcGl4ZWxfZm9ybWF0X2VxdWFsKGNvbnN0IHN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyAqdmFyXzEsXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMDM4LVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxMDM5OnN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZmlsbF9waXhlbF9mbXQoc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIsXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEwNDAtXHRcdFx0XHRcdCBjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvICpmb3JtYXQpXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYz0xMTAxPXN0YXRpYyB2b2lkIF9fZmlsbF92YXIoc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIsIHN0cnVjdCBmYl9pbmZvICppbmZvLFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTEyNC0vKipcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTEyNTogKiBkcm1fZmJfaGVscGVyX2NoZWNrX3ZhciAtIGltcGxlbWVudGF0aW9uIGZvciBcdTAwMjZmYl9vcHMuZmJfY2hlY2tfdmFyXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTExMjYtICogQHZhcjogc2NyZWVuaW5mbyB0byBjaGVja1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTEyOC0gKi9cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTEyOTppbnQgZHJtX2ZiX2hlbHBlcl9jaGVja192YXIoc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIsXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTExMzAtXHRcdFx0ICAgIHN0cnVjdCBmYl9pbmZvICppbmZvKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMTMxLXtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTEzMjpcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBpbmZvLVx1MDAzZXBhcjtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTEzMy1cdHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gZmJfaGVscGVyLVx1MDAzZWZiO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTIwMy1cdCAgICAhdmFyLVx1MDAzZWJsdWUubXNiX3JpZ2h0IFx1MDAyNlx1MDAyNiAhdmFyLVx1MDAzZXRyYW5zcC5tc2JfcmlnaHQpIHtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDAxOjEyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4MDcwCgkJCQkJCQlvdXRwdXQ6IDIwCgkJCQkJCQl0aG91Z2h0czogOTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBEUk0gQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBgQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT05gIGlzIGRlZmluaXRlbHkgdGhlIGtleSBjb25maWd1cmF0aW9uIGl0ZW0gdGhhdCBicmluZ3MgaW4gYGRybV9mYl9oZWxwZXIuY2AuIFRoYXQmIzM5O3MgdGhlIHN0YXJ0aW5nIHBvaW50LiBCdXQsIGhvbGQgb24gYSBzZWNvbmQuLi4gdGhlIHBhdGNoIGFsc28gdG91Y2hlcyBgZHJtX2NsaWVudF9tb2Rlc2V0LmNgIGFuZCBgZHJtX3ZibGFuay5jYC4gIEhtbSwgdGhhdCYjMzk7cyBpbnRlcmVzdGluZy4gSSBrbm93IGBkcm1fY2xpZW50X21vZGVzZXQuY2AgaXMgY29tcGlsZWQgY29uZGl0aW9uYWxseSB1bmRlciBgQ09ORklHX0RSTWAsIHNvIGl0IGlzIGxpa2VseSB0aGF0IGNvbmZpZ3VyYXRpb24gaXMgbmVlZGVkLiBMZXQgbWUgZG91YmxlLWNoZWNrIHRoZSBgZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlYCB0byBjb25maXJtIHRoYXQgYGRybV9jbGllbnRfbW9kZXNldC5vYCBpcyBhY3R1YWxseSBidWlsdCBhcyBwYXJ0IG9mIHRoZSBEUk0gY29yZSBidWlsZCBwcm9jZXNzLiBHb3R0YSBjb25maXJtIHdoZXJlIHRoaXMgY29kZSBpcyBiZWluZyBpbmNsdWRlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZHJtX2NsaWVudF9tb2Rlc2V0JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O0RvY3VtZW50YXRpb24vZ3B1L2RybS1jbGllbnQucnN0PTI9S2VybmVsIGNsaWVudHNcbi0tXG5Eb2N1bWVudGF0aW9uL2dwdS9kcm0tY2xpZW50LnJzdC0xMy1cbkRvY3VtZW50YXRpb24vZ3B1L2RybS1jbGllbnQucnN0OjE0Oi4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmNcbkRvY3VtZW50YXRpb24vZ3B1L2RybS1jbGllbnQucnN0LTE1LSAgIDpleHBvcnQ6XG4tLVxuZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlPTc2PWRybS0kKENPTkZJR19EUk1fQ0xJRU5UKSAmIzQzOz0gXFxcbi0tXG5kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUtNzgtXHRkcm1fY2xpZW50X2V2ZW50Lm8gXFxcbmRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZTo3OTpcdGRybV9jbGllbnRfbW9kZXNldC5vIFxcXG5kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUtODAtXHRkcm1fY2xpZW50X3N5c3JxLm9cbi0tXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fbG9nLmM9MjM1PXN0YXRpYyB2b2lkIGRybV9sb2dfaW5pdF9jbGllbnQoc3RydWN0IGRybV9sb2cgKmRsb2cpXG4tLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2xvZy5jLTI0My1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9sb2cuYzoyNDQ6XHRpZiAoZHJtX2NsaWVudF9tb2Rlc2V0X3Byb2JlKGNsaWVudCwgMCwgMCkpXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fbG9nLmMtMjQ1LVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2xvZy5jLTI2Ni1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9sb2cuYzoyNjc6XHRpZiAoZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdChjbGllbnQpKVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2xvZy5jLTI2OC1cdFx0Z290byBlcnJfZmFpbGVkX2NvbW1pdDtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fbG9nLmM9MzE4PXN0YXRpYyBpbnQgZHJtX2xvZ19jbGllbnRfcmVzdG9yZShzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgYm9vbCBmb3JjZSlcbi0tXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fbG9nLmMtMzIyLVx0aWYgKGZvcmNlKVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2xvZy5jOjMyMzpcdFx0cmV0ID0gZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9sb2NrZWQoY2xpZW50KTtcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9sb2cuYy0zMjQtXHRlbHNlXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fbG9nLmM6MzI1Olx0XHRyZXQgPSBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0KGNsaWVudCk7XG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fbG9nLmMtMzI2LVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50LmM9ODA9aW50IGRybV9jbGllbnRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCxcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudC5jLTkxLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnQuYzo5MjpcdHJldCA9IGRybV9jbGllbnRfbW9kZXNldF9jcmVhdGUoY2xpZW50KTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50LmMtOTMtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50LmMtMTA0LWVycl9mcmVlOlxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnQuYzoxMDU6XHRkcm1fY2xpZW50X21vZGVzZXRfZnJlZShjbGllbnQpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnQuYy0xMDYtXHRyZXR1cm4gcmV0O1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50LmM9MTY1PXZvaWQgZHJtX2NsaWVudF9yZWxlYXNlKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50LmMtMTcwLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnQuYzoxNzE6XHRkcm1fY2xpZW50X21vZGVzZXRfZnJlZShjbGllbnQpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnQuYy0xNzItXHRkcm1fY2xpZW50X2Nsb3NlKGNsaWVudCk7XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jPTMzPXN0cnVjdCBkcm1fY2xpZW50X29mZnNldCB7XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTM2LVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjM3OmludCBkcm1fY2xpZW50X21vZGVzZXRfY3JlYXRlKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTM4LXtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtNjktZXJyX2ZyZWU6XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6NzA6XHRkcm1fY2xpZW50X21vZGVzZXRfZnJlZShjbGllbnQpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTcxLVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy03NC1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzo3NTpzdGF0aWMgdm9pZCBkcm1fY2xpZW50X21vZGVzZXRfcmVsZWFzZShzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudClcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy03Ni17XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTkzLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjk0OnZvaWQgZHJtX2NsaWVudF9tb2Rlc2V0X2ZyZWUoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtOTUte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy05OS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMDA6XHRkcm1fY2xpZW50X21vZGVzZXRfcmVsZWFzZShjbGllbnQpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEwMS1cbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM9NjE5PXN0YXRpYyBib29sIGRybV9jbGllbnRfZmlybXdhcmVfY29uZmlnKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy04MDUtLyoqXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6ODA2OiAqIGRybV9jbGllbnRfbW9kZXNldF9wcm9iZSgpIC0gUHJvYmUgZm9yIGRpc3BsYXlzXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtODA3LSAqIEBjbGllbnQ6IERSTSBjbGllbnRcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtODE2LSAqL1xuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjgxNzppbnQgZHJtX2NsaWVudF9tb2Rlc2V0X3Byb2JlKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCB1bnNpZ25lZCBpbnQgd2lkdGgsIHVuc2lnbmVkIGludCBoZWlnaHQpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtODE4LXtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtODk0LVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjg5NTpcdGRybV9jbGllbnRfbW9kZXNldF9yZWxlYXNlKGNsaWVudCk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtODk2LVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy05NDQtfVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjk0NTpFWFBPUlRfU1lNQk9MKGRybV9jbGllbnRfbW9kZXNldF9wcm9iZSk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtOTQ2LVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYz0xMDMyPUVYUE9SVF9TWU1CT0woZHJtX2NsaWVudF9yb3RhdGlvbik7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTAzMy1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMDM0OnN0YXRpYyBpbnQgZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9hdG9taWMoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIGJvb2wgYWN0aXZlLCBib29sIGNoZWNrKVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEwMzUte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMTIzLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjExMjQ6c3RhdGljIGludCBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0X2xlZ2FjeShzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudClcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMTI1LXtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTE2NS0vKipcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMTY2OiAqIGRybV9jbGllbnRfbW9kZXNldF9jaGVjaygpIC0gQ2hlY2sgbW9kZXNldCBjb25maWd1cmF0aW9uXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTE2Ny0gKiBAY2xpZW50OiBEUk0gY2xpZW50XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTExNzMtICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTE3NDppbnQgZHJtX2NsaWVudF9tb2Rlc2V0X2NoZWNrKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTExNzUte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMTgxLVx0bXV0ZXhfbG9jayhcdTAwMjZjbGllbnQtXHUwMDNlbW9kZXNldF9tdXRleCk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTE4MjpcdHJldCA9IGRybV9jbGllbnRfbW9kZXNldF9jb21taXRfYXRvbWljKGNsaWVudCwgdHJ1ZSwgdHJ1ZSk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTE4My1cdG11dGV4X3VubG9jayhcdTAwMjZjbGllbnQtXHUwMDNlbW9kZXNldF9tdXRleCk7XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTExODYtfVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjExODc6RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X21vZGVzZXRfY2hlY2spO1xuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTExODgtXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTE4OS0vKipcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMTkwOiAqIGRybV9jbGllbnRfbW9kZXNldF9jb21taXRfbG9ja2VkKCkgLSBGb3JjZSBjb21taXQgQ1JUQyBjb25maWd1cmF0aW9uXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTE5MS0gKiBAY2xpZW50OiBEUk0gY2xpZW50XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTExOTktICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTIwMDppbnQgZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9sb2NrZWQoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTIwMS17XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyMDYtXHRpZiAoZHJtX2Rydl91c2VzX2F0b21pY19tb2Rlc2V0KGRldikpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTIwNzpcdFx0cmV0ID0gZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9hdG9taWMoY2xpZW50LCB0cnVlLCBmYWxzZSk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTIwOC1cdGVsc2VcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMjA5Olx0XHRyZXQgPSBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0X2xlZ2FjeShjbGllbnQpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyMTAtXHRtdXRleF91bmxvY2soXHUwMDI2Y2xpZW50LVx1MDAzZW1vZGVzZXRfbXV0ZXgpO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjEzLX1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMjE0OkVYUE9SVF9TWU1CT0woZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9sb2NrZWQpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyMTUtXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTIxNi0vKipcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMjE3OiAqIGRybV9jbGllbnRfbW9kZXNldF9jb21taXQoKSAtIENvbW1pdCBDUlRDIGNvbmZpZ3VyYXRpb25cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjE4LSAqIEBjbGllbnQ6IERSTSBjbGllbnRcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTIyNC0gKi9cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMjI1OmludCBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0KHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyMjYte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjMyLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyMzM6XHRyZXQgPSBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0X2xvY2tlZChjbGllbnQpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyMzQtXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyMzgtfVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyMzk6RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0KTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjQwLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyNDE6c3RhdGljIHZvaWQgZHJtX2NsaWVudF9tb2Rlc2V0X2RwbXNfbGVnYWN5KHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCBpbnQgZHBtc19tb2RlKVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyNDIte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjY2LS8qKlxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyNjc6ICogZHJtX2NsaWVudF9tb2Rlc2V0X2RwbXMoKSAtIFNldCBEUE1TIG1vZGVcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjY4LSAqIEBjbGllbnQ6IERSTSBjbGllbnRcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTI3NS0gKi9cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMjc2OmludCBkcm1fY2xpZW50X21vZGVzZXRfZHBtcyhzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgaW50IG1vZGUpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTI3Ny17XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyODUtXHRpZiAoZHJtX2Rydl91c2VzX2F0b21pY19tb2Rlc2V0KGRldikpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTI4NjpcdFx0cmV0ID0gZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9hdG9taWMoY2xpZW50LCBtb2RlID09IERSTV9NT0RFX0RQTVNfT04sIGZhbHNlKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjg3LVx0ZWxzZVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyODg6XHRcdGRybV9jbGllbnRfbW9kZXNldF9kcG1zX2xlZ2FjeShjbGllbnQsIG1vZGUpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyODktXHRtdXRleF91bmxvY2soXHUwMDI2Y2xpZW50LVx1MDAzZW1vZGVzZXRfbXV0ZXgpO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjk0LX1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMjk1OkVYUE9SVF9TWU1CT0woZHJtX2NsaWVudF9tb2Rlc2V0X2RwbXMpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyOTYtXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTI5Ny0vKipcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMjk4OiAqIGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmsoKSAtIFdhaXQgZm9yIHRoZSBuZXh0IFZCTEFOSyB0byBvY2N1clxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyOTktICogQGNsaWVudDogRFJNIGNsaWVudFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzA4LSAqL1xuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEzMDk6aW50IGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92Ymxhbmsoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIHVuc2lnbmVkIGludCBjcnRjX2luZGV4KVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEzMTAte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzM4LX1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMzM5OkVYUE9SVF9TWU1CT0woZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTM0MC1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzQxLSNpZmRlZiBDT05GSUdfRFJNX0tVTklUX1RFU1RcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMzQyOiNpbmNsdWRlIFwmIzM0O3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmNcJiMzNDtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzQzLSNlbmRpZlxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9MTE3PV9fZHJtX2ZiX2hlbHBlcl9yZXN0b3JlX2ZiZGV2X21vZGVfdW5sb2NrZWQoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcixcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEzNS1cdFx0ICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjEzNjpcdFx0cmV0ID0gZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9sb2NrZWQoXHUwMDI2ZmJfaGVscGVyLVx1MDAzZWNsaWVudCk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEzNy1cdH0gZWxzZSB7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjEzODpcdFx0cmV0ID0gZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdChcdTAwMjZmYl9oZWxwZXItXHUwMDNlY2xpZW50KTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTM5LVx0fVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9MTczPXN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZHBtcyhzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgaW50IGRwbXNfbW9kZSlcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE3Ny1cdG11dGV4X2xvY2soXHUwMDI2ZmJfaGVscGVyLVx1MDAzZWxvY2spO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxNzg6XHRkcm1fY2xpZW50X21vZGVzZXRfZHBtcyhcdTAwMjZmYl9oZWxwZXItXHUwMDNlY2xpZW50LCBkcG1zX21vZGUpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xNzktXHRtdXRleF91bmxvY2soXHUwMDI2ZmJfaGVscGVyLVx1MDAzZWxvY2spO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9MzE1PXN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZmJfZGlydHkoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlcilcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTMyNi1cdGlmIChjcnRjX2luZGV4IFx1MDAzZT0gMClcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MzI3Olx0XHRkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKFx1MDAyNmhlbHBlci1cdTAwM2VjbGllbnQsIGNydGNfaW5kZXgpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zMjgtXHRtdXRleF91bmxvY2soXHUwMDI2aGVscGVyLVx1MDAzZWxvY2spO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9OTg0PWludCBkcm1fZmJfaGVscGVyX2lvY3RsKHN0cnVjdCBmYl9pbmZvICppbmZvLCB1bnNpZ25lZCBpbnQgY21kLFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTAwOS1cdFx0ICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjEwMTA6XHRcdHJldCA9IGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmsoXHUwMDI2ZmJfaGVscGVyLVx1MDAzZWNsaWVudCwgMCk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEwMTEtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9MTI3Mz1zdGF0aWMgaW50IHBhbl9kaXNwbGF5X2F0b21pYyhzdHJ1Y3QgZmJfdmFyX3NjcmVlbmluZm8gKnZhcixcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEyODItXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjEyODM6XHRyZXQgPSBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0X2xvY2tlZChcdTAwMjZmYl9oZWxwZXItXHUwMDNlY2xpZW50KTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTI4NC1cdGlmICghcmV0KSB7XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYz0xNTI1PXN0YXRpYyBpbnQgZHJtX2ZiX2hlbHBlcl9zaW5nbGVfZmJfcHJvYmUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcilcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE1MzgtXHRcdGlmICghZmJfaGVscGVyLVx1MDAzZWRlZmVycmVkX3NldHVwKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxNTM5Olx0XHRcdGRybV9jbGllbnRfbW9kZXNldF9jb21taXQoY2xpZW50KTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTU0MC1cdFx0cmV0dXJuIHJldDtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jPTE3MDc9X19kcm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmlnX2FuZF91bmxvY2soc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcilcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE3MTYtXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjE3MTc6XHRkcm1fY2xpZW50X21vZGVzZXRfcHJvYmUoXHUwMDI2ZmJfaGVscGVyLVx1MDAzZWNsaWVudCwgd2lkdGgsIGhlaWdodCk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE3MTgtXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYz0xODM1PWludCBkcm1fZmJfaGVscGVyX2hvdHBsdWdfZXZlbnQoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcilcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE4NTctXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjE4NTg6XHRkcm1fY2xpZW50X21vZGVzZXRfcHJvYmUoXHUwMDI2ZmJfaGVscGVyLVx1MDAzZWNsaWVudCwgZmJfaGVscGVyLVx1MDAzZWZiLVx1MDAzZXdpZHRoLCBmYl9oZWxwZXItXHUwMDNlZmItXHUwMDNlaGVpZ2h0KTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTg1OS1cdGRybV9zZXR1cF9jcnRjc19mYihmYl9oZWxwZXIpO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTE2LVxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM6MTc6c3RydWN0IGRybV9jbGllbnRfbW9kZXNldF90ZXN0X3ByaXYge1xuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtMTgtXHRzdHJ1Y3QgZHJtX2RldmljZSAqZHJtO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTIyLVxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM6MjM6c3RhdGljIGludCBkcm1fY2xpZW50X21vZGVzZXRfY29ubmVjdG9yX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKVxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtMjQte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTQ2LVxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM6NDc6c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyBkcm1fY2xpZW50X21vZGVzZXRfY29ubmVjdG9yX2hlbHBlcl9mdW5jcyA9IHtcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jOjQ4Olx0LmdldF9tb2RlcyA9IGRybV9jbGllbnRfbW9kZXNldF9jb25uZWN0b3JfZ2V0X21vZGVzLFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtNDktfTtcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTUwLVxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM6NTE6c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIGRybV9jbGllbnRfbW9kZXNldF9jb25uZWN0b3JfZnVuY3MgPSB7XG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYy01Mi1cdC5hdG9taWNfZGVzdHJveV9zdGF0ZSAgID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2Rlc3Ryb3lfc3RhdGUsXG4tLVxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtNTUtXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYzo1NjpzdGF0aWMgaW50IGRybV9jbGllbnRfbW9kZXNldF90ZXN0X2luaXQoc3RydWN0IGt1bml0ICp0ZXN0KVxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtNTcte1xuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM6NTg6XHRzdHJ1Y3QgZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3RfcHJpdiAqcHJpdjtcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTU5LVx0aW50IHJldDtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYy03NC1cdHJldCA9IGRybW1fY29ubmVjdG9yX2luaXQocHJpdi1cdTAwM2Vkcm0sIFx1MDAyNnByaXYtXHUwMDNlY29ubmVjdG9yLFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM6NzU6XHRcdFx0XHQgIFx1MDAyNmRybV9jbGllbnRfbW9kZXNldF9jb25uZWN0b3JfZnVuY3MsXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYy03Ni1cdFx0XHRcdCAgRFJNX01PREVfQ09OTkVDVE9SX1Vua25vd24sXG4tLVxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtNzktXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYzo4MDpcdGRybV9jb25uZWN0b3JfaGVscGVyX2FkZChcdTAwMjZwcml2LVx1MDAzZWNvbm5lY3RvciwgXHUwMDI2ZHJtX2NsaWVudF9tb2Rlc2V0X2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpO1xuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtODEtXG4tLVxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM9ODg9c3RhdGljIHZvaWQgZHJtX3Rlc3RfcGlja19jbWRsaW5lX3Jlc18xOTIwXzEwODBfNjAoc3RydWN0IGt1bml0ICp0ZXN0KVxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtODkte1xuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM6OTA6XHRzdHJ1Y3QgZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3RfcHJpdiAqcHJpdiA9IHRlc3QtXHUwMDNlcHJpdjtcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTkxLVx0c3RydWN0IGRybV9kZXZpY2UgKmRybSA9IHByaXYtXHUwMDNlZHJtO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jPTEzMj1zdGF0aWMgdm9pZCBkcm1fdGVzdF9waWNrX2NtZGxpbmVfbmFtZWQoc3RydWN0IGt1bml0ICp0ZXN0KVxuLS1cbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTEzNC1cdGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3BpY2tfY21kbGluZV9tb2RlX3Rlc3QgKnBhcmFtcyA9IHRlc3QtXHUwMDNlcGFyYW1fdmFsdWU7XG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYzoxMzU6XHRzdHJ1Y3QgZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3RfcHJpdiAqcHJpdiA9IHRlc3QtXHUwMDNlcHJpdjtcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTEzNi1cdHN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBwcml2LVx1MDAzZWRybTtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYz0xOTI9c3RhdGljIHN0cnVjdCBrdW5pdF9zdWl0ZSBkcm1fdGVzdF9waWNrX2NtZGxpbmVfdGVzdF9zdWl0ZSA9IHtcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTE5My1cdC5uYW1lID0gXCYjMzQ7ZHJtX3Rlc3RfcGlja19jbWRsaW5lXCYjMzQ7LFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM6MTk0Olx0LmluaXQgPSBkcm1fY2xpZW50X21vZGVzZXRfdGVzdF9pbml0LFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtMTk1LVx0LnRlc3RfY2FzZXMgPSBkcm1fdGVzdF9waWNrX2NtZGxpbmVfdGVzdHNcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYz0xOTg9a3VuaXRfdGVzdF9zdWl0ZShkcm1fdGVzdF9waWNrX2NtZGxpbmVfdGVzdF9zdWl0ZSk7XG4tLVxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtMjAwLS8qXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYzoyMDE6ICogVGhpcyBmaWxlIGlzIGluY2x1ZGVkIGRpcmVjdGx5IGJ5IGRybV9jbGllbnRfbW9kZXNldC5jIHNvIHdlIGNhbiYjMzk7dFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtMjAyLSAqIHVzZSBhbnkgTU9EVUxFXyogbWFjcm8gaGVyZS5cbi0tXG5pbmNsdWRlL2RybS9kcm1fY2xpZW50Lmg9MjEwPXZvaWQgZHJtX2NsaWVudF9idWZmZXJfdnVubWFwKHN0cnVjdCBkcm1fY2xpZW50X2J1ZmZlciAqYnVmZmVyKTtcbmluY2x1ZGUvZHJtL2RybV9jbGllbnQuaC0yMTEtXG5pbmNsdWRlL2RybS9kcm1fY2xpZW50Lmg6MjEyOmludCBkcm1fY2xpZW50X21vZGVzZXRfY3JlYXRlKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KTtcbmluY2x1ZGUvZHJtL2RybV9jbGllbnQuaDoyMTM6dm9pZCBkcm1fY2xpZW50X21vZGVzZXRfZnJlZShzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCk7XG5pbmNsdWRlL2RybS9kcm1fY2xpZW50Lmg6MjE0OmludCBkcm1fY2xpZW50X21vZGVzZXRfcHJvYmUoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIHVuc2lnbmVkIGludCB3aWR0aCwgdW5zaWduZWQgaW50IGhlaWdodCk7XG5pbmNsdWRlL2RybS9kcm1fY2xpZW50LmgtMjE1LWJvb2wgZHJtX2NsaWVudF9yb3RhdGlvbihzdHJ1Y3QgZHJtX21vZGVfc2V0ICptb2Rlc2V0LCB1bnNpZ25lZCBpbnQgKnJvdGF0aW9uKTtcbmluY2x1ZGUvZHJtL2RybV9jbGllbnQuaDoyMTY6aW50IGRybV9jbGllbnRfbW9kZXNldF9jaGVjayhzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCk7XG5pbmNsdWRlL2RybS9kcm1fY2xpZW50Lmg6MjE3OmludCBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0X2xvY2tlZChzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCk7XG5pbmNsdWRlL2RybS9kcm1fY2xpZW50Lmg6MjE4OmludCBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0KHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KTtcbmluY2x1ZGUvZHJtL2RybV9jbGllbnQuaDoyMTk6aW50IGRybV9jbGllbnRfbW9kZXNldF9kcG1zKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCBpbnQgbW9kZSk7XG5pbmNsdWRlL2RybS9kcm1fY2xpZW50Lmg6MjIwOmludCBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCB1bnNpZ25lZCBpbnQgY3J0Y19pbmRleCk7XG5pbmNsdWRlL2RybS9kcm1fY2xpZW50LmgtMjIxLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAwMToxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTE5OAoJCQkJCQkJb3V0cHV0OiAxOAoJCQkJCQkJdGhvdWdodHM6IDQ1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyB0aGUgRFJNIENsaWVudCBNb2Rlc2V0dGluZyBDb21waWxhdGlvbioqCgpBbHJpZ2h0LCBzbyBgZHJtX2NsaWVudF9tb2Rlc2V0LmNgIGlzIGJlaW5nIGNvbXBpbGVkLCBhbmQgaXQmIzM5O3MgZmxhZ2dlZCB1bmRlciBgQ09ORklHX0RSTV9DTElFTlRgLiBNeSBpbW1lZGlhdGUgaW5zdGluY3QgaXMgdG8ganVtcCBpbnRvIHRoZSBgS2NvbmZpZ2AgZmlsZXMg4oCTIHNwZWNpZmljYWxseSBpbiBgZHJpdmVycy9ncHUvZHJtL0tjb25maWdgIOKAkyB0byB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmN5IGFuZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgdGllZCB0byBgQ09ORklHX0RSTV9DTElFTlRgLiBJIHdhbnQgdG8gc2VlIHdoYXQgdGhhdCBjb25maWd1cmF0aW9uIHN5bWJvbCBhY3R1YWxseSAqbWVhbnMqIGluIHRoZSBicm9hZGVyIGNvbnRleHQgb2YgdGhlIERSTSBkcml2ZXIgZnJhbWV3b3JrLiBXaGF0IGFyZSB0aGUgcG90ZW50aWFsIGltcGxpY2F0aW9ucyBvZiBlbmFibGluZyBvciBkaXNhYmxpbmcgaXQ/IEFyZSB0aGVyZSBhbnkgc3BlY2lmaWMgaGFyZHdhcmUgb3Igc29mdHdhcmUgcmVxdWlyZW1lbnRzIGFzc29jaWF0ZWQgd2l0aCBpdD8gSSYjMzk7bSBsb29raW5nIGZvciB0aGUgJiMzNDt3aHkmIzM0OyBhbmQgJiMzNDtob3cmIzM0OyBiZWhpbmQgdGhpcyBjb21waWxhdGlvbiBjaG9pY2UgdG8gdW5kZXJzdGFuZCBpdHMgcm9sZSBpbiB0aGUgZHJpdmVyIGVjb3N5c3RlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIERSTV9DTElFTlQmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9ncHUvZHJtL0tjb25maWc9MTU4PWNvbmZpZyBEUk1fREVCVUdfTU9ERVNFVF9MT0NLXG4tLVxuZHJpdmVycy9ncHUvZHJtL0tjb25maWctMTcyLVxuZHJpdmVycy9ncHUvZHJtL0tjb25maWc6MTczOmNvbmZpZyBEUk1fQ0xJRU5UXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZy0xNzQtXHRib29sXG4tLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0yLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZzozOmNvbmZpZyBEUk1fQ0xJRU5UX0xJQlxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy00LVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTExLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZzoxMjpjb25maWcgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMTMtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMjAtXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjIxOmNvbmZpZyBEUk1fQ0xJRU5UX1NFVFVQXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTIyLVx0Ym9vbFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc9NTQ9Y29uZmlnIERSTV9GQkRFVl9MRUFLX1BIWVNfU01FTVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctNzMtXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjc0OmNvbmZpZyBEUk1fQ0xJRU5UX0xPR1xuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy03NS1cdGJvb2wgXCYjMzQ7UHJpbnQgdGhlIGtlcm5lbCBib290IG1lc3NhZ2Ugb24gdGhlIHNjcmVlblwmIzM0O1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc9ODg9Y2hvaWNlXG4tLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy05OC1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6OTk6Y29uZmlnIERSTV9DTElFTlRfREVGQVVMVF9GQkRFVlxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0xMDAtXHRib29sIFwmIzM0O2ZiZGV2XCYjMzQ7XG4tLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0xMDUtXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjEwNjpjb25maWcgRFJNX0NMSUVOVF9ERUZBVUxUX0xPR1xuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0xMDctXHRib29sIFwmIzM0O2xvZ1wmIzM0O1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc9MTE0PWVuZGNob2ljZVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0xMTUtXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjExNjpjb25maWcgRFJNX0NMSUVOVF9ERUZBVUxUXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTExNy0gICAgICAgc3RyaW5nXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDAxOjEyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2MDA0CgkJCQkJCQlvdXRwdXQ6IDIyCgkJCQkJCQl0aG91Z2h0czogNzEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBEUk0gQ2xpZW50IENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYENPTkZJR19EUk1fQ0xJRU5UYCBhbmQgdGhlIGZpcnN0IHRoaW5nIEkgbm90aWNlIGlzIHRoYXQgaXQmIzM5O3MgYSBoaWRkZW4gYm9vbGVhbi4gVGhhdCBtZWFucyBpdCYjMzk7cyBsaWtlbHkgc2VsZWN0ZWQgYnkgc29tZXRoaW5nIGVsc2UsIGEgZGVwZW5kZW5jeS4gR2l2ZW4gdGhlIG5hbWUsIG15IGd1dCBmZWVsaW5nIGlzIHRoYXQgZWl0aGVyIGBDT05GSUdfRFJNX0NMSUVOVF9MSUJgIG9yIGBDT05GSUdfRFJNX0ZCREVWX0VNVUxBVElPTmAgaXMgcmVzcG9uc2libGUgZm9yIHNlbGVjdGluZyBpdC4gQm90aCBhcmUgcGxhdXNpYmxlIGRlcGVuZGluZyBvbiB0aGUgc3BlY2lmaWMgdXNlIGNhc2UsIGJ1dCBsZXQmIzM5O3MgcXVpY2tseSBjaGVjayBgQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT05gIGZpcnN0LiBJdCBmZWVscyBsaWtlIHRoZSBtb3JlIGxpa2VseSBjYW5kaWRhdGUgdG8gbWUsIGdpdmVuIHRoZSBkaXJlY3QgY29ubmVjdGlvbiB0byBmcmFtZWJ1ZmZlcnMuIEkmIzM5O2xsIG5lZWQgdG8gZ28gZGlnIGludG8gYGRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWdgIHRvIGNvbmZpcm0gdGhpcyBzdXNwaWNpb24uIEZyb20gdGhlcmUsIEkgY2FuIGRldGVybWluZSB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhvc2UgY29uZmlnIG9wdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDAxOjEyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBEUk1fRkJERVZfRU1VTEFUSU9OJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc9Mjg9bWVudSBcJiMzNDtTdXBwb3J0ZWQgRFJNIGNsaWVudHNcJiMzNDtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMwLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZzozMTpjb25maWcgRFJNX0ZCREVWX0VNVUxBVElPTlxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0zMi1cdGJvb2wgXCYjMzQ7RW5hYmxlIGxlZ2FjeSBmYmRldiBzdXBwb3J0IGZvciB5b3VyIG1vZGVzZXR0aW5nIGRyaXZlclwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAwMToxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjM3OQoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDE3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHN1bW1hcnksIHRha2luZyB0aGUgcGVyc3BlY3RpdmUgb2Ygc29tZW9uZSBrbm93bGVkZ2VhYmxlIGluIHRoZSBmaWVsZCBhbmQgYXBwcm9hY2hpbmcgdGhpcyBzcGVjaWZpYyBjb2RlIHF1ZXJ5OgoKKipEZWNvbnN0cnVjdGluZyB0aGUgYERSTV9GQkRFVl9FTVVMQVRJT05gIFNlbGVjdGlvbioqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEkmIzM5O20gdGFraW5nIGEgbG9vayBhdCBgRFJNX0ZCREVWX0VNVUxBVElPTmAgYW5kIHRyeWluZyB0byBmaWd1cmUgb3V0IGV4YWN0bHkgKndoYXQqIGl0JiMzOTtzIGNob29zaW5nLiBJdCYjMzk7cyB0aGF0IGtpbmQgb2YgcXVlc3Rpb24gdGhhdCwgYXMgYSBzcGVjaWFsaXN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aG9yb3VnaGx5LiBJdCBkaXJlY3RseSBpbXBhY3RzIGhvdyB0aGUgZ3JhcGhpY3Mgc3RhY2sgaW50ZXJhY3RzIHdpdGggdGhlIGZyYW1lIGJ1ZmZlci4gSSB3YW50IHRvIHVuZGVyc3RhbmQgd2hhdCBpbXBsaWNhdGlvbnMgdGhpcyBjaG9pY2UgY2FycmllcyBpbiB0aGlzIGNvbnRleHQgYW5kIGhvdyBpdCBpbXBhY3RzIHRoZSBhcmNoaXRlY3R1cmUuIEkmIzM5O2xsIG5lZWQgdG8gcmVtZW1iZXIgYWxsIHRoZSB2YXJpYWJsZXMgaGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIERSTV9GQkRFVl9FTVVMQVRJT04mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc9Mjg9bWVudSBcJiMzNDtTdXBwb3J0ZWQgRFJNIGNsaWVudHNcJiMzNDtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMwLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZzozMTpjb25maWcgRFJNX0ZCREVWX0VNVUxBVElPTlxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0zMi1cdGJvb2wgXCYjMzQ7RW5hYmxlIGxlZ2FjeSBmYmRldiBzdXBwb3J0IGZvciB5b3VyIG1vZGVzZXR0aW5nIGRyaXZlclwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAwMToxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjY4MQoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHM6CgoqKkFuYWx5emluZyB0aGUgRFJNIENsaWVudCBDb25maWd1cmF0aW9uKioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBgZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZ2AgZmlsZS4gSSYjMzk7bSBmb2N1c2luZyBzcGVjaWZpY2FsbHkgYXJvdW5kIGxpbmUgMzEuIFRoaXMgaXMgd2hlcmUgdGhlIHJlYWwgZ3V0cyBvZiB0aGUgY2xpZW50IGNvbmZpZ3VyYXRpb25zIGFyZSBkZWZpbmVkLCBhbmQgd2hlcmUgdGhlIGRlY2lzaW9ucyBnZXQgbWFkZSBvbiB3aGljaCBoYXJkd2FyZSBvciBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkLiBJIGV4cGVjdCB0byBzZWUgdGhlIHR5cGljYWwgYGNvbmZpZ2AgYmxvY2tzLCBjb25kaXRpb25hbCBzdGF0ZW1lbnRzIHVzaW5nIGBkZXBlbmRzIG9uYCwgYHNlbGVjdGAsIGFuZCBob3BlZnVsbHkgc29tZSBkZWNlbnQgaGVscCB0ZXh0IHRvIGd1aWRlIHRoZSBjb25maWd1cmF0aW9uIHByb2Nlc3MuIEkmIzM5O20gaG9waW5nIHRvIHF1aWNrbHkgdW5kZXJzdGFuZCB3aGF0IGNsaWVudHMgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdCwgaG93IHRoZXkmIzM5O3JlIHJlbGF0ZWQgdG8gdmFyaW91cyBoYXJkd2FyZSBwbGF0Zm9ybXMsIGFuZCBhbnkgZGVwZW5kZW5jaWVzIHRoZXkgbWlnaHQgaGF2ZSBvbiBzcGVjaWZpYyBrZXJuZWwgZmVhdHVyZXMgb3Igb3RoZXIgRFJNIG1vZHVsZXMuIEkgbmVlZCB0byBnZXQgYSBoaWdoLWxldmVsIHBpY3R1cmUgb2YgdGhlIGNsaWVudCBjb25maWd1cmF0aW9uIHN0cmF0ZWd5IGhlcmUgc28gSSBjYW4gdW5kZXJzdGFuZCBhbnkgZG93bnN0cmVhbSBpbXBhY3RzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAwMToxMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyNSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgIDI1Olx0XHQgIEVuYWJsZXMgdGhlIERSTSBjbGllbnQgc2VsZWN0aW9uLiBEUk0gZHJpdmVycyB0aGF0IHN1cHBvcnQgdGhlXG4gIDI2Olx0XHQgIGRlZmF1bHQgY2xpZW50cyBzaG91bGQgc2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OIGluc3RlYWQuXG4gIDI3Olx0XG4gIDI4Olx0bWVudSBcJiMzNDtTdXBwb3J0ZWQgRFJNIGNsaWVudHNcJiMzNDtcbiAgMjk6XHRcdGRlcGVuZHMgb24gRFJNX0NMSUVOVF9TRUxFQ1RJT05cbiAgMzA6XHRcbiAgMzE6XHRjb25maWcgRFJNX0ZCREVWX0VNVUxBVElPTlxuICAzMjpcdFx0Ym9vbCBcJiMzNDtFbmFibGUgbGVnYWN5IGZiZGV2IHN1cHBvcnQgZm9yIHlvdXIgbW9kZXNldHRpbmcgZHJpdmVyXCYjMzQ7XG4gIDMzOlx0XHRkZXBlbmRzIG9uIERSTV9DTElFTlRfU0VMRUNUSU9OXG4gIDM0Olx0XHRzZWxlY3QgRFJNX0NMSUVOVFxuICAzNTpcdFx0c2VsZWN0IERSTV9DTElFTlRfU0VUVVBcbiAgMzY6XHRcdHNlbGVjdCBGUkFNRUJVRkZFUl9DT05TT0xFX0RFVEVDVF9QUklNQVJZIGlmIEZSQU1FQlVGRkVSX0NPTlNPTEVcbiAgMzc6XHRcdGRlZmF1bHQgRkJcbiAgMzg6XHRcdGhlbHBcbiAgMzk6XHRcdCAgQ2hvb3NlIHRoaXMgb3B0aW9uIGlmIHlvdSBoYXZlIGEgbmVlZCBmb3IgdGhlIGxlZ2FjeSBmYmRldlxuICA0MDpcdFx0ICBzdXBwb3J0LiBOb3RlIHRoYXQgdGhpcyBzdXBwb3J0IGFsc28gcHJvdmlkZXMgdGhlIGxpbnV4IGNvbnNvbGVcbiAgNDE6XHRcdCAgc3VwcG9ydCBvbiB0b3Agb2YgeW91ciBtb2Rlc2V0dGluZyBkcml2ZXIuXG4gIDQyOlx0XG4gIDQzOlx0XHQgIElmIGluIGRvdWJ0LCBzYXkgXCYjMzQ7WVwmIzM0Oy5cbiAgNDQ6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjcxODgKCQkJCQkJCW91dHB1dDogMTkKCQkJCQkJCXRob3VnaHRzOiAxMDgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTmF2aWdhdGluZyB0aGUgRFJNIENvbmZpZ3VyYXRpb24gTGFuZHNjYXBlKioKCk9rYXksIHNvIEkmIzM5O20gZGl2aW5nIGludG8gdGhpcyBEUk0gY29uZmlndXJhdGlvbiBqdW5nbGUuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGBEUk1fRkJERVZfRU1VTEFUSU9OYCBhdXRvbWF0aWNhbGx5IHB1bGxzIGluIGBEUk1fQ0xJRU5UYCDigJMgZ29vZCB0byBrbm93LiBUaGlzIG1ha2VzIG1lIHJlYWxpemUgd2UgbmVlZCB0byBhZGQgYERSTV9GQkRFVl9FTVVMQVRJT05gIHRvIG91ciBgRW5hYmxlQ29uZmlnc2AuIEJ1dCBoYW5nIG9uIGEgc2Vjb25kLCBJIGhhdmUgYSBmZWVsaW5nIGBEUk1fQ0xJRU5UYCBtaWdodCBiZSBzZWxlY3RlZCBieSBvdGhlciB0aGluZ3MgYXMgd2VsbCwgbWF5YmUgYERSTV9DTElFTlRfTE9HYD8gSSBuZWVkIHRvIHZlcmlmeSB0aGF0LiBMZXQgbWUgbG9vayBhdCBgRFJNX0NMSUVOVF9TRUxFQ1RJT05gLiBBbHJpZ2h0LCBmb3VuZCBpdCwgdGhhdCYjMzk7cyBzZWxlY3RlZCBieSB0aGUgRFJNIGRyaXZlcnMgdGhlbXNlbHZlcy4gTm93LCBqdXN0IHRvIGJlIHRob3JvdWdoIGFuZCBhdm9pZCBhbnkgZ290Y2hhcywgbGV0JiMzOTtzIHF1aWNrbHkgY2hlY2sgYERSTV9WS01TYCB0byBzZWUgaWYgaXQgaW1wbGljaXRseSBzZWxlY3RzIGBEUk1fQ0xJRU5UX1NFTEVDVElPTmAuIFdhbnQgdG8gbWFrZSBzdXJlIGV2ZXJ5dGhpbmcmIzM5O3MgY29ubmVjdGVkIGFzIEkgZXhwZWN0IGl0IHRvIGJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAwMToxMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgRFJNX1ZLTVMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZy0yLVxuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZzozOmNvbmZpZyBEUk1fVktNU1xuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZy00LVx0dHJpc3RhdGUgXCYjMzQ7VmlydHVhbCBLTVMgKEVYUEVSSU1FTlRBTClcJiMzNDtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdmttcy9LY29uZmlnLTE4LVxuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZzoxOTpjb25maWcgRFJNX1ZLTVNfS1VOSVRfVEVTVFxuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZy0yMC1cdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3RzIGZvciBWS01TXCYjMzQ7IGlmICFLVU5JVF9BTExfVEVTVFNcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjc2NjcKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgcmVhZGluZyB0aGUgS2NvbmZpZyBmaWxlOgoKKipEaXZpbmcgaW50byB0aGUgVktNUyBLY29uZmlnKioKCk9rYXksIHRpbWUgdG8gZGlnIGludG8gYGRyaXZlcnMvZ3B1L2RybS92a21zL0tjb25maWdgLiBSaWdodCBhd2F5LCBJJiMzOTttIGV4cGVjdGluZyB0aGlzIGZpbGUgdG8gZGVmaW5lIHRoZSBidWlsZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBWdWxrYW4gS01TIGRyaXZlci4gS25vd2luZyB0aGUgRFJNIHN1YnN5c3RlbSwgSSYjMzk7bSBhbnRpY2lwYXRpbmcgdG8gc2VlIGRlcGVuZGVuY2llcyBvbiB0aGUgY29yZSBEUk0gaW5mcmFzdHJ1Y3R1cmUsIG1heWJlIG9wdGlvbnMgZm9yIHNwZWNpZmljIGhhcmR3YXJlIGZlYXR1cmVzIG9yIHZhcmlhdGlvbnMsIGFuZCBkZWZpbml0ZWx5IHNvbWUgc2VsZWN0aW9ucyByZWxhdGVkIHRvIGRlYnVnIGFuZCB0ZXN0aW5nIGNhcGFiaWxpdGllcy4gSSYjMzk7bGwgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgb3B0aW9ucyBhcmUgYXZhaWxhYmxlIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBWS01TIGRyaXZlciBhbmQgYW55IHJlbGF0ZWQgZmVhdHVyZXMuIEkmIzM5O2xsIGJlIGxvb2tpbmcgZm9yIHRoaW5ncyBsaWtlOgoKKiAgICoqYENPTkZJR19EUk1fVktNU2AqKjogVGhlIG1haW4gc3dpdGNoIHRvIGVuYWJsZSB0aGUgZHJpdmVyLgoqICAgKipEZXBlbmRlbmNpZXMqKjogSSBleHBlY3QgYSBkZXBlbmRlbmN5IG9uIHRoZSBEUk0gY29yZSAoYENPTkZJR19EUk1gKS4gUG9zc2libHkgb3RoZXIgY29yZSBkZXBlbmRlbmNpZXMsIG9yIG9uIHRoZSBwbGF0Zm9ybSB0aGUgZHJpdmVyIGlzIGludGVuZGVkIGZvci4KKiAgICoqU3ViLWZlYXR1cmVzKio6IEFueXRoaW5nIHNwZWNpZmljIHRvIFZLTVMgdGhhdCBjYW4gYmUgY29uZmlndXJlZCwgbGlrZSBkZWJ1ZyBtZXNzYWdlcyAoYENPTkZJR19EUk1fVktNU19ERUJVR2ApLiBNYXliZSBvcHRpb25zIGZvciBzcGVjaWZpYyB2aXJ0dWFsIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb25zIG9yIHJlbmRlcmluZyBtb2Rlcy4KKiAgICoqRG9jdW1lbnRhdGlvbioqOiBJcyBpdCB3ZWxsLWRvY3VtZW50ZWQ/IEkgaG9wZSBpdCYjMzk7cyB3ZWxsLWNvbW1lbnRlZCBiZWNhdXNlIGdvb2QgS2NvbmZpZyBmaWxlcyBhcmUgZXNzZW50aWFsIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBidWlsZCBzeXN0ZW0uIFRoZSBjb21tZW50cyB3aWxsIHRlbGwgbWUgd2hhdCB0aGUgb3B0aW9ucyBkby4KKiAgICoqRGVmYXVsdHMqKjogV2hhdCBhcmUgdGhlIGRlZmF1bHQgdmFsdWVzIGZvciB0aGUgb3B0aW9ucz8gQXJlIHRoZXkgcmVhc29uYWJsZT8gRG8gdGhleSBhbGlnbiB3aXRoIGNvbW1vbiB1c2UgY2FzZXM/CiogICAqKlRyaWdnZXJzKio6IEkgd29uZGVyIGlmIHRoZXJlIGFyZSBhbnkgb3B0aW9ucyB0byBidWlsZCBhIHJlZHVjZWQtZnVuY3Rpb25hbGl0eSBWS01TIGZvciBzcGVjaWZpYyB0YXJnZXRzLiBUaGlzIG1pZ2h0IGJlIHVzZWQgdG8gcmVkdWNlIHRoZSBzaXplIG9yIGNvbXBsZXhpdHkgb2YgdGhlIHN5c3RlbS4KKiAgICoqQ29uZmxpY3RzKio6IEFyZSB0aGVyZSBjb25mbGljdGluZyBvcHRpb25zPyBBcmUgdGhlcmUgYW55IG9wdGlvbnMgd2hpY2ggbWFrZSBvdGhlcnMgbXV0dWFsbHkgZXhjbHVzaXZlPyBUaGlzIGNhbiBiZSBrZXkgd2hlbiBidWlsZGluZyBhbmQgY29uZmlndXJpbmcgdGhlIGtlcm5lbC4KKiAgICoqSGVscCoqOiBIb3cgZ29vZCBpcyB0aGUgaGVscCB0ZXh0PyBJcyBpdCBjbGVhciBhbmQgY29uY2lzZT8gRG9lcyBpdCBwcm92aWRlIGdvb2QgY29udGV4dCBmb3IgdGhlIHVzZXIgdG8gbWFrZSBpbmZvcm1lZCBkZWNpc2lvbnM/CgpJJiMzOTtsbCBiZSBwYXlpbmcgY2xvc2UgYXR0ZW50aW9uIHRvIHRoZSBkZXBlbmRlbmNpZXMsIGFzIHRoZXkgd2lsbCB0ZWxsIG1lIGhvdyB0aGlzIGRyaXZlciBmaXRzIGludG8gdGhlIGJyb2FkZXIgRFJNL1Z1bGthbiBsYW5kc2NhcGUuIEkgYW0gY3VyaW91cyB0byBzZWUgaG93IHRoZSBWS01TIGltcGxlbWVudGF0aW9uIGhhcyBhZGRyZXNzZWQgdGhlIHVzZXIgaW50ZXJmYWNlLiBNeSBwcmltYXJ5IGdvYWwgaGVyZSBpcyB0byBncmFzcCB0aGUgY29uZmlndXJhYmlsaXR5IG9mIFZLTVMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDAxOjEyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuICAgMjpcdFxuICAgMzpcdGNvbmZpZyBEUk1fVktNU1xuICAgNDpcdFx0dHJpc3RhdGUgXCYjMzQ7VmlydHVhbCBLTVMgKEVYUEVSSU1FTlRBTClcJiMzNDtcbiAgIDU6XHRcdGRlcGVuZHMgb24gRFJNIFx1MDAyNlx1MDAyNiBNTVVcbiAgIDY6XHRcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuICAgNzpcdFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXG4gICA4Olx0XHRzZWxlY3QgRFJNX0dFTV9TSE1FTV9IRUxQRVJcbiAgIDk6XHRcdHNlbGVjdCBDUkMzMlxuICAxMDpcdFx0c2VsZWN0IENPTkZJR0ZTX0ZTXG4gIDExOlx0XHRkZWZhdWx0IG5cbiAgMTI6XHRcdGhlbHBcbiAgMTM6XHRcdCAgVmlydHVhbCBLZXJuZWwgTW9kZS1TZXR0aW5nIChWS01TKSBpcyB1c2VkIGZvciB0ZXN0aW5nIG9yIGZvclxuICAxNDpcdFx0ICBydW5uaW5nIEdQVSBpbiBhIGhlYWRsZXNzIG1hY2hpbmVzLiBDaG9vc2UgdGhpcyBvcHRpb24gdG8gZ2V0XG4gIDE1Olx0XHQgIGEgVktNUy5cbiAgMTY6XHRcbiAgMTc6XHRcdCAgSWYgTSBpcyBzZWxlY3RlZCB0aGUgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHZrbXMuXG4gIDE4Olx0XG4gIDE5Olx0Y29uZmlnIERSTV9WS01TX0tVTklUX1RFU1RcbiAgMjA6XHRcdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3RzIGZvciBWS01TXCYjMzQ7IGlmICFLVU5JVF9BTExfVEVTVFNcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjg0NzMKCQkJCQkJCW91dHB1dDogMTkKCQkJCQkJCXRob3VnaHRzOiA4OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGlzIGNvbmZpZ3VyYXRpb24gbG9naWMsIGZvY3VzaW5nIG9uIHRoZSBkZXBlbmRlbmNpZXMgYW5kIHRoZSBvdmVyYWxsIGdvYWw6CgoqKlRoaW5raW5nIFRocm91Z2ggVmlydHVhbCBLTVMgRHJpdmVyIFNlbGVjdGlvbioqCgpBbHJpZ2h0LCBsZXQgbWUgc2VlLi4uIHNvLCBpZiBJJiMzOTttIHVuZGVyc3RhbmRpbmcgdGhpcyBjb3JyZWN0bHksIHRoZSBgRFJNX1ZLTVNgIGRyaXZlciBzcGVjaWZpY2FsbHkgYnJpbmdzIGluIHRoZSBgRFJNX0NMSUVOVF9TRUxFQ1RJT05gIG9wdGlvbi4gVGhhdCBtYWtlcyBzZW5zZSwgYERSTV9WS01TYCBpcyBhIHZpcnR1YWwgS01TIGRyaXZlciBzbyB0aGUgY2xpZW50cyBjYW4gYmUgbWFuYWdlZCBhbmQgc2VsZWN0ZWQuIAoKTm93LCBvbiB0b3Agb2YgdGhhdCwgYERSTV9GQkRFVl9FTVVMQVRJT05gIGRlZmF1bHRzIHRvIGBGQmAsIG9rYXksIGdvdCBpdC4gU28sIHRvIGVuc3VyZSB3ZSBnZXQgdGhlIGZ1bmN0aW9uYWxpdHkgd2UmIzM5O3JlIGFpbWluZyBmb3Ig4oCTIHByZXN1bWFibHkgYSB2aXJ0dWFsIEtNUyBlbnZpcm9ubWVudCB3aXRoIHRoZSBmcmFtZWJ1ZmZlciBlbXVsYXRpb24gYXZhaWxhYmxlIOKAkyB0aGUgY2xlYXIgcGF0aCBpcyB0byBlbmFibGUgYm90aCBgRFJNX1ZLTVNgIGFuZCBgRFJNX0ZCREVWX0VNVUxBVElPTmAuCgpIbW0sIGhvbGQgb24uIFRoZXJlJiMzOTtzIGFub3RoZXIgdmlydHVhbCBkcml2ZXIgaW4gdGhlIG1peDogYERSTV9WR0VNYC4gSSBuZWVkIHRvIGRvdWJsZS1jaGVjayBzb21ldGhpbmcuIElzIGBEUk1fVkdFTWAgYWxzbyBzZWxlY3RpbmcgYERSTV9DTElFTlRfU0VMRUNUSU9OYD8gV2UmIzM5O2xsIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgZGlmZmVyZW5jZXMgb2Ygc2VsZWN0aW9uIGFuZCB3aGVuIHRvIHVzZSB0aGVzZSBkcml2ZXJzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAwMToxMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgRFJNX1ZHRU0mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9ncHUvZHJtL3ZnZW0vS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuZHJpdmVycy9ncHUvZHJtL3ZnZW0vS2NvbmZpZzoyOmNvbmZpZyBEUk1fVkdFTVxuZHJpdmVycy9ncHUvZHJtL3ZnZW0vS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7VmlydHVhbCBHRU0gcHJvdmlkZXJcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjg5MDkKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzIEtjb25maWcgZmlsZSBmb3IgdGhlIHZpcnR1YWwgR0VNIGRyaXZlciDigJMgYGRyaXZlcnMvZ3B1L2RybS92Z2VtL0tjb25maWdgLiBJIG5lZWQgdG8gZ2V0IGEgY2xlYXIgdW5kZXJzdGFuZGluZyBvZiBpdHMgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCBkZXBlbmRlbmNpZXMuCgoqKktjb25maWcgQW5hbHlzaXMgZm9yIFZpcnR1YWwgR0VNKioKClJpZ2h0LCBzbyBJJiMzOTttIGdvaW5nIHRocm91Z2ggdGhpcyBLY29uZmlnIHRvIHNlZSBob3cgdGhlIHZpcnR1YWwgR0VNIGRyaXZlciBpcyBzZXQgdXAgZm9yIGNvbmZpZ3VyYXRpb24uIEl0JiMzOTtzIHRoZSBzdGFuZGFyZCBmb3JtYXQsIHdoaWNoIG1lYW5zIGl0IHNob3VsZCBiZSBzdHJhaWdodGZvcndhcmQgZW5vdWdoIHRvIHBhcnNlLiBJJiMzOTttIGxvb2tpbmcgZm9yIHRoZSBjb3JlIG9wdGlvbnMsIHRoZWlyIGRlZmF1bHRzLCBhbnkgZGVwZW5kZW5jaWVzIG9uIG90aGVyIGtlcm5lbCBmZWF0dXJlcyBvciBkcml2ZXJzLCBhbmQgb2YgY291cnNlLCB3aGF0JiMzOTtzIGNvbnRyb2xsaW5nIHRoZSBidWlsZCBwcm9jZXNzLgoKRmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHRoZXJlJiMzOTtzIGEgbWFpbiBzeW1ib2wuIFRoZW4gdGhlIGRlcGVuZGVuY2llcyBuZWVkIHRvIGJlIHVuZGVyc3Rvb2QgaW4gdGhlIGNvbnRleHQgb2Ygd2hhdCBoYXJkd2FyZSB0aGV5IHRhcmdldCwgb3Igd2hhdCBvdGhlciBvcHRpb25zIGFyZSBuZWVkZWQgZm9yIHRoZSBkcml2ZXIgdG8gd29yay4gSSB3aWxsIGJlIGxvb2tpbmcgdG8gc2VlIGlmIHRoZXJlIGlzIGFueSBtZW50aW9uIG9mIHRoaXMgZHJpdmVyIGJlaW5nIGV4cGVyaW1lbnRhbCwgaWYgaXQgaXMgc3RpbGwgYWN0aXZlLCBvciBpZiBpdCBpcyBkZXByZWNhdGVkLiBBbmQgb2YgY291cnNlLCBJIGFtIG9uIHRoZSBsb29rb3V0IGZvciBhbnkgaW50ZXJlc3Rpbmcgb3IgdW51c3VhbCBjb25maWd1cmF0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL2dwdS9kcm0vdmdlbS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAxMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4gICAyOlx0Y29uZmlnIERSTV9WR0VNXG4gICAzOlx0XHR0cmlzdGF0ZSBcJiMzNDtWaXJ0dWFsIEdFTSBwcm92aWRlclwmIzM0O1xuICAgNDpcdFx0ZGVwZW5kcyBvbiBEUk0gXHUwMDI2XHUwMDI2IE1NVVxuICAgNTpcdFx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXG4gICA2Olx0XHRoZWxwXG4gICA3Olx0XHQgIENob29zZSB0aGlzIG9wdGlvbiB0byBnZXQgYSB2aXJ0dWFsIGdyYXBoaWNzIG1lbW9yeSBtYW5hZ2VyLFxuICAgODpcdFx0ICBhcyB1c2VkIGJ5IE1lc2EmIzM5O3Mgc29mdHdhcmUgcmVuZGVyZXIgZm9yIGVuaGFuY2VkIHBlcmZvcm1hbmNlLlxuICAgOTpcdFx0ICBJZiBNIGlzIHNlbGVjdGVkIHRoZSBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgdmdlbS5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjkzMjAKCQkJCQkJCW91dHB1dDogMjUKCQkJCQkJCXRob3VnaHRzOiAxNTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgRFJNIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gVkdFTSBkb2VzbiYjMzk7dCB1dGlsaXplIEtNUy4gVGhhdCBpbW1lZGlhdGVseSBtZWFucyBJIG5lZWQgdG8gYnlwYXNzIHRoZSBgRFJNX0NMSUVOVF9TRUxFQ1RJT05gIGFuZCBmb2N1cyBvbiBgRFJNX1ZLTVNgIGluc3RlYWQuIFRoYXQmIzM5O3MgYSBrZXkgZmlyc3Qgc3RlcCBpbiBnZXR0aW5nIHRoaXMgd29ya2luZy4gSSBhbHNvIGtub3cgSSBzaG91bGQgZW5hYmxlIGBEUk1fRkJERVZfRU1VTEFUSU9OYC4gTm93LCB0aGUgbmV4dCBxdWVzdGlvbiBpcyBhYm91dCBob3cgdmJsYW5rIHdhaXRzIGFyZSBoYW5kbGVkIGluIHVzZXIgc3BhY2UuIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AgaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIGNhbGxzLgoKUmlnaHQsIGxldCBtZSBzZWUuLi4geWVzLCBJIGNhbiBzZWUgdGhhdCBgZHJtX2ZiX2hlbHBlcl9pb2N0bGAgaXMgY2FsbGluZyBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AsIHdoaWNoIHRoZW4gZ29lcyBvbiB0byBjYWxsIHRoZSBzcGVjaWZpYyBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYCBmdW5jdGlvbiB0aGF0IEkgYW0gaW50ZXJlc3RlZCBpbi4gRnVydGhlcm1vcmUsIEkgbmVlZCB0byByZW1pbmQgbXlzZWxmIHRoYXQgaXQgaXMgYWxzbyBjYWxsZWQgYnkgdGhvc2UgYXRvbWljIGNvbW1pdCBoZWxwZXJzLiBHb29kLCB0aGF0IGNvbmZpcm1zIG15IHVuZGVyc3RhbmRpbmcgb2YgdGhlIHZibGFuayBzeW5jaHJvbml6YXRpb24gcGF0aCBmb3IgYm90aCBsZWdhY3kgYW5kIGF0b21pYyBtb2Rlc2V0dGluZywgYW5kIGl0IHNlZW1zIHRoZSBpbXBsZW1lbnRhdGlvbiBpcyBzb2xpZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9kaXNwbGF5L2RybV9kcF9oZWxwZXIuYz0yMjg3PXN0YXRpYyB2b2lkIGRybV9kcF9hdXhfY3JjX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kaXNwbGF5L2RybV9kcF9oZWxwZXIuYy0yMzAwLVx0d2hpbGUgKGNydGMtXHUwMDNlY3JjLm9wZW5lZCkge1xuZHJpdmVycy9ncHUvZHJtL2Rpc3BsYXkvZHJtX2RwX2hlbHBlci5jOjIzMDE6XHRcdGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhjcnRjKTtcbmRyaXZlcnMvZ3B1L2RybS9kaXNwbGF5L2RybV9kcF9oZWxwZXIuYy0yMzAyLVx0XHRpZiAoIWNydGMtXHUwMDNlY3JjLm9wZW5lZClcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM9MTMwOT1pbnQgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayhzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgdW5zaWduZWQgaW50IGNydGNfaW5kZXgpXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEzMzAtXHRpZiAoIXJldCkge1xuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEzMzE6XHRcdGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzMyLVx0XHRkcm1fY3J0Y192YmxhbmtfcHV0KGNydGMpO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaD0xMTc9dTY0IGRybV92YmxhbmtfY291bnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oOjExODppbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgtMTE5LVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmM9MTI5OD1FWFBPUlRfU1lNQk9MKGRybV9jcnRjX3ZibGFua19wdXQpO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMtMTMwMC0vKipcbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmM6MTMwMTogKiBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwgLSB3YWl0IGZvciBvbmUgdmJsYW5rXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jLTEzMDItICogQGNydGM6IERSTSBjcnRjXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYy0xMzA4LSAqL1xuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYzoxMzA5OmludCBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoc3RydWN0IGRybV9jcnRjICpjcnRjKVxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYy0xMzEwLXtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jLTEzMjYtLyoqXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jOjEzMjc6ICogZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rIC0gd2FpdCBmb3Igb25lIHZibGFua1xuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYy0xMzI4LSAqIEBjcnRjOiBEUk0gY3J0Y1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMtMTMzNS0gKi9cbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmM6MTMzNjppbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMtMTMzNy17XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYy0xMzQ2LVxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYzoxMzQ3Olx0cmV0ID0gZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKGNydGMpO1xuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYy0xMzQ4LVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMtMTM1NC19XG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jOjEzNTU6RVhQT1JUX1NZTUJPTChkcm1fY3J0Y193YWl0X29uZV92YmxhbmspO1xuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYy0xMzU2LVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0Yy5jPTY3PXZvaWQgaW50ZWxfY3J0Y193YWl0X2Zvcl9uZXh0X3ZibGFuayhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YylcbmRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0Yy5jLTY4LXtcbmRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0Yy5jOjY5Olx0ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKFx1MDAyNmNydGMtXHUwMDNlYmFzZSk7XG5kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NydGMuYy03MC19XG4tLVxuZHJpdmVycy9ncHUvZHJtL2luZ2VuaWMvaW5nZW5pYy1kcm0tZHJ2LmM9MjEzPXN0YXRpYyBpbnQgaW5nZW5pY19kcm1fdXBkYXRlX3BpeGNsayhzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9pbmdlbmljL2luZ2VuaWMtZHJtLWRydi5jLTIyMi1cdFx0cHJpdi1cdTAwM2V1cGRhdGVfY2xrX3JhdGUgPSB0cnVlO1xuZHJpdmVycy9ncHUvZHJtL2luZ2VuaWMvaW5nZW5pYy1kcm0tZHJ2LmM6MjIzOlx0XHRkcm1fY3J0Y193YWl0X29uZV92YmxhbmsoXHUwMDI2cHJpdi1cdTAwM2VjcnRjKTtcbmRyaXZlcnMvZ3B1L2RybS9pbmdlbmljL2luZ2VuaWMtZHJtLWRydi5jLTIyNC1cdFx0cmV0dXJuIE5PVElGWV9PSztcbi0tXG5kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2NydGMuYz04MDU9c3RhdGljIHZvaWQgbXRrX2NydGNfYXRvbWljX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY3J0Yy5jLTgzNi1cdC8qIFdhaXQgZm9yIHBsYW5lcyB0byBiZSBkaXNhYmxlZCAqL1xuZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19jcnRjLmM6ODM3Olx0ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKGNydGMpO1xuZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19jcnRjLmMtODM4LVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2NydGMuYz0zNj1zdGF0aWMgdm9pZCBzdGlfY3J0Y19hdG9taWNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsXG4tLVxuZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfY3J0Yy5jLTQ0LVxuZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfY3J0Yy5jOjQ1Olx0ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKGNydGMpO1xuZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfY3J0Yy5jLTQ2LX1cbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMuYz0xNzcxPXN0YXRpYyBpbnQgdGVncmFfZGNfc2hvd19jcmMoc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKVxuLS1cbmRyaXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5jLTE3ODgtXG5kcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMuYzoxNzg5Olx0ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKFx1MDAyNmRjLVx1MDAzZWJhc2UpO1xuZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmM6MTc5MDpcdGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhcdTAwMjZkYy1cdTAwM2ViYXNlKTtcbmRyaXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5jLTE3OTEtXG4tLVxuaW5jbHVkZS9kcm0vZHJtX3ZibGFuay5oPTMwND12b2lkIGRybV9jcnRjX3ZibGFua19wdXQoc3RydWN0IGRybV9jcnRjICpjcnRjKTtcbmluY2x1ZGUvZHJtL2RybV92YmxhbmsuaDozMDU6aW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpO1xuaW5jbHVkZS9kcm0vZHJtX3ZibGFuay5oLTMwNi12b2lkIGRybV9jcnRjX3ZibGFua19vZmYoc3RydWN0IGRybV9jcnRjICpjcnRjKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE0ODYKCQkJCQkJCW91dHB1dDogMTYKCQkJCQkJCXRob3VnaHRzOiA1OTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRFJNIENvcmUgVmJsYW5rIEhhbmRsaW5nIEZpeDogQSBEZWVwIERpdmUqKgoKT2theSwgc28gSSYjMzk7dmUgYmVlbiBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGhvdyBpdCBhZmZlY3RzIHRoZSBEUk0gY29yZSYjMzk7cyB2YmxhbmsgaGFuZGxpbmcsIHNwZWNpZmljYWxseSBhcm91bmQgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AuIFRoaXMgZnVuY3Rpb24sIGFzIHdlIGtub3csIGlzIHVzZWQgdGhyb3VnaG91dCB0aGUgZWNvc3lzdGVtLCBieSBtYW55IGRyaXZlcnMgYW5kIGhlbHBlciBmdW5jdGlvbnMuIFRoZSBwcm9ibGVtLCBhcyBJIHNlZSBpdCwgc3RlbXMgZnJvbSBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgbWFraW5nIGEgbmVzdGVkIGNhbGwg4oCTIGZpcnN0IGdldHRpbmcgdGhlIHZibGFuayBzdGF0dXMgd2l0aCBgZHJtX2NydGNfdmJsYW5rX2dldGAgYW5kICp0aGVuKiBjYWxsaW5nIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgLCB3aGljaCAqYWxzbyogY2FsbHMgYGRybV9jcnRjX3ZibGFua19nZXRgLiBUaGlzIGRvdWJsZS1kaXAsIHNvIHRvIHNwZWFrLCBjb3VsZCBsZWFkIHRvIHBvdGVudGlhbCBpc3N1ZXMsIHBlcmhhcHMgZXZlbiB0cmlnZ2VyaW5nIHRpbWVvdXRzLgoKVGhlIGZpeCwgaW50cm9kdWNpbmcgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAsIG5lYXRseSBhdm9pZHMgdGhpcyBuZXN0ZWQgYGdldC9wdXRgIGN5Y2xlLiBJdCYjMzk7cyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBEUk0gY29yZSwgYW5kIGl0JiMzOTtzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgZmJkZXYgaW9jdGxzIG9yIERSTSBhdG9taWMgY29tbWl0cywgYW5kIHRoYXQgbWVhbnMgaXQmIzM5O3MgZGVmaW5pdGVseSB3b3J0aCBmdXp6aW5nLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgaXMgdGVzdGVkIHRob3JvdWdobHkuCgpNeSBmb2N1cyBpcyBvbiB0aGVzZSBzeW1ib2xzOiBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AsIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgLCBhbmQgdGhlIG5ldyBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYC4KCkkgbmVlZCB0byBuYWlsIGRvd24gdGhlIHJpZ2h0IGNvbmZpZyBvcHRpb25zLiBJJiMzOTttIHRoaW5raW5nIGBEUk1fVktNU2AgYW5kIGBEUk1fRkJERVZfRU1VTEFUSU9OYCBzaG91bGQgYmUgc3VmZmljaWVudCwgYnV0IEkgbmVlZCB0byBiZSBzdXJlLiBMZXQmIzM5O3Mgc2VlLi4uIGBEUk1fVktNU2Agc2VsZWN0cyBgRFJNX0NMSUVOVF9TRUxFQ1RJT05gLiBBbmQgYERSTV9GQkRFVl9FTVVMQVRJT05gIGRlcGVuZHMgb24gYERSTV9DTElFTlRfU0VMRUNUSU9OYC4gU28sIHRoYXQgc2VlbXMgcmlnaHQuCgpOb3csIGRvIEkgbmVlZCBgRFJNX0NMSUVOVGAgZXhwbGljaXRseT8gTm9wZSwgYERSTV9GQkRFVl9FTVVMQVRJT05gIHNlbGVjdHMgYERSTV9DTElFTlRgLiBPa2F5LCB0aGF0JiMzOTtzIGdvb2QuCgpOZXh0LCBJIG5lZWQgdG8gY2hlY2sgdGhlIHNpZ25hdHVyZSBvZiBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYCBhbmQgd2hldGhlciBpdCYjMzk7cyBleHBvcnRlZC4gSXQgaXNuJiMzOTt0LCBidXQgaXQmIzM5O3MgZGVmaW5lZCBpbiBgZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuY2AgYW5kIGRlY2xhcmVkIGluIGBkcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmhgLiBTaW5jZSBpdCYjMzk7cyBub3QgYSBzdGF0aWMgZnVuY3Rpb24sIHRoZXJlICppcyogYSBzeW1ib2wuIEdvb2QuCgpJJiMzOTtsbCBjb25maXJtIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBpcyBleHBvcnRlZCBhbmQgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AgaXMgYWxzbyBleHBvcnRlZC4gWWVzLCB0aGV5IGJvdGggYXJlLgoKRmluYWxseSwgYXJlIHRoZXJlIGFueSBvdGhlciBjcnVjaWFsIGNvbmZpZ3M/IExldCYjMzk7cyBzZWUuLi4gSSYjMzk7bSB3b25kZXJpbmcgYWJvdXQgYEZCYC4gRG9lcyBgRFJNX0ZCREVWX0VNVUxBVElPTmAgcmVxdWlyZSB0aGF0PyBMZXQmIzM5O3MgY2hlY2sgdGhlIGRlcGVuZGVuY2llcy4gYERSTV9GQkRFVl9FTVVMQVRJT05gIGRlcGVuZHMgb24gYERSTV9DTElFTlRfU0VMRUNUSU9OYCwgYW5kIGl0IHNlbGVjdHMgYERSTV9DTElFTlRgIGFuZCBgRFJNX0NMSUVOVF9TRVRVUGAsIGFuZCBpdCAqZGVmYXVsdHMqIHRvIGBGQmAuIFdhaXQsIHRoZSAqZGVmYXVsdCogdmFsdWUsIG1lYW5zIGl0IGRlZmF1bHRzIHRvIHRoZSB2YWx1ZSBvZiBgRkJgLiBBbmQgaXMgYEZCYCBuZWVkZWQ/IEl0IGxvb2tzIGxpa2UgSSBtYXkgbm90IG5lZWQgYEZCYC4gSSB3aWxsIGludmVzdGlnYXRlIGZ1cnRoZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDAxOjEzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBGQiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTA1NCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWV0YS9LY29uZmlnPTE4PWlmIE5FVF9WRU5ET1JfTUVUQVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWV0YS9LY29uZmlnLTE5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWV0YS9LY29uZmlnOjIwOmNvbmZpZyBGQk5JQ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWV0YS9LY29uZmlnLTIxLVx0dHJpc3RhdGUgXCYjMzQ7TWV0YSBQbGF0Zm9ybXMgSG9zdCBOZXR3b3JrIEludGVyZmFjZVwmIzM0O1xuLS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MjptZW51Y29uZmlnIEZCX1RGVFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O1N1cHBvcnQgZm9yIHNtYWxsIFRGVCBMQ0QgZGlzcGxheSBtb2R1bGVzXCYjMzQ7XG4tLVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc9MTQ9aWYgRkJfVEZUXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xNS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjE2OmNvbmZpZyBGQl9URlRfQUdNMTI2NEtfRkxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTE3LVx0dHJpc3RhdGUgXCYjMzQ7RkIgZHJpdmVyIGZvciB0aGUgQUdNMTI2NEstRkwgTENEIGRpc3BsYXlcJiMzNDtcbi0tXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0yMC1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjIxOmNvbmZpZyBGQl9URlRfQkQ2NjM0NzRcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTIyLVx0dHJpc3RhdGUgXCYjMzQ7RkIgZHJpdmVyIGZvciB0aGUgQkQ2NjM0NzQgTENEIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0yNS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjI2OmNvbmZpZyBGQl9URlRfSFg4MzQwQk5cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTI3LVx0dHJpc3RhdGUgXCYjMzQ7RkIgZHJpdmVyIGZvciB0aGUgSFg4MzQwQk4gTENEIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0zMC1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjMxOmNvbmZpZyBGQl9URlRfSFg4MzQ3RFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMzItXHR0cmlzdGF0ZSBcJiMzNDtGQiBkcml2ZXIgZm9yIHRoZSBIWDgzNDdEIExDRCBDb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMzUtXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzozNjpjb25maWcgRkJfVEZUX0hYODM1M0RcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTM3LVx0dHJpc3RhdGUgXCYjMzQ7RkIgZHJpdmVyIGZvciB0aGUgSFg4MzUzRCBMQ0QgQ29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTQwLVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6NDE6Y29uZmlnIEZCX1RGVF9IWDgzNTdEXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy00Mi1cdHRyaXN0YXRlIFwmIzM0O0ZCIGRyaXZlciBmb3IgdGhlIEhYODM1N0QgTENEIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy00NS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjQ2OmNvbmZpZyBGQl9URlRfSUxJOTE2M1xuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctNDctXHR0cmlzdGF0ZSBcJiMzNDtGQiBkcml2ZXIgZm9yIHRoZSBJTEk5MTYzIExDRCBDb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctNTAtXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzo1MTpjb25maWcgRkJfVEZUX0lMSTkzMjBcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTUyLVx0dHJpc3RhdGUgXCYjMzQ7RkIgZHJpdmVyIGZvciB0aGUgSUxJOTMyMCBMQ0QgQ29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTU1LVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6NTY6Y29uZmlnIEZCX1RGVF9JTEk5MzI1XG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy01Ny1cdHRyaXN0YXRlIFwmIzM0O0ZCIGRyaXZlciBmb3IgdGhlIElMSTkzMjUgTENEIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy02MC1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjYxOmNvbmZpZyBGQl9URlRfSUxJOTM0MFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctNjItXHR0cmlzdGF0ZSBcJiMzNDtGQiBkcml2ZXIgZm9yIHRoZSBJTEk5MzQwIExDRCBDb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctNjUtXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzo2Njpjb25maWcgRkJfVEZUX0lMSTkzNDFcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTY3LVx0dHJpc3RhdGUgXCYjMzQ7RkIgZHJpdmVyIGZvciB0aGUgSUxJOTM0MSBMQ0QgQ29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTcwLVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6NzE6Y29uZmlnIEZCX1RGVF9JTEk5NDgxXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy03Mi1cdHRyaXN0YXRlIFwmIzM0O0ZCIGRyaXZlciBmb3IgdGhlIElMSTk0ODEgTENEIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy03NS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjc2OmNvbmZpZyBGQl9URlRfSUxJOTQ4NlxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctNzctXHR0cmlzdGF0ZSBcJiMzNDtGQiBkcml2ZXIgZm9yIHRoZSBJTEk5NDg2IExDRCBDb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctODAtXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzo4MTpjb25maWcgRkJfVEZUX1BDRDg1NDRcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTgyLVx0dHJpc3RhdGUgXCYjMzQ7RkIgZHJpdmVyIGZvciB0aGUgUENEODU0NCBMQ0QgQ29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTg1LVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6ODY6Y29uZmlnIEZCX1RGVF9SQTg4NzVcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTg3LVx0dHJpc3RhdGUgXCYjMzQ7RkIgZHJpdmVyIGZvciB0aGUgUkE4ODc1IExDRCBDb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctOTQtXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzo5NTpjb25maWcgRkJfVEZUX1M2RDAyQTFcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTk2LVx0dHJpc3RhdGUgXCYjMzQ7RkIgZHJpdmVyIGZvciB0aGUgUzZEMDJBMSBMQ0QgQ29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTk5LVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MTAwOmNvbmZpZyBGQl9URlRfUzZEMTEyMVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTAxLVx0dHJpc3RhdGUgXCYjMzQ7RkIgZHJpdmVyIGZvciB0aGUgUzZEMTIxMSBMQ0QgQ29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTEwNC1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjEwNTpjb25maWcgRkJfVEZUX1NFUFM1MjVcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTEwNi1cdHRyaXN0YXRlIFwmIzM0O0ZCIGRyaXZlciBmb3IgdGhlIFNFUFM1MjUgTENEIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xMTAtXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzoxMTE6Y29uZmlnIEZCX1RGVF9TSDExMDZcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTExMi1cdHRyaXN0YXRlIFwmIzM0O0ZCIGRyaXZlciBmb3IgdGhlIFNIMTEwNiBPTEVEIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xMTUtXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzoxMTY6Y29uZmlnIEZCX1RGVF9TU0QxMjg5XG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xMTctXHR0cmlzdGF0ZSBcJiMzNDtGQiBkcml2ZXIgZm9yIHRoZSBTU0QxMjg5IExDRCBDb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTIwLVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MTIxOmNvbmZpZyBGQl9URlRfU1NEMTMwNVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTIyLVx0dHJpc3RhdGUgXCYjMzQ7RkIgZHJpdmVyIGZvciB0aGUgU1NEMTMwNSBPTEVEIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xMjUtXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzoxMjY6Y29uZmlnIEZCX1RGVF9TU0QxMzA2XG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xMjctXHR0cmlzdGF0ZSBcJiMzNDtGQiBkcml2ZXIgZm9yIHRoZSBTU0QxMzA2IE9MRUQgQ29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTEzMC1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjEzMTpjb25maWcgRkJfVEZUX1NTRDEzMzFcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTEzMi1cdHRyaXN0YXRlIFwmIzM0O0ZCIGRyaXZlciBmb3IgdGhlIFNTRDEzMzEgTENEIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xMzUtXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzoxMzY6Y29uZmlnIEZCX1RGVF9TU0QxMzUxXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xMzctXHR0cmlzdGF0ZSBcJiMzNDtGQiBkcml2ZXIgZm9yIHRoZSBTU0QxMzUxIExDRCBDb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTQwLVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MTQxOmNvbmZpZyBGQl9URlRfU1Q3NzM1UlxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTQyLVx0dHJpc3RhdGUgXCYjMzQ7RkIgZHJpdmVyIGZvciB0aGUgU1Q3NzM1UiBMQ0QgQ29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTE0NS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjE0Njpjb25maWcgRkJfVEZUX1NUNzc4OVZcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTE0Ny1cdHRyaXN0YXRlIFwmIzM0O0ZCIGRyaXZlciBmb3IgdGhlIFNUNzc4OVYgTENEIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xNTQtXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzoxNTU6Y29uZmlnIEZCX1RGVF9USU5ZTENEXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xNTYtXHR0cmlzdGF0ZSBcJiMzNDtGQiBkcml2ZXIgZm9yIHRpbnlsY2QuY29tIGRpc3BsYXlcJiMzNDtcbi0tXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xNTktXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzoxNjA6Y29uZmlnIEZCX1RGVF9UTFM4MjA0XG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xNjEtXHR0cmlzdGF0ZSBcJiMzNDtGQiBkcml2ZXIgZm9yIHRoZSBUTFM4MjA0IExDRCBDb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTY0LVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MTY1OmNvbmZpZyBGQl9URlRfVUMxNjExXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xNjYtXHR0cmlzdGF0ZSBcJiMzNDtGQiBkcml2ZXIgZm9yIHRoZSBVQzE2MTEgTENEIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xNjktXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzoxNzA6Y29uZmlnIEZCX1RGVF9VQzE3MDFcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTE3MS1cdHRyaXN0YXRlIFwmIzM0O0ZCIGRyaXZlciBmb3IgdGhlIFVDMTcwMSBMQ0QgQ29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTE3NC1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjE3NTpjb25maWcgRkJfVEZUX1VQRDE2MTcwNFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTc2LVx0dHJpc3RhdGUgXCYjMzQ7RkIgZHJpdmVyIGZvciB0aGUgdVBEMTYxNzA0IExDRCBDb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zdGFnaW5nL3NtNzUwZmIvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbmRyaXZlcnMvc3RhZ2luZy9zbTc1MGZiL0tjb25maWc6Mjpjb25maWcgRkJfU003NTBcbmRyaXZlcnMvc3RhZ2luZy9zbTc1MGZiL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O1NpbGljb24gTW90aW9uIFNNNzUwIGZyYW1lYnVmZmVyIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo2Om1lbnVjb25maWcgRkJcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy03LVx0dHJpc3RhdGUgXCYjMzQ7U3VwcG9ydCBmb3IgZnJhbWUgYnVmZmVyIGRldmljZSBkcml2ZXJzXCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTQ3LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjQ4OmNvbmZpZyBGQl9IRUNVQkFcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00OS1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTUyLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjUzOmNvbmZpZyBGQl9TVkdBTElCXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNTQtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01OS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo2MDpjb25maWcgRkJfTUFDTU9ERVNcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02MS1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTYzLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjY0OmNvbmZpZyBGQl9HUlZHQVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTY1LVx0dHJpc3RhdGUgXCYjMzQ7QWVyb2ZsZXggR2Fpc2xlciBmcmFtZWJ1ZmZlciBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTcwLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjcxOmNvbmZpZyBGQl9DSVJSVVNcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy03Mi1cdHRyaXN0YXRlIFwmIzM0O0NpcnJ1cyBMb2dpYyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTg5LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjkwOmNvbmZpZyBGQl9QTTJcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy05MS1cdHRyaXN0YXRlIFwmIzM0O1Blcm1lZGlhMiBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTExMC1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoxMTE6Y29uZmlnIEZCX1BNMl9GSUZPX0RJU0NPTk5FQ1RcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xMTItXHRib29sIFwmIzM0O2VuYWJsZSBGSUZPIGRpc2Nvbm5lY3QgZmVhdHVyZVwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xMTYtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTE3OmNvbmZpZyBGQl9BQ09STlxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTExOC1cdGJvb2wgXCYjMzQ7QWNvcm4gVklEQyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEyNS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoxMjY6Y29uZmlnIEZCX0NMUFM3MTFYXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTI3LVx0dHJpc3RhdGUgXCYjMzQ7Q0xQUzcxMVggTENEIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTM2LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjEzNzpjb25maWcgRkJfU0ExMTAwXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTM4LVx0Ym9vbCBcJiMzNDtTQS0xMTAwIExDRCBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTE0OC1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoxNDk6Y29uZmlnIEZCX0lNWFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTE1MC1cdHRyaXN0YXRlIFwmIzM0O0ZyZWVzY2FsZSBpLk1YMS8yMS8yNS8yNyBMQ0Qgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xNTctXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTU4OmNvbmZpZyBGQl9DWUJFUjIwMDBcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xNTktXHR0cmlzdGF0ZSBcJiMzNDtDeWJlclBybyAyMDAwLzIwMTAvNTAwMCBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTE2Ny1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoxNjg6Y29uZmlnIEZCX0NZQkVSMjAwMF9ERENcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xNjktXHRib29sIFwmIzM0O0REQyBmb3IgQ3liZXJQcm8gc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xNzYtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTc3OmNvbmZpZyBGQl9DWUJFUjIwMDBfSTJDXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTc4LVx0Ym9vbCBcJiMzNDtDeWJlclBybyAyMDAwLzIwMTAvNTAwMCBJMkMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xODYtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTg3OmNvbmZpZyBGQl9BUE9MTE9cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xODgtXHRib29sXG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTE5NC1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoxOTU6Y29uZmlnIEZCX1E0MFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTE5Ni1cdGJvb2xcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjAwLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjIwMTpjb25maWcgRkJfQU1JR0FcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0yMDItXHR0cmlzdGF0ZSBcJiMzNDtBbWlnYSBuYXRpdmUgY2hpcHNldCBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTIxMS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoyMTI6Y29uZmlnIEZCX0FNSUdBX09DU1xuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTIxMy1cdGJvb2wgXCYjMzQ7QW1pZ2EgT0NTIGNoaXBzZXQgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0yMTktXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MjIwOmNvbmZpZyBGQl9BTUlHQV9FQ1NcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0yMjEtXHRib29sIFwmIzM0O0FtaWdhIEVDUyBjaGlwc2V0IHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjI4LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjIyOTpjb25maWcgRkJfQU1JR0FfQUdBXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjMwLVx0Ym9vbCBcJiMzNDtBbWlnYSBBR0EgY2hpcHNldCBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTIzNy1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoyMzg6Y29uZmlnIEZCX0ZNMlxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTIzOS1cdGJvb2wgXCYjMzQ7QW1pZ2EgRnJhbWVNYXN0ZXIgSUkvUmFpbmJvdyBJSSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTI0NS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoyNDY6Y29uZmlnIEZCX0FSQ1xuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTI0Ny1cdHRyaXN0YXRlIFwmIzM0O0FyYyBNb25vY2hyb21lIExDRCBib2FyZCBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTI1OC1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoyNTk6Y29uZmlnIEZCX0FUQVJJXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjYwLVx0Ym9vbCBcJiMzNDtBdGFyaSBuYXRpdmUgY2hpcHNldCBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTI2OS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoyNzA6Y29uZmlnIEZCX09GXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjcxLVx0dHJpc3RhdGUgXCYjMzQ7T3BlbiBGaXJtd2FyZSBmcmFtZSBidWZmZXIgZGV2aWNlIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjgwLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjI4MTpjb25maWcgRkJfQ09OVFJPTFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTI4Mi1cdGJvb2wgXCYjMzQ7QXBwbGUgXFxcJiMzNDtjb250cm9sXFxcJiMzNDsgZGlzcGxheSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTI4OS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoyOTA6Y29uZmlnIEZCX1BMQVRJTlVNXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjkxLVx0Ym9vbCBcJiMzNDtBcHBsZSBcXFwmIzM0O3BsYXRpbnVtXFxcJiMzNDsgZGlzcGxheSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTI5OC1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoyOTk6Y29uZmlnIEZCX1ZBTEtZUklFXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMzAwLVx0Ym9vbCBcJiMzNDtBcHBsZSBcXFwmIzM0O3ZhbGt5cmllXFxcJiMzNDsgZGlzcGxheSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTMwNy1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzozMDg6Y29uZmlnIEZCX0NUNjU1NTBcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0zMDktXHRib29sIFwmIzM0O0NoaXBzIDY1NTUwIGRpc3BsYXkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0zMTUtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MzE2OmNvbmZpZyBGQl9BU0lMSUFOVFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTMxNy1cdGJvb2wgXCYjMzQ7QXNpbGlhbnQgKENoaXBzKSA2OTAwMCBkaXNwbGF5IHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMzIyLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjMyMzpjb25maWcgRkJfSU1TVFRcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0zMjQtXHRib29sIFwmIzM0O0lNUyBUd2luIFR1cmJvIGRpc3BsYXkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0zMzItXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MzMzOmNvbmZpZyBGQl9WR0ExNlxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTMzNC1cdHRyaXN0YXRlIFwmIzM0O1ZHQSAxNi1jb2xvciBncmFwaGljcyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTM0OS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzozNTA6Y29uZmlnIEZCX1NUSVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTM1MS1cdHRyaXN0YXRlIFwmIzM0O0hQIFNUSSBmcmFtZSBidWZmZXIgZGV2aWNlIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMzY5LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjM3MDpjb25maWcgRkJfTUFDXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMzcxLVx0Ym9vbCBcJiMzNDtHZW5lcmljIE1hY2ludG9zaCBkaXNwbGF5IHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMzc1LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjM3Njpjb25maWcgRkJfSFAzMDBcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0zNzctXHRib29sXG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTM4Mi1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzozODM6Y29uZmlnIEZCX1RHQVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTM4NC1cdHRyaXN0YXRlIFwmIzM0O1RHQS9TRkImIzQzOyBmcmFtZWJ1ZmZlciBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTQwNi1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo0MDc6Y29uZmlnIEZCX1VWRVNBXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDA4LVx0dHJpc3RhdGUgXCYjMzQ7VXNlcnNwYWNlIFZFU0EgVkdBIGdyYXBoaWNzIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDIzLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjQyNDpjb25maWcgRkJfVkVTQVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTQyNS1cdGJvb2wgXCYjMzQ7VkVTQSBWR0EgZ3JhcGhpY3Mgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00MzUtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NDM2OmNvbmZpZyBGQl9FRklcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00MzctXHRib29sIFwmIzM0O0VGSS1iYXNlZCBGcmFtZWJ1ZmZlciBTdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTQ0Ny1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo0NDg6Y29uZmlnIEZCX040MTFcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00NDktXHR0cmlzdGF0ZSBcJiMzNDtONDExIEFwb2xsby9IZWN1YmEgZGV2a2l0IHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDU1LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjQ1Njpjb25maWcgRkJfR0JFXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDU3LVx0Ym9vbCBcJiMzNDtTR0kgR3JhcGhpY3MgQmFja2VuZCBmcmFtZSBidWZmZXIgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00NjQtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NDY1OmNvbmZpZyBGQl9HQkVfTUVNXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDY2LVx0aW50IFwmIzM0O1ZpZGVvIG1lbW9yeSBzaXplIGluIE1CXCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTQ3Mi1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo0NzM6Y29uZmlnIEZCX1NCVVNcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00NzQtXHRib29sIFwmIzM0O1NCVVMgYW5kIFVQQSBmcmFtZWJ1ZmZlcnNcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDc4LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjQ3OTpjb25maWcgRkJfU0JVU19IRUxQRVJTXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDgwLVx0Ym9vbFxuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00ODUtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NDg2OmNvbmZpZyBGQl9CVzJcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00ODctXHRib29sIFwmIzM0O0JXdHdvIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDkyLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjQ5Mzpjb25maWcgRkJfQ0czXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDk0LVx0Ym9vbCBcJiMzNDtDR3RocmVlIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDk5LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjUwMDpjb25maWcgRkJfQ0c2XG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNTAxLVx0Ym9vbCBcJiMzNDtDR3NpeCAoR1gsVHVyYm9HWCkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01MDktXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NTEwOmNvbmZpZyBGQl9GRkJcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01MTEtXHRib29sIFwmIzM0O0NyZWF0b3IvQ3JlYXRvcjNEL0VsaXRlM0Qgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01MTktXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NTIwOmNvbmZpZyBGQl9UQ1hcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01MjEtXHRib29sIFwmIzM0O1RDWCAoU1M0L1NTNSBvbmx5KSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTUyNy1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo1Mjg6Y29uZmlnIEZCX0NHMTRcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01MjktXHRib29sIFwmIzM0O0NHZm91cnRlZW4gKFNYKSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTUzNS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo1MzY6Y29uZmlnIEZCX1A5MTAwXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNTM3LVx0Ym9vbCBcJiMzNDtQOTEwMCAoU3BhcmNib29rIDMgb25seSkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01NDMtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NTQ0OmNvbmZpZyBGQl9MRU9cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01NDUtXHRib29sIFwmIzM0O0xlbyAoWlgpIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNTUxLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjU1Mjpjb25maWcgRkJfWFZSNTAwXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNTUzLVx0Ym9vbCBcJiMzNDtTdW4gWFZSLTUwMCAzRExBQlMgV2lsZGNhdCBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTU2NS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo1NjY6Y29uZmlnIEZCX1hWUjI1MDBcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01NjctXHRib29sIFwmIzM0O1N1biBYVlItMjUwMCAzRExBQlMgV2lsZGNhdCBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTU3Ni1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo1Nzc6Y29uZmlnIEZCX1hWUjEwMDBcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01NzgtXHRib29sIFwmIzM0O1N1biBYVlItMTAwMCBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTU4Ni1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo1ODc6Y29uZmlnIEZCX1BWUjJcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01ODgtXHR0cmlzdGF0ZSBcJiMzNDtORUMgUG93ZXJWUiAyIGRpc3BsYXkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02MDktXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NjEwOmNvbmZpZyBGQl9PUEVOQ09SRVNcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02MTEtXHR0cmlzdGF0ZSBcJiMzNDtPcGVuQ29yZXMgVkdBL0xDRCBjb3JlIDIuMCBmcmFtZWJ1ZmZlciBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTYyMy1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo2MjQ6Y29uZmlnIEZCX1MxRDEzWFhYXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNjI1LVx0dHJpc3RhdGUgXCYjMzQ7RXBzb24gUzFEMTNYWFggZnJhbWVidWZmZXIgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02MzUtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NjM2OmNvbmZpZyBGQl9BVE1FTFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTYzNy1cdHRyaXN0YXRlIFwmIzM0O0FUOTEgTENEIENvbnRyb2xsZXIgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02NDctXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NjQ4OmNvbmZpZyBGQl9OVklESUFcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02NDktXHR0cmlzdGF0ZSBcJiMzNDtuVmlkaWEgRnJhbWVidWZmZXIgU3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02NjctXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NjY4OmNvbmZpZyBGQl9OVklESUFfSTJDXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNjY5LVx0Ym9vbCBcJiMzNDtFbmFibGUgRERDIFN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNjgwLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjY4MTpjb25maWcgRkJfTlZJRElBX0RFQlVHXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNjgyLVx0Ym9vbCBcJiMzNDtMb3RzIG9mIGRlYnVnIG91dHB1dFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02ODgtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6Njg5OmNvbmZpZyBGQl9OVklESUFfQkFDS0xJR0hUXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNjkwLVx0Ym9vbCBcJiMzNDtTdXBwb3J0IGZvciBiYWNrbGlnaHQgY29udHJvbFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02OTctXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6Njk4OmNvbmZpZyBGQl9SSVZBXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNjk5LVx0dHJpc3RhdGUgXCYjMzQ7blZpZGlhIFJpdmEgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy03MTUtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NzE2OmNvbmZpZyBGQl9SSVZBX0kyQ1xuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTcxNy1cdGJvb2wgXCYjMzQ7RW5hYmxlIEREQyBTdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTcyOC1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo3Mjk6Y29uZmlnIEZCX1JJVkFfREVCVUdcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy03MzAtXHRib29sIFwmIzM0O0xvdHMgb2YgZGVidWcgb3V0cHV0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTczNi1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo3Mzc6Y29uZmlnIEZCX1JJVkFfQkFDS0xJR0hUXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNzM4LVx0Ym9vbCBcJiMzNDtTdXBwb3J0IGZvciBiYWNrbGlnaHQgY29udHJvbFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy03NDUtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NzQ2OmNvbmZpZyBGQl9JNzQwXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNzQ3LVx0dHJpc3RhdGUgXCYjMzQ7SW50ZWw3NDAgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy03NTUtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NzU2OmNvbmZpZyBGQl9JODEwXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNzU3LVx0dHJpc3RhdGUgXCYjMzQ7SW50ZWwgODEwLzgxNSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTc3MS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo3NzI6Y29uZmlnIEZCX0k4MTBfR1RGXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNzczLVx0Ym9vbCBcJiMzNDt1c2UgVkVTQSBHZW5lcmFsaXplZCBUaW1pbmcgRm9ybXVsYVwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy03OTQtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6Nzk1OmNvbmZpZyBGQl9JODEwX0kyQ1xuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTc5Ni1cdGJvb2wgXCYjMzQ7RW5hYmxlIEREQyBTdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTgwNC1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo4MDU6Y29uZmlnIEZCX01BVFJPWFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTgwNi1cdHRyaXN0YXRlIFwmIzM0O01hdHJveCBhY2NlbGVyYXRpb25cJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctODI2LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjgyNzpjb25maWcgRkJfTUFUUk9YX01JTExFTklVTVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTgyOC1cdGJvb2wgXCYjMzQ7TWlsbGVubml1bSBJL0lJIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctODM2LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjgzNzpjb25maWcgRkJfTUFUUk9YX01ZU1RJUVVFXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctODM4LVx0Ym9vbCBcJiMzNDtNeXN0aXF1ZSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTg0Ni1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo4NDc6Y29uZmlnIEZCX01BVFJPWF9HXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctODQ4LVx0Ym9vbCBcJiMzNDtHMTAwL0cyMDAvRzQwMC9HNDUwL0c1NTAgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy04NzYtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6ODc3OmNvbmZpZyBGQl9NQVRST1hfSTJDXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctODc4LVx0dHJpc3RhdGUgXCYjMzQ7TWF0cm94IEkyQyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTg5My1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo4OTQ6Y29uZmlnIEZCX01BVFJPWF9NQVZFTlxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTg5NS1cdHRyaXN0YXRlIFwmIzM0O0c0MDAgc2Vjb25kIGhlYWQgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy05MjUtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6OTI2OmNvbmZpZyBGQl9SQURFT05cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy05MjctXHR0cmlzdGF0ZSBcJiMzNDtBVEkgUmFkZW9uIGRpc3BsYXkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy05MzktXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6OTQwOmNvbmZpZyBGQl9SQURFT05fSTJDXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctOTQxLVx0Ym9vbCBcJiMzNDtEREMvSTJDIGZvciBBVEkgUmFkZW9uIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctOTQ3LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjk0ODpjb25maWcgRkJfUkFERU9OX0JBQ0tMSUdIVFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTk0OS1cdGJvb2wgXCYjMzQ7U3VwcG9ydCBmb3IgYmFja2xpZ2h0IGNvbnRyb2xcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctOTU2LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjk1Nzpjb25maWcgRkJfUkFERU9OX0RFQlVHXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctOTU4LVx0Ym9vbCBcJiMzNDtMb3RzIG9mIGRlYnVnIG91dHB1dCBmcm9tIFJhZGVvbiBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctOTY0LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjk2NTpjb25maWcgRkJfQVRZMTI4XG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctOTY2LVx0dHJpc3RhdGUgXCYjMzQ7QVRJIFJhZ2UxMjggZGlzcGxheSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTk3Ny1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo5Nzg6Y29uZmlnIEZCX0FUWTEyOF9CQUNLTElHSFRcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy05NzktXHRib29sIFwmIzM0O1N1cHBvcnQgZm9yIGJhY2tsaWdodCBjb250cm9sXCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTk4Ni1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo5ODc6Y29uZmlnIEZCX0FUWVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTk4OC1cdHRyaXN0YXRlIFwmIzM0O0FUSSBNYWNoNjQgZGlzcGxheSBzdXBwb3J0XCYjMzQ7IGlmIFBDSSB8fCBBVEFSSVxuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xMDAyLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjEwMDM6Y29uZmlnIEZCX0FUWV9DVFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEwMDQtXHRib29sIFwmIzM0O01hY2g2NCBDVC9WVC9HVC9MVCAoaW5jbC4gM0QgUkFHRSkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xMDExLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjEwMTI6Y29uZmlnIEZCX0FUWV9HRU5FUklDX0xDRFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEwMTMtXHRib29sIFwmIzM0O01hY2g2NCBnZW5lcmljIExDRCBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEwMTgtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTAxOTpjb25maWcgRkJfQVRZX0dYXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTAyMC1cdGJvb2wgXCYjMzQ7TWFjaDY0IEdYIHN1cHBvcnRcJiMzNDsgaWYgUENJXG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEwMjktXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTAzMDpjb25maWcgRkJfQVRZX0JBQ0tMSUdIVFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEwMzEtXHRib29sIFwmIzM0O1N1cHBvcnQgZm9yIGJhY2tsaWdodCBjb250cm9sXCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEwMzgtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTAzOTpjb25maWcgRkJfUzNcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xMDQwLVx0dHJpc3RhdGUgXCYjMzQ7UzMgVHJpby9WaXJnZSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEwNTMtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTA1NDpjb25maWcgRkJfUzNfRERDXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTA1NS1cdGJvb2wgXCYjMzQ7RERDIGZvciBTMyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEwNjEtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTA2Mjpjb25maWcgRkJfU0FWQUdFXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDE0MzUKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiA1OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKk5hdmlnYXRpbmcgdGhlIEZyYW1lYnVmZmVyIExhbmRzY2FwZSoqCgpBbHJpZ2h0LCBsZXQmIzM5O3Mgc2VlLiBUaGUgaW5pdGlhbCBgRkJgIOKAkyB0aGF0JiMzOTtzIHNob3J0IGZvciBmcmFtZWJ1ZmZlciwgYW5kIGBDT05GSUdfRkJgIHNlZW1zIHRvIGJlIHRoZSBjb3JlLCB0aGUgZm91bmRhdGlvbmFsIGNvbXBvbmVudC4gU28gZmFyLCBzbyBnb29kLCBtYWtlcyBzZW5zZS4gTm93LCBgRFJNX0ZCREVWX0VNVUxBVElPTmAuLi4gSSYjMzk7bSBwcmV0dHkgc3VyZSB0aGF0IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBsaW5raW5nIHRoaW5ncyB1cCB3aXRoIGBGQl9DT1JFYCwgb3IgYXQgbGVhc3Qgc29tZXRoaW5nIGluIHRoYXQgdmljaW5pdHkuIEJ1dCBJIHJlYWxseSBzaG91bGQgZG91YmxlLWNoZWNrIHRoZSBgS2NvbmZpZ2AgZmlsZXMgYWdhaW4uIEJldHRlciBzYWZlIHRoYW4gc29ycnksIHNwZWNpZmljYWxseSBpbiBgZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZ2AgdG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluLiBBbHdheXMgZ29vZCB0byByZWZyZXNoIHRoZSBtZW1vcnkgd2l0aCB0aG9zZSBjcnVjaWFsIGRlcGVuZGVuY3kgZGVjbGFyYXRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAwMToxMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgRFJNX0ZCREVWX0VNVUxBVElPTiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZz0yOD1tZW51IFwmIzM0O1N1cHBvcnRlZCBEUk0gY2xpZW50c1wmIzM0O1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMzAtXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjMxOmNvbmZpZyBEUk1fRkJERVZfRU1VTEFUSU9OXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMyLVx0Ym9vbCBcJiMzNDtFbmFibGUgbGVnYWN5IGZiZGV2IHN1cHBvcnQgZm9yIHlvdXIgbW9kZXNldHRpbmcgZHJpdmVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDAxOjEzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQxODA0CgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEaXZpbmcgQmFjayBpbnRvIHRoZSBEUk0gQ2xpZW50IEtjb25maWcqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGNpcmNsZSBiYWNrIHRvIGBkcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnYCwgc3BlY2lmaWNhbGx5IGFyb3VuZCBsaW5lIDMxLiBJJiMzOTttIGdvaW5nIHRvIHJlLWV4YW1pbmUgdGhhdCBzZWN0aW9uIHRvIHJlZnJlc2ggbXkgdW5kZXJzdGFuZGluZyBvZiBob3cgdGhlIGNsaWVudCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHN0cnVjdHVyZWQuIEkmIzM5O20gcHJvYmFibHkgbG9va2luZyBmb3IgYSBzcGVjaWZpYyBkZXBlbmRlbmN5IG9yIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIHZhcmlhYmxlIHRoYXQmIzM5O3MgYmVlbiBuYWdnaW5nIGF0IG1lLiBQZXJoYXBzIEnigJltIHRyeWluZyB0byBzb2xpZGlmeSBteSBncmFzcCBvbiBhIHN1YnRsZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIGRpZmZlcmVudCBjbGllbnQgZHJpdmVycyBvciB0cnlpbmcgdG8gdHJhY2sgZG93biBhIGNvbmZpZ3VyYXRpb24gaXNzdWUgSeKAmXZlIGVuY291bnRlcmVkIHJlY2VudGx5LiBPciwgbWF5YmUgSSYjMzk7bSByZXZpZXdpbmcgdGhlIG92ZXJhbGwgYXJjaGl0ZWN0dXJlIGJlZm9yZSBzb21lIGltcGVuZGluZyBjaGFuZ2Ugb3IgY29udHJpYnV0aW9uLiBMZXQgbWUgbWFrZSBzdXJlIEkmIzM5O20gbm90IG1pc3NpbmcgYW55IGVkZ2UgY2FzZXMgb3IgZGVwZW5kZW5jaWVzIEkgbWlnaHQmIzM5O3ZlIG1pc3NlZCB0aGUgZmlyc3QgdGltZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjUsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAyNTpcdFx0ICBFbmFibGVzIHRoZSBEUk0gY2xpZW50IHNlbGVjdGlvbi4gRFJNIGRyaXZlcnMgdGhhdCBzdXBwb3J0IHRoZVxuICAyNjpcdFx0ICBkZWZhdWx0IGNsaWVudHMgc2hvdWxkIHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTiBpbnN0ZWFkLlxuICAyNzpcdFxuICAyODpcdG1lbnUgXCYjMzQ7U3VwcG9ydGVkIERSTSBjbGllbnRzXCYjMzQ7XG4gIDI5Olx0XHRkZXBlbmRzIG9uIERSTV9DTElFTlRfU0VMRUNUSU9OXG4gIDMwOlx0XG4gIDMxOlx0Y29uZmlnIERSTV9GQkRFVl9FTVVMQVRJT05cbiAgMzI6XHRcdGJvb2wgXCYjMzQ7RW5hYmxlIGxlZ2FjeSBmYmRldiBzdXBwb3J0IGZvciB5b3VyIG1vZGVzZXR0aW5nIGRyaXZlclwmIzM0O1xuICAzMzpcdFx0ZGVwZW5kcyBvbiBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuICAzNDpcdFx0c2VsZWN0IERSTV9DTElFTlRcbiAgMzU6XHRcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFVFVQXG4gIDM2Olx0XHRzZWxlY3QgRlJBTUVCVUZGRVJfQ09OU09MRV9ERVRFQ1RfUFJJTUFSWSBpZiBGUkFNRUJVRkZFUl9DT05TT0xFXG4gIDM3Olx0XHRkZWZhdWx0IEZCXG4gIDM4Olx0XHRoZWxwXG4gIDM5Olx0XHQgIENob29zZSB0aGlzIG9wdGlvbiBpZiB5b3UgaGF2ZSBhIG5lZWQgZm9yIHRoZSBsZWdhY3kgZmJkZXZcbiAgNDA6XHRcdCAgc3VwcG9ydC4gTm90ZSB0aGF0IHRoaXMgc3VwcG9ydCBhbHNvIHByb3ZpZGVzIHRoZSBsaW51eCBjb25zb2xlXG4gIDQxOlx0XHQgIHN1cHBvcnQgb24gdG9wIG9mIHlvdXIgbW9kZXNldHRpbmcgZHJpdmVyLlxuICA0MjpcdFxuICA0MzpcdFx0ICBJZiBpbiBkb3VidCwgc2F5IFwmIzM0O1lcJiMzNDsuXG4gIDQ0Olx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDAxOjEzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyMzEyCgkJCQkJCQlvdXRwdXQ6IDIxCgkJCQkJCQl0aG91Z2h0czogOTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdW5kZXJzdGFuZGluZywgZnJhbWVkIGFzIG15IGludGVybmFsIHRob3VnaHQgcHJvY2VzczoKCioqRGVjb2RpbmcgdGhlIGBkZWZhdWx0IEZCYCBDb25maWd1cmF0aW9uKioKClJpZ2h0LCBsZXQgbWUgYnJlYWsgdGhpcyBkb3duLiBXaGVuIEkgc2VlIGBkZWZhdWx0IEZCYCwgaXQmIzM5O3MgaGludGluZyB0aGF0IHRoZSBzeXN0ZW0sIGJ5IGRlZmF1bHQsIHdpbGwgdXNlIHRoZSB2YWx1ZSBzZXQgYnkgYENPTkZJR19GQmAuIFNvIGZhciwgc28gZ29vZC4gSG93ZXZlciwgaXQgKmRvZXNuJiMzOTt0KiBhdXRvbWF0aWNhbGx5IG1lYW4gdGhhdCBpdCBhY3R1YWxseSAqc2VsZWN0cyogYEZCYCBkaXJlY3RseS4gVGhhdCYjMzk7cyBhIGNydWNpYWwgZGlzdGluY3Rpb24uIE5vdywgSSBuZWVkIHRvIHJlbWluZCBteXNlbGYgd2hlcmUgdGhlIHJlbGF0ZWQgY29kZSByZXNpZGVzLiBBaCB5ZXMsIGBkcm1fZmJfaGVscGVyLmNgLiBUaGlzIGZpbGUgcmVsaWVzIG9uIGBmYl9pbmZvYCwgd2hpY2ggaXMgZGVmaW5lZCBpbiBgaW5jbHVkZS9saW51eC9mYi5oYC4KCkJ1dCBub3cgSSBoYXZlIHRvIGFzayBteXNlbGYgYW4gaW1wb3J0YW50IHF1ZXN0aW9uOiBEb2VzIGBkcm1fZmJfaGVscGVyLmNgIGhhdmUgYW4gaW1wbGljaXQgZGVwZW5kZW5jeSBvbiBgQ09ORklHX0ZCYD8gSXQgZmVlbHMgbGlrZSBpdCBtaWdodCwgYnV0IEkgbmVlZCB0byBjb25maXJtLiBNeSBndXQgc2F5cyBJIHNob3VsZCByZS1leGFtaW5lIHRoZSBgZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlYCB0byBlaXRoZXIgY29uZmlybSBvciByZWZ1dGUgbXkgc3VzcGljaW9uLiBJIHdpbGwgZG8gdGhhdCBiZWZvcmUgbWFraW5nIGFueSBhc3N1bXB0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZHJtX2ZiX2hlbHBlci5vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZT0xNTk9ZHJtX2ttc19oZWxwZXItJChDT05GSUdfRFJNX1BBTkVMX0JSSURHRSkgJiM0Mzs9IGJyaWRnZS9wYW5lbC5vXG5kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGU6MTYwOmRybV9rbXNfaGVscGVyLSQoQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT04pICYjNDM7PSBkcm1fZmJfaGVscGVyLm9cbmRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZS0xNjEtb2JqLSQoQ09ORklHX0RSTV9LTVNfSEVMUEVSKSAmIzQzOz0gZHJtX2ttc19oZWxwZXIub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAwMToxMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0Mjc3MQoJCQkJCQkJb3V0cHV0OiAxOAoJCQkJCQkJdGhvdWdodHM6IDcyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgRFJNX0ZCREVWX0VNVUxBVElPTiBhbmQgZnJhbWVidWZmZXIgZGVwZW5kZW5jaWVzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIHRyeWluZyB0byB1bmRlcnN0YW5kIGl0cyBidWlsZCBkZXBlbmRlbmNpZXMuIFRoZSBjcnVjaWFsIHBvaW50IGhlcmUgaXMgdGhlIGBEUk1fRkJERVZfRU1VTEFUSU9OYCBvcHRpb24gYW5kIGhvdyBpdCBhZmZlY3RzIHRoZSBgZHJtX2ZiX2hlbHBlci5vYCBtb2R1bGUuIFNwZWNpZmljYWxseSwgaWYgdGhpcyBlbXVsYXRpb24gZmVhdHVyZSBpcyBlbmFibGVkLCB0aGVuIHRoZSBgZHJtX2ZiX2hlbHBlci5vYCBpcyBnb2luZyB0byBiZSBidWlsdC4gQnV0IEkgaGF2ZSBhIG5hZ2dpbmcgcXVlc3Rpb24gaW4gdGhlIGJhY2sgb2YgbXkgbWluZDogY2FuIGBkcm1fZmJfaGVscGVyLmNgIGV2ZW4gKmNvbXBpbGUqIHdpdGhvdXQgdGhlIGNsYXNzaWMgZnJhbWVidWZmZXIgY29uZmlndXJhdGlvbiAoYENPTkZJR19GQmApIGVuYWJsZWQ/IEl0IHNlZW1zIHVubGlrZWx5LCBnaXZlbiB0aGUgbmFtZSwgYnV0IEkgbmVlZCB0byBjb25maXJtIHRoaXMuCgpUbyBhbnN3ZXIgdGhhdCBxdWVzdGlvbiB3aXRoIGFic29sdXRlIGNlcnRhaW50eSwgSSBuZWVkIHRvIGNvbnN1bHQgdGhlIGNvZGUuIFRoZSBsaWtlbHkgcGxhY2VzIHRvIGZpbmQgdGhpcyBpbmZvcm1hdGlvbiBhcmUgYGluY2x1ZGUvbGludXgvZmIuaGAsIHRoYXQgc2hvdWxkIHByb3ZpZGUgdGhlIGRlY2xhcmF0aW9ucywgb3IgcGVyaGFwcyB0aGUgYGRyaXZlcnMvdmlkZW8vZmJkZXYvY29yZS9NYWtlZmlsZWAuIFRoZSBtYWtlZmlsZSBtaWdodCBoYXZlIGNvbmRpdGlvbmFsIGJ1aWxkIGZsYWdzLCBvciB0aGUgaGVhZGVyIGZpbGUgbWlnaHQgaW5jbHVkZSB0aGUgcmVsZXZhbnQgYGlmZGVmYCBibG9ja3MuIEkmIzM5O2xsIHN0YXJ0IHdpdGggdGhvc2UgYW5kIHNlZSB3aGVyZSBJIGdldC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEZCX0NPUkUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy92aWRlby9mYmRldi9jb3JlL0tjb25maWctNS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvY29yZS9LY29uZmlnOjY6Y29uZmlnIEZCX0NPUkVcbmRyaXZlcnMvdmlkZW8vZmJkZXYvY29yZS9LY29uZmlnLTctXHRzZWxlY3QgVklERU9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDMxNjAKCQkJCQkJCW91dHB1dDogMTgKCQkJCQkJCXRob3VnaHRzOiAyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlIGFuZCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqRFJNX0ZCREVWX0VNVUxBVElPTiBhbmQgRkJfQ09SRTogQSBRdWljayBDaGVjayoqCgpSaWdodCwgbGV0IG1lIGp1c3QgcXVpY2tseSBydW4gdGhyb3VnaCB0aGlzIGluIG15IGhlYWQuIEkgbmVlZCB0byBtYWtlIGFic29sdXRlbHkgc3VyZSBhYm91dCBzb21ldGhpbmcgcmVsYXRlZCB0byB0aGUgRGlyZWN0IFJlbmRlcmluZyBNYW5hZ2VyIChEUk0pIGZyYW1lYnVmZmVyIGVtdWxhdGlvbi4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIHRoaW5raW5nIGFib3V0IHRoZSBkZXBlbmRlbmN5IGJldHdlZW4gYERSTV9GQkRFVl9FTVVMQVRJT05gIGFuZCBgRkJfQ09SRWAuIEl0JiMzOTtzIGEgZnVuZGFtZW50YWwgcmVsYXRpb25zaGlwLCByZWFsbHkuIERvZXMgZW5hYmxpbmcgdGhlIGZvcm1lciBhdXRvbWF0aWNhbGx5IHRyaWdnZXIgdGhlIGxhdHRlcj8gSWYgYERSTV9GQkRFVl9FTVVMQVRJT05gIGlzIHNlbGVjdGVkLCBkb2VzIHRoYXQgaW5oZXJlbnRseSBwdWxsIGluIHRoZSBgRkJfQ09SRWAgY29uZmlndXJhdGlvbiBhcyB3ZWxsPyBJIG5lZWQgdG8gY2xhcmlmeSB0aGF0IGRlcGVuZGVuY3kuIEEgc29saWQgdW5kZXJzdGFuZGluZyBvZiB0aGF0IGxpbmsgaXMgcHJldHR5IG11Y2ggZXNzZW50aWFsIGZvciB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgY29yZSBmcmFtZWJ1ZmZlciBlbXVsYXRpb24gYW5kIERSTSBpbnRlcmZhY2UgaW50ZXJhY3QuIEdvdHRhIG1ha2Ugc3VyZSB0aG9zZSB0d28gYXJlIGNvcnJlY3RseSBsaW5rZWQgc28gdGhhdCB0aGUgdXNlcnNwYWNlIGFwcGxpY2F0aW9ucyBjYW4gd29yayBhcyBpbnRlbmRlZCB3aXRoIHRoZXNlIG1vZHVsZXMuIEl0JiMzOTtzIGEga2V5IHBpZWNlIHRvIHZlcmlmeS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40MC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2VsZWN0IEZCX0NPUkUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9ncHUvZHJtL0tjb25maWc9NDU9Y29uZmlnIERSTV9LTVNfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL0tjb25maWctNDctXHRkZXBlbmRzIG9uIERSTVxuZHJpdmVycy9ncHUvZHJtL0tjb25maWc6NDg6XHRzZWxlY3QgRkJfQ09SRSBpZiBEUk1fRkJERVZfRU1VTEFUSU9OXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZy00OS1cdGhlbHBcbi0tXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZz0yNTA9Y29uZmlnIERSTV9UVE1fSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL0tjb25maWctMjU0LVx0c2VsZWN0IERSTV9LTVNfSEVMUEVSIGlmIERSTV9GQkRFVl9FTVVMQVRJT05cbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnOjI1NTpcdHNlbGVjdCBGQl9DT1JFIGlmIERSTV9GQkRFVl9FTVVMQVRJT05cbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnLTI1Ni1cdHNlbGVjdCBGQl9TWVNNRU1fSEVMUEVSU19ERUZFUlJFRCBpZiBEUk1fRkJERVZfRU1VTEFUSU9OXG4tLVxuZHJpdmVycy9ncHUvZHJtL0tjb25maWc9MjYwPWNvbmZpZyBEUk1fR0VNX0RNQV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZy0yNjMtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVIgaWYgRFJNX0ZCREVWX0VNVUxBVElPTlxuZHJpdmVycy9ncHUvZHJtL0tjb25maWc6MjY0Olx0c2VsZWN0IEZCX0NPUkUgaWYgRFJNX0ZCREVWX0VNVUxBVElPTlxuZHJpdmVycy9ncHUvZHJtL0tjb25maWctMjY1LVx0c2VsZWN0IEZCX0RNQU1FTV9IRUxQRVJTX0RFRkVSUkVEIGlmIERSTV9GQkRFVl9FTVVMQVRJT05cbi0tXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZz0yNjk9Y29uZmlnIERSTV9HRU1fU0hNRU1fSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL0tjb25maWctMjcyLVx0c2VsZWN0IERSTV9LTVNfSEVMUEVSIGlmIERSTV9GQkRFVl9FTVVMQVRJT05cbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnOjI3MzpcdHNlbGVjdCBGQl9DT1JFIGlmIERSTV9GQkRFVl9FTVVMQVRJT05cbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnLTI3NC1cdHNlbGVjdCBGQl9TWVNNRU1fSEVMUEVSU19ERUZFUlJFRCBpZiBEUk1fRkJERVZfRU1VTEFUSU9OXG4tLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZz0zPWNvbmZpZyBEUk1fQ0xJRU5UX0xJQlxuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctNi1cdHNlbGVjdCBEUk1fS01TX0hFTFBFUiBpZiBEUk1fRkJERVZfRU1VTEFUSU9OXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjc6XHRzZWxlY3QgRkJfQ09SRSBpZiBEUk1fRkJERVZfRU1VTEFUSU9OXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTgtXHRoZWxwXG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnPTY9bWVudWNvbmZpZyBGQlxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTctXHR0cmlzdGF0ZSBcJiMzNDtTdXBwb3J0IGZvciBmcmFtZSBidWZmZXIgZGV2aWNlIGRyaXZlcnNcJiMzNDtcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo4Olx0c2VsZWN0IEZCX0NPUkVcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy05LVx0c2VsZWN0IEZCX05PVElGWVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAwMToxMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NDA0MQoJCQkJCQkJb3V0cHV0OiAyMzIKCQkJCQkJCXRob3VnaHRzOiA4NTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb246IERSTSBWYmxhbmsgV2FpdGluZyBMb2dpYyoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBgRFJNX0tNU19IRUxQRVJgIGNob29zZXMgYEZCX0NPUkVgIGlmIHdlIGhhdmUgYERSTV9GQkRFVl9FTVVMQVRJT05gIGVuYWJsZWQuIEFuZCwgYXMgd2Uga25vdywgYERSTV9WS01TYCBhbHNvIHNlbGVjdHMgYERSTV9LTVNfSEVMUEVSYCwgd2hpY2ggaW1wbGljaXRseSBzZWxlY3RzIGBGQl9DT1JFYC4gVGhpcyBtZWFucyBgRkJfQ09SRWAgaXMgaGFuZGxlZCBhdXRvbWFnaWNhbGx5LCBzbyBubyBuZWVkIHRvIGV4cGxpY2l0bHkgd29ycnkgYWJvdXQgdGhhdCBvbmUuIEJhc2ljYWxseSwgd2Ugb25seSBuZWVkIHRvIGVuYWJsZSBgRFJNX1ZLTVNgIGFuZCBgRFJNX0ZCREVWX0VNVUxBVElPTmAuCgpOb3csIHRoZSBpbXBvcnRhbnQgcGFydDogSSBuZWVkIHRvIGNvbmZpcm0gd2hlcmUgdGhlc2Uga2V5IGZ1bmN0aW9ucyBhcmUgY2FsbGVkLiBJIHNlZSB0aGF0IGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBpcyBpbmRlZWQgY2FsbGVkIGFuZCBpcyBleHBvcnRlZC4gVGhlIHBhdGNoIGFsdGVycyBib3RoIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBhbmQgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AuIEJvdGggc2VlbSB0byBiZSByZWFjaGFibGUgLSB3aGljaCBpcyBrZXkhCgpPa2F5LCBsZXQmIzM5O3Mgc3VtbWFyaXplIHRoZSBmdXp6aW5nIHBsYW46CgoqICAgKipXb3J0aEZ1enppbmc6KiogQWJzb2x1dGVseSEKKiAgICoqRm9jdXMgU3ltYm9sczoqKiBXZSBoYXZlIHRvIGZvY3VzIG9uIHRoZSBmb2xsb3dpbmcgc3ltYm9scwogICAgKiAgIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYAogICAgKiAgIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgCiAgICAqICAgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAKKiAgICoqRW5hYmxlQ29uZmlnczoqKgogICAgKiAgIGBEUk1fVktNU2AKICAgICogICBgRFJNX0ZCREVWX0VNVUxBVElPTmAKCldhaXQsIGhhbmcgb24uIGBEUk1fVktNU2AgaXMgYSB2aXJ0dWFsIGRyaXZlciwgcGVyZmVjdCBmb3IgZnV6emluZyBpbiBhIGNvbnRyb2xsZWQgZW52aXJvbm1lbnQuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBpcyB0aGUgcmlnaHQgdmlydHVhbCBkcml2ZXIuIERvZXMgYW55IG90aGVyIHZpcnR1YWwgZHJpdmVyIHVzZSBEUk0/IExldCYjMzk7cyBzZWUuLi4gYERSTV9WR0VNYCBkb2VzbiYjMzk7dCB1c2UgS01TLCBzbyBpdCBkb2VzbiYjMzk7dCB1c2UgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AuIEJ1dCwgYERSTV9WS01TYCAqZG9lcyogdXNlIEtNUyBhbmQgQ1JUQ3MuIFllcywgYERSTV9WS01TYCBpcyB0aGUgY29ycmVjdCB0YXJnZXQuCgpMZXQmIzM5O3MgZG91YmxlLWNoZWNrIHRoZSBkZWZpbml0aW9ucyBvZiB0aGUga2V5IGZ1bmN0aW9ucyB0byBlbnN1cmUgdGhleSYjMzk7cmUgYWNjZXNzaWJsZS4gSSYjMzk7bGwgY29uZmlybSB0aGF0IGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgIGlzIG5vdCBzdGF0aWMsIHdoaWNoIGl0IGlzbiYjMzk7dC4gU2ltaWxhcmx5LCBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgYW5kIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIGFyZSBhbHNvIG5vdCBzdGF0aWMuIEV4Y2VsbGVudC4gTm9uZSBvZiB0aGVzZSBmdW5jdGlvbnMgYXJlIHN0YXRpYyBvciBpbmxpbmVkLgoKVGhlIHJlYXNvbiB0aGlzIGlzIGFsbCB3b3J0aHdoaWxlIGlzIHRoYXQgdGhlIHBhdGNoIHJlZmFjdG9ycyB0aGUgdmJsYW5rIHdhaXRpbmcgbG9naWMgdG8gZWxpbWluYXRlIG5lc3RlZCBgZHJtX2NydGNfdmJsYW5rX2dldGAgY2FsbHMsIGFuZCBpdCBpbnRyb2R1Y2VzIGEgbmV3IGhlbHBlciwgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAuIFRoaXMgZml4ZXMgYSBwb3RlbnRpYWwgaXNzdWUgaW4gYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIGFuZCBtb2RpZmllcyBob3cgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AgZnVuY3Rpb25zLiBTaW5jZSB0aGVzZSBmdW5jdGlvbnMgY2FuIGJlIGFjY2Vzc2VkIGZyb20gdXNlcnNwYWNlIHZpYSBmYmRldiBpb2N0bHMgKGxpa2UgYEZCSU9fV0FJVEZPUlZTWU5DYCkgYW5kIERSTSBhdG9taWMgY29tbWl0cywgdGhlcmUgaXMgYSBmdW5jdGlvbmFsIGltcGFjdCBpbiB0aGUgRFJNIGNvcmUsIG1ha2luZyB0aGVtIHBlcmZlY3QgdGFyZ2V0cy4KClNvLCB0byByZWl0ZXJhdGUsIGl0IHNlZW1zIGxpa2UgYERSTV9WS01TYCBhbmQgYERSTV9GQkRFVl9FTVVMQVRJT05gIGFyZSB0aGUga2V5IGNvbmZpZ3Mgd2Ugd2lsbCBuZWVkLiBUaGlzIHNldHVwIHNob3VsZCBnaXZlIHVzIGEgZ29vZCB0ZXN0YmVkLiBPa2F5LCBJJiMzOTttIHJlYWR5IHRvIHByb2NlZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDAxOjE0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtEUk1fVktNUyYjMzQ7LAogICAgJiMzNDtEUk1fRkJERVZfRU1VTEFUSU9OJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayYjMzQ7LAogICAgJiMzNDtkcm1fY3J0Y193YWl0X29uZV92YmxhbmsmIzM0OywKICAgICYjMzQ7ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlZmFjdG9ycyB0aGUgdmJsYW5rIHdhaXRpbmcgbG9naWMgaW4gdGhlIERSTSBjb3JlIHRvIGF2b2lkIG5lc3RlZCBgZHJtX2NydGNfdmJsYW5rX2dldGAgY2FsbHMsIGludHJvZHVjaW5nIGEgbmV3IGludGVybmFsIGhlbHBlciBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYC4gVGhpcyBmaXhlcyBhIHBvdGVudGlhbCBpc3N1ZSBpbiBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgYW5kIG1vZGlmaWVzIHRoZSBleGVjdXRpb24gZmxvdyBvZiBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGZiZGV2IGlvY3RscyAoZS5nLiwgYEZCSU9fV0FJVEZPUlZTWU5DYCkgYW5kIERSTSBhdG9taWMgY29tbWl0cy4gVGhlIGNoYW5nZXMgaGF2ZSBhIGZ1bmN0aW9uYWwgaW1wYWN0IG9uIHRoZSBEUk0gY29yZSBhbmQgYXJlIHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RSTV9WS01TJiMzNDssCiAgICAmIzM0O0RSTV9GQkRFVl9FTVVMQVRJT04mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rJiMzNDssCiAgICAmIzM0O2RybV9jcnRjX3dhaXRfb25lX3ZibGFuayYjMzQ7LAogICAgJiMzNDtkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVmYWN0b3JzIHRoZSB2Ymxhbmsgd2FpdGluZyBsb2dpYyBpbiB0aGUgRFJNIGNvcmUgdG8gYXZvaWQgbmVzdGVkIGBkcm1fY3J0Y192YmxhbmtfZ2V0YCBjYWxscywgaW50cm9kdWNpbmcgYSBuZXcgaW50ZXJuYWwgaGVscGVyIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgLiBUaGlzIGZpeGVzIGEgcG90ZW50aWFsIGlzc3VlIGluIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBhbmQgbW9kaWZpZXMgdGhlIGV4ZWN1dGlvbiBmbG93IG9mIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgLiBUaGVzZSBmdW5jdGlvbnMgYXJlIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgZmJkZXYgaW9jdGxzIChlLmcuLCBgRkJJT19XQUlURk9SVlNZTkNgKSBhbmQgRFJNIGF0b21pYyBjb21taXRzLiBUaGUgY2hhbmdlcyBoYXZlIGEgZnVuY3Rpb25hbCBpbXBhY3Qgb24gdGhlIERSTSBjb3JlIGFuZCBhcmUgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40My8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAwMToxNDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZWZhY3RvcnMgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AgYnkgZXh0cmFjdGluZyBpdHMgY29yZSB3YWl0aW5nIGxvZ2ljIGludG8gYSBuZXcgaW50ZXJuYWwgZnVuY3Rpb24gYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAuIFRoaXMgYWxsb3dzIGNhbGxlcnMgbGlrZSBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgdGhhdCBhbHJlYWR5IGhvbGQgYSB2YmxhbmsgcmVmZXJlbmNlIHRvIHdhaXQgd2l0aG91dCBhY3F1aXJpbmcgYW5kIHJlbGVhc2luZyB0aGUgcmVmZXJlbmNlIGFnYWluLiBUaGUgY2hhbmdlcyBhcmUgcHVyZWx5IHJlbGF0ZWQgdG8gY29udHJvbCBmbG93LCByZWZlcmVuY2UgY291bnRpbmcsIGFuZCB3YWl0IHF1ZXVlcy4gVGhlcmUgYXJlIG5vIG5ldyBkYXRhIHN0cnVjdHVyZXMgYWxsb2NhdGVkLCBubyBzdHJ1Y3R1cmVzIGNvcGllZCB0byB1c2VyIHNwYWNlLCBhbmQgbm8gdW5pbml0aWFsaXplZCBtZW1vcnkgcmlza3MgaW50cm9kdWNlZC4gQW55IHBvdGVudGlhbCBidWdzIGludHJvZHVjZWQgYnkgdGhpcyBwYXRjaCAoc3VjaCBhcyB1c2UtYWZ0ZXItZnJlZSBkdWUgdG8gaW5jb3JyZWN0IHJlZmVyZW5jZSBjb3VudGluZykgd291bGQgYmUgY2F1Z2h0IGJ5IEtBU0FOIG9yIHN0YW5kYXJkIGtlcm5lbCBkZWJ1Z2dpbmcgdG9vbHMuIFRoZXJlZm9yZSwgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCBuZWNlc3NhcnkuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIHNlY3VyaXR5IGVuZ2luZWVyIHNwZWNpYWxpemluZyBpbiBrZXJuZWwgbWVtb3J5CmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kCmRldGVybWluZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGp1c3RpZnkgc3Bhd25pbmcgYSBkZWRpY2F0ZWQgS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikKZnV6emluZyBzZXNzaW9uIGluIGFkZGl0aW9uIHRvIHN0YW5kYXJkIEtBU0FOIGZ1enppbmcuCgpDUklUSUNBTCBESVNUSU5DVElPTiBCRVRXRUVOIEtBU0FOIEFORCBLTVNBTjoKLSBTdGFuZGFyZCBLQVNBTiBrZXJuZWwgYnVpbGRzICh1cHN0cmVhbS1hcHBhcm1vci1rYXNhbi5jb25maWcpIGFscmVhZHkgZW5hYmxlCiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOCiAgKG91dC1vZi1ib3VuZHMgYWNjZXNzZXMsIHVzZS1hZnRlci1mcmVlLCBkb3VibGUgZnJlZSwgaW52YWxpZCBmcmVlKSwgTE9DS0RFUAogIChsb2NraW5nIGJ1Z3MgYW5kIGRlYWRsb2NrcyksIFVCLXNhbml0aXplcnMsIGFuZCBtZW1vcnkgY29ycnVwdGlvbiBjaGVja3MuCi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsCiAgb3IgcGFnZSBhbGxvY2F0aW9ucykgYW5kIGtlcm5lbC10by11c2VyIG1lbW9yeSBpbmZvLWxlYWtzLgoKUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTiwKTE9DS0RFUCwgT1IgT1RIRVIgU1RBTkRBUkQgQlVHIERFVEVDVE9SUy4KQSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGluY3VycyBzaWduaWZpY2FudCByZXNvdXJjZSBjb3N0cy4gWW91IG11c3QgT05MWQpzZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrcwp0aGF0IGFyZSBkZXRlY3RlZCBPTkxZIGJ5IEtNU0FOLgoKTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3QKdW5pbml0aWFsaXplZCBmaWVsZCBhY2Nlc3NlcyBvciBuZXcgYnVmZmVyIGFsbG9jYXRpb25zIGFyZSBhZGRlZCBpbiB0aGUgZGlmZiBpdHNlbGYsCmEgcGF0Y2ggbWF5IGFsdGVyIGNvbnRyb2wgZmxvdywgYm91bmRzIGNoZWNraW5nLCBvciBkYXRhIGxlbmd0aCBjYWxjdWxhdGlvbnMgaW4gd2F5cwp0aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZwp1bmluaXRpYWxpemVkIHN0YWNrL2hlYXAgbWVtb3J5IHRvIGJlIHJlYWQsIGNvcGllZCB0byB1c2VyIHNwYWNlLCBvciB1c2VkIGluIGNvbnRyb2wKZmxvdykuIERvIG5vdCBoZXNpdGF0ZSB0byB1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlLApjYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy4KClNldCBOZWVkc0tNU0FOPXRydWUgT05MWSBJRiB0aGUgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllczoKMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2IKICAgYXR0cmlidXRlcywgaW9jdGwgb3V0cHV0IGFyZ3VtZW50cywgc29ja2V0IG9wdGlvbnMsIG9yIEJQRiBidWZmZXJzKSB3aGVyZSBmaWVsZHMKICAgb3Igc3RydWN0dXJlIHBhZGRpbmcgbWlnaHQgbm90IGJlIGZ1bGx5IGluaXRpYWxpemVkL3plcm9lZC4KMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlcwogICBvciBzdHJ1Y3QgZmllbGRzLgozLiBBbGxvY2F0aW9uIG9yIGluaXRpYWxpemF0aW9uIG9mIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzCiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuCjQuIEJvdW5kcyBjaGVja3MsIGxlbmd0aHMsIG9yIGxvZ2ljIGluIGEgd2F5IHRoYXQgYWxsb3dzIHN1cnJvdW5kaW5nIGNvZGUgdG8gYWNjZXNzCiAgIHVuaW5pdGlhbGl6ZWQgYnl0ZXMgb2YgZXhpc3RpbmcgYnVmZmVycy4KClNldCBOZWVkc0tNU0FOPWZhbHNlIElGOgotIFRoZSBjb2RlIGNoYW5nZXMgcHJpbWFyaWx5IHJpc2sgb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIGFycmF5IG92ZXJmbG93cywgTlVMTCBwb2ludGVyCiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0CiAgYnkgS0FTQU4sIExPQ0tERVAsIG9yIHN0YW5kYXJkIGJ1ZyBkZXRlY3RvcnMpLgotIEFsbCBzdGFjay9oZWFwIHN0cnVjdHVyZXMgdG91Y2hlZCBvciBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBhcmUgZnVsbHkgemVyb2VkCiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLgotIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcy4KClVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGUKZGV0YWlsZWQgS01TQU5SZWFzb25pbmcgY29udHJhc3RpbmcgS0FTQU4gdnMgS01TQU4gYXBwbGljYWJpbGl0eSBmb3IgdGhpcyBwYXRjaC4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGQ0MGRlY2NjY2ZkYzI4NDYyMmMyMzY2ZWFiODIyYjI3NzA1MzZlZDgKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEF1ZyAxMSAwMToxMTo1OCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYwppbmRleCAwMDgwYThlOTU1NmE1Li43ZmYwZjI0YTBmNTAyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jCkBAIC0xMzI4LDcgJiM0MzsxMzI4LDcgQEAgaW50IGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92Ymxhbmsoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIHVuc2lnbmVkIGkKIAkgKi8KIAlyZXQgPSBkcm1fY3J0Y192YmxhbmtfZ2V0KGNydGMpOwogCWlmICghcmV0KSB7Ci0JCWRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhjcnRjKTsKJiM0MzsJCWRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTsKIAkJZHJtX2NydGNfdmJsYW5rX3B1dChjcnRjKTsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaCBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaAppbmRleCBmODkzYjFlM2E1OTZlLi42ZmQzMzY3MmQyMDZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCkBAIC0xMTUsNiAmIzQzOzExNSw3IEBAIHZvaWQgZHJtX3ZibGFua19kaXNhYmxlX2FuZF9zYXZlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTsKIGludCBkcm1fdmJsYW5rX2dldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7CiB2b2lkIGRybV92YmxhbmtfcHV0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTsKIHU2NCBkcm1fdmJsYW5rX2NvdW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTsKJiM0MztpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7CiAKIC8qIGRybV92Ymxhbmtfd29yay5jICovCiBzdGF0aWMgaW5saW5lIHZvaWQgZHJtX3ZibGFua19mbHVzaF93b3JrZXIoc3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMKaW5kZXggZjkwZmIyZDEzZTQyMy4uOWNhYzcwMTNiNGM5YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jCkBAIC0xMjk3LDYgJiM0MzsxMjk3LDMyIEBAIHZvaWQgZHJtX2NydGNfdmJsYW5rX3B1dChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB9CiBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3ZibGFua19wdXQpOwogCiYjNDM7LyoqCiYjNDM7ICogZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsIC0gd2FpdCBmb3Igb25lIHZibGFuawomIzQzOyAqIEBjcnRjOiBEUk0gY3J0YwomIzQzOyAqCiYjNDM7ICogVGhpcyB3YWl0cyBmb3Igb25lIHZibGFuayB0byBwYXNzIG9uIEBjcnRjLCB1c2luZyB0aGUgaXJxIGRyaXZlciBpbnRlcmZhY2VzLgomIzQzOyAqIEV2ZXJ5IGNhbGxlciBtdXN0IGhvbGQgYSB2YmxhbmsgcmVmZXJlbmNlIGFjcm9zcyB0aGUgY29tcGxldGUgd2FpdC4KJiM0MzsgKgomIzQzOyAqIFJldHVybnM6IDAgb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3Igb24gZmFpbHVyZXMuCiYjNDM7ICovCiYjNDM7aW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0mZ3Q7ZGV2OwomIzQzOwlpbnQgcGlwZSA9IGRybV9jcnRjX2luZGV4KGNydGMpOwomIzQzOwlzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2YmxhbmsgPSBkcm1fY3J0Y192YmxhbmtfY3J0YyhjcnRjKTsKJiM0MzsJaW50IHJldDsKJiM0MzsJdTY0IGxhc3Q7CiYjNDM7CiYjNDM7CWxhc3QgPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSk7CiYjNDM7CiYjNDM7CXJldCA9IHdhaXRfZXZlbnRfdGltZW91dCh2YmxhbmstJmd0O3F1ZXVlLAomIzQzOwkJCQkgbGFzdCAhPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSksCiYjNDM7CQkJCSBtc2Vjc190b19qaWZmaWVzKDEwMDApKTsKJiM0MzsKJiM0MzsJcmV0dXJuIHJldCA/IDAgOiAtRVRJTUVET1VUOwomIzQzO30KJiM0MzsKIC8qKgogICogZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rIC0gd2FpdCBmb3Igb25lIHZibGFuawogICogQGNydGM6IERSTSBjcnRjCkBAIC0xMzExLDI2ICYjNDM7MTMzNywyMCBAQCBpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0mZ3Q7ZGV2OwogCWludCBwaXBlID0gZHJtX2NydGNfaW5kZXgoY3J0Yyk7Ci0Jc3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rID0gZHJtX2NydGNfdmJsYW5rX2NydGMoY3J0Yyk7CiAJaW50IHJldDsKLQl1NjQgbGFzdDsKIAogCXJldCA9IGRybV92YmxhbmtfZ2V0KGRldiwgcGlwZSk7CiAJaWYgKGRybV9XQVJOKGRldiwgcmV0LCAmIzM0O3ZibGFuayBub3QgYXZhaWxhYmxlIG9uIGNydGMgJWksIHJldD0laVxuJiMzNDssCiAJCSAgICAgcGlwZSwgcmV0KSkKIAkJcmV0dXJuIHJldDsKIAotCWxhc3QgPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSk7Ci0KLQlyZXQgPSB3YWl0X2V2ZW50X3RpbWVvdXQodmJsYW5rLSZndDtxdWV1ZSwKLQkJCQkgbGFzdCAhPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSksCi0JCQkJIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOwomIzQzOwlyZXQgPSBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoY3J0Yyk7CiAKLQlkcm1fV0FSTihkZXYsIHJldCA9PSAwLCAmIzM0O3ZibGFuayB3YWl0IHRpbWVkIG91dCBvbiBjcnRjICVpXG4mIzM0OywgcGlwZSk7CiYjNDM7CWRybV9XQVJOKGRldiwgcmV0ID09IC1FVElNRURPVVQsICYjMzQ7dmJsYW5rIHdhaXQgdGltZWQgb3V0IG9uIGNydGMgJWlcbiYjMzQ7LCBwaXBlKTsKIAogCWRybV92YmxhbmtfcHV0KGRldiwgcGlwZSk7CiAKLQlyZXR1cm4gcmV0ID8gMCA6IC1FVElNRURPVVQ7CiYjNDM7CXJldHVybiByZXQ7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayk7CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDUvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDAxOjE0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxNDYKCQkJCQkJCW91dHB1dDogMTkxCgkJCQkJCQl0aG91Z2h0czogNDE0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJlZmFjdG9yaW5nIHRoZSBWYmxhbmsgV2FpdCBQYXRoKioKCk9rYXksIHNvIEkmIzM5O3ZlIGJlZW4gbG9va2luZyBhdCB0aGlzIHBhdGNoLCBhbmQgaXQgbG9va3MgbGlrZSBhIHByZXR0eSBzdHJhaWdodGZvcndhcmQgcmVmYWN0b3Jpbmcgb2YgdGhlIHZibGFuayB3YWl0aW5nIG1lY2hhbmlzbSB3aXRoaW4gdGhlIERSTSBjb3JlLiBCYXNpY2FsbHksIHdoYXQmIzM5O3MgaGFwcGVuaW5nIGlzIGEgZnVuY3Rpb24sIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCwgaXMgYmVpbmcgc3RyZWFtbGluZWQgdG8gYXZvaWQgcmVkdW5kYW50IGNhbGxzIHRvIGBkcm1fdmJsYW5rX2dldGAgYW5kIGBkcm1fdmJsYW5rX3B1dGAuIEkgY2FuIHNlZSB0aGUgbG9naWM7IGl0JiMzOTtzIGFib3V0IG9wdGltaXppbmcgcmVmZXJlbmNlIGNvdW50aW5nLgoKVGhlIG1haW4gY2hhbmdlIGlzIHRoZSBpbnRyb2R1Y3Rpb24gb2YgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAuIFRoaXMgbmV3IGludGVybmFsIGZ1bmN0aW9uIGluIGBkcm1fdmJsYW5rLmNgIGlzIHRoZSBrZXkuIFRoZSBleGlzdGluZyBmdW5jdGlvbiwgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AsIG9yaWdpbmFsbHkgY29udGFpbmVkIGEgYGRybV92YmxhbmtfZ2V0YCBjYWxsIGJ1dCBub3csIHRoZSBjb2RlIG5vdyBnZXRzIGEgcmVmZXJlbmNlIGJlZm9yZSBjYWxsaW5nIHRoZSBuZXcgaW50ZXJuYWwgZnVuY3Rpb24uIFRoaXMgbmV3IGludGVybmFsIGZ1bmN0aW9uIGFzc3VtZXMgdGhlIGNhbGxlciBhbHJlYWR5IGhvbGRzIHRoZSBuZWNlc3NhcnkgcmVmZXJlbmNlLCBza2lwcGluZyB0aGUgZ2V0L3B1dCBjYWxscyB3aXRoaW4gaXRzZWxmLiBUaGlzIGlzIGdvb2Q7IHdlIGRvbiYjMzk7dCB3YW50IHRvIG92ZXItcmVsZWFzZSBvciBkb3VibGUgcmVsZWFzZS4KCkVzc2VudGlhbGx5LCBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYCBpcyBhIGhlbHBlciBmdW5jdGlvbiB0aGF0IHRha2VzIHRoZSBidXJkZW4gb2YgdGhlIHJlZmVyZW5jZSBjb3VudGluZyBmcm9tIHRoZSBwdWJsaWMgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AuIEl0IHNpbXBsaWZpZXMgdGhlIGNvZGUgcGF0aCBieSBhbGxvd2luZyBhIGNhbGxlciB0byBwcm92aWRlIHRoZSByZWZlcmVuY2UgaWYgaXQgaGFzIGl0LiBUaGUgb2xkIGZ1bmN0aW9uIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIGNvbnRpbnVlcyB0byBtYW5hZ2UgdGhlIHJlZmVyZW5jZS4KCkdpdmVuIHRoZSBuYXR1cmUgb2YgdGhlIGNoYW5nZXMsIEkmIzM5O20gY29tZm9ydGFibGUgc2F5aW5nIHRoZXJlJiMzOTtzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgYmVpbmcgZXhwb3NlZCBoZXJlLiBXZSYjMzk7cmUgZGVhbGluZyB3aXRoIHJlZmVyZW5jZSBjb3VudGluZyBhbmQgY29udHJvbCBmbG93IOKAkyBub3Qgd2l0aCBuZXdseSBpbnRyb2R1Y2VkIGRhdGEgc3RydWN0dXJlcywgYWxsb2NhdGlvbnMsIG9yIHBvdGVudGlhbGx5IHVuc2FmZSBtZW1vcnkgYWNjZXNzZXMuIFRoaXMgaXNuJiMzOTt0IGEgc2l0dWF0aW9uIHdoZXJlIEtNU0FOIChLZXJuZWwgTWVtb3J5IFNhbml0aXplcikgaXMgbmVlZGVkLiBLQVNBTiAoS2VybmVsIEFkZHJlc3MgU2FuaXRpemVyKSBhbmQgTE9DS0RFUCBzaG91bGQgYmUgbW9yZSB0aGFuIHN1ZmZpY2llbnQgdG8gY2F0Y2ggYW55IHN1YnRsZSBpc3N1ZXMgbGlrZSB1c2UtYWZ0ZXItZnJlZSBzY2VuYXJpb3MgaWYgdGhlIHJlZmVyZW5jZSBjb3VudGluZyBnb2VzIHdyb25nLiBJIGNhbiBzZWUgbm8gY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgb3IgYm91bmRzIGNoZWNrcyBoZXJlLgoKSSYjMzk7bSBnb2luZyB0byBkb3VibGUtY2hlY2sgdGhlIGRpZmYgdG8gY29uZmlybS4gYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAgd2lsbCBiZSByZXR1cm5pbmcgYDBgIG9uIHN1Y2Nlc3MgYW5kIGAtRVRJTUVET1VUYCBvbiBmYWlsdXJlLiBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYCBzaW1wbHkgcGFzc2VzIGJhY2sgdGhlIHJldHVybiBjb2RlIGZyb20gdGhhdCBpbnRlcm5hbCBmdW5jdGlvbi4gSXQmIzM5O3MgYSBjbGVhbiBzZXBhcmF0aW9uIG9mIGNvbmNlcm5zOiBjb250cm9sIGZsb3cgYW5kIHJlZmNvdW50aW5nLgoKQmFzZWQgb24gdGhpcyBhbmFseXNpcywgSSYjMzk7bSBzZXR0aW5nIGBOZWVkc0tNU0FOPWZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40Ni8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVmYWN0b3JzIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIGJ5IGV4dHJhY3RpbmcgaXRzIGNvcmUgd2FpdGluZyBsb2dpYyBpbnRvIGEgbmV3IGludGVybmFsIGZ1bmN0aW9uIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgLiBUaGlzIGFsbG93cyBjYWxsZXJzIGxpa2UgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIHRoYXQgYWxyZWFkeSBob2xkIGEgdmJsYW5rIHJlZmVyZW5jZSB0byB3YWl0IHdpdGhvdXQgYWNxdWlyaW5nIGFuZCByZWxlYXNpbmcgdGhlIHJlZmVyZW5jZSBhZ2Fpbi4gVGhlIGNoYW5nZXMgYXJlIHB1cmVseSByZWxhdGVkIHRvIGNvbnRyb2wgZmxvdywgcmVmZXJlbmNlIGNvdW50aW5nLCBhbmQgd2FpdCBxdWV1ZXMuIFRoZXJlIGFyZSBubyBuZXcgZGF0YSBzdHJ1Y3R1cmVzIGFsbG9jYXRlZCwgbm8gc3RydWN0dXJlcyBjb3BpZWQgdG8gdXNlciBzcGFjZSwgYW5kIG5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJpc2tzIGludHJvZHVjZWQuIEFueSBwb3RlbnRpYWwgYnVncyBpbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2ggKHN1Y2ggYXMgdXNlLWFmdGVyLWZyZWUgZHVlIHRvIGluY29ycmVjdCByZWZlcmVuY2UgY291bnRpbmcpIHdvdWxkIGJlIGNhdWdodCBieSBLQVNBTiBvciBzdGFuZGFyZCBrZXJuZWwgZGVidWdnaW5nIHRvb2xzLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgbmVjZXNzYXJ5LiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVmYWN0b3JzIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIGJ5IGV4dHJhY3RpbmcgaXRzIGNvcmUgd2FpdGluZyBsb2dpYyBpbnRvIGEgbmV3IGludGVybmFsIGZ1bmN0aW9uIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgLiBUaGlzIGFsbG93cyBjYWxsZXJzIGxpa2UgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIHRoYXQgYWxyZWFkeSBob2xkIGEgdmJsYW5rIHJlZmVyZW5jZSB0byB3YWl0IHdpdGhvdXQgYWNxdWlyaW5nIGFuZCByZWxlYXNpbmcgdGhlIHJlZmVyZW5jZSBhZ2Fpbi4gVGhlIGNoYW5nZXMgYXJlIHB1cmVseSByZWxhdGVkIHRvIGNvbnRyb2wgZmxvdywgcmVmZXJlbmNlIGNvdW50aW5nLCBhbmQgd2FpdCBxdWV1ZXMuIFRoZXJlIGFyZSBubyBuZXcgZGF0YSBzdHJ1Y3R1cmVzIGFsbG9jYXRlZCwgbm8gc3RydWN0dXJlcyBjb3BpZWQgdG8gdXNlciBzcGFjZSwgYW5kIG5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJpc2tzIGludHJvZHVjZWQuIEFueSBwb3RlbnRpYWwgYnVncyBpbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2ggKHN1Y2ggYXMgdXNlLWFmdGVyLWZyZWUgZHVlIHRvIGluY29ycmVjdCByZWZlcmVuY2UgY291bnRpbmcpIHdvdWxkIGJlIGNhdWdodCBieSBLQVNBTiBvciBzdGFuZGFyZCBrZXJuZWwgZGVidWdnaW5nIHRvb2xzLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgbmVjZXNzYXJ5LiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMTo1OS4yNjc1ODc1MDJaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjk3MDE4NzMwMzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiRFJNX1ZLTVNcIixcbiAgICBcIkRSTV9GQkRFVl9FTVVMQVRJT05cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rXCIsXG4gICAgXCJkcm1fY3J0Y193YWl0X29uZV92YmxhbmtcIixcbiAgICBcImRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbFwiXG4gIF0sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVmYWN0b3JzIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIGJ5IGV4dHJhY3RpbmcgaXRzIGNvcmUgd2FpdGluZyBsb2dpYyBpbnRvIGEgbmV3IGludGVybmFsIGZ1bmN0aW9uIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgLiBUaGlzIGFsbG93cyBjYWxsZXJzIGxpa2UgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIHRoYXQgYWxyZWFkeSBob2xkIGEgdmJsYW5rIHJlZmVyZW5jZSB0byB3YWl0IHdpdGhvdXQgYWNxdWlyaW5nIGFuZCByZWxlYXNpbmcgdGhlIHJlZmVyZW5jZSBhZ2Fpbi4gVGhlIGNoYW5nZXMgYXJlIHB1cmVseSByZWxhdGVkIHRvIGNvbnRyb2wgZmxvdywgcmVmZXJlbmNlIGNvdW50aW5nLCBhbmQgd2FpdCBxdWV1ZXMuIFRoZXJlIGFyZSBubyBuZXcgZGF0YSBzdHJ1Y3R1cmVzIGFsbG9jYXRlZCwgbm8gc3RydWN0dXJlcyBjb3BpZWQgdG8gdXNlciBzcGFjZSwgYW5kIG5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJpc2tzIGludHJvZHVjZWQuIEFueSBwb3RlbnRpYWwgYnVncyBpbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2ggKHN1Y2ggYXMgdXNlLWFmdGVyLWZyZWUgZHVlIHRvIGluY29ycmVjdCByZWZlcmVuY2UgY291bnRpbmcpIHdvdWxkIGJlIGNhdWdodCBieSBLQVNBTiBvciBzdGFuZGFyZCBrZXJuZWwgZGVidWdnaW5nIHRvb2xzLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgbmVjZXNzYXJ5LlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHJlZmFjdG9ycyB0aGUgdmJsYW5rIHdhaXRpbmcgbG9naWMgaW4gdGhlIERSTSBjb3JlIHRvIGF2b2lkIG5lc3RlZCBgZHJtX2NydGNfdmJsYW5rX2dldGAgY2FsbHMsIGludHJvZHVjaW5nIGEgbmV3IGludGVybmFsIGhlbHBlciBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYC4gVGhpcyBmaXhlcyBhIHBvdGVudGlhbCBpc3N1ZSBpbiBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgYW5kIG1vZGlmaWVzIHRoZSBleGVjdXRpb24gZmxvdyBvZiBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGZiZGV2IGlvY3RscyAoZS5nLiwgYEZCSU9fV0FJVEZPUlZTWU5DYCkgYW5kIERSTSBhdG9taWMgY29tbWl0cy4gVGhlIGNoYW5nZXMgaGF2ZSBhIGZ1bmN0aW9uYWwgaW1wYWN0IG9uIHRoZSBEUk0gY29yZSBhbmQgYXJlIHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDAxOjExOjU5LjI2NzU5MzcxMloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDM0NTMxMzQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZDQwZGVjY2NjZmRjMjg0NjIyYzIzNjZlYWI4MjJiMjc3MDUzNmVkOFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVHVlIEF1ZyAxMSAwMToxMTo1OCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmNcXG5pbmRleCAwMDgwYThlOTU1NmE1Li43ZmYwZjI0YTBmNTAyIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuY1xcbisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuY1xcbkBAIC0xMzI4LDcgKzEzMjgsNyBAQCBpbnQgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayhzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgdW5zaWduZWQgaVxcbiBcXHQgKi9cXG4gXFx0cmV0ID0gZHJtX2NydGNfdmJsYW5rX2dldChjcnRjKTtcXG4gXFx0aWYgKCFyZXQpIHtcXG4tXFx0XFx0ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKGNydGMpO1xcbitcXHRcXHRkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoY3J0Yyk7XFxuIFxcdFxcdGRybV9jcnRjX3ZibGFua19wdXQoY3J0Yyk7XFxuIFxcdH1cXG4gXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaCBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaFxcbmluZGV4IGY4OTNiMWUzYTU5NmUuLjZmZDMzNjcyZDIwNmEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oXFxuKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oXFxuQEAgLTExNSw2ICsxMTUsNyBAQCB2b2lkIGRybV92YmxhbmtfZGlzYWJsZV9hbmRfc2F2ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7XFxuIGludCBkcm1fdmJsYW5rX2dldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7XFxuIHZvaWQgZHJtX3ZibGFua19wdXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpO1xcbiB1NjQgZHJtX3ZibGFua19jb3VudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7XFxuK2ludCBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoc3RydWN0IGRybV9jcnRjICpjcnRjKTtcXG4gXFxuIC8qIGRybV92Ymxhbmtfd29yay5jICovXFxuIHN0YXRpYyBpbmxpbmUgdm9pZCBkcm1fdmJsYW5rX2ZsdXNoX3dvcmtlcihzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2YmxhbmspXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jXFxuaW5kZXggZjkwZmIyZDEzZTQyMy4uOWNhYzcwMTNiNGM5YyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jXFxuKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuY1xcbkBAIC0xMjk3LDYgKzEyOTcsMzIgQEAgdm9pZCBkcm1fY3J0Y192YmxhbmtfcHV0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcXG4gfVxcbiBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3ZibGFua19wdXQpO1xcbiBcXG4rLyoqXFxuKyAqIGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbCAtIHdhaXQgZm9yIG9uZSB2YmxhbmtcXG4rICogQGNydGM6IERSTSBjcnRjXFxuKyAqXFxuKyAqIFRoaXMgd2FpdHMgZm9yIG9uZSB2YmxhbmsgdG8gcGFzcyBvbiBAY3J0YywgdXNpbmcgdGhlIGlycSBkcml2ZXIgaW50ZXJmYWNlcy5cXG4rICogRXZlcnkgY2FsbGVyIG11c3QgaG9sZCBhIHZibGFuayByZWZlcmVuY2UgYWNyb3NzIHRoZSBjb21wbGV0ZSB3YWl0LlxcbisgKlxcbisgKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIG9uIGZhaWx1cmVzLlxcbisgKi9cXG4raW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpXFxuK3tcXG4rXFx0c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtXFx1MDAzZWRldjtcXG4rXFx0aW50IHBpcGUgPSBkcm1fY3J0Y19pbmRleChjcnRjKTtcXG4rXFx0c3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rID0gZHJtX2NydGNfdmJsYW5rX2NydGMoY3J0Yyk7XFxuK1xcdGludCByZXQ7XFxuK1xcdHU2NCBsYXN0O1xcbitcXG4rXFx0bGFzdCA9IGRybV92YmxhbmtfY291bnQoZGV2LCBwaXBlKTtcXG4rXFxuK1xcdHJldCA9IHdhaXRfZXZlbnRfdGltZW91dCh2YmxhbmstXFx1MDAzZXF1ZXVlLFxcbitcXHRcXHRcXHRcXHQgbGFzdCAhPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSksXFxuK1xcdFxcdFxcdFxcdCBtc2Vjc190b19qaWZmaWVzKDEwMDApKTtcXG4rXFxuK1xcdHJldHVybiByZXQgPyAwIDogLUVUSU1FRE9VVDtcXG4rfVxcbitcXG4gLyoqXFxuICAqIGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayAtIHdhaXQgZm9yIG9uZSB2YmxhbmtcXG4gICogQGNydGM6IERSTSBjcnRjXFxuQEAgLTEzMTEsMjYgKzEzMzcsMjAgQEAgaW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpXFxuIHtcXG4gXFx0c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtXFx1MDAzZWRldjtcXG4gXFx0aW50IHBpcGUgPSBkcm1fY3J0Y19pbmRleChjcnRjKTtcXG4tXFx0c3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rID0gZHJtX2NydGNfdmJsYW5rX2NydGMoY3J0Yyk7XFxuIFxcdGludCByZXQ7XFxuLVxcdHU2NCBsYXN0O1xcbiBcXG4gXFx0cmV0ID0gZHJtX3ZibGFua19nZXQoZGV2LCBwaXBlKTtcXG4gXFx0aWYgKGRybV9XQVJOKGRldiwgcmV0LCBcXFwidmJsYW5rIG5vdCBhdmFpbGFibGUgb24gY3J0YyAlaSwgcmV0PSVpXFxcXG5cXFwiLFxcbiBcXHRcXHQgICAgIHBpcGUsIHJldCkpXFxuIFxcdFxcdHJldHVybiByZXQ7XFxuIFxcbi1cXHRsYXN0ID0gZHJtX3ZibGFua19jb3VudChkZXYsIHBpcGUpO1xcbi1cXG4tXFx0cmV0ID0gd2FpdF9ldmVudF90aW1lb3V0KHZibGFuay1cXHUwMDNlcXVldWUsXFxuLVxcdFxcdFxcdFxcdCBsYXN0ICE9IGRybV92YmxhbmtfY291bnQoZGV2LCBwaXBlKSxcXG4tXFx0XFx0XFx0XFx0IG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpO1xcbitcXHRyZXQgPSBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoY3J0Yyk7XFxuIFxcbi1cXHRkcm1fV0FSTihkZXYsIHJldCA9PSAwLCBcXFwidmJsYW5rIHdhaXQgdGltZWQgb3V0IG9uIGNydGMgJWlcXFxcblxcXCIsIHBpcGUpO1xcbitcXHRkcm1fV0FSTihkZXYsIHJldCA9PSAtRVRJTUVET1VULCBcXFwidmJsYW5rIHdhaXQgdGltZWQgb3V0IG9uIGNydGMgJWlcXFxcblxcXCIsIHBpcGUpO1xcbiBcXG4gXFx0ZHJtX3ZibGFua19wdXQoZGV2LCBwaXBlKTtcXG4gXFxuLVxcdHJldHVybiByZXQgPyAwIDogLUVUSU1FRE9VVDtcXG4rXFx0cmV0dXJuIHJldDtcXG4gfVxcbiBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayk7XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMTo1OS43MDI4MzkyNDlaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxMjA4OTI0NzI0NTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiRFJNX1ZLTVNcIixcbiAgICBcIkRSTV9GQkRFVl9FTVVMQVRJT05cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rXCIsXG4gICAgXCJkcm1fY3J0Y193YWl0X29uZV92YmxhbmtcIixcbiAgICBcImRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHJlZmFjdG9ycyB0aGUgdmJsYW5rIHdhaXRpbmcgbG9naWMgaW4gdGhlIERSTSBjb3JlIHRvIGF2b2lkIG5lc3RlZCBgZHJtX2NydGNfdmJsYW5rX2dldGAgY2FsbHMsIGludHJvZHVjaW5nIGEgbmV3IGludGVybmFsIGhlbHBlciBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYC4gVGhpcyBmaXhlcyBhIHBvdGVudGlhbCBpc3N1ZSBpbiBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgYW5kIG1vZGlmaWVzIHRoZSBleGVjdXRpb24gZmxvdyBvZiBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGZiZGV2IGlvY3RscyAoZS5nLiwgYEZCSU9fV0FJVEZPUlZTWU5DYCkgYW5kIERSTSBhdG9taWMgY29tbWl0cy4gVGhlIGNoYW5nZXMgaGF2ZSBhIGZ1bmN0aW9uYWwgaW1wYWN0IG9uIHRoZSBEUk0gY29yZSBhbmQgYXJlIHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGQ0MGRlY2NjY2ZkYzI4NDYyMmMyMzY2ZWFiODIyYjI3NzA1MzZlZDhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEF1ZyAxMSAwMToxMTo1OCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuY1xuaW5kZXggMDA4MGE4ZTk1NTZhNS4uN2ZmMGYyNGEwZjUwMiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuY1xuKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jXG5AQCAtMTMyOCw3ICsxMzI4LDcgQEAgaW50IGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92Ymxhbmsoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIHVuc2lnbmVkIGlcbiBcdCAqL1xuIFx0cmV0ID0gZHJtX2NydGNfdmJsYW5rX2dldChjcnRjKTtcbiBcdGlmICghcmV0KSB7XG4tXHRcdGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhjcnRjKTtcbitcdFx0ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKGNydGMpO1xuIFx0XHRkcm1fY3J0Y192YmxhbmtfcHV0KGNydGMpO1xuIFx0fVxuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaCBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaFxuaW5kZXggZjg5M2IxZTNhNTk2ZS4uNmZkMzM2NzJkMjA2YSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaFxuKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oXG5AQCAtMTE1LDYgKzExNSw3IEBAIHZvaWQgZHJtX3ZibGFua19kaXNhYmxlX2FuZF9zYXZlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTtcbiBpbnQgZHJtX3ZibGFua19nZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpO1xuIHZvaWQgZHJtX3ZibGFua19wdXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpO1xuIHU2NCBkcm1fdmJsYW5rX2NvdW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTtcbitpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7XG4gXG4gLyogZHJtX3ZibGFua193b3JrLmMgKi9cbiBzdGF0aWMgaW5saW5lIHZvaWQgZHJtX3ZibGFua19mbHVzaF93b3JrZXIoc3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jXG5pbmRleCBmOTBmYjJkMTNlNDIzLi45Y2FjNzAxM2I0YzljIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuY1xuKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuY1xuQEAgLTEyOTcsNiArMTI5NywzMiBAQCB2b2lkIGRybV9jcnRjX3ZibGFua19wdXQoc3RydWN0IGRybV9jcnRjICpjcnRjKVxuIH1cbiBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3ZibGFua19wdXQpO1xuIFxuKy8qKlxuKyAqIGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbCAtIHdhaXQgZm9yIG9uZSB2YmxhbmtcbisgKiBAY3J0YzogRFJNIGNydGNcbisgKlxuKyAqIFRoaXMgd2FpdHMgZm9yIG9uZSB2YmxhbmsgdG8gcGFzcyBvbiBAY3J0YywgdXNpbmcgdGhlIGlycSBkcml2ZXIgaW50ZXJmYWNlcy5cbisgKiBFdmVyeSBjYWxsZXIgbXVzdCBob2xkIGEgdmJsYW5rIHJlZmVyZW5jZSBhY3Jvc3MgdGhlIGNvbXBsZXRlIHdhaXQuXG4rICpcbisgKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIG9uIGZhaWx1cmVzLlxuKyAqL1xuK2ludCBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoc3RydWN0IGRybV9jcnRjICpjcnRjKVxuK3tcbitcdHN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLVx1MDAzZWRldjtcbitcdGludCBwaXBlID0gZHJtX2NydGNfaW5kZXgoY3J0Yyk7XG4rXHRzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2YmxhbmsgPSBkcm1fY3J0Y192YmxhbmtfY3J0YyhjcnRjKTtcbitcdGludCByZXQ7XG4rXHR1NjQgbGFzdDtcbitcbitcdGxhc3QgPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSk7XG4rXG4rXHRyZXQgPSB3YWl0X2V2ZW50X3RpbWVvdXQodmJsYW5rLVx1MDAzZXF1ZXVlLFxuK1x0XHRcdFx0IGxhc3QgIT0gZHJtX3ZibGFua19jb3VudChkZXYsIHBpcGUpLFxuK1x0XHRcdFx0IG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpO1xuK1xuK1x0cmV0dXJuIHJldCA/IDAgOiAtRVRJTUVET1VUO1xuK31cbitcbiAvKipcbiAgKiBkcm1fY3J0Y193YWl0X29uZV92YmxhbmsgLSB3YWl0IGZvciBvbmUgdmJsYW5rXG4gICogQGNydGM6IERSTSBjcnRjXG5AQCAtMTMxMSwyNiArMTMzNywyMCBAQCBpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcbiB7XG4gXHRzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy1cdTAwM2VkZXY7XG4gXHRpbnQgcGlwZSA9IGRybV9jcnRjX2luZGV4KGNydGMpO1xuLVx0c3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rID0gZHJtX2NydGNfdmJsYW5rX2NydGMoY3J0Yyk7XG4gXHRpbnQgcmV0O1xuLVx0dTY0IGxhc3Q7XG4gXG4gXHRyZXQgPSBkcm1fdmJsYW5rX2dldChkZXYsIHBpcGUpO1xuIFx0aWYgKGRybV9XQVJOKGRldiwgcmV0LCBcInZibGFuayBub3QgYXZhaWxhYmxlIG9uIGNydGMgJWksIHJldD0laVxcblwiLFxuIFx0XHQgICAgIHBpcGUsIHJldCkpXG4gXHRcdHJldHVybiByZXQ7XG4gXG4tXHRsYXN0ID0gZHJtX3ZibGFua19jb3VudChkZXYsIHBpcGUpO1xuLVxuLVx0cmV0ID0gd2FpdF9ldmVudF90aW1lb3V0KHZibGFuay1cdTAwM2VxdWV1ZSxcbi1cdFx0XHRcdCBsYXN0ICE9IGRybV92YmxhbmtfY291bnQoZGV2LCBwaXBlKSxcbi1cdFx0XHRcdCBtc2Vjc190b19qaWZmaWVzKDEwMDApKTtcbitcdHJldCA9IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTtcbiBcbi1cdGRybV9XQVJOKGRldiwgcmV0ID09IDAsIFwidmJsYW5rIHdhaXQgdGltZWQgb3V0IG9uIGNydGMgJWlcXG5cIiwgcGlwZSk7XG4rXHRkcm1fV0FSTihkZXYsIHJldCA9PSAtRVRJTUVET1VULCBcInZibGFuayB3YWl0IHRpbWVkIG91dCBvbiBjcnRjICVpXFxuXCIsIHBpcGUpO1xuIFxuIFx0ZHJtX3ZibGFua19wdXQoZGV2LCBwaXBlKTtcbiBcbi1cdHJldHVybiByZXQgPyAwIDogLUVUSU1FRE9VVDtcbitcdHJldHVybiByZXQ7XG4gfVxuIEVYUE9SVF9TWU1CT0woZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKTtcbiBcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDAxOjExOjU5LjcwMjg0MDYxOVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwNjUxNzg5OTU0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBvdGVudGlhbCBGdXp6aW5nIFRhcmdldDogRFJNIENsaWVudCBNb2Rlc2V0KipcblxuT2theSwgc28gSSd2ZSBnb3QgYSBwYXRjaCBoZXJlIHRoYXQncyB0b3VjaGluZyBgZHJtX2NsaWVudF9tb2Rlc2V0LmNgLCBgZHJtX2ludGVybmFsLmhgLCBhbmQgYGRybV92YmxhbmsuY2AuIE15IGluaXRpYWwgcmVhZCBzYXlzIGl0J3MgcmVmYWN0b3Jpbmcgc29tZSB2Ymxhbmsgd2FpdGluZyBsb2dpYy4gU3BlY2lmaWNhbGx5LCBpdCdzIHB1bGxpbmcgb3V0IHRoZSB3YWl0aW5nIHBhcnQgZnJvbSBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYCBpbnRvIGEgbmV3IGludGVybmFsIGZ1bmN0aW9uLCBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYC4gVGhlIGtleSBjaGFuZ2Ugc2VlbXMgdG8gYmUgdGhhdCBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgaXMgbm93IGdvaW5nIHRvIHVzZSB0aGlzIGludGVybmFsIGZ1bmN0aW9uIGluc3RlYWQgb2YgdGhlIG9yaWdpbmFsIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgLlxuXG5NeSBmaXJzdCBndXQgcmVhY3Rpb24gaXMsIFwiSG1tLCBwb3RlbnRpYWxseSBpbnRlcmVzdGluZyBmb3IgZnV6emluZy5cIiBJdCdzIGNoYW5naW5nIHRoZSBleGVjdXRpb24gcGF0aCBvZiB0aG9zZSB0d28gZnVuY3Rpb25zLCBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgYW5kIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgLiBUaGUgY3JpdGljYWwgcG9pbnQgaGVyZSBpcyB0aGF0IGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBhbHJlYWR5IGNhbGxzIGBkcm1fY3J0Y192YmxhbmtfZ2V0YCBiZWZvcmUgaXQgc3RhcnRzIHdhaXRpbmcsIGFuZCB0aGUgcmVmYWN0b3IgaXMgYXZvaWRpbmcgYSAqbmVzdGVkKiBjYWxsIHRvIGBkcm1fY3J0Y192YmxhbmtfZ2V0YC4gVGhhdCBzbWVsbHMgbGlrZSBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbiBvciBzb21lIHRpbWluZy1yZWxhdGVkIGJ1ZyBjb3VsZCBiZSBleHBvc2VkIHdpdGggdGhlIG5ldyBhcHByb2FjaC5cblxuQnV0IHdhaXQgYSBtaW51dGUuLi4gYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgLi4uIHRoYXQncyBwYXJ0IG9mIERSTSBjbGllbnQgbW9kZXNldCwgcmlnaHQ/IEFuZCBpc24ndCAqdGhhdCogYWNjZXNzaWJsZSBmcm9tIHVzZXJzcGFjZT8gVGhyb3VnaCBEUk0gaW9jdGxzIG9yIHN5c2ZzPyBZZWFoLCBJJ20gcHJldHR5IHN1cmUgaXQgaXMuIEFscmlnaHQsIEkgbmVlZCB0byBjb25maXJtIHdoZXJlIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBpcyBhY3R1YWxseSBjYWxsZWQuIFRoYXQncyBhIGNydWNpYWwgcGllY2Ugb2YgaW5mb3JtYXRpb24gYmVmb3JlIEkgbWFrZSBhIGNhbGwgb24gZnV6emluZy4gR290dGEgc2VlIHdoYXQgdGhlIGNhbGwgc2l0ZXMgbG9vayBsaWtlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTQ5LCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzAwLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTI6MTAuMzU0NjMzMjYzWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzMDE1MDk5ODksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM9MTI5NT1FWFBPUlRfU1lNQk9MKGRybV9jbGllbnRfbW9kZXNldF9kcG1zKTtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjk3LS8qKlxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMjk4OiAqIGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmsoKSAtIFdhaXQgZm9yIHRoZSBuZXh0IFZCTEFOSyB0byBvY2N1clxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjk5LSAqIEBjbGllbnQ6IERSTSBjbGllbnRcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzA4LSAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMzA5OmludCBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCB1bnNpZ25lZCBpbnQgY3J0Y19pbmRleClcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTMxMC17XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTMzOC19XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEzMzk6RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTM0MC1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9MzE1PXN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZmJfZGlydHkoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlcilcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMzI2LVxcdGlmIChjcnRjX2luZGV4IFxcdTAwM2U9IDApXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzozMjc6XFx0XFx0ZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayhcXHUwMDI2aGVscGVyLVxcdTAwM2VjbGllbnQsIGNydGNfaW5kZXgpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMzI4LVxcdG11dGV4X3VubG9jayhcXHUwMDI2aGVscGVyLVxcdTAwM2Vsb2NrKTtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9OTg0PWludCBkcm1fZmJfaGVscGVyX2lvY3RsKHN0cnVjdCBmYl9pbmZvICppbmZvLCB1bnNpZ25lZCBpbnQgY21kLFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMDA5LVxcdFxcdCAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTAxMDpcXHRcXHRyZXQgPSBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKFxcdTAwMjZmYl9oZWxwZXItXFx1MDAzZWNsaWVudCwgMCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMDExLVxcdFxcdGJyZWFrO1xcbi0tXFxuaW5jbHVkZS9kcm0vZHJtX2NsaWVudC5oPTIxOT1pbnQgZHJtX2NsaWVudF9tb2Rlc2V0X2RwbXMoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIGludCBtb2RlKTtcXG5pbmNsdWRlL2RybS9kcm1fY2xpZW50Lmg6MjIwOmludCBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCB1bnNpZ25lZCBpbnQgY3J0Y19pbmRleCk7XFxuaW5jbHVkZS9kcm0vZHJtX2NsaWVudC5oLTIyMS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTI6MTIuNjU2MTQ5MjEyWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTk0Mzg3NTE1OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBEUk0vRkJERVYgSW50ZXJhY3Rpb24gQnVnIEZpeCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgZml4IHJlbGF0ZWQgdG8gYGRybV9mYl9oZWxwZXJfaW9jdGxgIGFuZCBgZHJtX2ZiX2hlbHBlcl9mYl9kaXJ0eWAuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRoYXQgdGhpcyBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UsIHNwZWNpZmljYWxseSB0aHJvdWdoIHRoZSBgRkJJT19XQUlURk9SVlNZTkNgIGlvY3RsLCBhbmQgcG9zc2libHkgb3RoZXJzLiBHaXZlbiBzeXprYWxsZXIncyBmdXp6aW5nIG9mIHRoZSBEUk0gc3Vic3lzdGVtLCBsaWtlIHdpdGggdmdlbSBhbmQgdmttcywgdGhpcyBpcyBkZWZpbml0ZWx5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHRyaWdnZXJlZCBpbiBhIGZ1enppbmcgY2FtcGFpZ24uXG5cblRoZSBjb3JlIG9mIHRoZSBpc3N1ZSBzZWVtcyB0byBiZSB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucyBpbiB3YWl0aW5nIGZvciBhIHZibGFuay4gU3BlY2lmaWNhbGx5LCBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYCB3YXMgYmVpbmcgY2FsbGVkICphZnRlciogYSBgZHJtX2NydGNfdmJsYW5rX2dldGAsIHdoaWNoIGluIHR1cm4sIHdvdWxkIGNhbGwgYGRybV92YmxhbmtfZ2V0YCAqYWdhaW4qLiBUaGF0J3MgaW5lZmZpY2llbnQgYW5kIHBvdGVudGlhbGx5IGJ1Z2d5LiBUaGlzIGlzIGEgY2xlYXIgZnVuY3Rpb25hbCBjaGFuZ2UsIG5vdCBqdXN0IGEgY29zbWV0aWMgb25lLlxuXG5NeSBuZXh0IHN0ZXAgaXMgdG8gZGlnIGludG8gdGhlIHJlbGV2YW50IGZ1bmN0aW9ucy4gTGV0J3MgbG9vayBhdCBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYCBhbmQgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AuIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIGlzIHRoZSBleHBvcnRlZCwgcHVibGljIGludGVyZmFjZSwgdXNlZCBieSBudW1lcm91cyBEUk0gZHJpdmVycy4gYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAgaXMgdGhlIGludGVybmFsIGhlbHBlciBmdW5jdGlvbi4gRXZlbiB0aG91Z2ggaXQncyBpbnRlcm5hbCwgdGhlIGZhY3QgdGhhdCBpdCBpc24ndCBgc3RhdGljYCBtZWFucyBpdCB0ZWNobmljYWxseSBoYXMgYSBzeW1ib2wsIHNvIEkgc2hvdWxkIGluY2x1ZGUgaXQgaW4gbXkgcmV2aWV3LlxuXG5JIHdhbnQgdG8gZm9jdXMgb24gdGhlc2Ugc3ltYm9scyB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGlzIGhhcHBlbmluZzpcbiogICBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2BcbiogICBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYFxuKiAgIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgXG5cbkZpbmFsbHksIGEgcXVpY2sgY2hlY2sgb2YgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRFJNIGFuZCBGQl9IRUxQRVIgaXMgaW4gb3JkZXIsIGp1c3QgdG8gbWFrZSBzdXJlIHdlJ3JlIG5vdCBkZWFsaW5nIHdpdGggc29tZSB1bnVzdWFsIGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jeS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDYwMCwiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMwMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMjoxOC42MDAwMjYyOVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODA0NTI3ODU1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBEUk1fRkJERVZfRU1VTEFUSU9OXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc9Mjg9bWVudSBcXFwiU3VwcG9ydGVkIERSTSBjbGllbnRzXFxcIlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0zMC1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjMxOmNvbmZpZyBEUk1fRkJERVZfRU1VTEFUSU9OXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0zMi1cXHRib29sIFxcXCJFbmFibGUgbGVnYWN5IGZiZGV2IHN1cHBvcnQgZm9yIHlvdXIgbW9kZXNldHRpbmcgZHJpdmVyXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMjoyMC40MDQ1NjAyNjVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDQzODQxMTU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGZyb20gYW4gZXhwZXJ0J3MgcGVyc3BlY3RpdmU6XG5cbioqRGl2aW5nIGludG8gdGhlIEZyYW1lYnVmZmVyIEVtdWxhdGlvbioqXG5cbkhhbmcgb24gYSBzZWNvbmTigKYgSSdtIHNlZWluZyB0aGlzIGBkcm1fZmJfaGVscGVyLmNgIGZpbGUgYW5kIGl0cyBjb21waWxhdGlvbiB1bmRlciBgQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT05gLiBUaGF0J3MgaW50ZXJlc3RpbmcsIGFuZCBpdCBpbW1lZGlhdGVseSB0cmlnZ2VycyBzb21lIGZsYWdzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aHkgdGhpcyBlbXVsYXRpb24gaXMgZXZlbiBoYXBwZW5pbmcuIExldCBtZSBxdWlja2x5IGp1bXAgb3ZlciB0byB0aGUgYGRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZWAuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGlzIGBkcm1fZmJkZXZfZW11bGF0aW9uYCBjb25maWcgb3B0aW9uIHRpZXMgaW50byB0aGUgYmlnZ2VyIHBpY3R1cmUgb2YgdGhlIERpcmVjdCBSZW5kZXJpbmcgTWFuYWdlciAoRFJNKSBhbmQgZnJhbWVidWZmZXJzLiBNeSBzcGlkZXktc2Vuc2UgdGVsbHMgbWUgdGhpcyBpcyBrZXkgdG8gaG93IHNvbWUgbGVnYWN5IGZyYW1lYnVmZmVyIGludGVyYWN0aW9ucyBhcmUgaGFuZGxlZCBpbiB0aGUgRFJNIHdvcmxkLCBhbmQgSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIHRoZSB1bmRlcmx5aW5nIGRlcGVuZGVuY2llcyBhbmQgY29uZmlndXJhdGlvbiBjaG9pY2VzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NDYwLCJPdXRwdXRUb2tlbnMiOjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTI6MjMuNDQ4NDAzNjIxWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1MDk2ODcxNzQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZHJtX2ZiX2hlbHBlclwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDE1NjggbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbkRvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3Q9MTA5PWZiZGV2IEhlbHBlciBGdW5jdGlvbnMgUmVmZXJlbmNlXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0LTExMS1cXG5Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0OjExMjouLiBrZXJuZWwtZG9jOjogZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuY1xcbkRvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3QtMTEzLSAgIDpkb2M6IGZiZGV2IGhlbHBlcnNcXG5Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0LTExNC1cXG5Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0OjExNTouLiBrZXJuZWwtZG9jOjogaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oXFxuRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy1oZWxwZXJzLnJzdC0xMTYtICAgOmludGVybmFsOlxcbkRvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3QtMTE3LVxcbkRvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3Q6MTE4Oi4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jXFxuRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy1oZWxwZXJzLnJzdC0xMTktICAgOmV4cG9ydDpcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZT0xNTk9ZHJtX2ttc19oZWxwZXItJChDT05GSUdfRFJNX1BBTkVMX0JSSURHRSkgKz0gYnJpZGdlL3BhbmVsLm9cXG5kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGU6MTYwOmRybV9rbXNfaGVscGVyLSQoQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT04pICs9IGRybV9mYl9oZWxwZXIub1xcbmRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZS0xNjEtb2JqLSQoQ09ORklHX0RSTV9LTVNfSEVMUEVSKSArPSBkcm1fa21zX2hlbHBlci5vXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGlzcGxheS5jLTQ0LSNpbmNsdWRlIFxcdTAwM2Nkcm0vZHJtX2VkaWQuaFxcdTAwM2VcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGlzcGxheS5jOjQ1OiNpbmNsdWRlIFxcdTAwM2Nkcm0vZHJtX2ZiX2hlbHBlci5oXFx1MDAzZVxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmMtNDYtI2luY2x1ZGUgXFx1MDAzY2RybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oXFx1MDAzZVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXkuYz0xNzQxPWludCBhbWRncHVfZGlzcGxheV9zdXNwZW5kX2hlbHBlcihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldilcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmMtMTc3Ni1cXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGlzcGxheS5jOjE3Nzc6XFx0XFx0aWYgKCFkcm1fZmJfaGVscGVyX2dlbV9pc19mYihkZXYtXFx1MDAzZWZiX2hlbHBlciwgZmItXFx1MDAzZW9ialswXSkpIHtcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGlzcGxheS5jLTE3NzgtXFx0XFx0XFx0c3RydWN0IGFtZGdwdV9ibyAqcm9iaiA9IGdlbV90b19hbWRncHVfYm8oZmItXFx1MDAzZW9ialswXSk7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfa21zLmMtMzEtI2luY2x1ZGUgXFx1MDAzY2RybS9kcm1fZHJ2LmhcXHUwMDNlXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5jOjMyOiNpbmNsdWRlIFxcdTAwM2Nkcm0vZHJtX2ZiX2hlbHBlci5oXFx1MDAzZVxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9rbXMuYy0zMy0jaW5jbHVkZSBcXFwiYW1kZ3B1X3V2ZC5oXFxcIlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZHJtLmg9MTg9c3RydWN0IGRybV9kaXNwbGF5X21vZGU7XFxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZHJtLmg6MTk6c3RydWN0IGRybV9mYl9oZWxwZXI7XFxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZHJtLmg6MjA6c3RydWN0IGRybV9mYl9oZWxwZXJfc3VyZmFjZV9zaXplO1xcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2RybS5oLTIxLVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZHJtLmg9NTc9c3RydWN0IGFybWFkYV9wcml2YXRlIHtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2RybS5oLTc4LSNpZiBkZWZpbmVkKENPTkZJR19EUk1fRkJERVZfRU1VTEFUSU9OKVxcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2RybS5oOjc5OmludCBhcm1hZGFfZmJkZXZfZHJpdmVyX2ZiZGV2X3Byb2JlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYmgsXFxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZHJtLmg6ODA6XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBkcm1fZmJfaGVscGVyX3N1cmZhY2Vfc2l6ZSAqc2l6ZXMpO1xcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2RybS5oLTgxLSNkZWZpbmUgQVJNQURBX0ZCREVWX0RSSVZFUl9PUFMgXFxcXFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYy0xMy0jaW5jbHVkZSBcXHUwMDNjZHJtL2RybV9kcnYuaFxcdTAwM2VcXG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9mYmRldi5jOjE0OiNpbmNsdWRlIFxcdTAwM2Nkcm0vZHJtX2ZiX2hlbHBlci5oXFx1MDAzZVxcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmMtMTUtI2luY2x1ZGUgXFx1MDAzY2RybS9kcm1fZm91cmNjLmhcXHUwMDNlXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9mYmRldi5jPTIzPXN0YXRpYyB2b2lkIGFybWFkYV9mYmRldl9mYl9kZXN0cm95KHN0cnVjdCBmYl9pbmZvICppbmZvKVxcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmMtMjQte1xcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmM6MjU6XFx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiaCA9IGluZm8tXFx1MDAzZXBhcjtcXG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9mYmRldi5jLTI2LVxcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmM6Mjc6XFx0ZHJtX2ZiX2hlbHBlcl9maW5pKGZiaCk7XFxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYy0yOC1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmM9MzQ9c3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgYXJtYWRhX2ZiX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmMtNDAtXFxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYzo0MTpzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9mYl9oZWxwZXJfZnVuY3MgYXJtYWRhX2ZiZGV2X2hlbHBlcl9mdW5jcztcXG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9mYmRldi5jLTQyLVxcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmM6NDM6aW50IGFybWFkYV9mYmRldl9kcml2ZXJfZmJkZXZfcHJvYmUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiaCxcXG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9mYmRldi5jOjQ0OlxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9zdXJmYWNlX3NpemUgKnNpemVzKVxcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmMtNDUte1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYy0xMDEtXFxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYzoxMDI6XFx0ZHJtX2ZiX2hlbHBlcl9maWxsX2luZm8oaW5mbywgZmJoLCBzaXplcyk7XFxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYy0xMDMtXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtNS0jaW5jbHVkZSBcXHUwMDNjZHJtL2RybV9kcnYuaFxcdTAwM2VcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM6NjojaW5jbHVkZSBcXHUwMDNjZHJtL2RybV9mYl9oZWxwZXIuaFxcdTAwM2VcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtNy0jaW5jbHVkZSBcXHUwMDNjZHJtL2RybV9mb3VyY2MuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYz0xNj1zdGF0aWMgdm9pZCBkcm1fZmJkZXZfY2xpZW50X2ZyZWUoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQpXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTE3LXtcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM6MTg6XFx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9IGRybV9mYl9oZWxwZXJfZnJvbV9jbGllbnQoY2xpZW50KTtcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtMTktXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjIwOlxcdGRybV9mYl9oZWxwZXJfdW5wcmVwYXJlKGZiX2hlbHBlcik7XFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTIxLVxcdGtmcmVlKGZiX2hlbHBlcik7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM9MjQ9c3RhdGljIHZvaWQgZHJtX2ZiZGV2X2NsaWVudF91bnJlZ2lzdGVyKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy0yNS17XFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjI2OlxcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBkcm1fZmJfaGVscGVyX2Zyb21fY2xpZW50KGNsaWVudCk7XFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTI3LVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTMxLVxcdFxcdCAqL1xcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzozMjpcXHRcXHRkcm1fZmJfaGVscGVyX3VucmVnaXN0ZXJfaW5mbyhmYl9oZWxwZXIpO1xcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy0zMy1cXHR9IGVsc2Uge1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jPTQxPXN0YXRpYyBpbnQgZHJtX2ZiZGV2X2NsaWVudF9yZXN0b3JlKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCBib29sIGZvcmNlKVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy00Mi17XFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjQzOlxcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBkcm1fZmJfaGVscGVyX2Zyb21fY2xpZW50KGNsaWVudCk7XFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTQ0LVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzo0NTpcXHRkcm1fZmJfaGVscGVyX3Jlc3RvcmVfZmJkZXZfbW9kZV91bmxvY2tlZChmYl9oZWxwZXIsIGZvcmNlKTtcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtNDYtXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM9NTA9c3RhdGljIGludCBkcm1fZmJkZXZfY2xpZW50X2hvdHBsdWcoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQpXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTUxLXtcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM6NTI6XFx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9IGRybV9mYl9oZWxwZXJfZnJvbV9jbGllbnQoY2xpZW50KTtcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtNTMtXFx0c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNsaWVudC1cXHUwMDNlZGV2O1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTU2LVxcdGlmIChkZXYtXFx1MDAzZWZiX2hlbHBlcilcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM6NTc6XFx0XFx0cmV0dXJuIGRybV9mYl9oZWxwZXJfaG90cGx1Z19ldmVudChkZXYtXFx1MDAzZWZiX2hlbHBlcik7XFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTU4LVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzo1OTpcXHRyZXQgPSBkcm1fZmJfaGVscGVyX2luaXQoZGV2LCBmYl9oZWxwZXIpO1xcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy02MC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTY1LVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzo2NjpcXHRyZXQgPSBkcm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmlnKGZiX2hlbHBlcik7XFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTY3LVxcdGlmIChyZXQpXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjY4OlxcdFxcdGdvdG8gZXJyX2RybV9mYl9oZWxwZXJfZmluaTtcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtNjktXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtNzEtXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjcyOmVycl9kcm1fZmJfaGVscGVyX2Zpbmk6XFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjczOlxcdGRybV9mYl9oZWxwZXJfZmluaShmYl9oZWxwZXIpO1xcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy03NC1lcnJfZHJtX2VycjpcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYz03OT1zdGF0aWMgaW50IGRybV9mYmRldl9jbGllbnRfc3VzcGVuZChzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudClcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtODAte1xcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzo4MTpcXHRzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyID0gZHJtX2ZiX2hlbHBlcl9mcm9tX2NsaWVudChjbGllbnQpO1xcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy04Mi1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM6ODM6XFx0ZHJtX2ZiX2hlbHBlcl9zZXRfc3VzcGVuZF91bmxvY2tlZChmYl9oZWxwZXIsIHRydWUpO1xcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy04NC1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYz04OD1zdGF0aWMgaW50IGRybV9mYmRldl9jbGllbnRfcmVzdW1lKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy04OS17XFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjkwOlxcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBkcm1fZmJfaGVscGVyX2Zyb21fY2xpZW50KGNsaWVudCk7XFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTkxLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzo5MjpcXHRkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kX3VubG9ja2VkKGZiX2hlbHBlciwgZmFsc2UpO1xcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy05My1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYz0xMjY9aW50IGRybV9mYmRldl9jbGllbnRfc2V0dXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5mbyAqZm9ybWF0KVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy0xMjcte1xcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzoxMjg6XFx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcjtcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtMTI5LVxcdHVuc2lnbmVkIGludCBjb2xvcl9tb2RlO1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTE1OS1cXHRcXHRyZXR1cm4gLUVOT01FTTtcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM6MTYwOlxcdGRybV9mYl9oZWxwZXJfcHJlcGFyZShkZXYsIGZiX2hlbHBlciwgY29sb3JfbW9kZSwgTlVMTCk7XFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTE2MS1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy0xNzItZXJyX2RybV9jbGllbnRfaW5pdDpcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM6MTczOlxcdGRybV9mYl9oZWxwZXJfdW5wcmVwYXJlKGZiX2hlbHBlcik7XFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTE3NC1cXHRrZnJlZShmYl9oZWxwZXIpO1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9hdXRoLmM9NDMwPUVYUE9SVF9TWU1CT0woZHJtX21hc3Rlcl9wdXQpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fYXV0aC5jLTQzMS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2F1dGguYzo0MzI6LyogVXNlZCBieSBkcm1fY2xpZW50IGFuZCBkcm1fZmJfaGVscGVyICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV9hdXRoLmMtNDMzLWJvb2wgZHJtX21hc3Rlcl9pbnRlcm5hbF9hY3F1aXJlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2F1dGguYz00NDM9RVhQT1JUX1NZTUJPTChkcm1fbWFzdGVyX2ludGVybmFsX2FjcXVpcmUpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fYXV0aC5jLTQ0NC1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2F1dGguYzo0NDU6LyogVXNlZCBieSBkcm1fY2xpZW50IGFuZCBkcm1fZmJfaGVscGVyICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV9hdXRoLmMtNDQ2LXZvaWQgZHJtX21hc3Rlcl9pbnRlcm5hbF9yZWxlYXNlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTM2LSNpbmNsdWRlIFxcdTAwM2Nkcm0vZHJtX2Rydi5oXFx1MDAzZVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6Mzc6I2luY2x1ZGUgXFx1MDAzY2RybS9kcm1fZmJfaGVscGVyLmhcXHUwMDNlXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zOC0jaW5jbHVkZSBcXHUwMDNjZHJtL2RybV9mb3VyY2MuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9NzU9TU9EVUxFX1BBUk1fREVTQyhkcm1fbGVha19mYmRldl9zbWVtLFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05NC0gKiBJdCBpcyBwb3NzaWJsZSwgdGhvdWdoIHBlcmhhcHMgc29tZXdoYXQgdHJpY2t5LCB0byBpbXBsZW1lbnQgcmFjZS1mcmVlXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo5NTogKiBob3RwbHVnIGRldGVjdGlvbiB1c2luZyB0aGUgZmJkZXYgaGVscGVycy4gVGhlIGRybV9mYl9oZWxwZXJfcHJlcGFyZSgpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05Ni0gKiBoZWxwZXIgbXVzdCBiZSBjYWxsZWQgZmlyc3QgdG8gaW5pdGlhbGl6ZSB0aGUgbWluaW11bSByZXF1aXJlZCB0byBtYWtlXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEwMS0gKiBlbmNvZGVycyBhbmQgY29ubmVjdG9ycy4gVG8gZmluaXNoIHVwIHRoZSBmYmRldiBoZWxwZXIgaW5pdGlhbGl6YXRpb24sIHRoZVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTAyOiAqIGRybV9mYl9oZWxwZXJfaW5pdCgpIGZ1bmN0aW9uIGlzIGNhbGxlZC4gVG8gcHJvYmUgZm9yIGFsbCBhdHRhY2hlZCBkaXNwbGF5c1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTAzLSAqIGFuZCBzZXQgdXAgYW4gaW5pdGlhbCBjb25maWd1cmF0aW9uIHVzaW5nIHRoZSBkZXRlY3RlZCBoYXJkd2FyZSwgZHJpdmVyc1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTA0OiAqIHNob3VsZCBjYWxsIGRybV9mYl9oZWxwZXJfaW5pdGlhbF9jb25maWcoKS5cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEwNS0gKlxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTA2LSAqIElmIFxcdTAwMjZkcm1fZnJhbWVidWZmZXJfZnVuY3MuZGlydHkgaXMgc2V0LCB0aGVcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjEwNzogKiBkcm1fZmJfaGVscGVyX3tjZmIsc3lzfV97d3JpdGUsZmlsbHJlY3QsY29weWFyZWEsaW1hZ2VibGl0fSBmdW5jdGlvbnMgd2lsbFxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTA4OiAqIGFjY3VtdWxhdGUgY2hhbmdlcyBhbmQgc2NoZWR1bGUgXFx1MDAyNmRybV9mYl9oZWxwZXIuZGlydHlfd29yayB0byBydW4gcmlnaHRcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEwOS0gKiBhd2F5LiBUaGlzIHdvcmtlciB0aGVuIGNhbGxzIHRoZSBkaXJ0eSgpIGZ1bmN0aW9uIGVuc3VyaW5nIHRoYXQgaXQgd2lsbFxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTEwLSAqIGFsd2F5cyBydW4gaW4gcHJvY2VzcyBjb250ZXh0IHNpbmNlIHRoZSBmYl8qKCkgZnVuY3Rpb24gY291bGQgYmUgcnVubmluZyBpblxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTExOiAqIGF0b21pYyBjb250ZXh0LiBJZiBkcm1fZmJfaGVscGVyX2RlZmVycmVkX2lvKCkgaXMgdXNlZCBhcyB0aGUgZGVmZXJyZWRfaW9cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTExMi0gKiBjYWxsYmFjayBpdCB3aWxsIGFsc28gc2NoZWR1bGUgZGlydHlfd29yayB3aXRoIHRoZSBkYW1hZ2UgY29sbGVjdGVkIGZyb20gdGhlXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jPTExNj1zdGF0aWMgaW50XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxMTc6X19kcm1fZmJfaGVscGVyX3Jlc3RvcmVfZmJkZXZfbW9kZV91bmxvY2tlZChzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLFxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTE4LVxcdFxcdFxcdFxcdFxcdCAgICBib29sIGZvcmNlKVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMzMtXFx0XFx0ICogdG8gYmUgaGVsZC4gQnV0IGZvciBmb3JjZWQgcmVzdG9yZXMgd2UncmUgaW50ZW50aW9uYWxseVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTM0OlxcdFxcdCAqIHJhY2luZyBoZXJlLCBzZWUgZHJtX2ZiX2hlbHBlcl9zZXRfcGFyKCkuXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMzUtXFx0XFx0ICovXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE0Ni1cXHRpZiAoZG9fZGVsYXllZClcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjE0NzpcXHRcXHRkcm1fZmJfaGVscGVyX2hvdHBsdWdfZXZlbnQoZmJfaGVscGVyKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE0OC1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTU1LS8qKlxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTU2OiAqIGRybV9mYl9oZWxwZXJfcmVzdG9yZV9mYmRldl9tb2RlX3VubG9ja2VkIC0gcmVzdG9yZSBmYmRldiBjb25maWd1cmF0aW9uXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xNTctICogQGZiX2hlbHBlcjogZHJpdmVyLWFsbG9jYXRlZCBmYmRldiBoZWxwZXIsIGNhbiBiZSBOVUxMXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE2Ni0gKi9cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjE2NzppbnQgZHJtX2ZiX2hlbHBlcl9yZXN0b3JlX2ZiZGV2X21vZGVfdW5sb2NrZWQoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwgYm9vbCBmb3JjZSlcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE2OC17XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxNjk6XFx0cmV0dXJuIF9fZHJtX2ZiX2hlbHBlcl9yZXN0b3JlX2ZiZGV2X21vZGVfdW5sb2NrZWQoZmJfaGVscGVyLCBmb3JjZSk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xNzAtfVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTcxOkVYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9yZXN0b3JlX2ZiZGV2X21vZGVfdW5sb2NrZWQpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTcyLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTczOnN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZHBtcyhzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgaW50IGRwbXNfbW9kZSlcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE3NC17XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxNzU6XFx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9IGluZm8tXFx1MDAzZXBhcjtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE3Ni1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTgyLS8qKlxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTgzOiAqIGRybV9mYl9oZWxwZXJfYmxhbmsgLSBpbXBsZW1lbnRhdGlvbiBmb3IgXFx1MDAyNmZiX29wcy5mYl9ibGFua1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTg0LSAqIEBibGFuazogZGVzaXJlZCBibGFua2luZyBzdGF0ZVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xODYtICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxODc6aW50IGRybV9mYl9oZWxwZXJfYmxhbmsoaW50IGJsYW5rLCBzdHJ1Y3QgZmJfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE4OC17XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE5NC1cXHRjYXNlIEZCX0JMQU5LX1VOQkxBTks6XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxOTU6XFx0XFx0ZHJtX2ZiX2hlbHBlcl9kcG1zKGluZm8sIERSTV9NT0RFX0RQTVNfT04pO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTk2LVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xOTgtXFx0Y2FzZSBGQl9CTEFOS19OT1JNQUw6XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxOTk6XFx0XFx0ZHJtX2ZiX2hlbHBlcl9kcG1zKGluZm8sIERSTV9NT0RFX0RQTVNfU1RBTkRCWSk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMDAtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTIwMi1cXHRjYXNlIEZCX0JMQU5LX0hTWU5DX1NVU1BFTkQ6XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoyMDM6XFx0XFx0ZHJtX2ZiX2hlbHBlcl9kcG1zKGluZm8sIERSTV9NT0RFX0RQTVNfU1RBTkRCWSk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMDQtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTIwNi1cXHRjYXNlIEZCX0JMQU5LX1ZTWU5DX1NVU1BFTkQ6XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoyMDc6XFx0XFx0ZHJtX2ZiX2hlbHBlcl9kcG1zKGluZm8sIERSTV9NT0RFX0RQTVNfU1VTUEVORCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMDgtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTIxMC1cXHRjYXNlIEZCX0JMQU5LX1BPV0VSRE9XTjpcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjIxMTpcXHRcXHRkcm1fZmJfaGVscGVyX2RwbXMoaW5mbywgRFJNX01PREVfRFBNU19PRkYpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMjEyLVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMTUtfVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MjE2OkVYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9ibGFuayk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMTctXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoyMTg6c3RhdGljIHZvaWQgZHJtX2ZiX2hlbHBlcl9yZXN1bWVfd29ya2VyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTIxOS17XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoyMjA6XFx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgZHJtX2ZiX2hlbHBlcixcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTIyMS1cXHRcXHRcXHRcXHRcXHRcXHQgICAgcmVzdW1lX3dvcmspO1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMjctXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoyMjg6c3RhdGljIGludCBmaW5kX2NydGNfaW5kZXhfYXRvbWljKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMjkte1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yNzgtXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoyNzk6c3RhdGljIGludCBmaW5kX2NydGNfaW5kZXhfbGVnYWN5KHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yODAte1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yOTctXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoyOTg6c3RhdGljIGludCBkcm1fZmJfaGVscGVyX2ZpbmRfY3J0Y19pbmRleChzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyKVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMjk5LXtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMzE0LVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MzE1OnN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZmJfZGlydHkoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlcilcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTMxNi17XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTMyNC1cXHRtdXRleF9sb2NrKFxcdTAwMjZoZWxwZXItXFx1MDAzZWxvY2spO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MzI1OlxcdGNydGNfaW5kZXggPSBkcm1fZmJfaGVscGVyX2ZpbmRfY3J0Y19pbmRleChoZWxwZXIpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMzI2LVxcdGlmIChjcnRjX2luZGV4IFxcdTAwM2U9IDApXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTM1Ny1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjM1ODpzdGF0aWMgdm9pZCBkcm1fZmJfaGVscGVyX2RhbWFnZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTM1OS17XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzozNjA6XFx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgZHJtX2ZiX2hlbHBlciwgZGFtYWdlX3dvcmspO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMzYxLVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zNjQtXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzozNjU6XFx0ZHJtX2ZiX2hlbHBlcl9mYl9kaXJ0eShoZWxwZXIpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMzY2LX1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMzY4LS8qKlxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MzY5OiAqIGRybV9mYl9oZWxwZXJfcHJlcGFyZSAtIHNldHVwIGEgZHJtX2ZiX2hlbHBlciBzdHJ1Y3R1cmVcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTM3MC0gKiBAZGV2OiBEUk0gZGV2aWNlXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTM3Ny0gKi9cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjM3ODp2b2lkIGRybV9mYl9oZWxwZXJfcHJlcGFyZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLFxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMzc5LVxcdFxcdFxcdCAgIHVuc2lnbmVkIGludCBwcmVmZXJyZWRfYnBwLFxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MzgwOlxcdFxcdFxcdCAgIGNvbnN0IHN0cnVjdCBkcm1fZmJfaGVscGVyX2Z1bmNzICpmdW5jcylcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTM4MS17XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTM5Ni1cXHRzcGluX2xvY2tfaW5pdChcXHUwMDI2aGVscGVyLVxcdTAwM2VkYW1hZ2VfbG9jayk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzozOTc6XFx0SU5JVF9XT1JLKFxcdTAwMjZoZWxwZXItXFx1MDAzZXJlc3VtZV93b3JrLCBkcm1fZmJfaGVscGVyX3Jlc3VtZV93b3JrZXIpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6Mzk4OlxcdElOSVRfV09SSyhcXHUwMDI2aGVscGVyLVxcdTAwM2VkYW1hZ2Vfd29yaywgZHJtX2ZiX2hlbHBlcl9kYW1hZ2Vfd29yayk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zOTktXFx0aGVscGVyLVxcdTAwM2VkYW1hZ2VfY2xpcC54MSA9IGhlbHBlci1cXHUwMDNlZGFtYWdlX2NsaXAueTEgPSB+MDtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDA0LX1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQwNTpFWFBPUlRfU1lNQk9MKGRybV9mYl9oZWxwZXJfcHJlcGFyZSk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MDYtXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MDctLyoqXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo0MDg6ICogZHJtX2ZiX2hlbHBlcl91bnByZXBhcmUgLSBjbGVhbiB1cCBhIGRybV9mYl9oZWxwZXIgc3RydWN0dXJlXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MDktICogQGZiX2hlbHBlcjogZHJpdmVyLWFsbG9jYXRlZCBmYmRldiBoZWxwZXIgc3RydWN0dXJlIHRvIHNldCB1cFxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDEwLSAqXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo0MTE6ICogQ2xlYW5zIHVwIHRoZSBmcmFtZWJ1ZmZlciBoZWxwZXIuIEludmVyc2Ugb2YgZHJtX2ZiX2hlbHBlcl9wcmVwYXJlKCkuXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MTItICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo0MTM6dm9pZCBkcm1fZmJfaGVscGVyX3VucHJlcGFyZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDE0LXtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDE2LX1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQxNzpFWFBPUlRfU1lNQk9MKGRybV9mYl9oZWxwZXJfdW5wcmVwYXJlKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQxOC1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQxOS0vKipcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQyMDogKiBkcm1fZmJfaGVscGVyX2luaXQgLSBpbml0aWFsaXplIGEgXFx1MDAyNnN0cnVjdCBkcm1fZmJfaGVscGVyXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MjEtICogQGRldjogZHJtIGRldmljZVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MjUtICogTm90ZSB0aGF0IHRoaXMgd29uJ3QgeWV0IHRvdWNoIHRoZSBoYXJkd2FyZSAodGhyb3VnaCB0aGUgZHJpdmVyIGludGVyZmFjZXMpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo0MjY6ICogbm9yIHJlZ2lzdGVyIHRoZSBmYmRldi4gVGhpcyBpcyBvbmx5IGRvbmUgaW4gZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZygpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MjctICogdG8gYWxsb3cgZHJpdmVyIHdyaXRlcyBtb3JlIGNvbnRyb2wgb3ZlciB0aGUgZXhhY3QgaW5pdCBzZXF1ZW5jZS5cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQyOC0gKlxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NDI5OiAqIERyaXZlcnMgbXVzdCBjYWxsIGRybV9mYl9oZWxwZXJfcHJlcGFyZSgpIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MzAtICpcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDMzLSAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NDM0OmludCBkcm1fZmJfaGVscGVyX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldixcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQzNTpcXHRcXHQgICAgICAgc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcilcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQzNi17XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQ0MC19XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo0NDE6RVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX2luaXQpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDQyLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NDQzOnN0YXRpYyBzdHJ1Y3QgZmJfaW5mbyAqZHJtX2ZiX2hlbHBlcl9hbGxvY19pbmZvKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00NDQte1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00NzAtXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo0NzE6c3RhdGljIHZvaWQgZHJtX2ZiX2hlbHBlcl9yZWxlYXNlX2luZm8oc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcilcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQ3Mi17XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQ4NS0vKipcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQ4NjogKiBkcm1fZmJfaGVscGVyX3VucmVnaXN0ZXJfaW5mbyAtIHVucmVnaXN0ZXIgZmJfaW5mbyBmcmFtZWJ1ZmZlciBkZXZpY2VcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQ4Ny0gKiBAZmJfaGVscGVyOiBkcml2ZXItYWxsb2NhdGVkIGZiZGV2IGhlbHBlciwgbXVzdCBub3QgYmUgTlVMTFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00OTAtICogZnJhbWVidWZmZXIgZGV2aWNlLiBUaGlzIG11c3QgYmUgY2FsbGVkIGJlZm9yZSByZWxlYXNpbmcgYWxsIHJlc291cmNlcyBmb3JcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQ5MTogKiBAZmJfaGVscGVyIGJ5IGNhbGxpbmcgZHJtX2ZiX2hlbHBlcl9maW5pKCkuXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00OTItICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo0OTM6dm9pZCBkcm1fZmJfaGVscGVyX3VucmVnaXN0ZXJfaW5mbyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDk0LXtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDk2LX1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQ5NzpFWFBPUlRfU1lNQk9MKGRybV9mYl9oZWxwZXJfdW5yZWdpc3Rlcl9pbmZvKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQ5OC1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQ5OS0vKipcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjUwMDogKiBkcm1fZmJfaGVscGVyX2ZpbmkgLSBmaW5pYWxpemUgYSBcXHUwMDI2c3RydWN0IGRybV9mYl9oZWxwZXJcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTUwMS0gKiBAZmJfaGVscGVyOiBkcml2ZXItYWxsb2NhdGVkIGZiZGV2IGhlbHBlciwgY2FuIGJlIE5VTExcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNTA0LSAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NTA1OnZvaWQgZHJtX2ZiX2hlbHBlcl9maW5pKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy01MDYte1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy01MTctXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo1MTg6XFx0ZHJtX2ZiX2hlbHBlcl9yZWxlYXNlX2luZm8oZmJfaGVscGVyKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTUxOS19XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo1MjA6RVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX2ZpbmkpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNTIxLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NTIyOnN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfYWRkX2RhbWFnZV9jbGlwKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsIHUzMiB4LCB1MzIgeSxcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTUyMy1cXHRcXHRcXHRcXHRcXHQgIHUzMiB3aWR0aCwgdTMyIGhlaWdodClcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNTM1LVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NTM2OnN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZGFtYWdlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsIHUzMiB4LCB1MzIgeSxcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTUzNy1cXHRcXHRcXHRcXHQgdTMyIHdpZHRoLCB1MzIgaGVpZ2h0KVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy01NDktXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo1NTA6XFx0ZHJtX2ZiX2hlbHBlcl9hZGRfZGFtYWdlX2NsaXAoaGVscGVyLCB4LCB5LCB3aWR0aCwgaGVpZ2h0KTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTU1MS1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNTU5LSAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NTYwOnN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfbWVtb3J5X3JhbmdlX3RvX2NsaXAoc3RydWN0IGZiX2luZm8gKmluZm8sIG9mZl90IG9mZiwgc2l6ZV90IGxlbixcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTU2MS1cXHRcXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IGRybV9yZWN0ICpjbGlwKVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy01OTItLyogRG9uJ3QgdXNlIGluIG5ldyBjb2RlLiAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NTkzOnZvaWQgZHJtX2ZiX2hlbHBlcl9kYW1hZ2VfcmFuZ2Uoc3RydWN0IGZiX2luZm8gKmluZm8sIG9mZl90IG9mZiwgc2l6ZV90IGxlbilcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTU5NC17XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo1OTU6XFx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9IGluZm8tXFx1MDAzZXBhcjtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTU5Ni1cXHRzdHJ1Y3QgZHJtX3JlY3QgZGFtYWdlX2FyZWE7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy01OTctXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo1OTg6XFx0ZHJtX2ZiX2hlbHBlcl9tZW1vcnlfcmFuZ2VfdG9fY2xpcChpbmZvLCBvZmYsIGxlbiwgXFx1MDAyNmRhbWFnZV9hcmVhKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjU5OTpcXHRkcm1fZmJfaGVscGVyX2RhbWFnZShmYl9oZWxwZXIsIGRhbWFnZV9hcmVhLngxLCBkYW1hZ2VfYXJlYS55MSxcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTYwMC1cXHRcXHRcXHQgICAgIGRybV9yZWN0X3dpZHRoKFxcdTAwMjZkYW1hZ2VfYXJlYSksXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTYwMi19XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2MDM6RVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX2RhbWFnZV9yYW5nZSk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02MDQtXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02MDUtLyogRG9uJ3QgdXNlIGluIG5ldyBjb2RlLiAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NjA2OnZvaWQgZHJtX2ZiX2hlbHBlcl9kYW1hZ2VfYXJlYShzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgdTMyIHgsIHUzMiB5LCB1MzIgd2lkdGgsIHUzMiBoZWlnaHQpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02MDcte1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NjA4OlxcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBpbmZvLVxcdTAwM2VwYXI7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02MDktXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2MTA6XFx0ZHJtX2ZiX2hlbHBlcl9kYW1hZ2UoZmJfaGVscGVyLCB4LCB5LCB3aWR0aCwgaGVpZ2h0KTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTYxMS19XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2MTI6RVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX2RhbWFnZV9hcmVhKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTYxMy1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjE1LS8qKlxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NjE2OiAqIGRybV9mYl9oZWxwZXJfZGVmZXJyZWRfaW8oKSAtIGZiZGV2IGRlZmVycmVkX2lvIGNhbGxiYWNrIGZ1bmN0aW9uXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02MTctICogQGluZm86IGZiX2luZm8gc3RydWN0IHBvaW50ZXJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjIyLSAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NjIzOnZvaWQgZHJtX2ZiX2hlbHBlcl9kZWZlcnJlZF9pbyhzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgc3RydWN0IGxpc3RfaGVhZCAqcGFnZXJlZmxpc3QpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02MjQte1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NjI1OlxcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIgPSBpbmZvLVxcdTAwM2VwYXI7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02MjYtXFx0dW5zaWduZWQgbG9uZyBzdGFydCwgZW5kLCBtaW5fb2ZmLCBtYXhfb2ZmLCB0b3RhbF9zaXplO1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02NTAtXFx0aWYgKG1pbl9vZmYgXFx1MDAzYyBtYXhfb2ZmKSB7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2NTE6XFx0XFx0ZHJtX2ZiX2hlbHBlcl9tZW1vcnlfcmFuZ2VfdG9fY2xpcChpbmZvLCBtaW5fb2ZmLCBtYXhfb2ZmIC0gbWluX29mZiwgXFx1MDAyNmRhbWFnZV9hcmVhKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjY1MjpcXHRcXHRkcm1fZmJfaGVscGVyX2RhbWFnZShoZWxwZXIsIGRhbWFnZV9hcmVhLngxLCBkYW1hZ2VfYXJlYS55MSxcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTY1My1cXHRcXHRcXHRcXHQgICAgIGRybV9yZWN0X3dpZHRoKFxcdTAwMjZkYW1hZ2VfYXJlYSksXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTY1Ni19XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2NTc6RVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX2RlZmVycmVkX2lvKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTY1OC0jZW5kaWZcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjYwLS8qKlxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NjYxOiAqIGRybV9mYl9oZWxwZXJfc2V0X3N1c3BlbmQgLSB3cmFwcGVyIGFyb3VuZCBmYl9zZXRfc3VzcGVuZFxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjYyLSAqIEBmYl9oZWxwZXI6IGRyaXZlci1hbGxvY2F0ZWQgZmJkZXYgaGVscGVyLCBjYW4gYmUgTlVMTFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02NjUtICogQSB3cmFwcGVyIGFyb3VuZCBmYl9zZXRfc3VzcGVuZCBpbXBsZW1lbnRlZCBieSBmYmRldiBjb3JlLlxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NjY2OiAqIFVzZSBkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kX3VubG9ja2VkKCkgaWYgeW91IGRvbid0IG5lZWQgdG8gdGFrZVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjY3LSAqIHRoZSBsb2NrIHlvdXJzZWxmXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02NjgtICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2Njk6dm9pZCBkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIsIGJvb2wgc3VzcGVuZClcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTY3MC17XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTY3OC19XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2Nzk6RVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTY4MC1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTY4MS0vKipcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjY4MjogKiBkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kX3VubG9ja2VkIC0gd3JhcHBlciBhcm91bmQgZmJfc2V0X3N1c3BlbmQgdGhhdCBhbHNvXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02ODMtICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2VzIHRoZSBjb25zb2xlIGxvY2tcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjk0LSAqXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2OTU6ICogVXNlIGRybV9mYl9oZWxwZXJfc2V0X3N1c3BlbmQoKSBpZiB5b3UgbmVlZCB0byB0YWtlIHRoZSBsb2NrIHlvdXJzZWxmLlxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjk2LSAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6Njk3OnZvaWQgZHJtX2ZiX2hlbHBlcl9zZXRfc3VzcGVuZF91bmxvY2tlZChzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLFxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjk4LVxcdFxcdFxcdFxcdFxcdGJvb2wgc3VzcGVuZClcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNzExLVxcdFxcdCAqIENhbmNlbCBwZW5kaW5nIGRhbWFnZSB3b3JrLiBEdXJpbmcgR1BVIHJlc2V0LCBWQmxhbmtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjcxMjpcXHRcXHQgKiBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCBhbmQgZHJtX2ZiX2hlbHBlcl9mYl9kaXJ0eSgpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy03MTMtXFx0XFx0ICogd291bGQgd2FpdCBmb3IgVkJsYW5rIHRpbWVvdXQgb3RoZXJ3aXNlLlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy03MjgtXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo3Mjk6XFx0ZHJtX2ZiX2hlbHBlcl9zZXRfc3VzcGVuZChmYl9oZWxwZXIsIHN1c3BlbmQpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNzMwLVxcdGNvbnNvbGVfdW5sb2NrKCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy03MzEtfVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NzMyOkVYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9zZXRfc3VzcGVuZF91bmxvY2tlZCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy03MzMtXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jPTc2Nj1zdGF0aWMgaW50IHNldGNtYXBfbGVnYWN5KHN0cnVjdCBmYl9jbWFwICpjbWFwLCBzdHJ1Y3QgZmJfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTc2Ny17XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo3Njg6XFx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9IGluZm8tXFx1MDAzZXBhcjtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTc2OS1cXHRzdHJ1Y3QgZHJtX21vZGVfc2V0ICptb2Rlc2V0O1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYz04NDk9c3RhdGljIGludCBzZXRjbWFwX2F0b21pYyhzdHJ1Y3QgZmJfY21hcCAqY21hcCwgc3RydWN0IGZiX2luZm8gKmluZm8pXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy04NTAte1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6ODUxOlxcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBpbmZvLVxcdTAwM2VwYXI7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy04NTItXFx0c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGZiX2hlbHBlci1cXHUwMDNlZGV2O1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05MzctLyoqXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo5Mzg6ICogZHJtX2ZiX2hlbHBlcl9zZXRjbWFwIC0gaW1wbGVtZW50YXRpb24gZm9yIFxcdTAwMjZmYl9vcHMuZmJfc2V0Y21hcFxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtOTM5LSAqIEBjbWFwOiBjbWFwIHRvIHNldFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05NDEtICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo5NDI6aW50IGRybV9mYl9oZWxwZXJfc2V0Y21hcChzdHJ1Y3QgZmJfY21hcCAqY21hcCwgc3RydWN0IGZiX2luZm8gKmluZm8pXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05NDMte1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6OTQ0OlxcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBpbmZvLVxcdTAwM2VwYXI7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05NDUtXFx0c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGZiX2hlbHBlci1cXHUwMDNlZGV2O1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05NzItfVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6OTczOkVYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9zZXRjbWFwKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTk3NC1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTk3NS0vKipcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjk3NjogKiBkcm1fZmJfaGVscGVyX2lvY3RsIC0gbGVnYWN5IGlvY3RsIGltcGxlbWVudGF0aW9uXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05NzctICogQGluZm86IGZiZGV2IHJlZ2lzdGVyZWQgYnkgdGhlIGhlbHBlclxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05ODMtICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo5ODQ6aW50IGRybV9mYl9oZWxwZXJfaW9jdGwoc3RydWN0IGZiX2luZm8gKmluZm8sIHVuc2lnbmVkIGludCBjbWQsXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05ODUtXFx0XFx0XFx0dW5zaWduZWQgbG9uZyBhcmcpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05ODYte1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6OTg3OlxcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBpbmZvLVxcdTAwM2VwYXI7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05ODgtXFx0aW50IHJldCA9IDA7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEwMTctfVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTAxODpFWFBPUlRfU1lNQk9MKGRybV9mYl9oZWxwZXJfaW9jdGwpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTAxOS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jPTEwMjA9c3RhdGljIGJvb2wgZHJtX2ZiX3BpeGVsX2Zvcm1hdF9lcXVhbChjb25zdCBzdHJ1Y3QgZmJfdmFyX3NjcmVlbmluZm8gKnZhcl8xLFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMDM4LVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTAzOTpzdGF0aWMgdm9pZCBkcm1fZmJfaGVscGVyX2ZpbGxfcGl4ZWxfZm10KHN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyAqdmFyLFxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTA0MC1cXHRcXHRcXHRcXHRcXHQgY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5mbyAqZm9ybWF0KVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYz0xMTAxPXN0YXRpYyB2b2lkIF9fZmlsbF92YXIoc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIsIHN0cnVjdCBmYl9pbmZvICppbmZvLFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMTI0LS8qKlxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTEyNTogKiBkcm1fZmJfaGVscGVyX2NoZWNrX3ZhciAtIGltcGxlbWVudGF0aW9uIGZvciBcXHUwMDI2ZmJfb3BzLmZiX2NoZWNrX3ZhclxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTEyNi0gKiBAdmFyOiBzY3JlZW5pbmZvIHRvIGNoZWNrXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTExMjgtICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxMTI5OmludCBkcm1fZmJfaGVscGVyX2NoZWNrX3ZhcihzdHJ1Y3QgZmJfdmFyX3NjcmVlbmluZm8gKnZhcixcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTExMzAtXFx0XFx0XFx0ICAgIHN0cnVjdCBmYl9pbmZvICppbmZvKVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTEzMS17XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxMTMyOlxcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBpbmZvLVxcdTAwM2VwYXI7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMTMzLVxcdHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gZmJfaGVscGVyLVxcdTAwM2VmYjtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTIwMy1cXHQgICAgIXZhci1cXHUwMDNlYmx1ZS5tc2JfcmlnaHQgXFx1MDAyNlxcdTAwMjYgIXZhci1cXHUwMDNldHJhbnNwLm1zYl9yaWdodCkge1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMjoyNC45NTgwOTUyMTVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDMyNDIwMjg1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgRFJNIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBgQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT05gIGlzIGRlZmluaXRlbHkgdGhlIGtleSBjb25maWd1cmF0aW9uIGl0ZW0gdGhhdCBicmluZ3MgaW4gYGRybV9mYl9oZWxwZXIuY2AuIFRoYXQncyB0aGUgc3RhcnRpbmcgcG9pbnQuIEJ1dCwgaG9sZCBvbiBhIHNlY29uZC4uLiB0aGUgcGF0Y2ggYWxzbyB0b3VjaGVzIGBkcm1fY2xpZW50X21vZGVzZXQuY2AgYW5kIGBkcm1fdmJsYW5rLmNgLiAgSG1tLCB0aGF0J3MgaW50ZXJlc3RpbmcuIEkga25vdyBgZHJtX2NsaWVudF9tb2Rlc2V0LmNgIGlzIGNvbXBpbGVkIGNvbmRpdGlvbmFsbHkgdW5kZXIgYENPTkZJR19EUk1gLCBzbyBpdCBpcyBsaWtlbHkgdGhhdCBjb25maWd1cmF0aW9uIGlzIG5lZWRlZC4gTGV0IG1lIGRvdWJsZS1jaGVjayB0aGUgYGRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZWAgdG8gY29uZmlybSB0aGF0IGBkcm1fY2xpZW50X21vZGVzZXQub2AgaXMgYWN0dWFsbHkgYnVpbHQgYXMgcGFydCBvZiB0aGUgRFJNIGNvcmUgYnVpbGQgcHJvY2Vzcy4gR290dGEgY29uZmlybSB3aGVyZSB0aGlzIGNvZGUgaXMgYmVpbmcgaW5jbHVkZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4MDcwLCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTI6MjguMzkwNTE3ODhaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NTc4MTU0NjIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZHJtX2NsaWVudF9tb2Rlc2V0XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIkRvY3VtZW50YXRpb24vZ3B1L2RybS1jbGllbnQucnN0PTI9S2VybmVsIGNsaWVudHNcXG4tLVxcbkRvY3VtZW50YXRpb24vZ3B1L2RybS1jbGllbnQucnN0LTEzLVxcbkRvY3VtZW50YXRpb24vZ3B1L2RybS1jbGllbnQucnN0OjE0Oi4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmNcXG5Eb2N1bWVudGF0aW9uL2dwdS9kcm0tY2xpZW50LnJzdC0xNS0gICA6ZXhwb3J0Olxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlPTc2PWRybS0kKENPTkZJR19EUk1fQ0xJRU5UKSArPSBcXFxcXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUtNzgtXFx0ZHJtX2NsaWVudF9ldmVudC5vIFxcXFxcXG5kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGU6Nzk6XFx0ZHJtX2NsaWVudF9tb2Rlc2V0Lm8gXFxcXFxcbmRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZS04MC1cXHRkcm1fY2xpZW50X3N5c3JxLm9cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9sb2cuYz0yMzU9c3RhdGljIHZvaWQgZHJtX2xvZ19pbml0X2NsaWVudChzdHJ1Y3QgZHJtX2xvZyAqZGxvZylcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9sb2cuYy0yNDMtXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2xvZy5jOjI0NDpcXHRpZiAoZHJtX2NsaWVudF9tb2Rlc2V0X3Byb2JlKGNsaWVudCwgMCwgMCkpXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2xvZy5jLTI0NS1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fbG9nLmMtMjY2LVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9sb2cuYzoyNjc6XFx0aWYgKGRybV9jbGllbnRfbW9kZXNldF9jb21taXQoY2xpZW50KSlcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fbG9nLmMtMjY4LVxcdFxcdGdvdG8gZXJyX2ZhaWxlZF9jb21taXQ7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fbG9nLmM9MzE4PXN0YXRpYyBpbnQgZHJtX2xvZ19jbGllbnRfcmVzdG9yZShzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgYm9vbCBmb3JjZSlcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9sb2cuYy0zMjItXFx0aWYgKGZvcmNlKVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9sb2cuYzozMjM6XFx0XFx0cmV0ID0gZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9sb2NrZWQoY2xpZW50KTtcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fbG9nLmMtMzI0LVxcdGVsc2VcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fbG9nLmM6MzI1OlxcdFxcdHJldCA9IGRybV9jbGllbnRfbW9kZXNldF9jb21taXQoY2xpZW50KTtcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fbG9nLmMtMzI2LVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnQuYz04MD1pbnQgZHJtX2NsaWVudF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnQuYy05MS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudC5jOjkyOlxcdHJldCA9IGRybV9jbGllbnRfbW9kZXNldF9jcmVhdGUoY2xpZW50KTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudC5jLTkzLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudC5jLTEwNC1lcnJfZnJlZTpcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudC5jOjEwNTpcXHRkcm1fY2xpZW50X21vZGVzZXRfZnJlZShjbGllbnQpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50LmMtMTA2LVxcdHJldHVybiByZXQ7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudC5jPTE2NT12b2lkIGRybV9jbGllbnRfcmVsZWFzZShzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudClcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50LmMtMTcwLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50LmM6MTcxOlxcdGRybV9jbGllbnRfbW9kZXNldF9mcmVlKGNsaWVudCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnQuYy0xNzItXFx0ZHJtX2NsaWVudF9jbG9zZShjbGllbnQpO1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jPTMzPXN0cnVjdCBkcm1fY2xpZW50X29mZnNldCB7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMzYtXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjM3OmludCBkcm1fY2xpZW50X21vZGVzZXRfY3JlYXRlKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0zOC17XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtNjktZXJyX2ZyZWU6XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjcwOlxcdGRybV9jbGllbnRfbW9kZXNldF9mcmVlKGNsaWVudCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTcxLVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTc0LVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzo3NTpzdGF0aWMgdm9pZCBkcm1fY2xpZW50X21vZGVzZXRfcmVsZWFzZShzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudClcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtNzYte1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTkzLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzo5NDp2b2lkIGRybV9jbGllbnRfbW9kZXNldF9mcmVlKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy05NS17XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtOTktXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEwMDpcXHRkcm1fY2xpZW50X21vZGVzZXRfcmVsZWFzZShjbGllbnQpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMDEtXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM9NjE5PXN0YXRpYyBib29sIGRybV9jbGllbnRfZmlybXdhcmVfY29uZmlnKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTgwNS0vKipcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6ODA2OiAqIGRybV9jbGllbnRfbW9kZXNldF9wcm9iZSgpIC0gUHJvYmUgZm9yIGRpc3BsYXlzXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTgwNy0gKiBAY2xpZW50OiBEUk0gY2xpZW50XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtODE2LSAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzo4MTc6aW50IGRybV9jbGllbnRfbW9kZXNldF9wcm9iZShzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgdW5zaWduZWQgaW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZ2h0KVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy04MTgte1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTg5NC1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6ODk1OlxcdGRybV9jbGllbnRfbW9kZXNldF9yZWxlYXNlKGNsaWVudCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTg5Ni1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy05NDQtfVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzo5NDU6RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X21vZGVzZXRfcHJvYmUpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy05NDYtXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM9MTAzMj1FWFBPUlRfU1lNQk9MKGRybV9jbGllbnRfcm90YXRpb24pO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMDMzLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMDM0OnN0YXRpYyBpbnQgZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9hdG9taWMoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIGJvb2wgYWN0aXZlLCBib29sIGNoZWNrKVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMDM1LXtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMTIzLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMTI0OnN0YXRpYyBpbnQgZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9sZWdhY3koc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTExMjUte1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTExNjUtLyoqXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjExNjY6ICogZHJtX2NsaWVudF9tb2Rlc2V0X2NoZWNrKCkgLSBDaGVjayBtb2Rlc2V0IGNvbmZpZ3VyYXRpb25cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTE2Ny0gKiBAY2xpZW50OiBEUk0gY2xpZW50XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTE3My0gKi9cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTE3NDppbnQgZHJtX2NsaWVudF9tb2Rlc2V0X2NoZWNrKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMTc1LXtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMTgxLVxcdG11dGV4X2xvY2soXFx1MDAyNmNsaWVudC1cXHUwMDNlbW9kZXNldF9tdXRleCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjExODI6XFx0cmV0ID0gZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9hdG9taWMoY2xpZW50LCB0cnVlLCB0cnVlKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTE4My1cXHRtdXRleF91bmxvY2soXFx1MDAyNmNsaWVudC1cXHUwMDNlbW9kZXNldF9tdXRleCk7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTE4Ni19XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjExODc6RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X21vZGVzZXRfY2hlY2spO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMTg4LVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMTg5LS8qKlxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMTkwOiAqIGRybV9jbGllbnRfbW9kZXNldF9jb21taXRfbG9ja2VkKCkgLSBGb3JjZSBjb21taXQgQ1JUQyBjb25maWd1cmF0aW9uXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTExOTEtICogQGNsaWVudDogRFJNIGNsaWVudFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTExOTktICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyMDA6aW50IGRybV9jbGllbnRfbW9kZXNldF9jb21taXRfbG9ja2VkKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjAxLXtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjA2LVxcdGlmIChkcm1fZHJ2X3VzZXNfYXRvbWljX21vZGVzZXQoZGV2KSlcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTIwNzpcXHRcXHRyZXQgPSBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0X2F0b21pYyhjbGllbnQsIHRydWUsIGZhbHNlKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTIwOC1cXHRlbHNlXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyMDk6XFx0XFx0cmV0ID0gZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9sZWdhY3koY2xpZW50KTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTIxMC1cXHRtdXRleF91bmxvY2soXFx1MDAyNmNsaWVudC1cXHUwMDNlbW9kZXNldF9tdXRleCk7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTIxMy19XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyMTQ6RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0X2xvY2tlZCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyMTUtXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyMTYtLyoqXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyMTc6ICogZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdCgpIC0gQ29tbWl0IENSVEMgY29uZmlndXJhdGlvblxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjE4LSAqIEBjbGllbnQ6IERSTSBjbGllbnRcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjI0LSAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMjI1OmludCBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0KHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjI2LXtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjMyLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMjMzOlxcdHJldCA9IGRybV9jbGllbnRfbW9kZXNldF9jb21taXRfbG9ja2VkKGNsaWVudCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyMzQtXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTIzOC19XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyMzk6RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0KTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTI0MC1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTI0MTpzdGF0aWMgdm9pZCBkcm1fY2xpZW50X21vZGVzZXRfZHBtc19sZWdhY3koc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIGludCBkcG1zX21vZGUpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyNDIte1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyNjYtLyoqXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyNjc6ICogZHJtX2NsaWVudF9tb2Rlc2V0X2RwbXMoKSAtIFNldCBEUE1TIG1vZGVcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTI2OC0gKiBAY2xpZW50OiBEUk0gY2xpZW50XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTI3NS0gKi9cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTI3NjppbnQgZHJtX2NsaWVudF9tb2Rlc2V0X2RwbXMoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIGludCBtb2RlKVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjc3LXtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjg1LVxcdGlmIChkcm1fZHJ2X3VzZXNfYXRvbWljX21vZGVzZXQoZGV2KSlcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTI4NjpcXHRcXHRyZXQgPSBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0X2F0b21pYyhjbGllbnQsIG1vZGUgPT0gRFJNX01PREVfRFBNU19PTiwgZmFsc2UpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjg3LVxcdGVsc2VcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTI4ODpcXHRcXHRkcm1fY2xpZW50X21vZGVzZXRfZHBtc19sZWdhY3koY2xpZW50LCBtb2RlKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTI4OS1cXHRtdXRleF91bmxvY2soXFx1MDAyNmNsaWVudC1cXHUwMDNlbW9kZXNldF9tdXRleCk7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTI5NC19XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyOTU6RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X21vZGVzZXRfZHBtcyk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyOTYtXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyOTctLyoqXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyOTg6ICogZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuaygpIC0gV2FpdCBmb3IgdGhlIG5leHQgVkJMQU5LIHRvIG9jY3VyXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyOTktICogQGNsaWVudDogRFJNIGNsaWVudFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEzMDgtICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEzMDk6aW50IGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92Ymxhbmsoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIHVuc2lnbmVkIGludCBjcnRjX2luZGV4KVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzEwLXtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzM4LX1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTMzOTpFWFBPUlRfU1lNQk9MKGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmspO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzQwLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzQxLSNpZmRlZiBDT05GSUdfRFJNX0tVTklUX1RFU1RcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTM0MjojaW5jbHVkZSBcXFwidGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuY1xcXCJcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTM0My0jZW5kaWZcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9MTE3PV9fZHJtX2ZiX2hlbHBlcl9yZXN0b3JlX2ZiZGV2X21vZGVfdW5sb2NrZWQoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcixcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTM1LVxcdFxcdCAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTM2OlxcdFxcdHJldCA9IGRybV9jbGllbnRfbW9kZXNldF9jb21taXRfbG9ja2VkKFxcdTAwMjZmYl9oZWxwZXItXFx1MDAzZWNsaWVudCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMzctXFx0fSBlbHNlIHtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjEzODpcXHRcXHRyZXQgPSBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0KFxcdTAwMjZmYl9oZWxwZXItXFx1MDAzZWNsaWVudCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMzktXFx0fVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYz0xNzM9c3RhdGljIHZvaWQgZHJtX2ZiX2hlbHBlcl9kcG1zKHN0cnVjdCBmYl9pbmZvICppbmZvLCBpbnQgZHBtc19tb2RlKVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xNzctXFx0bXV0ZXhfbG9jayhcXHUwMDI2ZmJfaGVscGVyLVxcdTAwM2Vsb2NrKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjE3ODpcXHRkcm1fY2xpZW50X21vZGVzZXRfZHBtcyhcXHUwMDI2ZmJfaGVscGVyLVxcdTAwM2VjbGllbnQsIGRwbXNfbW9kZSk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xNzktXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZmYl9oZWxwZXItXFx1MDAzZWxvY2spO1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYz0zMTU9c3RhdGljIHZvaWQgZHJtX2ZiX2hlbHBlcl9mYl9kaXJ0eShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyKVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zMjYtXFx0aWYgKGNydGNfaW5kZXggXFx1MDAzZT0gMClcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjMyNzpcXHRcXHRkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKFxcdTAwMjZoZWxwZXItXFx1MDAzZWNsaWVudCwgY3J0Y19pbmRleCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zMjgtXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZoZWxwZXItXFx1MDAzZWxvY2spO1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYz05ODQ9aW50IGRybV9mYl9oZWxwZXJfaW9jdGwoc3RydWN0IGZiX2luZm8gKmluZm8sIHVuc2lnbmVkIGludCBjbWQsXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEwMDktXFx0XFx0ICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxMDEwOlxcdFxcdHJldCA9IGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmsoXFx1MDAyNmZiX2hlbHBlci1cXHUwMDNlY2xpZW50LCAwKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEwMTEtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jPTEyNzM9c3RhdGljIGludCBwYW5fZGlzcGxheV9hdG9taWMoc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIsXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEyODItXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxMjgzOlxcdHJldCA9IGRybV9jbGllbnRfbW9kZXNldF9jb21taXRfbG9ja2VkKFxcdTAwMjZmYl9oZWxwZXItXFx1MDAzZWNsaWVudCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMjg0LVxcdGlmICghcmV0KSB7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jPTE1MjU9c3RhdGljIGludCBkcm1fZmJfaGVscGVyX3NpbmdsZV9mYl9wcm9iZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xNTM4LVxcdFxcdGlmICghZmJfaGVscGVyLVxcdTAwM2VkZWZlcnJlZF9zZXR1cClcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjE1Mzk6XFx0XFx0XFx0ZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdChjbGllbnQpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTU0MC1cXHRcXHRyZXR1cm4gcmV0O1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYz0xNzA3PV9fZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZ19hbmRfdW5sb2NrKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIpXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE3MTYtXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxNzE3OlxcdGRybV9jbGllbnRfbW9kZXNldF9wcm9iZShcXHUwMDI2ZmJfaGVscGVyLVxcdTAwM2VjbGllbnQsIHdpZHRoLCBoZWlnaHQpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTcxOC1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9MTgzNT1pbnQgZHJtX2ZiX2hlbHBlcl9ob3RwbHVnX2V2ZW50KHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIpXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE4NTctXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxODU4OlxcdGRybV9jbGllbnRfbW9kZXNldF9wcm9iZShcXHUwMDI2ZmJfaGVscGVyLVxcdTAwM2VjbGllbnQsIGZiX2hlbHBlci1cXHUwMDNlZmItXFx1MDAzZXdpZHRoLCBmYl9oZWxwZXItXFx1MDAzZWZiLVxcdTAwM2VoZWlnaHQpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTg1OS1cXHRkcm1fc2V0dXBfY3J0Y3NfZmIoZmJfaGVscGVyKTtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTE2LVxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jOjE3OnN0cnVjdCBkcm1fY2xpZW50X21vZGVzZXRfdGVzdF9wcml2IHtcXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYy0xOC1cXHRzdHJ1Y3QgZHJtX2RldmljZSAqZHJtO1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtMjItXFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM6MjM6c3RhdGljIGludCBkcm1fY2xpZW50X21vZGVzZXRfY29ubmVjdG9yX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKVxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTI0LXtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTQ2LVxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jOjQ3OnN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgZHJtX2NsaWVudF9tb2Rlc2V0X2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgPSB7XFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM6NDg6XFx0LmdldF9tb2RlcyA9IGRybV9jbGllbnRfbW9kZXNldF9jb25uZWN0b3JfZ2V0X21vZGVzLFxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTQ5LX07XFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtNTAtXFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM6NTE6c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIGRybV9jbGllbnRfbW9kZXNldF9jb25uZWN0b3JfZnVuY3MgPSB7XFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtNTItXFx0LmF0b21pY19kZXN0cm95X3N0YXRlICAgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZSxcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTU1LVxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jOjU2OnN0YXRpYyBpbnQgZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3RfaW5pdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtNTcte1xcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jOjU4OlxcdHN0cnVjdCBkcm1fY2xpZW50X21vZGVzZXRfdGVzdF9wcml2ICpwcml2O1xcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTU5LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYy03NC1cXHRyZXQgPSBkcm1tX2Nvbm5lY3Rvcl9pbml0KHByaXYtXFx1MDAzZWRybSwgXFx1MDAyNnByaXYtXFx1MDAzZWNvbm5lY3RvcixcXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYzo3NTpcXHRcXHRcXHRcXHQgIFxcdTAwMjZkcm1fY2xpZW50X21vZGVzZXRfY29ubmVjdG9yX2Z1bmNzLFxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTc2LVxcdFxcdFxcdFxcdCAgRFJNX01PREVfQ09OTkVDVE9SX1Vua25vd24sXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYy03OS1cXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYzo4MDpcXHRkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoXFx1MDAyNnByaXYtXFx1MDAzZWNvbm5lY3RvciwgXFx1MDAyNmRybV9jbGllbnRfbW9kZXNldF9jb25uZWN0b3JfaGVscGVyX2Z1bmNzKTtcXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYy04MS1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jPTg4PXN0YXRpYyB2b2lkIGRybV90ZXN0X3BpY2tfY21kbGluZV9yZXNfMTkyMF8xMDgwXzYwKHN0cnVjdCBrdW5pdCAqdGVzdClcXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYy04OS17XFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM6OTA6XFx0c3RydWN0IGRybV9jbGllbnRfbW9kZXNldF90ZXN0X3ByaXYgKnByaXYgPSB0ZXN0LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTkxLVxcdHN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBwcml2LVxcdTAwM2Vkcm07XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYz0xMzI9c3RhdGljIHZvaWQgZHJtX3Rlc3RfcGlja19jbWRsaW5lX25hbWVkKHN0cnVjdCBrdW5pdCAqdGVzdClcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTEzNC1cXHRjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9waWNrX2NtZGxpbmVfbW9kZV90ZXN0ICpwYXJhbXMgPSB0ZXN0LVxcdTAwM2VwYXJhbV92YWx1ZTtcXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYzoxMzU6XFx0c3RydWN0IGRybV9jbGllbnRfbW9kZXNldF90ZXN0X3ByaXYgKnByaXYgPSB0ZXN0LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTEzNi1cXHRzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gcHJpdi1cXHUwMDNlZHJtO1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM9MTkyPXN0YXRpYyBzdHJ1Y3Qga3VuaXRfc3VpdGUgZHJtX3Rlc3RfcGlja19jbWRsaW5lX3Rlc3Rfc3VpdGUgPSB7XFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtMTkzLVxcdC5uYW1lID0gXFxcImRybV90ZXN0X3BpY2tfY21kbGluZVxcXCIsXFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM6MTk0OlxcdC5pbml0ID0gZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3RfaW5pdCxcXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYy0xOTUtXFx0LnRlc3RfY2FzZXMgPSBkcm1fdGVzdF9waWNrX2NtZGxpbmVfdGVzdHNcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jPTE5OD1rdW5pdF90ZXN0X3N1aXRlKGRybV90ZXN0X3BpY2tfY21kbGluZV90ZXN0X3N1aXRlKTtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTIwMC0vKlxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jOjIwMTogKiBUaGlzIGZpbGUgaXMgaW5jbHVkZWQgZGlyZWN0bHkgYnkgZHJtX2NsaWVudF9tb2Rlc2V0LmMgc28gd2UgY2FuJ3RcXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYy0yMDItICogdXNlIGFueSBNT0RVTEVfKiBtYWNybyBoZXJlLlxcbi0tXFxuaW5jbHVkZS9kcm0vZHJtX2NsaWVudC5oPTIxMD12b2lkIGRybV9jbGllbnRfYnVmZmVyX3Z1bm1hcChzdHJ1Y3QgZHJtX2NsaWVudF9idWZmZXIgKmJ1ZmZlcik7XFxuaW5jbHVkZS9kcm0vZHJtX2NsaWVudC5oLTIxMS1cXG5pbmNsdWRlL2RybS9kcm1fY2xpZW50Lmg6MjEyOmludCBkcm1fY2xpZW50X21vZGVzZXRfY3JlYXRlKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KTtcXG5pbmNsdWRlL2RybS9kcm1fY2xpZW50Lmg6MjEzOnZvaWQgZHJtX2NsaWVudF9tb2Rlc2V0X2ZyZWUoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQpO1xcbmluY2x1ZGUvZHJtL2RybV9jbGllbnQuaDoyMTQ6aW50IGRybV9jbGllbnRfbW9kZXNldF9wcm9iZShzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgdW5zaWduZWQgaW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZ2h0KTtcXG5pbmNsdWRlL2RybS9kcm1fY2xpZW50LmgtMjE1LWJvb2wgZHJtX2NsaWVudF9yb3RhdGlvbihzdHJ1Y3QgZHJtX21vZGVfc2V0ICptb2Rlc2V0LCB1bnNpZ25lZCBpbnQgKnJvdGF0aW9uKTtcXG5pbmNsdWRlL2RybS9kcm1fY2xpZW50Lmg6MjE2OmludCBkcm1fY2xpZW50X21vZGVzZXRfY2hlY2soc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQpO1xcbmluY2x1ZGUvZHJtL2RybV9jbGllbnQuaDoyMTc6aW50IGRybV9jbGllbnRfbW9kZXNldF9jb21taXRfbG9ja2VkKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KTtcXG5pbmNsdWRlL2RybS9kcm1fY2xpZW50Lmg6MjE4OmludCBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0KHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KTtcXG5pbmNsdWRlL2RybS9kcm1fY2xpZW50Lmg6MjE5OmludCBkcm1fY2xpZW50X21vZGVzZXRfZHBtcyhzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgaW50IG1vZGUpO1xcbmluY2x1ZGUvZHJtL2RybV9jbGllbnQuaDoyMjA6aW50IGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92Ymxhbmsoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIHVuc2lnbmVkIGludCBjcnRjX2luZGV4KTtcXG5pbmNsdWRlL2RybS9kcm1fY2xpZW50LmgtMjIxLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMjoyOS45NDgzNDY2MTJaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzM2MzEwNjgxNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIHRoZSBEUk0gQ2xpZW50IE1vZGVzZXR0aW5nIENvbXBpbGF0aW9uKipcblxuQWxyaWdodCwgc28gYGRybV9jbGllbnRfbW9kZXNldC5jYCBpcyBiZWluZyBjb21waWxlZCwgYW5kIGl0J3MgZmxhZ2dlZCB1bmRlciBgQ09ORklHX0RSTV9DTElFTlRgLiBNeSBpbW1lZGlhdGUgaW5zdGluY3QgaXMgdG8ganVtcCBpbnRvIHRoZSBgS2NvbmZpZ2AgZmlsZXMg4oCTIHNwZWNpZmljYWxseSBpbiBgZHJpdmVycy9ncHUvZHJtL0tjb25maWdgIOKAkyB0byB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmN5IGFuZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgdGllZCB0byBgQ09ORklHX0RSTV9DTElFTlRgLiBJIHdhbnQgdG8gc2VlIHdoYXQgdGhhdCBjb25maWd1cmF0aW9uIHN5bWJvbCBhY3R1YWxseSAqbWVhbnMqIGluIHRoZSBicm9hZGVyIGNvbnRleHQgb2YgdGhlIERSTSBkcml2ZXIgZnJhbWV3b3JrLiBXaGF0IGFyZSB0aGUgcG90ZW50aWFsIGltcGxpY2F0aW9ucyBvZiBlbmFibGluZyBvciBkaXNhYmxpbmcgaXQ/IEFyZSB0aGVyZSBhbnkgc3BlY2lmaWMgaGFyZHdhcmUgb3Igc29mdHdhcmUgcmVxdWlyZW1lbnRzIGFzc29jaWF0ZWQgd2l0aCBpdD8gSSdtIGxvb2tpbmcgZm9yIHRoZSBcIndoeVwiIGFuZCBcImhvd1wiIGJlaGluZCB0aGlzIGNvbXBpbGF0aW9uIGNob2ljZSB0byB1bmRlcnN0YW5kIGl0cyByb2xlIGluIHRoZSBkcml2ZXIgZWNvc3lzdGVtLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTE5OCwiT3V0cHV0VG9rZW5zIjoxOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDAxOjEyOjMzLjMxMTQ1NjY4OVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTUzNDgwMjAzMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgRFJNX0NMSUVOVFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2dwdS9kcm0vS2NvbmZpZz0xNTg9Y29uZmlnIERSTV9ERUJVR19NT0RFU0VUX0xPQ0tcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnLTE3Mi1cXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZzoxNzM6Y29uZmlnIERSTV9DTElFTlRcXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZy0xNzQtXFx0Ym9vbFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0yLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6Mzpjb25maWcgRFJNX0NMSUVOVF9MSUJcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTQtXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMTEtXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZzoxMjpjb25maWcgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTEzLVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTIwLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6MjE6Y29uZmlnIERSTV9DTElFTlRfU0VUVVBcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTIyLVxcdGJvb2xcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc9NTQ9Y29uZmlnIERSTV9GQkRFVl9MRUFLX1BIWVNfU01FTVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy03My1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjc0OmNvbmZpZyBEUk1fQ0xJRU5UX0xPR1xcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctNzUtXFx0Ym9vbCBcXFwiUHJpbnQgdGhlIGtlcm5lbCBib290IG1lc3NhZ2Ugb24gdGhlIHNjcmVlblxcXCJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc9ODg9Y2hvaWNlXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTk4LVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6OTk6Y29uZmlnIERSTV9DTElFTlRfREVGQVVMVF9GQkRFVlxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMTAwLVxcdGJvb2wgXFxcImZiZGV2XFxcIlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0xMDUtXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZzoxMDY6Y29uZmlnIERSTV9DTElFTlRfREVGQVVMVF9MT0dcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTEwNy1cXHRib29sIFxcXCJsb2dcXFwiXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnPTExND1lbmRjaG9pY2VcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTExNS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjExNjpjb25maWcgRFJNX0NMSUVOVF9ERUZBVUxUXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0xMTctICAgICAgIHN0cmluZ1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMjozNC44NDYyNjUwOTJaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzU1Mzc1NzA3MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIERSTSBDbGllbnQgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYENPTkZJR19EUk1fQ0xJRU5UYCBhbmQgdGhlIGZpcnN0IHRoaW5nIEkgbm90aWNlIGlzIHRoYXQgaXQncyBhIGhpZGRlbiBib29sZWFuLiBUaGF0IG1lYW5zIGl0J3MgbGlrZWx5IHNlbGVjdGVkIGJ5IHNvbWV0aGluZyBlbHNlLCBhIGRlcGVuZGVuY3kuIEdpdmVuIHRoZSBuYW1lLCBteSBndXQgZmVlbGluZyBpcyB0aGF0IGVpdGhlciBgQ09ORklHX0RSTV9DTElFTlRfTElCYCBvciBgQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT05gIGlzIHJlc3BvbnNpYmxlIGZvciBzZWxlY3RpbmcgaXQuIEJvdGggYXJlIHBsYXVzaWJsZSBkZXBlbmRpbmcgb24gdGhlIHNwZWNpZmljIHVzZSBjYXNlLCBidXQgbGV0J3MgcXVpY2tseSBjaGVjayBgQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT05gIGZpcnN0LiBJdCBmZWVscyBsaWtlIHRoZSBtb3JlIGxpa2VseSBjYW5kaWRhdGUgdG8gbWUsIGdpdmVuIHRoZSBkaXJlY3QgY29ubmVjdGlvbiB0byBmcmFtZWJ1ZmZlcnMuIEknbGwgbmVlZCB0byBnbyBkaWcgaW50byBgZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZ2AgdG8gY29uZmlybSB0aGlzIHN1c3BpY2lvbi4gRnJvbSB0aGVyZSwgSSBjYW4gZGV0ZXJtaW5lIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aG9zZSBjb25maWcgb3B0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjYwMDQsIk91dHB1dFRva2VucyI6MjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMjozOC40MDAwMjQ1NzNaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NDcwMDY4ODIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIERSTV9GQkRFVl9FTVVMQVRJT05cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZz0yOD1tZW51IFxcXCJTdXBwb3J0ZWQgRFJNIGNsaWVudHNcXFwiXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMwLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6MzE6Y29uZmlnIERSTV9GQkRFVl9FTVVMQVRJT05cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMyLVxcdGJvb2wgXFxcIkVuYWJsZSBsZWdhY3kgZmJkZXYgc3VwcG9ydCBmb3IgeW91ciBtb2Rlc2V0dGluZyBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDAxOjEyOjM5Ljk0NzAzNjcyNVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTY5NzI2ODAzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgc3VtbWFyeSwgdGFraW5nIHRoZSBwZXJzcGVjdGl2ZSBvZiBzb21lb25lIGtub3dsZWRnZWFibGUgaW4gdGhlIGZpZWxkIGFuZCBhcHByb2FjaGluZyB0aGlzIHNwZWNpZmljIGNvZGUgcXVlcnk6XG5cbioqRGVjb25zdHJ1Y3RpbmcgdGhlIGBEUk1fRkJERVZfRU1VTEFUSU9OYCBTZWxlY3Rpb24qKlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGludG8gdGhpcy4gSSdtIHRha2luZyBhIGxvb2sgYXQgYERSTV9GQkRFVl9FTVVMQVRJT05gIGFuZCB0cnlpbmcgdG8gZmlndXJlIG91dCBleGFjdGx5ICp3aGF0KiBpdCdzIGNob29zaW5nLiBJdCdzIHRoYXQga2luZCBvZiBxdWVzdGlvbiB0aGF0LCBhcyBhIHNwZWNpYWxpc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRob3JvdWdobHkuIEl0IGRpcmVjdGx5IGltcGFjdHMgaG93IHRoZSBncmFwaGljcyBzdGFjayBpbnRlcmFjdHMgd2l0aCB0aGUgZnJhbWUgYnVmZmVyLiBJIHdhbnQgdG8gdW5kZXJzdGFuZCB3aGF0IGltcGxpY2F0aW9ucyB0aGlzIGNob2ljZSBjYXJyaWVzIGluIHRoaXMgY29udGV4dCBhbmQgaG93IGl0IGltcGFjdHMgdGhlIGFyY2hpdGVjdHVyZS4gSSdsbCBuZWVkIHRvIHJlbWVtYmVyIGFsbCB0aGUgdmFyaWFibGVzIGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2Mzc5LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTI6NDMuMTE2NzY2MjA4WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzQ1NzgwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgRFJNX0ZCREVWX0VNVUxBVElPTlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc9Mjg9bWVudSBcXFwiU3VwcG9ydGVkIERSTSBjbGllbnRzXFxcIlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0zMC1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjMxOmNvbmZpZyBEUk1fRkJERVZfRU1VTEFUSU9OXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0zMi1cXHRib29sIFxcXCJFbmFibGUgbGVnYWN5IGZiZGV2IHN1cHBvcnQgZm9yIHlvdXIgbW9kZXNldHRpbmcgZHJpdmVyXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMjo0My4xNjAyMjk2NjdaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzE5NzEyMDcxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHM6XG5cbioqQW5hbHl6aW5nIHRoZSBEUk0gQ2xpZW50IENvbmZpZ3VyYXRpb24qKlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGludG8gdGhpcyBgZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZ2AgZmlsZS4gSSdtIGZvY3VzaW5nIHNwZWNpZmljYWxseSBhcm91bmQgbGluZSAzMS4gVGhpcyBpcyB3aGVyZSB0aGUgcmVhbCBndXRzIG9mIHRoZSBjbGllbnQgY29uZmlndXJhdGlvbnMgYXJlIGRlZmluZWQsIGFuZCB3aGVyZSB0aGUgZGVjaXNpb25zIGdldCBtYWRlIG9uIHdoaWNoIGhhcmR3YXJlIG9yIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQuIEkgZXhwZWN0IHRvIHNlZSB0aGUgdHlwaWNhbCBgY29uZmlnYCBibG9ja3MsIGNvbmRpdGlvbmFsIHN0YXRlbWVudHMgdXNpbmcgYGRlcGVuZHMgb25gLCBgc2VsZWN0YCwgYW5kIGhvcGVmdWxseSBzb21lIGRlY2VudCBoZWxwIHRleHQgdG8gZ3VpZGUgdGhlIGNvbmZpZ3VyYXRpb24gcHJvY2Vzcy4gSSdtIGhvcGluZyB0byBxdWlja2x5IHVuZGVyc3RhbmQgd2hhdCBjbGllbnRzIGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQsIGhvdyB0aGV5J3JlIHJlbGF0ZWQgdG8gdmFyaW91cyBoYXJkd2FyZSBwbGF0Zm9ybXMsIGFuZCBhbnkgZGVwZW5kZW5jaWVzIHRoZXkgbWlnaHQgaGF2ZSBvbiBzcGVjaWZpYyBrZXJuZWwgZmVhdHVyZXMgb3Igb3RoZXIgRFJNIG1vZHVsZXMuIEkgbmVlZCB0byBnZXQgYSBoaWdoLWxldmVsIHBpY3R1cmUgb2YgdGhlIGNsaWVudCBjb25maWd1cmF0aW9uIHN0cmF0ZWd5IGhlcmUgc28gSSBjYW4gdW5kZXJzdGFuZCBhbnkgZG93bnN0cmVhbSBpbXBhY3RzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjY4MSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDAxOjEyOjQ2LjM1NzM1MjM0OVoiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NzA4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDI1LFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgIDI1OlxcdFxcdCAgRW5hYmxlcyB0aGUgRFJNIGNsaWVudCBzZWxlY3Rpb24uIERSTSBkcml2ZXJzIHRoYXQgc3VwcG9ydCB0aGVcXG4gIDI2OlxcdFxcdCAgZGVmYXVsdCBjbGllbnRzIHNob3VsZCBzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT04gaW5zdGVhZC5cXG4gIDI3OlxcdFxcbiAgMjg6XFx0bWVudSBcXFwiU3VwcG9ydGVkIERSTSBjbGllbnRzXFxcIlxcbiAgMjk6XFx0XFx0ZGVwZW5kcyBvbiBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbiAgMzA6XFx0XFxuICAzMTpcXHRjb25maWcgRFJNX0ZCREVWX0VNVUxBVElPTlxcbiAgMzI6XFx0XFx0Ym9vbCBcXFwiRW5hYmxlIGxlZ2FjeSBmYmRldiBzdXBwb3J0IGZvciB5b3VyIG1vZGVzZXR0aW5nIGRyaXZlclxcXCJcXG4gIDMzOlxcdFxcdGRlcGVuZHMgb24gRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG4gIDM0OlxcdFxcdHNlbGVjdCBEUk1fQ0xJRU5UXFxuICAzNTpcXHRcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRVRVUFxcbiAgMzY6XFx0XFx0c2VsZWN0IEZSQU1FQlVGRkVSX0NPTlNPTEVfREVURUNUX1BSSU1BUlkgaWYgRlJBTUVCVUZGRVJfQ09OU09MRVxcbiAgMzc6XFx0XFx0ZGVmYXVsdCBGQlxcbiAgMzg6XFx0XFx0aGVscFxcbiAgMzk6XFx0XFx0ICBDaG9vc2UgdGhpcyBvcHRpb24gaWYgeW91IGhhdmUgYSBuZWVkIGZvciB0aGUgbGVnYWN5IGZiZGV2XFxuICA0MDpcXHRcXHQgIHN1cHBvcnQuIE5vdGUgdGhhdCB0aGlzIHN1cHBvcnQgYWxzbyBwcm92aWRlcyB0aGUgbGludXggY29uc29sZVxcbiAgNDE6XFx0XFx0ICBzdXBwb3J0IG9uIHRvcCBvZiB5b3VyIG1vZGVzZXR0aW5nIGRyaXZlci5cXG4gIDQyOlxcdFxcbiAgNDM6XFx0XFx0ICBJZiBpbiBkb3VidCwgc2F5IFxcXCJZXFxcIi5cXG4gIDQ0OlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMjo0Ni4zNTc0MTE1MTlaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzk5Mjg4NjIwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipOYXZpZ2F0aW5nIHRoZSBEUk0gQ29uZmlndXJhdGlvbiBMYW5kc2NhcGUqKlxuXG5Pa2F5LCBzbyBJJ20gZGl2aW5nIGludG8gdGhpcyBEUk0gY29uZmlndXJhdGlvbiBqdW5nbGUuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGBEUk1fRkJERVZfRU1VTEFUSU9OYCBhdXRvbWF0aWNhbGx5IHB1bGxzIGluIGBEUk1fQ0xJRU5UYCDigJMgZ29vZCB0byBrbm93LiBUaGlzIG1ha2VzIG1lIHJlYWxpemUgd2UgbmVlZCB0byBhZGQgYERSTV9GQkRFVl9FTVVMQVRJT05gIHRvIG91ciBgRW5hYmxlQ29uZmlnc2AuIEJ1dCBoYW5nIG9uIGEgc2Vjb25kLCBJIGhhdmUgYSBmZWVsaW5nIGBEUk1fQ0xJRU5UYCBtaWdodCBiZSBzZWxlY3RlZCBieSBvdGhlciB0aGluZ3MgYXMgd2VsbCwgbWF5YmUgYERSTV9DTElFTlRfTE9HYD8gSSBuZWVkIHRvIHZlcmlmeSB0aGF0LiBMZXQgbWUgbG9vayBhdCBgRFJNX0NMSUVOVF9TRUxFQ1RJT05gLiBBbHJpZ2h0LCBmb3VuZCBpdCwgdGhhdCdzIHNlbGVjdGVkIGJ5IHRoZSBEUk0gZHJpdmVycyB0aGVtc2VsdmVzLiBOb3csIGp1c3QgdG8gYmUgdGhvcm91Z2ggYW5kIGF2b2lkIGFueSBnb3RjaGFzLCBsZXQncyBxdWlja2x5IGNoZWNrIGBEUk1fVktNU2AgdG8gc2VlIGlmIGl0IGltcGxpY2l0bHkgc2VsZWN0cyBgRFJNX0NMSUVOVF9TRUxFQ1RJT05gLiBXYW50IHRvIG1ha2Ugc3VyZSBldmVyeXRoaW5nJ3MgY29ubmVjdGVkIGFzIEkgZXhwZWN0IGl0IHRvIGJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNzE4OCwiT3V0cHV0VG9rZW5zIjoxOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwOCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDAxOjEyOjUwLjM1MDI5OTkwNloiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTUzNzIxODAyMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgRFJNX1ZLTVNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZy0yLVxcbmRyaXZlcnMvZ3B1L2RybS92a21zL0tjb25maWc6Mzpjb25maWcgRFJNX1ZLTVNcXG5kcml2ZXJzL2dwdS9kcm0vdmttcy9LY29uZmlnLTQtXFx0dHJpc3RhdGUgXFxcIlZpcnR1YWwgS01TIChFWFBFUklNRU5UQUwpXFxcIlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZy0xOC1cXG5kcml2ZXJzL2dwdS9kcm0vdmttcy9LY29uZmlnOjE5OmNvbmZpZyBEUk1fVktNU19LVU5JVF9URVNUXFxuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZy0yMC1cXHR0cmlzdGF0ZSBcXFwiS1VuaXQgdGVzdHMgZm9yIFZLTVNcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTI6NTEuODg3NTIxNjY5WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1ODY1OTE2MTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgcmVhZGluZyB0aGUgS2NvbmZpZyBmaWxlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBWS01TIEtjb25maWcqKlxuXG5Pa2F5LCB0aW1lIHRvIGRpZyBpbnRvIGBkcml2ZXJzL2dwdS9kcm0vdmttcy9LY29uZmlnYC4gUmlnaHQgYXdheSwgSSdtIGV4cGVjdGluZyB0aGlzIGZpbGUgdG8gZGVmaW5lIHRoZSBidWlsZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBWdWxrYW4gS01TIGRyaXZlci4gS25vd2luZyB0aGUgRFJNIHN1YnN5c3RlbSwgSSdtIGFudGljaXBhdGluZyB0byBzZWUgZGVwZW5kZW5jaWVzIG9uIHRoZSBjb3JlIERSTSBpbmZyYXN0cnVjdHVyZSwgbWF5YmUgb3B0aW9ucyBmb3Igc3BlY2lmaWMgaGFyZHdhcmUgZmVhdHVyZXMgb3IgdmFyaWF0aW9ucywgYW5kIGRlZmluaXRlbHkgc29tZSBzZWxlY3Rpb25zIHJlbGF0ZWQgdG8gZGVidWcgYW5kIHRlc3RpbmcgY2FwYWJpbGl0aWVzLiBJJ2xsIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IG9wdGlvbnMgYXJlIGF2YWlsYWJsZSB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgVktNUyBkcml2ZXIgYW5kIGFueSByZWxhdGVkIGZlYXR1cmVzLiBJJ2xsIGJlIGxvb2tpbmcgZm9yIHRoaW5ncyBsaWtlOlxuXG4qICAgKipgQ09ORklHX0RSTV9WS01TYCoqOiBUaGUgbWFpbiBzd2l0Y2ggdG8gZW5hYmxlIHRoZSBkcml2ZXIuXG4qICAgKipEZXBlbmRlbmNpZXMqKjogSSBleHBlY3QgYSBkZXBlbmRlbmN5IG9uIHRoZSBEUk0gY29yZSAoYENPTkZJR19EUk1gKS4gUG9zc2libHkgb3RoZXIgY29yZSBkZXBlbmRlbmNpZXMsIG9yIG9uIHRoZSBwbGF0Zm9ybSB0aGUgZHJpdmVyIGlzIGludGVuZGVkIGZvci5cbiogICAqKlN1Yi1mZWF0dXJlcyoqOiBBbnl0aGluZyBzcGVjaWZpYyB0byBWS01TIHRoYXQgY2FuIGJlIGNvbmZpZ3VyZWQsIGxpa2UgZGVidWcgbWVzc2FnZXMgKGBDT05GSUdfRFJNX1ZLTVNfREVCVUdgKS4gTWF5YmUgb3B0aW9ucyBmb3Igc3BlY2lmaWMgdmlydHVhbCBoYXJkd2FyZSBjb25maWd1cmF0aW9ucyBvciByZW5kZXJpbmcgbW9kZXMuXG4qICAgKipEb2N1bWVudGF0aW9uKio6IElzIGl0IHdlbGwtZG9jdW1lbnRlZD8gSSBob3BlIGl0J3Mgd2VsbC1jb21tZW50ZWQgYmVjYXVzZSBnb29kIEtjb25maWcgZmlsZXMgYXJlIGVzc2VudGlhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgYnVpbGQgc3lzdGVtLiBUaGUgY29tbWVudHMgd2lsbCB0ZWxsIG1lIHdoYXQgdGhlIG9wdGlvbnMgZG8uXG4qICAgKipEZWZhdWx0cyoqOiBXaGF0IGFyZSB0aGUgZGVmYXVsdCB2YWx1ZXMgZm9yIHRoZSBvcHRpb25zPyBBcmUgdGhleSByZWFzb25hYmxlPyBEbyB0aGV5IGFsaWduIHdpdGggY29tbW9uIHVzZSBjYXNlcz9cbiogICAqKlRyaWdnZXJzKio6IEkgd29uZGVyIGlmIHRoZXJlIGFyZSBhbnkgb3B0aW9ucyB0byBidWlsZCBhIHJlZHVjZWQtZnVuY3Rpb25hbGl0eSBWS01TIGZvciBzcGVjaWZpYyB0YXJnZXRzLiBUaGlzIG1pZ2h0IGJlIHVzZWQgdG8gcmVkdWNlIHRoZSBzaXplIG9yIGNvbXBsZXhpdHkgb2YgdGhlIHN5c3RlbS5cbiogICAqKkNvbmZsaWN0cyoqOiBBcmUgdGhlcmUgY29uZmxpY3Rpbmcgb3B0aW9ucz8gQXJlIHRoZXJlIGFueSBvcHRpb25zIHdoaWNoIG1ha2Ugb3RoZXJzIG11dHVhbGx5IGV4Y2x1c2l2ZT8gVGhpcyBjYW4gYmUga2V5IHdoZW4gYnVpbGRpbmcgYW5kIGNvbmZpZ3VyaW5nIHRoZSBrZXJuZWwuXG4qICAgKipIZWxwKio6IEhvdyBnb29kIGlzIHRoZSBoZWxwIHRleHQ/IElzIGl0IGNsZWFyIGFuZCBjb25jaXNlPyBEb2VzIGl0IHByb3ZpZGUgZ29vZCBjb250ZXh0IGZvciB0aGUgdXNlciB0byBtYWtlIGluZm9ybWVkIGRlY2lzaW9ucz9cblxuSSdsbCBiZSBwYXlpbmcgY2xvc2UgYXR0ZW50aW9uIHRvIHRoZSBkZXBlbmRlbmNpZXMsIGFzIHRoZXkgd2lsbCB0ZWxsIG1lIGhvdyB0aGlzIGRyaXZlciBmaXRzIGludG8gdGhlIGJyb2FkZXIgRFJNL1Z1bGthbiBsYW5kc2NhcGUuIEkgYW0gY3VyaW91cyB0byBzZWUgaG93IHRoZSBWS01TIGltcGxlbWVudGF0aW9uIGhhcyBhZGRyZXNzZWQgdGhlIHVzZXIgaW50ZXJmYWNlLiBNeSBwcmltYXJ5IGdvYWwgaGVyZSBpcyB0byBncmFzcCB0aGUgY29uZmlndXJhYmlsaXR5IG9mIFZLTVMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3NjY3LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTI6NTYuNDc0MTE2NDQ5WiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU0NzQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvZ3B1L2RybS92a21zL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG4gICAyOlxcdFxcbiAgIDM6XFx0Y29uZmlnIERSTV9WS01TXFxuICAgNDpcXHRcXHR0cmlzdGF0ZSBcXFwiVmlydHVhbCBLTVMgKEVYUEVSSU1FTlRBTClcXFwiXFxuICAgNTpcXHRcXHRkZXBlbmRzIG9uIERSTSBcXHUwMDI2XFx1MDAyNiBNTVVcXG4gICA2OlxcdFxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbiAgIDc6XFx0XFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuICAgODpcXHRcXHRzZWxlY3QgRFJNX0dFTV9TSE1FTV9IRUxQRVJcXG4gICA5OlxcdFxcdHNlbGVjdCBDUkMzMlxcbiAgMTA6XFx0XFx0c2VsZWN0IENPTkZJR0ZTX0ZTXFxuICAxMTpcXHRcXHRkZWZhdWx0IG5cXG4gIDEyOlxcdFxcdGhlbHBcXG4gIDEzOlxcdFxcdCAgVmlydHVhbCBLZXJuZWwgTW9kZS1TZXR0aW5nIChWS01TKSBpcyB1c2VkIGZvciB0ZXN0aW5nIG9yIGZvclxcbiAgMTQ6XFx0XFx0ICBydW5uaW5nIEdQVSBpbiBhIGhlYWRsZXNzIG1hY2hpbmVzLiBDaG9vc2UgdGhpcyBvcHRpb24gdG8gZ2V0XFxuICAxNTpcXHRcXHQgIGEgVktNUy5cXG4gIDE2OlxcdFxcbiAgMTc6XFx0XFx0ICBJZiBNIGlzIHNlbGVjdGVkIHRoZSBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgdmttcy5cXG4gIDE4OlxcdFxcbiAgMTk6XFx0Y29uZmlnIERSTV9WS01TX0tVTklUX1RFU1RcXG4gIDIwOlxcdFxcdHRyaXN0YXRlIFxcXCJLVW5pdCB0ZXN0cyBmb3IgVktNU1xcXCIgaWYgIUtVTklUX0FMTF9URVNUU1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMjo1Ni40NzQxNzIyMzlaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzgwMjA3MjEyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoaXMgY29uZmlndXJhdGlvbiBsb2dpYywgZm9jdXNpbmcgb24gdGhlIGRlcGVuZGVuY2llcyBhbmQgdGhlIG92ZXJhbGwgZ29hbDpcblxuKipUaGlua2luZyBUaHJvdWdoIFZpcnR1YWwgS01TIERyaXZlciBTZWxlY3Rpb24qKlxuXG5BbHJpZ2h0LCBsZXQgbWUgc2VlLi4uIHNvLCBpZiBJJ20gdW5kZXJzdGFuZGluZyB0aGlzIGNvcnJlY3RseSwgdGhlIGBEUk1fVktNU2AgZHJpdmVyIHNwZWNpZmljYWxseSBicmluZ3MgaW4gdGhlIGBEUk1fQ0xJRU5UX1NFTEVDVElPTmAgb3B0aW9uLiBUaGF0IG1ha2VzIHNlbnNlLCBgRFJNX1ZLTVNgIGlzIGEgdmlydHVhbCBLTVMgZHJpdmVyIHNvIHRoZSBjbGllbnRzIGNhbiBiZSBtYW5hZ2VkIGFuZCBzZWxlY3RlZC4gXG5cbk5vdywgb24gdG9wIG9mIHRoYXQsIGBEUk1fRkJERVZfRU1VTEFUSU9OYCBkZWZhdWx0cyB0byBgRkJgLCBva2F5LCBnb3QgaXQuIFNvLCB0byBlbnN1cmUgd2UgZ2V0IHRoZSBmdW5jdGlvbmFsaXR5IHdlJ3JlIGFpbWluZyBmb3Ig4oCTIHByZXN1bWFibHkgYSB2aXJ0dWFsIEtNUyBlbnZpcm9ubWVudCB3aXRoIHRoZSBmcmFtZWJ1ZmZlciBlbXVsYXRpb24gYXZhaWxhYmxlIOKAkyB0aGUgY2xlYXIgcGF0aCBpcyB0byBlbmFibGUgYm90aCBgRFJNX1ZLTVNgIGFuZCBgRFJNX0ZCREVWX0VNVUxBVElPTmAuXG5cbkhtbSwgaG9sZCBvbi4gVGhlcmUncyBhbm90aGVyIHZpcnR1YWwgZHJpdmVyIGluIHRoZSBtaXg6IGBEUk1fVkdFTWAuIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgc29tZXRoaW5nLiBJcyBgRFJNX1ZHRU1gIGFsc28gc2VsZWN0aW5nIGBEUk1fQ0xJRU5UX1NFTEVDVElPTmA/IFdlJ2xsIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgZGlmZmVyZW5jZXMgb2Ygc2VsZWN0aW9uIGFuZCB3aGVuIHRvIHVzZSB0aGVzZSBkcml2ZXJzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyODQ3MywiT3V0cHV0VG9rZW5zIjoxOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg4LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTM6MDAuMjc2MjQ3MTUyWiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTIxNDQ2NTY0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBEUk1fVkdFTVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2dwdS9kcm0vdmdlbS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9ncHUvZHJtL3ZnZW0vS2NvbmZpZzoyOmNvbmZpZyBEUk1fVkdFTVxcbmRyaXZlcnMvZ3B1L2RybS92Z2VtL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiVmlydHVhbCBHRU0gcHJvdmlkZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDAxOjEzOjAxLjc5NzcwMjI5NVoiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2Mjg1NjI5MzA3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcyBLY29uZmlnIGZpbGUgZm9yIHRoZSB2aXJ0dWFsIEdFTSBkcml2ZXIg4oCTIGBkcml2ZXJzL2dwdS9kcm0vdmdlbS9LY29uZmlnYC4gSSBuZWVkIHRvIGdldCBhIGNsZWFyIHVuZGVyc3RhbmRpbmcgb2YgaXRzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgZGVwZW5kZW5jaWVzLlxuXG4qKktjb25maWcgQW5hbHlzaXMgZm9yIFZpcnR1YWwgR0VNKipcblxuUmlnaHQsIHNvIEknbSBnb2luZyB0aHJvdWdoIHRoaXMgS2NvbmZpZyB0byBzZWUgaG93IHRoZSB2aXJ0dWFsIEdFTSBkcml2ZXIgaXMgc2V0IHVwIGZvciBjb25maWd1cmF0aW9uLiBJdCdzIHRoZSBzdGFuZGFyZCBmb3JtYXQsIHdoaWNoIG1lYW5zIGl0IHNob3VsZCBiZSBzdHJhaWdodGZvcndhcmQgZW5vdWdoIHRvIHBhcnNlLiBJJ20gbG9va2luZyBmb3IgdGhlIGNvcmUgb3B0aW9ucywgdGhlaXIgZGVmYXVsdHMsIGFueSBkZXBlbmRlbmNpZXMgb24gb3RoZXIga2VybmVsIGZlYXR1cmVzIG9yIGRyaXZlcnMsIGFuZCBvZiBjb3Vyc2UsIHdoYXQncyBjb250cm9sbGluZyB0aGUgYnVpbGQgcHJvY2Vzcy5cblxuRmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHRoZXJlJ3MgYSBtYWluIHN5bWJvbC4gVGhlbiB0aGUgZGVwZW5kZW5jaWVzIG5lZWQgdG8gYmUgdW5kZXJzdG9vZCBpbiB0aGUgY29udGV4dCBvZiB3aGF0IGhhcmR3YXJlIHRoZXkgdGFyZ2V0LCBvciB3aGF0IG90aGVyIG9wdGlvbnMgYXJlIG5lZWRlZCBmb3IgdGhlIGRyaXZlciB0byB3b3JrLiBJIHdpbGwgYmUgbG9va2luZyB0byBzZWUgaWYgdGhlcmUgaXMgYW55IG1lbnRpb24gb2YgdGhpcyBkcml2ZXIgYmVpbmcgZXhwZXJpbWVudGFsLCBpZiBpdCBpcyBzdGlsbCBhY3RpdmUsIG9yIGlmIGl0IGlzIGRlcHJlY2F0ZWQuIEFuZCBvZiBjb3Vyc2UsIEkgYW0gb24gdGhlIGxvb2tvdXQgZm9yIGFueSBpbnRlcmVzdGluZyBvciB1bnVzdWFsIGNvbmZpZ3VyYXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyODkwOSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDAxOjEzOjA4LjA4MzMzNDM1M1oiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2Mzk0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL2dwdS9kcm0vdmdlbS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDEwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHRjb25maWcgRFJNX1ZHRU1cXG4gICAzOlxcdFxcdHRyaXN0YXRlIFxcXCJWaXJ0dWFsIEdFTSBwcm92aWRlclxcXCJcXG4gICA0OlxcdFxcdGRlcGVuZHMgb24gRFJNIFxcdTAwMjZcXHUwMDI2IE1NVVxcbiAgIDU6XFx0XFx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXFxuICAgNjpcXHRcXHRoZWxwXFxuICAgNzpcXHRcXHQgIENob29zZSB0aGlzIG9wdGlvbiB0byBnZXQgYSB2aXJ0dWFsIGdyYXBoaWNzIG1lbW9yeSBtYW5hZ2VyLFxcbiAgIDg6XFx0XFx0ICBhcyB1c2VkIGJ5IE1lc2EncyBzb2Z0d2FyZSByZW5kZXJlciBmb3IgZW5oYW5jZWQgcGVyZm9ybWFuY2UuXFxuICAgOTpcXHRcXHQgIElmIE0gaXMgc2VsZWN0ZWQgdGhlIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCB2Z2VtLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMzowOC4wODMzOTk3NjNaIiwiU2VxIjoyNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDQ3MDcwOTgyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBEUk0gQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIFZHRU0gZG9lc24ndCB1dGlsaXplIEtNUy4gVGhhdCBpbW1lZGlhdGVseSBtZWFucyBJIG5lZWQgdG8gYnlwYXNzIHRoZSBgRFJNX0NMSUVOVF9TRUxFQ1RJT05gIGFuZCBmb2N1cyBvbiBgRFJNX1ZLTVNgIGluc3RlYWQuIFRoYXQncyBhIGtleSBmaXJzdCBzdGVwIGluIGdldHRpbmcgdGhpcyB3b3JraW5nLiBJIGFsc28ga25vdyBJIHNob3VsZCBlbmFibGUgYERSTV9GQkRFVl9FTVVMQVRJT05gLiBOb3csIHRoZSBuZXh0IHF1ZXN0aW9uIGlzIGFib3V0IGhvdyB2Ymxhbmsgd2FpdHMgYXJlIGhhbmRsZWQgaW4gdXNlciBzcGFjZS4gSSBuZWVkIHRvIGNvbmZpcm0gd2hldGhlciBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgY2FsbHMuXG5cblJpZ2h0LCBsZXQgbWUgc2VlLi4uIHllcywgSSBjYW4gc2VlIHRoYXQgYGRybV9mYl9oZWxwZXJfaW9jdGxgIGlzIGNhbGxpbmcgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgLCB3aGljaCB0aGVuIGdvZXMgb24gdG8gY2FsbCB0aGUgc3BlY2lmaWMgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAgZnVuY3Rpb24gdGhhdCBJIGFtIGludGVyZXN0ZWQgaW4uIEZ1cnRoZXJtb3JlLCBJIG5lZWQgdG8gcmVtaW5kIG15c2VsZiB0aGF0IGl0IGlzIGFsc28gY2FsbGVkIGJ5IHRob3NlIGF0b21pYyBjb21taXQgaGVscGVycy4gR29vZCwgdGhhdCBjb25maXJtcyBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSB2Ymxhbmsgc3luY2hyb25pemF0aW9uIHBhdGggZm9yIGJvdGggbGVnYWN5IGFuZCBhdG9taWMgbW9kZXNldHRpbmcsIGFuZCBpdCBzZWVtcyB0aGUgaW1wbGVtZW50YXRpb24gaXMgc29saWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5MzIwLCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTUyLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTM6MTIuNTU0MTEzMzA2WiIsIlNlcSI6MjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjE3ODk5NjIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRybV9jcnRjX3dhaXRfb25lX3ZibGFua1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2dwdS9kcm0vZGlzcGxheS9kcm1fZHBfaGVscGVyLmM9MjI4Nz1zdGF0aWMgdm9pZCBkcm1fZHBfYXV4X2NyY193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kaXNwbGF5L2RybV9kcF9oZWxwZXIuYy0yMzAwLVxcdHdoaWxlIChjcnRjLVxcdTAwM2VjcmMub3BlbmVkKSB7XFxuZHJpdmVycy9ncHUvZHJtL2Rpc3BsYXkvZHJtX2RwX2hlbHBlci5jOjIzMDE6XFx0XFx0ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKGNydGMpO1xcbmRyaXZlcnMvZ3B1L2RybS9kaXNwbGF5L2RybV9kcF9oZWxwZXIuYy0yMzAyLVxcdFxcdGlmICghY3J0Yy1cXHUwMDNlY3JjLm9wZW5lZClcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYz0xMzA5PWludCBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCB1bnNpZ25lZCBpbnQgY3J0Y19pbmRleClcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzMwLVxcdGlmICghcmV0KSB7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEzMzE6XFx0XFx0ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKGNydGMpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzMyLVxcdFxcdGRybV9jcnRjX3ZibGFua19wdXQoY3J0Yyk7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmg9MTE3PXU2NCBkcm1fdmJsYW5rX2NvdW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmg6MTE4OmludCBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoc3RydWN0IGRybV9jcnRjICpjcnRjKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgtMTE5LVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYz0xMjk4PUVYUE9SVF9TWU1CT0woZHJtX2NydGNfdmJsYW5rX3B1dCk7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jLTEzMDAtLyoqXFxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYzoxMzAxOiAqIGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbCAtIHdhaXQgZm9yIG9uZSB2YmxhbmtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jLTEzMDItICogQGNydGM6IERSTSBjcnRjXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jLTEzMDgtICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYzoxMzA5OmludCBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoc3RydWN0IGRybV9jcnRjICpjcnRjKVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMtMTMxMC17XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jLTEzMjYtLyoqXFxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYzoxMzI3OiAqIGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayAtIHdhaXQgZm9yIG9uZSB2YmxhbmtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jLTEzMjgtICogQGNydGM6IERSTSBjcnRjXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jLTEzMzUtICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYzoxMzM2OmludCBkcm1fY3J0Y193YWl0X29uZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMtMTMzNy17XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jLTEzNDYtXFxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYzoxMzQ3OlxcdHJldCA9IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jLTEzNDgtXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jLTEzNTQtfVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmM6MTM1NTpFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYy0xMzU2LVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jcnRjLmM9Njc9dm9pZCBpbnRlbF9jcnRjX3dhaXRfZm9yX25leHRfdmJsYW5rKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKVxcbmRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0Yy5jLTY4LXtcXG5kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NydGMuYzo2OTpcXHRkcm1fY3J0Y193YWl0X29uZV92YmxhbmsoXFx1MDAyNmNydGMtXFx1MDAzZWJhc2UpO1xcbmRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0Yy5jLTcwLX1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9pbmdlbmljL2luZ2VuaWMtZHJtLWRydi5jPTIxMz1zdGF0aWMgaW50IGluZ2VuaWNfZHJtX3VwZGF0ZV9waXhjbGsoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYixcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9pbmdlbmljL2luZ2VuaWMtZHJtLWRydi5jLTIyMi1cXHRcXHRwcml2LVxcdTAwM2V1cGRhdGVfY2xrX3JhdGUgPSB0cnVlO1xcbmRyaXZlcnMvZ3B1L2RybS9pbmdlbmljL2luZ2VuaWMtZHJtLWRydi5jOjIyMzpcXHRcXHRkcm1fY3J0Y193YWl0X29uZV92YmxhbmsoXFx1MDAyNnByaXYtXFx1MDAzZWNydGMpO1xcbmRyaXZlcnMvZ3B1L2RybS9pbmdlbmljL2luZ2VuaWMtZHJtLWRydi5jLTIyNC1cXHRcXHRyZXR1cm4gTk9USUZZX09LO1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19jcnRjLmM9ODA1PXN0YXRpYyB2b2lkIG10a19jcnRjX2F0b21pY19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YyxcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY3J0Yy5jLTgzNi1cXHQvKiBXYWl0IGZvciBwbGFuZXMgdG8gYmUgZGlzYWJsZWQgKi9cXG5kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2NydGMuYzo4Mzc6XFx0ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKGNydGMpO1xcbmRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY3J0Yy5jLTgzOC1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2NydGMuYz0zNj1zdGF0aWMgdm9pZCBzdGlfY3J0Y19hdG9taWNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9jcnRjLmMtNDQtXFxuZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfY3J0Yy5jOjQ1OlxcdGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhjcnRjKTtcXG5kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9jcnRjLmMtNDYtfVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmM9MTc3MT1zdGF0aWMgaW50IHRlZ3JhX2RjX3Nob3dfY3JjKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5jLTE3ODgtXFxuZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmM6MTc4OTpcXHRkcm1fY3J0Y193YWl0X29uZV92YmxhbmsoXFx1MDAyNmRjLVxcdTAwM2ViYXNlKTtcXG5kcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMuYzoxNzkwOlxcdGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhcXHUwMDI2ZGMtXFx1MDAzZWJhc2UpO1xcbmRyaXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5jLTE3OTEtXFxuLS1cXG5pbmNsdWRlL2RybS9kcm1fdmJsYW5rLmg9MzA0PXZvaWQgZHJtX2NydGNfdmJsYW5rX3B1dChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpO1xcbmluY2x1ZGUvZHJtL2RybV92YmxhbmsuaDozMDU6aW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpO1xcbmluY2x1ZGUvZHJtL2RybV92YmxhbmsuaC0zMDYtdm9pZCBkcm1fY3J0Y192Ymxhbmtfb2ZmKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDAxOjEzOjE0LjE3MjAxOTE0NloiLCJTZXEiOjI5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4ODgwMjI0Njg4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkRSTSBDb3JlIFZibGFuayBIYW5kbGluZyBGaXg6IEEgRGVlcCBEaXZlKipcblxuT2theSwgc28gSSd2ZSBiZWVuIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaG93IGl0IGFmZmVjdHMgdGhlIERSTSBjb3JlJ3MgdmJsYW5rIGhhbmRsaW5nLCBzcGVjaWZpY2FsbHkgYXJvdW5kIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgLiBUaGlzIGZ1bmN0aW9uLCBhcyB3ZSBrbm93LCBpcyB1c2VkIHRocm91Z2hvdXQgdGhlIGVjb3N5c3RlbSwgYnkgbWFueSBkcml2ZXJzIGFuZCBoZWxwZXIgZnVuY3Rpb25zLiBUaGUgcHJvYmxlbSwgYXMgSSBzZWUgaXQsIHN0ZW1zIGZyb20gYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIG1ha2luZyBhIG5lc3RlZCBjYWxsIOKAkyBmaXJzdCBnZXR0aW5nIHRoZSB2Ymxhbmsgc3RhdHVzIHdpdGggYGRybV9jcnRjX3ZibGFua19nZXRgIGFuZCAqdGhlbiogY2FsbGluZyBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYCwgd2hpY2ggKmFsc28qIGNhbGxzIGBkcm1fY3J0Y192YmxhbmtfZ2V0YC4gVGhpcyBkb3VibGUtZGlwLCBzbyB0byBzcGVhaywgY291bGQgbGVhZCB0byBwb3RlbnRpYWwgaXNzdWVzLCBwZXJoYXBzIGV2ZW4gdHJpZ2dlcmluZyB0aW1lb3V0cy5cblxuVGhlIGZpeCwgaW50cm9kdWNpbmcgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAsIG5lYXRseSBhdm9pZHMgdGhpcyBuZXN0ZWQgYGdldC9wdXRgIGN5Y2xlLiBJdCdzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIERSTSBjb3JlLCBhbmQgaXQncyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGZiZGV2IGlvY3RscyBvciBEUk0gYXRvbWljIGNvbW1pdHMsIGFuZCB0aGF0IG1lYW5zIGl0J3MgZGVmaW5pdGVseSB3b3J0aCBmdXp6aW5nLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgaXMgdGVzdGVkIHRob3JvdWdobHkuXG5cbk15IGZvY3VzIGlzIG9uIHRoZXNlIHN5bWJvbHM6IGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCwgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AsIGFuZCB0aGUgbmV3IGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgLlxuXG5JIG5lZWQgdG8gbmFpbCBkb3duIHRoZSByaWdodCBjb25maWcgb3B0aW9ucy4gSSdtIHRoaW5raW5nIGBEUk1fVktNU2AgYW5kIGBEUk1fRkJERVZfRU1VTEFUSU9OYCBzaG91bGQgYmUgc3VmZmljaWVudCwgYnV0IEkgbmVlZCB0byBiZSBzdXJlLiBMZXQncyBzZWUuLi4gYERSTV9WS01TYCBzZWxlY3RzIGBEUk1fQ0xJRU5UX1NFTEVDVElPTmAuIEFuZCBgRFJNX0ZCREVWX0VNVUxBVElPTmAgZGVwZW5kcyBvbiBgRFJNX0NMSUVOVF9TRUxFQ1RJT05gLiBTbywgdGhhdCBzZWVtcyByaWdodC5cblxuTm93LCBkbyBJIG5lZWQgYERSTV9DTElFTlRgIGV4cGxpY2l0bHk/IE5vcGUsIGBEUk1fRkJERVZfRU1VTEFUSU9OYCBzZWxlY3RzIGBEUk1fQ0xJRU5UYC4gT2theSwgdGhhdCdzIGdvb2QuXG5cbk5leHQsIEkgbmVlZCB0byBjaGVjayB0aGUgc2lnbmF0dXJlIG9mIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgIGFuZCB3aGV0aGVyIGl0J3MgZXhwb3J0ZWQuIEl0IGlzbid0LCBidXQgaXQncyBkZWZpbmVkIGluIGBkcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jYCBhbmQgZGVjbGFyZWQgaW4gYGRyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaGAuIFNpbmNlIGl0J3Mgbm90IGEgc3RhdGljIGZ1bmN0aW9uLCB0aGVyZSAqaXMqIGEgc3ltYm9sLiBHb29kLlxuXG5JJ2xsIGNvbmZpcm0gYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIGlzIGV4cG9ydGVkIGFuZCBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYCBpcyBhbHNvIGV4cG9ydGVkLiBZZXMsIHRoZXkgYm90aCBhcmUuXG5cbkZpbmFsbHksIGFyZSB0aGVyZSBhbnkgb3RoZXIgY3J1Y2lhbCBjb25maWdzPyBMZXQncyBzZWUuLi4gSSdtIHdvbmRlcmluZyBhYm91dCBgRkJgLiBEb2VzIGBEUk1fRkJERVZfRU1VTEFUSU9OYCByZXF1aXJlIHRoYXQ/IExldCdzIGNoZWNrIHRoZSBkZXBlbmRlbmNpZXMuIGBEUk1fRkJERVZfRU1VTEFUSU9OYCBkZXBlbmRzIG9uIGBEUk1fQ0xJRU5UX1NFTEVDVElPTmAsIGFuZCBpdCBzZWxlY3RzIGBEUk1fQ0xJRU5UYCBhbmQgYERSTV9DTElFTlRfU0VUVVBgLCBhbmQgaXQgKmRlZmF1bHRzKiB0byBgRkJgLiBXYWl0LCB0aGUgKmRlZmF1bHQqIHZhbHVlLCBtZWFucyBpdCBkZWZhdWx0cyB0byB0aGUgdmFsdWUgb2YgYEZCYC4gQW5kIGlzIGBGQmAgbmVlZGVkPyBJdCBsb29rcyBsaWtlIEkgbWF5IG5vdCBuZWVkIGBGQmAuIEkgd2lsbCBpbnZlc3RpZ2F0ZSBmdXJ0aGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTQ4NiwiT3V0cHV0VG9rZW5zIjoxNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU5MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMzoyMy4wNTIyNDYyMTRaIiwiU2VxIjozMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3MzcxMDUxNjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEZCXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTA1NCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWV0YS9LY29uZmlnPTE4PWlmIE5FVF9WRU5ET1JfTUVUQVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21ldGEvS2NvbmZpZy0xOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZXRhL0tjb25maWc6MjA6Y29uZmlnIEZCTklDXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWV0YS9LY29uZmlnLTIxLVxcdHRyaXN0YXRlIFxcXCJNZXRhIFBsYXRmb3JtcyBIb3N0IE5ldHdvcmsgSW50ZXJmYWNlXFxcIlxcbi0tXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MjptZW51Y29uZmlnIEZCX1RGVFxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIlN1cHBvcnQgZm9yIHNtYWxsIFRGVCBMQ0QgZGlzcGxheSBtb2R1bGVzXFxcIlxcbi0tXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc9MTQ9aWYgRkJfVEZUXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTUtXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MTY6Y29uZmlnIEZCX1RGVF9BR00xMjY0S19GTFxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTE3LVxcdHRyaXN0YXRlIFxcXCJGQiBkcml2ZXIgZm9yIHRoZSBBR00xMjY0Sy1GTCBMQ0QgZGlzcGxheVxcXCJcXG4tLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTIwLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjIxOmNvbmZpZyBGQl9URlRfQkQ2NjM0NzRcXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0yMi1cXHR0cmlzdGF0ZSBcXFwiRkIgZHJpdmVyIGZvciB0aGUgQkQ2NjM0NzQgTENEIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0yNS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzoyNjpjb25maWcgRkJfVEZUX0hYODM0MEJOXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMjctXFx0dHJpc3RhdGUgXFxcIkZCIGRyaXZlciBmb3IgdGhlIEhYODM0MEJOIExDRCBDb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMzAtXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MzE6Y29uZmlnIEZCX1RGVF9IWDgzNDdEXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMzItXFx0dHJpc3RhdGUgXFxcIkZCIGRyaXZlciBmb3IgdGhlIEhYODM0N0QgTENEIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0zNS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzozNjpjb25maWcgRkJfVEZUX0hYODM1M0RcXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0zNy1cXHR0cmlzdGF0ZSBcXFwiRkIgZHJpdmVyIGZvciB0aGUgSFg4MzUzRCBMQ0QgQ29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTQwLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjQxOmNvbmZpZyBGQl9URlRfSFg4MzU3RFxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTQyLVxcdHRyaXN0YXRlIFxcXCJGQiBkcml2ZXIgZm9yIHRoZSBIWDgzNTdEIExDRCBDb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctNDUtXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6NDY6Y29uZmlnIEZCX1RGVF9JTEk5MTYzXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctNDctXFx0dHJpc3RhdGUgXFxcIkZCIGRyaXZlciBmb3IgdGhlIElMSTkxNjMgTENEIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy01MC1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzo1MTpjb25maWcgRkJfVEZUX0lMSTkzMjBcXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy01Mi1cXHR0cmlzdGF0ZSBcXFwiRkIgZHJpdmVyIGZvciB0aGUgSUxJOTMyMCBMQ0QgQ29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTU1LVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjU2OmNvbmZpZyBGQl9URlRfSUxJOTMyNVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTU3LVxcdHRyaXN0YXRlIFxcXCJGQiBkcml2ZXIgZm9yIHRoZSBJTEk5MzI1IExDRCBDb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctNjAtXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6NjE6Y29uZmlnIEZCX1RGVF9JTEk5MzQwXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctNjItXFx0dHJpc3RhdGUgXFxcIkZCIGRyaXZlciBmb3IgdGhlIElMSTkzNDAgTENEIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy02NS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzo2Njpjb25maWcgRkJfVEZUX0lMSTkzNDFcXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy02Ny1cXHR0cmlzdGF0ZSBcXFwiRkIgZHJpdmVyIGZvciB0aGUgSUxJOTM0MSBMQ0QgQ29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTcwLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjcxOmNvbmZpZyBGQl9URlRfSUxJOTQ4MVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTcyLVxcdHRyaXN0YXRlIFxcXCJGQiBkcml2ZXIgZm9yIHRoZSBJTEk5NDgxIExDRCBDb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctNzUtXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6NzY6Y29uZmlnIEZCX1RGVF9JTEk5NDg2XFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctNzctXFx0dHJpc3RhdGUgXFxcIkZCIGRyaXZlciBmb3IgdGhlIElMSTk0ODYgTENEIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy04MC1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzo4MTpjb25maWcgRkJfVEZUX1BDRDg1NDRcXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy04Mi1cXHR0cmlzdGF0ZSBcXFwiRkIgZHJpdmVyIGZvciB0aGUgUENEODU0NCBMQ0QgQ29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTg1LVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjg2OmNvbmZpZyBGQl9URlRfUkE4ODc1XFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctODctXFx0dHJpc3RhdGUgXFxcIkZCIGRyaXZlciBmb3IgdGhlIFJBODg3NSBMQ0QgQ29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTk0LVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjk1OmNvbmZpZyBGQl9URlRfUzZEMDJBMVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTk2LVxcdHRyaXN0YXRlIFxcXCJGQiBkcml2ZXIgZm9yIHRoZSBTNkQwMkExIExDRCBDb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctOTktXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MTAwOmNvbmZpZyBGQl9URlRfUzZEMTEyMVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTEwMS1cXHR0cmlzdGF0ZSBcXFwiRkIgZHJpdmVyIGZvciB0aGUgUzZEMTIxMSBMQ0QgQ29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTEwNC1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzoxMDU6Y29uZmlnIEZCX1RGVF9TRVBTNTI1XFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTA2LVxcdHRyaXN0YXRlIFxcXCJGQiBkcml2ZXIgZm9yIHRoZSBTRVBTNTI1IExDRCBDb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTEwLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjExMTpjb25maWcgRkJfVEZUX1NIMTEwNlxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTExMi1cXHR0cmlzdGF0ZSBcXFwiRkIgZHJpdmVyIGZvciB0aGUgU0gxMTA2IE9MRUQgQ29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTExNS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzoxMTY6Y29uZmlnIEZCX1RGVF9TU0QxMjg5XFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTE3LVxcdHRyaXN0YXRlIFxcXCJGQiBkcml2ZXIgZm9yIHRoZSBTU0QxMjg5IExDRCBDb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTIwLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjEyMTpjb25maWcgRkJfVEZUX1NTRDEzMDVcXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xMjItXFx0dHJpc3RhdGUgXFxcIkZCIGRyaXZlciBmb3IgdGhlIFNTRDEzMDUgT0xFRCBDb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTI1LVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjEyNjpjb25maWcgRkJfVEZUX1NTRDEzMDZcXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xMjctXFx0dHJpc3RhdGUgXFxcIkZCIGRyaXZlciBmb3IgdGhlIFNTRDEzMDYgT0xFRCBDb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTMwLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjEzMTpjb25maWcgRkJfVEZUX1NTRDEzMzFcXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xMzItXFx0dHJpc3RhdGUgXFxcIkZCIGRyaXZlciBmb3IgdGhlIFNTRDEzMzEgTENEIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xMzUtXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MTM2OmNvbmZpZyBGQl9URlRfU1NEMTM1MVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTEzNy1cXHR0cmlzdGF0ZSBcXFwiRkIgZHJpdmVyIGZvciB0aGUgU1NEMTM1MSBMQ0QgQ29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTE0MC1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzoxNDE6Y29uZmlnIEZCX1RGVF9TVDc3MzVSXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTQyLVxcdHRyaXN0YXRlIFxcXCJGQiBkcml2ZXIgZm9yIHRoZSBTVDc3MzVSIExDRCBDb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTQ1LVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjE0Njpjb25maWcgRkJfVEZUX1NUNzc4OVZcXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xNDctXFx0dHJpc3RhdGUgXFxcIkZCIGRyaXZlciBmb3IgdGhlIFNUNzc4OVYgTENEIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xNTQtXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MTU1OmNvbmZpZyBGQl9URlRfVElOWUxDRFxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTE1Ni1cXHR0cmlzdGF0ZSBcXFwiRkIgZHJpdmVyIGZvciB0aW55bGNkLmNvbSBkaXNwbGF5XFxcIlxcbi0tXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTU5LVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjE2MDpjb25maWcgRkJfVEZUX1RMUzgyMDRcXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xNjEtXFx0dHJpc3RhdGUgXFxcIkZCIGRyaXZlciBmb3IgdGhlIFRMUzgyMDQgTENEIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xNjQtXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MTY1OmNvbmZpZyBGQl9URlRfVUMxNjExXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTY2LVxcdHRyaXN0YXRlIFxcXCJGQiBkcml2ZXIgZm9yIHRoZSBVQzE2MTEgTENEIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xNjktXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MTcwOmNvbmZpZyBGQl9URlRfVUMxNzAxXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTcxLVxcdHRyaXN0YXRlIFxcXCJGQiBkcml2ZXIgZm9yIHRoZSBVQzE3MDEgTENEIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xNzQtXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MTc1OmNvbmZpZyBGQl9URlRfVVBEMTYxNzA0XFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTc2LVxcdHRyaXN0YXRlIFxcXCJGQiBkcml2ZXIgZm9yIHRoZSB1UEQxNjE3MDQgTENEIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3N0YWdpbmcvc203NTBmYi9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxcbmRyaXZlcnMvc3RhZ2luZy9zbTc1MGZiL0tjb25maWc6Mjpjb25maWcgRkJfU003NTBcXG5kcml2ZXJzL3N0YWdpbmcvc203NTBmYi9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIlNpbGljb24gTW90aW9uIFNNNzUwIGZyYW1lYnVmZmVyIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NjptZW51Y29uZmlnIEZCXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTctXFx0dHJpc3RhdGUgXFxcIlN1cHBvcnQgZm9yIGZyYW1lIGJ1ZmZlciBkZXZpY2UgZHJpdmVyc1xcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00Ny1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NDg6Y29uZmlnIEZCX0hFQ1VCQVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00OS1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTUyLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo1Mzpjb25maWcgRkJfU1ZHQUxJQlxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01NC1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTU5LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo2MDpjb25maWcgRkJfTUFDTU9ERVNcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNjEtXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02My1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NjQ6Y29uZmlnIEZCX0dSVkdBXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTY1LVxcdHRyaXN0YXRlIFxcXCJBZXJvZmxleCBHYWlzbGVyIGZyYW1lYnVmZmVyIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNzAtXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjcxOmNvbmZpZyBGQl9DSVJSVVNcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNzItXFx0dHJpc3RhdGUgXFxcIkNpcnJ1cyBMb2dpYyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTg5LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo5MDpjb25maWcgRkJfUE0yXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTkxLVxcdHRyaXN0YXRlIFxcXCJQZXJtZWRpYTIgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xMTAtXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjExMTpjb25maWcgRkJfUE0yX0ZJRk9fRElTQ09OTkVDVFxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xMTItXFx0Ym9vbCBcXFwiZW5hYmxlIEZJRk8gZGlzY29ubmVjdCBmZWF0dXJlXFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTExNi1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTE3OmNvbmZpZyBGQl9BQ09STlxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xMTgtXFx0Ym9vbCBcXFwiQWNvcm4gVklEQyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEyNS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTI2OmNvbmZpZyBGQl9DTFBTNzExWFxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xMjctXFx0dHJpc3RhdGUgXFxcIkNMUFM3MTFYIExDRCBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEzNi1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTM3OmNvbmZpZyBGQl9TQTExMDBcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTM4LVxcdGJvb2wgXFxcIlNBLTExMDAgTENEIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTQ4LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoxNDk6Y29uZmlnIEZCX0lNWFxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xNTAtXFx0dHJpc3RhdGUgXFxcIkZyZWVzY2FsZSBpLk1YMS8yMS8yNS8yNyBMQ0Qgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xNTctXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjE1ODpjb25maWcgRkJfQ1lCRVIyMDAwXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTE1OS1cXHR0cmlzdGF0ZSBcXFwiQ3liZXJQcm8gMjAwMC8yMDEwLzUwMDAgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xNjctXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjE2ODpjb25maWcgRkJfQ1lCRVIyMDAwX0REQ1xcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xNjktXFx0Ym9vbCBcXFwiRERDIGZvciBDeWJlclBybyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTE3Ni1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTc3OmNvbmZpZyBGQl9DWUJFUjIwMDBfSTJDXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTE3OC1cXHRib29sIFxcXCJDeWJlclBybyAyMDAwLzIwMTAvNTAwMCBJMkMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xODYtXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjE4Nzpjb25maWcgRkJfQVBPTExPXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTE4OC1cXHRib29sXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTk0LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoxOTU6Y29uZmlnIEZCX1E0MFxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xOTYtXFx0Ym9vbFxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTIwMC1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MjAxOmNvbmZpZyBGQl9BTUlHQVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0yMDItXFx0dHJpc3RhdGUgXFxcIkFtaWdhIG5hdGl2ZSBjaGlwc2V0IHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjExLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoyMTI6Y29uZmlnIEZCX0FNSUdBX09DU1xcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0yMTMtXFx0Ym9vbCBcXFwiQW1pZ2EgT0NTIGNoaXBzZXQgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0yMTktXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjIyMDpjb25maWcgRkJfQU1JR0FfRUNTXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTIyMS1cXHRib29sIFxcXCJBbWlnYSBFQ1MgY2hpcHNldCBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTIyOC1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MjI5OmNvbmZpZyBGQl9BTUlHQV9BR0FcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjMwLVxcdGJvb2wgXFxcIkFtaWdhIEFHQSBjaGlwc2V0IHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjM3LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoyMzg6Y29uZmlnIEZCX0ZNMlxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0yMzktXFx0Ym9vbCBcXFwiQW1pZ2EgRnJhbWVNYXN0ZXIgSUkvUmFpbmJvdyBJSSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTI0NS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MjQ2OmNvbmZpZyBGQl9BUkNcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjQ3LVxcdHRyaXN0YXRlIFxcXCJBcmMgTW9ub2Nocm9tZSBMQ0QgYm9hcmQgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0yNTgtXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjI1OTpjb25maWcgRkJfQVRBUklcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjYwLVxcdGJvb2wgXFxcIkF0YXJpIG5hdGl2ZSBjaGlwc2V0IHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjY5LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoyNzA6Y29uZmlnIEZCX09GXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTI3MS1cXHR0cmlzdGF0ZSBcXFwiT3BlbiBGaXJtd2FyZSBmcmFtZSBidWZmZXIgZGV2aWNlIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjgwLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoyODE6Y29uZmlnIEZCX0NPTlRST0xcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjgyLVxcdGJvb2wgXFxcIkFwcGxlIFxcXFxcXFwiY29udHJvbFxcXFxcXFwiIGRpc3BsYXkgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0yODktXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjI5MDpjb25maWcgRkJfUExBVElOVU1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjkxLVxcdGJvb2wgXFxcIkFwcGxlIFxcXFxcXFwicGxhdGludW1cXFxcXFxcIiBkaXNwbGF5IHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjk4LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoyOTk6Y29uZmlnIEZCX1ZBTEtZUklFXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTMwMC1cXHRib29sIFxcXCJBcHBsZSBcXFxcXFxcInZhbGt5cmllXFxcXFxcXCIgZGlzcGxheSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTMwNy1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MzA4OmNvbmZpZyBGQl9DVDY1NTUwXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTMwOS1cXHRib29sIFxcXCJDaGlwcyA2NTU1MCBkaXNwbGF5IHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMzE1LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzozMTY6Y29uZmlnIEZCX0FTSUxJQU5UXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTMxNy1cXHRib29sIFxcXCJBc2lsaWFudCAoQ2hpcHMpIDY5MDAwIGRpc3BsYXkgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0zMjItXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjMyMzpjb25maWcgRkJfSU1TVFRcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMzI0LVxcdGJvb2wgXFxcIklNUyBUd2luIFR1cmJvIGRpc3BsYXkgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0zMzItXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjMzMzpjb25maWcgRkJfVkdBMTZcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMzM0LVxcdHRyaXN0YXRlIFxcXCJWR0EgMTYtY29sb3IgZ3JhcGhpY3Mgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0zNDktXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjM1MDpjb25maWcgRkJfU1RJXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTM1MS1cXHR0cmlzdGF0ZSBcXFwiSFAgU1RJIGZyYW1lIGJ1ZmZlciBkZXZpY2Ugc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0zNjktXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjM3MDpjb25maWcgRkJfTUFDXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTM3MS1cXHRib29sIFxcXCJHZW5lcmljIE1hY2ludG9zaCBkaXNwbGF5IHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMzc1LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzozNzY6Y29uZmlnIEZCX0hQMzAwXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTM3Ny1cXHRib29sXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMzgyLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzozODM6Y29uZmlnIEZCX1RHQVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0zODQtXFx0dHJpc3RhdGUgXFxcIlRHQS9TRkIrIGZyYW1lYnVmZmVyIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDA2LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo0MDc6Y29uZmlnIEZCX1VWRVNBXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTQwOC1cXHR0cmlzdGF0ZSBcXFwiVXNlcnNwYWNlIFZFU0EgVkdBIGdyYXBoaWNzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDIzLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo0MjQ6Y29uZmlnIEZCX1ZFU0FcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDI1LVxcdGJvb2wgXFxcIlZFU0EgVkdBIGdyYXBoaWNzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDM1LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo0MzY6Y29uZmlnIEZCX0VGSVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00MzctXFx0Ym9vbCBcXFwiRUZJLWJhc2VkIEZyYW1lYnVmZmVyIFN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDQ3LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo0NDg6Y29uZmlnIEZCX040MTFcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDQ5LVxcdHRyaXN0YXRlIFxcXCJONDExIEFwb2xsby9IZWN1YmEgZGV2a2l0IHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDU1LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo0NTY6Y29uZmlnIEZCX0dCRVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00NTctXFx0Ym9vbCBcXFwiU0dJIEdyYXBoaWNzIEJhY2tlbmQgZnJhbWUgYnVmZmVyIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDY0LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo0NjU6Y29uZmlnIEZCX0dCRV9NRU1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDY2LVxcdGludCBcXFwiVmlkZW8gbWVtb3J5IHNpemUgaW4gTUJcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDcyLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo0NzM6Y29uZmlnIEZCX1NCVVNcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDc0LVxcdGJvb2wgXFxcIlNCVVMgYW5kIFVQQSBmcmFtZWJ1ZmZlcnNcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDc4LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo0Nzk6Y29uZmlnIEZCX1NCVVNfSEVMUEVSU1xcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00ODAtXFx0Ym9vbFxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTQ4NS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NDg2OmNvbmZpZyBGQl9CVzJcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDg3LVxcdGJvb2wgXFxcIkJXdHdvIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDkyLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo0OTM6Y29uZmlnIEZCX0NHM1xcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00OTQtXFx0Ym9vbCBcXFwiQ0d0aHJlZSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTQ5OS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NTAwOmNvbmZpZyBGQl9DRzZcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNTAxLVxcdGJvb2wgXFxcIkNHc2l4IChHWCxUdXJib0dYKSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTUwOS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NTEwOmNvbmZpZyBGQl9GRkJcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNTExLVxcdGJvb2wgXFxcIkNyZWF0b3IvQ3JlYXRvcjNEL0VsaXRlM0Qgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01MTktXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjUyMDpjb25maWcgRkJfVENYXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTUyMS1cXHRib29sIFxcXCJUQ1ggKFNTNC9TUzUgb25seSkgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01MjctXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjUyODpjb25maWcgRkJfQ0cxNFxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01MjktXFx0Ym9vbCBcXFwiQ0dmb3VydGVlbiAoU1gpIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNTM1LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo1MzY6Y29uZmlnIEZCX1A5MTAwXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTUzNy1cXHRib29sIFxcXCJQOTEwMCAoU3BhcmNib29rIDMgb25seSkgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01NDMtXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjU0NDpjb25maWcgRkJfTEVPXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTU0NS1cXHRib29sIFxcXCJMZW8gKFpYKSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTU1MS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NTUyOmNvbmZpZyBGQl9YVlI1MDBcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNTUzLVxcdGJvb2wgXFxcIlN1biBYVlItNTAwIDNETEFCUyBXaWxkY2F0IHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNTY1LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo1NjY6Y29uZmlnIEZCX1hWUjI1MDBcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNTY3LVxcdGJvb2wgXFxcIlN1biBYVlItMjUwMCAzRExBQlMgV2lsZGNhdCBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTU3Ni1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NTc3OmNvbmZpZyBGQl9YVlIxMDAwXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTU3OC1cXHRib29sIFxcXCJTdW4gWFZSLTEwMDAgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01ODYtXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjU4Nzpjb25maWcgRkJfUFZSMlxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01ODgtXFx0dHJpc3RhdGUgXFxcIk5FQyBQb3dlclZSIDIgZGlzcGxheSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTYwOS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NjEwOmNvbmZpZyBGQl9PUEVOQ09SRVNcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNjExLVxcdHRyaXN0YXRlIFxcXCJPcGVuQ29yZXMgVkdBL0xDRCBjb3JlIDIuMCBmcmFtZWJ1ZmZlciBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTYyMy1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NjI0OmNvbmZpZyBGQl9TMUQxM1hYWFxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02MjUtXFx0dHJpc3RhdGUgXFxcIkVwc29uIFMxRDEzWFhYIGZyYW1lYnVmZmVyIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNjM1LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo2MzY6Y29uZmlnIEZCX0FUTUVMXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTYzNy1cXHR0cmlzdGF0ZSBcXFwiQVQ5MSBMQ0QgQ29udHJvbGxlciBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTY0Ny1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NjQ4OmNvbmZpZyBGQl9OVklESUFcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNjQ5LVxcdHRyaXN0YXRlIFxcXCJuVmlkaWEgRnJhbWVidWZmZXIgU3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02NjctXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjY2ODpjb25maWcgRkJfTlZJRElBX0kyQ1xcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02NjktXFx0Ym9vbCBcXFwiRW5hYmxlIEREQyBTdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTY4MC1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NjgxOmNvbmZpZyBGQl9OVklESUFfREVCVUdcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNjgyLVxcdGJvb2wgXFxcIkxvdHMgb2YgZGVidWcgb3V0cHV0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTY4OC1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6Njg5OmNvbmZpZyBGQl9OVklESUFfQkFDS0xJR0hUXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTY5MC1cXHRib29sIFxcXCJTdXBwb3J0IGZvciBiYWNrbGlnaHQgY29udHJvbFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02OTctXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjY5ODpjb25maWcgRkJfUklWQVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02OTktXFx0dHJpc3RhdGUgXFxcIm5WaWRpYSBSaXZhIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNzE1LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo3MTY6Y29uZmlnIEZCX1JJVkFfSTJDXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTcxNy1cXHRib29sIFxcXCJFbmFibGUgRERDIFN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNzI4LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo3Mjk6Y29uZmlnIEZCX1JJVkFfREVCVUdcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNzMwLVxcdGJvb2wgXFxcIkxvdHMgb2YgZGVidWcgb3V0cHV0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTczNi1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NzM3OmNvbmZpZyBGQl9SSVZBX0JBQ0tMSUdIVFxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy03MzgtXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgYmFja2xpZ2h0IGNvbnRyb2xcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNzQ1LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo3NDY6Y29uZmlnIEZCX0k3NDBcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNzQ3LVxcdHRyaXN0YXRlIFxcXCJJbnRlbDc0MCBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTc1NS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NzU2OmNvbmZpZyBGQl9JODEwXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTc1Ny1cXHR0cmlzdGF0ZSBcXFwiSW50ZWwgODEwLzgxNSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTc3MS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NzcyOmNvbmZpZyBGQl9JODEwX0dURlxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy03NzMtXFx0Ym9vbCBcXFwidXNlIFZFU0EgR2VuZXJhbGl6ZWQgVGltaW5nIEZvcm11bGFcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNzk0LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo3OTU6Y29uZmlnIEZCX0k4MTBfSTJDXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTc5Ni1cXHRib29sIFxcXCJFbmFibGUgRERDIFN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctODA0LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo4MDU6Y29uZmlnIEZCX01BVFJPWFxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy04MDYtXFx0dHJpc3RhdGUgXFxcIk1hdHJveCBhY2NlbGVyYXRpb25cXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctODI2LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo4Mjc6Y29uZmlnIEZCX01BVFJPWF9NSUxMRU5JVU1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctODI4LVxcdGJvb2wgXFxcIk1pbGxlbm5pdW0gSS9JSSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTgzNi1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6ODM3OmNvbmZpZyBGQl9NQVRST1hfTVlTVElRVUVcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctODM4LVxcdGJvb2wgXFxcIk15c3RpcXVlIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctODQ2LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo4NDc6Y29uZmlnIEZCX01BVFJPWF9HXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTg0OC1cXHRib29sIFxcXCJHMTAwL0cyMDAvRzQwMC9HNDUwL0c1NTAgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy04NzYtXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjg3Nzpjb25maWcgRkJfTUFUUk9YX0kyQ1xcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy04NzgtXFx0dHJpc3RhdGUgXFxcIk1hdHJveCBJMkMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy04OTMtXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjg5NDpjb25maWcgRkJfTUFUUk9YX01BVkVOXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTg5NS1cXHR0cmlzdGF0ZSBcXFwiRzQwMCBzZWNvbmQgaGVhZCBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTkyNS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6OTI2OmNvbmZpZyBGQl9SQURFT05cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctOTI3LVxcdHRyaXN0YXRlIFxcXCJBVEkgUmFkZW9uIGRpc3BsYXkgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy05MzktXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjk0MDpjb25maWcgRkJfUkFERU9OX0kyQ1xcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy05NDEtXFx0Ym9vbCBcXFwiRERDL0kyQyBmb3IgQVRJIFJhZGVvbiBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTk0Ny1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6OTQ4OmNvbmZpZyBGQl9SQURFT05fQkFDS0xJR0hUXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTk0OS1cXHRib29sIFxcXCJTdXBwb3J0IGZvciBiYWNrbGlnaHQgY29udHJvbFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy05NTYtXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjk1Nzpjb25maWcgRkJfUkFERU9OX0RFQlVHXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTk1OC1cXHRib29sIFxcXCJMb3RzIG9mIGRlYnVnIG91dHB1dCBmcm9tIFJhZGVvbiBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctOTY0LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo5NjU6Y29uZmlnIEZCX0FUWTEyOFxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy05NjYtXFx0dHJpc3RhdGUgXFxcIkFUSSBSYWdlMTI4IGRpc3BsYXkgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy05NzctXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjk3ODpjb25maWcgRkJfQVRZMTI4X0JBQ0tMSUdIVFxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy05NzktXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgYmFja2xpZ2h0IGNvbnRyb2xcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctOTg2LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo5ODc6Y29uZmlnIEZCX0FUWVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy05ODgtXFx0dHJpc3RhdGUgXFxcIkFUSSBNYWNoNjQgZGlzcGxheSBzdXBwb3J0XFxcIiBpZiBQQ0kgfHwgQVRBUklcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xMDAyLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoxMDAzOmNvbmZpZyBGQl9BVFlfQ1RcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTAwNC1cXHRib29sIFxcXCJNYWNoNjQgQ1QvVlQvR1QvTFQgKGluY2wuIDNEIFJBR0UpIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTAxMS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTAxMjpjb25maWcgRkJfQVRZX0dFTkVSSUNfTENEXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEwMTMtXFx0Ym9vbCBcXFwiTWFjaDY0IGdlbmVyaWMgTENEIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTAxOC1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTAxOTpjb25maWcgRkJfQVRZX0dYXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEwMjAtXFx0Ym9vbCBcXFwiTWFjaDY0IEdYIHN1cHBvcnRcXFwiIGlmIFBDSVxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEwMjktXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjEwMzA6Y29uZmlnIEZCX0FUWV9CQUNLTElHSFRcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTAzMS1cXHRib29sIFxcXCJTdXBwb3J0IGZvciBiYWNrbGlnaHQgY29udHJvbFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xMDM4LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoxMDM5OmNvbmZpZyBGQl9TM1xcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xMDQwLVxcdHRyaXN0YXRlIFxcXCJTMyBUcmlvL1ZpcmdlIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTA1My1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTA1NDpjb25maWcgRkJfUzNfRERDXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEwNTUtXFx0Ym9vbCBcXFwiRERDIGZvciBTMyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEwNjEtXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjEwNjI6Y29uZmlnIEZCX1NBVkFHRVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMzoyNC43ODkzNTkwN1oiLCJTZXEiOjMxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNjA2NDMxMzY5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIHByZXNlbnRlZCBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKk5hdmlnYXRpbmcgdGhlIEZyYW1lYnVmZmVyIExhbmRzY2FwZSoqXG5cbkFscmlnaHQsIGxldCdzIHNlZS4gVGhlIGluaXRpYWwgYEZCYCDigJMgdGhhdCdzIHNob3J0IGZvciBmcmFtZWJ1ZmZlciwgYW5kIGBDT05GSUdfRkJgIHNlZW1zIHRvIGJlIHRoZSBjb3JlLCB0aGUgZm91bmRhdGlvbmFsIGNvbXBvbmVudC4gU28gZmFyLCBzbyBnb29kLCBtYWtlcyBzZW5zZS4gTm93LCBgRFJNX0ZCREVWX0VNVUxBVElPTmAuLi4gSSdtIHByZXR0eSBzdXJlIHRoYXQgY29uZmlndXJhdGlvbiBvcHRpb24gaXMgcmVzcG9uc2libGUgZm9yIGxpbmtpbmcgdGhpbmdzIHVwIHdpdGggYEZCX0NPUkVgLCBvciBhdCBsZWFzdCBzb21ldGhpbmcgaW4gdGhhdCB2aWNpbml0eS4gQnV0IEkgcmVhbGx5IHNob3VsZCBkb3VibGUtY2hlY2sgdGhlIGBLY29uZmlnYCBmaWxlcyBhZ2Fpbi4gQmV0dGVyIHNhZmUgdGhhbiBzb3JyeSwgc3BlY2lmaWNhbGx5IGluIGBkcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnYCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4uIEFsd2F5cyBnb29kIHRvIHJlZnJlc2ggdGhlIG1lbW9yeSB3aXRoIHRob3NlIGNydWNpYWwgZGVwZW5kZW5jeSBkZWNsYXJhdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQxNDM1LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTM6MjguMzk1ODAzNTZaIiwiU2VxIjozMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYwNTEwMzE4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBEUk1fRkJERVZfRU1VTEFUSU9OXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZz0yOD1tZW51IFxcXCJTdXBwb3J0ZWQgRFJNIGNsaWVudHNcXFwiXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMwLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6MzE6Y29uZmlnIERSTV9GQkRFVl9FTVVMQVRJT05cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMyLVxcdGJvb2wgXFxcIkVuYWJsZSBsZWdhY3kgZmJkZXYgc3VwcG9ydCBmb3IgeW91ciBtb2Rlc2V0dGluZyBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDAxOjEzOjI4LjQ1NjMyMDM0OFoiLCJTZXEiOjMzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNTI0NDA0NzUyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkRpdmluZyBCYWNrIGludG8gdGhlIERSTSBDbGllbnQgS2NvbmZpZyoqXG5cbkFscmlnaHQsIGxldCdzIGNpcmNsZSBiYWNrIHRvIGBkcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnYCwgc3BlY2lmaWNhbGx5IGFyb3VuZCBsaW5lIDMxLiBJJ20gZ29pbmcgdG8gcmUtZXhhbWluZSB0aGF0IHNlY3Rpb24gdG8gcmVmcmVzaCBteSB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGUgY2xpZW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgc3RydWN0dXJlZC4gSSdtIHByb2JhYmx5IGxvb2tpbmcgZm9yIGEgc3BlY2lmaWMgZGVwZW5kZW5jeSBvciBhIHBhcnRpY3VsYXIgY29uZmlndXJhdGlvbiB2YXJpYWJsZSB0aGF0J3MgYmVlbiBuYWdnaW5nIGF0IG1lLiBQZXJoYXBzIEnigJltIHRyeWluZyB0byBzb2xpZGlmeSBteSBncmFzcCBvbiBhIHN1YnRsZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIGRpZmZlcmVudCBjbGllbnQgZHJpdmVycyBvciB0cnlpbmcgdG8gdHJhY2sgZG93biBhIGNvbmZpZ3VyYXRpb24gaXNzdWUgSeKAmXZlIGVuY291bnRlcmVkIHJlY2VudGx5LiBPciwgbWF5YmUgSSdtIHJldmlld2luZyB0aGUgb3ZlcmFsbCBhcmNoaXRlY3R1cmUgYmVmb3JlIHNvbWUgaW1wZW5kaW5nIGNoYW5nZSBvciBjb250cmlidXRpb24uIExldCBtZSBtYWtlIHN1cmUgSSdtIG5vdCBtaXNzaW5nIGFueSBlZGdlIGNhc2VzIG9yIGRlcGVuZGVuY2llcyBJIG1pZ2h0J3ZlIG1pc3NlZCB0aGUgZmlyc3QgdGltZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDE4MDQsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMzozMS45ODA3MjgyNloiLCJTZXEiOjM0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3OTY5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDI1LFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgIDI1OlxcdFxcdCAgRW5hYmxlcyB0aGUgRFJNIGNsaWVudCBzZWxlY3Rpb24uIERSTSBkcml2ZXJzIHRoYXQgc3VwcG9ydCB0aGVcXG4gIDI2OlxcdFxcdCAgZGVmYXVsdCBjbGllbnRzIHNob3VsZCBzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT04gaW5zdGVhZC5cXG4gIDI3OlxcdFxcbiAgMjg6XFx0bWVudSBcXFwiU3VwcG9ydGVkIERSTSBjbGllbnRzXFxcIlxcbiAgMjk6XFx0XFx0ZGVwZW5kcyBvbiBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbiAgMzA6XFx0XFxuICAzMTpcXHRjb25maWcgRFJNX0ZCREVWX0VNVUxBVElPTlxcbiAgMzI6XFx0XFx0Ym9vbCBcXFwiRW5hYmxlIGxlZ2FjeSBmYmRldiBzdXBwb3J0IGZvciB5b3VyIG1vZGVzZXR0aW5nIGRyaXZlclxcXCJcXG4gIDMzOlxcdFxcdGRlcGVuZHMgb24gRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG4gIDM0OlxcdFxcdHNlbGVjdCBEUk1fQ0xJRU5UXFxuICAzNTpcXHRcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRVRVUFxcbiAgMzY6XFx0XFx0c2VsZWN0IEZSQU1FQlVGRkVSX0NPTlNPTEVfREVURUNUX1BSSU1BUlkgaWYgRlJBTUVCVUZGRVJfQ09OU09MRVxcbiAgMzc6XFx0XFx0ZGVmYXVsdCBGQlxcbiAgMzg6XFx0XFx0aGVscFxcbiAgMzk6XFx0XFx0ICBDaG9vc2UgdGhpcyBvcHRpb24gaWYgeW91IGhhdmUgYSBuZWVkIGZvciB0aGUgbGVnYWN5IGZiZGV2XFxuICA0MDpcXHRcXHQgIHN1cHBvcnQuIE5vdGUgdGhhdCB0aGlzIHN1cHBvcnQgYWxzbyBwcm92aWRlcyB0aGUgbGludXggY29uc29sZVxcbiAgNDE6XFx0XFx0ICBzdXBwb3J0IG9uIHRvcCBvZiB5b3VyIG1vZGVzZXR0aW5nIGRyaXZlci5cXG4gIDQyOlxcdFxcbiAgNDM6XFx0XFx0ICBJZiBpbiBkb3VidCwgc2F5IFxcXCJZXFxcIi5cXG4gIDQ0OlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMzozMS45ODA4MTIxOFoiLCJTZXEiOjM1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODk5MjExODgwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdW5kZXJzdGFuZGluZywgZnJhbWVkIGFzIG15IGludGVybmFsIHRob3VnaHQgcHJvY2VzczpcblxuKipEZWNvZGluZyB0aGUgYGRlZmF1bHQgRkJgIENvbmZpZ3VyYXRpb24qKlxuXG5SaWdodCwgbGV0IG1lIGJyZWFrIHRoaXMgZG93bi4gV2hlbiBJIHNlZSBgZGVmYXVsdCBGQmAsIGl0J3MgaGludGluZyB0aGF0IHRoZSBzeXN0ZW0sIGJ5IGRlZmF1bHQsIHdpbGwgdXNlIHRoZSB2YWx1ZSBzZXQgYnkgYENPTkZJR19GQmAuIFNvIGZhciwgc28gZ29vZC4gSG93ZXZlciwgaXQgKmRvZXNuJ3QqIGF1dG9tYXRpY2FsbHkgbWVhbiB0aGF0IGl0IGFjdHVhbGx5ICpzZWxlY3RzKiBgRkJgIGRpcmVjdGx5LiBUaGF0J3MgYSBjcnVjaWFsIGRpc3RpbmN0aW9uLiBOb3csIEkgbmVlZCB0byByZW1pbmQgbXlzZWxmIHdoZXJlIHRoZSByZWxhdGVkIGNvZGUgcmVzaWRlcy4gQWggeWVzLCBgZHJtX2ZiX2hlbHBlci5jYC4gVGhpcyBmaWxlIHJlbGllcyBvbiBgZmJfaW5mb2AsIHdoaWNoIGlzIGRlZmluZWQgaW4gYGluY2x1ZGUvbGludXgvZmIuaGAuXG5cbkJ1dCBub3cgSSBoYXZlIHRvIGFzayBteXNlbGYgYW4gaW1wb3J0YW50IHF1ZXN0aW9uOiBEb2VzIGBkcm1fZmJfaGVscGVyLmNgIGhhdmUgYW4gaW1wbGljaXQgZGVwZW5kZW5jeSBvbiBgQ09ORklHX0ZCYD8gSXQgZmVlbHMgbGlrZSBpdCBtaWdodCwgYnV0IEkgbmVlZCB0byBjb25maXJtLiBNeSBndXQgc2F5cyBJIHNob3VsZCByZS1leGFtaW5lIHRoZSBgZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlYCB0byBlaXRoZXIgY29uZmlybSBvciByZWZ1dGUgbXkgc3VzcGljaW9uLiBJIHdpbGwgZG8gdGhhdCBiZWZvcmUgbWFraW5nIGFueSBhc3N1bXB0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDIzMTIsIk91dHB1dFRva2VucyI6MjEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5MCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDAxOjEzOjM1Ljg4MDAyNjQxWiIsIlNlcSI6MzYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDA0NzE2MDQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRybV9mYl9oZWxwZXIub1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGU9MTU5PWRybV9rbXNfaGVscGVyLSQoQ09ORklHX0RSTV9QQU5FTF9CUklER0UpICs9IGJyaWRnZS9wYW5lbC5vXFxuZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlOjE2MDpkcm1fa21zX2hlbHBlci0kKENPTkZJR19EUk1fRkJERVZfRU1VTEFUSU9OKSArPSBkcm1fZmJfaGVscGVyLm9cXG5kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUtMTYxLW9iai0kKENPTkZJR19EUk1fS01TX0hFTFBFUikgKz0gZHJtX2ttc19oZWxwZXIub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMzozNy44ODQ3NDk0OTlaIiwiU2VxIjozNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzYxNDYwNTczOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIERSTV9GQkRFVl9FTVVMQVRJT04gYW5kIGZyYW1lYnVmZmVyIGRlcGVuZGVuY2llcyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgdHJ5aW5nIHRvIHVuZGVyc3RhbmQgaXRzIGJ1aWxkIGRlcGVuZGVuY2llcy4gVGhlIGNydWNpYWwgcG9pbnQgaGVyZSBpcyB0aGUgYERSTV9GQkRFVl9FTVVMQVRJT05gIG9wdGlvbiBhbmQgaG93IGl0IGFmZmVjdHMgdGhlIGBkcm1fZmJfaGVscGVyLm9gIG1vZHVsZS4gU3BlY2lmaWNhbGx5LCBpZiB0aGlzIGVtdWxhdGlvbiBmZWF0dXJlIGlzIGVuYWJsZWQsIHRoZW4gdGhlIGBkcm1fZmJfaGVscGVyLm9gIGlzIGdvaW5nIHRvIGJlIGJ1aWx0LiBCdXQgSSBoYXZlIGEgbmFnZ2luZyBxdWVzdGlvbiBpbiB0aGUgYmFjayBvZiBteSBtaW5kOiBjYW4gYGRybV9mYl9oZWxwZXIuY2AgZXZlbiAqY29tcGlsZSogd2l0aG91dCB0aGUgY2xhc3NpYyBmcmFtZWJ1ZmZlciBjb25maWd1cmF0aW9uIChgQ09ORklHX0ZCYCkgZW5hYmxlZD8gSXQgc2VlbXMgdW5saWtlbHksIGdpdmVuIHRoZSBuYW1lLCBidXQgSSBuZWVkIHRvIGNvbmZpcm0gdGhpcy5cblxuVG8gYW5zd2VyIHRoYXQgcXVlc3Rpb24gd2l0aCBhYnNvbHV0ZSBjZXJ0YWludHksIEkgbmVlZCB0byBjb25zdWx0IHRoZSBjb2RlLiBUaGUgbGlrZWx5IHBsYWNlcyB0byBmaW5kIHRoaXMgaW5mb3JtYXRpb24gYXJlIGBpbmNsdWRlL2xpbnV4L2ZiLmhgLCB0aGF0IHNob3VsZCBwcm92aWRlIHRoZSBkZWNsYXJhdGlvbnMsIG9yIHBlcmhhcHMgdGhlIGBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2NvcmUvTWFrZWZpbGVgLiBUaGUgbWFrZWZpbGUgbWlnaHQgaGF2ZSBjb25kaXRpb25hbCBidWlsZCBmbGFncywgb3IgdGhlIGhlYWRlciBmaWxlIG1pZ2h0IGluY2x1ZGUgdGhlIHJlbGV2YW50IGBpZmRlZmAgYmxvY2tzLiBJJ2xsIHN0YXJ0IHdpdGggdGhvc2UgYW5kIHNlZSB3aGVyZSBJIGdldC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDI3NzEsIk91dHB1dFRva2VucyI6MTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMzo0MS40OTkzNTc0NzhaIiwiU2VxIjozOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0OTczMTI3NTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEZCX0NPUkVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy92aWRlby9mYmRldi9jb3JlL0tjb25maWctNS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L2NvcmUvS2NvbmZpZzo2OmNvbmZpZyBGQl9DT1JFXFxuZHJpdmVycy92aWRlby9mYmRldi9jb3JlL0tjb25maWctNy1cXHRzZWxlY3QgVklERU9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTM6NDIuOTk2Njc3NjkyWiIsIlNlcSI6MzksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1MTQ5NDkyMDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlIGFuZCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipEUk1fRkJERVZfRU1VTEFUSU9OIGFuZCBGQl9DT1JFOiBBIFF1aWNrIENoZWNrKipcblxuUmlnaHQsIGxldCBtZSBqdXN0IHF1aWNrbHkgcnVuIHRocm91Z2ggdGhpcyBpbiBteSBoZWFkLiBJIG5lZWQgdG8gbWFrZSBhYnNvbHV0ZWx5IHN1cmUgYWJvdXQgc29tZXRoaW5nIHJlbGF0ZWQgdG8gdGhlIERpcmVjdCBSZW5kZXJpbmcgTWFuYWdlciAoRFJNKSBmcmFtZWJ1ZmZlciBlbXVsYXRpb24uIFNwZWNpZmljYWxseSwgSSdtIHRoaW5raW5nIGFib3V0IHRoZSBkZXBlbmRlbmN5IGJldHdlZW4gYERSTV9GQkRFVl9FTVVMQVRJT05gIGFuZCBgRkJfQ09SRWAuIEl0J3MgYSBmdW5kYW1lbnRhbCByZWxhdGlvbnNoaXAsIHJlYWxseS4gRG9lcyBlbmFibGluZyB0aGUgZm9ybWVyIGF1dG9tYXRpY2FsbHkgdHJpZ2dlciB0aGUgbGF0dGVyPyBJZiBgRFJNX0ZCREVWX0VNVUxBVElPTmAgaXMgc2VsZWN0ZWQsIGRvZXMgdGhhdCBpbmhlcmVudGx5IHB1bGwgaW4gdGhlIGBGQl9DT1JFYCBjb25maWd1cmF0aW9uIGFzIHdlbGw/IEkgbmVlZCB0byBjbGFyaWZ5IHRoYXQgZGVwZW5kZW5jeS4gQSBzb2xpZCB1bmRlcnN0YW5kaW5nIG9mIHRoYXQgbGluayBpcyBwcmV0dHkgbXVjaCBlc3NlbnRpYWwgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRoZSBjb3JlIGZyYW1lYnVmZmVyIGVtdWxhdGlvbiBhbmQgRFJNIGludGVyZmFjZSBpbnRlcmFjdC4gR290dGEgbWFrZSBzdXJlIHRob3NlIHR3byBhcmUgY29ycmVjdGx5IGxpbmtlZCBzbyB0aGF0IHRoZSB1c2Vyc3BhY2UgYXBwbGljYXRpb25zIGNhbiB3b3JrIGFzIGludGVuZGVkIHdpdGggdGhlc2UgbW9kdWxlcy4gSXQncyBhIGtleSBwaWVjZSB0byB2ZXJpZnkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQzMTYwLCJPdXRwdXRUb2tlbnMiOjE4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTM6NDYuNTExNjMwNTA1WiIsIlNlcSI6NDAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTMzMzk3MDIzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNlbGVjdCBGQl9DT1JFXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvZ3B1L2RybS9LY29uZmlnPTQ1PWNvbmZpZyBEUk1fS01TX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL0tjb25maWctNDctXFx0ZGVwZW5kcyBvbiBEUk1cXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZzo0ODpcXHRzZWxlY3QgRkJfQ09SRSBpZiBEUk1fRkJERVZfRU1VTEFUSU9OXFxuZHJpdmVycy9ncHUvZHJtL0tjb25maWctNDktXFx0aGVscFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL0tjb25maWc9MjUwPWNvbmZpZyBEUk1fVFRNX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL0tjb25maWctMjU0LVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUiBpZiBEUk1fRkJERVZfRU1VTEFUSU9OXFxuZHJpdmVycy9ncHUvZHJtL0tjb25maWc6MjU1OlxcdHNlbGVjdCBGQl9DT1JFIGlmIERSTV9GQkRFVl9FTVVMQVRJT05cXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZy0yNTYtXFx0c2VsZWN0IEZCX1NZU01FTV9IRUxQRVJTX0RFRkVSUkVEIGlmIERSTV9GQkRFVl9FTVVMQVRJT05cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnPTI2MD1jb25maWcgRFJNX0dFTV9ETUFfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZy0yNjMtXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSIGlmIERSTV9GQkRFVl9FTVVMQVRJT05cXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZzoyNjQ6XFx0c2VsZWN0IEZCX0NPUkUgaWYgRFJNX0ZCREVWX0VNVUxBVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnLTI2NS1cXHRzZWxlY3QgRkJfRE1BTUVNX0hFTFBFUlNfREVGRVJSRUQgaWYgRFJNX0ZCREVWX0VNVUxBVElPTlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL0tjb25maWc9MjY5PWNvbmZpZyBEUk1fR0VNX1NITUVNX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL0tjb25maWctMjcyLVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUiBpZiBEUk1fRkJERVZfRU1VTEFUSU9OXFxuZHJpdmVycy9ncHUvZHJtL0tjb25maWc6MjczOlxcdHNlbGVjdCBGQl9DT1JFIGlmIERSTV9GQkRFVl9FTVVMQVRJT05cXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZy0yNzQtXFx0c2VsZWN0IEZCX1NZU01FTV9IRUxQRVJTX0RFRkVSUkVEIGlmIERSTV9GQkRFVl9FTVVMQVRJT05cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc9Mz1jb25maWcgRFJNX0NMSUVOVF9MSUJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctNi1cXHRzZWxlY3QgRFJNX0tNU19IRUxQRVIgaWYgRFJNX0ZCREVWX0VNVUxBVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6NzpcXHRzZWxlY3QgRkJfQ09SRSBpZiBEUk1fRkJERVZfRU1VTEFUSU9OXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy04LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZz02PW1lbnVjb25maWcgRkJcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNy1cXHR0cmlzdGF0ZSBcXFwiU3VwcG9ydCBmb3IgZnJhbWUgYnVmZmVyIGRldmljZSBkcml2ZXJzXFxcIlxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo4OlxcdHNlbGVjdCBGQl9DT1JFXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTktXFx0c2VsZWN0IEZCX05PVElGWVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMzo0OC4wNDUwMzIzNjhaIiwiU2VxIjo0MSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTI0NzE4MTEzMDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb246IERSTSBWYmxhbmsgV2FpdGluZyBMb2dpYyoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgYERSTV9LTVNfSEVMUEVSYCBjaG9vc2VzIGBGQl9DT1JFYCBpZiB3ZSBoYXZlIGBEUk1fRkJERVZfRU1VTEFUSU9OYCBlbmFibGVkLiBBbmQsIGFzIHdlIGtub3csIGBEUk1fVktNU2AgYWxzbyBzZWxlY3RzIGBEUk1fS01TX0hFTFBFUmAsIHdoaWNoIGltcGxpY2l0bHkgc2VsZWN0cyBgRkJfQ09SRWAuIFRoaXMgbWVhbnMgYEZCX0NPUkVgIGlzIGhhbmRsZWQgYXV0b21hZ2ljYWxseSwgc28gbm8gbmVlZCB0byBleHBsaWNpdGx5IHdvcnJ5IGFib3V0IHRoYXQgb25lLiBCYXNpY2FsbHksIHdlIG9ubHkgbmVlZCB0byBlbmFibGUgYERSTV9WS01TYCBhbmQgYERSTV9GQkRFVl9FTVVMQVRJT05gLlxuXG5Ob3csIHRoZSBpbXBvcnRhbnQgcGFydDogSSBuZWVkIHRvIGNvbmZpcm0gd2hlcmUgdGhlc2Uga2V5IGZ1bmN0aW9ucyBhcmUgY2FsbGVkLiBJIHNlZSB0aGF0IGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBpcyBpbmRlZWQgY2FsbGVkIGFuZCBpcyBleHBvcnRlZC4gVGhlIHBhdGNoIGFsdGVycyBib3RoIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBhbmQgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AuIEJvdGggc2VlbSB0byBiZSByZWFjaGFibGUgLSB3aGljaCBpcyBrZXkhXG5cbk9rYXksIGxldCdzIHN1bW1hcml6ZSB0aGUgZnV6emluZyBwbGFuOlxuXG4qICAgKipXb3J0aEZ1enppbmc6KiogQWJzb2x1dGVseSFcbiogICAqKkZvY3VzIFN5bWJvbHM6KiogV2UgaGF2ZSB0byBmb2N1cyBvbiB0aGUgZm9sbG93aW5nIHN5bWJvbHNcbiAgICAqICAgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgXG4gICAgKiAgIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgXG4gICAgKiAgIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgXG4qICAgKipFbmFibGVDb25maWdzOioqXG4gICAgKiAgIGBEUk1fVktNU2BcbiAgICAqICAgYERSTV9GQkRFVl9FTVVMQVRJT05gXG5cbldhaXQsIGhhbmcgb24uIGBEUk1fVktNU2AgaXMgYSB2aXJ0dWFsIGRyaXZlciwgcGVyZmVjdCBmb3IgZnV6emluZyBpbiBhIGNvbnRyb2xsZWQgZW52aXJvbm1lbnQuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBpcyB0aGUgcmlnaHQgdmlydHVhbCBkcml2ZXIuIERvZXMgYW55IG90aGVyIHZpcnR1YWwgZHJpdmVyIHVzZSBEUk0/IExldCdzIHNlZS4uLiBgRFJNX1ZHRU1gIGRvZXNuJ3QgdXNlIEtNUywgc28gaXQgZG9lc24ndCB1c2UgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AuIEJ1dCwgYERSTV9WS01TYCAqZG9lcyogdXNlIEtNUyBhbmQgQ1JUQ3MuIFllcywgYERSTV9WS01TYCBpcyB0aGUgY29ycmVjdCB0YXJnZXQuXG5cbkxldCdzIGRvdWJsZS1jaGVjayB0aGUgZGVmaW5pdGlvbnMgb2YgdGhlIGtleSBmdW5jdGlvbnMgdG8gZW5zdXJlIHRoZXkncmUgYWNjZXNzaWJsZS4gSSdsbCBjb25maXJtIHRoYXQgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAgaXMgbm90IHN0YXRpYywgd2hpY2ggaXQgaXNuJ3QuIFNpbWlsYXJseSwgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIGFuZCBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYCBhcmUgYWxzbyBub3Qgc3RhdGljLiBFeGNlbGxlbnQuIE5vbmUgb2YgdGhlc2UgZnVuY3Rpb25zIGFyZSBzdGF0aWMgb3IgaW5saW5lZC5cblxuVGhlIHJlYXNvbiB0aGlzIGlzIGFsbCB3b3J0aHdoaWxlIGlzIHRoYXQgdGhlIHBhdGNoIHJlZmFjdG9ycyB0aGUgdmJsYW5rIHdhaXRpbmcgbG9naWMgdG8gZWxpbWluYXRlIG5lc3RlZCBgZHJtX2NydGNfdmJsYW5rX2dldGAgY2FsbHMsIGFuZCBpdCBpbnRyb2R1Y2VzIGEgbmV3IGhlbHBlciwgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAuIFRoaXMgZml4ZXMgYSBwb3RlbnRpYWwgaXNzdWUgaW4gYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIGFuZCBtb2RpZmllcyBob3cgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AgZnVuY3Rpb25zLiBTaW5jZSB0aGVzZSBmdW5jdGlvbnMgY2FuIGJlIGFjY2Vzc2VkIGZyb20gdXNlcnNwYWNlIHZpYSBmYmRldiBpb2N0bHMgKGxpa2UgYEZCSU9fV0FJVEZPUlZTWU5DYCkgYW5kIERSTSBhdG9taWMgY29tbWl0cywgdGhlcmUgaXMgYSBmdW5jdGlvbmFsIGltcGFjdCBpbiB0aGUgRFJNIGNvcmUsIG1ha2luZyB0aGVtIHBlcmZlY3QgdGFyZ2V0cy5cblxuU28sIHRvIHJlaXRlcmF0ZSwgaXQgc2VlbXMgbGlrZSBgRFJNX1ZLTVNgIGFuZCBgRFJNX0ZCREVWX0VNVUxBVElPTmAgYXJlIHRoZSBrZXkgY29uZmlncyB3ZSB3aWxsIG5lZWQuIFRoaXMgc2V0dXAgc2hvdWxkIGdpdmUgdXMgYSBnb29kIHRlc3RiZWQuIE9rYXksIEknbSByZWFkeSB0byBwcm9jZWVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NDA0MSwiT3V0cHV0VG9rZW5zIjoyMzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4NTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTQ6MDAuNTE2ODQ2OTM1WiIsIlNlcSI6NDIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Nzg0NjE3MDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkRSTV9WS01TXCIsXG4gICAgXCJEUk1fRkJERVZfRU1VTEFUSU9OXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua1wiLFxuICAgIFwiZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rXCIsXG4gICAgXCJkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZWZhY3RvcnMgdGhlIHZibGFuayB3YWl0aW5nIGxvZ2ljIGluIHRoZSBEUk0gY29yZSB0byBhdm9pZCBuZXN0ZWQgYGRybV9jcnRjX3ZibGFua19nZXRgIGNhbGxzLCBpbnRyb2R1Y2luZyBhIG5ldyBpbnRlcm5hbCBoZWxwZXIgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAuIFRoaXMgZml4ZXMgYSBwb3RlbnRpYWwgaXNzdWUgaW4gYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIGFuZCBtb2RpZmllcyB0aGUgZXhlY3V0aW9uIGZsb3cgb2YgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AuIFRoZXNlIGZ1bmN0aW9ucyBhcmUgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBmYmRldiBpb2N0bHMgKGUuZy4sIGBGQklPX1dBSVRGT1JWU1lOQ2ApIGFuZCBEUk0gYXRvbWljIGNvbW1pdHMuIFRoZSBjaGFuZ2VzIGhhdmUgYSBmdW5jdGlvbmFsIGltcGFjdCBvbiB0aGUgRFJNIGNvcmUgYW5kIGFyZSB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkRSTV9WS01TXCIsXG4gICAgXCJEUk1fRkJERVZfRU1VTEFUSU9OXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua1wiLFxuICAgIFwiZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rXCIsXG4gICAgXCJkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZWZhY3RvcnMgdGhlIHZibGFuayB3YWl0aW5nIGxvZ2ljIGluIHRoZSBEUk0gY29yZSB0byBhdm9pZCBuZXN0ZWQgYGRybV9jcnRjX3ZibGFua19nZXRgIGNhbGxzLCBpbnRyb2R1Y2luZyBhIG5ldyBpbnRlcm5hbCBoZWxwZXIgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAuIFRoaXMgZml4ZXMgYSBwb3RlbnRpYWwgaXNzdWUgaW4gYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIGFuZCBtb2RpZmllcyB0aGUgZXhlY3V0aW9uIGZsb3cgb2YgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AuIFRoZXNlIGZ1bmN0aW9ucyBhcmUgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBmYmRldiBpb2N0bHMgKGUuZy4sIGBGQklPX1dBSVRGT1JWU1lOQ2ApIGFuZCBEUk0gYXRvbWljIGNvbW1pdHMuIFRoZSBjaGFuZ2VzIGhhdmUgYSBmdW5jdGlvbmFsIGltcGFjdCBvbiB0aGUgRFJNIGNvcmUgYW5kIGFyZSB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxNDowMC41OTUzMTU2NzNaIiwiU2VxIjo0MywiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgzNzQxMzUxMzMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxNDowMC41OTU3NTYxMDNaIiwiU2VxIjo0NCwiTmVzdGluZyI6MiwiVHlwZSI6ImFnZW50IiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6ODM3MzY5MDk1MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVmYWN0b3JzIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIGJ5IGV4dHJhY3RpbmcgaXRzIGNvcmUgd2FpdGluZyBsb2dpYyBpbnRvIGEgbmV3IGludGVybmFsIGZ1bmN0aW9uIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgLiBUaGlzIGFsbG93cyBjYWxsZXJzIGxpa2UgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIHRoYXQgYWxyZWFkeSBob2xkIGEgdmJsYW5rIHJlZmVyZW5jZSB0byB3YWl0IHdpdGhvdXQgYWNxdWlyaW5nIGFuZCByZWxlYXNpbmcgdGhlIHJlZmVyZW5jZSBhZ2Fpbi4gVGhlIGNoYW5nZXMgYXJlIHB1cmVseSByZWxhdGVkIHRvIGNvbnRyb2wgZmxvdywgcmVmZXJlbmNlIGNvdW50aW5nLCBhbmQgd2FpdCBxdWV1ZXMuIFRoZXJlIGFyZSBubyBuZXcgZGF0YSBzdHJ1Y3R1cmVzIGFsbG9jYXRlZCwgbm8gc3RydWN0dXJlcyBjb3BpZWQgdG8gdXNlciBzcGFjZSwgYW5kIG5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJpc2tzIGludHJvZHVjZWQuIEFueSBwb3RlbnRpYWwgYnVncyBpbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2ggKHN1Y2ggYXMgdXNlLWFmdGVyLWZyZWUgZHVlIHRvIGluY29ycmVjdCByZWZlcmVuY2UgY291bnRpbmcpIHdvdWxkIGJlIGNhdWdodCBieSBLQVNBTiBvciBzdGFuZGFyZCBrZXJuZWwgZGVidWdnaW5nIHRvb2xzLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgbmVjZXNzYXJ5LlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBzZWN1cml0eSBlbmdpbmVlciBzcGVjaWFsaXppbmcgaW4ga2VybmVsIG1lbW9yeVxuZXJyb3IgZGV0ZWN0b3JzIChLQVNBTiBhbmQgS01TQU4pLiBZb3VyIGpvYiBpcyB0byByZXZpZXcgdGhlIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmRcbmRldGVybWluZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGp1c3RpZnkgc3Bhd25pbmcgYSBkZWRpY2F0ZWQgS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcilcbmZ1enppbmcgc2Vzc2lvbiBpbiBhZGRpdGlvbiB0byBzdGFuZGFyZCBLQVNBTiBmdXp6aW5nLlxuXG5DUklUSUNBTCBESVNUSU5DVElPTiBCRVRXRUVOIEtBU0FOIEFORCBLTVNBTjpcbi0gU3RhbmRhcmQgS0FTQU4ga2VybmVsIGJ1aWxkcyAodXBzdHJlYW0tYXBwYXJtb3Ita2FzYW4uY29uZmlnKSBhbHJlYWR5IGVuYWJsZVxuICBhIGNvbXByZWhlbnNpdmUgc3VpdGUgb2YgZGVidWdnaW5nIHRvb2xzIGFuZCBzYW5pdGl6ZXJzLCBpbmNsdWRpbmcgS0FTQU5cbiAgKG91dC1vZi1ib3VuZHMgYWNjZXNzZXMsIHVzZS1hZnRlci1mcmVlLCBkb3VibGUgZnJlZSwgaW52YWxpZCBmcmVlKSwgTE9DS0RFUFxuICAobG9ja2luZyBidWdzIGFuZCBkZWFkbG9ja3MpLCBVQi1zYW5pdGl6ZXJzLCBhbmQgbWVtb3J5IGNvcnJ1cHRpb24gY2hlY2tzLlxuLSBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKSBkZXRlY3RzIHJlYWRzIG9mIFVOSU5JVElBTElaRUQgbWVtb3J5IChzdGFjaywgaGVhcCxcbiAgb3IgcGFnZSBhbGxvY2F0aW9ucykgYW5kIGtlcm5lbC10by11c2VyIG1lbW9yeSBpbmZvLWxlYWtzLlxuXG5SdWxlOiBUSEVSRSBJUyBOTyBTRU5TRSBJTiBSVU5OSU5HIEEgS01TQU4gU0VTU0lPTiBJRiBBIEJVRyBDQU4gQkUgQ0FVR0hUIEJZIEtBU0FOLFxuTE9DS0RFUCwgT1IgT1RIRVIgU1RBTkRBUkQgQlVHIERFVEVDVE9SUy5cbkEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpbmN1cnMgc2lnbmlmaWNhbnQgcmVzb3VyY2UgY29zdHMuIFlvdSBtdXN0IE9OTFlcbnNldCBOZWVkc0tNU0FOPXRydWUgaWYgdGhlIGNvZGUgY2hhbmdlcyBpbnRyb2R1Y2Ugb3IgZXhwb3NlIFVOSU5JVElBTElaRUQgTUVNT1JZIHJpc2tzXG50aGF0IGFyZSBkZXRlY3RlZCBPTkxZIGJ5IEtNU0FOLlxuXG5Mb29rIGhvbGlzdGljYWxseSBhdCB0aGUgcGF0Y2ggc2VyaWVzIGFuZCBzdXJyb3VuZGluZyBjb2RlLiBFdmVuIGlmIG5vIGRpcmVjdFxudW5pbml0aWFsaXplZCBmaWVsZCBhY2Nlc3NlcyBvciBuZXcgYnVmZmVyIGFsbG9jYXRpb25zIGFyZSBhZGRlZCBpbiB0aGUgZGlmZiBpdHNlbGYsXG5hIHBhdGNoIG1heSBhbHRlciBjb250cm9sIGZsb3csIGJvdW5kcyBjaGVja2luZywgb3IgZGF0YSBsZW5ndGggY2FsY3VsYXRpb25zIGluIHdheXNcbnRoYXQgY2hhbmdlIGhvdyB0aGUgcmVzdCBvZiB0aGUgY29kZSBvcGVyYXRlcyBvbiBleGlzdGluZyBidWZmZXJzIChlLmcuIGFsbG93aW5nXG51bmluaXRpYWxpemVkIHN0YWNrL2hlYXAgbWVtb3J5IHRvIGJlIHJlYWQsIGNvcGllZCB0byB1c2VyIHNwYWNlLCBvciB1c2VkIGluIGNvbnRyb2xcbmZsb3cpLiBEbyBub3QgaGVzaXRhdGUgdG8gdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSxcbmNhbGxlZCBmdW5jdGlvbnMsIGFuZCBjYWxsZXJzLlxuXG5TZXQgTmVlZHNLTVNBTj10cnVlIE9OTFkgSUYgdGhlIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXM6XG4xLiBLZXJuZWwgc3RydWN0dXJlcyBzZW50IHRvIHVzZXIgc3BhY2UgKHZpYSBjb3B5X3RvX3VzZXIsIHB1dF91c2VyLCBuZXRsaW5rIHNrYlxuICAgYXR0cmlidXRlcywgaW9jdGwgb3V0cHV0IGFyZ3VtZW50cywgc29ja2V0IG9wdGlvbnMsIG9yIEJQRiBidWZmZXJzKSB3aGVyZSBmaWVsZHNcbiAgIG9yIHN0cnVjdHVyZSBwYWRkaW5nIG1pZ2h0IG5vdCBiZSBmdWxseSBpbml0aWFsaXplZC96ZXJvZWQuXG4yLiBDb25kaXRpb25hbCBsb2dpYyBvciBicmFuY2hpbmcgdGhhdCBkZXBlbmRzIG9uIHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzXG4gICBvciBzdHJ1Y3QgZmllbGRzLlxuMy4gQWxsb2NhdGlvbiBvciBpbml0aWFsaXphdGlvbiBvZiBjb21wbGV4IGRhdGEgc3RydWN0dXJlcyB3aGVyZSB1bmluaXRpYWxpemVkIGZpZWxkc1xuICAgY291bGQgYmUgcmVhZCBsYXRlciBpbiByZWFjaGFibGUgY29kZSBwYXRocy5cbjQuIEJvdW5kcyBjaGVja3MsIGxlbmd0aHMsIG9yIGxvZ2ljIGluIGEgd2F5IHRoYXQgYWxsb3dzIHN1cnJvdW5kaW5nIGNvZGUgdG8gYWNjZXNzXG4gICB1bmluaXRpYWxpemVkIGJ5dGVzIG9mIGV4aXN0aW5nIGJ1ZmZlcnMuXG5cblNldCBOZWVkc0tNU0FOPWZhbHNlIElGOlxuLSBUaGUgY29kZSBjaGFuZ2VzIHByaW1hcmlseSByaXNrIG91dC1vZi1ib3VuZHMgYWNjZXNzLCBhcnJheSBvdmVyZmxvd3MsIE5VTEwgcG9pbnRlclxuICBkZXJlZmVyZW5jZXMsIGxvY2tpbmcgZGVhZGxvY2tzLCBvciB1c2UtYWZ0ZXItZnJlZSBidWdzICh0aGVzZSBhcmUgYWxyZWFkeSBjYXVnaHRcbiAgYnkgS0FTQU4sIExPQ0tERVAsIG9yIHN0YW5kYXJkIGJ1ZyBkZXRlY3RvcnMpLlxuLSBBbGwgc3RhY2svaGVhcCBzdHJ1Y3R1cmVzIHRvdWNoZWQgb3IgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggYXJlIGZ1bGx5IHplcm9lZFxuICBvciBpbml0aWFsaXplZCAoZS5nLiB1c2luZyA9IHswfSwgbWVtc2V0LCBremFsbG9jKSBiZWZvcmUgYmVpbmcgcmVhZCBvciBjb3BpZWQuXG4tIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcy5cblxuVXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSBpZiBuZWNlc3NhcnksIHRoZW4gcHJvdmlkZVxuZGV0YWlsZWQgS01TQU5SZWFzb25pbmcgY29udHJhc3RpbmcgS0FTQU4gdnMgS01TQU4gYXBwbGljYWJpbGl0eSBmb3IgdGhpcyBwYXRjaC5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGQ0MGRlY2NjY2ZkYzI4NDYyMmMyMzY2ZWFiODIyYjI3NzA1MzZlZDhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEF1ZyAxMSAwMToxMTo1OCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuY1xuaW5kZXggMDA4MGE4ZTk1NTZhNS4uN2ZmMGYyNGEwZjUwMiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuY1xuKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jXG5AQCAtMTMyOCw3ICsxMzI4LDcgQEAgaW50IGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92Ymxhbmsoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIHVuc2lnbmVkIGlcbiBcdCAqL1xuIFx0cmV0ID0gZHJtX2NydGNfdmJsYW5rX2dldChjcnRjKTtcbiBcdGlmICghcmV0KSB7XG4tXHRcdGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhjcnRjKTtcbitcdFx0ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKGNydGMpO1xuIFx0XHRkcm1fY3J0Y192YmxhbmtfcHV0KGNydGMpO1xuIFx0fVxuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaCBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaFxuaW5kZXggZjg5M2IxZTNhNTk2ZS4uNmZkMzM2NzJkMjA2YSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaFxuKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oXG5AQCAtMTE1LDYgKzExNSw3IEBAIHZvaWQgZHJtX3ZibGFua19kaXNhYmxlX2FuZF9zYXZlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTtcbiBpbnQgZHJtX3ZibGFua19nZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpO1xuIHZvaWQgZHJtX3ZibGFua19wdXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpO1xuIHU2NCBkcm1fdmJsYW5rX2NvdW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTtcbitpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7XG4gXG4gLyogZHJtX3ZibGFua193b3JrLmMgKi9cbiBzdGF0aWMgaW5saW5lIHZvaWQgZHJtX3ZibGFua19mbHVzaF93b3JrZXIoc3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jXG5pbmRleCBmOTBmYjJkMTNlNDIzLi45Y2FjNzAxM2I0YzljIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuY1xuKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuY1xuQEAgLTEyOTcsNiArMTI5NywzMiBAQCB2b2lkIGRybV9jcnRjX3ZibGFua19wdXQoc3RydWN0IGRybV9jcnRjICpjcnRjKVxuIH1cbiBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3ZibGFua19wdXQpO1xuIFxuKy8qKlxuKyAqIGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbCAtIHdhaXQgZm9yIG9uZSB2YmxhbmtcbisgKiBAY3J0YzogRFJNIGNydGNcbisgKlxuKyAqIFRoaXMgd2FpdHMgZm9yIG9uZSB2YmxhbmsgdG8gcGFzcyBvbiBAY3J0YywgdXNpbmcgdGhlIGlycSBkcml2ZXIgaW50ZXJmYWNlcy5cbisgKiBFdmVyeSBjYWxsZXIgbXVzdCBob2xkIGEgdmJsYW5rIHJlZmVyZW5jZSBhY3Jvc3MgdGhlIGNvbXBsZXRlIHdhaXQuXG4rICpcbisgKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIG9uIGZhaWx1cmVzLlxuKyAqL1xuK2ludCBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoc3RydWN0IGRybV9jcnRjICpjcnRjKVxuK3tcbitcdHN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLVx1MDAzZWRldjtcbitcdGludCBwaXBlID0gZHJtX2NydGNfaW5kZXgoY3J0Yyk7XG4rXHRzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2YmxhbmsgPSBkcm1fY3J0Y192YmxhbmtfY3J0YyhjcnRjKTtcbitcdGludCByZXQ7XG4rXHR1NjQgbGFzdDtcbitcbitcdGxhc3QgPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSk7XG4rXG4rXHRyZXQgPSB3YWl0X2V2ZW50X3RpbWVvdXQodmJsYW5rLVx1MDAzZXF1ZXVlLFxuK1x0XHRcdFx0IGxhc3QgIT0gZHJtX3ZibGFua19jb3VudChkZXYsIHBpcGUpLFxuK1x0XHRcdFx0IG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpO1xuK1xuK1x0cmV0dXJuIHJldCA/IDAgOiAtRVRJTUVET1VUO1xuK31cbitcbiAvKipcbiAgKiBkcm1fY3J0Y193YWl0X29uZV92YmxhbmsgLSB3YWl0IGZvciBvbmUgdmJsYW5rXG4gICogQGNydGM6IERSTSBjcnRjXG5AQCAtMTMxMSwyNiArMTMzNywyMCBAQCBpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcbiB7XG4gXHRzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy1cdTAwM2VkZXY7XG4gXHRpbnQgcGlwZSA9IGRybV9jcnRjX2luZGV4KGNydGMpO1xuLVx0c3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rID0gZHJtX2NydGNfdmJsYW5rX2NydGMoY3J0Yyk7XG4gXHRpbnQgcmV0O1xuLVx0dTY0IGxhc3Q7XG4gXG4gXHRyZXQgPSBkcm1fdmJsYW5rX2dldChkZXYsIHBpcGUpO1xuIFx0aWYgKGRybV9XQVJOKGRldiwgcmV0LCBcInZibGFuayBub3QgYXZhaWxhYmxlIG9uIGNydGMgJWksIHJldD0laVxcblwiLFxuIFx0XHQgICAgIHBpcGUsIHJldCkpXG4gXHRcdHJldHVybiByZXQ7XG4gXG4tXHRsYXN0ID0gZHJtX3ZibGFua19jb3VudChkZXYsIHBpcGUpO1xuLVxuLVx0cmV0ID0gd2FpdF9ldmVudF90aW1lb3V0KHZibGFuay1cdTAwM2VxdWV1ZSxcbi1cdFx0XHRcdCBsYXN0ICE9IGRybV92YmxhbmtfY291bnQoZGV2LCBwaXBlKSxcbi1cdFx0XHRcdCBtc2Vjc190b19qaWZmaWVzKDEwMDApKTtcbitcdHJldCA9IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTtcbiBcbi1cdGRybV9XQVJOKGRldiwgcmV0ID09IDAsIFwidmJsYW5rIHdhaXQgdGltZWQgb3V0IG9uIGNydGMgJWlcXG5cIiwgcGlwZSk7XG4rXHRkcm1fV0FSTihkZXYsIHJldCA9PSAtRVRJTUVET1VULCBcInZibGFuayB3YWl0IHRpbWVkIG91dCBvbiBjcnRjICVpXFxuXCIsIHBpcGUpO1xuIFxuIFx0ZHJtX3ZibGFua19wdXQoZGV2LCBwaXBlKTtcbiBcbi1cdHJldHVybiByZXQgPyAwIDogLUVUSU1FRE9VVDtcbitcdHJldHVybiByZXQ7XG4gfVxuIEVYUE9SVF9TWU1CT0woZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKTtcbiBcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDAxOjE0OjAwLjU5NTc1NzAwM1oiLCJTZXEiOjQ1LCJOZXN0aW5nIjozLCJUeXBlIjoibGxtIiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4MzczNjYwMzEzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlJlZmFjdG9yaW5nIHRoZSBWYmxhbmsgV2FpdCBQYXRoKipcblxuT2theSwgc28gSSd2ZSBiZWVuIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCwgYW5kIGl0IGxvb2tzIGxpa2UgYSBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIHJlZmFjdG9yaW5nIG9mIHRoZSB2Ymxhbmsgd2FpdGluZyBtZWNoYW5pc20gd2l0aGluIHRoZSBEUk0gY29yZS4gQmFzaWNhbGx5LCB3aGF0J3MgaGFwcGVuaW5nIGlzIGEgZnVuY3Rpb24sIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCwgaXMgYmVpbmcgc3RyZWFtbGluZWQgdG8gYXZvaWQgcmVkdW5kYW50IGNhbGxzIHRvIGBkcm1fdmJsYW5rX2dldGAgYW5kIGBkcm1fdmJsYW5rX3B1dGAuIEkgY2FuIHNlZSB0aGUgbG9naWM7IGl0J3MgYWJvdXQgb3B0aW1pemluZyByZWZlcmVuY2UgY291bnRpbmcuXG5cblRoZSBtYWluIGNoYW5nZSBpcyB0aGUgaW50cm9kdWN0aW9uIG9mIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgLiBUaGlzIG5ldyBpbnRlcm5hbCBmdW5jdGlvbiBpbiBgZHJtX3ZibGFuay5jYCBpcyB0aGUga2V5LiBUaGUgZXhpc3RpbmcgZnVuY3Rpb24sIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgLCBvcmlnaW5hbGx5IGNvbnRhaW5lZCBhIGBkcm1fdmJsYW5rX2dldGAgY2FsbCBidXQgbm93LCB0aGUgY29kZSBub3cgZ2V0cyBhIHJlZmVyZW5jZSBiZWZvcmUgY2FsbGluZyB0aGUgbmV3IGludGVybmFsIGZ1bmN0aW9uLiBUaGlzIG5ldyBpbnRlcm5hbCBmdW5jdGlvbiBhc3N1bWVzIHRoZSBjYWxsZXIgYWxyZWFkeSBob2xkcyB0aGUgbmVjZXNzYXJ5IHJlZmVyZW5jZSwgc2tpcHBpbmcgdGhlIGdldC9wdXQgY2FsbHMgd2l0aGluIGl0c2VsZi4gVGhpcyBpcyBnb29kOyB3ZSBkb24ndCB3YW50IHRvIG92ZXItcmVsZWFzZSBvciBkb3VibGUgcmVsZWFzZS5cblxuRXNzZW50aWFsbHksIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgIGlzIGEgaGVscGVyIGZ1bmN0aW9uIHRoYXQgdGFrZXMgdGhlIGJ1cmRlbiBvZiB0aGUgcmVmZXJlbmNlIGNvdW50aW5nIGZyb20gdGhlIHB1YmxpYyBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYC4gSXQgc2ltcGxpZmllcyB0aGUgY29kZSBwYXRoIGJ5IGFsbG93aW5nIGEgY2FsbGVyIHRvIHByb3ZpZGUgdGhlIHJlZmVyZW5jZSBpZiBpdCBoYXMgaXQuIFRoZSBvbGQgZnVuY3Rpb24gYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AgY29udGludWVzIHRvIG1hbmFnZSB0aGUgcmVmZXJlbmNlLlxuXG5HaXZlbiB0aGUgbmF0dXJlIG9mIHRoZSBjaGFuZ2VzLCBJJ20gY29tZm9ydGFibGUgc2F5aW5nIHRoZXJlJ3Mgbm8gcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSBiZWluZyBleHBvc2VkIGhlcmUuIFdlJ3JlIGRlYWxpbmcgd2l0aCByZWZlcmVuY2UgY291bnRpbmcgYW5kIGNvbnRyb2wgZmxvdyDigJMgbm90IHdpdGggbmV3bHkgaW50cm9kdWNlZCBkYXRhIHN0cnVjdHVyZXMsIGFsbG9jYXRpb25zLCBvciBwb3RlbnRpYWxseSB1bnNhZmUgbWVtb3J5IGFjY2Vzc2VzLiBUaGlzIGlzbid0IGEgc2l0dWF0aW9uIHdoZXJlIEtNU0FOIChLZXJuZWwgTWVtb3J5IFNhbml0aXplcikgaXMgbmVlZGVkLiBLQVNBTiAoS2VybmVsIEFkZHJlc3MgU2FuaXRpemVyKSBhbmQgTE9DS0RFUCBzaG91bGQgYmUgbW9yZSB0aGFuIHN1ZmZpY2llbnQgdG8gY2F0Y2ggYW55IHN1YnRsZSBpc3N1ZXMgbGlrZSB1c2UtYWZ0ZXItZnJlZSBzY2VuYXJpb3MgaWYgdGhlIHJlZmVyZW5jZSBjb3VudGluZyBnb2VzIHdyb25nLiBJIGNhbiBzZWUgbm8gY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgb3IgYm91bmRzIGNoZWNrcyBoZXJlLlxuXG5JJ20gZ29pbmcgdG8gZG91YmxlLWNoZWNrIHRoZSBkaWZmIHRvIGNvbmZpcm0uIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgIHdpbGwgYmUgcmV0dXJuaW5nIGAwYCBvbiBzdWNjZXNzIGFuZCBgLUVUSU1FRE9VVGAgb24gZmFpbHVyZS4gYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2Agc2ltcGx5IHBhc3NlcyBiYWNrIHRoZSByZXR1cm4gY29kZSBmcm9tIHRoYXQgaW50ZXJuYWwgZnVuY3Rpb24uIEl0J3MgYSBjbGVhbiBzZXBhcmF0aW9uIG9mIGNvbmNlcm5zOiBjb250cm9sIGZsb3cgYW5kIHJlZmNvdW50aW5nLlxuXG5CYXNlZCBvbiB0aGlzIGFuYWx5c2lzLCBJJ20gc2V0dGluZyBgTmVlZHNLTVNBTj1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxNDYsIk91dHB1dFRva2VucyI6MTkxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDE0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTQ6MDguOTY5NDI2NDM2WiIsIlNlcSI6NDYsIk5lc3RpbmciOjMsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTg1NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZWZhY3RvcnMgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AgYnkgZXh0cmFjdGluZyBpdHMgY29yZSB3YWl0aW5nIGxvZ2ljIGludG8gYSBuZXcgaW50ZXJuYWwgZnVuY3Rpb24gYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAuIFRoaXMgYWxsb3dzIGNhbGxlcnMgbGlrZSBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgdGhhdCBhbHJlYWR5IGhvbGQgYSB2YmxhbmsgcmVmZXJlbmNlIHRvIHdhaXQgd2l0aG91dCBhY3F1aXJpbmcgYW5kIHJlbGVhc2luZyB0aGUgcmVmZXJlbmNlIGFnYWluLiBUaGUgY2hhbmdlcyBhcmUgcHVyZWx5IHJlbGF0ZWQgdG8gY29udHJvbCBmbG93LCByZWZlcmVuY2UgY291bnRpbmcsIGFuZCB3YWl0IHF1ZXVlcy4gVGhlcmUgYXJlIG5vIG5ldyBkYXRhIHN0cnVjdHVyZXMgYWxsb2NhdGVkLCBubyBzdHJ1Y3R1cmVzIGNvcGllZCB0byB1c2VyIHNwYWNlLCBhbmQgbm8gdW5pbml0aWFsaXplZCBtZW1vcnkgcmlza3MgaW50cm9kdWNlZC4gQW55IHBvdGVudGlhbCBidWdzIGludHJvZHVjZWQgYnkgdGhpcyBwYXRjaCAoc3VjaCBhcyB1c2UtYWZ0ZXItZnJlZSBkdWUgdG8gaW5jb3JyZWN0IHJlZmVyZW5jZSBjb3VudGluZykgd291bGQgYmUgY2F1Z2h0IGJ5IEtBU0FOIG9yIHN0YW5kYXJkIGtlcm5lbCBkZWJ1Z2dpbmcgdG9vbHMuIFRoZXJlZm9yZSwgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCBuZWNlc3NhcnkuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVmYWN0b3JzIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIGJ5IGV4dHJhY3RpbmcgaXRzIGNvcmUgd2FpdGluZyBsb2dpYyBpbnRvIGEgbmV3IGludGVybmFsIGZ1bmN0aW9uIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgLiBUaGlzIGFsbG93cyBjYWxsZXJzIGxpa2UgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIHRoYXQgYWxyZWFkeSBob2xkIGEgdmJsYW5rIHJlZmVyZW5jZSB0byB3YWl0IHdpdGhvdXQgYWNxdWlyaW5nIGFuZCByZWxlYXNpbmcgdGhlIHJlZmVyZW5jZSBhZ2Fpbi4gVGhlIGNoYW5nZXMgYXJlIHB1cmVseSByZWxhdGVkIHRvIGNvbnRyb2wgZmxvdywgcmVmZXJlbmNlIGNvdW50aW5nLCBhbmQgd2FpdCBxdWV1ZXMuIFRoZXJlIGFyZSBubyBuZXcgZGF0YSBzdHJ1Y3R1cmVzIGFsbG9jYXRlZCwgbm8gc3RydWN0dXJlcyBjb3BpZWQgdG8gdXNlciBzcGFjZSwgYW5kIG5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJpc2tzIGludHJvZHVjZWQuIEFueSBwb3RlbnRpYWwgYnVncyBpbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2ggKHN1Y2ggYXMgdXNlLWFmdGVyLWZyZWUgZHVlIHRvIGluY29ycmVjdCByZWZlcmVuY2UgY291bnRpbmcpIHdvdWxkIGJlIGNhdWdodCBieSBLQVNBTiBvciBzdGFuZGFyZCBrZXJuZWwgZGVidWdnaW5nIHRvb2xzLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgbmVjZXNzYXJ5LlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowz6lpf[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-11 01:10:09 +0000 UTC FinishedAt: 2026-08-11 01:14:11 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "f5098b6bae761e346ebcd9da7f95622c04733cff", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DRM_VKMS", "DRM_FBDEV_EMULATION" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "f5098b6bae761e346ebcd9da7f95622c04733cff", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DRM_VKMS", "DRM_FBDEV_EMULATION" ], "series_id": "3a6e4ca1-6efd-4128-bc62-1793fc793b0c" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "drm_client_modeset_wait_for_vblank", "drm_crtc_wait_one_vblank", "drm_crtc_wait_one_vblank_internal" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDAxOjExPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RSTV9WS01TJiMzNDssCiAgICAmIzM0O0RSTV9GQkRFVl9FTVVMQVRJT04mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rJiMzNDssCiAgICAmIzM0O2RybV9jcnRjX3dhaXRfb25lX3ZibGFuayYjMzQ7LAogICAgJiMzNDtkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwmIzM0OwogIF0sCiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZWZhY3RvcnMgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AgYnkgZXh0cmFjdGluZyBpdHMgY29yZSB3YWl0aW5nIGxvZ2ljIGludG8gYSBuZXcgaW50ZXJuYWwgZnVuY3Rpb24gYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAuIFRoaXMgYWxsb3dzIGNhbGxlcnMgbGlrZSBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgdGhhdCBhbHJlYWR5IGhvbGQgYSB2YmxhbmsgcmVmZXJlbmNlIHRvIHdhaXQgd2l0aG91dCBhY3F1aXJpbmcgYW5kIHJlbGVhc2luZyB0aGUgcmVmZXJlbmNlIGFnYWluLiBUaGUgY2hhbmdlcyBhcmUgcHVyZWx5IHJlbGF0ZWQgdG8gY29udHJvbCBmbG93LCByZWZlcmVuY2UgY291bnRpbmcsIGFuZCB3YWl0IHF1ZXVlcy4gVGhlcmUgYXJlIG5vIG5ldyBkYXRhIHN0cnVjdHVyZXMgYWxsb2NhdGVkLCBubyBzdHJ1Y3R1cmVzIGNvcGllZCB0byB1c2VyIHNwYWNlLCBhbmQgbm8gdW5pbml0aWFsaXplZCBtZW1vcnkgcmlza3MgaW50cm9kdWNlZC4gQW55IHBvdGVudGlhbCBidWdzIGludHJvZHVjZWQgYnkgdGhpcyBwYXRjaCAoc3VjaCBhcyB1c2UtYWZ0ZXItZnJlZSBkdWUgdG8gaW5jb3JyZWN0IHJlZmVyZW5jZSBjb3VudGluZykgd291bGQgYmUgY2F1Z2h0IGJ5IEtBU0FOIG9yIHN0YW5kYXJkIGtlcm5lbCBkZWJ1Z2dpbmcgdG9vbHMuIFRoZXJlZm9yZSwgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCBuZWNlc3NhcnkuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlZmFjdG9ycyB0aGUgdmJsYW5rIHdhaXRpbmcgbG9naWMgaW4gdGhlIERSTSBjb3JlIHRvIGF2b2lkIG5lc3RlZCBgZHJtX2NydGNfdmJsYW5rX2dldGAgY2FsbHMsIGludHJvZHVjaW5nIGEgbmV3IGludGVybmFsIGhlbHBlciBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYC4gVGhpcyBmaXhlcyBhIHBvdGVudGlhbCBpc3N1ZSBpbiBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgYW5kIG1vZGlmaWVzIHRoZSBleGVjdXRpb24gZmxvdyBvZiBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGZiZGV2IGlvY3RscyAoZS5nLiwgYEZCSU9fV0FJVEZPUlZTWU5DYCkgYW5kIERSTSBhdG9taWMgY29tbWl0cy4gVGhlIGNoYW5nZXMgaGF2ZSBhIGZ1bmN0aW9uYWwgaW1wYWN0IG9uIHRoZSBEUk0gY29yZSBhbmQgYXJlIHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTE8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBkNDBkZWNjY2NmZGMyODQ2MjJjMjM2NmVhYjgyMmIyNzcwNTM2ZWQ4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgMTEgMDE6MTE6NTggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jXG5pbmRleCAwMDgwYThlOTU1NmE1Li43ZmYwZjI0YTBmNTAyIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmNcbkBAIC0xMzI4LDcgJiM0MzsxMzI4LDcgQEAgaW50IGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92Ymxhbmsoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIHVuc2lnbmVkIGlcbiBcdCAqL1xuIFx0cmV0ID0gZHJtX2NydGNfdmJsYW5rX2dldChjcnRjKTtcbiBcdGlmICghcmV0KSB7XG4tXHRcdGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhjcnRjKTtcbiYjNDM7XHRcdGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTtcbiBcdFx0ZHJtX2NydGNfdmJsYW5rX3B1dChjcnRjKTtcbiBcdH1cbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmggYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmhcbmluZGV4IGY4OTNiMWUzYTU5NmUuLjZmZDMzNjcyZDIwNmEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaFxuQEAgLTExNSw2ICYjNDM7MTE1LDcgQEAgdm9pZCBkcm1fdmJsYW5rX2Rpc2FibGVfYW5kX3NhdmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpO1xuIGludCBkcm1fdmJsYW5rX2dldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7XG4gdm9pZCBkcm1fdmJsYW5rX3B1dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7XG4gdTY0IGRybV92YmxhbmtfY291bnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpO1xuJiM0MztpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7XG4gXG4gLyogZHJtX3ZibGFua193b3JrLmMgKi9cbiBzdGF0aWMgaW5saW5lIHZvaWQgZHJtX3ZibGFua19mbHVzaF93b3JrZXIoc3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jXG5pbmRleCBmOTBmYjJkMTNlNDIzLi45Y2FjNzAxM2I0YzljIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuY1xuQEAgLTEyOTcsNiAmIzQzOzEyOTcsMzIgQEAgdm9pZCBkcm1fY3J0Y192YmxhbmtfcHV0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcbiB9XG4gRVhQT1JUX1NZTUJPTChkcm1fY3J0Y192YmxhbmtfcHV0KTtcbiBcbiYjNDM7LyoqXG4mIzQzOyAqIGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbCAtIHdhaXQgZm9yIG9uZSB2YmxhbmtcbiYjNDM7ICogQGNydGM6IERSTSBjcnRjXG4mIzQzOyAqXG4mIzQzOyAqIFRoaXMgd2FpdHMgZm9yIG9uZSB2YmxhbmsgdG8gcGFzcyBvbiBAY3J0YywgdXNpbmcgdGhlIGlycSBkcml2ZXIgaW50ZXJmYWNlcy5cbiYjNDM7ICogRXZlcnkgY2FsbGVyIG11c3QgaG9sZCBhIHZibGFuayByZWZlcmVuY2UgYWNyb3NzIHRoZSBjb21wbGV0ZSB3YWl0LlxuJiM0MzsgKlxuJiM0MzsgKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIG9uIGZhaWx1cmVzLlxuJiM0MzsgKi9cbiYjNDM7aW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy1cdTAwM2VkZXY7XG4mIzQzO1x0aW50IHBpcGUgPSBkcm1fY3J0Y19pbmRleChjcnRjKTtcbiYjNDM7XHRzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2YmxhbmsgPSBkcm1fY3J0Y192YmxhbmtfY3J0YyhjcnRjKTtcbiYjNDM7XHRpbnQgcmV0O1xuJiM0MztcdHU2NCBsYXN0O1xuJiM0MztcbiYjNDM7XHRsYXN0ID0gZHJtX3ZibGFua19jb3VudChkZXYsIHBpcGUpO1xuJiM0MztcbiYjNDM7XHRyZXQgPSB3YWl0X2V2ZW50X3RpbWVvdXQodmJsYW5rLVx1MDAzZXF1ZXVlLFxuJiM0MztcdFx0XHRcdCBsYXN0ICE9IGRybV92YmxhbmtfY291bnQoZGV2LCBwaXBlKSxcbiYjNDM7XHRcdFx0XHQgbXNlY3NfdG9famlmZmllcygxMDAwKSk7XG4mIzQzO1xuJiM0MztcdHJldHVybiByZXQgPyAwIDogLUVUSU1FRE9VVDtcbiYjNDM7fVxuJiM0MztcbiAvKipcbiAgKiBkcm1fY3J0Y193YWl0X29uZV92YmxhbmsgLSB3YWl0IGZvciBvbmUgdmJsYW5rXG4gICogQGNydGM6IERSTSBjcnRjXG5AQCAtMTMxMSwyNiAmIzQzOzEzMzcsMjAgQEAgaW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpXG4ge1xuIFx0c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtXHUwMDNlZGV2O1xuIFx0aW50IHBpcGUgPSBkcm1fY3J0Y19pbmRleChjcnRjKTtcbi1cdHN0cnVjdCBkcm1fdmJsYW5rX2NydGMgKnZibGFuayA9IGRybV9jcnRjX3ZibGFua19jcnRjKGNydGMpO1xuIFx0aW50IHJldDtcbi1cdHU2NCBsYXN0O1xuIFxuIFx0cmV0ID0gZHJtX3ZibGFua19nZXQoZGV2LCBwaXBlKTtcbiBcdGlmIChkcm1fV0FSTihkZXYsIHJldCwgXCYjMzQ7dmJsYW5rIG5vdCBhdmFpbGFibGUgb24gY3J0YyAlaSwgcmV0PSVpXFxuXCYjMzQ7LFxuIFx0XHQgICAgIHBpcGUsIHJldCkpXG4gXHRcdHJldHVybiByZXQ7XG4gXG4tXHRsYXN0ID0gZHJtX3ZibGFua19jb3VudChkZXYsIHBpcGUpO1xuLVxuLVx0cmV0ID0gd2FpdF9ldmVudF90aW1lb3V0KHZibGFuay1cdTAwM2VxdWV1ZSxcbi1cdFx0XHRcdCBsYXN0ICE9IGRybV92YmxhbmtfY291bnQoZGV2LCBwaXBlKSxcbi1cdFx0XHRcdCBtc2Vjc190b19qaWZmaWVzKDEwMDApKTtcbiYjNDM7XHRyZXQgPSBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoY3J0Yyk7XG4gXG4tXHRkcm1fV0FSTihkZXYsIHJldCA9PSAwLCBcJiMzNDt2Ymxhbmsgd2FpdCB0aW1lZCBvdXQgb24gY3J0YyAlaVxcblwmIzM0OywgcGlwZSk7XG4mIzQzO1x0ZHJtX1dBUk4oZGV2LCByZXQgPT0gLUVUSU1FRE9VVCwgXCYjMzQ7dmJsYW5rIHdhaXQgdGltZWQgb3V0IG9uIGNydGMgJWlcXG5cJiMzNDssIHBpcGUpO1xuIFxuIFx0ZHJtX3ZibGFua19wdXQoZGV2LCBwaXBlKTtcbiBcbi1cdHJldHVybiByZXQgPyAwIDogLUVUSU1FRE9VVDtcbiYjNDM7XHRyZXR1cm4gcmV0O1xuIH1cbiBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayk7XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTE8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RSTV9WS01TJiMzNDssCiAgICAmIzM0O0RSTV9GQkRFVl9FTVVMQVRJT04mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rJiMzNDssCiAgICAmIzM0O2RybV9jcnRjX3dhaXRfb25lX3ZibGFuayYjMzQ7LAogICAgJiMzNDtkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVmYWN0b3JzIHRoZSB2Ymxhbmsgd2FpdGluZyBsb2dpYyBpbiB0aGUgRFJNIGNvcmUgdG8gYXZvaWQgbmVzdGVkIGBkcm1fY3J0Y192YmxhbmtfZ2V0YCBjYWxscywgaW50cm9kdWNpbmcgYSBuZXcgaW50ZXJuYWwgaGVscGVyIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgLiBUaGlzIGZpeGVzIGEgcG90ZW50aWFsIGlzc3VlIGluIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBhbmQgbW9kaWZpZXMgdGhlIGV4ZWN1dGlvbiBmbG93IG9mIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgLiBUaGVzZSBmdW5jdGlvbnMgYXJlIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgZmJkZXYgaW9jdGxzIChlLmcuLCBgRkJJT19XQUlURk9SVlNZTkNgKSBhbmQgRFJNIGF0b21pYyBjb21taXRzLiBUaGUgY2hhbmdlcyBoYXZlIGEgZnVuY3Rpb25hbCBpbXBhY3Qgb24gdGhlIERSTSBjb3JlIGFuZCBhcmUgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGQ0MGRlY2NjY2ZkYzI4NDYyMmMyMzY2ZWFiODIyYjI3NzA1MzZlZDgKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEF1ZyAxMSAwMToxMTo1OCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYwppbmRleCAwMDgwYThlOTU1NmE1Li43ZmYwZjI0YTBmNTAyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jCkBAIC0xMzI4LDcgJiM0MzsxMzI4LDcgQEAgaW50IGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92Ymxhbmsoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIHVuc2lnbmVkIGkKIAkgKi8KIAlyZXQgPSBkcm1fY3J0Y192YmxhbmtfZ2V0KGNydGMpOwogCWlmICghcmV0KSB7Ci0JCWRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhjcnRjKTsKJiM0MzsJCWRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTsKIAkJZHJtX2NydGNfdmJsYW5rX3B1dChjcnRjKTsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaCBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaAppbmRleCBmODkzYjFlM2E1OTZlLi42ZmQzMzY3MmQyMDZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCkBAIC0xMTUsNiAmIzQzOzExNSw3IEBAIHZvaWQgZHJtX3ZibGFua19kaXNhYmxlX2FuZF9zYXZlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTsKIGludCBkcm1fdmJsYW5rX2dldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7CiB2b2lkIGRybV92YmxhbmtfcHV0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTsKIHU2NCBkcm1fdmJsYW5rX2NvdW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTsKJiM0MztpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7CiAKIC8qIGRybV92Ymxhbmtfd29yay5jICovCiBzdGF0aWMgaW5saW5lIHZvaWQgZHJtX3ZibGFua19mbHVzaF93b3JrZXIoc3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMKaW5kZXggZjkwZmIyZDEzZTQyMy4uOWNhYzcwMTNiNGM5YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jCkBAIC0xMjk3LDYgJiM0MzsxMjk3LDMyIEBAIHZvaWQgZHJtX2NydGNfdmJsYW5rX3B1dChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB9CiBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3ZibGFua19wdXQpOwogCiYjNDM7LyoqCiYjNDM7ICogZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsIC0gd2FpdCBmb3Igb25lIHZibGFuawomIzQzOyAqIEBjcnRjOiBEUk0gY3J0YwomIzQzOyAqCiYjNDM7ICogVGhpcyB3YWl0cyBmb3Igb25lIHZibGFuayB0byBwYXNzIG9uIEBjcnRjLCB1c2luZyB0aGUgaXJxIGRyaXZlciBpbnRlcmZhY2VzLgomIzQzOyAqIEV2ZXJ5IGNhbGxlciBtdXN0IGhvbGQgYSB2YmxhbmsgcmVmZXJlbmNlIGFjcm9zcyB0aGUgY29tcGxldGUgd2FpdC4KJiM0MzsgKgomIzQzOyAqIFJldHVybnM6IDAgb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3Igb24gZmFpbHVyZXMuCiYjNDM7ICovCiYjNDM7aW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0mZ3Q7ZGV2OwomIzQzOwlpbnQgcGlwZSA9IGRybV9jcnRjX2luZGV4KGNydGMpOwomIzQzOwlzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2YmxhbmsgPSBkcm1fY3J0Y192YmxhbmtfY3J0YyhjcnRjKTsKJiM0MzsJaW50IHJldDsKJiM0MzsJdTY0IGxhc3Q7CiYjNDM7CiYjNDM7CWxhc3QgPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSk7CiYjNDM7CiYjNDM7CXJldCA9IHdhaXRfZXZlbnRfdGltZW91dCh2YmxhbmstJmd0O3F1ZXVlLAomIzQzOwkJCQkgbGFzdCAhPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSksCiYjNDM7CQkJCSBtc2Vjc190b19qaWZmaWVzKDEwMDApKTsKJiM0MzsKJiM0MzsJcmV0dXJuIHJldCA/IDAgOiAtRVRJTUVET1VUOwomIzQzO30KJiM0MzsKIC8qKgogICogZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rIC0gd2FpdCBmb3Igb25lIHZibGFuawogICogQGNydGM6IERSTSBjcnRjCkBAIC0xMzExLDI2ICYjNDM7MTMzNywyMCBAQCBpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0mZ3Q7ZGV2OwogCWludCBwaXBlID0gZHJtX2NydGNfaW5kZXgoY3J0Yyk7Ci0Jc3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rID0gZHJtX2NydGNfdmJsYW5rX2NydGMoY3J0Yyk7CiAJaW50IHJldDsKLQl1NjQgbGFzdDsKIAogCXJldCA9IGRybV92YmxhbmtfZ2V0KGRldiwgcGlwZSk7CiAJaWYgKGRybV9XQVJOKGRldiwgcmV0LCAmIzM0O3ZibGFuayBub3QgYXZhaWxhYmxlIG9uIGNydGMgJWksIHJldD0laVxuJiMzNDssCiAJCSAgICAgcGlwZSwgcmV0KSkKIAkJcmV0dXJuIHJldDsKIAotCWxhc3QgPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSk7Ci0KLQlyZXQgPSB3YWl0X2V2ZW50X3RpbWVvdXQodmJsYW5rLSZndDtxdWV1ZSwKLQkJCQkgbGFzdCAhPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSksCi0JCQkJIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOwomIzQzOwlyZXQgPSBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoY3J0Yyk7CiAKLQlkcm1fV0FSTihkZXYsIHJldCA9PSAwLCAmIzM0O3ZibGFuayB3YWl0IHRpbWVkIG91dCBvbiBjcnRjICVpXG4mIzM0OywgcGlwZSk7CiYjNDM7CWRybV9XQVJOKGRldiwgcmV0ID09IC1FVElNRURPVVQsICYjMzQ7dmJsYW5rIHdhaXQgdGltZWQgb3V0IG9uIGNydGMgJWlcbiYjMzQ7LCBwaXBlKTsKIAogCWRybV92YmxhbmtfcHV0KGRldiwgcGlwZSk7CiAKLQlyZXR1cm4gcmV0ID8gMCA6IC1FVElNRURPVVQ7CiYjNDM7CXJldHVybiByZXQ7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayk7CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE0OQoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDMwMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQb3RlbnRpYWwgRnV6emluZyBUYXJnZXQ6IERSTSBDbGllbnQgTW9kZXNldCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgYSBwYXRjaCBoZXJlIHRoYXQmIzM5O3MgdG91Y2hpbmcgYGRybV9jbGllbnRfbW9kZXNldC5jYCwgYGRybV9pbnRlcm5hbC5oYCwgYW5kIGBkcm1fdmJsYW5rLmNgLiBNeSBpbml0aWFsIHJlYWQgc2F5cyBpdCYjMzk7cyByZWZhY3RvcmluZyBzb21lIHZibGFuayB3YWl0aW5nIGxvZ2ljLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIHB1bGxpbmcgb3V0IHRoZSB3YWl0aW5nIHBhcnQgZnJvbSBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYCBpbnRvIGEgbmV3IGludGVybmFsIGZ1bmN0aW9uLCBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYC4gVGhlIGtleSBjaGFuZ2Ugc2VlbXMgdG8gYmUgdGhhdCBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgaXMgbm93IGdvaW5nIHRvIHVzZSB0aGlzIGludGVybmFsIGZ1bmN0aW9uIGluc3RlYWQgb2YgdGhlIG9yaWdpbmFsIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgLgoKTXkgZmlyc3QgZ3V0IHJlYWN0aW9uIGlzLCAmIzM0O0htbSwgcG90ZW50aWFsbHkgaW50ZXJlc3RpbmcgZm9yIGZ1enppbmcuJiMzNDsgSXQmIzM5O3MgY2hhbmdpbmcgdGhlIGV4ZWN1dGlvbiBwYXRoIG9mIHRob3NlIHR3byBmdW5jdGlvbnMsIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBhbmQgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AuIFRoZSBjcml0aWNhbCBwb2ludCBoZXJlIGlzIHRoYXQgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIGFscmVhZHkgY2FsbHMgYGRybV9jcnRjX3ZibGFua19nZXRgIGJlZm9yZSBpdCBzdGFydHMgd2FpdGluZywgYW5kIHRoZSByZWZhY3RvciBpcyBhdm9pZGluZyBhICpuZXN0ZWQqIGNhbGwgdG8gYGRybV9jcnRjX3ZibGFua19nZXRgLiBUaGF0IHNtZWxscyBsaWtlIGEgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uIG9yIHNvbWUgdGltaW5nLXJlbGF0ZWQgYnVnIGNvdWxkIGJlIGV4cG9zZWQgd2l0aCB0aGUgbmV3IGFwcHJvYWNoLgoKQnV0IHdhaXQgYSBtaW51dGUuLi4gYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgLi4uIHRoYXQmIzM5O3MgcGFydCBvZiBEUk0gY2xpZW50IG1vZGVzZXQsIHJpZ2h0PyBBbmQgaXNuJiMzOTt0ICp0aGF0KiBhY2Nlc3NpYmxlIGZyb20gdXNlcnNwYWNlPyBUaHJvdWdoIERSTSBpb2N0bHMgb3Igc3lzZnM/IFllYWgsIEkmIzM5O20gcHJldHR5IHN1cmUgaXQgaXMuIEFscmlnaHQsIEkgbmVlZCB0byBjb25maXJtIHdoZXJlIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBpcyBhY3R1YWxseSBjYWxsZWQuIFRoYXQmIzM5O3MgYSBjcnVjaWFsIHBpZWNlIG9mIGluZm9ybWF0aW9uIGJlZm9yZSBJIG1ha2UgYSBjYWxsIG9uIGZ1enppbmcuIEdvdHRhIHNlZSB3aGF0IHRoZSBjYWxsIHNpdGVzIGxvb2sgbGlrZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAwMToxMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYz0xMjk1PUVYUE9SVF9TWU1CT0woZHJtX2NsaWVudF9tb2Rlc2V0X2RwbXMpO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjk3LS8qKlxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyOTg6ICogZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuaygpIC0gV2FpdCBmb3IgdGhlIG5leHQgVkJMQU5LIHRvIG9jY3VyXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTI5OS0gKiBAY2xpZW50OiBEUk0gY2xpZW50XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEzMDgtICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTMwOTppbnQgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayhzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgdW5zaWduZWQgaW50IGNydGNfaW5kZXgpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTMxMC17XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEzMzgtfVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEzMzk6RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzQwLVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9MzE1PXN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZmJfZGlydHkoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlcilcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTMyNi1cdGlmIChjcnRjX2luZGV4IFx1MDAzZT0gMClcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MzI3Olx0XHRkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKFx1MDAyNmhlbHBlci1cdTAwM2VjbGllbnQsIGNydGNfaW5kZXgpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zMjgtXHRtdXRleF91bmxvY2soXHUwMDI2aGVscGVyLVx1MDAzZWxvY2spO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9OTg0PWludCBkcm1fZmJfaGVscGVyX2lvY3RsKHN0cnVjdCBmYl9pbmZvICppbmZvLCB1bnNpZ25lZCBpbnQgY21kLFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTAwOS1cdFx0ICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjEwMTA6XHRcdHJldCA9IGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmsoXHUwMDI2ZmJfaGVscGVyLVx1MDAzZWNsaWVudCwgMCk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEwMTEtXHRcdGJyZWFrO1xuLS1cbmluY2x1ZGUvZHJtL2RybV9jbGllbnQuaD0yMTk9aW50IGRybV9jbGllbnRfbW9kZXNldF9kcG1zKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCBpbnQgbW9kZSk7XG5pbmNsdWRlL2RybS9kcm1fY2xpZW50Lmg6MjIwOmludCBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCB1bnNpZ25lZCBpbnQgY3J0Y19pbmRleCk7XG5pbmNsdWRlL2RybS9kcm1fY2xpZW50LmgtMjIxLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDAxOjEyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ2MDAKCQkJCQkJCW91dHB1dDogMjIKCQkJCQkJCXRob3VnaHRzOiAzMDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgRFJNL0ZCREVWIEludGVyYWN0aW9uIEJ1ZyBGaXgqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgZml4IHJlbGF0ZWQgdG8gYGRybV9mYl9oZWxwZXJfaW9jdGxgIGFuZCBgZHJtX2ZiX2hlbHBlcl9mYl9kaXJ0eWAuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRoYXQgdGhpcyBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UsIHNwZWNpZmljYWxseSB0aHJvdWdoIHRoZSBgRkJJT19XQUlURk9SVlNZTkNgIGlvY3RsLCBhbmQgcG9zc2libHkgb3RoZXJzLiBHaXZlbiBzeXprYWxsZXImIzM5O3MgZnV6emluZyBvZiB0aGUgRFJNIHN1YnN5c3RlbSwgbGlrZSB3aXRoIHZnZW0gYW5kIHZrbXMsIHRoaXMgaXMgZGVmaW5pdGVseSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSB0cmlnZ2VyZWQgaW4gYSBmdXp6aW5nIGNhbXBhaWduLgoKVGhlIGNvcmUgb2YgdGhlIGlzc3VlIHNlZW1zIHRvIGJlIHRoZSBvcmRlciBvZiBvcGVyYXRpb25zIGluIHdhaXRpbmcgZm9yIGEgdmJsYW5rLiBTcGVjaWZpY2FsbHksIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIHdhcyBiZWluZyBjYWxsZWQgKmFmdGVyKiBhIGBkcm1fY3J0Y192YmxhbmtfZ2V0YCwgd2hpY2ggaW4gdHVybiwgd291bGQgY2FsbCBgZHJtX3ZibGFua19nZXRgICphZ2FpbiouIFRoYXQmIzM5O3MgaW5lZmZpY2llbnQgYW5kIHBvdGVudGlhbGx5IGJ1Z2d5LiBUaGlzIGlzIGEgY2xlYXIgZnVuY3Rpb25hbCBjaGFuZ2UsIG5vdCBqdXN0IGEgY29zbWV0aWMgb25lLgoKTXkgbmV4dCBzdGVwIGlzIHRvIGRpZyBpbnRvIHRoZSByZWxldmFudCBmdW5jdGlvbnMuIExldCYjMzk7cyBsb29rIGF0IGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgIGFuZCBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYC4gYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AgaXMgdGhlIGV4cG9ydGVkLCBwdWJsaWMgaW50ZXJmYWNlLCB1c2VkIGJ5IG51bWVyb3VzIERSTSBkcml2ZXJzLiBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYCBpcyB0aGUgaW50ZXJuYWwgaGVscGVyIGZ1bmN0aW9uLiBFdmVuIHRob3VnaCBpdCYjMzk7cyBpbnRlcm5hbCwgdGhlIGZhY3QgdGhhdCBpdCBpc24mIzM5O3QgYHN0YXRpY2AgbWVhbnMgaXQgdGVjaG5pY2FsbHkgaGFzIGEgc3ltYm9sLCBzbyBJIHNob3VsZCBpbmNsdWRlIGl0IGluIG15IHJldmlldy4KCkkgd2FudCB0byBmb2N1cyBvbiB0aGVzZSBzeW1ib2xzIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgaXMgaGFwcGVuaW5nOgoqICAgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgCiogICBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYAoqICAgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAKCkZpbmFsbHksIGEgcXVpY2sgY2hlY2sgb2YgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRFJNIGFuZCBGQl9IRUxQRVIgaXMgaW4gb3JkZXIsIGp1c3QgdG8gbWFrZSBzdXJlIHdlJiMzOTtyZSBub3QgZGVhbGluZyB3aXRoIHNvbWUgdW51c3VhbCBjb25maWd1cmF0aW9uIGRlcGVuZGVuY3kuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIERSTV9GQkRFVl9FTVVMQVRJT04mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZz0yOD1tZW51IFwmIzM0O1N1cHBvcnRlZCBEUk0gY2xpZW50c1wmIzM0O1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMzAtXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjMxOmNvbmZpZyBEUk1fRkJERVZfRU1VTEFUSU9OXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMyLVx0Ym9vbCBcJiMzNDtFbmFibGUgbGVnYWN5IGZiZGV2IHN1cHBvcnQgZm9yIHlvdXIgbW9kZXNldHRpbmcgZHJpdmVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTQ2MAoJCQkJCQkJb3V0cHV0OiAxOQoJCQkJCQkJdGhvdWdodHM6IDQwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBmcm9tIGFuIGV4cGVydCYjMzk7cyBwZXJzcGVjdGl2ZToKCioqRGl2aW5nIGludG8gdGhlIEZyYW1lYnVmZmVyIEVtdWxhdGlvbioqCgpIYW5nIG9uIGEgc2Vjb25k4oCmIEkmIzM5O20gc2VlaW5nIHRoaXMgYGRybV9mYl9oZWxwZXIuY2AgZmlsZSBhbmQgaXRzIGNvbXBpbGF0aW9uIHVuZGVyIGBDT05GSUdfRFJNX0ZCREVWX0VNVUxBVElPTmAuIFRoYXQmIzM5O3MgaW50ZXJlc3RpbmcsIGFuZCBpdCBpbW1lZGlhdGVseSB0cmlnZ2VycyBzb21lIGZsYWdzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aHkgdGhpcyBlbXVsYXRpb24gaXMgZXZlbiBoYXBwZW5pbmcuIExldCBtZSBxdWlja2x5IGp1bXAgb3ZlciB0byB0aGUgYGRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZWAuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGlzIGBkcm1fZmJkZXZfZW11bGF0aW9uYCBjb25maWcgb3B0aW9uIHRpZXMgaW50byB0aGUgYmlnZ2VyIHBpY3R1cmUgb2YgdGhlIERpcmVjdCBSZW5kZXJpbmcgTWFuYWdlciAoRFJNKSBhbmQgZnJhbWVidWZmZXJzLiBNeSBzcGlkZXktc2Vuc2UgdGVsbHMgbWUgdGhpcyBpcyBrZXkgdG8gaG93IHNvbWUgbGVnYWN5IGZyYW1lYnVmZmVyIGludGVyYWN0aW9ucyBhcmUgaGFuZGxlZCBpbiB0aGUgRFJNIHdvcmxkLCBhbmQgSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIHRoZSB1bmRlcmx5aW5nIGRlcGVuZGVuY2llcyBhbmQgY29uZmlndXJhdGlvbiBjaG9pY2VzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDAxOjEyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RybV9mYl9oZWxwZXImIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDE1NjggbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbkRvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3Q9MTA5PWZiZGV2IEhlbHBlciBGdW5jdGlvbnMgUmVmZXJlbmNlXG4tLVxuRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy1oZWxwZXJzLnJzdC0xMTEtXG5Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0OjExMjouLiBrZXJuZWwtZG9jOjogZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuY1xuRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy1oZWxwZXJzLnJzdC0xMTMtICAgOmRvYzogZmJkZXYgaGVscGVyc1xuRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy1oZWxwZXJzLnJzdC0xMTQtXG5Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0OjExNTouLiBrZXJuZWwtZG9jOjogaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oXG5Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0LTExNi0gICA6aW50ZXJuYWw6XG5Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0LTExNy1cbkRvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3Q6MTE4Oi4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jXG5Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0LTExOS0gICA6ZXhwb3J0OlxuLS1cbmRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZT0xNTk9ZHJtX2ttc19oZWxwZXItJChDT05GSUdfRFJNX1BBTkVMX0JSSURHRSkgJiM0Mzs9IGJyaWRnZS9wYW5lbC5vXG5kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGU6MTYwOmRybV9rbXNfaGVscGVyLSQoQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT04pICYjNDM7PSBkcm1fZmJfaGVscGVyLm9cbmRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZS0xNjEtb2JqLSQoQ09ORklHX0RSTV9LTVNfSEVMUEVSKSAmIzQzOz0gZHJtX2ttc19oZWxwZXIub1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmMtNDQtI2luY2x1ZGUgXHUwMDNjZHJtL2RybV9lZGlkLmhcdTAwM2VcbmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmM6NDU6I2luY2x1ZGUgXHUwMDNjZHJtL2RybV9mYl9oZWxwZXIuaFx1MDAzZVxuZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXkuYy00Ni0jaW5jbHVkZSBcdTAwM2Nkcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaFx1MDAzZVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmM9MTc0MT1pbnQgYW1kZ3B1X2Rpc3BsYXlfc3VzcGVuZF9oZWxwZXIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpXG4tLVxuZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXkuYy0xNzc2LVxuZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXkuYzoxNzc3Olx0XHRpZiAoIWRybV9mYl9oZWxwZXJfZ2VtX2lzX2ZiKGRldi1cdTAwM2VmYl9oZWxwZXIsIGZiLVx1MDAzZW9ialswXSkpIHtcbmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmMtMTc3OC1cdFx0XHRzdHJ1Y3QgYW1kZ3B1X2JvICpyb2JqID0gZ2VtX3RvX2FtZGdwdV9ibyhmYi1cdTAwM2VvYmpbMF0pO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9rbXMuYy0zMS0jaW5jbHVkZSBcdTAwM2Nkcm0vZHJtX2Rydi5oXHUwMDNlXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfa21zLmM6MzI6I2luY2x1ZGUgXHUwMDNjZHJtL2RybV9mYl9oZWxwZXIuaFx1MDAzZVxuZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5jLTMzLSNpbmNsdWRlIFwmIzM0O2FtZGdwdV91dmQuaFwmIzM0O1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2RybS5oPTE4PXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlO1xuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZHJtLmg6MTk6c3RydWN0IGRybV9mYl9oZWxwZXI7XG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9kcm0uaDoyMDpzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9zdXJmYWNlX3NpemU7XG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9kcm0uaC0yMS1cbi0tXG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9kcm0uaD01Nz1zdHJ1Y3QgYXJtYWRhX3ByaXZhdGUge1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2RybS5oLTc4LSNpZiBkZWZpbmVkKENPTkZJR19EUk1fRkJERVZfRU1VTEFUSU9OKVxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZHJtLmg6Nzk6aW50IGFybWFkYV9mYmRldl9kcml2ZXJfZmJkZXZfcHJvYmUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiaCxcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2RybS5oOjgwOlx0XHRcdFx0ICAgIHN0cnVjdCBkcm1fZmJfaGVscGVyX3N1cmZhY2Vfc2l6ZSAqc2l6ZXMpO1xuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZHJtLmgtODEtI2RlZmluZSBBUk1BREFfRkJERVZfRFJJVkVSX09QUyBcXFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmMtMTMtI2luY2x1ZGUgXHUwMDNjZHJtL2RybV9kcnYuaFx1MDAzZVxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYzoxNDojaW5jbHVkZSBcdTAwM2Nkcm0vZHJtX2ZiX2hlbHBlci5oXHUwMDNlXG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9mYmRldi5jLTE1LSNpbmNsdWRlIFx1MDAzY2RybS9kcm1fZm91cmNjLmhcdTAwM2Vcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9mYmRldi5jPTIzPXN0YXRpYyB2b2lkIGFybWFkYV9mYmRldl9mYl9kZXN0cm95KHN0cnVjdCBmYl9pbmZvICppbmZvKVxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYy0yNC17XG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9mYmRldi5jOjI1Olx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiaCA9IGluZm8tXHUwMDNlcGFyO1xuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYy0yNi1cbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmM6Mjc6XHRkcm1fZmJfaGVscGVyX2ZpbmkoZmJoKTtcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmMtMjgtXG4tLVxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYz0zND1zdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBhcm1hZGFfZmJfb3BzID0ge1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmMtNDAtXG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9mYmRldi5jOjQxOnN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9mdW5jcyBhcm1hZGFfZmJkZXZfaGVscGVyX2Z1bmNzO1xuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYy00Mi1cbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmM6NDM6aW50IGFybWFkYV9mYmRldl9kcml2ZXJfZmJkZXZfcHJvYmUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiaCxcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmM6NDQ6XHRcdFx0XHQgICAgc3RydWN0IGRybV9mYl9oZWxwZXJfc3VyZmFjZV9zaXplICpzaXplcylcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmMtNDUte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmMtMTAxLVxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYzoxMDI6XHRkcm1fZmJfaGVscGVyX2ZpbGxfaW5mbyhpbmZvLCBmYmgsIHNpemVzKTtcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmMtMTAzLVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy01LSNpbmNsdWRlIFx1MDAzY2RybS9kcm1fZHJ2LmhcdTAwM2VcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzo2OiNpbmNsdWRlIFx1MDAzY2RybS9kcm1fZmJfaGVscGVyLmhcdTAwM2VcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy03LSNpbmNsdWRlIFx1MDAzY2RybS9kcm1fZm91cmNjLmhcdTAwM2Vcbi0tXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM9MTY9c3RhdGljIHZvaWQgZHJtX2ZiZGV2X2NsaWVudF9mcmVlKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTE3LXtcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzoxODpcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBkcm1fZmJfaGVscGVyX2Zyb21fY2xpZW50KGNsaWVudCk7XG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtMTktXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM6MjA6XHRkcm1fZmJfaGVscGVyX3VucHJlcGFyZShmYl9oZWxwZXIpO1xuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTIxLVx0a2ZyZWUoZmJfaGVscGVyKTtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM9MjQ9c3RhdGljIHZvaWQgZHJtX2ZiZGV2X2NsaWVudF91bnJlZ2lzdGVyKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTI1LXtcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzoyNjpcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBkcm1fZmJfaGVscGVyX2Zyb21fY2xpZW50KGNsaWVudCk7XG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtMjctXG4tLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTMxLVx0XHQgKi9cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzozMjpcdFx0ZHJtX2ZiX2hlbHBlcl91bnJlZ2lzdGVyX2luZm8oZmJfaGVscGVyKTtcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy0zMy1cdH0gZWxzZSB7XG4tLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jPTQxPXN0YXRpYyBpbnQgZHJtX2ZiZGV2X2NsaWVudF9yZXN0b3JlKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCBib29sIGZvcmNlKVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTQyLXtcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzo0MzpcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBkcm1fZmJfaGVscGVyX2Zyb21fY2xpZW50KGNsaWVudCk7XG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtNDQtXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM6NDU6XHRkcm1fZmJfaGVscGVyX3Jlc3RvcmVfZmJkZXZfbW9kZV91bmxvY2tlZChmYl9oZWxwZXIsIGZvcmNlKTtcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy00Ni1cbi0tXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM9NTA9c3RhdGljIGludCBkcm1fZmJkZXZfY2xpZW50X2hvdHBsdWcoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQpXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtNTEte1xuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjUyOlx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9IGRybV9mYl9oZWxwZXJfZnJvbV9jbGllbnQoY2xpZW50KTtcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy01My1cdHN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjbGllbnQtXHUwMDNlZGV2O1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy01Ni1cdGlmIChkZXYtXHUwMDNlZmJfaGVscGVyKVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjU3Olx0XHRyZXR1cm4gZHJtX2ZiX2hlbHBlcl9ob3RwbHVnX2V2ZW50KGRldi1cdTAwM2VmYl9oZWxwZXIpO1xuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTU4LVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjU5Olx0cmV0ID0gZHJtX2ZiX2hlbHBlcl9pbml0KGRldiwgZmJfaGVscGVyKTtcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy02MC1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTY1LVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjY2Olx0cmV0ID0gZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZyhmYl9oZWxwZXIpO1xuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTY3LVx0aWYgKHJldClcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzo2ODpcdFx0Z290byBlcnJfZHJtX2ZiX2hlbHBlcl9maW5pO1xuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTY5LVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy03MS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzo3MjplcnJfZHJtX2ZiX2hlbHBlcl9maW5pOlxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjczOlx0ZHJtX2ZiX2hlbHBlcl9maW5pKGZiX2hlbHBlcik7XG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtNzQtZXJyX2RybV9lcnI6XG4tLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jPTc5PXN0YXRpYyBpbnQgZHJtX2ZiZGV2X2NsaWVudF9zdXNwZW5kKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTgwLXtcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzo4MTpcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBkcm1fZmJfaGVscGVyX2Zyb21fY2xpZW50KGNsaWVudCk7XG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtODItXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM6ODM6XHRkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kX3VubG9ja2VkKGZiX2hlbHBlciwgdHJ1ZSk7XG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtODQtXG4tLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jPTg4PXN0YXRpYyBpbnQgZHJtX2ZiZGV2X2NsaWVudF9yZXN1bWUoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQpXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtODkte1xuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjkwOlx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9IGRybV9mYl9oZWxwZXJfZnJvbV9jbGllbnQoY2xpZW50KTtcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy05MS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzo5MjpcdGRybV9mYl9oZWxwZXJfc2V0X3N1c3BlbmRfdW5sb2NrZWQoZmJfaGVscGVyLCBmYWxzZSk7XG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtOTMtXG4tLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jPTEyNj1pbnQgZHJtX2ZiZGV2X2NsaWVudF9zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvICpmb3JtYXQpXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtMTI3LXtcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzoxMjg6XHRzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyO1xuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTEyOS1cdHVuc2lnbmVkIGludCBjb2xvcl9tb2RlO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy0xNTktXHRcdHJldHVybiAtRU5PTUVNO1xuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjE2MDpcdGRybV9mYl9oZWxwZXJfcHJlcGFyZShkZXYsIGZiX2hlbHBlciwgY29sb3JfbW9kZSwgTlVMTCk7XG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtMTYxLVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy0xNzItZXJyX2RybV9jbGllbnRfaW5pdDpcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzoxNzM6XHRkcm1fZmJfaGVscGVyX3VucHJlcGFyZShmYl9oZWxwZXIpO1xuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTE3NC1cdGtmcmVlKGZiX2hlbHBlcik7XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9hdXRoLmM9NDMwPUVYUE9SVF9TWU1CT0woZHJtX21hc3Rlcl9wdXQpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9hdXRoLmMtNDMxLVxuZHJpdmVycy9ncHUvZHJtL2RybV9hdXRoLmM6NDMyOi8qIFVzZWQgYnkgZHJtX2NsaWVudCBhbmQgZHJtX2ZiX2hlbHBlciAqL1xuZHJpdmVycy9ncHUvZHJtL2RybV9hdXRoLmMtNDMzLWJvb2wgZHJtX21hc3Rlcl9pbnRlcm5hbF9hY3F1aXJlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9hdXRoLmM9NDQzPUVYUE9SVF9TWU1CT0woZHJtX21hc3Rlcl9pbnRlcm5hbF9hY3F1aXJlKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fYXV0aC5jLTQ0NC1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fYXV0aC5jOjQ0NTovKiBVc2VkIGJ5IGRybV9jbGllbnQgYW5kIGRybV9mYl9oZWxwZXIgKi9cbmRyaXZlcnMvZ3B1L2RybS9kcm1fYXV0aC5jLTQ0Ni12b2lkIGRybV9tYXN0ZXJfaW50ZXJuYWxfcmVsZWFzZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMzYtI2luY2x1ZGUgXHUwMDNjZHJtL2RybV9kcnYuaFx1MDAzZVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzozNzojaW5jbHVkZSBcdTAwM2Nkcm0vZHJtX2ZiX2hlbHBlci5oXHUwMDNlXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTM4LSNpbmNsdWRlIFx1MDAzY2RybS9kcm1fZm91cmNjLmhcdTAwM2Vcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jPTc1PU1PRFVMRV9QQVJNX0RFU0MoZHJtX2xlYWtfZmJkZXZfc21lbSxcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTk0LSAqIEl0IGlzIHBvc3NpYmxlLCB0aG91Z2ggcGVyaGFwcyBzb21ld2hhdCB0cmlja3ksIHRvIGltcGxlbWVudCByYWNlLWZyZWVcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6OTU6ICogaG90cGx1ZyBkZXRlY3Rpb24gdXNpbmcgdGhlIGZiZGV2IGhlbHBlcnMuIFRoZSBkcm1fZmJfaGVscGVyX3ByZXBhcmUoKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05Ni0gKiBoZWxwZXIgbXVzdCBiZSBjYWxsZWQgZmlyc3QgdG8gaW5pdGlhbGl6ZSB0aGUgbWluaW11bSByZXF1aXJlZCB0byBtYWtlXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMDEtICogZW5jb2RlcnMgYW5kIGNvbm5lY3RvcnMuIFRvIGZpbmlzaCB1cCB0aGUgZmJkZXYgaGVscGVyIGluaXRpYWxpemF0aW9uLCB0aGVcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTAyOiAqIGRybV9mYl9oZWxwZXJfaW5pdCgpIGZ1bmN0aW9uIGlzIGNhbGxlZC4gVG8gcHJvYmUgZm9yIGFsbCBhdHRhY2hlZCBkaXNwbGF5c1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMDMtICogYW5kIHNldCB1cCBhbiBpbml0aWFsIGNvbmZpZ3VyYXRpb24gdXNpbmcgdGhlIGRldGVjdGVkIGhhcmR3YXJlLCBkcml2ZXJzXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjEwNDogKiBzaG91bGQgY2FsbCBkcm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmlnKCkuXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEwNS0gKlxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMDYtICogSWYgXHUwMDI2ZHJtX2ZyYW1lYnVmZmVyX2Z1bmNzLmRpcnR5IGlzIHNldCwgdGhlXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjEwNzogKiBkcm1fZmJfaGVscGVyX3tjZmIsc3lzfV97d3JpdGUsZmlsbHJlY3QsY29weWFyZWEsaW1hZ2VibGl0fSBmdW5jdGlvbnMgd2lsbFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxMDg6ICogYWNjdW11bGF0ZSBjaGFuZ2VzIGFuZCBzY2hlZHVsZSBcdTAwMjZkcm1fZmJfaGVscGVyLmRpcnR5X3dvcmsgdG8gcnVuIHJpZ2h0XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEwOS0gKiBhd2F5LiBUaGlzIHdvcmtlciB0aGVuIGNhbGxzIHRoZSBkaXJ0eSgpIGZ1bmN0aW9uIGVuc3VyaW5nIHRoYXQgaXQgd2lsbFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMTAtICogYWx3YXlzIHJ1biBpbiBwcm9jZXNzIGNvbnRleHQgc2luY2UgdGhlIGZiXyooKSBmdW5jdGlvbiBjb3VsZCBiZSBydW5uaW5nIGluXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjExMTogKiBhdG9taWMgY29udGV4dC4gSWYgZHJtX2ZiX2hlbHBlcl9kZWZlcnJlZF9pbygpIGlzIHVzZWQgYXMgdGhlIGRlZmVycmVkX2lvXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTExMi0gKiBjYWxsYmFjayBpdCB3aWxsIGFsc28gc2NoZWR1bGUgZGlydHlfd29yayB3aXRoIHRoZSBkYW1hZ2UgY29sbGVjdGVkIGZyb20gdGhlXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYz0xMTY9c3RhdGljIGludFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxMTc6X19kcm1fZmJfaGVscGVyX3Jlc3RvcmVfZmJkZXZfbW9kZV91bmxvY2tlZChzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMTgtXHRcdFx0XHRcdCAgICBib29sIGZvcmNlKVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTMzLVx0XHQgKiB0byBiZSBoZWxkLiBCdXQgZm9yIGZvcmNlZCByZXN0b3JlcyB3ZSYjMzk7cmUgaW50ZW50aW9uYWxseVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxMzQ6XHRcdCAqIHJhY2luZyBoZXJlLCBzZWUgZHJtX2ZiX2hlbHBlcl9zZXRfcGFyKCkuXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEzNS1cdFx0ICovXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xNDYtXHRpZiAoZG9fZGVsYXllZClcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTQ3Olx0XHRkcm1fZmJfaGVscGVyX2hvdHBsdWdfZXZlbnQoZmJfaGVscGVyKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTQ4LVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTU1LS8qKlxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxNTY6ICogZHJtX2ZiX2hlbHBlcl9yZXN0b3JlX2ZiZGV2X21vZGVfdW5sb2NrZWQgLSByZXN0b3JlIGZiZGV2IGNvbmZpZ3VyYXRpb25cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTU3LSAqIEBmYl9oZWxwZXI6IGRyaXZlci1hbGxvY2F0ZWQgZmJkZXYgaGVscGVyLCBjYW4gYmUgTlVMTFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTY2LSAqL1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxNjc6aW50IGRybV9mYl9oZWxwZXJfcmVzdG9yZV9mYmRldl9tb2RlX3VubG9ja2VkKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIsIGJvb2wgZm9yY2UpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE2OC17XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjE2OTpcdHJldHVybiBfX2RybV9mYl9oZWxwZXJfcmVzdG9yZV9mYmRldl9tb2RlX3VubG9ja2VkKGZiX2hlbHBlciwgZm9yY2UpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xNzAtfVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxNzE6RVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX3Jlc3RvcmVfZmJkZXZfbW9kZV91bmxvY2tlZCk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE3Mi1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTczOnN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZHBtcyhzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgaW50IGRwbXNfbW9kZSlcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTc0LXtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTc1Olx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9IGluZm8tXHUwMDNlcGFyO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xNzYtXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xODItLyoqXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjE4MzogKiBkcm1fZmJfaGVscGVyX2JsYW5rIC0gaW1wbGVtZW50YXRpb24gZm9yIFx1MDAyNmZiX29wcy5mYl9ibGFua1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xODQtICogQGJsYW5rOiBkZXNpcmVkIGJsYW5raW5nIHN0YXRlXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xODYtICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjE4NzppbnQgZHJtX2ZiX2hlbHBlcl9ibGFuayhpbnQgYmxhbmssIHN0cnVjdCBmYl9pbmZvICppbmZvKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xODgte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTk0LVx0Y2FzZSBGQl9CTEFOS19VTkJMQU5LOlxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxOTU6XHRcdGRybV9mYl9oZWxwZXJfZHBtcyhpbmZvLCBEUk1fTU9ERV9EUE1TX09OKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTk2LVx0XHRicmVhaztcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE5OC1cdGNhc2UgRkJfQkxBTktfTk9STUFMOlxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxOTk6XHRcdGRybV9mYl9oZWxwZXJfZHBtcyhpbmZvLCBEUk1fTU9ERV9EUE1TX1NUQU5EQlkpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMDAtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMjAyLVx0Y2FzZSBGQl9CTEFOS19IU1lOQ19TVVNQRU5EOlxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoyMDM6XHRcdGRybV9mYl9oZWxwZXJfZHBtcyhpbmZvLCBEUk1fTU9ERV9EUE1TX1NUQU5EQlkpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMDQtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMjA2LVx0Y2FzZSBGQl9CTEFOS19WU1lOQ19TVVNQRU5EOlxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoyMDc6XHRcdGRybV9mYl9oZWxwZXJfZHBtcyhpbmZvLCBEUk1fTU9ERV9EUE1TX1NVU1BFTkQpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMDgtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMjEwLVx0Y2FzZSBGQl9CTEFOS19QT1dFUkRPV046XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjIxMTpcdFx0ZHJtX2ZiX2hlbHBlcl9kcG1zKGluZm8sIERSTV9NT0RFX0RQTVNfT0ZGKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMjEyLVx0XHRicmVhaztcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTIxNS19XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjIxNjpFWFBPUlRfU1lNQk9MKGRybV9mYl9oZWxwZXJfYmxhbmspO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMTctXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjIxODpzdGF0aWMgdm9pZCBkcm1fZmJfaGVscGVyX3Jlc3VtZV93b3JrZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMTkte1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoyMjA6XHRzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBkcm1fZmJfaGVscGVyLFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMjEtXHRcdFx0XHRcdFx0ICAgIHJlc3VtZV93b3JrKTtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTIyNy1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MjI4OnN0YXRpYyBpbnQgZmluZF9jcnRjX2luZGV4X2F0b21pYyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMjkte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMjc4LVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoyNzk6c3RhdGljIGludCBmaW5kX2NydGNfaW5kZXhfbGVnYWN5KHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTI4MC17XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yOTctXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjI5ODpzdGF0aWMgaW50IGRybV9mYl9oZWxwZXJfZmluZF9jcnRjX2luZGV4KHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTI5OS17XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zMTQtXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjMxNTpzdGF0aWMgdm9pZCBkcm1fZmJfaGVscGVyX2ZiX2RpcnR5KHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTMxNi17XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zMjQtXHRtdXRleF9sb2NrKFx1MDAyNmhlbHBlci1cdTAwM2Vsb2NrKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MzI1Olx0Y3J0Y19pbmRleCA9IGRybV9mYl9oZWxwZXJfZmluZF9jcnRjX2luZGV4KGhlbHBlcik7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTMyNi1cdGlmIChjcnRjX2luZGV4IFx1MDAzZT0gMClcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTM1Ny1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MzU4OnN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZGFtYWdlX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zNTkte1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzozNjA6XHRzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBkcm1fZmJfaGVscGVyLCBkYW1hZ2Vfd29yayk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTM2MS1cbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTM2NC1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MzY1Olx0ZHJtX2ZiX2hlbHBlcl9mYl9kaXJ0eShoZWxwZXIpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zNjYtfVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMzY4LS8qKlxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzozNjk6ICogZHJtX2ZiX2hlbHBlcl9wcmVwYXJlIC0gc2V0dXAgYSBkcm1fZmJfaGVscGVyIHN0cnVjdHVyZVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zNzAtICogQGRldjogRFJNIGRldmljZVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMzc3LSAqL1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzozNzg6dm9pZCBkcm1fZmJfaGVscGVyX3ByZXBhcmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlcixcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMzc5LVx0XHRcdCAgIHVuc2lnbmVkIGludCBwcmVmZXJyZWRfYnBwLFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzozODA6XHRcdFx0ICAgY29uc3Qgc3RydWN0IGRybV9mYl9oZWxwZXJfZnVuY3MgKmZ1bmNzKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zODEte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMzk2LVx0c3Bpbl9sb2NrX2luaXQoXHUwMDI2aGVscGVyLVx1MDAzZWRhbWFnZV9sb2NrKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6Mzk3Olx0SU5JVF9XT1JLKFx1MDAyNmhlbHBlci1cdTAwM2VyZXN1bWVfd29yaywgZHJtX2ZiX2hlbHBlcl9yZXN1bWVfd29ya2VyKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6Mzk4Olx0SU5JVF9XT1JLKFx1MDAyNmhlbHBlci1cdTAwM2VkYW1hZ2Vfd29yaywgZHJtX2ZiX2hlbHBlcl9kYW1hZ2Vfd29yayk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTM5OS1cdGhlbHBlci1cdTAwM2VkYW1hZ2VfY2xpcC54MSA9IGhlbHBlci1cdTAwM2VkYW1hZ2VfY2xpcC55MSA9IH4wO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDA0LX1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NDA1OkVYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9wcmVwYXJlKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDA2LVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MDctLyoqXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQwODogKiBkcm1fZmJfaGVscGVyX3VucHJlcGFyZSAtIGNsZWFuIHVwIGEgZHJtX2ZiX2hlbHBlciBzdHJ1Y3R1cmVcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDA5LSAqIEBmYl9oZWxwZXI6IGRyaXZlci1hbGxvY2F0ZWQgZmJkZXYgaGVscGVyIHN0cnVjdHVyZSB0byBzZXQgdXBcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDEwLSAqXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQxMTogKiBDbGVhbnMgdXAgdGhlIGZyYW1lYnVmZmVyIGhlbHBlci4gSW52ZXJzZSBvZiBkcm1fZmJfaGVscGVyX3ByZXBhcmUoKS5cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDEyLSAqL1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo0MTM6dm9pZCBkcm1fZmJfaGVscGVyX3VucHJlcGFyZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MTQte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDE2LX1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NDE3OkVYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl91bnByZXBhcmUpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MTgtXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQxOS0vKipcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NDIwOiAqIGRybV9mYl9oZWxwZXJfaW5pdCAtIGluaXRpYWxpemUgYSBcdTAwMjZzdHJ1Y3QgZHJtX2ZiX2hlbHBlclxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MjEtICogQGRldjogZHJtIGRldmljZVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDI1LSAqIE5vdGUgdGhhdCB0aGlzIHdvbiYjMzk7dCB5ZXQgdG91Y2ggdGhlIGhhcmR3YXJlICh0aHJvdWdoIHRoZSBkcml2ZXIgaW50ZXJmYWNlcylcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NDI2OiAqIG5vciByZWdpc3RlciB0aGUgZmJkZXYuIFRoaXMgaXMgb25seSBkb25lIGluIGRybV9mYl9oZWxwZXJfaW5pdGlhbF9jb25maWcoKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MjctICogdG8gYWxsb3cgZHJpdmVyIHdyaXRlcyBtb3JlIGNvbnRyb2wgb3ZlciB0aGUgZXhhY3QgaW5pdCBzZXF1ZW5jZS5cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDI4LSAqXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQyOTogKiBEcml2ZXJzIG11c3QgY2FsbCBkcm1fZmJfaGVscGVyX3ByZXBhcmUoKSBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLlxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MzAtICpcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQzMy0gKi9cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NDM0OmludCBkcm1fZmJfaGVscGVyX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldixcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NDM1Olx0XHQgICAgICAgc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcilcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDM2LXtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQ0MC19XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQ0MTpFWFBPUlRfU1lNQk9MKGRybV9mYl9oZWxwZXJfaW5pdCk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQ0Mi1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NDQzOnN0YXRpYyBzdHJ1Y3QgZmJfaW5mbyAqZHJtX2ZiX2hlbHBlcl9hbGxvY19pbmZvKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQ0NC17XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00NzAtXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQ3MTpzdGF0aWMgdm9pZCBkcm1fZmJfaGVscGVyX3JlbGVhc2VfaW5mbyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00NzIte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDg1LS8qKlxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo0ODY6ICogZHJtX2ZiX2hlbHBlcl91bnJlZ2lzdGVyX2luZm8gLSB1bnJlZ2lzdGVyIGZiX2luZm8gZnJhbWVidWZmZXIgZGV2aWNlXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQ4Ny0gKiBAZmJfaGVscGVyOiBkcml2ZXItYWxsb2NhdGVkIGZiZGV2IGhlbHBlciwgbXVzdCBub3QgYmUgTlVMTFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDkwLSAqIGZyYW1lYnVmZmVyIGRldmljZS4gVGhpcyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgcmVsZWFzaW5nIGFsbCByZXNvdXJjZXMgZm9yXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQ5MTogKiBAZmJfaGVscGVyIGJ5IGNhbGxpbmcgZHJtX2ZiX2hlbHBlcl9maW5pKCkuXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQ5Mi0gKi9cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NDkzOnZvaWQgZHJtX2ZiX2hlbHBlcl91bnJlZ2lzdGVyX2luZm8oc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcilcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDk0LXtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQ5Ni19XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQ5NzpFWFBPUlRfU1lNQk9MKGRybV9mYl9oZWxwZXJfdW5yZWdpc3Rlcl9pbmZvKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDk4LVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00OTktLyoqXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjUwMDogKiBkcm1fZmJfaGVscGVyX2ZpbmkgLSBmaW5pYWxpemUgYSBcdTAwMjZzdHJ1Y3QgZHJtX2ZiX2hlbHBlclxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy01MDEtICogQGZiX2hlbHBlcjogZHJpdmVyLWFsbG9jYXRlZCBmYmRldiBoZWxwZXIsIGNhbiBiZSBOVUxMXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy01MDQtICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjUwNTp2b2lkIGRybV9mYl9oZWxwZXJfZmluaShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy01MDYte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNTE3LVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo1MTg6XHRkcm1fZmJfaGVscGVyX3JlbGVhc2VfaW5mbyhmYl9oZWxwZXIpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy01MTktfVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo1MjA6RVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX2ZpbmkpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy01MjEtXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjUyMjpzdGF0aWMgdm9pZCBkcm1fZmJfaGVscGVyX2FkZF9kYW1hZ2VfY2xpcChzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLCB1MzIgeCwgdTMyIHksXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTUyMy1cdFx0XHRcdFx0ICB1MzIgd2lkdGgsIHUzMiBoZWlnaHQpXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy01MzUtXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjUzNjpzdGF0aWMgdm9pZCBkcm1fZmJfaGVscGVyX2RhbWFnZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLCB1MzIgeCwgdTMyIHksXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTUzNy1cdFx0XHRcdCB1MzIgd2lkdGgsIHUzMiBoZWlnaHQpXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy01NDktXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjU1MDpcdGRybV9mYl9oZWxwZXJfYWRkX2RhbWFnZV9jbGlwKGhlbHBlciwgeCwgeSwgd2lkdGgsIGhlaWdodCk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTU1MS1cbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTU1OS0gKi9cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NTYwOnN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfbWVtb3J5X3JhbmdlX3RvX2NsaXAoc3RydWN0IGZiX2luZm8gKmluZm8sIG9mZl90IG9mZiwgc2l6ZV90IGxlbixcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNTYxLVx0XHRcdFx0XHQgICAgICAgc3RydWN0IGRybV9yZWN0ICpjbGlwKVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNTkyLS8qIERvbiYjMzk7dCB1c2UgaW4gbmV3IGNvZGUuICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjU5Mzp2b2lkIGRybV9mYl9oZWxwZXJfZGFtYWdlX3JhbmdlKHN0cnVjdCBmYl9pbmZvICppbmZvLCBvZmZfdCBvZmYsIHNpemVfdCBsZW4pXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTU5NC17XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjU5NTpcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBpbmZvLVx1MDAzZXBhcjtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNTk2LVx0c3RydWN0IGRybV9yZWN0IGRhbWFnZV9hcmVhO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy01OTctXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjU5ODpcdGRybV9mYl9oZWxwZXJfbWVtb3J5X3JhbmdlX3RvX2NsaXAoaW5mbywgb2ZmLCBsZW4sIFx1MDAyNmRhbWFnZV9hcmVhKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NTk5Olx0ZHJtX2ZiX2hlbHBlcl9kYW1hZ2UoZmJfaGVscGVyLCBkYW1hZ2VfYXJlYS54MSwgZGFtYWdlX2FyZWEueTEsXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTYwMC1cdFx0XHQgICAgIGRybV9yZWN0X3dpZHRoKFx1MDAyNmRhbWFnZV9hcmVhKSxcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTYwMi19XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjYwMzpFWFBPUlRfU1lNQk9MKGRybV9mYl9oZWxwZXJfZGFtYWdlX3JhbmdlKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjA0LVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02MDUtLyogRG9uJiMzOTt0IHVzZSBpbiBuZXcgY29kZS4gKi9cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NjA2OnZvaWQgZHJtX2ZiX2hlbHBlcl9kYW1hZ2VfYXJlYShzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgdTMyIHgsIHUzMiB5LCB1MzIgd2lkdGgsIHUzMiBoZWlnaHQpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTYwNy17XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjYwODpcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBpbmZvLVx1MDAzZXBhcjtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjA5LVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2MTA6XHRkcm1fZmJfaGVscGVyX2RhbWFnZShmYl9oZWxwZXIsIHgsIHksIHdpZHRoLCBoZWlnaHQpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02MTEtfVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2MTI6RVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX2RhbWFnZV9hcmVhKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjEzLVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjE1LS8qKlxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2MTY6ICogZHJtX2ZiX2hlbHBlcl9kZWZlcnJlZF9pbygpIC0gZmJkZXYgZGVmZXJyZWRfaW8gY2FsbGJhY2sgZnVuY3Rpb25cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjE3LSAqIEBpbmZvOiBmYl9pbmZvIHN0cnVjdCBwb2ludGVyXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02MjItICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjYyMzp2b2lkIGRybV9mYl9oZWxwZXJfZGVmZXJyZWRfaW8oc3RydWN0IGZiX2luZm8gKmluZm8sIHN0cnVjdCBsaXN0X2hlYWQgKnBhZ2VyZWZsaXN0KVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02MjQte1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2MjU6XHRzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyID0gaW5mby1cdTAwM2VwYXI7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTYyNi1cdHVuc2lnbmVkIGxvbmcgc3RhcnQsIGVuZCwgbWluX29mZiwgbWF4X29mZiwgdG90YWxfc2l6ZTtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTY1MC1cdGlmIChtaW5fb2ZmIFx1MDAzYyBtYXhfb2ZmKSB7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjY1MTpcdFx0ZHJtX2ZiX2hlbHBlcl9tZW1vcnlfcmFuZ2VfdG9fY2xpcChpbmZvLCBtaW5fb2ZmLCBtYXhfb2ZmIC0gbWluX29mZiwgXHUwMDI2ZGFtYWdlX2FyZWEpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2NTI6XHRcdGRybV9mYl9oZWxwZXJfZGFtYWdlKGhlbHBlciwgZGFtYWdlX2FyZWEueDEsIGRhbWFnZV9hcmVhLnkxLFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02NTMtXHRcdFx0XHQgICAgIGRybV9yZWN0X3dpZHRoKFx1MDAyNmRhbWFnZV9hcmVhKSxcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTY1Ni19XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjY1NzpFWFBPUlRfU1lNQk9MKGRybV9mYl9oZWxwZXJfZGVmZXJyZWRfaW8pO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02NTgtI2VuZGlmXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02NjAtLyoqXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjY2MTogKiBkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kIC0gd3JhcHBlciBhcm91bmQgZmJfc2V0X3N1c3BlbmRcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjYyLSAqIEBmYl9oZWxwZXI6IGRyaXZlci1hbGxvY2F0ZWQgZmJkZXYgaGVscGVyLCBjYW4gYmUgTlVMTFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjY1LSAqIEEgd3JhcHBlciBhcm91bmQgZmJfc2V0X3N1c3BlbmQgaW1wbGVtZW50ZWQgYnkgZmJkZXYgY29yZS5cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NjY2OiAqIFVzZSBkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kX3VubG9ja2VkKCkgaWYgeW91IGRvbiYjMzk7dCBuZWVkIHRvIHRha2VcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjY3LSAqIHRoZSBsb2NrIHlvdXJzZWxmXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTY2OC0gKi9cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NjY5OnZvaWQgZHJtX2ZiX2hlbHBlcl9zZXRfc3VzcGVuZChzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLCBib29sIHN1c3BlbmQpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTY3MC17XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02NzgtfVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2Nzk6RVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjgwLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02ODEtLyoqXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjY4MjogKiBkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kX3VubG9ja2VkIC0gd3JhcHBlciBhcm91bmQgZmJfc2V0X3N1c3BlbmQgdGhhdCBhbHNvXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTY4My0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZXMgdGhlIGNvbnNvbGUgbG9ja1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjk0LSAqXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjY5NTogKiBVc2UgZHJtX2ZiX2hlbHBlcl9zZXRfc3VzcGVuZCgpIGlmIHlvdSBuZWVkIHRvIHRha2UgdGhlIGxvY2sgeW91cnNlbGYuXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTY5Ni0gKi9cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6Njk3OnZvaWQgZHJtX2ZiX2hlbHBlcl9zZXRfc3VzcGVuZF91bmxvY2tlZChzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02OTgtXHRcdFx0XHRcdGJvb2wgc3VzcGVuZClcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTcxMS1cdFx0ICogQ2FuY2VsIHBlbmRpbmcgZGFtYWdlIHdvcmsuIER1cmluZyBHUFUgcmVzZXQsIFZCbGFua1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo3MTI6XHRcdCAqIGludGVycnVwdHMgYXJlIGRpc2FibGVkIGFuZCBkcm1fZmJfaGVscGVyX2ZiX2RpcnR5KClcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNzEzLVx0XHQgKiB3b3VsZCB3YWl0IGZvciBWQmxhbmsgdGltZW91dCBvdGhlcndpc2UuXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy03MjgtXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjcyOTpcdGRybV9mYl9oZWxwZXJfc2V0X3N1c3BlbmQoZmJfaGVscGVyLCBzdXNwZW5kKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNzMwLVx0Y29uc29sZV91bmxvY2soKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNzMxLX1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NzMyOkVYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9zZXRfc3VzcGVuZF91bmxvY2tlZCk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTczMy1cbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jPTc2Nj1zdGF0aWMgaW50IHNldGNtYXBfbGVnYWN5KHN0cnVjdCBmYl9jbWFwICpjbWFwLCBzdHJ1Y3QgZmJfaW5mbyAqaW5mbylcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNzY3LXtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NzY4Olx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9IGluZm8tXHUwMDNlcGFyO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy03NjktXHRzdHJ1Y3QgZHJtX21vZGVfc2V0ICptb2Rlc2V0O1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9ODQ5PXN0YXRpYyBpbnQgc2V0Y21hcF9hdG9taWMoc3RydWN0IGZiX2NtYXAgKmNtYXAsIHN0cnVjdCBmYl9pbmZvICppbmZvKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy04NTAte1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo4NTE6XHRzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyID0gaW5mby1cdTAwM2VwYXI7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTg1Mi1cdHN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBmYl9oZWxwZXItXHUwMDNlZGV2O1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtOTM3LS8qKlxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo5Mzg6ICogZHJtX2ZiX2hlbHBlcl9zZXRjbWFwIC0gaW1wbGVtZW50YXRpb24gZm9yIFx1MDAyNmZiX29wcy5mYl9zZXRjbWFwXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTkzOS0gKiBAY21hcDogY21hcCB0byBzZXRcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTk0MS0gKi9cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6OTQyOmludCBkcm1fZmJfaGVscGVyX3NldGNtYXAoc3RydWN0IGZiX2NtYXAgKmNtYXAsIHN0cnVjdCBmYl9pbmZvICppbmZvKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05NDMte1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo5NDQ6XHRzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyID0gaW5mby1cdTAwM2VwYXI7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTk0NS1cdHN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBmYl9oZWxwZXItXHUwMDNlZGV2O1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtOTcyLX1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6OTczOkVYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9zZXRjbWFwKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtOTc0LVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05NzUtLyoqXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjk3NjogKiBkcm1fZmJfaGVscGVyX2lvY3RsIC0gbGVnYWN5IGlvY3RsIGltcGxlbWVudGF0aW9uXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTk3Ny0gKiBAaW5mbzogZmJkZXYgcmVnaXN0ZXJlZCBieSB0aGUgaGVscGVyXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05ODMtICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjk4NDppbnQgZHJtX2ZiX2hlbHBlcl9pb2N0bChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgdW5zaWduZWQgaW50IGNtZCxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtOTg1LVx0XHRcdHVuc2lnbmVkIGxvbmcgYXJnKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05ODYte1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo5ODc6XHRzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyID0gaW5mby1cdTAwM2VwYXI7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTk4OC1cdGludCByZXQgPSAwO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTAxNy19XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjEwMTg6RVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX2lvY3RsKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTAxOS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9MTAyMD1zdGF0aWMgYm9vbCBkcm1fZmJfcGl4ZWxfZm9ybWF0X2VxdWFsKGNvbnN0IHN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyAqdmFyXzEsXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMDM4LVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxMDM5OnN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZmlsbF9waXhlbF9mbXQoc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIsXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEwNDAtXHRcdFx0XHRcdCBjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvICpmb3JtYXQpXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYz0xMTAxPXN0YXRpYyB2b2lkIF9fZmlsbF92YXIoc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIsIHN0cnVjdCBmYl9pbmZvICppbmZvLFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTEyNC0vKipcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTEyNTogKiBkcm1fZmJfaGVscGVyX2NoZWNrX3ZhciAtIGltcGxlbWVudGF0aW9uIGZvciBcdTAwMjZmYl9vcHMuZmJfY2hlY2tfdmFyXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTExMjYtICogQHZhcjogc2NyZWVuaW5mbyB0byBjaGVja1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTEyOC0gKi9cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTEyOTppbnQgZHJtX2ZiX2hlbHBlcl9jaGVja192YXIoc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIsXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTExMzAtXHRcdFx0ICAgIHN0cnVjdCBmYl9pbmZvICppbmZvKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMTMxLXtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTEzMjpcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBpbmZvLVx1MDAzZXBhcjtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTEzMy1cdHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gZmJfaGVscGVyLVx1MDAzZWZiO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTIwMy1cdCAgICAhdmFyLVx1MDAzZWJsdWUubXNiX3JpZ2h0IFx1MDAyNlx1MDAyNiAhdmFyLVx1MDAzZXRyYW5zcC5tc2JfcmlnaHQpIHtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDAxOjEyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4MDcwCgkJCQkJCQlvdXRwdXQ6IDIwCgkJCQkJCQl0aG91Z2h0czogOTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBEUk0gQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBgQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT05gIGlzIGRlZmluaXRlbHkgdGhlIGtleSBjb25maWd1cmF0aW9uIGl0ZW0gdGhhdCBicmluZ3MgaW4gYGRybV9mYl9oZWxwZXIuY2AuIFRoYXQmIzM5O3MgdGhlIHN0YXJ0aW5nIHBvaW50LiBCdXQsIGhvbGQgb24gYSBzZWNvbmQuLi4gdGhlIHBhdGNoIGFsc28gdG91Y2hlcyBgZHJtX2NsaWVudF9tb2Rlc2V0LmNgIGFuZCBgZHJtX3ZibGFuay5jYC4gIEhtbSwgdGhhdCYjMzk7cyBpbnRlcmVzdGluZy4gSSBrbm93IGBkcm1fY2xpZW50X21vZGVzZXQuY2AgaXMgY29tcGlsZWQgY29uZGl0aW9uYWxseSB1bmRlciBgQ09ORklHX0RSTWAsIHNvIGl0IGlzIGxpa2VseSB0aGF0IGNvbmZpZ3VyYXRpb24gaXMgbmVlZGVkLiBMZXQgbWUgZG91YmxlLWNoZWNrIHRoZSBgZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlYCB0byBjb25maXJtIHRoYXQgYGRybV9jbGllbnRfbW9kZXNldC5vYCBpcyBhY3R1YWxseSBidWlsdCBhcyBwYXJ0IG9mIHRoZSBEUk0gY29yZSBidWlsZCBwcm9jZXNzLiBHb3R0YSBjb25maXJtIHdoZXJlIHRoaXMgY29kZSBpcyBiZWluZyBpbmNsdWRlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZHJtX2NsaWVudF9tb2Rlc2V0JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O0RvY3VtZW50YXRpb24vZ3B1L2RybS1jbGllbnQucnN0PTI9S2VybmVsIGNsaWVudHNcbi0tXG5Eb2N1bWVudGF0aW9uL2dwdS9kcm0tY2xpZW50LnJzdC0xMy1cbkRvY3VtZW50YXRpb24vZ3B1L2RybS1jbGllbnQucnN0OjE0Oi4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmNcbkRvY3VtZW50YXRpb24vZ3B1L2RybS1jbGllbnQucnN0LTE1LSAgIDpleHBvcnQ6XG4tLVxuZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlPTc2PWRybS0kKENPTkZJR19EUk1fQ0xJRU5UKSAmIzQzOz0gXFxcbi0tXG5kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUtNzgtXHRkcm1fY2xpZW50X2V2ZW50Lm8gXFxcbmRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZTo3OTpcdGRybV9jbGllbnRfbW9kZXNldC5vIFxcXG5kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUtODAtXHRkcm1fY2xpZW50X3N5c3JxLm9cbi0tXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fbG9nLmM9MjM1PXN0YXRpYyB2b2lkIGRybV9sb2dfaW5pdF9jbGllbnQoc3RydWN0IGRybV9sb2cgKmRsb2cpXG4tLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2xvZy5jLTI0My1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9sb2cuYzoyNDQ6XHRpZiAoZHJtX2NsaWVudF9tb2Rlc2V0X3Byb2JlKGNsaWVudCwgMCwgMCkpXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fbG9nLmMtMjQ1LVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2xvZy5jLTI2Ni1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9sb2cuYzoyNjc6XHRpZiAoZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdChjbGllbnQpKVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2xvZy5jLTI2OC1cdFx0Z290byBlcnJfZmFpbGVkX2NvbW1pdDtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fbG9nLmM9MzE4PXN0YXRpYyBpbnQgZHJtX2xvZ19jbGllbnRfcmVzdG9yZShzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgYm9vbCBmb3JjZSlcbi0tXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fbG9nLmMtMzIyLVx0aWYgKGZvcmNlKVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2xvZy5jOjMyMzpcdFx0cmV0ID0gZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9sb2NrZWQoY2xpZW50KTtcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9sb2cuYy0zMjQtXHRlbHNlXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fbG9nLmM6MzI1Olx0XHRyZXQgPSBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0KGNsaWVudCk7XG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fbG9nLmMtMzI2LVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50LmM9ODA9aW50IGRybV9jbGllbnRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCxcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudC5jLTkxLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnQuYzo5MjpcdHJldCA9IGRybV9jbGllbnRfbW9kZXNldF9jcmVhdGUoY2xpZW50KTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50LmMtOTMtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50LmMtMTA0LWVycl9mcmVlOlxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnQuYzoxMDU6XHRkcm1fY2xpZW50X21vZGVzZXRfZnJlZShjbGllbnQpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnQuYy0xMDYtXHRyZXR1cm4gcmV0O1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50LmM9MTY1PXZvaWQgZHJtX2NsaWVudF9yZWxlYXNlKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50LmMtMTcwLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnQuYzoxNzE6XHRkcm1fY2xpZW50X21vZGVzZXRfZnJlZShjbGllbnQpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnQuYy0xNzItXHRkcm1fY2xpZW50X2Nsb3NlKGNsaWVudCk7XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jPTMzPXN0cnVjdCBkcm1fY2xpZW50X29mZnNldCB7XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTM2LVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjM3OmludCBkcm1fY2xpZW50X21vZGVzZXRfY3JlYXRlKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTM4LXtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtNjktZXJyX2ZyZWU6XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6NzA6XHRkcm1fY2xpZW50X21vZGVzZXRfZnJlZShjbGllbnQpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTcxLVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy03NC1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzo3NTpzdGF0aWMgdm9pZCBkcm1fY2xpZW50X21vZGVzZXRfcmVsZWFzZShzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudClcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy03Ni17XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTkzLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjk0OnZvaWQgZHJtX2NsaWVudF9tb2Rlc2V0X2ZyZWUoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtOTUte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy05OS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMDA6XHRkcm1fY2xpZW50X21vZGVzZXRfcmVsZWFzZShjbGllbnQpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEwMS1cbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM9NjE5PXN0YXRpYyBib29sIGRybV9jbGllbnRfZmlybXdhcmVfY29uZmlnKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy04MDUtLyoqXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6ODA2OiAqIGRybV9jbGllbnRfbW9kZXNldF9wcm9iZSgpIC0gUHJvYmUgZm9yIGRpc3BsYXlzXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtODA3LSAqIEBjbGllbnQ6IERSTSBjbGllbnRcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtODE2LSAqL1xuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjgxNzppbnQgZHJtX2NsaWVudF9tb2Rlc2V0X3Byb2JlKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCB1bnNpZ25lZCBpbnQgd2lkdGgsIHVuc2lnbmVkIGludCBoZWlnaHQpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtODE4LXtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtODk0LVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjg5NTpcdGRybV9jbGllbnRfbW9kZXNldF9yZWxlYXNlKGNsaWVudCk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtODk2LVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy05NDQtfVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjk0NTpFWFBPUlRfU1lNQk9MKGRybV9jbGllbnRfbW9kZXNldF9wcm9iZSk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtOTQ2LVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYz0xMDMyPUVYUE9SVF9TWU1CT0woZHJtX2NsaWVudF9yb3RhdGlvbik7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTAzMy1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMDM0OnN0YXRpYyBpbnQgZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9hdG9taWMoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIGJvb2wgYWN0aXZlLCBib29sIGNoZWNrKVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEwMzUte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMTIzLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjExMjQ6c3RhdGljIGludCBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0X2xlZ2FjeShzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudClcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMTI1LXtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTE2NS0vKipcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMTY2OiAqIGRybV9jbGllbnRfbW9kZXNldF9jaGVjaygpIC0gQ2hlY2sgbW9kZXNldCBjb25maWd1cmF0aW9uXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTE2Ny0gKiBAY2xpZW50OiBEUk0gY2xpZW50XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTExNzMtICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTE3NDppbnQgZHJtX2NsaWVudF9tb2Rlc2V0X2NoZWNrKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTExNzUte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMTgxLVx0bXV0ZXhfbG9jayhcdTAwMjZjbGllbnQtXHUwMDNlbW9kZXNldF9tdXRleCk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTE4MjpcdHJldCA9IGRybV9jbGllbnRfbW9kZXNldF9jb21taXRfYXRvbWljKGNsaWVudCwgdHJ1ZSwgdHJ1ZSk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTE4My1cdG11dGV4X3VubG9jayhcdTAwMjZjbGllbnQtXHUwMDNlbW9kZXNldF9tdXRleCk7XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTExODYtfVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjExODc6RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X21vZGVzZXRfY2hlY2spO1xuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTExODgtXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTE4OS0vKipcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMTkwOiAqIGRybV9jbGllbnRfbW9kZXNldF9jb21taXRfbG9ja2VkKCkgLSBGb3JjZSBjb21taXQgQ1JUQyBjb25maWd1cmF0aW9uXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTE5MS0gKiBAY2xpZW50OiBEUk0gY2xpZW50XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTExOTktICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTIwMDppbnQgZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9sb2NrZWQoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTIwMS17XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyMDYtXHRpZiAoZHJtX2Rydl91c2VzX2F0b21pY19tb2Rlc2V0KGRldikpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTIwNzpcdFx0cmV0ID0gZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9hdG9taWMoY2xpZW50LCB0cnVlLCBmYWxzZSk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTIwOC1cdGVsc2VcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMjA5Olx0XHRyZXQgPSBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0X2xlZ2FjeShjbGllbnQpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyMTAtXHRtdXRleF91bmxvY2soXHUwMDI2Y2xpZW50LVx1MDAzZW1vZGVzZXRfbXV0ZXgpO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjEzLX1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMjE0OkVYUE9SVF9TWU1CT0woZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9sb2NrZWQpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyMTUtXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTIxNi0vKipcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMjE3OiAqIGRybV9jbGllbnRfbW9kZXNldF9jb21taXQoKSAtIENvbW1pdCBDUlRDIGNvbmZpZ3VyYXRpb25cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjE4LSAqIEBjbGllbnQ6IERSTSBjbGllbnRcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTIyNC0gKi9cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMjI1OmludCBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0KHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyMjYte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjMyLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyMzM6XHRyZXQgPSBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0X2xvY2tlZChjbGllbnQpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyMzQtXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyMzgtfVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyMzk6RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0KTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjQwLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyNDE6c3RhdGljIHZvaWQgZHJtX2NsaWVudF9tb2Rlc2V0X2RwbXNfbGVnYWN5KHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCBpbnQgZHBtc19tb2RlKVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyNDIte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjY2LS8qKlxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyNjc6ICogZHJtX2NsaWVudF9tb2Rlc2V0X2RwbXMoKSAtIFNldCBEUE1TIG1vZGVcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjY4LSAqIEBjbGllbnQ6IERSTSBjbGllbnRcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTI3NS0gKi9cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMjc2OmludCBkcm1fY2xpZW50X21vZGVzZXRfZHBtcyhzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgaW50IG1vZGUpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTI3Ny17XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyODUtXHRpZiAoZHJtX2Rydl91c2VzX2F0b21pY19tb2Rlc2V0KGRldikpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTI4NjpcdFx0cmV0ID0gZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9hdG9taWMoY2xpZW50LCBtb2RlID09IERSTV9NT0RFX0RQTVNfT04sIGZhbHNlKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjg3LVx0ZWxzZVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyODg6XHRcdGRybV9jbGllbnRfbW9kZXNldF9kcG1zX2xlZ2FjeShjbGllbnQsIG1vZGUpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyODktXHRtdXRleF91bmxvY2soXHUwMDI2Y2xpZW50LVx1MDAzZW1vZGVzZXRfbXV0ZXgpO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjk0LX1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMjk1OkVYUE9SVF9TWU1CT0woZHJtX2NsaWVudF9tb2Rlc2V0X2RwbXMpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyOTYtXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTI5Ny0vKipcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMjk4OiAqIGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmsoKSAtIFdhaXQgZm9yIHRoZSBuZXh0IFZCTEFOSyB0byBvY2N1clxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyOTktICogQGNsaWVudDogRFJNIGNsaWVudFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzA4LSAqL1xuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEzMDk6aW50IGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92Ymxhbmsoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIHVuc2lnbmVkIGludCBjcnRjX2luZGV4KVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEzMTAte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzM4LX1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMzM5OkVYUE9SVF9TWU1CT0woZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTM0MC1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzQxLSNpZmRlZiBDT05GSUdfRFJNX0tVTklUX1RFU1RcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMzQyOiNpbmNsdWRlIFwmIzM0O3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmNcJiMzNDtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzQzLSNlbmRpZlxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9MTE3PV9fZHJtX2ZiX2hlbHBlcl9yZXN0b3JlX2ZiZGV2X21vZGVfdW5sb2NrZWQoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcixcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEzNS1cdFx0ICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjEzNjpcdFx0cmV0ID0gZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9sb2NrZWQoXHUwMDI2ZmJfaGVscGVyLVx1MDAzZWNsaWVudCk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEzNy1cdH0gZWxzZSB7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjEzODpcdFx0cmV0ID0gZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdChcdTAwMjZmYl9oZWxwZXItXHUwMDNlY2xpZW50KTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTM5LVx0fVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9MTczPXN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZHBtcyhzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgaW50IGRwbXNfbW9kZSlcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE3Ny1cdG11dGV4X2xvY2soXHUwMDI2ZmJfaGVscGVyLVx1MDAzZWxvY2spO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxNzg6XHRkcm1fY2xpZW50X21vZGVzZXRfZHBtcyhcdTAwMjZmYl9oZWxwZXItXHUwMDNlY2xpZW50LCBkcG1zX21vZGUpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xNzktXHRtdXRleF91bmxvY2soXHUwMDI2ZmJfaGVscGVyLVx1MDAzZWxvY2spO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9MzE1PXN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZmJfZGlydHkoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlcilcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTMyNi1cdGlmIChjcnRjX2luZGV4IFx1MDAzZT0gMClcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MzI3Olx0XHRkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKFx1MDAyNmhlbHBlci1cdTAwM2VjbGllbnQsIGNydGNfaW5kZXgpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zMjgtXHRtdXRleF91bmxvY2soXHUwMDI2aGVscGVyLVx1MDAzZWxvY2spO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9OTg0PWludCBkcm1fZmJfaGVscGVyX2lvY3RsKHN0cnVjdCBmYl9pbmZvICppbmZvLCB1bnNpZ25lZCBpbnQgY21kLFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTAwOS1cdFx0ICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjEwMTA6XHRcdHJldCA9IGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmsoXHUwMDI2ZmJfaGVscGVyLVx1MDAzZWNsaWVudCwgMCk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEwMTEtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9MTI3Mz1zdGF0aWMgaW50IHBhbl9kaXNwbGF5X2F0b21pYyhzdHJ1Y3QgZmJfdmFyX3NjcmVlbmluZm8gKnZhcixcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEyODItXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjEyODM6XHRyZXQgPSBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0X2xvY2tlZChcdTAwMjZmYl9oZWxwZXItXHUwMDNlY2xpZW50KTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTI4NC1cdGlmICghcmV0KSB7XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYz0xNTI1PXN0YXRpYyBpbnQgZHJtX2ZiX2hlbHBlcl9zaW5nbGVfZmJfcHJvYmUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcilcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE1MzgtXHRcdGlmICghZmJfaGVscGVyLVx1MDAzZWRlZmVycmVkX3NldHVwKVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxNTM5Olx0XHRcdGRybV9jbGllbnRfbW9kZXNldF9jb21taXQoY2xpZW50KTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTU0MC1cdFx0cmV0dXJuIHJldDtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jPTE3MDc9X19kcm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmlnX2FuZF91bmxvY2soc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcilcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE3MTYtXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjE3MTc6XHRkcm1fY2xpZW50X21vZGVzZXRfcHJvYmUoXHUwMDI2ZmJfaGVscGVyLVx1MDAzZWNsaWVudCwgd2lkdGgsIGhlaWdodCk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE3MTgtXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYz0xODM1PWludCBkcm1fZmJfaGVscGVyX2hvdHBsdWdfZXZlbnQoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcilcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE4NTctXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjE4NTg6XHRkcm1fY2xpZW50X21vZGVzZXRfcHJvYmUoXHUwMDI2ZmJfaGVscGVyLVx1MDAzZWNsaWVudCwgZmJfaGVscGVyLVx1MDAzZWZiLVx1MDAzZXdpZHRoLCBmYl9oZWxwZXItXHUwMDNlZmItXHUwMDNlaGVpZ2h0KTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTg1OS1cdGRybV9zZXR1cF9jcnRjc19mYihmYl9oZWxwZXIpO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTE2LVxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM6MTc6c3RydWN0IGRybV9jbGllbnRfbW9kZXNldF90ZXN0X3ByaXYge1xuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtMTgtXHRzdHJ1Y3QgZHJtX2RldmljZSAqZHJtO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTIyLVxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM6MjM6c3RhdGljIGludCBkcm1fY2xpZW50X21vZGVzZXRfY29ubmVjdG9yX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKVxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtMjQte1xuLS1cbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTQ2LVxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM6NDc6c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyBkcm1fY2xpZW50X21vZGVzZXRfY29ubmVjdG9yX2hlbHBlcl9mdW5jcyA9IHtcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jOjQ4Olx0LmdldF9tb2RlcyA9IGRybV9jbGllbnRfbW9kZXNldF9jb25uZWN0b3JfZ2V0X21vZGVzLFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtNDktfTtcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTUwLVxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM6NTE6c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIGRybV9jbGllbnRfbW9kZXNldF9jb25uZWN0b3JfZnVuY3MgPSB7XG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYy01Mi1cdC5hdG9taWNfZGVzdHJveV9zdGF0ZSAgID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2Rlc3Ryb3lfc3RhdGUsXG4tLVxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtNTUtXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYzo1NjpzdGF0aWMgaW50IGRybV9jbGllbnRfbW9kZXNldF90ZXN0X2luaXQoc3RydWN0IGt1bml0ICp0ZXN0KVxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtNTcte1xuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM6NTg6XHRzdHJ1Y3QgZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3RfcHJpdiAqcHJpdjtcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTU5LVx0aW50IHJldDtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYy03NC1cdHJldCA9IGRybW1fY29ubmVjdG9yX2luaXQocHJpdi1cdTAwM2Vkcm0sIFx1MDAyNnByaXYtXHUwMDNlY29ubmVjdG9yLFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM6NzU6XHRcdFx0XHQgIFx1MDAyNmRybV9jbGllbnRfbW9kZXNldF9jb25uZWN0b3JfZnVuY3MsXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYy03Ni1cdFx0XHRcdCAgRFJNX01PREVfQ09OTkVDVE9SX1Vua25vd24sXG4tLVxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtNzktXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYzo4MDpcdGRybV9jb25uZWN0b3JfaGVscGVyX2FkZChcdTAwMjZwcml2LVx1MDAzZWNvbm5lY3RvciwgXHUwMDI2ZHJtX2NsaWVudF9tb2Rlc2V0X2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpO1xuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtODEtXG4tLVxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM9ODg9c3RhdGljIHZvaWQgZHJtX3Rlc3RfcGlja19jbWRsaW5lX3Jlc18xOTIwXzEwODBfNjAoc3RydWN0IGt1bml0ICp0ZXN0KVxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtODkte1xuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM6OTA6XHRzdHJ1Y3QgZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3RfcHJpdiAqcHJpdiA9IHRlc3QtXHUwMDNlcHJpdjtcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTkxLVx0c3RydWN0IGRybV9kZXZpY2UgKmRybSA9IHByaXYtXHUwMDNlZHJtO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jPTEzMj1zdGF0aWMgdm9pZCBkcm1fdGVzdF9waWNrX2NtZGxpbmVfbmFtZWQoc3RydWN0IGt1bml0ICp0ZXN0KVxuLS1cbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTEzNC1cdGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3BpY2tfY21kbGluZV9tb2RlX3Rlc3QgKnBhcmFtcyA9IHRlc3QtXHUwMDNlcGFyYW1fdmFsdWU7XG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYzoxMzU6XHRzdHJ1Y3QgZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3RfcHJpdiAqcHJpdiA9IHRlc3QtXHUwMDNlcHJpdjtcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTEzNi1cdHN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBwcml2LVx1MDAzZWRybTtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYz0xOTI9c3RhdGljIHN0cnVjdCBrdW5pdF9zdWl0ZSBkcm1fdGVzdF9waWNrX2NtZGxpbmVfdGVzdF9zdWl0ZSA9IHtcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTE5My1cdC5uYW1lID0gXCYjMzQ7ZHJtX3Rlc3RfcGlja19jbWRsaW5lXCYjMzQ7LFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM6MTk0Olx0LmluaXQgPSBkcm1fY2xpZW50X21vZGVzZXRfdGVzdF9pbml0LFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtMTk1LVx0LnRlc3RfY2FzZXMgPSBkcm1fdGVzdF9waWNrX2NtZGxpbmVfdGVzdHNcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYz0xOTg9a3VuaXRfdGVzdF9zdWl0ZShkcm1fdGVzdF9waWNrX2NtZGxpbmVfdGVzdF9zdWl0ZSk7XG4tLVxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtMjAwLS8qXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYzoyMDE6ICogVGhpcyBmaWxlIGlzIGluY2x1ZGVkIGRpcmVjdGx5IGJ5IGRybV9jbGllbnRfbW9kZXNldC5jIHNvIHdlIGNhbiYjMzk7dFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtMjAyLSAqIHVzZSBhbnkgTU9EVUxFXyogbWFjcm8gaGVyZS5cbi0tXG5pbmNsdWRlL2RybS9kcm1fY2xpZW50Lmg9MjEwPXZvaWQgZHJtX2NsaWVudF9idWZmZXJfdnVubWFwKHN0cnVjdCBkcm1fY2xpZW50X2J1ZmZlciAqYnVmZmVyKTtcbmluY2x1ZGUvZHJtL2RybV9jbGllbnQuaC0yMTEtXG5pbmNsdWRlL2RybS9kcm1fY2xpZW50Lmg6MjEyOmludCBkcm1fY2xpZW50X21vZGVzZXRfY3JlYXRlKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KTtcbmluY2x1ZGUvZHJtL2RybV9jbGllbnQuaDoyMTM6dm9pZCBkcm1fY2xpZW50X21vZGVzZXRfZnJlZShzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCk7XG5pbmNsdWRlL2RybS9kcm1fY2xpZW50Lmg6MjE0OmludCBkcm1fY2xpZW50X21vZGVzZXRfcHJvYmUoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIHVuc2lnbmVkIGludCB3aWR0aCwgdW5zaWduZWQgaW50IGhlaWdodCk7XG5pbmNsdWRlL2RybS9kcm1fY2xpZW50LmgtMjE1LWJvb2wgZHJtX2NsaWVudF9yb3RhdGlvbihzdHJ1Y3QgZHJtX21vZGVfc2V0ICptb2Rlc2V0LCB1bnNpZ25lZCBpbnQgKnJvdGF0aW9uKTtcbmluY2x1ZGUvZHJtL2RybV9jbGllbnQuaDoyMTY6aW50IGRybV9jbGllbnRfbW9kZXNldF9jaGVjayhzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCk7XG5pbmNsdWRlL2RybS9kcm1fY2xpZW50Lmg6MjE3OmludCBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0X2xvY2tlZChzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCk7XG5pbmNsdWRlL2RybS9kcm1fY2xpZW50Lmg6MjE4OmludCBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0KHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KTtcbmluY2x1ZGUvZHJtL2RybV9jbGllbnQuaDoyMTk6aW50IGRybV9jbGllbnRfbW9kZXNldF9kcG1zKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCBpbnQgbW9kZSk7XG5pbmNsdWRlL2RybS9kcm1fY2xpZW50Lmg6MjIwOmludCBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCB1bnNpZ25lZCBpbnQgY3J0Y19pbmRleCk7XG5pbmNsdWRlL2RybS9kcm1fY2xpZW50LmgtMjIxLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAwMToxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTE5OAoJCQkJCQkJb3V0cHV0OiAxOAoJCQkJCQkJdGhvdWdodHM6IDQ1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyB0aGUgRFJNIENsaWVudCBNb2Rlc2V0dGluZyBDb21waWxhdGlvbioqCgpBbHJpZ2h0LCBzbyBgZHJtX2NsaWVudF9tb2Rlc2V0LmNgIGlzIGJlaW5nIGNvbXBpbGVkLCBhbmQgaXQmIzM5O3MgZmxhZ2dlZCB1bmRlciBgQ09ORklHX0RSTV9DTElFTlRgLiBNeSBpbW1lZGlhdGUgaW5zdGluY3QgaXMgdG8ganVtcCBpbnRvIHRoZSBgS2NvbmZpZ2AgZmlsZXMg4oCTIHNwZWNpZmljYWxseSBpbiBgZHJpdmVycy9ncHUvZHJtL0tjb25maWdgIOKAkyB0byB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmN5IGFuZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgdGllZCB0byBgQ09ORklHX0RSTV9DTElFTlRgLiBJIHdhbnQgdG8gc2VlIHdoYXQgdGhhdCBjb25maWd1cmF0aW9uIHN5bWJvbCBhY3R1YWxseSAqbWVhbnMqIGluIHRoZSBicm9hZGVyIGNvbnRleHQgb2YgdGhlIERSTSBkcml2ZXIgZnJhbWV3b3JrLiBXaGF0IGFyZSB0aGUgcG90ZW50aWFsIGltcGxpY2F0aW9ucyBvZiBlbmFibGluZyBvciBkaXNhYmxpbmcgaXQ/IEFyZSB0aGVyZSBhbnkgc3BlY2lmaWMgaGFyZHdhcmUgb3Igc29mdHdhcmUgcmVxdWlyZW1lbnRzIGFzc29jaWF0ZWQgd2l0aCBpdD8gSSYjMzk7bSBsb29raW5nIGZvciB0aGUgJiMzNDt3aHkmIzM0OyBhbmQgJiMzNDtob3cmIzM0OyBiZWhpbmQgdGhpcyBjb21waWxhdGlvbiBjaG9pY2UgdG8gdW5kZXJzdGFuZCBpdHMgcm9sZSBpbiB0aGUgZHJpdmVyIGVjb3N5c3RlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIERSTV9DTElFTlQmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9ncHUvZHJtL0tjb25maWc9MTU4PWNvbmZpZyBEUk1fREVCVUdfTU9ERVNFVF9MT0NLXG4tLVxuZHJpdmVycy9ncHUvZHJtL0tjb25maWctMTcyLVxuZHJpdmVycy9ncHUvZHJtL0tjb25maWc6MTczOmNvbmZpZyBEUk1fQ0xJRU5UXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZy0xNzQtXHRib29sXG4tLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0yLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZzozOmNvbmZpZyBEUk1fQ0xJRU5UX0xJQlxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy00LVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTExLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZzoxMjpjb25maWcgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMTMtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMjAtXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjIxOmNvbmZpZyBEUk1fQ0xJRU5UX1NFVFVQXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTIyLVx0Ym9vbFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc9NTQ9Y29uZmlnIERSTV9GQkRFVl9MRUFLX1BIWVNfU01FTVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctNzMtXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjc0OmNvbmZpZyBEUk1fQ0xJRU5UX0xPR1xuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy03NS1cdGJvb2wgXCYjMzQ7UHJpbnQgdGhlIGtlcm5lbCBib290IG1lc3NhZ2Ugb24gdGhlIHNjcmVlblwmIzM0O1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc9ODg9Y2hvaWNlXG4tLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy05OC1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6OTk6Y29uZmlnIERSTV9DTElFTlRfREVGQVVMVF9GQkRFVlxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0xMDAtXHRib29sIFwmIzM0O2ZiZGV2XCYjMzQ7XG4tLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0xMDUtXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjEwNjpjb25maWcgRFJNX0NMSUVOVF9ERUZBVUxUX0xPR1xuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0xMDctXHRib29sIFwmIzM0O2xvZ1wmIzM0O1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc9MTE0PWVuZGNob2ljZVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0xMTUtXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjExNjpjb25maWcgRFJNX0NMSUVOVF9ERUZBVUxUXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTExNy0gICAgICAgc3RyaW5nXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDAxOjEyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2MDA0CgkJCQkJCQlvdXRwdXQ6IDIyCgkJCQkJCQl0aG91Z2h0czogNzEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBEUk0gQ2xpZW50IENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYENPTkZJR19EUk1fQ0xJRU5UYCBhbmQgdGhlIGZpcnN0IHRoaW5nIEkgbm90aWNlIGlzIHRoYXQgaXQmIzM5O3MgYSBoaWRkZW4gYm9vbGVhbi4gVGhhdCBtZWFucyBpdCYjMzk7cyBsaWtlbHkgc2VsZWN0ZWQgYnkgc29tZXRoaW5nIGVsc2UsIGEgZGVwZW5kZW5jeS4gR2l2ZW4gdGhlIG5hbWUsIG15IGd1dCBmZWVsaW5nIGlzIHRoYXQgZWl0aGVyIGBDT05GSUdfRFJNX0NMSUVOVF9MSUJgIG9yIGBDT05GSUdfRFJNX0ZCREVWX0VNVUxBVElPTmAgaXMgcmVzcG9uc2libGUgZm9yIHNlbGVjdGluZyBpdC4gQm90aCBhcmUgcGxhdXNpYmxlIGRlcGVuZGluZyBvbiB0aGUgc3BlY2lmaWMgdXNlIGNhc2UsIGJ1dCBsZXQmIzM5O3MgcXVpY2tseSBjaGVjayBgQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT05gIGZpcnN0LiBJdCBmZWVscyBsaWtlIHRoZSBtb3JlIGxpa2VseSBjYW5kaWRhdGUgdG8gbWUsIGdpdmVuIHRoZSBkaXJlY3QgY29ubmVjdGlvbiB0byBmcmFtZWJ1ZmZlcnMuIEkmIzM5O2xsIG5lZWQgdG8gZ28gZGlnIGludG8gYGRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWdgIHRvIGNvbmZpcm0gdGhpcyBzdXNwaWNpb24uIEZyb20gdGhlcmUsIEkgY2FuIGRldGVybWluZSB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhvc2UgY29uZmlnIG9wdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDAxOjEyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBEUk1fRkJERVZfRU1VTEFUSU9OJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc9Mjg9bWVudSBcJiMzNDtTdXBwb3J0ZWQgRFJNIGNsaWVudHNcJiMzNDtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMwLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZzozMTpjb25maWcgRFJNX0ZCREVWX0VNVUxBVElPTlxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0zMi1cdGJvb2wgXCYjMzQ7RW5hYmxlIGxlZ2FjeSBmYmRldiBzdXBwb3J0IGZvciB5b3VyIG1vZGVzZXR0aW5nIGRyaXZlclwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAwMToxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjM3OQoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDE3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHN1bW1hcnksIHRha2luZyB0aGUgcGVyc3BlY3RpdmUgb2Ygc29tZW9uZSBrbm93bGVkZ2VhYmxlIGluIHRoZSBmaWVsZCBhbmQgYXBwcm9hY2hpbmcgdGhpcyBzcGVjaWZpYyBjb2RlIHF1ZXJ5OgoKKipEZWNvbnN0cnVjdGluZyB0aGUgYERSTV9GQkRFVl9FTVVMQVRJT05gIFNlbGVjdGlvbioqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEkmIzM5O20gdGFraW5nIGEgbG9vayBhdCBgRFJNX0ZCREVWX0VNVUxBVElPTmAgYW5kIHRyeWluZyB0byBmaWd1cmUgb3V0IGV4YWN0bHkgKndoYXQqIGl0JiMzOTtzIGNob29zaW5nLiBJdCYjMzk7cyB0aGF0IGtpbmQgb2YgcXVlc3Rpb24gdGhhdCwgYXMgYSBzcGVjaWFsaXN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aG9yb3VnaGx5LiBJdCBkaXJlY3RseSBpbXBhY3RzIGhvdyB0aGUgZ3JhcGhpY3Mgc3RhY2sgaW50ZXJhY3RzIHdpdGggdGhlIGZyYW1lIGJ1ZmZlci4gSSB3YW50IHRvIHVuZGVyc3RhbmQgd2hhdCBpbXBsaWNhdGlvbnMgdGhpcyBjaG9pY2UgY2FycmllcyBpbiB0aGlzIGNvbnRleHQgYW5kIGhvdyBpdCBpbXBhY3RzIHRoZSBhcmNoaXRlY3R1cmUuIEkmIzM5O2xsIG5lZWQgdG8gcmVtZW1iZXIgYWxsIHRoZSB2YXJpYWJsZXMgaGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIERSTV9GQkRFVl9FTVVMQVRJT04mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc9Mjg9bWVudSBcJiMzNDtTdXBwb3J0ZWQgRFJNIGNsaWVudHNcJiMzNDtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMwLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZzozMTpjb25maWcgRFJNX0ZCREVWX0VNVUxBVElPTlxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0zMi1cdGJvb2wgXCYjMzQ7RW5hYmxlIGxlZ2FjeSBmYmRldiBzdXBwb3J0IGZvciB5b3VyIG1vZGVzZXR0aW5nIGRyaXZlclwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAwMToxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjY4MQoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHM6CgoqKkFuYWx5emluZyB0aGUgRFJNIENsaWVudCBDb25maWd1cmF0aW9uKioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBgZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZ2AgZmlsZS4gSSYjMzk7bSBmb2N1c2luZyBzcGVjaWZpY2FsbHkgYXJvdW5kIGxpbmUgMzEuIFRoaXMgaXMgd2hlcmUgdGhlIHJlYWwgZ3V0cyBvZiB0aGUgY2xpZW50IGNvbmZpZ3VyYXRpb25zIGFyZSBkZWZpbmVkLCBhbmQgd2hlcmUgdGhlIGRlY2lzaW9ucyBnZXQgbWFkZSBvbiB3aGljaCBoYXJkd2FyZSBvciBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkLiBJIGV4cGVjdCB0byBzZWUgdGhlIHR5cGljYWwgYGNvbmZpZ2AgYmxvY2tzLCBjb25kaXRpb25hbCBzdGF0ZW1lbnRzIHVzaW5nIGBkZXBlbmRzIG9uYCwgYHNlbGVjdGAsIGFuZCBob3BlZnVsbHkgc29tZSBkZWNlbnQgaGVscCB0ZXh0IHRvIGd1aWRlIHRoZSBjb25maWd1cmF0aW9uIHByb2Nlc3MuIEkmIzM5O20gaG9waW5nIHRvIHF1aWNrbHkgdW5kZXJzdGFuZCB3aGF0IGNsaWVudHMgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdCwgaG93IHRoZXkmIzM5O3JlIHJlbGF0ZWQgdG8gdmFyaW91cyBoYXJkd2FyZSBwbGF0Zm9ybXMsIGFuZCBhbnkgZGVwZW5kZW5jaWVzIHRoZXkgbWlnaHQgaGF2ZSBvbiBzcGVjaWZpYyBrZXJuZWwgZmVhdHVyZXMgb3Igb3RoZXIgRFJNIG1vZHVsZXMuIEkgbmVlZCB0byBnZXQgYSBoaWdoLWxldmVsIHBpY3R1cmUgb2YgdGhlIGNsaWVudCBjb25maWd1cmF0aW9uIHN0cmF0ZWd5IGhlcmUgc28gSSBjYW4gdW5kZXJzdGFuZCBhbnkgZG93bnN0cmVhbSBpbXBhY3RzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAwMToxMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyNSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgIDI1Olx0XHQgIEVuYWJsZXMgdGhlIERSTSBjbGllbnQgc2VsZWN0aW9uLiBEUk0gZHJpdmVycyB0aGF0IHN1cHBvcnQgdGhlXG4gIDI2Olx0XHQgIGRlZmF1bHQgY2xpZW50cyBzaG91bGQgc2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OIGluc3RlYWQuXG4gIDI3Olx0XG4gIDI4Olx0bWVudSBcJiMzNDtTdXBwb3J0ZWQgRFJNIGNsaWVudHNcJiMzNDtcbiAgMjk6XHRcdGRlcGVuZHMgb24gRFJNX0NMSUVOVF9TRUxFQ1RJT05cbiAgMzA6XHRcbiAgMzE6XHRjb25maWcgRFJNX0ZCREVWX0VNVUxBVElPTlxuICAzMjpcdFx0Ym9vbCBcJiMzNDtFbmFibGUgbGVnYWN5IGZiZGV2IHN1cHBvcnQgZm9yIHlvdXIgbW9kZXNldHRpbmcgZHJpdmVyXCYjMzQ7XG4gIDMzOlx0XHRkZXBlbmRzIG9uIERSTV9DTElFTlRfU0VMRUNUSU9OXG4gIDM0Olx0XHRzZWxlY3QgRFJNX0NMSUVOVFxuICAzNTpcdFx0c2VsZWN0IERSTV9DTElFTlRfU0VUVVBcbiAgMzY6XHRcdHNlbGVjdCBGUkFNRUJVRkZFUl9DT05TT0xFX0RFVEVDVF9QUklNQVJZIGlmIEZSQU1FQlVGRkVSX0NPTlNPTEVcbiAgMzc6XHRcdGRlZmF1bHQgRkJcbiAgMzg6XHRcdGhlbHBcbiAgMzk6XHRcdCAgQ2hvb3NlIHRoaXMgb3B0aW9uIGlmIHlvdSBoYXZlIGEgbmVlZCBmb3IgdGhlIGxlZ2FjeSBmYmRldlxuICA0MDpcdFx0ICBzdXBwb3J0LiBOb3RlIHRoYXQgdGhpcyBzdXBwb3J0IGFsc28gcHJvdmlkZXMgdGhlIGxpbnV4IGNvbnNvbGVcbiAgNDE6XHRcdCAgc3VwcG9ydCBvbiB0b3Agb2YgeW91ciBtb2Rlc2V0dGluZyBkcml2ZXIuXG4gIDQyOlx0XG4gIDQzOlx0XHQgIElmIGluIGRvdWJ0LCBzYXkgXCYjMzQ7WVwmIzM0Oy5cbiAgNDQ6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjcxODgKCQkJCQkJCW91dHB1dDogMTkKCQkJCQkJCXRob3VnaHRzOiAxMDgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTmF2aWdhdGluZyB0aGUgRFJNIENvbmZpZ3VyYXRpb24gTGFuZHNjYXBlKioKCk9rYXksIHNvIEkmIzM5O20gZGl2aW5nIGludG8gdGhpcyBEUk0gY29uZmlndXJhdGlvbiBqdW5nbGUuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGBEUk1fRkJERVZfRU1VTEFUSU9OYCBhdXRvbWF0aWNhbGx5IHB1bGxzIGluIGBEUk1fQ0xJRU5UYCDigJMgZ29vZCB0byBrbm93LiBUaGlzIG1ha2VzIG1lIHJlYWxpemUgd2UgbmVlZCB0byBhZGQgYERSTV9GQkRFVl9FTVVMQVRJT05gIHRvIG91ciBgRW5hYmxlQ29uZmlnc2AuIEJ1dCBoYW5nIG9uIGEgc2Vjb25kLCBJIGhhdmUgYSBmZWVsaW5nIGBEUk1fQ0xJRU5UYCBtaWdodCBiZSBzZWxlY3RlZCBieSBvdGhlciB0aGluZ3MgYXMgd2VsbCwgbWF5YmUgYERSTV9DTElFTlRfTE9HYD8gSSBuZWVkIHRvIHZlcmlmeSB0aGF0LiBMZXQgbWUgbG9vayBhdCBgRFJNX0NMSUVOVF9TRUxFQ1RJT05gLiBBbHJpZ2h0LCBmb3VuZCBpdCwgdGhhdCYjMzk7cyBzZWxlY3RlZCBieSB0aGUgRFJNIGRyaXZlcnMgdGhlbXNlbHZlcy4gTm93LCBqdXN0IHRvIGJlIHRob3JvdWdoIGFuZCBhdm9pZCBhbnkgZ290Y2hhcywgbGV0JiMzOTtzIHF1aWNrbHkgY2hlY2sgYERSTV9WS01TYCB0byBzZWUgaWYgaXQgaW1wbGljaXRseSBzZWxlY3RzIGBEUk1fQ0xJRU5UX1NFTEVDVElPTmAuIFdhbnQgdG8gbWFrZSBzdXJlIGV2ZXJ5dGhpbmcmIzM5O3MgY29ubmVjdGVkIGFzIEkgZXhwZWN0IGl0IHRvIGJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAwMToxMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgRFJNX1ZLTVMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZy0yLVxuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZzozOmNvbmZpZyBEUk1fVktNU1xuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZy00LVx0dHJpc3RhdGUgXCYjMzQ7VmlydHVhbCBLTVMgKEVYUEVSSU1FTlRBTClcJiMzNDtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdmttcy9LY29uZmlnLTE4LVxuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZzoxOTpjb25maWcgRFJNX1ZLTVNfS1VOSVRfVEVTVFxuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZy0yMC1cdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3RzIGZvciBWS01TXCYjMzQ7IGlmICFLVU5JVF9BTExfVEVTVFNcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjc2NjcKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgcmVhZGluZyB0aGUgS2NvbmZpZyBmaWxlOgoKKipEaXZpbmcgaW50byB0aGUgVktNUyBLY29uZmlnKioKCk9rYXksIHRpbWUgdG8gZGlnIGludG8gYGRyaXZlcnMvZ3B1L2RybS92a21zL0tjb25maWdgLiBSaWdodCBhd2F5LCBJJiMzOTttIGV4cGVjdGluZyB0aGlzIGZpbGUgdG8gZGVmaW5lIHRoZSBidWlsZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBWdWxrYW4gS01TIGRyaXZlci4gS25vd2luZyB0aGUgRFJNIHN1YnN5c3RlbSwgSSYjMzk7bSBhbnRpY2lwYXRpbmcgdG8gc2VlIGRlcGVuZGVuY2llcyBvbiB0aGUgY29yZSBEUk0gaW5mcmFzdHJ1Y3R1cmUsIG1heWJlIG9wdGlvbnMgZm9yIHNwZWNpZmljIGhhcmR3YXJlIGZlYXR1cmVzIG9yIHZhcmlhdGlvbnMsIGFuZCBkZWZpbml0ZWx5IHNvbWUgc2VsZWN0aW9ucyByZWxhdGVkIHRvIGRlYnVnIGFuZCB0ZXN0aW5nIGNhcGFiaWxpdGllcy4gSSYjMzk7bGwgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgb3B0aW9ucyBhcmUgYXZhaWxhYmxlIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBWS01TIGRyaXZlciBhbmQgYW55IHJlbGF0ZWQgZmVhdHVyZXMuIEkmIzM5O2xsIGJlIGxvb2tpbmcgZm9yIHRoaW5ncyBsaWtlOgoKKiAgICoqYENPTkZJR19EUk1fVktNU2AqKjogVGhlIG1haW4gc3dpdGNoIHRvIGVuYWJsZSB0aGUgZHJpdmVyLgoqICAgKipEZXBlbmRlbmNpZXMqKjogSSBleHBlY3QgYSBkZXBlbmRlbmN5IG9uIHRoZSBEUk0gY29yZSAoYENPTkZJR19EUk1gKS4gUG9zc2libHkgb3RoZXIgY29yZSBkZXBlbmRlbmNpZXMsIG9yIG9uIHRoZSBwbGF0Zm9ybSB0aGUgZHJpdmVyIGlzIGludGVuZGVkIGZvci4KKiAgICoqU3ViLWZlYXR1cmVzKio6IEFueXRoaW5nIHNwZWNpZmljIHRvIFZLTVMgdGhhdCBjYW4gYmUgY29uZmlndXJlZCwgbGlrZSBkZWJ1ZyBtZXNzYWdlcyAoYENPTkZJR19EUk1fVktNU19ERUJVR2ApLiBNYXliZSBvcHRpb25zIGZvciBzcGVjaWZpYyB2aXJ0dWFsIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb25zIG9yIHJlbmRlcmluZyBtb2Rlcy4KKiAgICoqRG9jdW1lbnRhdGlvbioqOiBJcyBpdCB3ZWxsLWRvY3VtZW50ZWQ/IEkgaG9wZSBpdCYjMzk7cyB3ZWxsLWNvbW1lbnRlZCBiZWNhdXNlIGdvb2QgS2NvbmZpZyBmaWxlcyBhcmUgZXNzZW50aWFsIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBidWlsZCBzeXN0ZW0uIFRoZSBjb21tZW50cyB3aWxsIHRlbGwgbWUgd2hhdCB0aGUgb3B0aW9ucyBkby4KKiAgICoqRGVmYXVsdHMqKjogV2hhdCBhcmUgdGhlIGRlZmF1bHQgdmFsdWVzIGZvciB0aGUgb3B0aW9ucz8gQXJlIHRoZXkgcmVhc29uYWJsZT8gRG8gdGhleSBhbGlnbiB3aXRoIGNvbW1vbiB1c2UgY2FzZXM/CiogICAqKlRyaWdnZXJzKio6IEkgd29uZGVyIGlmIHRoZXJlIGFyZSBhbnkgb3B0aW9ucyB0byBidWlsZCBhIHJlZHVjZWQtZnVuY3Rpb25hbGl0eSBWS01TIGZvciBzcGVjaWZpYyB0YXJnZXRzLiBUaGlzIG1pZ2h0IGJlIHVzZWQgdG8gcmVkdWNlIHRoZSBzaXplIG9yIGNvbXBsZXhpdHkgb2YgdGhlIHN5c3RlbS4KKiAgICoqQ29uZmxpY3RzKio6IEFyZSB0aGVyZSBjb25mbGljdGluZyBvcHRpb25zPyBBcmUgdGhlcmUgYW55IG9wdGlvbnMgd2hpY2ggbWFrZSBvdGhlcnMgbXV0dWFsbHkgZXhjbHVzaXZlPyBUaGlzIGNhbiBiZSBrZXkgd2hlbiBidWlsZGluZyBhbmQgY29uZmlndXJpbmcgdGhlIGtlcm5lbC4KKiAgICoqSGVscCoqOiBIb3cgZ29vZCBpcyB0aGUgaGVscCB0ZXh0PyBJcyBpdCBjbGVhciBhbmQgY29uY2lzZT8gRG9lcyBpdCBwcm92aWRlIGdvb2QgY29udGV4dCBmb3IgdGhlIHVzZXIgdG8gbWFrZSBpbmZvcm1lZCBkZWNpc2lvbnM/CgpJJiMzOTtsbCBiZSBwYXlpbmcgY2xvc2UgYXR0ZW50aW9uIHRvIHRoZSBkZXBlbmRlbmNpZXMsIGFzIHRoZXkgd2lsbCB0ZWxsIG1lIGhvdyB0aGlzIGRyaXZlciBmaXRzIGludG8gdGhlIGJyb2FkZXIgRFJNL1Z1bGthbiBsYW5kc2NhcGUuIEkgYW0gY3VyaW91cyB0byBzZWUgaG93IHRoZSBWS01TIGltcGxlbWVudGF0aW9uIGhhcyBhZGRyZXNzZWQgdGhlIHVzZXIgaW50ZXJmYWNlLiBNeSBwcmltYXJ5IGdvYWwgaGVyZSBpcyB0byBncmFzcCB0aGUgY29uZmlndXJhYmlsaXR5IG9mIFZLTVMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDAxOjEyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuICAgMjpcdFxuICAgMzpcdGNvbmZpZyBEUk1fVktNU1xuICAgNDpcdFx0dHJpc3RhdGUgXCYjMzQ7VmlydHVhbCBLTVMgKEVYUEVSSU1FTlRBTClcJiMzNDtcbiAgIDU6XHRcdGRlcGVuZHMgb24gRFJNIFx1MDAyNlx1MDAyNiBNTVVcbiAgIDY6XHRcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuICAgNzpcdFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXG4gICA4Olx0XHRzZWxlY3QgRFJNX0dFTV9TSE1FTV9IRUxQRVJcbiAgIDk6XHRcdHNlbGVjdCBDUkMzMlxuICAxMDpcdFx0c2VsZWN0IENPTkZJR0ZTX0ZTXG4gIDExOlx0XHRkZWZhdWx0IG5cbiAgMTI6XHRcdGhlbHBcbiAgMTM6XHRcdCAgVmlydHVhbCBLZXJuZWwgTW9kZS1TZXR0aW5nIChWS01TKSBpcyB1c2VkIGZvciB0ZXN0aW5nIG9yIGZvclxuICAxNDpcdFx0ICBydW5uaW5nIEdQVSBpbiBhIGhlYWRsZXNzIG1hY2hpbmVzLiBDaG9vc2UgdGhpcyBvcHRpb24gdG8gZ2V0XG4gIDE1Olx0XHQgIGEgVktNUy5cbiAgMTY6XHRcbiAgMTc6XHRcdCAgSWYgTSBpcyBzZWxlY3RlZCB0aGUgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHZrbXMuXG4gIDE4Olx0XG4gIDE5Olx0Y29uZmlnIERSTV9WS01TX0tVTklUX1RFU1RcbiAgMjA6XHRcdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3RzIGZvciBWS01TXCYjMzQ7IGlmICFLVU5JVF9BTExfVEVTVFNcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjg0NzMKCQkJCQkJCW91dHB1dDogMTkKCQkJCQkJCXRob3VnaHRzOiA4OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGlzIGNvbmZpZ3VyYXRpb24gbG9naWMsIGZvY3VzaW5nIG9uIHRoZSBkZXBlbmRlbmNpZXMgYW5kIHRoZSBvdmVyYWxsIGdvYWw6CgoqKlRoaW5raW5nIFRocm91Z2ggVmlydHVhbCBLTVMgRHJpdmVyIFNlbGVjdGlvbioqCgpBbHJpZ2h0LCBsZXQgbWUgc2VlLi4uIHNvLCBpZiBJJiMzOTttIHVuZGVyc3RhbmRpbmcgdGhpcyBjb3JyZWN0bHksIHRoZSBgRFJNX1ZLTVNgIGRyaXZlciBzcGVjaWZpY2FsbHkgYnJpbmdzIGluIHRoZSBgRFJNX0NMSUVOVF9TRUxFQ1RJT05gIG9wdGlvbi4gVGhhdCBtYWtlcyBzZW5zZSwgYERSTV9WS01TYCBpcyBhIHZpcnR1YWwgS01TIGRyaXZlciBzbyB0aGUgY2xpZW50cyBjYW4gYmUgbWFuYWdlZCBhbmQgc2VsZWN0ZWQuIAoKTm93LCBvbiB0b3Agb2YgdGhhdCwgYERSTV9GQkRFVl9FTVVMQVRJT05gIGRlZmF1bHRzIHRvIGBGQmAsIG9rYXksIGdvdCBpdC4gU28sIHRvIGVuc3VyZSB3ZSBnZXQgdGhlIGZ1bmN0aW9uYWxpdHkgd2UmIzM5O3JlIGFpbWluZyBmb3Ig4oCTIHByZXN1bWFibHkgYSB2aXJ0dWFsIEtNUyBlbnZpcm9ubWVudCB3aXRoIHRoZSBmcmFtZWJ1ZmZlciBlbXVsYXRpb24gYXZhaWxhYmxlIOKAkyB0aGUgY2xlYXIgcGF0aCBpcyB0byBlbmFibGUgYm90aCBgRFJNX1ZLTVNgIGFuZCBgRFJNX0ZCREVWX0VNVUxBVElPTmAuCgpIbW0sIGhvbGQgb24uIFRoZXJlJiMzOTtzIGFub3RoZXIgdmlydHVhbCBkcml2ZXIgaW4gdGhlIG1peDogYERSTV9WR0VNYC4gSSBuZWVkIHRvIGRvdWJsZS1jaGVjayBzb21ldGhpbmcuIElzIGBEUk1fVkdFTWAgYWxzbyBzZWxlY3RpbmcgYERSTV9DTElFTlRfU0VMRUNUSU9OYD8gV2UmIzM5O2xsIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgZGlmZmVyZW5jZXMgb2Ygc2VsZWN0aW9uIGFuZCB3aGVuIHRvIHVzZSB0aGVzZSBkcml2ZXJzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAwMToxMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgRFJNX1ZHRU0mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9ncHUvZHJtL3ZnZW0vS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuZHJpdmVycy9ncHUvZHJtL3ZnZW0vS2NvbmZpZzoyOmNvbmZpZyBEUk1fVkdFTVxuZHJpdmVycy9ncHUvZHJtL3ZnZW0vS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7VmlydHVhbCBHRU0gcHJvdmlkZXJcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjg5MDkKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzIEtjb25maWcgZmlsZSBmb3IgdGhlIHZpcnR1YWwgR0VNIGRyaXZlciDigJMgYGRyaXZlcnMvZ3B1L2RybS92Z2VtL0tjb25maWdgLiBJIG5lZWQgdG8gZ2V0IGEgY2xlYXIgdW5kZXJzdGFuZGluZyBvZiBpdHMgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCBkZXBlbmRlbmNpZXMuCgoqKktjb25maWcgQW5hbHlzaXMgZm9yIFZpcnR1YWwgR0VNKioKClJpZ2h0LCBzbyBJJiMzOTttIGdvaW5nIHRocm91Z2ggdGhpcyBLY29uZmlnIHRvIHNlZSBob3cgdGhlIHZpcnR1YWwgR0VNIGRyaXZlciBpcyBzZXQgdXAgZm9yIGNvbmZpZ3VyYXRpb24uIEl0JiMzOTtzIHRoZSBzdGFuZGFyZCBmb3JtYXQsIHdoaWNoIG1lYW5zIGl0IHNob3VsZCBiZSBzdHJhaWdodGZvcndhcmQgZW5vdWdoIHRvIHBhcnNlLiBJJiMzOTttIGxvb2tpbmcgZm9yIHRoZSBjb3JlIG9wdGlvbnMsIHRoZWlyIGRlZmF1bHRzLCBhbnkgZGVwZW5kZW5jaWVzIG9uIG90aGVyIGtlcm5lbCBmZWF0dXJlcyBvciBkcml2ZXJzLCBhbmQgb2YgY291cnNlLCB3aGF0JiMzOTtzIGNvbnRyb2xsaW5nIHRoZSBidWlsZCBwcm9jZXNzLgoKRmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHRoZXJlJiMzOTtzIGEgbWFpbiBzeW1ib2wuIFRoZW4gdGhlIGRlcGVuZGVuY2llcyBuZWVkIHRvIGJlIHVuZGVyc3Rvb2QgaW4gdGhlIGNvbnRleHQgb2Ygd2hhdCBoYXJkd2FyZSB0aGV5IHRhcmdldCwgb3Igd2hhdCBvdGhlciBvcHRpb25zIGFyZSBuZWVkZWQgZm9yIHRoZSBkcml2ZXIgdG8gd29yay4gSSB3aWxsIGJlIGxvb2tpbmcgdG8gc2VlIGlmIHRoZXJlIGlzIGFueSBtZW50aW9uIG9mIHRoaXMgZHJpdmVyIGJlaW5nIGV4cGVyaW1lbnRhbCwgaWYgaXQgaXMgc3RpbGwgYWN0aXZlLCBvciBpZiBpdCBpcyBkZXByZWNhdGVkLiBBbmQgb2YgY291cnNlLCBJIGFtIG9uIHRoZSBsb29rb3V0IGZvciBhbnkgaW50ZXJlc3Rpbmcgb3IgdW51c3VhbCBjb25maWd1cmF0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL2dwdS9kcm0vdmdlbS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAxMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4gICAyOlx0Y29uZmlnIERSTV9WR0VNXG4gICAzOlx0XHR0cmlzdGF0ZSBcJiMzNDtWaXJ0dWFsIEdFTSBwcm92aWRlclwmIzM0O1xuICAgNDpcdFx0ZGVwZW5kcyBvbiBEUk0gXHUwMDI2XHUwMDI2IE1NVVxuICAgNTpcdFx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXG4gICA2Olx0XHRoZWxwXG4gICA3Olx0XHQgIENob29zZSB0aGlzIG9wdGlvbiB0byBnZXQgYSB2aXJ0dWFsIGdyYXBoaWNzIG1lbW9yeSBtYW5hZ2VyLFxuICAgODpcdFx0ICBhcyB1c2VkIGJ5IE1lc2EmIzM5O3Mgc29mdHdhcmUgcmVuZGVyZXIgZm9yIGVuaGFuY2VkIHBlcmZvcm1hbmNlLlxuICAgOTpcdFx0ICBJZiBNIGlzIHNlbGVjdGVkIHRoZSBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgdmdlbS5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjkzMjAKCQkJCQkJCW91dHB1dDogMjUKCQkJCQkJCXRob3VnaHRzOiAxNTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgRFJNIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gVkdFTSBkb2VzbiYjMzk7dCB1dGlsaXplIEtNUy4gVGhhdCBpbW1lZGlhdGVseSBtZWFucyBJIG5lZWQgdG8gYnlwYXNzIHRoZSBgRFJNX0NMSUVOVF9TRUxFQ1RJT05gIGFuZCBmb2N1cyBvbiBgRFJNX1ZLTVNgIGluc3RlYWQuIFRoYXQmIzM5O3MgYSBrZXkgZmlyc3Qgc3RlcCBpbiBnZXR0aW5nIHRoaXMgd29ya2luZy4gSSBhbHNvIGtub3cgSSBzaG91bGQgZW5hYmxlIGBEUk1fRkJERVZfRU1VTEFUSU9OYC4gTm93LCB0aGUgbmV4dCBxdWVzdGlvbiBpcyBhYm91dCBob3cgdmJsYW5rIHdhaXRzIGFyZSBoYW5kbGVkIGluIHVzZXIgc3BhY2UuIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AgaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIGNhbGxzLgoKUmlnaHQsIGxldCBtZSBzZWUuLi4geWVzLCBJIGNhbiBzZWUgdGhhdCBgZHJtX2ZiX2hlbHBlcl9pb2N0bGAgaXMgY2FsbGluZyBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AsIHdoaWNoIHRoZW4gZ29lcyBvbiB0byBjYWxsIHRoZSBzcGVjaWZpYyBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYCBmdW5jdGlvbiB0aGF0IEkgYW0gaW50ZXJlc3RlZCBpbi4gRnVydGhlcm1vcmUsIEkgbmVlZCB0byByZW1pbmQgbXlzZWxmIHRoYXQgaXQgaXMgYWxzbyBjYWxsZWQgYnkgdGhvc2UgYXRvbWljIGNvbW1pdCBoZWxwZXJzLiBHb29kLCB0aGF0IGNvbmZpcm1zIG15IHVuZGVyc3RhbmRpbmcgb2YgdGhlIHZibGFuayBzeW5jaHJvbml6YXRpb24gcGF0aCBmb3IgYm90aCBsZWdhY3kgYW5kIGF0b21pYyBtb2Rlc2V0dGluZywgYW5kIGl0IHNlZW1zIHRoZSBpbXBsZW1lbnRhdGlvbiBpcyBzb2xpZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9kaXNwbGF5L2RybV9kcF9oZWxwZXIuYz0yMjg3PXN0YXRpYyB2b2lkIGRybV9kcF9hdXhfY3JjX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kaXNwbGF5L2RybV9kcF9oZWxwZXIuYy0yMzAwLVx0d2hpbGUgKGNydGMtXHUwMDNlY3JjLm9wZW5lZCkge1xuZHJpdmVycy9ncHUvZHJtL2Rpc3BsYXkvZHJtX2RwX2hlbHBlci5jOjIzMDE6XHRcdGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhjcnRjKTtcbmRyaXZlcnMvZ3B1L2RybS9kaXNwbGF5L2RybV9kcF9oZWxwZXIuYy0yMzAyLVx0XHRpZiAoIWNydGMtXHUwMDNlY3JjLm9wZW5lZClcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM9MTMwOT1pbnQgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayhzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgdW5zaWduZWQgaW50IGNydGNfaW5kZXgpXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEzMzAtXHRpZiAoIXJldCkge1xuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEzMzE6XHRcdGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzMyLVx0XHRkcm1fY3J0Y192YmxhbmtfcHV0KGNydGMpO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaD0xMTc9dTY0IGRybV92YmxhbmtfY291bnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oOjExODppbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgtMTE5LVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmM9MTI5OD1FWFBPUlRfU1lNQk9MKGRybV9jcnRjX3ZibGFua19wdXQpO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMtMTMwMC0vKipcbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmM6MTMwMTogKiBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwgLSB3YWl0IGZvciBvbmUgdmJsYW5rXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jLTEzMDItICogQGNydGM6IERSTSBjcnRjXG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYy0xMzA4LSAqL1xuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYzoxMzA5OmludCBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoc3RydWN0IGRybV9jcnRjICpjcnRjKVxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYy0xMzEwLXtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jLTEzMjYtLyoqXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jOjEzMjc6ICogZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rIC0gd2FpdCBmb3Igb25lIHZibGFua1xuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYy0xMzI4LSAqIEBjcnRjOiBEUk0gY3J0Y1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMtMTMzNS0gKi9cbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmM6MTMzNjppbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMtMTMzNy17XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYy0xMzQ2LVxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYzoxMzQ3Olx0cmV0ID0gZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKGNydGMpO1xuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYy0xMzQ4LVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMtMTM1NC19XG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jOjEzNTU6RVhQT1JUX1NZTUJPTChkcm1fY3J0Y193YWl0X29uZV92YmxhbmspO1xuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYy0xMzU2LVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0Yy5jPTY3PXZvaWQgaW50ZWxfY3J0Y193YWl0X2Zvcl9uZXh0X3ZibGFuayhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YylcbmRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0Yy5jLTY4LXtcbmRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0Yy5jOjY5Olx0ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKFx1MDAyNmNydGMtXHUwMDNlYmFzZSk7XG5kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NydGMuYy03MC19XG4tLVxuZHJpdmVycy9ncHUvZHJtL2luZ2VuaWMvaW5nZW5pYy1kcm0tZHJ2LmM9MjEzPXN0YXRpYyBpbnQgaW5nZW5pY19kcm1fdXBkYXRlX3BpeGNsayhzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9pbmdlbmljL2luZ2VuaWMtZHJtLWRydi5jLTIyMi1cdFx0cHJpdi1cdTAwM2V1cGRhdGVfY2xrX3JhdGUgPSB0cnVlO1xuZHJpdmVycy9ncHUvZHJtL2luZ2VuaWMvaW5nZW5pYy1kcm0tZHJ2LmM6MjIzOlx0XHRkcm1fY3J0Y193YWl0X29uZV92YmxhbmsoXHUwMDI2cHJpdi1cdTAwM2VjcnRjKTtcbmRyaXZlcnMvZ3B1L2RybS9pbmdlbmljL2luZ2VuaWMtZHJtLWRydi5jLTIyNC1cdFx0cmV0dXJuIE5PVElGWV9PSztcbi0tXG5kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2NydGMuYz04MDU9c3RhdGljIHZvaWQgbXRrX2NydGNfYXRvbWljX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY3J0Yy5jLTgzNi1cdC8qIFdhaXQgZm9yIHBsYW5lcyB0byBiZSBkaXNhYmxlZCAqL1xuZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19jcnRjLmM6ODM3Olx0ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKGNydGMpO1xuZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19jcnRjLmMtODM4LVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2NydGMuYz0zNj1zdGF0aWMgdm9pZCBzdGlfY3J0Y19hdG9taWNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsXG4tLVxuZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfY3J0Yy5jLTQ0LVxuZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfY3J0Yy5jOjQ1Olx0ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKGNydGMpO1xuZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfY3J0Yy5jLTQ2LX1cbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMuYz0xNzcxPXN0YXRpYyBpbnQgdGVncmFfZGNfc2hvd19jcmMoc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKVxuLS1cbmRyaXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5jLTE3ODgtXG5kcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMuYzoxNzg5Olx0ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKFx1MDAyNmRjLVx1MDAzZWJhc2UpO1xuZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmM6MTc5MDpcdGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhcdTAwMjZkYy1cdTAwM2ViYXNlKTtcbmRyaXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5jLTE3OTEtXG4tLVxuaW5jbHVkZS9kcm0vZHJtX3ZibGFuay5oPTMwND12b2lkIGRybV9jcnRjX3ZibGFua19wdXQoc3RydWN0IGRybV9jcnRjICpjcnRjKTtcbmluY2x1ZGUvZHJtL2RybV92YmxhbmsuaDozMDU6aW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpO1xuaW5jbHVkZS9kcm0vZHJtX3ZibGFuay5oLTMwNi12b2lkIGRybV9jcnRjX3ZibGFua19vZmYoc3RydWN0IGRybV9jcnRjICpjcnRjKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE0ODYKCQkJCQkJCW91dHB1dDogMTYKCQkJCQkJCXRob3VnaHRzOiA1OTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRFJNIENvcmUgVmJsYW5rIEhhbmRsaW5nIEZpeDogQSBEZWVwIERpdmUqKgoKT2theSwgc28gSSYjMzk7dmUgYmVlbiBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGhvdyBpdCBhZmZlY3RzIHRoZSBEUk0gY29yZSYjMzk7cyB2YmxhbmsgaGFuZGxpbmcsIHNwZWNpZmljYWxseSBhcm91bmQgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AuIFRoaXMgZnVuY3Rpb24sIGFzIHdlIGtub3csIGlzIHVzZWQgdGhyb3VnaG91dCB0aGUgZWNvc3lzdGVtLCBieSBtYW55IGRyaXZlcnMgYW5kIGhlbHBlciBmdW5jdGlvbnMuIFRoZSBwcm9ibGVtLCBhcyBJIHNlZSBpdCwgc3RlbXMgZnJvbSBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgbWFraW5nIGEgbmVzdGVkIGNhbGwg4oCTIGZpcnN0IGdldHRpbmcgdGhlIHZibGFuayBzdGF0dXMgd2l0aCBgZHJtX2NydGNfdmJsYW5rX2dldGAgYW5kICp0aGVuKiBjYWxsaW5nIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgLCB3aGljaCAqYWxzbyogY2FsbHMgYGRybV9jcnRjX3ZibGFua19nZXRgLiBUaGlzIGRvdWJsZS1kaXAsIHNvIHRvIHNwZWFrLCBjb3VsZCBsZWFkIHRvIHBvdGVudGlhbCBpc3N1ZXMsIHBlcmhhcHMgZXZlbiB0cmlnZ2VyaW5nIHRpbWVvdXRzLgoKVGhlIGZpeCwgaW50cm9kdWNpbmcgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAsIG5lYXRseSBhdm9pZHMgdGhpcyBuZXN0ZWQgYGdldC9wdXRgIGN5Y2xlLiBJdCYjMzk7cyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBEUk0gY29yZSwgYW5kIGl0JiMzOTtzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgZmJkZXYgaW9jdGxzIG9yIERSTSBhdG9taWMgY29tbWl0cywgYW5kIHRoYXQgbWVhbnMgaXQmIzM5O3MgZGVmaW5pdGVseSB3b3J0aCBmdXp6aW5nLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgaXMgdGVzdGVkIHRob3JvdWdobHkuCgpNeSBmb2N1cyBpcyBvbiB0aGVzZSBzeW1ib2xzOiBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AsIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgLCBhbmQgdGhlIG5ldyBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYC4KCkkgbmVlZCB0byBuYWlsIGRvd24gdGhlIHJpZ2h0IGNvbmZpZyBvcHRpb25zLiBJJiMzOTttIHRoaW5raW5nIGBEUk1fVktNU2AgYW5kIGBEUk1fRkJERVZfRU1VTEFUSU9OYCBzaG91bGQgYmUgc3VmZmljaWVudCwgYnV0IEkgbmVlZCB0byBiZSBzdXJlLiBMZXQmIzM5O3Mgc2VlLi4uIGBEUk1fVktNU2Agc2VsZWN0cyBgRFJNX0NMSUVOVF9TRUxFQ1RJT05gLiBBbmQgYERSTV9GQkRFVl9FTVVMQVRJT05gIGRlcGVuZHMgb24gYERSTV9DTElFTlRfU0VMRUNUSU9OYC4gU28sIHRoYXQgc2VlbXMgcmlnaHQuCgpOb3csIGRvIEkgbmVlZCBgRFJNX0NMSUVOVGAgZXhwbGljaXRseT8gTm9wZSwgYERSTV9GQkRFVl9FTVVMQVRJT05gIHNlbGVjdHMgYERSTV9DTElFTlRgLiBPa2F5LCB0aGF0JiMzOTtzIGdvb2QuCgpOZXh0LCBJIG5lZWQgdG8gY2hlY2sgdGhlIHNpZ25hdHVyZSBvZiBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYCBhbmQgd2hldGhlciBpdCYjMzk7cyBleHBvcnRlZC4gSXQgaXNuJiMzOTt0LCBidXQgaXQmIzM5O3MgZGVmaW5lZCBpbiBgZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuY2AgYW5kIGRlY2xhcmVkIGluIGBkcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmhgLiBTaW5jZSBpdCYjMzk7cyBub3QgYSBzdGF0aWMgZnVuY3Rpb24sIHRoZXJlICppcyogYSBzeW1ib2wuIEdvb2QuCgpJJiMzOTtsbCBjb25maXJtIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBpcyBleHBvcnRlZCBhbmQgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AgaXMgYWxzbyBleHBvcnRlZC4gWWVzLCB0aGV5IGJvdGggYXJlLgoKRmluYWxseSwgYXJlIHRoZXJlIGFueSBvdGhlciBjcnVjaWFsIGNvbmZpZ3M/IExldCYjMzk7cyBzZWUuLi4gSSYjMzk7bSB3b25kZXJpbmcgYWJvdXQgYEZCYC4gRG9lcyBgRFJNX0ZCREVWX0VNVUxBVElPTmAgcmVxdWlyZSB0aGF0PyBMZXQmIzM5O3MgY2hlY2sgdGhlIGRlcGVuZGVuY2llcy4gYERSTV9GQkRFVl9FTVVMQVRJT05gIGRlcGVuZHMgb24gYERSTV9DTElFTlRfU0VMRUNUSU9OYCwgYW5kIGl0IHNlbGVjdHMgYERSTV9DTElFTlRgIGFuZCBgRFJNX0NMSUVOVF9TRVRVUGAsIGFuZCBpdCAqZGVmYXVsdHMqIHRvIGBGQmAuIFdhaXQsIHRoZSAqZGVmYXVsdCogdmFsdWUsIG1lYW5zIGl0IGRlZmF1bHRzIHRvIHRoZSB2YWx1ZSBvZiBgRkJgLiBBbmQgaXMgYEZCYCBuZWVkZWQ/IEl0IGxvb2tzIGxpa2UgSSBtYXkgbm90IG5lZWQgYEZCYC4gSSB3aWxsIGludmVzdGlnYXRlIGZ1cnRoZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDAxOjEzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBGQiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTA1NCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWV0YS9LY29uZmlnPTE4PWlmIE5FVF9WRU5ET1JfTUVUQVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWV0YS9LY29uZmlnLTE5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWV0YS9LY29uZmlnOjIwOmNvbmZpZyBGQk5JQ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWV0YS9LY29uZmlnLTIxLVx0dHJpc3RhdGUgXCYjMzQ7TWV0YSBQbGF0Zm9ybXMgSG9zdCBOZXR3b3JrIEludGVyZmFjZVwmIzM0O1xuLS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MjptZW51Y29uZmlnIEZCX1RGVFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O1N1cHBvcnQgZm9yIHNtYWxsIFRGVCBMQ0QgZGlzcGxheSBtb2R1bGVzXCYjMzQ7XG4tLVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc9MTQ9aWYgRkJfVEZUXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xNS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjE2OmNvbmZpZyBGQl9URlRfQUdNMTI2NEtfRkxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTE3LVx0dHJpc3RhdGUgXCYjMzQ7RkIgZHJpdmVyIGZvciB0aGUgQUdNMTI2NEstRkwgTENEIGRpc3BsYXlcJiMzNDtcbi0tXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0yMC1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjIxOmNvbmZpZyBGQl9URlRfQkQ2NjM0NzRcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTIyLVx0dHJpc3RhdGUgXCYjMzQ7RkIgZHJpdmVyIGZvciB0aGUgQkQ2NjM0NzQgTENEIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0yNS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjI2OmNvbmZpZyBGQl9URlRfSFg4MzQwQk5cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTI3LVx0dHJpc3RhdGUgXCYjMzQ7RkIgZHJpdmVyIGZvciB0aGUgSFg4MzQwQk4gTENEIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0zMC1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjMxOmNvbmZpZyBGQl9URlRfSFg4MzQ3RFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMzItXHR0cmlzdGF0ZSBcJiMzNDtGQiBkcml2ZXIgZm9yIHRoZSBIWDgzNDdEIExDRCBDb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMzUtXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzozNjpjb25maWcgRkJfVEZUX0hYODM1M0RcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTM3LVx0dHJpc3RhdGUgXCYjMzQ7RkIgZHJpdmVyIGZvciB0aGUgSFg4MzUzRCBMQ0QgQ29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTQwLVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6NDE6Y29uZmlnIEZCX1RGVF9IWDgzNTdEXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy00Mi1cdHRyaXN0YXRlIFwmIzM0O0ZCIGRyaXZlciBmb3IgdGhlIEhYODM1N0QgTENEIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy00NS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjQ2OmNvbmZpZyBGQl9URlRfSUxJOTE2M1xuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctNDctXHR0cmlzdGF0ZSBcJiMzNDtGQiBkcml2ZXIgZm9yIHRoZSBJTEk5MTYzIExDRCBDb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctNTAtXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzo1MTpjb25maWcgRkJfVEZUX0lMSTkzMjBcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTUyLVx0dHJpc3RhdGUgXCYjMzQ7RkIgZHJpdmVyIGZvciB0aGUgSUxJOTMyMCBMQ0QgQ29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTU1LVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6NTY6Y29uZmlnIEZCX1RGVF9JTEk5MzI1XG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy01Ny1cdHRyaXN0YXRlIFwmIzM0O0ZCIGRyaXZlciBmb3IgdGhlIElMSTkzMjUgTENEIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy02MC1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjYxOmNvbmZpZyBGQl9URlRfSUxJOTM0MFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctNjItXHR0cmlzdGF0ZSBcJiMzNDtGQiBkcml2ZXIgZm9yIHRoZSBJTEk5MzQwIExDRCBDb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctNjUtXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzo2Njpjb25maWcgRkJfVEZUX0lMSTkzNDFcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTY3LVx0dHJpc3RhdGUgXCYjMzQ7RkIgZHJpdmVyIGZvciB0aGUgSUxJOTM0MSBMQ0QgQ29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTcwLVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6NzE6Y29uZmlnIEZCX1RGVF9JTEk5NDgxXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy03Mi1cdHRyaXN0YXRlIFwmIzM0O0ZCIGRyaXZlciBmb3IgdGhlIElMSTk0ODEgTENEIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy03NS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjc2OmNvbmZpZyBGQl9URlRfSUxJOTQ4NlxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctNzctXHR0cmlzdGF0ZSBcJiMzNDtGQiBkcml2ZXIgZm9yIHRoZSBJTEk5NDg2IExDRCBDb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctODAtXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzo4MTpjb25maWcgRkJfVEZUX1BDRDg1NDRcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTgyLVx0dHJpc3RhdGUgXCYjMzQ7RkIgZHJpdmVyIGZvciB0aGUgUENEODU0NCBMQ0QgQ29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTg1LVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6ODY6Y29uZmlnIEZCX1RGVF9SQTg4NzVcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTg3LVx0dHJpc3RhdGUgXCYjMzQ7RkIgZHJpdmVyIGZvciB0aGUgUkE4ODc1IExDRCBDb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctOTQtXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzo5NTpjb25maWcgRkJfVEZUX1M2RDAyQTFcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTk2LVx0dHJpc3RhdGUgXCYjMzQ7RkIgZHJpdmVyIGZvciB0aGUgUzZEMDJBMSBMQ0QgQ29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTk5LVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MTAwOmNvbmZpZyBGQl9URlRfUzZEMTEyMVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTAxLVx0dHJpc3RhdGUgXCYjMzQ7RkIgZHJpdmVyIGZvciB0aGUgUzZEMTIxMSBMQ0QgQ29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTEwNC1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjEwNTpjb25maWcgRkJfVEZUX1NFUFM1MjVcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTEwNi1cdHRyaXN0YXRlIFwmIzM0O0ZCIGRyaXZlciBmb3IgdGhlIFNFUFM1MjUgTENEIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xMTAtXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzoxMTE6Y29uZmlnIEZCX1RGVF9TSDExMDZcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTExMi1cdHRyaXN0YXRlIFwmIzM0O0ZCIGRyaXZlciBmb3IgdGhlIFNIMTEwNiBPTEVEIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xMTUtXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzoxMTY6Y29uZmlnIEZCX1RGVF9TU0QxMjg5XG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xMTctXHR0cmlzdGF0ZSBcJiMzNDtGQiBkcml2ZXIgZm9yIHRoZSBTU0QxMjg5IExDRCBDb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTIwLVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MTIxOmNvbmZpZyBGQl9URlRfU1NEMTMwNVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTIyLVx0dHJpc3RhdGUgXCYjMzQ7RkIgZHJpdmVyIGZvciB0aGUgU1NEMTMwNSBPTEVEIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xMjUtXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzoxMjY6Y29uZmlnIEZCX1RGVF9TU0QxMzA2XG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xMjctXHR0cmlzdGF0ZSBcJiMzNDtGQiBkcml2ZXIgZm9yIHRoZSBTU0QxMzA2IE9MRUQgQ29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTEzMC1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjEzMTpjb25maWcgRkJfVEZUX1NTRDEzMzFcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTEzMi1cdHRyaXN0YXRlIFwmIzM0O0ZCIGRyaXZlciBmb3IgdGhlIFNTRDEzMzEgTENEIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xMzUtXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzoxMzY6Y29uZmlnIEZCX1RGVF9TU0QxMzUxXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xMzctXHR0cmlzdGF0ZSBcJiMzNDtGQiBkcml2ZXIgZm9yIHRoZSBTU0QxMzUxIExDRCBDb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTQwLVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MTQxOmNvbmZpZyBGQl9URlRfU1Q3NzM1UlxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTQyLVx0dHJpc3RhdGUgXCYjMzQ7RkIgZHJpdmVyIGZvciB0aGUgU1Q3NzM1UiBMQ0QgQ29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTE0NS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjE0Njpjb25maWcgRkJfVEZUX1NUNzc4OVZcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTE0Ny1cdHRyaXN0YXRlIFwmIzM0O0ZCIGRyaXZlciBmb3IgdGhlIFNUNzc4OVYgTENEIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xNTQtXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzoxNTU6Y29uZmlnIEZCX1RGVF9USU5ZTENEXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xNTYtXHR0cmlzdGF0ZSBcJiMzNDtGQiBkcml2ZXIgZm9yIHRpbnlsY2QuY29tIGRpc3BsYXlcJiMzNDtcbi0tXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xNTktXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzoxNjA6Y29uZmlnIEZCX1RGVF9UTFM4MjA0XG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xNjEtXHR0cmlzdGF0ZSBcJiMzNDtGQiBkcml2ZXIgZm9yIHRoZSBUTFM4MjA0IExDRCBDb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTY0LVxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MTY1OmNvbmZpZyBGQl9URlRfVUMxNjExXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xNjYtXHR0cmlzdGF0ZSBcJiMzNDtGQiBkcml2ZXIgZm9yIHRoZSBVQzE2MTEgTENEIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xNjktXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzoxNzA6Y29uZmlnIEZCX1RGVF9VQzE3MDFcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTE3MS1cdHRyaXN0YXRlIFwmIzM0O0ZCIGRyaXZlciBmb3IgdGhlIFVDMTcwMSBMQ0QgQ29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTE3NC1cbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjE3NTpjb25maWcgRkJfVEZUX1VQRDE2MTcwNFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTc2LVx0dHJpc3RhdGUgXCYjMzQ7RkIgZHJpdmVyIGZvciB0aGUgdVBEMTYxNzA0IExDRCBDb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zdGFnaW5nL3NtNzUwZmIvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbmRyaXZlcnMvc3RhZ2luZy9zbTc1MGZiL0tjb25maWc6Mjpjb25maWcgRkJfU003NTBcbmRyaXZlcnMvc3RhZ2luZy9zbTc1MGZiL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O1NpbGljb24gTW90aW9uIFNNNzUwIGZyYW1lYnVmZmVyIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo2Om1lbnVjb25maWcgRkJcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy03LVx0dHJpc3RhdGUgXCYjMzQ7U3VwcG9ydCBmb3IgZnJhbWUgYnVmZmVyIGRldmljZSBkcml2ZXJzXCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTQ3LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjQ4OmNvbmZpZyBGQl9IRUNVQkFcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00OS1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTUyLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjUzOmNvbmZpZyBGQl9TVkdBTElCXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNTQtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01OS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo2MDpjb25maWcgRkJfTUFDTU9ERVNcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02MS1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTYzLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjY0OmNvbmZpZyBGQl9HUlZHQVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTY1LVx0dHJpc3RhdGUgXCYjMzQ7QWVyb2ZsZXggR2Fpc2xlciBmcmFtZWJ1ZmZlciBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTcwLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjcxOmNvbmZpZyBGQl9DSVJSVVNcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy03Mi1cdHRyaXN0YXRlIFwmIzM0O0NpcnJ1cyBMb2dpYyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTg5LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjkwOmNvbmZpZyBGQl9QTTJcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy05MS1cdHRyaXN0YXRlIFwmIzM0O1Blcm1lZGlhMiBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTExMC1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoxMTE6Y29uZmlnIEZCX1BNMl9GSUZPX0RJU0NPTk5FQ1RcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xMTItXHRib29sIFwmIzM0O2VuYWJsZSBGSUZPIGRpc2Nvbm5lY3QgZmVhdHVyZVwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xMTYtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTE3OmNvbmZpZyBGQl9BQ09STlxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTExOC1cdGJvb2wgXCYjMzQ7QWNvcm4gVklEQyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEyNS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoxMjY6Y29uZmlnIEZCX0NMUFM3MTFYXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTI3LVx0dHJpc3RhdGUgXCYjMzQ7Q0xQUzcxMVggTENEIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTM2LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjEzNzpjb25maWcgRkJfU0ExMTAwXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTM4LVx0Ym9vbCBcJiMzNDtTQS0xMTAwIExDRCBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTE0OC1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoxNDk6Y29uZmlnIEZCX0lNWFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTE1MC1cdHRyaXN0YXRlIFwmIzM0O0ZyZWVzY2FsZSBpLk1YMS8yMS8yNS8yNyBMQ0Qgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xNTctXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTU4OmNvbmZpZyBGQl9DWUJFUjIwMDBcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xNTktXHR0cmlzdGF0ZSBcJiMzNDtDeWJlclBybyAyMDAwLzIwMTAvNTAwMCBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTE2Ny1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoxNjg6Y29uZmlnIEZCX0NZQkVSMjAwMF9ERENcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xNjktXHRib29sIFwmIzM0O0REQyBmb3IgQ3liZXJQcm8gc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xNzYtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTc3OmNvbmZpZyBGQl9DWUJFUjIwMDBfSTJDXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTc4LVx0Ym9vbCBcJiMzNDtDeWJlclBybyAyMDAwLzIwMTAvNTAwMCBJMkMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xODYtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTg3OmNvbmZpZyBGQl9BUE9MTE9cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xODgtXHRib29sXG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTE5NC1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoxOTU6Y29uZmlnIEZCX1E0MFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTE5Ni1cdGJvb2xcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjAwLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjIwMTpjb25maWcgRkJfQU1JR0FcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0yMDItXHR0cmlzdGF0ZSBcJiMzNDtBbWlnYSBuYXRpdmUgY2hpcHNldCBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTIxMS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoyMTI6Y29uZmlnIEZCX0FNSUdBX09DU1xuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTIxMy1cdGJvb2wgXCYjMzQ7QW1pZ2EgT0NTIGNoaXBzZXQgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0yMTktXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MjIwOmNvbmZpZyBGQl9BTUlHQV9FQ1NcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0yMjEtXHRib29sIFwmIzM0O0FtaWdhIEVDUyBjaGlwc2V0IHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjI4LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjIyOTpjb25maWcgRkJfQU1JR0FfQUdBXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjMwLVx0Ym9vbCBcJiMzNDtBbWlnYSBBR0EgY2hpcHNldCBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTIzNy1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoyMzg6Y29uZmlnIEZCX0ZNMlxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTIzOS1cdGJvb2wgXCYjMzQ7QW1pZ2EgRnJhbWVNYXN0ZXIgSUkvUmFpbmJvdyBJSSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTI0NS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoyNDY6Y29uZmlnIEZCX0FSQ1xuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTI0Ny1cdHRyaXN0YXRlIFwmIzM0O0FyYyBNb25vY2hyb21lIExDRCBib2FyZCBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTI1OC1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoyNTk6Y29uZmlnIEZCX0FUQVJJXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjYwLVx0Ym9vbCBcJiMzNDtBdGFyaSBuYXRpdmUgY2hpcHNldCBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTI2OS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoyNzA6Y29uZmlnIEZCX09GXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjcxLVx0dHJpc3RhdGUgXCYjMzQ7T3BlbiBGaXJtd2FyZSBmcmFtZSBidWZmZXIgZGV2aWNlIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjgwLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjI4MTpjb25maWcgRkJfQ09OVFJPTFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTI4Mi1cdGJvb2wgXCYjMzQ7QXBwbGUgXFxcJiMzNDtjb250cm9sXFxcJiMzNDsgZGlzcGxheSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTI4OS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoyOTA6Y29uZmlnIEZCX1BMQVRJTlVNXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjkxLVx0Ym9vbCBcJiMzNDtBcHBsZSBcXFwmIzM0O3BsYXRpbnVtXFxcJiMzNDsgZGlzcGxheSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTI5OC1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoyOTk6Y29uZmlnIEZCX1ZBTEtZUklFXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMzAwLVx0Ym9vbCBcJiMzNDtBcHBsZSBcXFwmIzM0O3ZhbGt5cmllXFxcJiMzNDsgZGlzcGxheSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTMwNy1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzozMDg6Y29uZmlnIEZCX0NUNjU1NTBcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0zMDktXHRib29sIFwmIzM0O0NoaXBzIDY1NTUwIGRpc3BsYXkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0zMTUtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MzE2OmNvbmZpZyBGQl9BU0lMSUFOVFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTMxNy1cdGJvb2wgXCYjMzQ7QXNpbGlhbnQgKENoaXBzKSA2OTAwMCBkaXNwbGF5IHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMzIyLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjMyMzpjb25maWcgRkJfSU1TVFRcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0zMjQtXHRib29sIFwmIzM0O0lNUyBUd2luIFR1cmJvIGRpc3BsYXkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0zMzItXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MzMzOmNvbmZpZyBGQl9WR0ExNlxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTMzNC1cdHRyaXN0YXRlIFwmIzM0O1ZHQSAxNi1jb2xvciBncmFwaGljcyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTM0OS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzozNTA6Y29uZmlnIEZCX1NUSVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTM1MS1cdHRyaXN0YXRlIFwmIzM0O0hQIFNUSSBmcmFtZSBidWZmZXIgZGV2aWNlIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMzY5LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjM3MDpjb25maWcgRkJfTUFDXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMzcxLVx0Ym9vbCBcJiMzNDtHZW5lcmljIE1hY2ludG9zaCBkaXNwbGF5IHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMzc1LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjM3Njpjb25maWcgRkJfSFAzMDBcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0zNzctXHRib29sXG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTM4Mi1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzozODM6Y29uZmlnIEZCX1RHQVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTM4NC1cdHRyaXN0YXRlIFwmIzM0O1RHQS9TRkImIzQzOyBmcmFtZWJ1ZmZlciBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTQwNi1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo0MDc6Y29uZmlnIEZCX1VWRVNBXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDA4LVx0dHJpc3RhdGUgXCYjMzQ7VXNlcnNwYWNlIFZFU0EgVkdBIGdyYXBoaWNzIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDIzLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjQyNDpjb25maWcgRkJfVkVTQVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTQyNS1cdGJvb2wgXCYjMzQ7VkVTQSBWR0EgZ3JhcGhpY3Mgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00MzUtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NDM2OmNvbmZpZyBGQl9FRklcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00MzctXHRib29sIFwmIzM0O0VGSS1iYXNlZCBGcmFtZWJ1ZmZlciBTdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTQ0Ny1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo0NDg6Y29uZmlnIEZCX040MTFcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00NDktXHR0cmlzdGF0ZSBcJiMzNDtONDExIEFwb2xsby9IZWN1YmEgZGV2a2l0IHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDU1LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjQ1Njpjb25maWcgRkJfR0JFXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDU3LVx0Ym9vbCBcJiMzNDtTR0kgR3JhcGhpY3MgQmFja2VuZCBmcmFtZSBidWZmZXIgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00NjQtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NDY1OmNvbmZpZyBGQl9HQkVfTUVNXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDY2LVx0aW50IFwmIzM0O1ZpZGVvIG1lbW9yeSBzaXplIGluIE1CXCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTQ3Mi1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo0NzM6Y29uZmlnIEZCX1NCVVNcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00NzQtXHRib29sIFwmIzM0O1NCVVMgYW5kIFVQQSBmcmFtZWJ1ZmZlcnNcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDc4LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjQ3OTpjb25maWcgRkJfU0JVU19IRUxQRVJTXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDgwLVx0Ym9vbFxuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00ODUtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NDg2OmNvbmZpZyBGQl9CVzJcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00ODctXHRib29sIFwmIzM0O0JXdHdvIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDkyLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjQ5Mzpjb25maWcgRkJfQ0czXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDk0LVx0Ym9vbCBcJiMzNDtDR3RocmVlIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDk5LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjUwMDpjb25maWcgRkJfQ0c2XG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNTAxLVx0Ym9vbCBcJiMzNDtDR3NpeCAoR1gsVHVyYm9HWCkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01MDktXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NTEwOmNvbmZpZyBGQl9GRkJcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01MTEtXHRib29sIFwmIzM0O0NyZWF0b3IvQ3JlYXRvcjNEL0VsaXRlM0Qgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01MTktXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NTIwOmNvbmZpZyBGQl9UQ1hcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01MjEtXHRib29sIFwmIzM0O1RDWCAoU1M0L1NTNSBvbmx5KSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTUyNy1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo1Mjg6Y29uZmlnIEZCX0NHMTRcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01MjktXHRib29sIFwmIzM0O0NHZm91cnRlZW4gKFNYKSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTUzNS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo1MzY6Y29uZmlnIEZCX1A5MTAwXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNTM3LVx0Ym9vbCBcJiMzNDtQOTEwMCAoU3BhcmNib29rIDMgb25seSkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01NDMtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NTQ0OmNvbmZpZyBGQl9MRU9cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01NDUtXHRib29sIFwmIzM0O0xlbyAoWlgpIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNTUxLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjU1Mjpjb25maWcgRkJfWFZSNTAwXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNTUzLVx0Ym9vbCBcJiMzNDtTdW4gWFZSLTUwMCAzRExBQlMgV2lsZGNhdCBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTU2NS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo1NjY6Y29uZmlnIEZCX1hWUjI1MDBcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01NjctXHRib29sIFwmIzM0O1N1biBYVlItMjUwMCAzRExBQlMgV2lsZGNhdCBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTU3Ni1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo1Nzc6Y29uZmlnIEZCX1hWUjEwMDBcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01NzgtXHRib29sIFwmIzM0O1N1biBYVlItMTAwMCBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTU4Ni1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo1ODc6Y29uZmlnIEZCX1BWUjJcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01ODgtXHR0cmlzdGF0ZSBcJiMzNDtORUMgUG93ZXJWUiAyIGRpc3BsYXkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02MDktXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NjEwOmNvbmZpZyBGQl9PUEVOQ09SRVNcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02MTEtXHR0cmlzdGF0ZSBcJiMzNDtPcGVuQ29yZXMgVkdBL0xDRCBjb3JlIDIuMCBmcmFtZWJ1ZmZlciBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTYyMy1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo2MjQ6Y29uZmlnIEZCX1MxRDEzWFhYXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNjI1LVx0dHJpc3RhdGUgXCYjMzQ7RXBzb24gUzFEMTNYWFggZnJhbWVidWZmZXIgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02MzUtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NjM2OmNvbmZpZyBGQl9BVE1FTFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTYzNy1cdHRyaXN0YXRlIFwmIzM0O0FUOTEgTENEIENvbnRyb2xsZXIgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02NDctXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NjQ4OmNvbmZpZyBGQl9OVklESUFcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02NDktXHR0cmlzdGF0ZSBcJiMzNDtuVmlkaWEgRnJhbWVidWZmZXIgU3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02NjctXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NjY4OmNvbmZpZyBGQl9OVklESUFfSTJDXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNjY5LVx0Ym9vbCBcJiMzNDtFbmFibGUgRERDIFN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNjgwLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjY4MTpjb25maWcgRkJfTlZJRElBX0RFQlVHXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNjgyLVx0Ym9vbCBcJiMzNDtMb3RzIG9mIGRlYnVnIG91dHB1dFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02ODgtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6Njg5OmNvbmZpZyBGQl9OVklESUFfQkFDS0xJR0hUXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNjkwLVx0Ym9vbCBcJiMzNDtTdXBwb3J0IGZvciBiYWNrbGlnaHQgY29udHJvbFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02OTctXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6Njk4OmNvbmZpZyBGQl9SSVZBXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNjk5LVx0dHJpc3RhdGUgXCYjMzQ7blZpZGlhIFJpdmEgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy03MTUtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NzE2OmNvbmZpZyBGQl9SSVZBX0kyQ1xuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTcxNy1cdGJvb2wgXCYjMzQ7RW5hYmxlIEREQyBTdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTcyOC1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo3Mjk6Y29uZmlnIEZCX1JJVkFfREVCVUdcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy03MzAtXHRib29sIFwmIzM0O0xvdHMgb2YgZGVidWcgb3V0cHV0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTczNi1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo3Mzc6Y29uZmlnIEZCX1JJVkFfQkFDS0xJR0hUXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNzM4LVx0Ym9vbCBcJiMzNDtTdXBwb3J0IGZvciBiYWNrbGlnaHQgY29udHJvbFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy03NDUtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NzQ2OmNvbmZpZyBGQl9JNzQwXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNzQ3LVx0dHJpc3RhdGUgXCYjMzQ7SW50ZWw3NDAgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy03NTUtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NzU2OmNvbmZpZyBGQl9JODEwXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNzU3LVx0dHJpc3RhdGUgXCYjMzQ7SW50ZWwgODEwLzgxNSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTc3MS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo3NzI6Y29uZmlnIEZCX0k4MTBfR1RGXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNzczLVx0Ym9vbCBcJiMzNDt1c2UgVkVTQSBHZW5lcmFsaXplZCBUaW1pbmcgRm9ybXVsYVwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy03OTQtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6Nzk1OmNvbmZpZyBGQl9JODEwX0kyQ1xuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTc5Ni1cdGJvb2wgXCYjMzQ7RW5hYmxlIEREQyBTdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTgwNC1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo4MDU6Y29uZmlnIEZCX01BVFJPWFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTgwNi1cdHRyaXN0YXRlIFwmIzM0O01hdHJveCBhY2NlbGVyYXRpb25cJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctODI2LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjgyNzpjb25maWcgRkJfTUFUUk9YX01JTExFTklVTVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTgyOC1cdGJvb2wgXCYjMzQ7TWlsbGVubml1bSBJL0lJIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctODM2LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjgzNzpjb25maWcgRkJfTUFUUk9YX01ZU1RJUVVFXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctODM4LVx0Ym9vbCBcJiMzNDtNeXN0aXF1ZSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTg0Ni1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo4NDc6Y29uZmlnIEZCX01BVFJPWF9HXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctODQ4LVx0Ym9vbCBcJiMzNDtHMTAwL0cyMDAvRzQwMC9HNDUwL0c1NTAgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy04NzYtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6ODc3OmNvbmZpZyBGQl9NQVRST1hfSTJDXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctODc4LVx0dHJpc3RhdGUgXCYjMzQ7TWF0cm94IEkyQyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTg5My1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo4OTQ6Y29uZmlnIEZCX01BVFJPWF9NQVZFTlxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTg5NS1cdHRyaXN0YXRlIFwmIzM0O0c0MDAgc2Vjb25kIGhlYWQgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy05MjUtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6OTI2OmNvbmZpZyBGQl9SQURFT05cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy05MjctXHR0cmlzdGF0ZSBcJiMzNDtBVEkgUmFkZW9uIGRpc3BsYXkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy05MzktXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6OTQwOmNvbmZpZyBGQl9SQURFT05fSTJDXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctOTQxLVx0Ym9vbCBcJiMzNDtEREMvSTJDIGZvciBBVEkgUmFkZW9uIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctOTQ3LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjk0ODpjb25maWcgRkJfUkFERU9OX0JBQ0tMSUdIVFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTk0OS1cdGJvb2wgXCYjMzQ7U3VwcG9ydCBmb3IgYmFja2xpZ2h0IGNvbnRyb2xcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctOTU2LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjk1Nzpjb25maWcgRkJfUkFERU9OX0RFQlVHXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctOTU4LVx0Ym9vbCBcJiMzNDtMb3RzIG9mIGRlYnVnIG91dHB1dCBmcm9tIFJhZGVvbiBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctOTY0LVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjk2NTpjb25maWcgRkJfQVRZMTI4XG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctOTY2LVx0dHJpc3RhdGUgXCYjMzQ7QVRJIFJhZ2UxMjggZGlzcGxheSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTk3Ny1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo5Nzg6Y29uZmlnIEZCX0FUWTEyOF9CQUNLTElHSFRcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy05NzktXHRib29sIFwmIzM0O1N1cHBvcnQgZm9yIGJhY2tsaWdodCBjb250cm9sXCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTk4Ni1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo5ODc6Y29uZmlnIEZCX0FUWVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTk4OC1cdHRyaXN0YXRlIFwmIzM0O0FUSSBNYWNoNjQgZGlzcGxheSBzdXBwb3J0XCYjMzQ7IGlmIFBDSSB8fCBBVEFSSVxuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xMDAyLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjEwMDM6Y29uZmlnIEZCX0FUWV9DVFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEwMDQtXHRib29sIFwmIzM0O01hY2g2NCBDVC9WVC9HVC9MVCAoaW5jbC4gM0QgUkFHRSkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xMDExLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjEwMTI6Y29uZmlnIEZCX0FUWV9HRU5FUklDX0xDRFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEwMTMtXHRib29sIFwmIzM0O01hY2g2NCBnZW5lcmljIExDRCBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEwMTgtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTAxOTpjb25maWcgRkJfQVRZX0dYXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTAyMC1cdGJvb2wgXCYjMzQ7TWFjaDY0IEdYIHN1cHBvcnRcJiMzNDsgaWYgUENJXG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEwMjktXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTAzMDpjb25maWcgRkJfQVRZX0JBQ0tMSUdIVFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEwMzEtXHRib29sIFwmIzM0O1N1cHBvcnQgZm9yIGJhY2tsaWdodCBjb250cm9sXCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEwMzgtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTAzOTpjb25maWcgRkJfUzNcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xMDQwLVx0dHJpc3RhdGUgXCYjMzQ7UzMgVHJpby9WaXJnZSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEwNTMtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTA1NDpjb25maWcgRkJfUzNfRERDXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTA1NS1cdGJvb2wgXCYjMzQ7RERDIGZvciBTMyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEwNjEtXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTA2Mjpjb25maWcgRkJfU0FWQUdFXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDE0MzUKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiA1OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKk5hdmlnYXRpbmcgdGhlIEZyYW1lYnVmZmVyIExhbmRzY2FwZSoqCgpBbHJpZ2h0LCBsZXQmIzM5O3Mgc2VlLiBUaGUgaW5pdGlhbCBgRkJgIOKAkyB0aGF0JiMzOTtzIHNob3J0IGZvciBmcmFtZWJ1ZmZlciwgYW5kIGBDT05GSUdfRkJgIHNlZW1zIHRvIGJlIHRoZSBjb3JlLCB0aGUgZm91bmRhdGlvbmFsIGNvbXBvbmVudC4gU28gZmFyLCBzbyBnb29kLCBtYWtlcyBzZW5zZS4gTm93LCBgRFJNX0ZCREVWX0VNVUxBVElPTmAuLi4gSSYjMzk7bSBwcmV0dHkgc3VyZSB0aGF0IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBsaW5raW5nIHRoaW5ncyB1cCB3aXRoIGBGQl9DT1JFYCwgb3IgYXQgbGVhc3Qgc29tZXRoaW5nIGluIHRoYXQgdmljaW5pdHkuIEJ1dCBJIHJlYWxseSBzaG91bGQgZG91YmxlLWNoZWNrIHRoZSBgS2NvbmZpZ2AgZmlsZXMgYWdhaW4uIEJldHRlciBzYWZlIHRoYW4gc29ycnksIHNwZWNpZmljYWxseSBpbiBgZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZ2AgdG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluLiBBbHdheXMgZ29vZCB0byByZWZyZXNoIHRoZSBtZW1vcnkgd2l0aCB0aG9zZSBjcnVjaWFsIGRlcGVuZGVuY3kgZGVjbGFyYXRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAwMToxMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgRFJNX0ZCREVWX0VNVUxBVElPTiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZz0yOD1tZW51IFwmIzM0O1N1cHBvcnRlZCBEUk0gY2xpZW50c1wmIzM0O1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMzAtXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjMxOmNvbmZpZyBEUk1fRkJERVZfRU1VTEFUSU9OXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMyLVx0Ym9vbCBcJiMzNDtFbmFibGUgbGVnYWN5IGZiZGV2IHN1cHBvcnQgZm9yIHlvdXIgbW9kZXNldHRpbmcgZHJpdmVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDAxOjEzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQxODA0CgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEaXZpbmcgQmFjayBpbnRvIHRoZSBEUk0gQ2xpZW50IEtjb25maWcqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGNpcmNsZSBiYWNrIHRvIGBkcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnYCwgc3BlY2lmaWNhbGx5IGFyb3VuZCBsaW5lIDMxLiBJJiMzOTttIGdvaW5nIHRvIHJlLWV4YW1pbmUgdGhhdCBzZWN0aW9uIHRvIHJlZnJlc2ggbXkgdW5kZXJzdGFuZGluZyBvZiBob3cgdGhlIGNsaWVudCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHN0cnVjdHVyZWQuIEkmIzM5O20gcHJvYmFibHkgbG9va2luZyBmb3IgYSBzcGVjaWZpYyBkZXBlbmRlbmN5IG9yIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIHZhcmlhYmxlIHRoYXQmIzM5O3MgYmVlbiBuYWdnaW5nIGF0IG1lLiBQZXJoYXBzIEnigJltIHRyeWluZyB0byBzb2xpZGlmeSBteSBncmFzcCBvbiBhIHN1YnRsZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIGRpZmZlcmVudCBjbGllbnQgZHJpdmVycyBvciB0cnlpbmcgdG8gdHJhY2sgZG93biBhIGNvbmZpZ3VyYXRpb24gaXNzdWUgSeKAmXZlIGVuY291bnRlcmVkIHJlY2VudGx5LiBPciwgbWF5YmUgSSYjMzk7bSByZXZpZXdpbmcgdGhlIG92ZXJhbGwgYXJjaGl0ZWN0dXJlIGJlZm9yZSBzb21lIGltcGVuZGluZyBjaGFuZ2Ugb3IgY29udHJpYnV0aW9uLiBMZXQgbWUgbWFrZSBzdXJlIEkmIzM5O20gbm90IG1pc3NpbmcgYW55IGVkZ2UgY2FzZXMgb3IgZGVwZW5kZW5jaWVzIEkgbWlnaHQmIzM5O3ZlIG1pc3NlZCB0aGUgZmlyc3QgdGltZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjUsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAyNTpcdFx0ICBFbmFibGVzIHRoZSBEUk0gY2xpZW50IHNlbGVjdGlvbi4gRFJNIGRyaXZlcnMgdGhhdCBzdXBwb3J0IHRoZVxuICAyNjpcdFx0ICBkZWZhdWx0IGNsaWVudHMgc2hvdWxkIHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTiBpbnN0ZWFkLlxuICAyNzpcdFxuICAyODpcdG1lbnUgXCYjMzQ7U3VwcG9ydGVkIERSTSBjbGllbnRzXCYjMzQ7XG4gIDI5Olx0XHRkZXBlbmRzIG9uIERSTV9DTElFTlRfU0VMRUNUSU9OXG4gIDMwOlx0XG4gIDMxOlx0Y29uZmlnIERSTV9GQkRFVl9FTVVMQVRJT05cbiAgMzI6XHRcdGJvb2wgXCYjMzQ7RW5hYmxlIGxlZ2FjeSBmYmRldiBzdXBwb3J0IGZvciB5b3VyIG1vZGVzZXR0aW5nIGRyaXZlclwmIzM0O1xuICAzMzpcdFx0ZGVwZW5kcyBvbiBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuICAzNDpcdFx0c2VsZWN0IERSTV9DTElFTlRcbiAgMzU6XHRcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFVFVQXG4gIDM2Olx0XHRzZWxlY3QgRlJBTUVCVUZGRVJfQ09OU09MRV9ERVRFQ1RfUFJJTUFSWSBpZiBGUkFNRUJVRkZFUl9DT05TT0xFXG4gIDM3Olx0XHRkZWZhdWx0IEZCXG4gIDM4Olx0XHRoZWxwXG4gIDM5Olx0XHQgIENob29zZSB0aGlzIG9wdGlvbiBpZiB5b3UgaGF2ZSBhIG5lZWQgZm9yIHRoZSBsZWdhY3kgZmJkZXZcbiAgNDA6XHRcdCAgc3VwcG9ydC4gTm90ZSB0aGF0IHRoaXMgc3VwcG9ydCBhbHNvIHByb3ZpZGVzIHRoZSBsaW51eCBjb25zb2xlXG4gIDQxOlx0XHQgIHN1cHBvcnQgb24gdG9wIG9mIHlvdXIgbW9kZXNldHRpbmcgZHJpdmVyLlxuICA0MjpcdFxuICA0MzpcdFx0ICBJZiBpbiBkb3VidCwgc2F5IFwmIzM0O1lcJiMzNDsuXG4gIDQ0Olx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDAxOjEzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyMzEyCgkJCQkJCQlvdXRwdXQ6IDIxCgkJCQkJCQl0aG91Z2h0czogOTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdW5kZXJzdGFuZGluZywgZnJhbWVkIGFzIG15IGludGVybmFsIHRob3VnaHQgcHJvY2VzczoKCioqRGVjb2RpbmcgdGhlIGBkZWZhdWx0IEZCYCBDb25maWd1cmF0aW9uKioKClJpZ2h0LCBsZXQgbWUgYnJlYWsgdGhpcyBkb3duLiBXaGVuIEkgc2VlIGBkZWZhdWx0IEZCYCwgaXQmIzM5O3MgaGludGluZyB0aGF0IHRoZSBzeXN0ZW0sIGJ5IGRlZmF1bHQsIHdpbGwgdXNlIHRoZSB2YWx1ZSBzZXQgYnkgYENPTkZJR19GQmAuIFNvIGZhciwgc28gZ29vZC4gSG93ZXZlciwgaXQgKmRvZXNuJiMzOTt0KiBhdXRvbWF0aWNhbGx5IG1lYW4gdGhhdCBpdCBhY3R1YWxseSAqc2VsZWN0cyogYEZCYCBkaXJlY3RseS4gVGhhdCYjMzk7cyBhIGNydWNpYWwgZGlzdGluY3Rpb24uIE5vdywgSSBuZWVkIHRvIHJlbWluZCBteXNlbGYgd2hlcmUgdGhlIHJlbGF0ZWQgY29kZSByZXNpZGVzLiBBaCB5ZXMsIGBkcm1fZmJfaGVscGVyLmNgLiBUaGlzIGZpbGUgcmVsaWVzIG9uIGBmYl9pbmZvYCwgd2hpY2ggaXMgZGVmaW5lZCBpbiBgaW5jbHVkZS9saW51eC9mYi5oYC4KCkJ1dCBub3cgSSBoYXZlIHRvIGFzayBteXNlbGYgYW4gaW1wb3J0YW50IHF1ZXN0aW9uOiBEb2VzIGBkcm1fZmJfaGVscGVyLmNgIGhhdmUgYW4gaW1wbGljaXQgZGVwZW5kZW5jeSBvbiBgQ09ORklHX0ZCYD8gSXQgZmVlbHMgbGlrZSBpdCBtaWdodCwgYnV0IEkgbmVlZCB0byBjb25maXJtLiBNeSBndXQgc2F5cyBJIHNob3VsZCByZS1leGFtaW5lIHRoZSBgZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlYCB0byBlaXRoZXIgY29uZmlybSBvciByZWZ1dGUgbXkgc3VzcGljaW9uLiBJIHdpbGwgZG8gdGhhdCBiZWZvcmUgbWFraW5nIGFueSBhc3N1bXB0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZHJtX2ZiX2hlbHBlci5vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZT0xNTk9ZHJtX2ttc19oZWxwZXItJChDT05GSUdfRFJNX1BBTkVMX0JSSURHRSkgJiM0Mzs9IGJyaWRnZS9wYW5lbC5vXG5kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGU6MTYwOmRybV9rbXNfaGVscGVyLSQoQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT04pICYjNDM7PSBkcm1fZmJfaGVscGVyLm9cbmRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZS0xNjEtb2JqLSQoQ09ORklHX0RSTV9LTVNfSEVMUEVSKSAmIzQzOz0gZHJtX2ttc19oZWxwZXIub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAwMToxMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0Mjc3MQoJCQkJCQkJb3V0cHV0OiAxOAoJCQkJCQkJdGhvdWdodHM6IDcyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgRFJNX0ZCREVWX0VNVUxBVElPTiBhbmQgZnJhbWVidWZmZXIgZGVwZW5kZW5jaWVzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIHRyeWluZyB0byB1bmRlcnN0YW5kIGl0cyBidWlsZCBkZXBlbmRlbmNpZXMuIFRoZSBjcnVjaWFsIHBvaW50IGhlcmUgaXMgdGhlIGBEUk1fRkJERVZfRU1VTEFUSU9OYCBvcHRpb24gYW5kIGhvdyBpdCBhZmZlY3RzIHRoZSBgZHJtX2ZiX2hlbHBlci5vYCBtb2R1bGUuIFNwZWNpZmljYWxseSwgaWYgdGhpcyBlbXVsYXRpb24gZmVhdHVyZSBpcyBlbmFibGVkLCB0aGVuIHRoZSBgZHJtX2ZiX2hlbHBlci5vYCBpcyBnb2luZyB0byBiZSBidWlsdC4gQnV0IEkgaGF2ZSBhIG5hZ2dpbmcgcXVlc3Rpb24gaW4gdGhlIGJhY2sgb2YgbXkgbWluZDogY2FuIGBkcm1fZmJfaGVscGVyLmNgIGV2ZW4gKmNvbXBpbGUqIHdpdGhvdXQgdGhlIGNsYXNzaWMgZnJhbWVidWZmZXIgY29uZmlndXJhdGlvbiAoYENPTkZJR19GQmApIGVuYWJsZWQ/IEl0IHNlZW1zIHVubGlrZWx5LCBnaXZlbiB0aGUgbmFtZSwgYnV0IEkgbmVlZCB0byBjb25maXJtIHRoaXMuCgpUbyBhbnN3ZXIgdGhhdCBxdWVzdGlvbiB3aXRoIGFic29sdXRlIGNlcnRhaW50eSwgSSBuZWVkIHRvIGNvbnN1bHQgdGhlIGNvZGUuIFRoZSBsaWtlbHkgcGxhY2VzIHRvIGZpbmQgdGhpcyBpbmZvcm1hdGlvbiBhcmUgYGluY2x1ZGUvbGludXgvZmIuaGAsIHRoYXQgc2hvdWxkIHByb3ZpZGUgdGhlIGRlY2xhcmF0aW9ucywgb3IgcGVyaGFwcyB0aGUgYGRyaXZlcnMvdmlkZW8vZmJkZXYvY29yZS9NYWtlZmlsZWAuIFRoZSBtYWtlZmlsZSBtaWdodCBoYXZlIGNvbmRpdGlvbmFsIGJ1aWxkIGZsYWdzLCBvciB0aGUgaGVhZGVyIGZpbGUgbWlnaHQgaW5jbHVkZSB0aGUgcmVsZXZhbnQgYGlmZGVmYCBibG9ja3MuIEkmIzM5O2xsIHN0YXJ0IHdpdGggdGhvc2UgYW5kIHNlZSB3aGVyZSBJIGdldC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEZCX0NPUkUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy92aWRlby9mYmRldi9jb3JlL0tjb25maWctNS1cbmRyaXZlcnMvdmlkZW8vZmJkZXYvY29yZS9LY29uZmlnOjY6Y29uZmlnIEZCX0NPUkVcbmRyaXZlcnMvdmlkZW8vZmJkZXYvY29yZS9LY29uZmlnLTctXHRzZWxlY3QgVklERU9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDMxNjAKCQkJCQkJCW91dHB1dDogMTgKCQkJCQkJCXRob3VnaHRzOiAyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlIGFuZCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqRFJNX0ZCREVWX0VNVUxBVElPTiBhbmQgRkJfQ09SRTogQSBRdWljayBDaGVjayoqCgpSaWdodCwgbGV0IG1lIGp1c3QgcXVpY2tseSBydW4gdGhyb3VnaCB0aGlzIGluIG15IGhlYWQuIEkgbmVlZCB0byBtYWtlIGFic29sdXRlbHkgc3VyZSBhYm91dCBzb21ldGhpbmcgcmVsYXRlZCB0byB0aGUgRGlyZWN0IFJlbmRlcmluZyBNYW5hZ2VyIChEUk0pIGZyYW1lYnVmZmVyIGVtdWxhdGlvbi4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIHRoaW5raW5nIGFib3V0IHRoZSBkZXBlbmRlbmN5IGJldHdlZW4gYERSTV9GQkRFVl9FTVVMQVRJT05gIGFuZCBgRkJfQ09SRWAuIEl0JiMzOTtzIGEgZnVuZGFtZW50YWwgcmVsYXRpb25zaGlwLCByZWFsbHkuIERvZXMgZW5hYmxpbmcgdGhlIGZvcm1lciBhdXRvbWF0aWNhbGx5IHRyaWdnZXIgdGhlIGxhdHRlcj8gSWYgYERSTV9GQkRFVl9FTVVMQVRJT05gIGlzIHNlbGVjdGVkLCBkb2VzIHRoYXQgaW5oZXJlbnRseSBwdWxsIGluIHRoZSBgRkJfQ09SRWAgY29uZmlndXJhdGlvbiBhcyB3ZWxsPyBJIG5lZWQgdG8gY2xhcmlmeSB0aGF0IGRlcGVuZGVuY3kuIEEgc29saWQgdW5kZXJzdGFuZGluZyBvZiB0aGF0IGxpbmsgaXMgcHJldHR5IG11Y2ggZXNzZW50aWFsIGZvciB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgY29yZSBmcmFtZWJ1ZmZlciBlbXVsYXRpb24gYW5kIERSTSBpbnRlcmZhY2UgaW50ZXJhY3QuIEdvdHRhIG1ha2Ugc3VyZSB0aG9zZSB0d28gYXJlIGNvcnJlY3RseSBsaW5rZWQgc28gdGhhdCB0aGUgdXNlcnNwYWNlIGFwcGxpY2F0aW9ucyBjYW4gd29yayBhcyBpbnRlbmRlZCB3aXRoIHRoZXNlIG1vZHVsZXMuIEl0JiMzOTtzIGEga2V5IHBpZWNlIHRvIHZlcmlmeS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40MC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2VsZWN0IEZCX0NPUkUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9ncHUvZHJtL0tjb25maWc9NDU9Y29uZmlnIERSTV9LTVNfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL0tjb25maWctNDctXHRkZXBlbmRzIG9uIERSTVxuZHJpdmVycy9ncHUvZHJtL0tjb25maWc6NDg6XHRzZWxlY3QgRkJfQ09SRSBpZiBEUk1fRkJERVZfRU1VTEFUSU9OXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZy00OS1cdGhlbHBcbi0tXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZz0yNTA9Y29uZmlnIERSTV9UVE1fSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL0tjb25maWctMjU0LVx0c2VsZWN0IERSTV9LTVNfSEVMUEVSIGlmIERSTV9GQkRFVl9FTVVMQVRJT05cbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnOjI1NTpcdHNlbGVjdCBGQl9DT1JFIGlmIERSTV9GQkRFVl9FTVVMQVRJT05cbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnLTI1Ni1cdHNlbGVjdCBGQl9TWVNNRU1fSEVMUEVSU19ERUZFUlJFRCBpZiBEUk1fRkJERVZfRU1VTEFUSU9OXG4tLVxuZHJpdmVycy9ncHUvZHJtL0tjb25maWc9MjYwPWNvbmZpZyBEUk1fR0VNX0RNQV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZy0yNjMtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVIgaWYgRFJNX0ZCREVWX0VNVUxBVElPTlxuZHJpdmVycy9ncHUvZHJtL0tjb25maWc6MjY0Olx0c2VsZWN0IEZCX0NPUkUgaWYgRFJNX0ZCREVWX0VNVUxBVElPTlxuZHJpdmVycy9ncHUvZHJtL0tjb25maWctMjY1LVx0c2VsZWN0IEZCX0RNQU1FTV9IRUxQRVJTX0RFRkVSUkVEIGlmIERSTV9GQkRFVl9FTVVMQVRJT05cbi0tXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZz0yNjk9Y29uZmlnIERSTV9HRU1fU0hNRU1fSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL0tjb25maWctMjcyLVx0c2VsZWN0IERSTV9LTVNfSEVMUEVSIGlmIERSTV9GQkRFVl9FTVVMQVRJT05cbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnOjI3MzpcdHNlbGVjdCBGQl9DT1JFIGlmIERSTV9GQkRFVl9FTVVMQVRJT05cbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnLTI3NC1cdHNlbGVjdCBGQl9TWVNNRU1fSEVMUEVSU19ERUZFUlJFRCBpZiBEUk1fRkJERVZfRU1VTEFUSU9OXG4tLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZz0zPWNvbmZpZyBEUk1fQ0xJRU5UX0xJQlxuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctNi1cdHNlbGVjdCBEUk1fS01TX0hFTFBFUiBpZiBEUk1fRkJERVZfRU1VTEFUSU9OXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjc6XHRzZWxlY3QgRkJfQ09SRSBpZiBEUk1fRkJERVZfRU1VTEFUSU9OXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTgtXHRoZWxwXG4tLVxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnPTY9bWVudWNvbmZpZyBGQlxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTctXHR0cmlzdGF0ZSBcJiMzNDtTdXBwb3J0IGZvciBmcmFtZSBidWZmZXIgZGV2aWNlIGRyaXZlcnNcJiMzNDtcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo4Olx0c2VsZWN0IEZCX0NPUkVcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy05LVx0c2VsZWN0IEZCX05PVElGWVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAwMToxMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NDA0MQoJCQkJCQkJb3V0cHV0OiAyMzIKCQkJCQkJCXRob3VnaHRzOiA4NTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb246IERSTSBWYmxhbmsgV2FpdGluZyBMb2dpYyoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBgRFJNX0tNU19IRUxQRVJgIGNob29zZXMgYEZCX0NPUkVgIGlmIHdlIGhhdmUgYERSTV9GQkRFVl9FTVVMQVRJT05gIGVuYWJsZWQuIEFuZCwgYXMgd2Uga25vdywgYERSTV9WS01TYCBhbHNvIHNlbGVjdHMgYERSTV9LTVNfSEVMUEVSYCwgd2hpY2ggaW1wbGljaXRseSBzZWxlY3RzIGBGQl9DT1JFYC4gVGhpcyBtZWFucyBgRkJfQ09SRWAgaXMgaGFuZGxlZCBhdXRvbWFnaWNhbGx5LCBzbyBubyBuZWVkIHRvIGV4cGxpY2l0bHkgd29ycnkgYWJvdXQgdGhhdCBvbmUuIEJhc2ljYWxseSwgd2Ugb25seSBuZWVkIHRvIGVuYWJsZSBgRFJNX1ZLTVNgIGFuZCBgRFJNX0ZCREVWX0VNVUxBVElPTmAuCgpOb3csIHRoZSBpbXBvcnRhbnQgcGFydDogSSBuZWVkIHRvIGNvbmZpcm0gd2hlcmUgdGhlc2Uga2V5IGZ1bmN0aW9ucyBhcmUgY2FsbGVkLiBJIHNlZSB0aGF0IGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBpcyBpbmRlZWQgY2FsbGVkIGFuZCBpcyBleHBvcnRlZC4gVGhlIHBhdGNoIGFsdGVycyBib3RoIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBhbmQgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AuIEJvdGggc2VlbSB0byBiZSByZWFjaGFibGUgLSB3aGljaCBpcyBrZXkhCgpPa2F5LCBsZXQmIzM5O3Mgc3VtbWFyaXplIHRoZSBmdXp6aW5nIHBsYW46CgoqICAgKipXb3J0aEZ1enppbmc6KiogQWJzb2x1dGVseSEKKiAgICoqRm9jdXMgU3ltYm9sczoqKiBXZSBoYXZlIHRvIGZvY3VzIG9uIHRoZSBmb2xsb3dpbmcgc3ltYm9scwogICAgKiAgIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYAogICAgKiAgIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgCiAgICAqICAgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAKKiAgICoqRW5hYmxlQ29uZmlnczoqKgogICAgKiAgIGBEUk1fVktNU2AKICAgICogICBgRFJNX0ZCREVWX0VNVUxBVElPTmAKCldhaXQsIGhhbmcgb24uIGBEUk1fVktNU2AgaXMgYSB2aXJ0dWFsIGRyaXZlciwgcGVyZmVjdCBmb3IgZnV6emluZyBpbiBhIGNvbnRyb2xsZWQgZW52aXJvbm1lbnQuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBpcyB0aGUgcmlnaHQgdmlydHVhbCBkcml2ZXIuIERvZXMgYW55IG90aGVyIHZpcnR1YWwgZHJpdmVyIHVzZSBEUk0/IExldCYjMzk7cyBzZWUuLi4gYERSTV9WR0VNYCBkb2VzbiYjMzk7dCB1c2UgS01TLCBzbyBpdCBkb2VzbiYjMzk7dCB1c2UgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AuIEJ1dCwgYERSTV9WS01TYCAqZG9lcyogdXNlIEtNUyBhbmQgQ1JUQ3MuIFllcywgYERSTV9WS01TYCBpcyB0aGUgY29ycmVjdCB0YXJnZXQuCgpMZXQmIzM5O3MgZG91YmxlLWNoZWNrIHRoZSBkZWZpbml0aW9ucyBvZiB0aGUga2V5IGZ1bmN0aW9ucyB0byBlbnN1cmUgdGhleSYjMzk7cmUgYWNjZXNzaWJsZS4gSSYjMzk7bGwgY29uZmlybSB0aGF0IGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgIGlzIG5vdCBzdGF0aWMsIHdoaWNoIGl0IGlzbiYjMzk7dC4gU2ltaWxhcmx5LCBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgYW5kIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIGFyZSBhbHNvIG5vdCBzdGF0aWMuIEV4Y2VsbGVudC4gTm9uZSBvZiB0aGVzZSBmdW5jdGlvbnMgYXJlIHN0YXRpYyBvciBpbmxpbmVkLgoKVGhlIHJlYXNvbiB0aGlzIGlzIGFsbCB3b3J0aHdoaWxlIGlzIHRoYXQgdGhlIHBhdGNoIHJlZmFjdG9ycyB0aGUgdmJsYW5rIHdhaXRpbmcgbG9naWMgdG8gZWxpbWluYXRlIG5lc3RlZCBgZHJtX2NydGNfdmJsYW5rX2dldGAgY2FsbHMsIGFuZCBpdCBpbnRyb2R1Y2VzIGEgbmV3IGhlbHBlciwgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAuIFRoaXMgZml4ZXMgYSBwb3RlbnRpYWwgaXNzdWUgaW4gYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIGFuZCBtb2RpZmllcyBob3cgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AgZnVuY3Rpb25zLiBTaW5jZSB0aGVzZSBmdW5jdGlvbnMgY2FuIGJlIGFjY2Vzc2VkIGZyb20gdXNlcnNwYWNlIHZpYSBmYmRldiBpb2N0bHMgKGxpa2UgYEZCSU9fV0FJVEZPUlZTWU5DYCkgYW5kIERSTSBhdG9taWMgY29tbWl0cywgdGhlcmUgaXMgYSBmdW5jdGlvbmFsIGltcGFjdCBpbiB0aGUgRFJNIGNvcmUsIG1ha2luZyB0aGVtIHBlcmZlY3QgdGFyZ2V0cy4KClNvLCB0byByZWl0ZXJhdGUsIGl0IHNlZW1zIGxpa2UgYERSTV9WS01TYCBhbmQgYERSTV9GQkRFVl9FTVVMQVRJT05gIGFyZSB0aGUga2V5IGNvbmZpZ3Mgd2Ugd2lsbCBuZWVkLiBUaGlzIHNldHVwIHNob3VsZCBnaXZlIHVzIGEgZ29vZCB0ZXN0YmVkLiBPa2F5LCBJJiMzOTttIHJlYWR5IHRvIHByb2NlZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDAxOjE0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtEUk1fVktNUyYjMzQ7LAogICAgJiMzNDtEUk1fRkJERVZfRU1VTEFUSU9OJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayYjMzQ7LAogICAgJiMzNDtkcm1fY3J0Y193YWl0X29uZV92YmxhbmsmIzM0OywKICAgICYjMzQ7ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlZmFjdG9ycyB0aGUgdmJsYW5rIHdhaXRpbmcgbG9naWMgaW4gdGhlIERSTSBjb3JlIHRvIGF2b2lkIG5lc3RlZCBgZHJtX2NydGNfdmJsYW5rX2dldGAgY2FsbHMsIGludHJvZHVjaW5nIGEgbmV3IGludGVybmFsIGhlbHBlciBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYC4gVGhpcyBmaXhlcyBhIHBvdGVudGlhbCBpc3N1ZSBpbiBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgYW5kIG1vZGlmaWVzIHRoZSBleGVjdXRpb24gZmxvdyBvZiBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGZiZGV2IGlvY3RscyAoZS5nLiwgYEZCSU9fV0FJVEZPUlZTWU5DYCkgYW5kIERSTSBhdG9taWMgY29tbWl0cy4gVGhlIGNoYW5nZXMgaGF2ZSBhIGZ1bmN0aW9uYWwgaW1wYWN0IG9uIHRoZSBEUk0gY29yZSBhbmQgYXJlIHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RSTV9WS01TJiMzNDssCiAgICAmIzM0O0RSTV9GQkRFVl9FTVVMQVRJT04mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rJiMzNDssCiAgICAmIzM0O2RybV9jcnRjX3dhaXRfb25lX3ZibGFuayYjMzQ7LAogICAgJiMzNDtkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVmYWN0b3JzIHRoZSB2Ymxhbmsgd2FpdGluZyBsb2dpYyBpbiB0aGUgRFJNIGNvcmUgdG8gYXZvaWQgbmVzdGVkIGBkcm1fY3J0Y192YmxhbmtfZ2V0YCBjYWxscywgaW50cm9kdWNpbmcgYSBuZXcgaW50ZXJuYWwgaGVscGVyIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgLiBUaGlzIGZpeGVzIGEgcG90ZW50aWFsIGlzc3VlIGluIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBhbmQgbW9kaWZpZXMgdGhlIGV4ZWN1dGlvbiBmbG93IG9mIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgLiBUaGVzZSBmdW5jdGlvbnMgYXJlIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgZmJkZXYgaW9jdGxzIChlLmcuLCBgRkJJT19XQUlURk9SVlNZTkNgKSBhbmQgRFJNIGF0b21pYyBjb21taXRzLiBUaGUgY2hhbmdlcyBoYXZlIGEgZnVuY3Rpb25hbCBpbXBhY3Qgb24gdGhlIERSTSBjb3JlIGFuZCBhcmUgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40My8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAwMToxNDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZWZhY3RvcnMgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AgYnkgZXh0cmFjdGluZyBpdHMgY29yZSB3YWl0aW5nIGxvZ2ljIGludG8gYSBuZXcgaW50ZXJuYWwgZnVuY3Rpb24gYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAuIFRoaXMgYWxsb3dzIGNhbGxlcnMgbGlrZSBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgdGhhdCBhbHJlYWR5IGhvbGQgYSB2YmxhbmsgcmVmZXJlbmNlIHRvIHdhaXQgd2l0aG91dCBhY3F1aXJpbmcgYW5kIHJlbGVhc2luZyB0aGUgcmVmZXJlbmNlIGFnYWluLiBUaGUgY2hhbmdlcyBhcmUgcHVyZWx5IHJlbGF0ZWQgdG8gY29udHJvbCBmbG93LCByZWZlcmVuY2UgY291bnRpbmcsIGFuZCB3YWl0IHF1ZXVlcy4gVGhlcmUgYXJlIG5vIG5ldyBkYXRhIHN0cnVjdHVyZXMgYWxsb2NhdGVkLCBubyBzdHJ1Y3R1cmVzIGNvcGllZCB0byB1c2VyIHNwYWNlLCBhbmQgbm8gdW5pbml0aWFsaXplZCBtZW1vcnkgcmlza3MgaW50cm9kdWNlZC4gQW55IHBvdGVudGlhbCBidWdzIGludHJvZHVjZWQgYnkgdGhpcyBwYXRjaCAoc3VjaCBhcyB1c2UtYWZ0ZXItZnJlZSBkdWUgdG8gaW5jb3JyZWN0IHJlZmVyZW5jZSBjb3VudGluZykgd291bGQgYmUgY2F1Z2h0IGJ5IEtBU0FOIG9yIHN0YW5kYXJkIGtlcm5lbCBkZWJ1Z2dpbmcgdG9vbHMuIFRoZXJlZm9yZSwgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCBuZWNlc3NhcnkuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIHNlY3VyaXR5IGVuZ2luZWVyIHNwZWNpYWxpemluZyBpbiBrZXJuZWwgbWVtb3J5CmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kCmRldGVybWluZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGp1c3RpZnkgc3Bhd25pbmcgYSBkZWRpY2F0ZWQgS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikKZnV6emluZyBzZXNzaW9uIGluIGFkZGl0aW9uIHRvIHN0YW5kYXJkIEtBU0FOIGZ1enppbmcuCgpDUklUSUNBTCBESVNUSU5DVElPTiBCRVRXRUVOIEtBU0FOIEFORCBLTVNBTjoKLSBTdGFuZGFyZCBLQVNBTiBrZXJuZWwgYnVpbGRzICh1cHN0cmVhbS1hcHBhcm1vci1rYXNhbi5jb25maWcpIGFscmVhZHkgZW5hYmxlCiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOCiAgKG91dC1vZi1ib3VuZHMgYWNjZXNzZXMsIHVzZS1hZnRlci1mcmVlLCBkb3VibGUgZnJlZSwgaW52YWxpZCBmcmVlKSwgTE9DS0RFUAogIChsb2NraW5nIGJ1Z3MgYW5kIGRlYWRsb2NrcyksIFVCLXNhbml0aXplcnMsIGFuZCBtZW1vcnkgY29ycnVwdGlvbiBjaGVja3MuCi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsCiAgb3IgcGFnZSBhbGxvY2F0aW9ucykgYW5kIGtlcm5lbC10by11c2VyIG1lbW9yeSBpbmZvLWxlYWtzLgoKUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTiwKTE9DS0RFUCwgT1IgT1RIRVIgU1RBTkRBUkQgQlVHIERFVEVDVE9SUy4KQSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGluY3VycyBzaWduaWZpY2FudCByZXNvdXJjZSBjb3N0cy4gWW91IG11c3QgT05MWQpzZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrcwp0aGF0IGFyZSBkZXRlY3RlZCBPTkxZIGJ5IEtNU0FOLgoKTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3QKdW5pbml0aWFsaXplZCBmaWVsZCBhY2Nlc3NlcyBvciBuZXcgYnVmZmVyIGFsbG9jYXRpb25zIGFyZSBhZGRlZCBpbiB0aGUgZGlmZiBpdHNlbGYsCmEgcGF0Y2ggbWF5IGFsdGVyIGNvbnRyb2wgZmxvdywgYm91bmRzIGNoZWNraW5nLCBvciBkYXRhIGxlbmd0aCBjYWxjdWxhdGlvbnMgaW4gd2F5cwp0aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZwp1bmluaXRpYWxpemVkIHN0YWNrL2hlYXAgbWVtb3J5IHRvIGJlIHJlYWQsIGNvcGllZCB0byB1c2VyIHNwYWNlLCBvciB1c2VkIGluIGNvbnRyb2wKZmxvdykuIERvIG5vdCBoZXNpdGF0ZSB0byB1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlLApjYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy4KClNldCBOZWVkc0tNU0FOPXRydWUgT05MWSBJRiB0aGUgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllczoKMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2IKICAgYXR0cmlidXRlcywgaW9jdGwgb3V0cHV0IGFyZ3VtZW50cywgc29ja2V0IG9wdGlvbnMsIG9yIEJQRiBidWZmZXJzKSB3aGVyZSBmaWVsZHMKICAgb3Igc3RydWN0dXJlIHBhZGRpbmcgbWlnaHQgbm90IGJlIGZ1bGx5IGluaXRpYWxpemVkL3plcm9lZC4KMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlcwogICBvciBzdHJ1Y3QgZmllbGRzLgozLiBBbGxvY2F0aW9uIG9yIGluaXRpYWxpemF0aW9uIG9mIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzCiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuCjQuIEJvdW5kcyBjaGVja3MsIGxlbmd0aHMsIG9yIGxvZ2ljIGluIGEgd2F5IHRoYXQgYWxsb3dzIHN1cnJvdW5kaW5nIGNvZGUgdG8gYWNjZXNzCiAgIHVuaW5pdGlhbGl6ZWQgYnl0ZXMgb2YgZXhpc3RpbmcgYnVmZmVycy4KClNldCBOZWVkc0tNU0FOPWZhbHNlIElGOgotIFRoZSBjb2RlIGNoYW5nZXMgcHJpbWFyaWx5IHJpc2sgb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIGFycmF5IG92ZXJmbG93cywgTlVMTCBwb2ludGVyCiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0CiAgYnkgS0FTQU4sIExPQ0tERVAsIG9yIHN0YW5kYXJkIGJ1ZyBkZXRlY3RvcnMpLgotIEFsbCBzdGFjay9oZWFwIHN0cnVjdHVyZXMgdG91Y2hlZCBvciBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBhcmUgZnVsbHkgemVyb2VkCiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLgotIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcy4KClVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGUKZGV0YWlsZWQgS01TQU5SZWFzb25pbmcgY29udHJhc3RpbmcgS0FTQU4gdnMgS01TQU4gYXBwbGljYWJpbGl0eSBmb3IgdGhpcyBwYXRjaC4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGQ0MGRlY2NjY2ZkYzI4NDYyMmMyMzY2ZWFiODIyYjI3NzA1MzZlZDgKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEF1ZyAxMSAwMToxMTo1OCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYwppbmRleCAwMDgwYThlOTU1NmE1Li43ZmYwZjI0YTBmNTAyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jCkBAIC0xMzI4LDcgJiM0MzsxMzI4LDcgQEAgaW50IGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92Ymxhbmsoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIHVuc2lnbmVkIGkKIAkgKi8KIAlyZXQgPSBkcm1fY3J0Y192YmxhbmtfZ2V0KGNydGMpOwogCWlmICghcmV0KSB7Ci0JCWRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhjcnRjKTsKJiM0MzsJCWRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTsKIAkJZHJtX2NydGNfdmJsYW5rX3B1dChjcnRjKTsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaCBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaAppbmRleCBmODkzYjFlM2E1OTZlLi42ZmQzMzY3MmQyMDZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCkBAIC0xMTUsNiAmIzQzOzExNSw3IEBAIHZvaWQgZHJtX3ZibGFua19kaXNhYmxlX2FuZF9zYXZlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTsKIGludCBkcm1fdmJsYW5rX2dldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7CiB2b2lkIGRybV92YmxhbmtfcHV0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTsKIHU2NCBkcm1fdmJsYW5rX2NvdW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTsKJiM0MztpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7CiAKIC8qIGRybV92Ymxhbmtfd29yay5jICovCiBzdGF0aWMgaW5saW5lIHZvaWQgZHJtX3ZibGFua19mbHVzaF93b3JrZXIoc3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMKaW5kZXggZjkwZmIyZDEzZTQyMy4uOWNhYzcwMTNiNGM5YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jCkBAIC0xMjk3LDYgJiM0MzsxMjk3LDMyIEBAIHZvaWQgZHJtX2NydGNfdmJsYW5rX3B1dChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB9CiBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3ZibGFua19wdXQpOwogCiYjNDM7LyoqCiYjNDM7ICogZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsIC0gd2FpdCBmb3Igb25lIHZibGFuawomIzQzOyAqIEBjcnRjOiBEUk0gY3J0YwomIzQzOyAqCiYjNDM7ICogVGhpcyB3YWl0cyBmb3Igb25lIHZibGFuayB0byBwYXNzIG9uIEBjcnRjLCB1c2luZyB0aGUgaXJxIGRyaXZlciBpbnRlcmZhY2VzLgomIzQzOyAqIEV2ZXJ5IGNhbGxlciBtdXN0IGhvbGQgYSB2YmxhbmsgcmVmZXJlbmNlIGFjcm9zcyB0aGUgY29tcGxldGUgd2FpdC4KJiM0MzsgKgomIzQzOyAqIFJldHVybnM6IDAgb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3Igb24gZmFpbHVyZXMuCiYjNDM7ICovCiYjNDM7aW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0mZ3Q7ZGV2OwomIzQzOwlpbnQgcGlwZSA9IGRybV9jcnRjX2luZGV4KGNydGMpOwomIzQzOwlzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2YmxhbmsgPSBkcm1fY3J0Y192YmxhbmtfY3J0YyhjcnRjKTsKJiM0MzsJaW50IHJldDsKJiM0MzsJdTY0IGxhc3Q7CiYjNDM7CiYjNDM7CWxhc3QgPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSk7CiYjNDM7CiYjNDM7CXJldCA9IHdhaXRfZXZlbnRfdGltZW91dCh2YmxhbmstJmd0O3F1ZXVlLAomIzQzOwkJCQkgbGFzdCAhPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSksCiYjNDM7CQkJCSBtc2Vjc190b19qaWZmaWVzKDEwMDApKTsKJiM0MzsKJiM0MzsJcmV0dXJuIHJldCA/IDAgOiAtRVRJTUVET1VUOwomIzQzO30KJiM0MzsKIC8qKgogICogZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rIC0gd2FpdCBmb3Igb25lIHZibGFuawogICogQGNydGM6IERSTSBjcnRjCkBAIC0xMzExLDI2ICYjNDM7MTMzNywyMCBAQCBpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0mZ3Q7ZGV2OwogCWludCBwaXBlID0gZHJtX2NydGNfaW5kZXgoY3J0Yyk7Ci0Jc3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rID0gZHJtX2NydGNfdmJsYW5rX2NydGMoY3J0Yyk7CiAJaW50IHJldDsKLQl1NjQgbGFzdDsKIAogCXJldCA9IGRybV92YmxhbmtfZ2V0KGRldiwgcGlwZSk7CiAJaWYgKGRybV9XQVJOKGRldiwgcmV0LCAmIzM0O3ZibGFuayBub3QgYXZhaWxhYmxlIG9uIGNydGMgJWksIHJldD0laVxuJiMzNDssCiAJCSAgICAgcGlwZSwgcmV0KSkKIAkJcmV0dXJuIHJldDsKIAotCWxhc3QgPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSk7Ci0KLQlyZXQgPSB3YWl0X2V2ZW50X3RpbWVvdXQodmJsYW5rLSZndDtxdWV1ZSwKLQkJCQkgbGFzdCAhPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSksCi0JCQkJIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOwomIzQzOwlyZXQgPSBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoY3J0Yyk7CiAKLQlkcm1fV0FSTihkZXYsIHJldCA9PSAwLCAmIzM0O3ZibGFuayB3YWl0IHRpbWVkIG91dCBvbiBjcnRjICVpXG4mIzM0OywgcGlwZSk7CiYjNDM7CWRybV9XQVJOKGRldiwgcmV0ID09IC1FVElNRURPVVQsICYjMzQ7dmJsYW5rIHdhaXQgdGltZWQgb3V0IG9uIGNydGMgJWlcbiYjMzQ7LCBwaXBlKTsKIAogCWRybV92YmxhbmtfcHV0KGRldiwgcGlwZSk7CiAKLQlyZXR1cm4gcmV0ID8gMCA6IC1FVElNRURPVVQ7CiYjNDM7CXJldHVybiByZXQ7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayk7CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDUvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDAxOjE0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxNDYKCQkJCQkJCW91dHB1dDogMTkxCgkJCQkJCQl0aG91Z2h0czogNDE0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJlZmFjdG9yaW5nIHRoZSBWYmxhbmsgV2FpdCBQYXRoKioKCk9rYXksIHNvIEkmIzM5O3ZlIGJlZW4gbG9va2luZyBhdCB0aGlzIHBhdGNoLCBhbmQgaXQgbG9va3MgbGlrZSBhIHByZXR0eSBzdHJhaWdodGZvcndhcmQgcmVmYWN0b3Jpbmcgb2YgdGhlIHZibGFuayB3YWl0aW5nIG1lY2hhbmlzbSB3aXRoaW4gdGhlIERSTSBjb3JlLiBCYXNpY2FsbHksIHdoYXQmIzM5O3MgaGFwcGVuaW5nIGlzIGEgZnVuY3Rpb24sIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCwgaXMgYmVpbmcgc3RyZWFtbGluZWQgdG8gYXZvaWQgcmVkdW5kYW50IGNhbGxzIHRvIGBkcm1fdmJsYW5rX2dldGAgYW5kIGBkcm1fdmJsYW5rX3B1dGAuIEkgY2FuIHNlZSB0aGUgbG9naWM7IGl0JiMzOTtzIGFib3V0IG9wdGltaXppbmcgcmVmZXJlbmNlIGNvdW50aW5nLgoKVGhlIG1haW4gY2hhbmdlIGlzIHRoZSBpbnRyb2R1Y3Rpb24gb2YgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAuIFRoaXMgbmV3IGludGVybmFsIGZ1bmN0aW9uIGluIGBkcm1fdmJsYW5rLmNgIGlzIHRoZSBrZXkuIFRoZSBleGlzdGluZyBmdW5jdGlvbiwgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AsIG9yaWdpbmFsbHkgY29udGFpbmVkIGEgYGRybV92YmxhbmtfZ2V0YCBjYWxsIGJ1dCBub3csIHRoZSBjb2RlIG5vdyBnZXRzIGEgcmVmZXJlbmNlIGJlZm9yZSBjYWxsaW5nIHRoZSBuZXcgaW50ZXJuYWwgZnVuY3Rpb24uIFRoaXMgbmV3IGludGVybmFsIGZ1bmN0aW9uIGFzc3VtZXMgdGhlIGNhbGxlciBhbHJlYWR5IGhvbGRzIHRoZSBuZWNlc3NhcnkgcmVmZXJlbmNlLCBza2lwcGluZyB0aGUgZ2V0L3B1dCBjYWxscyB3aXRoaW4gaXRzZWxmLiBUaGlzIGlzIGdvb2Q7IHdlIGRvbiYjMzk7dCB3YW50IHRvIG92ZXItcmVsZWFzZSBvciBkb3VibGUgcmVsZWFzZS4KCkVzc2VudGlhbGx5LCBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYCBpcyBhIGhlbHBlciBmdW5jdGlvbiB0aGF0IHRha2VzIHRoZSBidXJkZW4gb2YgdGhlIHJlZmVyZW5jZSBjb3VudGluZyBmcm9tIHRoZSBwdWJsaWMgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AuIEl0IHNpbXBsaWZpZXMgdGhlIGNvZGUgcGF0aCBieSBhbGxvd2luZyBhIGNhbGxlciB0byBwcm92aWRlIHRoZSByZWZlcmVuY2UgaWYgaXQgaGFzIGl0LiBUaGUgb2xkIGZ1bmN0aW9uIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIGNvbnRpbnVlcyB0byBtYW5hZ2UgdGhlIHJlZmVyZW5jZS4KCkdpdmVuIHRoZSBuYXR1cmUgb2YgdGhlIGNoYW5nZXMsIEkmIzM5O20gY29tZm9ydGFibGUgc2F5aW5nIHRoZXJlJiMzOTtzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgYmVpbmcgZXhwb3NlZCBoZXJlLiBXZSYjMzk7cmUgZGVhbGluZyB3aXRoIHJlZmVyZW5jZSBjb3VudGluZyBhbmQgY29udHJvbCBmbG93IOKAkyBub3Qgd2l0aCBuZXdseSBpbnRyb2R1Y2VkIGRhdGEgc3RydWN0dXJlcywgYWxsb2NhdGlvbnMsIG9yIHBvdGVudGlhbGx5IHVuc2FmZSBtZW1vcnkgYWNjZXNzZXMuIFRoaXMgaXNuJiMzOTt0IGEgc2l0dWF0aW9uIHdoZXJlIEtNU0FOIChLZXJuZWwgTWVtb3J5IFNhbml0aXplcikgaXMgbmVlZGVkLiBLQVNBTiAoS2VybmVsIEFkZHJlc3MgU2FuaXRpemVyKSBhbmQgTE9DS0RFUCBzaG91bGQgYmUgbW9yZSB0aGFuIHN1ZmZpY2llbnQgdG8gY2F0Y2ggYW55IHN1YnRsZSBpc3N1ZXMgbGlrZSB1c2UtYWZ0ZXItZnJlZSBzY2VuYXJpb3MgaWYgdGhlIHJlZmVyZW5jZSBjb3VudGluZyBnb2VzIHdyb25nLiBJIGNhbiBzZWUgbm8gY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgb3IgYm91bmRzIGNoZWNrcyBoZXJlLgoKSSYjMzk7bSBnb2luZyB0byBkb3VibGUtY2hlY2sgdGhlIGRpZmYgdG8gY29uZmlybS4gYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAgd2lsbCBiZSByZXR1cm5pbmcgYDBgIG9uIHN1Y2Nlc3MgYW5kIGAtRVRJTUVET1VUYCBvbiBmYWlsdXJlLiBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYCBzaW1wbHkgcGFzc2VzIGJhY2sgdGhlIHJldHVybiBjb2RlIGZyb20gdGhhdCBpbnRlcm5hbCBmdW5jdGlvbi4gSXQmIzM5O3MgYSBjbGVhbiBzZXBhcmF0aW9uIG9mIGNvbmNlcm5zOiBjb250cm9sIGZsb3cgYW5kIHJlZmNvdW50aW5nLgoKQmFzZWQgb24gdGhpcyBhbmFseXNpcywgSSYjMzk7bSBzZXR0aW5nIGBOZWVkc0tNU0FOPWZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40Ni8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMDE6MTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVmYWN0b3JzIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIGJ5IGV4dHJhY3RpbmcgaXRzIGNvcmUgd2FpdGluZyBsb2dpYyBpbnRvIGEgbmV3IGludGVybmFsIGZ1bmN0aW9uIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgLiBUaGlzIGFsbG93cyBjYWxsZXJzIGxpa2UgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIHRoYXQgYWxyZWFkeSBob2xkIGEgdmJsYW5rIHJlZmVyZW5jZSB0byB3YWl0IHdpdGhvdXQgYWNxdWlyaW5nIGFuZCByZWxlYXNpbmcgdGhlIHJlZmVyZW5jZSBhZ2Fpbi4gVGhlIGNoYW5nZXMgYXJlIHB1cmVseSByZWxhdGVkIHRvIGNvbnRyb2wgZmxvdywgcmVmZXJlbmNlIGNvdW50aW5nLCBhbmQgd2FpdCBxdWV1ZXMuIFRoZXJlIGFyZSBubyBuZXcgZGF0YSBzdHJ1Y3R1cmVzIGFsbG9jYXRlZCwgbm8gc3RydWN0dXJlcyBjb3BpZWQgdG8gdXNlciBzcGFjZSwgYW5kIG5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJpc2tzIGludHJvZHVjZWQuIEFueSBwb3RlbnRpYWwgYnVncyBpbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2ggKHN1Y2ggYXMgdXNlLWFmdGVyLWZyZWUgZHVlIHRvIGluY29ycmVjdCByZWZlcmVuY2UgY291bnRpbmcpIHdvdWxkIGJlIGNhdWdodCBieSBLQVNBTiBvciBzdGFuZGFyZCBrZXJuZWwgZGVidWdnaW5nIHRvb2xzLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgbmVjZXNzYXJ5LiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVmYWN0b3JzIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIGJ5IGV4dHJhY3RpbmcgaXRzIGNvcmUgd2FpdGluZyBsb2dpYyBpbnRvIGEgbmV3IGludGVybmFsIGZ1bmN0aW9uIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgLiBUaGlzIGFsbG93cyBjYWxsZXJzIGxpa2UgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIHRoYXQgYWxyZWFkeSBob2xkIGEgdmJsYW5rIHJlZmVyZW5jZSB0byB3YWl0IHdpdGhvdXQgYWNxdWlyaW5nIGFuZCByZWxlYXNpbmcgdGhlIHJlZmVyZW5jZSBhZ2Fpbi4gVGhlIGNoYW5nZXMgYXJlIHB1cmVseSByZWxhdGVkIHRvIGNvbnRyb2wgZmxvdywgcmVmZXJlbmNlIGNvdW50aW5nLCBhbmQgd2FpdCBxdWV1ZXMuIFRoZXJlIGFyZSBubyBuZXcgZGF0YSBzdHJ1Y3R1cmVzIGFsbG9jYXRlZCwgbm8gc3RydWN0dXJlcyBjb3BpZWQgdG8gdXNlciBzcGFjZSwgYW5kIG5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJpc2tzIGludHJvZHVjZWQuIEFueSBwb3RlbnRpYWwgYnVncyBpbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2ggKHN1Y2ggYXMgdXNlLWFmdGVyLWZyZWUgZHVlIHRvIGluY29ycmVjdCByZWZlcmVuY2UgY291bnRpbmcpIHdvdWxkIGJlIGNhdWdodCBieSBLQVNBTiBvciBzdGFuZGFyZCBrZXJuZWwgZGVidWdnaW5nIHRvb2xzLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgbmVjZXNzYXJ5LiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMTo1OS4yNjc1ODc1MDJaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjk3MDE4NzMwMzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiRFJNX1ZLTVNcIixcbiAgICBcIkRSTV9GQkRFVl9FTVVMQVRJT05cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rXCIsXG4gICAgXCJkcm1fY3J0Y193YWl0X29uZV92YmxhbmtcIixcbiAgICBcImRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbFwiXG4gIF0sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVmYWN0b3JzIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIGJ5IGV4dHJhY3RpbmcgaXRzIGNvcmUgd2FpdGluZyBsb2dpYyBpbnRvIGEgbmV3IGludGVybmFsIGZ1bmN0aW9uIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgLiBUaGlzIGFsbG93cyBjYWxsZXJzIGxpa2UgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIHRoYXQgYWxyZWFkeSBob2xkIGEgdmJsYW5rIHJlZmVyZW5jZSB0byB3YWl0IHdpdGhvdXQgYWNxdWlyaW5nIGFuZCByZWxlYXNpbmcgdGhlIHJlZmVyZW5jZSBhZ2Fpbi4gVGhlIGNoYW5nZXMgYXJlIHB1cmVseSByZWxhdGVkIHRvIGNvbnRyb2wgZmxvdywgcmVmZXJlbmNlIGNvdW50aW5nLCBhbmQgd2FpdCBxdWV1ZXMuIFRoZXJlIGFyZSBubyBuZXcgZGF0YSBzdHJ1Y3R1cmVzIGFsbG9jYXRlZCwgbm8gc3RydWN0dXJlcyBjb3BpZWQgdG8gdXNlciBzcGFjZSwgYW5kIG5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJpc2tzIGludHJvZHVjZWQuIEFueSBwb3RlbnRpYWwgYnVncyBpbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2ggKHN1Y2ggYXMgdXNlLWFmdGVyLWZyZWUgZHVlIHRvIGluY29ycmVjdCByZWZlcmVuY2UgY291bnRpbmcpIHdvdWxkIGJlIGNhdWdodCBieSBLQVNBTiBvciBzdGFuZGFyZCBrZXJuZWwgZGVidWdnaW5nIHRvb2xzLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgbmVjZXNzYXJ5LlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHJlZmFjdG9ycyB0aGUgdmJsYW5rIHdhaXRpbmcgbG9naWMgaW4gdGhlIERSTSBjb3JlIHRvIGF2b2lkIG5lc3RlZCBgZHJtX2NydGNfdmJsYW5rX2dldGAgY2FsbHMsIGludHJvZHVjaW5nIGEgbmV3IGludGVybmFsIGhlbHBlciBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYC4gVGhpcyBmaXhlcyBhIHBvdGVudGlhbCBpc3N1ZSBpbiBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgYW5kIG1vZGlmaWVzIHRoZSBleGVjdXRpb24gZmxvdyBvZiBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGZiZGV2IGlvY3RscyAoZS5nLiwgYEZCSU9fV0FJVEZPUlZTWU5DYCkgYW5kIERSTSBhdG9taWMgY29tbWl0cy4gVGhlIGNoYW5nZXMgaGF2ZSBhIGZ1bmN0aW9uYWwgaW1wYWN0IG9uIHRoZSBEUk0gY29yZSBhbmQgYXJlIHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDAxOjExOjU5LjI2NzU5MzcxMloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDM0NTMxMzQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZDQwZGVjY2NjZmRjMjg0NjIyYzIzNjZlYWI4MjJiMjc3MDUzNmVkOFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVHVlIEF1ZyAxMSAwMToxMTo1OCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmNcXG5pbmRleCAwMDgwYThlOTU1NmE1Li43ZmYwZjI0YTBmNTAyIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuY1xcbisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuY1xcbkBAIC0xMzI4LDcgKzEzMjgsNyBAQCBpbnQgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayhzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgdW5zaWduZWQgaVxcbiBcXHQgKi9cXG4gXFx0cmV0ID0gZHJtX2NydGNfdmJsYW5rX2dldChjcnRjKTtcXG4gXFx0aWYgKCFyZXQpIHtcXG4tXFx0XFx0ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKGNydGMpO1xcbitcXHRcXHRkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoY3J0Yyk7XFxuIFxcdFxcdGRybV9jcnRjX3ZibGFua19wdXQoY3J0Yyk7XFxuIFxcdH1cXG4gXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaCBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaFxcbmluZGV4IGY4OTNiMWUzYTU5NmUuLjZmZDMzNjcyZDIwNmEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oXFxuKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oXFxuQEAgLTExNSw2ICsxMTUsNyBAQCB2b2lkIGRybV92YmxhbmtfZGlzYWJsZV9hbmRfc2F2ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7XFxuIGludCBkcm1fdmJsYW5rX2dldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7XFxuIHZvaWQgZHJtX3ZibGFua19wdXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpO1xcbiB1NjQgZHJtX3ZibGFua19jb3VudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7XFxuK2ludCBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoc3RydWN0IGRybV9jcnRjICpjcnRjKTtcXG4gXFxuIC8qIGRybV92Ymxhbmtfd29yay5jICovXFxuIHN0YXRpYyBpbmxpbmUgdm9pZCBkcm1fdmJsYW5rX2ZsdXNoX3dvcmtlcihzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2YmxhbmspXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jXFxuaW5kZXggZjkwZmIyZDEzZTQyMy4uOWNhYzcwMTNiNGM5YyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jXFxuKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuY1xcbkBAIC0xMjk3LDYgKzEyOTcsMzIgQEAgdm9pZCBkcm1fY3J0Y192YmxhbmtfcHV0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcXG4gfVxcbiBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3ZibGFua19wdXQpO1xcbiBcXG4rLyoqXFxuKyAqIGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbCAtIHdhaXQgZm9yIG9uZSB2YmxhbmtcXG4rICogQGNydGM6IERSTSBjcnRjXFxuKyAqXFxuKyAqIFRoaXMgd2FpdHMgZm9yIG9uZSB2YmxhbmsgdG8gcGFzcyBvbiBAY3J0YywgdXNpbmcgdGhlIGlycSBkcml2ZXIgaW50ZXJmYWNlcy5cXG4rICogRXZlcnkgY2FsbGVyIG11c3QgaG9sZCBhIHZibGFuayByZWZlcmVuY2UgYWNyb3NzIHRoZSBjb21wbGV0ZSB3YWl0LlxcbisgKlxcbisgKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIG9uIGZhaWx1cmVzLlxcbisgKi9cXG4raW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpXFxuK3tcXG4rXFx0c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtXFx1MDAzZWRldjtcXG4rXFx0aW50IHBpcGUgPSBkcm1fY3J0Y19pbmRleChjcnRjKTtcXG4rXFx0c3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rID0gZHJtX2NydGNfdmJsYW5rX2NydGMoY3J0Yyk7XFxuK1xcdGludCByZXQ7XFxuK1xcdHU2NCBsYXN0O1xcbitcXG4rXFx0bGFzdCA9IGRybV92YmxhbmtfY291bnQoZGV2LCBwaXBlKTtcXG4rXFxuK1xcdHJldCA9IHdhaXRfZXZlbnRfdGltZW91dCh2YmxhbmstXFx1MDAzZXF1ZXVlLFxcbitcXHRcXHRcXHRcXHQgbGFzdCAhPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSksXFxuK1xcdFxcdFxcdFxcdCBtc2Vjc190b19qaWZmaWVzKDEwMDApKTtcXG4rXFxuK1xcdHJldHVybiByZXQgPyAwIDogLUVUSU1FRE9VVDtcXG4rfVxcbitcXG4gLyoqXFxuICAqIGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayAtIHdhaXQgZm9yIG9uZSB2YmxhbmtcXG4gICogQGNydGM6IERSTSBjcnRjXFxuQEAgLTEzMTEsMjYgKzEzMzcsMjAgQEAgaW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpXFxuIHtcXG4gXFx0c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtXFx1MDAzZWRldjtcXG4gXFx0aW50IHBpcGUgPSBkcm1fY3J0Y19pbmRleChjcnRjKTtcXG4tXFx0c3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rID0gZHJtX2NydGNfdmJsYW5rX2NydGMoY3J0Yyk7XFxuIFxcdGludCByZXQ7XFxuLVxcdHU2NCBsYXN0O1xcbiBcXG4gXFx0cmV0ID0gZHJtX3ZibGFua19nZXQoZGV2LCBwaXBlKTtcXG4gXFx0aWYgKGRybV9XQVJOKGRldiwgcmV0LCBcXFwidmJsYW5rIG5vdCBhdmFpbGFibGUgb24gY3J0YyAlaSwgcmV0PSVpXFxcXG5cXFwiLFxcbiBcXHRcXHQgICAgIHBpcGUsIHJldCkpXFxuIFxcdFxcdHJldHVybiByZXQ7XFxuIFxcbi1cXHRsYXN0ID0gZHJtX3ZibGFua19jb3VudChkZXYsIHBpcGUpO1xcbi1cXG4tXFx0cmV0ID0gd2FpdF9ldmVudF90aW1lb3V0KHZibGFuay1cXHUwMDNlcXVldWUsXFxuLVxcdFxcdFxcdFxcdCBsYXN0ICE9IGRybV92YmxhbmtfY291bnQoZGV2LCBwaXBlKSxcXG4tXFx0XFx0XFx0XFx0IG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpO1xcbitcXHRyZXQgPSBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoY3J0Yyk7XFxuIFxcbi1cXHRkcm1fV0FSTihkZXYsIHJldCA9PSAwLCBcXFwidmJsYW5rIHdhaXQgdGltZWQgb3V0IG9uIGNydGMgJWlcXFxcblxcXCIsIHBpcGUpO1xcbitcXHRkcm1fV0FSTihkZXYsIHJldCA9PSAtRVRJTUVET1VULCBcXFwidmJsYW5rIHdhaXQgdGltZWQgb3V0IG9uIGNydGMgJWlcXFxcblxcXCIsIHBpcGUpO1xcbiBcXG4gXFx0ZHJtX3ZibGFua19wdXQoZGV2LCBwaXBlKTtcXG4gXFxuLVxcdHJldHVybiByZXQgPyAwIDogLUVUSU1FRE9VVDtcXG4rXFx0cmV0dXJuIHJldDtcXG4gfVxcbiBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayk7XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMTo1OS43MDI4MzkyNDlaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxMjA4OTI0NzI0NTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiRFJNX1ZLTVNcIixcbiAgICBcIkRSTV9GQkRFVl9FTVVMQVRJT05cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rXCIsXG4gICAgXCJkcm1fY3J0Y193YWl0X29uZV92YmxhbmtcIixcbiAgICBcImRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHJlZmFjdG9ycyB0aGUgdmJsYW5rIHdhaXRpbmcgbG9naWMgaW4gdGhlIERSTSBjb3JlIHRvIGF2b2lkIG5lc3RlZCBgZHJtX2NydGNfdmJsYW5rX2dldGAgY2FsbHMsIGludHJvZHVjaW5nIGEgbmV3IGludGVybmFsIGhlbHBlciBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYC4gVGhpcyBmaXhlcyBhIHBvdGVudGlhbCBpc3N1ZSBpbiBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgYW5kIG1vZGlmaWVzIHRoZSBleGVjdXRpb24gZmxvdyBvZiBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGZiZGV2IGlvY3RscyAoZS5nLiwgYEZCSU9fV0FJVEZPUlZTWU5DYCkgYW5kIERSTSBhdG9taWMgY29tbWl0cy4gVGhlIGNoYW5nZXMgaGF2ZSBhIGZ1bmN0aW9uYWwgaW1wYWN0IG9uIHRoZSBEUk0gY29yZSBhbmQgYXJlIHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGQ0MGRlY2NjY2ZkYzI4NDYyMmMyMzY2ZWFiODIyYjI3NzA1MzZlZDhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEF1ZyAxMSAwMToxMTo1OCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuY1xuaW5kZXggMDA4MGE4ZTk1NTZhNS4uN2ZmMGYyNGEwZjUwMiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuY1xuKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jXG5AQCAtMTMyOCw3ICsxMzI4LDcgQEAgaW50IGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92Ymxhbmsoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIHVuc2lnbmVkIGlcbiBcdCAqL1xuIFx0cmV0ID0gZHJtX2NydGNfdmJsYW5rX2dldChjcnRjKTtcbiBcdGlmICghcmV0KSB7XG4tXHRcdGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhjcnRjKTtcbitcdFx0ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKGNydGMpO1xuIFx0XHRkcm1fY3J0Y192YmxhbmtfcHV0KGNydGMpO1xuIFx0fVxuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaCBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaFxuaW5kZXggZjg5M2IxZTNhNTk2ZS4uNmZkMzM2NzJkMjA2YSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaFxuKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oXG5AQCAtMTE1LDYgKzExNSw3IEBAIHZvaWQgZHJtX3ZibGFua19kaXNhYmxlX2FuZF9zYXZlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTtcbiBpbnQgZHJtX3ZibGFua19nZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpO1xuIHZvaWQgZHJtX3ZibGFua19wdXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpO1xuIHU2NCBkcm1fdmJsYW5rX2NvdW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTtcbitpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7XG4gXG4gLyogZHJtX3ZibGFua193b3JrLmMgKi9cbiBzdGF0aWMgaW5saW5lIHZvaWQgZHJtX3ZibGFua19mbHVzaF93b3JrZXIoc3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jXG5pbmRleCBmOTBmYjJkMTNlNDIzLi45Y2FjNzAxM2I0YzljIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuY1xuKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuY1xuQEAgLTEyOTcsNiArMTI5NywzMiBAQCB2b2lkIGRybV9jcnRjX3ZibGFua19wdXQoc3RydWN0IGRybV9jcnRjICpjcnRjKVxuIH1cbiBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3ZibGFua19wdXQpO1xuIFxuKy8qKlxuKyAqIGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbCAtIHdhaXQgZm9yIG9uZSB2YmxhbmtcbisgKiBAY3J0YzogRFJNIGNydGNcbisgKlxuKyAqIFRoaXMgd2FpdHMgZm9yIG9uZSB2YmxhbmsgdG8gcGFzcyBvbiBAY3J0YywgdXNpbmcgdGhlIGlycSBkcml2ZXIgaW50ZXJmYWNlcy5cbisgKiBFdmVyeSBjYWxsZXIgbXVzdCBob2xkIGEgdmJsYW5rIHJlZmVyZW5jZSBhY3Jvc3MgdGhlIGNvbXBsZXRlIHdhaXQuXG4rICpcbisgKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIG9uIGZhaWx1cmVzLlxuKyAqL1xuK2ludCBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoc3RydWN0IGRybV9jcnRjICpjcnRjKVxuK3tcbitcdHN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLVx1MDAzZWRldjtcbitcdGludCBwaXBlID0gZHJtX2NydGNfaW5kZXgoY3J0Yyk7XG4rXHRzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2YmxhbmsgPSBkcm1fY3J0Y192YmxhbmtfY3J0YyhjcnRjKTtcbitcdGludCByZXQ7XG4rXHR1NjQgbGFzdDtcbitcbitcdGxhc3QgPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSk7XG4rXG4rXHRyZXQgPSB3YWl0X2V2ZW50X3RpbWVvdXQodmJsYW5rLVx1MDAzZXF1ZXVlLFxuK1x0XHRcdFx0IGxhc3QgIT0gZHJtX3ZibGFua19jb3VudChkZXYsIHBpcGUpLFxuK1x0XHRcdFx0IG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpO1xuK1xuK1x0cmV0dXJuIHJldCA/IDAgOiAtRVRJTUVET1VUO1xuK31cbitcbiAvKipcbiAgKiBkcm1fY3J0Y193YWl0X29uZV92YmxhbmsgLSB3YWl0IGZvciBvbmUgdmJsYW5rXG4gICogQGNydGM6IERSTSBjcnRjXG5AQCAtMTMxMSwyNiArMTMzNywyMCBAQCBpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcbiB7XG4gXHRzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy1cdTAwM2VkZXY7XG4gXHRpbnQgcGlwZSA9IGRybV9jcnRjX2luZGV4KGNydGMpO1xuLVx0c3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rID0gZHJtX2NydGNfdmJsYW5rX2NydGMoY3J0Yyk7XG4gXHRpbnQgcmV0O1xuLVx0dTY0IGxhc3Q7XG4gXG4gXHRyZXQgPSBkcm1fdmJsYW5rX2dldChkZXYsIHBpcGUpO1xuIFx0aWYgKGRybV9XQVJOKGRldiwgcmV0LCBcInZibGFuayBub3QgYXZhaWxhYmxlIG9uIGNydGMgJWksIHJldD0laVxcblwiLFxuIFx0XHQgICAgIHBpcGUsIHJldCkpXG4gXHRcdHJldHVybiByZXQ7XG4gXG4tXHRsYXN0ID0gZHJtX3ZibGFua19jb3VudChkZXYsIHBpcGUpO1xuLVxuLVx0cmV0ID0gd2FpdF9ldmVudF90aW1lb3V0KHZibGFuay1cdTAwM2VxdWV1ZSxcbi1cdFx0XHRcdCBsYXN0ICE9IGRybV92YmxhbmtfY291bnQoZGV2LCBwaXBlKSxcbi1cdFx0XHRcdCBtc2Vjc190b19qaWZmaWVzKDEwMDApKTtcbitcdHJldCA9IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTtcbiBcbi1cdGRybV9XQVJOKGRldiwgcmV0ID09IDAsIFwidmJsYW5rIHdhaXQgdGltZWQgb3V0IG9uIGNydGMgJWlcXG5cIiwgcGlwZSk7XG4rXHRkcm1fV0FSTihkZXYsIHJldCA9PSAtRVRJTUVET1VULCBcInZibGFuayB3YWl0IHRpbWVkIG91dCBvbiBjcnRjICVpXFxuXCIsIHBpcGUpO1xuIFxuIFx0ZHJtX3ZibGFua19wdXQoZGV2LCBwaXBlKTtcbiBcbi1cdHJldHVybiByZXQgPyAwIDogLUVUSU1FRE9VVDtcbitcdHJldHVybiByZXQ7XG4gfVxuIEVYUE9SVF9TWU1CT0woZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKTtcbiBcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDAxOjExOjU5LjcwMjg0MDYxOVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwNjUxNzg5OTU0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBvdGVudGlhbCBGdXp6aW5nIFRhcmdldDogRFJNIENsaWVudCBNb2Rlc2V0KipcblxuT2theSwgc28gSSd2ZSBnb3QgYSBwYXRjaCBoZXJlIHRoYXQncyB0b3VjaGluZyBgZHJtX2NsaWVudF9tb2Rlc2V0LmNgLCBgZHJtX2ludGVybmFsLmhgLCBhbmQgYGRybV92YmxhbmsuY2AuIE15IGluaXRpYWwgcmVhZCBzYXlzIGl0J3MgcmVmYWN0b3Jpbmcgc29tZSB2Ymxhbmsgd2FpdGluZyBsb2dpYy4gU3BlY2lmaWNhbGx5LCBpdCdzIHB1bGxpbmcgb3V0IHRoZSB3YWl0aW5nIHBhcnQgZnJvbSBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYCBpbnRvIGEgbmV3IGludGVybmFsIGZ1bmN0aW9uLCBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYC4gVGhlIGtleSBjaGFuZ2Ugc2VlbXMgdG8gYmUgdGhhdCBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgaXMgbm93IGdvaW5nIHRvIHVzZSB0aGlzIGludGVybmFsIGZ1bmN0aW9uIGluc3RlYWQgb2YgdGhlIG9yaWdpbmFsIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgLlxuXG5NeSBmaXJzdCBndXQgcmVhY3Rpb24gaXMsIFwiSG1tLCBwb3RlbnRpYWxseSBpbnRlcmVzdGluZyBmb3IgZnV6emluZy5cIiBJdCdzIGNoYW5naW5nIHRoZSBleGVjdXRpb24gcGF0aCBvZiB0aG9zZSB0d28gZnVuY3Rpb25zLCBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgYW5kIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgLiBUaGUgY3JpdGljYWwgcG9pbnQgaGVyZSBpcyB0aGF0IGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBhbHJlYWR5IGNhbGxzIGBkcm1fY3J0Y192YmxhbmtfZ2V0YCBiZWZvcmUgaXQgc3RhcnRzIHdhaXRpbmcsIGFuZCB0aGUgcmVmYWN0b3IgaXMgYXZvaWRpbmcgYSAqbmVzdGVkKiBjYWxsIHRvIGBkcm1fY3J0Y192YmxhbmtfZ2V0YC4gVGhhdCBzbWVsbHMgbGlrZSBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbiBvciBzb21lIHRpbWluZy1yZWxhdGVkIGJ1ZyBjb3VsZCBiZSBleHBvc2VkIHdpdGggdGhlIG5ldyBhcHByb2FjaC5cblxuQnV0IHdhaXQgYSBtaW51dGUuLi4gYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgLi4uIHRoYXQncyBwYXJ0IG9mIERSTSBjbGllbnQgbW9kZXNldCwgcmlnaHQ/IEFuZCBpc24ndCAqdGhhdCogYWNjZXNzaWJsZSBmcm9tIHVzZXJzcGFjZT8gVGhyb3VnaCBEUk0gaW9jdGxzIG9yIHN5c2ZzPyBZZWFoLCBJJ20gcHJldHR5IHN1cmUgaXQgaXMuIEFscmlnaHQsIEkgbmVlZCB0byBjb25maXJtIHdoZXJlIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBpcyBhY3R1YWxseSBjYWxsZWQuIFRoYXQncyBhIGNydWNpYWwgcGllY2Ugb2YgaW5mb3JtYXRpb24gYmVmb3JlIEkgbWFrZSBhIGNhbGwgb24gZnV6emluZy4gR290dGEgc2VlIHdoYXQgdGhlIGNhbGwgc2l0ZXMgbG9vayBsaWtlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTQ5LCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzAwLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTI6MTAuMzU0NjMzMjYzWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzMDE1MDk5ODksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM9MTI5NT1FWFBPUlRfU1lNQk9MKGRybV9jbGllbnRfbW9kZXNldF9kcG1zKTtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjk3LS8qKlxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMjk4OiAqIGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmsoKSAtIFdhaXQgZm9yIHRoZSBuZXh0IFZCTEFOSyB0byBvY2N1clxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjk5LSAqIEBjbGllbnQ6IERSTSBjbGllbnRcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzA4LSAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMzA5OmludCBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCB1bnNpZ25lZCBpbnQgY3J0Y19pbmRleClcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTMxMC17XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTMzOC19XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEzMzk6RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTM0MC1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9MzE1PXN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZmJfZGlydHkoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlcilcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMzI2LVxcdGlmIChjcnRjX2luZGV4IFxcdTAwM2U9IDApXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzozMjc6XFx0XFx0ZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayhcXHUwMDI2aGVscGVyLVxcdTAwM2VjbGllbnQsIGNydGNfaW5kZXgpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMzI4LVxcdG11dGV4X3VubG9jayhcXHUwMDI2aGVscGVyLVxcdTAwM2Vsb2NrKTtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9OTg0PWludCBkcm1fZmJfaGVscGVyX2lvY3RsKHN0cnVjdCBmYl9pbmZvICppbmZvLCB1bnNpZ25lZCBpbnQgY21kLFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMDA5LVxcdFxcdCAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTAxMDpcXHRcXHRyZXQgPSBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKFxcdTAwMjZmYl9oZWxwZXItXFx1MDAzZWNsaWVudCwgMCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMDExLVxcdFxcdGJyZWFrO1xcbi0tXFxuaW5jbHVkZS9kcm0vZHJtX2NsaWVudC5oPTIxOT1pbnQgZHJtX2NsaWVudF9tb2Rlc2V0X2RwbXMoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIGludCBtb2RlKTtcXG5pbmNsdWRlL2RybS9kcm1fY2xpZW50Lmg6MjIwOmludCBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCB1bnNpZ25lZCBpbnQgY3J0Y19pbmRleCk7XFxuaW5jbHVkZS9kcm0vZHJtX2NsaWVudC5oLTIyMS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTI6MTIuNjU2MTQ5MjEyWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTk0Mzg3NTE1OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBEUk0vRkJERVYgSW50ZXJhY3Rpb24gQnVnIEZpeCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgZml4IHJlbGF0ZWQgdG8gYGRybV9mYl9oZWxwZXJfaW9jdGxgIGFuZCBgZHJtX2ZiX2hlbHBlcl9mYl9kaXJ0eWAuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRoYXQgdGhpcyBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UsIHNwZWNpZmljYWxseSB0aHJvdWdoIHRoZSBgRkJJT19XQUlURk9SVlNZTkNgIGlvY3RsLCBhbmQgcG9zc2libHkgb3RoZXJzLiBHaXZlbiBzeXprYWxsZXIncyBmdXp6aW5nIG9mIHRoZSBEUk0gc3Vic3lzdGVtLCBsaWtlIHdpdGggdmdlbSBhbmQgdmttcywgdGhpcyBpcyBkZWZpbml0ZWx5IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIHRyaWdnZXJlZCBpbiBhIGZ1enppbmcgY2FtcGFpZ24uXG5cblRoZSBjb3JlIG9mIHRoZSBpc3N1ZSBzZWVtcyB0byBiZSB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucyBpbiB3YWl0aW5nIGZvciBhIHZibGFuay4gU3BlY2lmaWNhbGx5LCBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYCB3YXMgYmVpbmcgY2FsbGVkICphZnRlciogYSBgZHJtX2NydGNfdmJsYW5rX2dldGAsIHdoaWNoIGluIHR1cm4sIHdvdWxkIGNhbGwgYGRybV92YmxhbmtfZ2V0YCAqYWdhaW4qLiBUaGF0J3MgaW5lZmZpY2llbnQgYW5kIHBvdGVudGlhbGx5IGJ1Z2d5LiBUaGlzIGlzIGEgY2xlYXIgZnVuY3Rpb25hbCBjaGFuZ2UsIG5vdCBqdXN0IGEgY29zbWV0aWMgb25lLlxuXG5NeSBuZXh0IHN0ZXAgaXMgdG8gZGlnIGludG8gdGhlIHJlbGV2YW50IGZ1bmN0aW9ucy4gTGV0J3MgbG9vayBhdCBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYCBhbmQgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AuIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIGlzIHRoZSBleHBvcnRlZCwgcHVibGljIGludGVyZmFjZSwgdXNlZCBieSBudW1lcm91cyBEUk0gZHJpdmVycy4gYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAgaXMgdGhlIGludGVybmFsIGhlbHBlciBmdW5jdGlvbi4gRXZlbiB0aG91Z2ggaXQncyBpbnRlcm5hbCwgdGhlIGZhY3QgdGhhdCBpdCBpc24ndCBgc3RhdGljYCBtZWFucyBpdCB0ZWNobmljYWxseSBoYXMgYSBzeW1ib2wsIHNvIEkgc2hvdWxkIGluY2x1ZGUgaXQgaW4gbXkgcmV2aWV3LlxuXG5JIHdhbnQgdG8gZm9jdXMgb24gdGhlc2Ugc3ltYm9scyB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGlzIGhhcHBlbmluZzpcbiogICBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2BcbiogICBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYFxuKiAgIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgXG5cbkZpbmFsbHksIGEgcXVpY2sgY2hlY2sgb2YgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRFJNIGFuZCBGQl9IRUxQRVIgaXMgaW4gb3JkZXIsIGp1c3QgdG8gbWFrZSBzdXJlIHdlJ3JlIG5vdCBkZWFsaW5nIHdpdGggc29tZSB1bnVzdWFsIGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jeS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDYwMCwiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMwMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMjoxOC42MDAwMjYyOVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODA0NTI3ODU1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBEUk1fRkJERVZfRU1VTEFUSU9OXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc9Mjg9bWVudSBcXFwiU3VwcG9ydGVkIERSTSBjbGllbnRzXFxcIlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0zMC1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjMxOmNvbmZpZyBEUk1fRkJERVZfRU1VTEFUSU9OXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0zMi1cXHRib29sIFxcXCJFbmFibGUgbGVnYWN5IGZiZGV2IHN1cHBvcnQgZm9yIHlvdXIgbW9kZXNldHRpbmcgZHJpdmVyXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMjoyMC40MDQ1NjAyNjVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDQzODQxMTU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGZyb20gYW4gZXhwZXJ0J3MgcGVyc3BlY3RpdmU6XG5cbioqRGl2aW5nIGludG8gdGhlIEZyYW1lYnVmZmVyIEVtdWxhdGlvbioqXG5cbkhhbmcgb24gYSBzZWNvbmTigKYgSSdtIHNlZWluZyB0aGlzIGBkcm1fZmJfaGVscGVyLmNgIGZpbGUgYW5kIGl0cyBjb21waWxhdGlvbiB1bmRlciBgQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT05gLiBUaGF0J3MgaW50ZXJlc3RpbmcsIGFuZCBpdCBpbW1lZGlhdGVseSB0cmlnZ2VycyBzb21lIGZsYWdzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aHkgdGhpcyBlbXVsYXRpb24gaXMgZXZlbiBoYXBwZW5pbmcuIExldCBtZSBxdWlja2x5IGp1bXAgb3ZlciB0byB0aGUgYGRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZWAuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGlzIGBkcm1fZmJkZXZfZW11bGF0aW9uYCBjb25maWcgb3B0aW9uIHRpZXMgaW50byB0aGUgYmlnZ2VyIHBpY3R1cmUgb2YgdGhlIERpcmVjdCBSZW5kZXJpbmcgTWFuYWdlciAoRFJNKSBhbmQgZnJhbWVidWZmZXJzLiBNeSBzcGlkZXktc2Vuc2UgdGVsbHMgbWUgdGhpcyBpcyBrZXkgdG8gaG93IHNvbWUgbGVnYWN5IGZyYW1lYnVmZmVyIGludGVyYWN0aW9ucyBhcmUgaGFuZGxlZCBpbiB0aGUgRFJNIHdvcmxkLCBhbmQgSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIHRoZSB1bmRlcmx5aW5nIGRlcGVuZGVuY2llcyBhbmQgY29uZmlndXJhdGlvbiBjaG9pY2VzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NDYwLCJPdXRwdXRUb2tlbnMiOjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTI6MjMuNDQ4NDAzNjIxWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1MDk2ODcxNzQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZHJtX2ZiX2hlbHBlclwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDE1NjggbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbkRvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3Q9MTA5PWZiZGV2IEhlbHBlciBGdW5jdGlvbnMgUmVmZXJlbmNlXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0LTExMS1cXG5Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0OjExMjouLiBrZXJuZWwtZG9jOjogZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuY1xcbkRvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3QtMTEzLSAgIDpkb2M6IGZiZGV2IGhlbHBlcnNcXG5Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0LTExNC1cXG5Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0OjExNTouLiBrZXJuZWwtZG9jOjogaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oXFxuRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy1oZWxwZXJzLnJzdC0xMTYtICAgOmludGVybmFsOlxcbkRvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3QtMTE3LVxcbkRvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3Q6MTE4Oi4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jXFxuRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy1oZWxwZXJzLnJzdC0xMTktICAgOmV4cG9ydDpcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZT0xNTk9ZHJtX2ttc19oZWxwZXItJChDT05GSUdfRFJNX1BBTkVMX0JSSURHRSkgKz0gYnJpZGdlL3BhbmVsLm9cXG5kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGU6MTYwOmRybV9rbXNfaGVscGVyLSQoQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT04pICs9IGRybV9mYl9oZWxwZXIub1xcbmRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZS0xNjEtb2JqLSQoQ09ORklHX0RSTV9LTVNfSEVMUEVSKSArPSBkcm1fa21zX2hlbHBlci5vXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGlzcGxheS5jLTQ0LSNpbmNsdWRlIFxcdTAwM2Nkcm0vZHJtX2VkaWQuaFxcdTAwM2VcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGlzcGxheS5jOjQ1OiNpbmNsdWRlIFxcdTAwM2Nkcm0vZHJtX2ZiX2hlbHBlci5oXFx1MDAzZVxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmMtNDYtI2luY2x1ZGUgXFx1MDAzY2RybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oXFx1MDAzZVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXkuYz0xNzQxPWludCBhbWRncHVfZGlzcGxheV9zdXNwZW5kX2hlbHBlcihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldilcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmMtMTc3Ni1cXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGlzcGxheS5jOjE3Nzc6XFx0XFx0aWYgKCFkcm1fZmJfaGVscGVyX2dlbV9pc19mYihkZXYtXFx1MDAzZWZiX2hlbHBlciwgZmItXFx1MDAzZW9ialswXSkpIHtcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGlzcGxheS5jLTE3NzgtXFx0XFx0XFx0c3RydWN0IGFtZGdwdV9ibyAqcm9iaiA9IGdlbV90b19hbWRncHVfYm8oZmItXFx1MDAzZW9ialswXSk7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfa21zLmMtMzEtI2luY2x1ZGUgXFx1MDAzY2RybS9kcm1fZHJ2LmhcXHUwMDNlXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5jOjMyOiNpbmNsdWRlIFxcdTAwM2Nkcm0vZHJtX2ZiX2hlbHBlci5oXFx1MDAzZVxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9rbXMuYy0zMy0jaW5jbHVkZSBcXFwiYW1kZ3B1X3V2ZC5oXFxcIlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZHJtLmg9MTg9c3RydWN0IGRybV9kaXNwbGF5X21vZGU7XFxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZHJtLmg6MTk6c3RydWN0IGRybV9mYl9oZWxwZXI7XFxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZHJtLmg6MjA6c3RydWN0IGRybV9mYl9oZWxwZXJfc3VyZmFjZV9zaXplO1xcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2RybS5oLTIxLVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZHJtLmg9NTc9c3RydWN0IGFybWFkYV9wcml2YXRlIHtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2RybS5oLTc4LSNpZiBkZWZpbmVkKENPTkZJR19EUk1fRkJERVZfRU1VTEFUSU9OKVxcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2RybS5oOjc5OmludCBhcm1hZGFfZmJkZXZfZHJpdmVyX2ZiZGV2X3Byb2JlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYmgsXFxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZHJtLmg6ODA6XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBkcm1fZmJfaGVscGVyX3N1cmZhY2Vfc2l6ZSAqc2l6ZXMpO1xcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2RybS5oLTgxLSNkZWZpbmUgQVJNQURBX0ZCREVWX0RSSVZFUl9PUFMgXFxcXFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYy0xMy0jaW5jbHVkZSBcXHUwMDNjZHJtL2RybV9kcnYuaFxcdTAwM2VcXG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9mYmRldi5jOjE0OiNpbmNsdWRlIFxcdTAwM2Nkcm0vZHJtX2ZiX2hlbHBlci5oXFx1MDAzZVxcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmMtMTUtI2luY2x1ZGUgXFx1MDAzY2RybS9kcm1fZm91cmNjLmhcXHUwMDNlXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9mYmRldi5jPTIzPXN0YXRpYyB2b2lkIGFybWFkYV9mYmRldl9mYl9kZXN0cm95KHN0cnVjdCBmYl9pbmZvICppbmZvKVxcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmMtMjQte1xcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmM6MjU6XFx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiaCA9IGluZm8tXFx1MDAzZXBhcjtcXG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9mYmRldi5jLTI2LVxcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmM6Mjc6XFx0ZHJtX2ZiX2hlbHBlcl9maW5pKGZiaCk7XFxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYy0yOC1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmM9MzQ9c3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgYXJtYWRhX2ZiX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmMtNDAtXFxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYzo0MTpzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9mYl9oZWxwZXJfZnVuY3MgYXJtYWRhX2ZiZGV2X2hlbHBlcl9mdW5jcztcXG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9mYmRldi5jLTQyLVxcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmM6NDM6aW50IGFybWFkYV9mYmRldl9kcml2ZXJfZmJkZXZfcHJvYmUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiaCxcXG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9mYmRldi5jOjQ0OlxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9zdXJmYWNlX3NpemUgKnNpemVzKVxcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2ZiZGV2LmMtNDUte1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYy0xMDEtXFxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYzoxMDI6XFx0ZHJtX2ZiX2hlbHBlcl9maWxsX2luZm8oaW5mbywgZmJoLCBzaXplcyk7XFxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZmJkZXYuYy0xMDMtXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtNS0jaW5jbHVkZSBcXHUwMDNjZHJtL2RybV9kcnYuaFxcdTAwM2VcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM6NjojaW5jbHVkZSBcXHUwMDNjZHJtL2RybV9mYl9oZWxwZXIuaFxcdTAwM2VcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtNy0jaW5jbHVkZSBcXHUwMDNjZHJtL2RybV9mb3VyY2MuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYz0xNj1zdGF0aWMgdm9pZCBkcm1fZmJkZXZfY2xpZW50X2ZyZWUoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQpXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTE3LXtcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM6MTg6XFx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9IGRybV9mYl9oZWxwZXJfZnJvbV9jbGllbnQoY2xpZW50KTtcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtMTktXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjIwOlxcdGRybV9mYl9oZWxwZXJfdW5wcmVwYXJlKGZiX2hlbHBlcik7XFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTIxLVxcdGtmcmVlKGZiX2hlbHBlcik7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM9MjQ9c3RhdGljIHZvaWQgZHJtX2ZiZGV2X2NsaWVudF91bnJlZ2lzdGVyKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy0yNS17XFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjI2OlxcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBkcm1fZmJfaGVscGVyX2Zyb21fY2xpZW50KGNsaWVudCk7XFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTI3LVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTMxLVxcdFxcdCAqL1xcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzozMjpcXHRcXHRkcm1fZmJfaGVscGVyX3VucmVnaXN0ZXJfaW5mbyhmYl9oZWxwZXIpO1xcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy0zMy1cXHR9IGVsc2Uge1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jPTQxPXN0YXRpYyBpbnQgZHJtX2ZiZGV2X2NsaWVudF9yZXN0b3JlKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCBib29sIGZvcmNlKVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy00Mi17XFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjQzOlxcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBkcm1fZmJfaGVscGVyX2Zyb21fY2xpZW50KGNsaWVudCk7XFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTQ0LVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzo0NTpcXHRkcm1fZmJfaGVscGVyX3Jlc3RvcmVfZmJkZXZfbW9kZV91bmxvY2tlZChmYl9oZWxwZXIsIGZvcmNlKTtcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtNDYtXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM9NTA9c3RhdGljIGludCBkcm1fZmJkZXZfY2xpZW50X2hvdHBsdWcoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQpXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTUxLXtcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM6NTI6XFx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9IGRybV9mYl9oZWxwZXJfZnJvbV9jbGllbnQoY2xpZW50KTtcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtNTMtXFx0c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNsaWVudC1cXHUwMDNlZGV2O1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTU2LVxcdGlmIChkZXYtXFx1MDAzZWZiX2hlbHBlcilcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM6NTc6XFx0XFx0cmV0dXJuIGRybV9mYl9oZWxwZXJfaG90cGx1Z19ldmVudChkZXYtXFx1MDAzZWZiX2hlbHBlcik7XFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTU4LVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzo1OTpcXHRyZXQgPSBkcm1fZmJfaGVscGVyX2luaXQoZGV2LCBmYl9oZWxwZXIpO1xcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy02MC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTY1LVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzo2NjpcXHRyZXQgPSBkcm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmlnKGZiX2hlbHBlcik7XFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTY3LVxcdGlmIChyZXQpXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjY4OlxcdFxcdGdvdG8gZXJyX2RybV9mYl9oZWxwZXJfZmluaTtcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtNjktXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtNzEtXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjcyOmVycl9kcm1fZmJfaGVscGVyX2Zpbmk6XFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjczOlxcdGRybV9mYl9oZWxwZXJfZmluaShmYl9oZWxwZXIpO1xcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy03NC1lcnJfZHJtX2VycjpcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYz03OT1zdGF0aWMgaW50IGRybV9mYmRldl9jbGllbnRfc3VzcGVuZChzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudClcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtODAte1xcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzo4MTpcXHRzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyID0gZHJtX2ZiX2hlbHBlcl9mcm9tX2NsaWVudChjbGllbnQpO1xcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy04Mi1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM6ODM6XFx0ZHJtX2ZiX2hlbHBlcl9zZXRfc3VzcGVuZF91bmxvY2tlZChmYl9oZWxwZXIsIHRydWUpO1xcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy04NC1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYz04OD1zdGF0aWMgaW50IGRybV9mYmRldl9jbGllbnRfcmVzdW1lKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy04OS17XFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jOjkwOlxcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBkcm1fZmJfaGVscGVyX2Zyb21fY2xpZW50KGNsaWVudCk7XFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTkxLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzo5MjpcXHRkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kX3VubG9ja2VkKGZiX2hlbHBlciwgZmFsc2UpO1xcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy05My1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYz0xMjY9aW50IGRybV9mYmRldl9jbGllbnRfc2V0dXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5mbyAqZm9ybWF0KVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy0xMjcte1xcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYzoxMjg6XFx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcjtcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmMtMTI5LVxcdHVuc2lnbmVkIGludCBjb2xvcl9tb2RlO1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTE1OS1cXHRcXHRyZXR1cm4gLUVOT01FTTtcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM6MTYwOlxcdGRybV9mYl9oZWxwZXJfcHJlcGFyZShkZXYsIGZiX2hlbHBlciwgY29sb3JfbW9kZSwgTlVMTCk7XFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTE2MS1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9mYmRldl9jbGllbnQuYy0xNzItZXJyX2RybV9jbGllbnRfaW5pdDpcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fZmJkZXZfY2xpZW50LmM6MTczOlxcdGRybV9mYl9oZWxwZXJfdW5wcmVwYXJlKGZiX2hlbHBlcik7XFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2ZiZGV2X2NsaWVudC5jLTE3NC1cXHRrZnJlZShmYl9oZWxwZXIpO1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9hdXRoLmM9NDMwPUVYUE9SVF9TWU1CT0woZHJtX21hc3Rlcl9wdXQpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fYXV0aC5jLTQzMS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2F1dGguYzo0MzI6LyogVXNlZCBieSBkcm1fY2xpZW50IGFuZCBkcm1fZmJfaGVscGVyICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV9hdXRoLmMtNDMzLWJvb2wgZHJtX21hc3Rlcl9pbnRlcm5hbF9hY3F1aXJlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2F1dGguYz00NDM9RVhQT1JUX1NZTUJPTChkcm1fbWFzdGVyX2ludGVybmFsX2FjcXVpcmUpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fYXV0aC5jLTQ0NC1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2F1dGguYzo0NDU6LyogVXNlZCBieSBkcm1fY2xpZW50IGFuZCBkcm1fZmJfaGVscGVyICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV9hdXRoLmMtNDQ2LXZvaWQgZHJtX21hc3Rlcl9pbnRlcm5hbF9yZWxlYXNlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTM2LSNpbmNsdWRlIFxcdTAwM2Nkcm0vZHJtX2Rydi5oXFx1MDAzZVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6Mzc6I2luY2x1ZGUgXFx1MDAzY2RybS9kcm1fZmJfaGVscGVyLmhcXHUwMDNlXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zOC0jaW5jbHVkZSBcXHUwMDNjZHJtL2RybV9mb3VyY2MuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9NzU9TU9EVUxFX1BBUk1fREVTQyhkcm1fbGVha19mYmRldl9zbWVtLFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05NC0gKiBJdCBpcyBwb3NzaWJsZSwgdGhvdWdoIHBlcmhhcHMgc29tZXdoYXQgdHJpY2t5LCB0byBpbXBsZW1lbnQgcmFjZS1mcmVlXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo5NTogKiBob3RwbHVnIGRldGVjdGlvbiB1c2luZyB0aGUgZmJkZXYgaGVscGVycy4gVGhlIGRybV9mYl9oZWxwZXJfcHJlcGFyZSgpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05Ni0gKiBoZWxwZXIgbXVzdCBiZSBjYWxsZWQgZmlyc3QgdG8gaW5pdGlhbGl6ZSB0aGUgbWluaW11bSByZXF1aXJlZCB0byBtYWtlXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEwMS0gKiBlbmNvZGVycyBhbmQgY29ubmVjdG9ycy4gVG8gZmluaXNoIHVwIHRoZSBmYmRldiBoZWxwZXIgaW5pdGlhbGl6YXRpb24sIHRoZVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTAyOiAqIGRybV9mYl9oZWxwZXJfaW5pdCgpIGZ1bmN0aW9uIGlzIGNhbGxlZC4gVG8gcHJvYmUgZm9yIGFsbCBhdHRhY2hlZCBkaXNwbGF5c1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTAzLSAqIGFuZCBzZXQgdXAgYW4gaW5pdGlhbCBjb25maWd1cmF0aW9uIHVzaW5nIHRoZSBkZXRlY3RlZCBoYXJkd2FyZSwgZHJpdmVyc1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTA0OiAqIHNob3VsZCBjYWxsIGRybV9mYl9oZWxwZXJfaW5pdGlhbF9jb25maWcoKS5cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEwNS0gKlxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTA2LSAqIElmIFxcdTAwMjZkcm1fZnJhbWVidWZmZXJfZnVuY3MuZGlydHkgaXMgc2V0LCB0aGVcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjEwNzogKiBkcm1fZmJfaGVscGVyX3tjZmIsc3lzfV97d3JpdGUsZmlsbHJlY3QsY29weWFyZWEsaW1hZ2VibGl0fSBmdW5jdGlvbnMgd2lsbFxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTA4OiAqIGFjY3VtdWxhdGUgY2hhbmdlcyBhbmQgc2NoZWR1bGUgXFx1MDAyNmRybV9mYl9oZWxwZXIuZGlydHlfd29yayB0byBydW4gcmlnaHRcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEwOS0gKiBhd2F5LiBUaGlzIHdvcmtlciB0aGVuIGNhbGxzIHRoZSBkaXJ0eSgpIGZ1bmN0aW9uIGVuc3VyaW5nIHRoYXQgaXQgd2lsbFxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTEwLSAqIGFsd2F5cyBydW4gaW4gcHJvY2VzcyBjb250ZXh0IHNpbmNlIHRoZSBmYl8qKCkgZnVuY3Rpb24gY291bGQgYmUgcnVubmluZyBpblxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTExOiAqIGF0b21pYyBjb250ZXh0LiBJZiBkcm1fZmJfaGVscGVyX2RlZmVycmVkX2lvKCkgaXMgdXNlZCBhcyB0aGUgZGVmZXJyZWRfaW9cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTExMi0gKiBjYWxsYmFjayBpdCB3aWxsIGFsc28gc2NoZWR1bGUgZGlydHlfd29yayB3aXRoIHRoZSBkYW1hZ2UgY29sbGVjdGVkIGZyb20gdGhlXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jPTExNj1zdGF0aWMgaW50XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxMTc6X19kcm1fZmJfaGVscGVyX3Jlc3RvcmVfZmJkZXZfbW9kZV91bmxvY2tlZChzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLFxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTE4LVxcdFxcdFxcdFxcdFxcdCAgICBib29sIGZvcmNlKVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMzMtXFx0XFx0ICogdG8gYmUgaGVsZC4gQnV0IGZvciBmb3JjZWQgcmVzdG9yZXMgd2UncmUgaW50ZW50aW9uYWxseVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTM0OlxcdFxcdCAqIHJhY2luZyBoZXJlLCBzZWUgZHJtX2ZiX2hlbHBlcl9zZXRfcGFyKCkuXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMzUtXFx0XFx0ICovXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE0Ni1cXHRpZiAoZG9fZGVsYXllZClcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjE0NzpcXHRcXHRkcm1fZmJfaGVscGVyX2hvdHBsdWdfZXZlbnQoZmJfaGVscGVyKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE0OC1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTU1LS8qKlxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTU2OiAqIGRybV9mYl9oZWxwZXJfcmVzdG9yZV9mYmRldl9tb2RlX3VubG9ja2VkIC0gcmVzdG9yZSBmYmRldiBjb25maWd1cmF0aW9uXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xNTctICogQGZiX2hlbHBlcjogZHJpdmVyLWFsbG9jYXRlZCBmYmRldiBoZWxwZXIsIGNhbiBiZSBOVUxMXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE2Ni0gKi9cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjE2NzppbnQgZHJtX2ZiX2hlbHBlcl9yZXN0b3JlX2ZiZGV2X21vZGVfdW5sb2NrZWQoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwgYm9vbCBmb3JjZSlcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE2OC17XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxNjk6XFx0cmV0dXJuIF9fZHJtX2ZiX2hlbHBlcl9yZXN0b3JlX2ZiZGV2X21vZGVfdW5sb2NrZWQoZmJfaGVscGVyLCBmb3JjZSk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xNzAtfVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTcxOkVYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9yZXN0b3JlX2ZiZGV2X21vZGVfdW5sb2NrZWQpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTcyLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTczOnN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZHBtcyhzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgaW50IGRwbXNfbW9kZSlcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE3NC17XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxNzU6XFx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9IGluZm8tXFx1MDAzZXBhcjtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE3Ni1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTgyLS8qKlxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTgzOiAqIGRybV9mYl9oZWxwZXJfYmxhbmsgLSBpbXBsZW1lbnRhdGlvbiBmb3IgXFx1MDAyNmZiX29wcy5mYl9ibGFua1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTg0LSAqIEBibGFuazogZGVzaXJlZCBibGFua2luZyBzdGF0ZVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xODYtICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxODc6aW50IGRybV9mYl9oZWxwZXJfYmxhbmsoaW50IGJsYW5rLCBzdHJ1Y3QgZmJfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE4OC17XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE5NC1cXHRjYXNlIEZCX0JMQU5LX1VOQkxBTks6XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxOTU6XFx0XFx0ZHJtX2ZiX2hlbHBlcl9kcG1zKGluZm8sIERSTV9NT0RFX0RQTVNfT04pO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTk2LVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xOTgtXFx0Y2FzZSBGQl9CTEFOS19OT1JNQUw6XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxOTk6XFx0XFx0ZHJtX2ZiX2hlbHBlcl9kcG1zKGluZm8sIERSTV9NT0RFX0RQTVNfU1RBTkRCWSk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMDAtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTIwMi1cXHRjYXNlIEZCX0JMQU5LX0hTWU5DX1NVU1BFTkQ6XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoyMDM6XFx0XFx0ZHJtX2ZiX2hlbHBlcl9kcG1zKGluZm8sIERSTV9NT0RFX0RQTVNfU1RBTkRCWSk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMDQtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTIwNi1cXHRjYXNlIEZCX0JMQU5LX1ZTWU5DX1NVU1BFTkQ6XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoyMDc6XFx0XFx0ZHJtX2ZiX2hlbHBlcl9kcG1zKGluZm8sIERSTV9NT0RFX0RQTVNfU1VTUEVORCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMDgtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTIxMC1cXHRjYXNlIEZCX0JMQU5LX1BPV0VSRE9XTjpcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjIxMTpcXHRcXHRkcm1fZmJfaGVscGVyX2RwbXMoaW5mbywgRFJNX01PREVfRFBNU19PRkYpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMjEyLVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMTUtfVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MjE2OkVYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9ibGFuayk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMTctXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoyMTg6c3RhdGljIHZvaWQgZHJtX2ZiX2hlbHBlcl9yZXN1bWVfd29ya2VyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTIxOS17XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoyMjA6XFx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgZHJtX2ZiX2hlbHBlcixcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTIyMS1cXHRcXHRcXHRcXHRcXHRcXHQgICAgcmVzdW1lX3dvcmspO1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMjctXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoyMjg6c3RhdGljIGludCBmaW5kX2NydGNfaW5kZXhfYXRvbWljKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yMjkte1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yNzgtXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoyNzk6c3RhdGljIGludCBmaW5kX2NydGNfaW5kZXhfbGVnYWN5KHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yODAte1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0yOTctXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoyOTg6c3RhdGljIGludCBkcm1fZmJfaGVscGVyX2ZpbmRfY3J0Y19pbmRleChzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyKVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMjk5LXtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMzE0LVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MzE1OnN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZmJfZGlydHkoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlcilcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTMxNi17XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTMyNC1cXHRtdXRleF9sb2NrKFxcdTAwMjZoZWxwZXItXFx1MDAzZWxvY2spO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MzI1OlxcdGNydGNfaW5kZXggPSBkcm1fZmJfaGVscGVyX2ZpbmRfY3J0Y19pbmRleChoZWxwZXIpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMzI2LVxcdGlmIChjcnRjX2luZGV4IFxcdTAwM2U9IDApXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTM1Ny1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjM1ODpzdGF0aWMgdm9pZCBkcm1fZmJfaGVscGVyX2RhbWFnZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTM1OS17XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzozNjA6XFx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgZHJtX2ZiX2hlbHBlciwgZGFtYWdlX3dvcmspO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMzYxLVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zNjQtXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzozNjU6XFx0ZHJtX2ZiX2hlbHBlcl9mYl9kaXJ0eShoZWxwZXIpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMzY2LX1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMzY4LS8qKlxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MzY5OiAqIGRybV9mYl9oZWxwZXJfcHJlcGFyZSAtIHNldHVwIGEgZHJtX2ZiX2hlbHBlciBzdHJ1Y3R1cmVcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTM3MC0gKiBAZGV2OiBEUk0gZGV2aWNlXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTM3Ny0gKi9cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjM3ODp2b2lkIGRybV9mYl9oZWxwZXJfcHJlcGFyZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLFxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMzc5LVxcdFxcdFxcdCAgIHVuc2lnbmVkIGludCBwcmVmZXJyZWRfYnBwLFxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MzgwOlxcdFxcdFxcdCAgIGNvbnN0IHN0cnVjdCBkcm1fZmJfaGVscGVyX2Z1bmNzICpmdW5jcylcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTM4MS17XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTM5Ni1cXHRzcGluX2xvY2tfaW5pdChcXHUwMDI2aGVscGVyLVxcdTAwM2VkYW1hZ2VfbG9jayk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzozOTc6XFx0SU5JVF9XT1JLKFxcdTAwMjZoZWxwZXItXFx1MDAzZXJlc3VtZV93b3JrLCBkcm1fZmJfaGVscGVyX3Jlc3VtZV93b3JrZXIpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6Mzk4OlxcdElOSVRfV09SSyhcXHUwMDI2aGVscGVyLVxcdTAwM2VkYW1hZ2Vfd29yaywgZHJtX2ZiX2hlbHBlcl9kYW1hZ2Vfd29yayk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zOTktXFx0aGVscGVyLVxcdTAwM2VkYW1hZ2VfY2xpcC54MSA9IGhlbHBlci1cXHUwMDNlZGFtYWdlX2NsaXAueTEgPSB+MDtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDA0LX1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQwNTpFWFBPUlRfU1lNQk9MKGRybV9mYl9oZWxwZXJfcHJlcGFyZSk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MDYtXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MDctLyoqXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo0MDg6ICogZHJtX2ZiX2hlbHBlcl91bnByZXBhcmUgLSBjbGVhbiB1cCBhIGRybV9mYl9oZWxwZXIgc3RydWN0dXJlXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MDktICogQGZiX2hlbHBlcjogZHJpdmVyLWFsbG9jYXRlZCBmYmRldiBoZWxwZXIgc3RydWN0dXJlIHRvIHNldCB1cFxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDEwLSAqXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo0MTE6ICogQ2xlYW5zIHVwIHRoZSBmcmFtZWJ1ZmZlciBoZWxwZXIuIEludmVyc2Ugb2YgZHJtX2ZiX2hlbHBlcl9wcmVwYXJlKCkuXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MTItICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo0MTM6dm9pZCBkcm1fZmJfaGVscGVyX3VucHJlcGFyZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDE0LXtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDE2LX1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQxNzpFWFBPUlRfU1lNQk9MKGRybV9mYl9oZWxwZXJfdW5wcmVwYXJlKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQxOC1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQxOS0vKipcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQyMDogKiBkcm1fZmJfaGVscGVyX2luaXQgLSBpbml0aWFsaXplIGEgXFx1MDAyNnN0cnVjdCBkcm1fZmJfaGVscGVyXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MjEtICogQGRldjogZHJtIGRldmljZVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MjUtICogTm90ZSB0aGF0IHRoaXMgd29uJ3QgeWV0IHRvdWNoIHRoZSBoYXJkd2FyZSAodGhyb3VnaCB0aGUgZHJpdmVyIGludGVyZmFjZXMpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo0MjY6ICogbm9yIHJlZ2lzdGVyIHRoZSBmYmRldi4gVGhpcyBpcyBvbmx5IGRvbmUgaW4gZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZygpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MjctICogdG8gYWxsb3cgZHJpdmVyIHdyaXRlcyBtb3JlIGNvbnRyb2wgb3ZlciB0aGUgZXhhY3QgaW5pdCBzZXF1ZW5jZS5cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQyOC0gKlxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NDI5OiAqIERyaXZlcnMgbXVzdCBjYWxsIGRybV9mYl9oZWxwZXJfcHJlcGFyZSgpIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00MzAtICpcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDMzLSAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NDM0OmludCBkcm1fZmJfaGVscGVyX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldixcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQzNTpcXHRcXHQgICAgICAgc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcilcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQzNi17XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQ0MC19XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo0NDE6RVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX2luaXQpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDQyLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NDQzOnN0YXRpYyBzdHJ1Y3QgZmJfaW5mbyAqZHJtX2ZiX2hlbHBlcl9hbGxvY19pbmZvKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00NDQte1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00NzAtXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo0NzE6c3RhdGljIHZvaWQgZHJtX2ZiX2hlbHBlcl9yZWxlYXNlX2luZm8oc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcilcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQ3Mi17XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQ4NS0vKipcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQ4NjogKiBkcm1fZmJfaGVscGVyX3VucmVnaXN0ZXJfaW5mbyAtIHVucmVnaXN0ZXIgZmJfaW5mbyBmcmFtZWJ1ZmZlciBkZXZpY2VcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQ4Ny0gKiBAZmJfaGVscGVyOiBkcml2ZXItYWxsb2NhdGVkIGZiZGV2IGhlbHBlciwgbXVzdCBub3QgYmUgTlVMTFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00OTAtICogZnJhbWVidWZmZXIgZGV2aWNlLiBUaGlzIG11c3QgYmUgY2FsbGVkIGJlZm9yZSByZWxlYXNpbmcgYWxsIHJlc291cmNlcyBmb3JcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQ5MTogKiBAZmJfaGVscGVyIGJ5IGNhbGxpbmcgZHJtX2ZiX2hlbHBlcl9maW5pKCkuXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy00OTItICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo0OTM6dm9pZCBkcm1fZmJfaGVscGVyX3VucmVnaXN0ZXJfaW5mbyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDk0LXtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNDk2LX1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjQ5NzpFWFBPUlRfU1lNQk9MKGRybV9mYl9oZWxwZXJfdW5yZWdpc3Rlcl9pbmZvKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQ5OC1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTQ5OS0vKipcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjUwMDogKiBkcm1fZmJfaGVscGVyX2ZpbmkgLSBmaW5pYWxpemUgYSBcXHUwMDI2c3RydWN0IGRybV9mYl9oZWxwZXJcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTUwMS0gKiBAZmJfaGVscGVyOiBkcml2ZXItYWxsb2NhdGVkIGZiZGV2IGhlbHBlciwgY2FuIGJlIE5VTExcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNTA0LSAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NTA1OnZvaWQgZHJtX2ZiX2hlbHBlcl9maW5pKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy01MDYte1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy01MTctXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo1MTg6XFx0ZHJtX2ZiX2hlbHBlcl9yZWxlYXNlX2luZm8oZmJfaGVscGVyKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTUxOS19XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo1MjA6RVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX2ZpbmkpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNTIxLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NTIyOnN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfYWRkX2RhbWFnZV9jbGlwKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsIHUzMiB4LCB1MzIgeSxcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTUyMy1cXHRcXHRcXHRcXHRcXHQgIHUzMiB3aWR0aCwgdTMyIGhlaWdodClcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNTM1LVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NTM2OnN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZGFtYWdlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsIHUzMiB4LCB1MzIgeSxcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTUzNy1cXHRcXHRcXHRcXHQgdTMyIHdpZHRoLCB1MzIgaGVpZ2h0KVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy01NDktXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo1NTA6XFx0ZHJtX2ZiX2hlbHBlcl9hZGRfZGFtYWdlX2NsaXAoaGVscGVyLCB4LCB5LCB3aWR0aCwgaGVpZ2h0KTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTU1MS1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNTU5LSAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NTYwOnN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfbWVtb3J5X3JhbmdlX3RvX2NsaXAoc3RydWN0IGZiX2luZm8gKmluZm8sIG9mZl90IG9mZiwgc2l6ZV90IGxlbixcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTU2MS1cXHRcXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IGRybV9yZWN0ICpjbGlwKVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy01OTItLyogRG9uJ3QgdXNlIGluIG5ldyBjb2RlLiAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NTkzOnZvaWQgZHJtX2ZiX2hlbHBlcl9kYW1hZ2VfcmFuZ2Uoc3RydWN0IGZiX2luZm8gKmluZm8sIG9mZl90IG9mZiwgc2l6ZV90IGxlbilcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTU5NC17XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo1OTU6XFx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9IGluZm8tXFx1MDAzZXBhcjtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTU5Ni1cXHRzdHJ1Y3QgZHJtX3JlY3QgZGFtYWdlX2FyZWE7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy01OTctXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo1OTg6XFx0ZHJtX2ZiX2hlbHBlcl9tZW1vcnlfcmFuZ2VfdG9fY2xpcChpbmZvLCBvZmYsIGxlbiwgXFx1MDAyNmRhbWFnZV9hcmVhKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjU5OTpcXHRkcm1fZmJfaGVscGVyX2RhbWFnZShmYl9oZWxwZXIsIGRhbWFnZV9hcmVhLngxLCBkYW1hZ2VfYXJlYS55MSxcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTYwMC1cXHRcXHRcXHQgICAgIGRybV9yZWN0X3dpZHRoKFxcdTAwMjZkYW1hZ2VfYXJlYSksXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTYwMi19XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2MDM6RVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX2RhbWFnZV9yYW5nZSk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02MDQtXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02MDUtLyogRG9uJ3QgdXNlIGluIG5ldyBjb2RlLiAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NjA2OnZvaWQgZHJtX2ZiX2hlbHBlcl9kYW1hZ2VfYXJlYShzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgdTMyIHgsIHUzMiB5LCB1MzIgd2lkdGgsIHUzMiBoZWlnaHQpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02MDcte1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NjA4OlxcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBpbmZvLVxcdTAwM2VwYXI7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02MDktXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2MTA6XFx0ZHJtX2ZiX2hlbHBlcl9kYW1hZ2UoZmJfaGVscGVyLCB4LCB5LCB3aWR0aCwgaGVpZ2h0KTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTYxMS19XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2MTI6RVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX2RhbWFnZV9hcmVhKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTYxMy1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjE1LS8qKlxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NjE2OiAqIGRybV9mYl9oZWxwZXJfZGVmZXJyZWRfaW8oKSAtIGZiZGV2IGRlZmVycmVkX2lvIGNhbGxiYWNrIGZ1bmN0aW9uXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02MTctICogQGluZm86IGZiX2luZm8gc3RydWN0IHBvaW50ZXJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjIyLSAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NjIzOnZvaWQgZHJtX2ZiX2hlbHBlcl9kZWZlcnJlZF9pbyhzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgc3RydWN0IGxpc3RfaGVhZCAqcGFnZXJlZmxpc3QpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02MjQte1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NjI1OlxcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIgPSBpbmZvLVxcdTAwM2VwYXI7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02MjYtXFx0dW5zaWduZWQgbG9uZyBzdGFydCwgZW5kLCBtaW5fb2ZmLCBtYXhfb2ZmLCB0b3RhbF9zaXplO1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02NTAtXFx0aWYgKG1pbl9vZmYgXFx1MDAzYyBtYXhfb2ZmKSB7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2NTE6XFx0XFx0ZHJtX2ZiX2hlbHBlcl9tZW1vcnlfcmFuZ2VfdG9fY2xpcChpbmZvLCBtaW5fb2ZmLCBtYXhfb2ZmIC0gbWluX29mZiwgXFx1MDAyNmRhbWFnZV9hcmVhKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjY1MjpcXHRcXHRkcm1fZmJfaGVscGVyX2RhbWFnZShoZWxwZXIsIGRhbWFnZV9hcmVhLngxLCBkYW1hZ2VfYXJlYS55MSxcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTY1My1cXHRcXHRcXHRcXHQgICAgIGRybV9yZWN0X3dpZHRoKFxcdTAwMjZkYW1hZ2VfYXJlYSksXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTY1Ni19XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2NTc6RVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX2RlZmVycmVkX2lvKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTY1OC0jZW5kaWZcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjYwLS8qKlxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NjYxOiAqIGRybV9mYl9oZWxwZXJfc2V0X3N1c3BlbmQgLSB3cmFwcGVyIGFyb3VuZCBmYl9zZXRfc3VzcGVuZFxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjYyLSAqIEBmYl9oZWxwZXI6IGRyaXZlci1hbGxvY2F0ZWQgZmJkZXYgaGVscGVyLCBjYW4gYmUgTlVMTFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02NjUtICogQSB3cmFwcGVyIGFyb3VuZCBmYl9zZXRfc3VzcGVuZCBpbXBsZW1lbnRlZCBieSBmYmRldiBjb3JlLlxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NjY2OiAqIFVzZSBkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kX3VubG9ja2VkKCkgaWYgeW91IGRvbid0IG5lZWQgdG8gdGFrZVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjY3LSAqIHRoZSBsb2NrIHlvdXJzZWxmXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02NjgtICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2Njk6dm9pZCBkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIsIGJvb2wgc3VzcGVuZClcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTY3MC17XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTY3OC19XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2Nzk6RVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTY4MC1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTY4MS0vKipcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjY4MjogKiBkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kX3VubG9ja2VkIC0gd3JhcHBlciBhcm91bmQgZmJfc2V0X3N1c3BlbmQgdGhhdCBhbHNvXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy02ODMtICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2VzIHRoZSBjb25zb2xlIGxvY2tcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjk0LSAqXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo2OTU6ICogVXNlIGRybV9mYl9oZWxwZXJfc2V0X3N1c3BlbmQoKSBpZiB5b3UgbmVlZCB0byB0YWtlIHRoZSBsb2NrIHlvdXJzZWxmLlxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjk2LSAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6Njk3OnZvaWQgZHJtX2ZiX2hlbHBlcl9zZXRfc3VzcGVuZF91bmxvY2tlZChzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLFxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNjk4LVxcdFxcdFxcdFxcdFxcdGJvb2wgc3VzcGVuZClcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNzExLVxcdFxcdCAqIENhbmNlbCBwZW5kaW5nIGRhbWFnZSB3b3JrLiBEdXJpbmcgR1BVIHJlc2V0LCBWQmxhbmtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjcxMjpcXHRcXHQgKiBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCBhbmQgZHJtX2ZiX2hlbHBlcl9mYl9kaXJ0eSgpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy03MTMtXFx0XFx0ICogd291bGQgd2FpdCBmb3IgVkJsYW5rIHRpbWVvdXQgb3RoZXJ3aXNlLlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy03MjgtXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo3Mjk6XFx0ZHJtX2ZiX2hlbHBlcl9zZXRfc3VzcGVuZChmYl9oZWxwZXIsIHN1c3BlbmQpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtNzMwLVxcdGNvbnNvbGVfdW5sb2NrKCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy03MzEtfVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6NzMyOkVYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9zZXRfc3VzcGVuZF91bmxvY2tlZCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy03MzMtXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jPTc2Nj1zdGF0aWMgaW50IHNldGNtYXBfbGVnYWN5KHN0cnVjdCBmYl9jbWFwICpjbWFwLCBzdHJ1Y3QgZmJfaW5mbyAqaW5mbylcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTc2Ny17XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo3Njg6XFx0c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9IGluZm8tXFx1MDAzZXBhcjtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTc2OS1cXHRzdHJ1Y3QgZHJtX21vZGVfc2V0ICptb2Rlc2V0O1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYz04NDk9c3RhdGljIGludCBzZXRjbWFwX2F0b21pYyhzdHJ1Y3QgZmJfY21hcCAqY21hcCwgc3RydWN0IGZiX2luZm8gKmluZm8pXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy04NTAte1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6ODUxOlxcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBpbmZvLVxcdTAwM2VwYXI7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy04NTItXFx0c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGZiX2hlbHBlci1cXHUwMDNlZGV2O1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05MzctLyoqXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo5Mzg6ICogZHJtX2ZiX2hlbHBlcl9zZXRjbWFwIC0gaW1wbGVtZW50YXRpb24gZm9yIFxcdTAwMjZmYl9vcHMuZmJfc2V0Y21hcFxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtOTM5LSAqIEBjbWFwOiBjbWFwIHRvIHNldFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05NDEtICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo5NDI6aW50IGRybV9mYl9oZWxwZXJfc2V0Y21hcChzdHJ1Y3QgZmJfY21hcCAqY21hcCwgc3RydWN0IGZiX2luZm8gKmluZm8pXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05NDMte1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6OTQ0OlxcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBpbmZvLVxcdTAwM2VwYXI7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05NDUtXFx0c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGZiX2hlbHBlci1cXHUwMDNlZGV2O1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05NzItfVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6OTczOkVYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9zZXRjbWFwKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTk3NC1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTk3NS0vKipcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjk3NjogKiBkcm1fZmJfaGVscGVyX2lvY3RsIC0gbGVnYWN5IGlvY3RsIGltcGxlbWVudGF0aW9uXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05NzctICogQGluZm86IGZiZGV2IHJlZ2lzdGVyZWQgYnkgdGhlIGhlbHBlclxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05ODMtICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzo5ODQ6aW50IGRybV9mYl9oZWxwZXJfaW9jdGwoc3RydWN0IGZiX2luZm8gKmluZm8sIHVuc2lnbmVkIGludCBjbWQsXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05ODUtXFx0XFx0XFx0dW5zaWduZWQgbG9uZyBhcmcpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05ODYte1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6OTg3OlxcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBpbmZvLVxcdTAwM2VwYXI7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy05ODgtXFx0aW50IHJldCA9IDA7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEwMTctfVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTAxODpFWFBPUlRfU1lNQk9MKGRybV9mYl9oZWxwZXJfaW9jdGwpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTAxOS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jPTEwMjA9c3RhdGljIGJvb2wgZHJtX2ZiX3BpeGVsX2Zvcm1hdF9lcXVhbChjb25zdCBzdHJ1Y3QgZmJfdmFyX3NjcmVlbmluZm8gKnZhcl8xLFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMDM4LVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTAzOTpzdGF0aWMgdm9pZCBkcm1fZmJfaGVscGVyX2ZpbGxfcGl4ZWxfZm10KHN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyAqdmFyLFxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTA0MC1cXHRcXHRcXHRcXHRcXHQgY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5mbyAqZm9ybWF0KVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYz0xMTAxPXN0YXRpYyB2b2lkIF9fZmlsbF92YXIoc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIsIHN0cnVjdCBmYl9pbmZvICppbmZvLFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMTI0LS8qKlxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTEyNTogKiBkcm1fZmJfaGVscGVyX2NoZWNrX3ZhciAtIGltcGxlbWVudGF0aW9uIGZvciBcXHUwMDI2ZmJfb3BzLmZiX2NoZWNrX3ZhclxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTEyNi0gKiBAdmFyOiBzY3JlZW5pbmZvIHRvIGNoZWNrXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTExMjgtICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxMTI5OmludCBkcm1fZmJfaGVscGVyX2NoZWNrX3ZhcihzdHJ1Y3QgZmJfdmFyX3NjcmVlbmluZm8gKnZhcixcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTExMzAtXFx0XFx0XFx0ICAgIHN0cnVjdCBmYl9pbmZvICppbmZvKVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTEzMS17XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxMTMyOlxcdHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBpbmZvLVxcdTAwM2VwYXI7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMTMzLVxcdHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gZmJfaGVscGVyLVxcdTAwM2VmYjtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTIwMy1cXHQgICAgIXZhci1cXHUwMDNlYmx1ZS5tc2JfcmlnaHQgXFx1MDAyNlxcdTAwMjYgIXZhci1cXHUwMDNldHJhbnNwLm1zYl9yaWdodCkge1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMjoyNC45NTgwOTUyMTVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDMyNDIwMjg1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgRFJNIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBgQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT05gIGlzIGRlZmluaXRlbHkgdGhlIGtleSBjb25maWd1cmF0aW9uIGl0ZW0gdGhhdCBicmluZ3MgaW4gYGRybV9mYl9oZWxwZXIuY2AuIFRoYXQncyB0aGUgc3RhcnRpbmcgcG9pbnQuIEJ1dCwgaG9sZCBvbiBhIHNlY29uZC4uLiB0aGUgcGF0Y2ggYWxzbyB0b3VjaGVzIGBkcm1fY2xpZW50X21vZGVzZXQuY2AgYW5kIGBkcm1fdmJsYW5rLmNgLiAgSG1tLCB0aGF0J3MgaW50ZXJlc3RpbmcuIEkga25vdyBgZHJtX2NsaWVudF9tb2Rlc2V0LmNgIGlzIGNvbXBpbGVkIGNvbmRpdGlvbmFsbHkgdW5kZXIgYENPTkZJR19EUk1gLCBzbyBpdCBpcyBsaWtlbHkgdGhhdCBjb25maWd1cmF0aW9uIGlzIG5lZWRlZC4gTGV0IG1lIGRvdWJsZS1jaGVjayB0aGUgYGRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZWAgdG8gY29uZmlybSB0aGF0IGBkcm1fY2xpZW50X21vZGVzZXQub2AgaXMgYWN0dWFsbHkgYnVpbHQgYXMgcGFydCBvZiB0aGUgRFJNIGNvcmUgYnVpbGQgcHJvY2Vzcy4gR290dGEgY29uZmlybSB3aGVyZSB0aGlzIGNvZGUgaXMgYmVpbmcgaW5jbHVkZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4MDcwLCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTI6MjguMzkwNTE3ODhaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NTc4MTU0NjIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZHJtX2NsaWVudF9tb2Rlc2V0XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIkRvY3VtZW50YXRpb24vZ3B1L2RybS1jbGllbnQucnN0PTI9S2VybmVsIGNsaWVudHNcXG4tLVxcbkRvY3VtZW50YXRpb24vZ3B1L2RybS1jbGllbnQucnN0LTEzLVxcbkRvY3VtZW50YXRpb24vZ3B1L2RybS1jbGllbnQucnN0OjE0Oi4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmNcXG5Eb2N1bWVudGF0aW9uL2dwdS9kcm0tY2xpZW50LnJzdC0xNS0gICA6ZXhwb3J0Olxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlPTc2PWRybS0kKENPTkZJR19EUk1fQ0xJRU5UKSArPSBcXFxcXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUtNzgtXFx0ZHJtX2NsaWVudF9ldmVudC5vIFxcXFxcXG5kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGU6Nzk6XFx0ZHJtX2NsaWVudF9tb2Rlc2V0Lm8gXFxcXFxcbmRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZS04MC1cXHRkcm1fY2xpZW50X3N5c3JxLm9cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9sb2cuYz0yMzU9c3RhdGljIHZvaWQgZHJtX2xvZ19pbml0X2NsaWVudChzdHJ1Y3QgZHJtX2xvZyAqZGxvZylcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9sb2cuYy0yNDMtXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2xvZy5jOjI0NDpcXHRpZiAoZHJtX2NsaWVudF9tb2Rlc2V0X3Byb2JlKGNsaWVudCwgMCwgMCkpXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvZHJtX2xvZy5jLTI0NS1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fbG9nLmMtMjY2LVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9sb2cuYzoyNjc6XFx0aWYgKGRybV9jbGllbnRfbW9kZXNldF9jb21taXQoY2xpZW50KSlcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fbG9nLmMtMjY4LVxcdFxcdGdvdG8gZXJyX2ZhaWxlZF9jb21taXQ7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fbG9nLmM9MzE4PXN0YXRpYyBpbnQgZHJtX2xvZ19jbGllbnRfcmVzdG9yZShzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgYm9vbCBmb3JjZSlcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9sb2cuYy0zMjItXFx0aWYgKGZvcmNlKVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL2RybV9sb2cuYzozMjM6XFx0XFx0cmV0ID0gZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9sb2NrZWQoY2xpZW50KTtcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fbG9nLmMtMzI0LVxcdGVsc2VcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fbG9nLmM6MzI1OlxcdFxcdHJldCA9IGRybV9jbGllbnRfbW9kZXNldF9jb21taXQoY2xpZW50KTtcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9kcm1fbG9nLmMtMzI2LVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnQuYz04MD1pbnQgZHJtX2NsaWVudF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnQuYy05MS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudC5jOjkyOlxcdHJldCA9IGRybV9jbGllbnRfbW9kZXNldF9jcmVhdGUoY2xpZW50KTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudC5jLTkzLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudC5jLTEwNC1lcnJfZnJlZTpcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudC5jOjEwNTpcXHRkcm1fY2xpZW50X21vZGVzZXRfZnJlZShjbGllbnQpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50LmMtMTA2LVxcdHJldHVybiByZXQ7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudC5jPTE2NT12b2lkIGRybV9jbGllbnRfcmVsZWFzZShzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudClcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50LmMtMTcwLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50LmM6MTcxOlxcdGRybV9jbGllbnRfbW9kZXNldF9mcmVlKGNsaWVudCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnQuYy0xNzItXFx0ZHJtX2NsaWVudF9jbG9zZShjbGllbnQpO1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jPTMzPXN0cnVjdCBkcm1fY2xpZW50X29mZnNldCB7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMzYtXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjM3OmludCBkcm1fY2xpZW50X21vZGVzZXRfY3JlYXRlKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0zOC17XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtNjktZXJyX2ZyZWU6XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjcwOlxcdGRybV9jbGllbnRfbW9kZXNldF9mcmVlKGNsaWVudCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTcxLVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTc0LVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzo3NTpzdGF0aWMgdm9pZCBkcm1fY2xpZW50X21vZGVzZXRfcmVsZWFzZShzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudClcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtNzYte1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTkzLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzo5NDp2b2lkIGRybV9jbGllbnRfbW9kZXNldF9mcmVlKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy05NS17XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtOTktXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEwMDpcXHRkcm1fY2xpZW50X21vZGVzZXRfcmVsZWFzZShjbGllbnQpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMDEtXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM9NjE5PXN0YXRpYyBib29sIGRybV9jbGllbnRfZmlybXdhcmVfY29uZmlnKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTgwNS0vKipcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6ODA2OiAqIGRybV9jbGllbnRfbW9kZXNldF9wcm9iZSgpIC0gUHJvYmUgZm9yIGRpc3BsYXlzXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTgwNy0gKiBAY2xpZW50OiBEUk0gY2xpZW50XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtODE2LSAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzo4MTc6aW50IGRybV9jbGllbnRfbW9kZXNldF9wcm9iZShzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgdW5zaWduZWQgaW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZ2h0KVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy04MTgte1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTg5NC1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6ODk1OlxcdGRybV9jbGllbnRfbW9kZXNldF9yZWxlYXNlKGNsaWVudCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTg5Ni1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy05NDQtfVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzo5NDU6RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X21vZGVzZXRfcHJvYmUpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy05NDYtXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM9MTAzMj1FWFBPUlRfU1lNQk9MKGRybV9jbGllbnRfcm90YXRpb24pO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMDMzLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMDM0OnN0YXRpYyBpbnQgZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9hdG9taWMoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIGJvb2wgYWN0aXZlLCBib29sIGNoZWNrKVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMDM1LXtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMTIzLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMTI0OnN0YXRpYyBpbnQgZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9sZWdhY3koc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTExMjUte1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTExNjUtLyoqXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjExNjY6ICogZHJtX2NsaWVudF9tb2Rlc2V0X2NoZWNrKCkgLSBDaGVjayBtb2Rlc2V0IGNvbmZpZ3VyYXRpb25cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTE2Ny0gKiBAY2xpZW50OiBEUk0gY2xpZW50XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTE3My0gKi9cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTE3NDppbnQgZHJtX2NsaWVudF9tb2Rlc2V0X2NoZWNrKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMTc1LXtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMTgxLVxcdG11dGV4X2xvY2soXFx1MDAyNmNsaWVudC1cXHUwMDNlbW9kZXNldF9tdXRleCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjExODI6XFx0cmV0ID0gZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9hdG9taWMoY2xpZW50LCB0cnVlLCB0cnVlKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTE4My1cXHRtdXRleF91bmxvY2soXFx1MDAyNmNsaWVudC1cXHUwMDNlbW9kZXNldF9tdXRleCk7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTE4Ni19XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjExODc6RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X21vZGVzZXRfY2hlY2spO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMTg4LVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMTg5LS8qKlxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMTkwOiAqIGRybV9jbGllbnRfbW9kZXNldF9jb21taXRfbG9ja2VkKCkgLSBGb3JjZSBjb21taXQgQ1JUQyBjb25maWd1cmF0aW9uXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTExOTEtICogQGNsaWVudDogRFJNIGNsaWVudFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTExOTktICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyMDA6aW50IGRybV9jbGllbnRfbW9kZXNldF9jb21taXRfbG9ja2VkKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjAxLXtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjA2LVxcdGlmIChkcm1fZHJ2X3VzZXNfYXRvbWljX21vZGVzZXQoZGV2KSlcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTIwNzpcXHRcXHRyZXQgPSBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0X2F0b21pYyhjbGllbnQsIHRydWUsIGZhbHNlKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTIwOC1cXHRlbHNlXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyMDk6XFx0XFx0cmV0ID0gZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9sZWdhY3koY2xpZW50KTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTIxMC1cXHRtdXRleF91bmxvY2soXFx1MDAyNmNsaWVudC1cXHUwMDNlbW9kZXNldF9tdXRleCk7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTIxMy19XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyMTQ6RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0X2xvY2tlZCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyMTUtXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyMTYtLyoqXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyMTc6ICogZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdCgpIC0gQ29tbWl0IENSVEMgY29uZmlndXJhdGlvblxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjE4LSAqIEBjbGllbnQ6IERSTSBjbGllbnRcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjI0LSAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMjI1OmludCBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0KHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjI2LXtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjMyLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMjMzOlxcdHJldCA9IGRybV9jbGllbnRfbW9kZXNldF9jb21taXRfbG9ja2VkKGNsaWVudCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyMzQtXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTIzOC19XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyMzk6RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0KTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTI0MC1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTI0MTpzdGF0aWMgdm9pZCBkcm1fY2xpZW50X21vZGVzZXRfZHBtc19sZWdhY3koc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIGludCBkcG1zX21vZGUpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyNDIte1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyNjYtLyoqXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyNjc6ICogZHJtX2NsaWVudF9tb2Rlc2V0X2RwbXMoKSAtIFNldCBEUE1TIG1vZGVcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTI2OC0gKiBAY2xpZW50OiBEUk0gY2xpZW50XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTI3NS0gKi9cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTI3NjppbnQgZHJtX2NsaWVudF9tb2Rlc2V0X2RwbXMoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIGludCBtb2RlKVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjc3LXtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjg1LVxcdGlmIChkcm1fZHJ2X3VzZXNfYXRvbWljX21vZGVzZXQoZGV2KSlcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTI4NjpcXHRcXHRyZXQgPSBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0X2F0b21pYyhjbGllbnQsIG1vZGUgPT0gRFJNX01PREVfRFBNU19PTiwgZmFsc2UpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjg3LVxcdGVsc2VcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTI4ODpcXHRcXHRkcm1fY2xpZW50X21vZGVzZXRfZHBtc19sZWdhY3koY2xpZW50LCBtb2RlKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTI4OS1cXHRtdXRleF91bmxvY2soXFx1MDAyNmNsaWVudC1cXHUwMDNlbW9kZXNldF9tdXRleCk7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTI5NC19XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyOTU6RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X21vZGVzZXRfZHBtcyk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyOTYtXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyOTctLyoqXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyOTg6ICogZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuaygpIC0gV2FpdCBmb3IgdGhlIG5leHQgVkJMQU5LIHRvIG9jY3VyXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEyOTktICogQGNsaWVudDogRFJNIGNsaWVudFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEzMDgtICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEzMDk6aW50IGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92Ymxhbmsoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIHVuc2lnbmVkIGludCBjcnRjX2luZGV4KVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzEwLXtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzM4LX1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTMzOTpFWFBPUlRfU1lNQk9MKGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmspO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzQwLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzQxLSNpZmRlZiBDT05GSUdfRFJNX0tVTklUX1RFU1RcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTM0MjojaW5jbHVkZSBcXFwidGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuY1xcXCJcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTM0My0jZW5kaWZcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9MTE3PV9fZHJtX2ZiX2hlbHBlcl9yZXN0b3JlX2ZiZGV2X21vZGVfdW5sb2NrZWQoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcixcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTM1LVxcdFxcdCAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MTM2OlxcdFxcdHJldCA9IGRybV9jbGllbnRfbW9kZXNldF9jb21taXRfbG9ja2VkKFxcdTAwMjZmYl9oZWxwZXItXFx1MDAzZWNsaWVudCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMzctXFx0fSBlbHNlIHtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjEzODpcXHRcXHRyZXQgPSBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0KFxcdTAwMjZmYl9oZWxwZXItXFx1MDAzZWNsaWVudCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMzktXFx0fVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYz0xNzM9c3RhdGljIHZvaWQgZHJtX2ZiX2hlbHBlcl9kcG1zKHN0cnVjdCBmYl9pbmZvICppbmZvLCBpbnQgZHBtc19tb2RlKVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xNzctXFx0bXV0ZXhfbG9jayhcXHUwMDI2ZmJfaGVscGVyLVxcdTAwM2Vsb2NrKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjE3ODpcXHRkcm1fY2xpZW50X21vZGVzZXRfZHBtcyhcXHUwMDI2ZmJfaGVscGVyLVxcdTAwM2VjbGllbnQsIGRwbXNfbW9kZSk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xNzktXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZmYl9oZWxwZXItXFx1MDAzZWxvY2spO1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYz0zMTU9c3RhdGljIHZvaWQgZHJtX2ZiX2hlbHBlcl9mYl9kaXJ0eShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyKVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zMjYtXFx0aWYgKGNydGNfaW5kZXggXFx1MDAzZT0gMClcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjMyNzpcXHRcXHRkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKFxcdTAwMjZoZWxwZXItXFx1MDAzZWNsaWVudCwgY3J0Y19pbmRleCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zMjgtXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZoZWxwZXItXFx1MDAzZWxvY2spO1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYz05ODQ9aW50IGRybV9mYl9oZWxwZXJfaW9jdGwoc3RydWN0IGZiX2luZm8gKmluZm8sIHVuc2lnbmVkIGludCBjbWQsXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEwMDktXFx0XFx0ICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxMDEwOlxcdFxcdHJldCA9IGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmsoXFx1MDAyNmZiX2hlbHBlci1cXHUwMDNlY2xpZW50LCAwKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEwMTEtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jPTEyNzM9c3RhdGljIGludCBwYW5fZGlzcGxheV9hdG9taWMoc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIsXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEyODItXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxMjgzOlxcdHJldCA9IGRybV9jbGllbnRfbW9kZXNldF9jb21taXRfbG9ja2VkKFxcdTAwMjZmYl9oZWxwZXItXFx1MDAzZWNsaWVudCk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xMjg0LVxcdGlmICghcmV0KSB7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jPTE1MjU9c3RhdGljIGludCBkcm1fZmJfaGVscGVyX3NpbmdsZV9mYl9wcm9iZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0xNTM4LVxcdFxcdGlmICghZmJfaGVscGVyLVxcdTAwM2VkZWZlcnJlZF9zZXR1cClcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjE1Mzk6XFx0XFx0XFx0ZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdChjbGllbnQpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTU0MC1cXHRcXHRyZXR1cm4gcmV0O1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYz0xNzA3PV9fZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZ19hbmRfdW5sb2NrKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIpXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE3MTYtXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxNzE3OlxcdGRybV9jbGllbnRfbW9kZXNldF9wcm9iZShcXHUwMDI2ZmJfaGVscGVyLVxcdTAwM2VjbGllbnQsIHdpZHRoLCBoZWlnaHQpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTcxOC1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9MTgzNT1pbnQgZHJtX2ZiX2hlbHBlcl9ob3RwbHVnX2V2ZW50KHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIpXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTE4NTctXFxuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYzoxODU4OlxcdGRybV9jbGllbnRfbW9kZXNldF9wcm9iZShcXHUwMDI2ZmJfaGVscGVyLVxcdTAwM2VjbGllbnQsIGZiX2hlbHBlci1cXHUwMDNlZmItXFx1MDAzZXdpZHRoLCBmYl9oZWxwZXItXFx1MDAzZWZiLVxcdTAwM2VoZWlnaHQpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTg1OS1cXHRkcm1fc2V0dXBfY3J0Y3NfZmIoZmJfaGVscGVyKTtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTE2LVxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jOjE3OnN0cnVjdCBkcm1fY2xpZW50X21vZGVzZXRfdGVzdF9wcml2IHtcXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYy0xOC1cXHRzdHJ1Y3QgZHJtX2RldmljZSAqZHJtO1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtMjItXFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM6MjM6c3RhdGljIGludCBkcm1fY2xpZW50X21vZGVzZXRfY29ubmVjdG9yX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKVxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTI0LXtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTQ2LVxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jOjQ3OnN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgZHJtX2NsaWVudF9tb2Rlc2V0X2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgPSB7XFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM6NDg6XFx0LmdldF9tb2RlcyA9IGRybV9jbGllbnRfbW9kZXNldF9jb25uZWN0b3JfZ2V0X21vZGVzLFxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTQ5LX07XFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtNTAtXFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM6NTE6c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIGRybV9jbGllbnRfbW9kZXNldF9jb25uZWN0b3JfZnVuY3MgPSB7XFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtNTItXFx0LmF0b21pY19kZXN0cm95X3N0YXRlICAgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZSxcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTU1LVxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jOjU2OnN0YXRpYyBpbnQgZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3RfaW5pdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtNTcte1xcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jOjU4OlxcdHN0cnVjdCBkcm1fY2xpZW50X21vZGVzZXRfdGVzdF9wcml2ICpwcml2O1xcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTU5LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYy03NC1cXHRyZXQgPSBkcm1tX2Nvbm5lY3Rvcl9pbml0KHByaXYtXFx1MDAzZWRybSwgXFx1MDAyNnByaXYtXFx1MDAzZWNvbm5lY3RvcixcXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYzo3NTpcXHRcXHRcXHRcXHQgIFxcdTAwMjZkcm1fY2xpZW50X21vZGVzZXRfY29ubmVjdG9yX2Z1bmNzLFxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTc2LVxcdFxcdFxcdFxcdCAgRFJNX01PREVfQ09OTkVDVE9SX1Vua25vd24sXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYy03OS1cXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYzo4MDpcXHRkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoXFx1MDAyNnByaXYtXFx1MDAzZWNvbm5lY3RvciwgXFx1MDAyNmRybV9jbGllbnRfbW9kZXNldF9jb25uZWN0b3JfaGVscGVyX2Z1bmNzKTtcXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYy04MS1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jPTg4PXN0YXRpYyB2b2lkIGRybV90ZXN0X3BpY2tfY21kbGluZV9yZXNfMTkyMF8xMDgwXzYwKHN0cnVjdCBrdW5pdCAqdGVzdClcXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYy04OS17XFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM6OTA6XFx0c3RydWN0IGRybV9jbGllbnRfbW9kZXNldF90ZXN0X3ByaXYgKnByaXYgPSB0ZXN0LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTkxLVxcdHN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBwcml2LVxcdTAwM2Vkcm07XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYz0xMzI9c3RhdGljIHZvaWQgZHJtX3Rlc3RfcGlja19jbWRsaW5lX25hbWVkKHN0cnVjdCBrdW5pdCAqdGVzdClcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTEzNC1cXHRjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9waWNrX2NtZGxpbmVfbW9kZV90ZXN0ICpwYXJhbXMgPSB0ZXN0LVxcdTAwM2VwYXJhbV92YWx1ZTtcXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYzoxMzU6XFx0c3RydWN0IGRybV9jbGllbnRfbW9kZXNldF90ZXN0X3ByaXYgKnByaXYgPSB0ZXN0LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTEzNi1cXHRzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gcHJpdi1cXHUwMDNlZHJtO1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM9MTkyPXN0YXRpYyBzdHJ1Y3Qga3VuaXRfc3VpdGUgZHJtX3Rlc3RfcGlja19jbWRsaW5lX3Rlc3Rfc3VpdGUgPSB7XFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMtMTkzLVxcdC5uYW1lID0gXFxcImRybV90ZXN0X3BpY2tfY21kbGluZVxcXCIsXFxuZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmM6MTk0OlxcdC5pbml0ID0gZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3RfaW5pdCxcXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYy0xOTUtXFx0LnRlc3RfY2FzZXMgPSBkcm1fdGVzdF9waWNrX2NtZGxpbmVfdGVzdHNcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jPTE5OD1rdW5pdF90ZXN0X3N1aXRlKGRybV90ZXN0X3BpY2tfY21kbGluZV90ZXN0X3N1aXRlKTtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jLTIwMC0vKlxcbmRyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jOjIwMTogKiBUaGlzIGZpbGUgaXMgaW5jbHVkZWQgZGlyZWN0bHkgYnkgZHJtX2NsaWVudF9tb2Rlc2V0LmMgc28gd2UgY2FuJ3RcXG5kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYy0yMDItICogdXNlIGFueSBNT0RVTEVfKiBtYWNybyBoZXJlLlxcbi0tXFxuaW5jbHVkZS9kcm0vZHJtX2NsaWVudC5oPTIxMD12b2lkIGRybV9jbGllbnRfYnVmZmVyX3Z1bm1hcChzdHJ1Y3QgZHJtX2NsaWVudF9idWZmZXIgKmJ1ZmZlcik7XFxuaW5jbHVkZS9kcm0vZHJtX2NsaWVudC5oLTIxMS1cXG5pbmNsdWRlL2RybS9kcm1fY2xpZW50Lmg6MjEyOmludCBkcm1fY2xpZW50X21vZGVzZXRfY3JlYXRlKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KTtcXG5pbmNsdWRlL2RybS9kcm1fY2xpZW50Lmg6MjEzOnZvaWQgZHJtX2NsaWVudF9tb2Rlc2V0X2ZyZWUoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQpO1xcbmluY2x1ZGUvZHJtL2RybV9jbGllbnQuaDoyMTQ6aW50IGRybV9jbGllbnRfbW9kZXNldF9wcm9iZShzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgdW5zaWduZWQgaW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZ2h0KTtcXG5pbmNsdWRlL2RybS9kcm1fY2xpZW50LmgtMjE1LWJvb2wgZHJtX2NsaWVudF9yb3RhdGlvbihzdHJ1Y3QgZHJtX21vZGVfc2V0ICptb2Rlc2V0LCB1bnNpZ25lZCBpbnQgKnJvdGF0aW9uKTtcXG5pbmNsdWRlL2RybS9kcm1fY2xpZW50Lmg6MjE2OmludCBkcm1fY2xpZW50X21vZGVzZXRfY2hlY2soc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQpO1xcbmluY2x1ZGUvZHJtL2RybV9jbGllbnQuaDoyMTc6aW50IGRybV9jbGllbnRfbW9kZXNldF9jb21taXRfbG9ja2VkKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KTtcXG5pbmNsdWRlL2RybS9kcm1fY2xpZW50Lmg6MjE4OmludCBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0KHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KTtcXG5pbmNsdWRlL2RybS9kcm1fY2xpZW50Lmg6MjE5OmludCBkcm1fY2xpZW50X21vZGVzZXRfZHBtcyhzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgaW50IG1vZGUpO1xcbmluY2x1ZGUvZHJtL2RybV9jbGllbnQuaDoyMjA6aW50IGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92Ymxhbmsoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIHVuc2lnbmVkIGludCBjcnRjX2luZGV4KTtcXG5pbmNsdWRlL2RybS9kcm1fY2xpZW50LmgtMjIxLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMjoyOS45NDgzNDY2MTJaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzM2MzEwNjgxNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIHRoZSBEUk0gQ2xpZW50IE1vZGVzZXR0aW5nIENvbXBpbGF0aW9uKipcblxuQWxyaWdodCwgc28gYGRybV9jbGllbnRfbW9kZXNldC5jYCBpcyBiZWluZyBjb21waWxlZCwgYW5kIGl0J3MgZmxhZ2dlZCB1bmRlciBgQ09ORklHX0RSTV9DTElFTlRgLiBNeSBpbW1lZGlhdGUgaW5zdGluY3QgaXMgdG8ganVtcCBpbnRvIHRoZSBgS2NvbmZpZ2AgZmlsZXMg4oCTIHNwZWNpZmljYWxseSBpbiBgZHJpdmVycy9ncHUvZHJtL0tjb25maWdgIOKAkyB0byB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmN5IGFuZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgdGllZCB0byBgQ09ORklHX0RSTV9DTElFTlRgLiBJIHdhbnQgdG8gc2VlIHdoYXQgdGhhdCBjb25maWd1cmF0aW9uIHN5bWJvbCBhY3R1YWxseSAqbWVhbnMqIGluIHRoZSBicm9hZGVyIGNvbnRleHQgb2YgdGhlIERSTSBkcml2ZXIgZnJhbWV3b3JrLiBXaGF0IGFyZSB0aGUgcG90ZW50aWFsIGltcGxpY2F0aW9ucyBvZiBlbmFibGluZyBvciBkaXNhYmxpbmcgaXQ/IEFyZSB0aGVyZSBhbnkgc3BlY2lmaWMgaGFyZHdhcmUgb3Igc29mdHdhcmUgcmVxdWlyZW1lbnRzIGFzc29jaWF0ZWQgd2l0aCBpdD8gSSdtIGxvb2tpbmcgZm9yIHRoZSBcIndoeVwiIGFuZCBcImhvd1wiIGJlaGluZCB0aGlzIGNvbXBpbGF0aW9uIGNob2ljZSB0byB1bmRlcnN0YW5kIGl0cyByb2xlIGluIHRoZSBkcml2ZXIgZWNvc3lzdGVtLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTE5OCwiT3V0cHV0VG9rZW5zIjoxOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDAxOjEyOjMzLjMxMTQ1NjY4OVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTUzNDgwMjAzMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgRFJNX0NMSUVOVFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2dwdS9kcm0vS2NvbmZpZz0xNTg9Y29uZmlnIERSTV9ERUJVR19NT0RFU0VUX0xPQ0tcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnLTE3Mi1cXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZzoxNzM6Y29uZmlnIERSTV9DTElFTlRcXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZy0xNzQtXFx0Ym9vbFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0yLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6Mzpjb25maWcgRFJNX0NMSUVOVF9MSUJcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTQtXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMTEtXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZzoxMjpjb25maWcgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTEzLVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTIwLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6MjE6Y29uZmlnIERSTV9DTElFTlRfU0VUVVBcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTIyLVxcdGJvb2xcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc9NTQ9Y29uZmlnIERSTV9GQkRFVl9MRUFLX1BIWVNfU01FTVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy03My1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjc0OmNvbmZpZyBEUk1fQ0xJRU5UX0xPR1xcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctNzUtXFx0Ym9vbCBcXFwiUHJpbnQgdGhlIGtlcm5lbCBib290IG1lc3NhZ2Ugb24gdGhlIHNjcmVlblxcXCJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc9ODg9Y2hvaWNlXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTk4LVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6OTk6Y29uZmlnIERSTV9DTElFTlRfREVGQVVMVF9GQkRFVlxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMTAwLVxcdGJvb2wgXFxcImZiZGV2XFxcIlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0xMDUtXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZzoxMDY6Y29uZmlnIERSTV9DTElFTlRfREVGQVVMVF9MT0dcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTEwNy1cXHRib29sIFxcXCJsb2dcXFwiXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnPTExND1lbmRjaG9pY2VcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTExNS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjExNjpjb25maWcgRFJNX0NMSUVOVF9ERUZBVUxUXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0xMTctICAgICAgIHN0cmluZ1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMjozNC44NDYyNjUwOTJaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzU1Mzc1NzA3MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIERSTSBDbGllbnQgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYENPTkZJR19EUk1fQ0xJRU5UYCBhbmQgdGhlIGZpcnN0IHRoaW5nIEkgbm90aWNlIGlzIHRoYXQgaXQncyBhIGhpZGRlbiBib29sZWFuLiBUaGF0IG1lYW5zIGl0J3MgbGlrZWx5IHNlbGVjdGVkIGJ5IHNvbWV0aGluZyBlbHNlLCBhIGRlcGVuZGVuY3kuIEdpdmVuIHRoZSBuYW1lLCBteSBndXQgZmVlbGluZyBpcyB0aGF0IGVpdGhlciBgQ09ORklHX0RSTV9DTElFTlRfTElCYCBvciBgQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT05gIGlzIHJlc3BvbnNpYmxlIGZvciBzZWxlY3RpbmcgaXQuIEJvdGggYXJlIHBsYXVzaWJsZSBkZXBlbmRpbmcgb24gdGhlIHNwZWNpZmljIHVzZSBjYXNlLCBidXQgbGV0J3MgcXVpY2tseSBjaGVjayBgQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT05gIGZpcnN0LiBJdCBmZWVscyBsaWtlIHRoZSBtb3JlIGxpa2VseSBjYW5kaWRhdGUgdG8gbWUsIGdpdmVuIHRoZSBkaXJlY3QgY29ubmVjdGlvbiB0byBmcmFtZWJ1ZmZlcnMuIEknbGwgbmVlZCB0byBnbyBkaWcgaW50byBgZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZ2AgdG8gY29uZmlybSB0aGlzIHN1c3BpY2lvbi4gRnJvbSB0aGVyZSwgSSBjYW4gZGV0ZXJtaW5lIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aG9zZSBjb25maWcgb3B0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjYwMDQsIk91dHB1dFRva2VucyI6MjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMjozOC40MDAwMjQ1NzNaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NDcwMDY4ODIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIERSTV9GQkRFVl9FTVVMQVRJT05cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZz0yOD1tZW51IFxcXCJTdXBwb3J0ZWQgRFJNIGNsaWVudHNcXFwiXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMwLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6MzE6Y29uZmlnIERSTV9GQkRFVl9FTVVMQVRJT05cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMyLVxcdGJvb2wgXFxcIkVuYWJsZSBsZWdhY3kgZmJkZXYgc3VwcG9ydCBmb3IgeW91ciBtb2Rlc2V0dGluZyBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDAxOjEyOjM5Ljk0NzAzNjcyNVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTY5NzI2ODAzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgc3VtbWFyeSwgdGFraW5nIHRoZSBwZXJzcGVjdGl2ZSBvZiBzb21lb25lIGtub3dsZWRnZWFibGUgaW4gdGhlIGZpZWxkIGFuZCBhcHByb2FjaGluZyB0aGlzIHNwZWNpZmljIGNvZGUgcXVlcnk6XG5cbioqRGVjb25zdHJ1Y3RpbmcgdGhlIGBEUk1fRkJERVZfRU1VTEFUSU9OYCBTZWxlY3Rpb24qKlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGludG8gdGhpcy4gSSdtIHRha2luZyBhIGxvb2sgYXQgYERSTV9GQkRFVl9FTVVMQVRJT05gIGFuZCB0cnlpbmcgdG8gZmlndXJlIG91dCBleGFjdGx5ICp3aGF0KiBpdCdzIGNob29zaW5nLiBJdCdzIHRoYXQga2luZCBvZiBxdWVzdGlvbiB0aGF0LCBhcyBhIHNwZWNpYWxpc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRob3JvdWdobHkuIEl0IGRpcmVjdGx5IGltcGFjdHMgaG93IHRoZSBncmFwaGljcyBzdGFjayBpbnRlcmFjdHMgd2l0aCB0aGUgZnJhbWUgYnVmZmVyLiBJIHdhbnQgdG8gdW5kZXJzdGFuZCB3aGF0IGltcGxpY2F0aW9ucyB0aGlzIGNob2ljZSBjYXJyaWVzIGluIHRoaXMgY29udGV4dCBhbmQgaG93IGl0IGltcGFjdHMgdGhlIGFyY2hpdGVjdHVyZS4gSSdsbCBuZWVkIHRvIHJlbWVtYmVyIGFsbCB0aGUgdmFyaWFibGVzIGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2Mzc5LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTI6NDMuMTE2NzY2MjA4WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzQ1NzgwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgRFJNX0ZCREVWX0VNVUxBVElPTlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc9Mjg9bWVudSBcXFwiU3VwcG9ydGVkIERSTSBjbGllbnRzXFxcIlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0zMC1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjMxOmNvbmZpZyBEUk1fRkJERVZfRU1VTEFUSU9OXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0zMi1cXHRib29sIFxcXCJFbmFibGUgbGVnYWN5IGZiZGV2IHN1cHBvcnQgZm9yIHlvdXIgbW9kZXNldHRpbmcgZHJpdmVyXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMjo0My4xNjAyMjk2NjdaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzE5NzEyMDcxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHM6XG5cbioqQW5hbHl6aW5nIHRoZSBEUk0gQ2xpZW50IENvbmZpZ3VyYXRpb24qKlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGludG8gdGhpcyBgZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZ2AgZmlsZS4gSSdtIGZvY3VzaW5nIHNwZWNpZmljYWxseSBhcm91bmQgbGluZSAzMS4gVGhpcyBpcyB3aGVyZSB0aGUgcmVhbCBndXRzIG9mIHRoZSBjbGllbnQgY29uZmlndXJhdGlvbnMgYXJlIGRlZmluZWQsIGFuZCB3aGVyZSB0aGUgZGVjaXNpb25zIGdldCBtYWRlIG9uIHdoaWNoIGhhcmR3YXJlIG9yIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQuIEkgZXhwZWN0IHRvIHNlZSB0aGUgdHlwaWNhbCBgY29uZmlnYCBibG9ja3MsIGNvbmRpdGlvbmFsIHN0YXRlbWVudHMgdXNpbmcgYGRlcGVuZHMgb25gLCBgc2VsZWN0YCwgYW5kIGhvcGVmdWxseSBzb21lIGRlY2VudCBoZWxwIHRleHQgdG8gZ3VpZGUgdGhlIGNvbmZpZ3VyYXRpb24gcHJvY2Vzcy4gSSdtIGhvcGluZyB0byBxdWlja2x5IHVuZGVyc3RhbmQgd2hhdCBjbGllbnRzIGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQsIGhvdyB0aGV5J3JlIHJlbGF0ZWQgdG8gdmFyaW91cyBoYXJkd2FyZSBwbGF0Zm9ybXMsIGFuZCBhbnkgZGVwZW5kZW5jaWVzIHRoZXkgbWlnaHQgaGF2ZSBvbiBzcGVjaWZpYyBrZXJuZWwgZmVhdHVyZXMgb3Igb3RoZXIgRFJNIG1vZHVsZXMuIEkgbmVlZCB0byBnZXQgYSBoaWdoLWxldmVsIHBpY3R1cmUgb2YgdGhlIGNsaWVudCBjb25maWd1cmF0aW9uIHN0cmF0ZWd5IGhlcmUgc28gSSBjYW4gdW5kZXJzdGFuZCBhbnkgZG93bnN0cmVhbSBpbXBhY3RzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjY4MSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDAxOjEyOjQ2LjM1NzM1MjM0OVoiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NzA4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDI1LFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgIDI1OlxcdFxcdCAgRW5hYmxlcyB0aGUgRFJNIGNsaWVudCBzZWxlY3Rpb24uIERSTSBkcml2ZXJzIHRoYXQgc3VwcG9ydCB0aGVcXG4gIDI2OlxcdFxcdCAgZGVmYXVsdCBjbGllbnRzIHNob3VsZCBzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT04gaW5zdGVhZC5cXG4gIDI3OlxcdFxcbiAgMjg6XFx0bWVudSBcXFwiU3VwcG9ydGVkIERSTSBjbGllbnRzXFxcIlxcbiAgMjk6XFx0XFx0ZGVwZW5kcyBvbiBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbiAgMzA6XFx0XFxuICAzMTpcXHRjb25maWcgRFJNX0ZCREVWX0VNVUxBVElPTlxcbiAgMzI6XFx0XFx0Ym9vbCBcXFwiRW5hYmxlIGxlZ2FjeSBmYmRldiBzdXBwb3J0IGZvciB5b3VyIG1vZGVzZXR0aW5nIGRyaXZlclxcXCJcXG4gIDMzOlxcdFxcdGRlcGVuZHMgb24gRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG4gIDM0OlxcdFxcdHNlbGVjdCBEUk1fQ0xJRU5UXFxuICAzNTpcXHRcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRVRVUFxcbiAgMzY6XFx0XFx0c2VsZWN0IEZSQU1FQlVGRkVSX0NPTlNPTEVfREVURUNUX1BSSU1BUlkgaWYgRlJBTUVCVUZGRVJfQ09OU09MRVxcbiAgMzc6XFx0XFx0ZGVmYXVsdCBGQlxcbiAgMzg6XFx0XFx0aGVscFxcbiAgMzk6XFx0XFx0ICBDaG9vc2UgdGhpcyBvcHRpb24gaWYgeW91IGhhdmUgYSBuZWVkIGZvciB0aGUgbGVnYWN5IGZiZGV2XFxuICA0MDpcXHRcXHQgIHN1cHBvcnQuIE5vdGUgdGhhdCB0aGlzIHN1cHBvcnQgYWxzbyBwcm92aWRlcyB0aGUgbGludXggY29uc29sZVxcbiAgNDE6XFx0XFx0ICBzdXBwb3J0IG9uIHRvcCBvZiB5b3VyIG1vZGVzZXR0aW5nIGRyaXZlci5cXG4gIDQyOlxcdFxcbiAgNDM6XFx0XFx0ICBJZiBpbiBkb3VidCwgc2F5IFxcXCJZXFxcIi5cXG4gIDQ0OlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMjo0Ni4zNTc0MTE1MTlaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzk5Mjg4NjIwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipOYXZpZ2F0aW5nIHRoZSBEUk0gQ29uZmlndXJhdGlvbiBMYW5kc2NhcGUqKlxuXG5Pa2F5LCBzbyBJJ20gZGl2aW5nIGludG8gdGhpcyBEUk0gY29uZmlndXJhdGlvbiBqdW5nbGUuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGBEUk1fRkJERVZfRU1VTEFUSU9OYCBhdXRvbWF0aWNhbGx5IHB1bGxzIGluIGBEUk1fQ0xJRU5UYCDigJMgZ29vZCB0byBrbm93LiBUaGlzIG1ha2VzIG1lIHJlYWxpemUgd2UgbmVlZCB0byBhZGQgYERSTV9GQkRFVl9FTVVMQVRJT05gIHRvIG91ciBgRW5hYmxlQ29uZmlnc2AuIEJ1dCBoYW5nIG9uIGEgc2Vjb25kLCBJIGhhdmUgYSBmZWVsaW5nIGBEUk1fQ0xJRU5UYCBtaWdodCBiZSBzZWxlY3RlZCBieSBvdGhlciB0aGluZ3MgYXMgd2VsbCwgbWF5YmUgYERSTV9DTElFTlRfTE9HYD8gSSBuZWVkIHRvIHZlcmlmeSB0aGF0LiBMZXQgbWUgbG9vayBhdCBgRFJNX0NMSUVOVF9TRUxFQ1RJT05gLiBBbHJpZ2h0LCBmb3VuZCBpdCwgdGhhdCdzIHNlbGVjdGVkIGJ5IHRoZSBEUk0gZHJpdmVycyB0aGVtc2VsdmVzLiBOb3csIGp1c3QgdG8gYmUgdGhvcm91Z2ggYW5kIGF2b2lkIGFueSBnb3RjaGFzLCBsZXQncyBxdWlja2x5IGNoZWNrIGBEUk1fVktNU2AgdG8gc2VlIGlmIGl0IGltcGxpY2l0bHkgc2VsZWN0cyBgRFJNX0NMSUVOVF9TRUxFQ1RJT05gLiBXYW50IHRvIG1ha2Ugc3VyZSBldmVyeXRoaW5nJ3MgY29ubmVjdGVkIGFzIEkgZXhwZWN0IGl0IHRvIGJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNzE4OCwiT3V0cHV0VG9rZW5zIjoxOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwOCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDAxOjEyOjUwLjM1MDI5OTkwNloiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTUzNzIxODAyMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgRFJNX1ZLTVNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZy0yLVxcbmRyaXZlcnMvZ3B1L2RybS92a21zL0tjb25maWc6Mzpjb25maWcgRFJNX1ZLTVNcXG5kcml2ZXJzL2dwdS9kcm0vdmttcy9LY29uZmlnLTQtXFx0dHJpc3RhdGUgXFxcIlZpcnR1YWwgS01TIChFWFBFUklNRU5UQUwpXFxcIlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZy0xOC1cXG5kcml2ZXJzL2dwdS9kcm0vdmttcy9LY29uZmlnOjE5OmNvbmZpZyBEUk1fVktNU19LVU5JVF9URVNUXFxuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZy0yMC1cXHR0cmlzdGF0ZSBcXFwiS1VuaXQgdGVzdHMgZm9yIFZLTVNcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTI6NTEuODg3NTIxNjY5WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1ODY1OTE2MTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgcmVhZGluZyB0aGUgS2NvbmZpZyBmaWxlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBWS01TIEtjb25maWcqKlxuXG5Pa2F5LCB0aW1lIHRvIGRpZyBpbnRvIGBkcml2ZXJzL2dwdS9kcm0vdmttcy9LY29uZmlnYC4gUmlnaHQgYXdheSwgSSdtIGV4cGVjdGluZyB0aGlzIGZpbGUgdG8gZGVmaW5lIHRoZSBidWlsZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBWdWxrYW4gS01TIGRyaXZlci4gS25vd2luZyB0aGUgRFJNIHN1YnN5c3RlbSwgSSdtIGFudGljaXBhdGluZyB0byBzZWUgZGVwZW5kZW5jaWVzIG9uIHRoZSBjb3JlIERSTSBpbmZyYXN0cnVjdHVyZSwgbWF5YmUgb3B0aW9ucyBmb3Igc3BlY2lmaWMgaGFyZHdhcmUgZmVhdHVyZXMgb3IgdmFyaWF0aW9ucywgYW5kIGRlZmluaXRlbHkgc29tZSBzZWxlY3Rpb25zIHJlbGF0ZWQgdG8gZGVidWcgYW5kIHRlc3RpbmcgY2FwYWJpbGl0aWVzLiBJJ2xsIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IG9wdGlvbnMgYXJlIGF2YWlsYWJsZSB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgVktNUyBkcml2ZXIgYW5kIGFueSByZWxhdGVkIGZlYXR1cmVzLiBJJ2xsIGJlIGxvb2tpbmcgZm9yIHRoaW5ncyBsaWtlOlxuXG4qICAgKipgQ09ORklHX0RSTV9WS01TYCoqOiBUaGUgbWFpbiBzd2l0Y2ggdG8gZW5hYmxlIHRoZSBkcml2ZXIuXG4qICAgKipEZXBlbmRlbmNpZXMqKjogSSBleHBlY3QgYSBkZXBlbmRlbmN5IG9uIHRoZSBEUk0gY29yZSAoYENPTkZJR19EUk1gKS4gUG9zc2libHkgb3RoZXIgY29yZSBkZXBlbmRlbmNpZXMsIG9yIG9uIHRoZSBwbGF0Zm9ybSB0aGUgZHJpdmVyIGlzIGludGVuZGVkIGZvci5cbiogICAqKlN1Yi1mZWF0dXJlcyoqOiBBbnl0aGluZyBzcGVjaWZpYyB0byBWS01TIHRoYXQgY2FuIGJlIGNvbmZpZ3VyZWQsIGxpa2UgZGVidWcgbWVzc2FnZXMgKGBDT05GSUdfRFJNX1ZLTVNfREVCVUdgKS4gTWF5YmUgb3B0aW9ucyBmb3Igc3BlY2lmaWMgdmlydHVhbCBoYXJkd2FyZSBjb25maWd1cmF0aW9ucyBvciByZW5kZXJpbmcgbW9kZXMuXG4qICAgKipEb2N1bWVudGF0aW9uKio6IElzIGl0IHdlbGwtZG9jdW1lbnRlZD8gSSBob3BlIGl0J3Mgd2VsbC1jb21tZW50ZWQgYmVjYXVzZSBnb29kIEtjb25maWcgZmlsZXMgYXJlIGVzc2VudGlhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgYnVpbGQgc3lzdGVtLiBUaGUgY29tbWVudHMgd2lsbCB0ZWxsIG1lIHdoYXQgdGhlIG9wdGlvbnMgZG8uXG4qICAgKipEZWZhdWx0cyoqOiBXaGF0IGFyZSB0aGUgZGVmYXVsdCB2YWx1ZXMgZm9yIHRoZSBvcHRpb25zPyBBcmUgdGhleSByZWFzb25hYmxlPyBEbyB0aGV5IGFsaWduIHdpdGggY29tbW9uIHVzZSBjYXNlcz9cbiogICAqKlRyaWdnZXJzKio6IEkgd29uZGVyIGlmIHRoZXJlIGFyZSBhbnkgb3B0aW9ucyB0byBidWlsZCBhIHJlZHVjZWQtZnVuY3Rpb25hbGl0eSBWS01TIGZvciBzcGVjaWZpYyB0YXJnZXRzLiBUaGlzIG1pZ2h0IGJlIHVzZWQgdG8gcmVkdWNlIHRoZSBzaXplIG9yIGNvbXBsZXhpdHkgb2YgdGhlIHN5c3RlbS5cbiogICAqKkNvbmZsaWN0cyoqOiBBcmUgdGhlcmUgY29uZmxpY3Rpbmcgb3B0aW9ucz8gQXJlIHRoZXJlIGFueSBvcHRpb25zIHdoaWNoIG1ha2Ugb3RoZXJzIG11dHVhbGx5IGV4Y2x1c2l2ZT8gVGhpcyBjYW4gYmUga2V5IHdoZW4gYnVpbGRpbmcgYW5kIGNvbmZpZ3VyaW5nIHRoZSBrZXJuZWwuXG4qICAgKipIZWxwKio6IEhvdyBnb29kIGlzIHRoZSBoZWxwIHRleHQ/IElzIGl0IGNsZWFyIGFuZCBjb25jaXNlPyBEb2VzIGl0IHByb3ZpZGUgZ29vZCBjb250ZXh0IGZvciB0aGUgdXNlciB0byBtYWtlIGluZm9ybWVkIGRlY2lzaW9ucz9cblxuSSdsbCBiZSBwYXlpbmcgY2xvc2UgYXR0ZW50aW9uIHRvIHRoZSBkZXBlbmRlbmNpZXMsIGFzIHRoZXkgd2lsbCB0ZWxsIG1lIGhvdyB0aGlzIGRyaXZlciBmaXRzIGludG8gdGhlIGJyb2FkZXIgRFJNL1Z1bGthbiBsYW5kc2NhcGUuIEkgYW0gY3VyaW91cyB0byBzZWUgaG93IHRoZSBWS01TIGltcGxlbWVudGF0aW9uIGhhcyBhZGRyZXNzZWQgdGhlIHVzZXIgaW50ZXJmYWNlLiBNeSBwcmltYXJ5IGdvYWwgaGVyZSBpcyB0byBncmFzcCB0aGUgY29uZmlndXJhYmlsaXR5IG9mIFZLTVMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3NjY3LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTI6NTYuNDc0MTE2NDQ5WiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU0NzQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvZ3B1L2RybS92a21zL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG4gICAyOlxcdFxcbiAgIDM6XFx0Y29uZmlnIERSTV9WS01TXFxuICAgNDpcXHRcXHR0cmlzdGF0ZSBcXFwiVmlydHVhbCBLTVMgKEVYUEVSSU1FTlRBTClcXFwiXFxuICAgNTpcXHRcXHRkZXBlbmRzIG9uIERSTSBcXHUwMDI2XFx1MDAyNiBNTVVcXG4gICA2OlxcdFxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbiAgIDc6XFx0XFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuICAgODpcXHRcXHRzZWxlY3QgRFJNX0dFTV9TSE1FTV9IRUxQRVJcXG4gICA5OlxcdFxcdHNlbGVjdCBDUkMzMlxcbiAgMTA6XFx0XFx0c2VsZWN0IENPTkZJR0ZTX0ZTXFxuICAxMTpcXHRcXHRkZWZhdWx0IG5cXG4gIDEyOlxcdFxcdGhlbHBcXG4gIDEzOlxcdFxcdCAgVmlydHVhbCBLZXJuZWwgTW9kZS1TZXR0aW5nIChWS01TKSBpcyB1c2VkIGZvciB0ZXN0aW5nIG9yIGZvclxcbiAgMTQ6XFx0XFx0ICBydW5uaW5nIEdQVSBpbiBhIGhlYWRsZXNzIG1hY2hpbmVzLiBDaG9vc2UgdGhpcyBvcHRpb24gdG8gZ2V0XFxuICAxNTpcXHRcXHQgIGEgVktNUy5cXG4gIDE2OlxcdFxcbiAgMTc6XFx0XFx0ICBJZiBNIGlzIHNlbGVjdGVkIHRoZSBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgdmttcy5cXG4gIDE4OlxcdFxcbiAgMTk6XFx0Y29uZmlnIERSTV9WS01TX0tVTklUX1RFU1RcXG4gIDIwOlxcdFxcdHRyaXN0YXRlIFxcXCJLVW5pdCB0ZXN0cyBmb3IgVktNU1xcXCIgaWYgIUtVTklUX0FMTF9URVNUU1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMjo1Ni40NzQxNzIyMzlaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzgwMjA3MjEyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoaXMgY29uZmlndXJhdGlvbiBsb2dpYywgZm9jdXNpbmcgb24gdGhlIGRlcGVuZGVuY2llcyBhbmQgdGhlIG92ZXJhbGwgZ29hbDpcblxuKipUaGlua2luZyBUaHJvdWdoIFZpcnR1YWwgS01TIERyaXZlciBTZWxlY3Rpb24qKlxuXG5BbHJpZ2h0LCBsZXQgbWUgc2VlLi4uIHNvLCBpZiBJJ20gdW5kZXJzdGFuZGluZyB0aGlzIGNvcnJlY3RseSwgdGhlIGBEUk1fVktNU2AgZHJpdmVyIHNwZWNpZmljYWxseSBicmluZ3MgaW4gdGhlIGBEUk1fQ0xJRU5UX1NFTEVDVElPTmAgb3B0aW9uLiBUaGF0IG1ha2VzIHNlbnNlLCBgRFJNX1ZLTVNgIGlzIGEgdmlydHVhbCBLTVMgZHJpdmVyIHNvIHRoZSBjbGllbnRzIGNhbiBiZSBtYW5hZ2VkIGFuZCBzZWxlY3RlZC4gXG5cbk5vdywgb24gdG9wIG9mIHRoYXQsIGBEUk1fRkJERVZfRU1VTEFUSU9OYCBkZWZhdWx0cyB0byBgRkJgLCBva2F5LCBnb3QgaXQuIFNvLCB0byBlbnN1cmUgd2UgZ2V0IHRoZSBmdW5jdGlvbmFsaXR5IHdlJ3JlIGFpbWluZyBmb3Ig4oCTIHByZXN1bWFibHkgYSB2aXJ0dWFsIEtNUyBlbnZpcm9ubWVudCB3aXRoIHRoZSBmcmFtZWJ1ZmZlciBlbXVsYXRpb24gYXZhaWxhYmxlIOKAkyB0aGUgY2xlYXIgcGF0aCBpcyB0byBlbmFibGUgYm90aCBgRFJNX1ZLTVNgIGFuZCBgRFJNX0ZCREVWX0VNVUxBVElPTmAuXG5cbkhtbSwgaG9sZCBvbi4gVGhlcmUncyBhbm90aGVyIHZpcnR1YWwgZHJpdmVyIGluIHRoZSBtaXg6IGBEUk1fVkdFTWAuIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgc29tZXRoaW5nLiBJcyBgRFJNX1ZHRU1gIGFsc28gc2VsZWN0aW5nIGBEUk1fQ0xJRU5UX1NFTEVDVElPTmA/IFdlJ2xsIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgZGlmZmVyZW5jZXMgb2Ygc2VsZWN0aW9uIGFuZCB3aGVuIHRvIHVzZSB0aGVzZSBkcml2ZXJzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyODQ3MywiT3V0cHV0VG9rZW5zIjoxOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg4LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTM6MDAuMjc2MjQ3MTUyWiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTIxNDQ2NTY0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBEUk1fVkdFTVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2dwdS9kcm0vdmdlbS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9ncHUvZHJtL3ZnZW0vS2NvbmZpZzoyOmNvbmZpZyBEUk1fVkdFTVxcbmRyaXZlcnMvZ3B1L2RybS92Z2VtL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiVmlydHVhbCBHRU0gcHJvdmlkZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDAxOjEzOjAxLjc5NzcwMjI5NVoiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2Mjg1NjI5MzA3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcyBLY29uZmlnIGZpbGUgZm9yIHRoZSB2aXJ0dWFsIEdFTSBkcml2ZXIg4oCTIGBkcml2ZXJzL2dwdS9kcm0vdmdlbS9LY29uZmlnYC4gSSBuZWVkIHRvIGdldCBhIGNsZWFyIHVuZGVyc3RhbmRpbmcgb2YgaXRzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgZGVwZW5kZW5jaWVzLlxuXG4qKktjb25maWcgQW5hbHlzaXMgZm9yIFZpcnR1YWwgR0VNKipcblxuUmlnaHQsIHNvIEknbSBnb2luZyB0aHJvdWdoIHRoaXMgS2NvbmZpZyB0byBzZWUgaG93IHRoZSB2aXJ0dWFsIEdFTSBkcml2ZXIgaXMgc2V0IHVwIGZvciBjb25maWd1cmF0aW9uLiBJdCdzIHRoZSBzdGFuZGFyZCBmb3JtYXQsIHdoaWNoIG1lYW5zIGl0IHNob3VsZCBiZSBzdHJhaWdodGZvcndhcmQgZW5vdWdoIHRvIHBhcnNlLiBJJ20gbG9va2luZyBmb3IgdGhlIGNvcmUgb3B0aW9ucywgdGhlaXIgZGVmYXVsdHMsIGFueSBkZXBlbmRlbmNpZXMgb24gb3RoZXIga2VybmVsIGZlYXR1cmVzIG9yIGRyaXZlcnMsIGFuZCBvZiBjb3Vyc2UsIHdoYXQncyBjb250cm9sbGluZyB0aGUgYnVpbGQgcHJvY2Vzcy5cblxuRmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHRoZXJlJ3MgYSBtYWluIHN5bWJvbC4gVGhlbiB0aGUgZGVwZW5kZW5jaWVzIG5lZWQgdG8gYmUgdW5kZXJzdG9vZCBpbiB0aGUgY29udGV4dCBvZiB3aGF0IGhhcmR3YXJlIHRoZXkgdGFyZ2V0LCBvciB3aGF0IG90aGVyIG9wdGlvbnMgYXJlIG5lZWRlZCBmb3IgdGhlIGRyaXZlciB0byB3b3JrLiBJIHdpbGwgYmUgbG9va2luZyB0byBzZWUgaWYgdGhlcmUgaXMgYW55IG1lbnRpb24gb2YgdGhpcyBkcml2ZXIgYmVpbmcgZXhwZXJpbWVudGFsLCBpZiBpdCBpcyBzdGlsbCBhY3RpdmUsIG9yIGlmIGl0IGlzIGRlcHJlY2F0ZWQuIEFuZCBvZiBjb3Vyc2UsIEkgYW0gb24gdGhlIGxvb2tvdXQgZm9yIGFueSBpbnRlcmVzdGluZyBvciB1bnVzdWFsIGNvbmZpZ3VyYXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyODkwOSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDAxOjEzOjA4LjA4MzMzNDM1M1oiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2Mzk0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL2dwdS9kcm0vdmdlbS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDEwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHRjb25maWcgRFJNX1ZHRU1cXG4gICAzOlxcdFxcdHRyaXN0YXRlIFxcXCJWaXJ0dWFsIEdFTSBwcm92aWRlclxcXCJcXG4gICA0OlxcdFxcdGRlcGVuZHMgb24gRFJNIFxcdTAwMjZcXHUwMDI2IE1NVVxcbiAgIDU6XFx0XFx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXFxuICAgNjpcXHRcXHRoZWxwXFxuICAgNzpcXHRcXHQgIENob29zZSB0aGlzIG9wdGlvbiB0byBnZXQgYSB2aXJ0dWFsIGdyYXBoaWNzIG1lbW9yeSBtYW5hZ2VyLFxcbiAgIDg6XFx0XFx0ICBhcyB1c2VkIGJ5IE1lc2EncyBzb2Z0d2FyZSByZW5kZXJlciBmb3IgZW5oYW5jZWQgcGVyZm9ybWFuY2UuXFxuICAgOTpcXHRcXHQgIElmIE0gaXMgc2VsZWN0ZWQgdGhlIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCB2Z2VtLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMzowOC4wODMzOTk3NjNaIiwiU2VxIjoyNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDQ3MDcwOTgyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBEUk0gQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIFZHRU0gZG9lc24ndCB1dGlsaXplIEtNUy4gVGhhdCBpbW1lZGlhdGVseSBtZWFucyBJIG5lZWQgdG8gYnlwYXNzIHRoZSBgRFJNX0NMSUVOVF9TRUxFQ1RJT05gIGFuZCBmb2N1cyBvbiBgRFJNX1ZLTVNgIGluc3RlYWQuIFRoYXQncyBhIGtleSBmaXJzdCBzdGVwIGluIGdldHRpbmcgdGhpcyB3b3JraW5nLiBJIGFsc28ga25vdyBJIHNob3VsZCBlbmFibGUgYERSTV9GQkRFVl9FTVVMQVRJT05gLiBOb3csIHRoZSBuZXh0IHF1ZXN0aW9uIGlzIGFib3V0IGhvdyB2Ymxhbmsgd2FpdHMgYXJlIGhhbmRsZWQgaW4gdXNlciBzcGFjZS4gSSBuZWVkIHRvIGNvbmZpcm0gd2hldGhlciBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgY2FsbHMuXG5cblJpZ2h0LCBsZXQgbWUgc2VlLi4uIHllcywgSSBjYW4gc2VlIHRoYXQgYGRybV9mYl9oZWxwZXJfaW9jdGxgIGlzIGNhbGxpbmcgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgLCB3aGljaCB0aGVuIGdvZXMgb24gdG8gY2FsbCB0aGUgc3BlY2lmaWMgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAgZnVuY3Rpb24gdGhhdCBJIGFtIGludGVyZXN0ZWQgaW4uIEZ1cnRoZXJtb3JlLCBJIG5lZWQgdG8gcmVtaW5kIG15c2VsZiB0aGF0IGl0IGlzIGFsc28gY2FsbGVkIGJ5IHRob3NlIGF0b21pYyBjb21taXQgaGVscGVycy4gR29vZCwgdGhhdCBjb25maXJtcyBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSB2Ymxhbmsgc3luY2hyb25pemF0aW9uIHBhdGggZm9yIGJvdGggbGVnYWN5IGFuZCBhdG9taWMgbW9kZXNldHRpbmcsIGFuZCBpdCBzZWVtcyB0aGUgaW1wbGVtZW50YXRpb24gaXMgc29saWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5MzIwLCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTUyLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTM6MTIuNTU0MTEzMzA2WiIsIlNlcSI6MjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjE3ODk5NjIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRybV9jcnRjX3dhaXRfb25lX3ZibGFua1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2dwdS9kcm0vZGlzcGxheS9kcm1fZHBfaGVscGVyLmM9MjI4Nz1zdGF0aWMgdm9pZCBkcm1fZHBfYXV4X2NyY193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kaXNwbGF5L2RybV9kcF9oZWxwZXIuYy0yMzAwLVxcdHdoaWxlIChjcnRjLVxcdTAwM2VjcmMub3BlbmVkKSB7XFxuZHJpdmVycy9ncHUvZHJtL2Rpc3BsYXkvZHJtX2RwX2hlbHBlci5jOjIzMDE6XFx0XFx0ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKGNydGMpO1xcbmRyaXZlcnMvZ3B1L2RybS9kaXNwbGF5L2RybV9kcF9oZWxwZXIuYy0yMzAyLVxcdFxcdGlmICghY3J0Yy1cXHUwMDNlY3JjLm9wZW5lZClcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYz0xMzA5PWludCBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCB1bnNpZ25lZCBpbnQgY3J0Y19pbmRleClcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzMwLVxcdGlmICghcmV0KSB7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEzMzE6XFx0XFx0ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKGNydGMpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzMyLVxcdFxcdGRybV9jcnRjX3ZibGFua19wdXQoY3J0Yyk7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmg9MTE3PXU2NCBkcm1fdmJsYW5rX2NvdW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmg6MTE4OmludCBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoc3RydWN0IGRybV9jcnRjICpjcnRjKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgtMTE5LVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYz0xMjk4PUVYUE9SVF9TWU1CT0woZHJtX2NydGNfdmJsYW5rX3B1dCk7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jLTEzMDAtLyoqXFxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYzoxMzAxOiAqIGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbCAtIHdhaXQgZm9yIG9uZSB2YmxhbmtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jLTEzMDItICogQGNydGM6IERSTSBjcnRjXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jLTEzMDgtICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYzoxMzA5OmludCBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoc3RydWN0IGRybV9jcnRjICpjcnRjKVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMtMTMxMC17XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jLTEzMjYtLyoqXFxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYzoxMzI3OiAqIGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayAtIHdhaXQgZm9yIG9uZSB2YmxhbmtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jLTEzMjgtICogQGNydGM6IERSTSBjcnRjXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jLTEzMzUtICovXFxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYzoxMzM2OmludCBkcm1fY3J0Y193YWl0X29uZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMtMTMzNy17XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jLTEzNDYtXFxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYzoxMzQ3OlxcdHJldCA9IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jLTEzNDgtXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jLTEzNTQtfVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmM6MTM1NTpFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYy0xMzU2LVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jcnRjLmM9Njc9dm9pZCBpbnRlbF9jcnRjX3dhaXRfZm9yX25leHRfdmJsYW5rKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKVxcbmRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0Yy5jLTY4LXtcXG5kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NydGMuYzo2OTpcXHRkcm1fY3J0Y193YWl0X29uZV92YmxhbmsoXFx1MDAyNmNydGMtXFx1MDAzZWJhc2UpO1xcbmRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0Yy5jLTcwLX1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9pbmdlbmljL2luZ2VuaWMtZHJtLWRydi5jPTIxMz1zdGF0aWMgaW50IGluZ2VuaWNfZHJtX3VwZGF0ZV9waXhjbGsoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYixcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9pbmdlbmljL2luZ2VuaWMtZHJtLWRydi5jLTIyMi1cXHRcXHRwcml2LVxcdTAwM2V1cGRhdGVfY2xrX3JhdGUgPSB0cnVlO1xcbmRyaXZlcnMvZ3B1L2RybS9pbmdlbmljL2luZ2VuaWMtZHJtLWRydi5jOjIyMzpcXHRcXHRkcm1fY3J0Y193YWl0X29uZV92YmxhbmsoXFx1MDAyNnByaXYtXFx1MDAzZWNydGMpO1xcbmRyaXZlcnMvZ3B1L2RybS9pbmdlbmljL2luZ2VuaWMtZHJtLWRydi5jLTIyNC1cXHRcXHRyZXR1cm4gTk9USUZZX09LO1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19jcnRjLmM9ODA1PXN0YXRpYyB2b2lkIG10a19jcnRjX2F0b21pY19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YyxcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY3J0Yy5jLTgzNi1cXHQvKiBXYWl0IGZvciBwbGFuZXMgdG8gYmUgZGlzYWJsZWQgKi9cXG5kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2NydGMuYzo4Mzc6XFx0ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKGNydGMpO1xcbmRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY3J0Yy5jLTgzOC1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2NydGMuYz0zNj1zdGF0aWMgdm9pZCBzdGlfY3J0Y19hdG9taWNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9jcnRjLmMtNDQtXFxuZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfY3J0Yy5jOjQ1OlxcdGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhjcnRjKTtcXG5kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9jcnRjLmMtNDYtfVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmM9MTc3MT1zdGF0aWMgaW50IHRlZ3JhX2RjX3Nob3dfY3JjKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5jLTE3ODgtXFxuZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmM6MTc4OTpcXHRkcm1fY3J0Y193YWl0X29uZV92YmxhbmsoXFx1MDAyNmRjLVxcdTAwM2ViYXNlKTtcXG5kcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMuYzoxNzkwOlxcdGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhcXHUwMDI2ZGMtXFx1MDAzZWJhc2UpO1xcbmRyaXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5jLTE3OTEtXFxuLS1cXG5pbmNsdWRlL2RybS9kcm1fdmJsYW5rLmg9MzA0PXZvaWQgZHJtX2NydGNfdmJsYW5rX3B1dChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpO1xcbmluY2x1ZGUvZHJtL2RybV92YmxhbmsuaDozMDU6aW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpO1xcbmluY2x1ZGUvZHJtL2RybV92YmxhbmsuaC0zMDYtdm9pZCBkcm1fY3J0Y192Ymxhbmtfb2ZmKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDAxOjEzOjE0LjE3MjAxOTE0NloiLCJTZXEiOjI5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4ODgwMjI0Njg4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkRSTSBDb3JlIFZibGFuayBIYW5kbGluZyBGaXg6IEEgRGVlcCBEaXZlKipcblxuT2theSwgc28gSSd2ZSBiZWVuIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaG93IGl0IGFmZmVjdHMgdGhlIERSTSBjb3JlJ3MgdmJsYW5rIGhhbmRsaW5nLCBzcGVjaWZpY2FsbHkgYXJvdW5kIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgLiBUaGlzIGZ1bmN0aW9uLCBhcyB3ZSBrbm93LCBpcyB1c2VkIHRocm91Z2hvdXQgdGhlIGVjb3N5c3RlbSwgYnkgbWFueSBkcml2ZXJzIGFuZCBoZWxwZXIgZnVuY3Rpb25zLiBUaGUgcHJvYmxlbSwgYXMgSSBzZWUgaXQsIHN0ZW1zIGZyb20gYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIG1ha2luZyBhIG5lc3RlZCBjYWxsIOKAkyBmaXJzdCBnZXR0aW5nIHRoZSB2Ymxhbmsgc3RhdHVzIHdpdGggYGRybV9jcnRjX3ZibGFua19nZXRgIGFuZCAqdGhlbiogY2FsbGluZyBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYCwgd2hpY2ggKmFsc28qIGNhbGxzIGBkcm1fY3J0Y192YmxhbmtfZ2V0YC4gVGhpcyBkb3VibGUtZGlwLCBzbyB0byBzcGVhaywgY291bGQgbGVhZCB0byBwb3RlbnRpYWwgaXNzdWVzLCBwZXJoYXBzIGV2ZW4gdHJpZ2dlcmluZyB0aW1lb3V0cy5cblxuVGhlIGZpeCwgaW50cm9kdWNpbmcgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAsIG5lYXRseSBhdm9pZHMgdGhpcyBuZXN0ZWQgYGdldC9wdXRgIGN5Y2xlLiBJdCdzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIERSTSBjb3JlLCBhbmQgaXQncyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGZiZGV2IGlvY3RscyBvciBEUk0gYXRvbWljIGNvbW1pdHMsIGFuZCB0aGF0IG1lYW5zIGl0J3MgZGVmaW5pdGVseSB3b3J0aCBmdXp6aW5nLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgaXMgdGVzdGVkIHRob3JvdWdobHkuXG5cbk15IGZvY3VzIGlzIG9uIHRoZXNlIHN5bWJvbHM6IGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCwgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AsIGFuZCB0aGUgbmV3IGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgLlxuXG5JIG5lZWQgdG8gbmFpbCBkb3duIHRoZSByaWdodCBjb25maWcgb3B0aW9ucy4gSSdtIHRoaW5raW5nIGBEUk1fVktNU2AgYW5kIGBEUk1fRkJERVZfRU1VTEFUSU9OYCBzaG91bGQgYmUgc3VmZmljaWVudCwgYnV0IEkgbmVlZCB0byBiZSBzdXJlLiBMZXQncyBzZWUuLi4gYERSTV9WS01TYCBzZWxlY3RzIGBEUk1fQ0xJRU5UX1NFTEVDVElPTmAuIEFuZCBgRFJNX0ZCREVWX0VNVUxBVElPTmAgZGVwZW5kcyBvbiBgRFJNX0NMSUVOVF9TRUxFQ1RJT05gLiBTbywgdGhhdCBzZWVtcyByaWdodC5cblxuTm93LCBkbyBJIG5lZWQgYERSTV9DTElFTlRgIGV4cGxpY2l0bHk/IE5vcGUsIGBEUk1fRkJERVZfRU1VTEFUSU9OYCBzZWxlY3RzIGBEUk1fQ0xJRU5UYC4gT2theSwgdGhhdCdzIGdvb2QuXG5cbk5leHQsIEkgbmVlZCB0byBjaGVjayB0aGUgc2lnbmF0dXJlIG9mIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgIGFuZCB3aGV0aGVyIGl0J3MgZXhwb3J0ZWQuIEl0IGlzbid0LCBidXQgaXQncyBkZWZpbmVkIGluIGBkcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jYCBhbmQgZGVjbGFyZWQgaW4gYGRyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaGAuIFNpbmNlIGl0J3Mgbm90IGEgc3RhdGljIGZ1bmN0aW9uLCB0aGVyZSAqaXMqIGEgc3ltYm9sLiBHb29kLlxuXG5JJ2xsIGNvbmZpcm0gYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIGlzIGV4cG9ydGVkIGFuZCBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYCBpcyBhbHNvIGV4cG9ydGVkLiBZZXMsIHRoZXkgYm90aCBhcmUuXG5cbkZpbmFsbHksIGFyZSB0aGVyZSBhbnkgb3RoZXIgY3J1Y2lhbCBjb25maWdzPyBMZXQncyBzZWUuLi4gSSdtIHdvbmRlcmluZyBhYm91dCBgRkJgLiBEb2VzIGBEUk1fRkJERVZfRU1VTEFUSU9OYCByZXF1aXJlIHRoYXQ/IExldCdzIGNoZWNrIHRoZSBkZXBlbmRlbmNpZXMuIGBEUk1fRkJERVZfRU1VTEFUSU9OYCBkZXBlbmRzIG9uIGBEUk1fQ0xJRU5UX1NFTEVDVElPTmAsIGFuZCBpdCBzZWxlY3RzIGBEUk1fQ0xJRU5UYCBhbmQgYERSTV9DTElFTlRfU0VUVVBgLCBhbmQgaXQgKmRlZmF1bHRzKiB0byBgRkJgLiBXYWl0LCB0aGUgKmRlZmF1bHQqIHZhbHVlLCBtZWFucyBpdCBkZWZhdWx0cyB0byB0aGUgdmFsdWUgb2YgYEZCYC4gQW5kIGlzIGBGQmAgbmVlZGVkPyBJdCBsb29rcyBsaWtlIEkgbWF5IG5vdCBuZWVkIGBGQmAuIEkgd2lsbCBpbnZlc3RpZ2F0ZSBmdXJ0aGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTQ4NiwiT3V0cHV0VG9rZW5zIjoxNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU5MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMzoyMy4wNTIyNDYyMTRaIiwiU2VxIjozMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3MzcxMDUxNjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEZCXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTA1NCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWV0YS9LY29uZmlnPTE4PWlmIE5FVF9WRU5ET1JfTUVUQVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21ldGEvS2NvbmZpZy0xOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZXRhL0tjb25maWc6MjA6Y29uZmlnIEZCTklDXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWV0YS9LY29uZmlnLTIxLVxcdHRyaXN0YXRlIFxcXCJNZXRhIFBsYXRmb3JtcyBIb3N0IE5ldHdvcmsgSW50ZXJmYWNlXFxcIlxcbi0tXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MjptZW51Y29uZmlnIEZCX1RGVFxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIlN1cHBvcnQgZm9yIHNtYWxsIFRGVCBMQ0QgZGlzcGxheSBtb2R1bGVzXFxcIlxcbi0tXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc9MTQ9aWYgRkJfVEZUXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTUtXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MTY6Y29uZmlnIEZCX1RGVF9BR00xMjY0S19GTFxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTE3LVxcdHRyaXN0YXRlIFxcXCJGQiBkcml2ZXIgZm9yIHRoZSBBR00xMjY0Sy1GTCBMQ0QgZGlzcGxheVxcXCJcXG4tLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTIwLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjIxOmNvbmZpZyBGQl9URlRfQkQ2NjM0NzRcXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0yMi1cXHR0cmlzdGF0ZSBcXFwiRkIgZHJpdmVyIGZvciB0aGUgQkQ2NjM0NzQgTENEIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0yNS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzoyNjpjb25maWcgRkJfVEZUX0hYODM0MEJOXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMjctXFx0dHJpc3RhdGUgXFxcIkZCIGRyaXZlciBmb3IgdGhlIEhYODM0MEJOIExDRCBDb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMzAtXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MzE6Y29uZmlnIEZCX1RGVF9IWDgzNDdEXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMzItXFx0dHJpc3RhdGUgXFxcIkZCIGRyaXZlciBmb3IgdGhlIEhYODM0N0QgTENEIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0zNS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzozNjpjb25maWcgRkJfVEZUX0hYODM1M0RcXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0zNy1cXHR0cmlzdGF0ZSBcXFwiRkIgZHJpdmVyIGZvciB0aGUgSFg4MzUzRCBMQ0QgQ29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTQwLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjQxOmNvbmZpZyBGQl9URlRfSFg4MzU3RFxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTQyLVxcdHRyaXN0YXRlIFxcXCJGQiBkcml2ZXIgZm9yIHRoZSBIWDgzNTdEIExDRCBDb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctNDUtXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6NDY6Y29uZmlnIEZCX1RGVF9JTEk5MTYzXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctNDctXFx0dHJpc3RhdGUgXFxcIkZCIGRyaXZlciBmb3IgdGhlIElMSTkxNjMgTENEIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy01MC1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzo1MTpjb25maWcgRkJfVEZUX0lMSTkzMjBcXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy01Mi1cXHR0cmlzdGF0ZSBcXFwiRkIgZHJpdmVyIGZvciB0aGUgSUxJOTMyMCBMQ0QgQ29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTU1LVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjU2OmNvbmZpZyBGQl9URlRfSUxJOTMyNVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTU3LVxcdHRyaXN0YXRlIFxcXCJGQiBkcml2ZXIgZm9yIHRoZSBJTEk5MzI1IExDRCBDb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctNjAtXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6NjE6Y29uZmlnIEZCX1RGVF9JTEk5MzQwXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctNjItXFx0dHJpc3RhdGUgXFxcIkZCIGRyaXZlciBmb3IgdGhlIElMSTkzNDAgTENEIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy02NS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzo2Njpjb25maWcgRkJfVEZUX0lMSTkzNDFcXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy02Ny1cXHR0cmlzdGF0ZSBcXFwiRkIgZHJpdmVyIGZvciB0aGUgSUxJOTM0MSBMQ0QgQ29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTcwLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjcxOmNvbmZpZyBGQl9URlRfSUxJOTQ4MVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTcyLVxcdHRyaXN0YXRlIFxcXCJGQiBkcml2ZXIgZm9yIHRoZSBJTEk5NDgxIExDRCBDb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctNzUtXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6NzY6Y29uZmlnIEZCX1RGVF9JTEk5NDg2XFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctNzctXFx0dHJpc3RhdGUgXFxcIkZCIGRyaXZlciBmb3IgdGhlIElMSTk0ODYgTENEIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy04MC1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzo4MTpjb25maWcgRkJfVEZUX1BDRDg1NDRcXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy04Mi1cXHR0cmlzdGF0ZSBcXFwiRkIgZHJpdmVyIGZvciB0aGUgUENEODU0NCBMQ0QgQ29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTg1LVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjg2OmNvbmZpZyBGQl9URlRfUkE4ODc1XFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctODctXFx0dHJpc3RhdGUgXFxcIkZCIGRyaXZlciBmb3IgdGhlIFJBODg3NSBMQ0QgQ29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTk0LVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjk1OmNvbmZpZyBGQl9URlRfUzZEMDJBMVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTk2LVxcdHRyaXN0YXRlIFxcXCJGQiBkcml2ZXIgZm9yIHRoZSBTNkQwMkExIExDRCBDb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctOTktXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MTAwOmNvbmZpZyBGQl9URlRfUzZEMTEyMVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTEwMS1cXHR0cmlzdGF0ZSBcXFwiRkIgZHJpdmVyIGZvciB0aGUgUzZEMTIxMSBMQ0QgQ29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTEwNC1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzoxMDU6Y29uZmlnIEZCX1RGVF9TRVBTNTI1XFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTA2LVxcdHRyaXN0YXRlIFxcXCJGQiBkcml2ZXIgZm9yIHRoZSBTRVBTNTI1IExDRCBDb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTEwLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjExMTpjb25maWcgRkJfVEZUX1NIMTEwNlxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTExMi1cXHR0cmlzdGF0ZSBcXFwiRkIgZHJpdmVyIGZvciB0aGUgU0gxMTA2IE9MRUQgQ29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTExNS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzoxMTY6Y29uZmlnIEZCX1RGVF9TU0QxMjg5XFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTE3LVxcdHRyaXN0YXRlIFxcXCJGQiBkcml2ZXIgZm9yIHRoZSBTU0QxMjg5IExDRCBDb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTIwLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjEyMTpjb25maWcgRkJfVEZUX1NTRDEzMDVcXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xMjItXFx0dHJpc3RhdGUgXFxcIkZCIGRyaXZlciBmb3IgdGhlIFNTRDEzMDUgT0xFRCBDb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTI1LVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjEyNjpjb25maWcgRkJfVEZUX1NTRDEzMDZcXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xMjctXFx0dHJpc3RhdGUgXFxcIkZCIGRyaXZlciBmb3IgdGhlIFNTRDEzMDYgT0xFRCBDb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTMwLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjEzMTpjb25maWcgRkJfVEZUX1NTRDEzMzFcXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xMzItXFx0dHJpc3RhdGUgXFxcIkZCIGRyaXZlciBmb3IgdGhlIFNTRDEzMzEgTENEIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xMzUtXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MTM2OmNvbmZpZyBGQl9URlRfU1NEMTM1MVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTEzNy1cXHR0cmlzdGF0ZSBcXFwiRkIgZHJpdmVyIGZvciB0aGUgU1NEMTM1MSBMQ0QgQ29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTE0MC1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZzoxNDE6Y29uZmlnIEZCX1RGVF9TVDc3MzVSXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTQyLVxcdHRyaXN0YXRlIFxcXCJGQiBkcml2ZXIgZm9yIHRoZSBTVDc3MzVSIExDRCBDb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTQ1LVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjE0Njpjb25maWcgRkJfVEZUX1NUNzc4OVZcXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xNDctXFx0dHJpc3RhdGUgXFxcIkZCIGRyaXZlciBmb3IgdGhlIFNUNzc4OVYgTENEIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xNTQtXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MTU1OmNvbmZpZyBGQl9URlRfVElOWUxDRFxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnLTE1Ni1cXHR0cmlzdGF0ZSBcXFwiRkIgZHJpdmVyIGZvciB0aW55bGNkLmNvbSBkaXNwbGF5XFxcIlxcbi0tXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTU5LVxcbmRyaXZlcnMvc3RhZ2luZy9mYnRmdC9LY29uZmlnOjE2MDpjb25maWcgRkJfVEZUX1RMUzgyMDRcXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xNjEtXFx0dHJpc3RhdGUgXFxcIkZCIGRyaXZlciBmb3IgdGhlIFRMUzgyMDQgTENEIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xNjQtXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MTY1OmNvbmZpZyBGQl9URlRfVUMxNjExXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTY2LVxcdHRyaXN0YXRlIFxcXCJGQiBkcml2ZXIgZm9yIHRoZSBVQzE2MTEgTENEIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xNjktXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MTcwOmNvbmZpZyBGQl9URlRfVUMxNzAxXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTcxLVxcdHRyaXN0YXRlIFxcXCJGQiBkcml2ZXIgZm9yIHRoZSBVQzE3MDEgTENEIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3N0YWdpbmcvZmJ0ZnQvS2NvbmZpZy0xNzQtXFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWc6MTc1OmNvbmZpZyBGQl9URlRfVVBEMTYxNzA0XFxuZHJpdmVycy9zdGFnaW5nL2ZidGZ0L0tjb25maWctMTc2LVxcdHRyaXN0YXRlIFxcXCJGQiBkcml2ZXIgZm9yIHRoZSB1UEQxNjE3MDQgTENEIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3N0YWdpbmcvc203NTBmYi9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxcbmRyaXZlcnMvc3RhZ2luZy9zbTc1MGZiL0tjb25maWc6Mjpjb25maWcgRkJfU003NTBcXG5kcml2ZXJzL3N0YWdpbmcvc203NTBmYi9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIlNpbGljb24gTW90aW9uIFNNNzUwIGZyYW1lYnVmZmVyIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NjptZW51Y29uZmlnIEZCXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTctXFx0dHJpc3RhdGUgXFxcIlN1cHBvcnQgZm9yIGZyYW1lIGJ1ZmZlciBkZXZpY2UgZHJpdmVyc1xcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00Ny1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NDg6Y29uZmlnIEZCX0hFQ1VCQVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00OS1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTUyLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo1Mzpjb25maWcgRkJfU1ZHQUxJQlxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01NC1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTU5LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo2MDpjb25maWcgRkJfTUFDTU9ERVNcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNjEtXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02My1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NjQ6Y29uZmlnIEZCX0dSVkdBXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTY1LVxcdHRyaXN0YXRlIFxcXCJBZXJvZmxleCBHYWlzbGVyIGZyYW1lYnVmZmVyIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNzAtXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjcxOmNvbmZpZyBGQl9DSVJSVVNcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNzItXFx0dHJpc3RhdGUgXFxcIkNpcnJ1cyBMb2dpYyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTg5LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo5MDpjb25maWcgRkJfUE0yXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTkxLVxcdHRyaXN0YXRlIFxcXCJQZXJtZWRpYTIgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xMTAtXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjExMTpjb25maWcgRkJfUE0yX0ZJRk9fRElTQ09OTkVDVFxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xMTItXFx0Ym9vbCBcXFwiZW5hYmxlIEZJRk8gZGlzY29ubmVjdCBmZWF0dXJlXFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTExNi1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTE3OmNvbmZpZyBGQl9BQ09STlxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xMTgtXFx0Ym9vbCBcXFwiQWNvcm4gVklEQyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEyNS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTI2OmNvbmZpZyBGQl9DTFBTNzExWFxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xMjctXFx0dHJpc3RhdGUgXFxcIkNMUFM3MTFYIExDRCBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEzNi1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTM3OmNvbmZpZyBGQl9TQTExMDBcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTM4LVxcdGJvb2wgXFxcIlNBLTExMDAgTENEIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTQ4LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoxNDk6Y29uZmlnIEZCX0lNWFxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xNTAtXFx0dHJpc3RhdGUgXFxcIkZyZWVzY2FsZSBpLk1YMS8yMS8yNS8yNyBMQ0Qgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xNTctXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjE1ODpjb25maWcgRkJfQ1lCRVIyMDAwXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTE1OS1cXHR0cmlzdGF0ZSBcXFwiQ3liZXJQcm8gMjAwMC8yMDEwLzUwMDAgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xNjctXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjE2ODpjb25maWcgRkJfQ1lCRVIyMDAwX0REQ1xcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xNjktXFx0Ym9vbCBcXFwiRERDIGZvciBDeWJlclBybyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTE3Ni1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTc3OmNvbmZpZyBGQl9DWUJFUjIwMDBfSTJDXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTE3OC1cXHRib29sIFxcXCJDeWJlclBybyAyMDAwLzIwMTAvNTAwMCBJMkMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xODYtXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjE4Nzpjb25maWcgRkJfQVBPTExPXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTE4OC1cXHRib29sXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTk0LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoxOTU6Y29uZmlnIEZCX1E0MFxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xOTYtXFx0Ym9vbFxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTIwMC1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MjAxOmNvbmZpZyBGQl9BTUlHQVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0yMDItXFx0dHJpc3RhdGUgXFxcIkFtaWdhIG5hdGl2ZSBjaGlwc2V0IHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjExLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoyMTI6Y29uZmlnIEZCX0FNSUdBX09DU1xcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0yMTMtXFx0Ym9vbCBcXFwiQW1pZ2EgT0NTIGNoaXBzZXQgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0yMTktXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjIyMDpjb25maWcgRkJfQU1JR0FfRUNTXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTIyMS1cXHRib29sIFxcXCJBbWlnYSBFQ1MgY2hpcHNldCBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTIyOC1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MjI5OmNvbmZpZyBGQl9BTUlHQV9BR0FcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjMwLVxcdGJvb2wgXFxcIkFtaWdhIEFHQSBjaGlwc2V0IHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjM3LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoyMzg6Y29uZmlnIEZCX0ZNMlxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0yMzktXFx0Ym9vbCBcXFwiQW1pZ2EgRnJhbWVNYXN0ZXIgSUkvUmFpbmJvdyBJSSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTI0NS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MjQ2OmNvbmZpZyBGQl9BUkNcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjQ3LVxcdHRyaXN0YXRlIFxcXCJBcmMgTW9ub2Nocm9tZSBMQ0QgYm9hcmQgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0yNTgtXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjI1OTpjb25maWcgRkJfQVRBUklcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjYwLVxcdGJvb2wgXFxcIkF0YXJpIG5hdGl2ZSBjaGlwc2V0IHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjY5LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoyNzA6Y29uZmlnIEZCX09GXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTI3MS1cXHR0cmlzdGF0ZSBcXFwiT3BlbiBGaXJtd2FyZSBmcmFtZSBidWZmZXIgZGV2aWNlIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjgwLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoyODE6Y29uZmlnIEZCX0NPTlRST0xcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjgyLVxcdGJvb2wgXFxcIkFwcGxlIFxcXFxcXFwiY29udHJvbFxcXFxcXFwiIGRpc3BsYXkgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0yODktXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjI5MDpjb25maWcgRkJfUExBVElOVU1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjkxLVxcdGJvb2wgXFxcIkFwcGxlIFxcXFxcXFwicGxhdGludW1cXFxcXFxcIiBkaXNwbGF5IHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMjk4LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoyOTk6Y29uZmlnIEZCX1ZBTEtZUklFXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTMwMC1cXHRib29sIFxcXCJBcHBsZSBcXFxcXFxcInZhbGt5cmllXFxcXFxcXCIgZGlzcGxheSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTMwNy1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MzA4OmNvbmZpZyBGQl9DVDY1NTUwXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTMwOS1cXHRib29sIFxcXCJDaGlwcyA2NTU1MCBkaXNwbGF5IHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMzE1LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzozMTY6Y29uZmlnIEZCX0FTSUxJQU5UXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTMxNy1cXHRib29sIFxcXCJBc2lsaWFudCAoQ2hpcHMpIDY5MDAwIGRpc3BsYXkgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0zMjItXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjMyMzpjb25maWcgRkJfSU1TVFRcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMzI0LVxcdGJvb2wgXFxcIklNUyBUd2luIFR1cmJvIGRpc3BsYXkgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0zMzItXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjMzMzpjb25maWcgRkJfVkdBMTZcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMzM0LVxcdHRyaXN0YXRlIFxcXCJWR0EgMTYtY29sb3IgZ3JhcGhpY3Mgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0zNDktXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjM1MDpjb25maWcgRkJfU1RJXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTM1MS1cXHR0cmlzdGF0ZSBcXFwiSFAgU1RJIGZyYW1lIGJ1ZmZlciBkZXZpY2Ugc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0zNjktXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjM3MDpjb25maWcgRkJfTUFDXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTM3MS1cXHRib29sIFxcXCJHZW5lcmljIE1hY2ludG9zaCBkaXNwbGF5IHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMzc1LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzozNzY6Y29uZmlnIEZCX0hQMzAwXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTM3Ny1cXHRib29sXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMzgyLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzozODM6Y29uZmlnIEZCX1RHQVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0zODQtXFx0dHJpc3RhdGUgXFxcIlRHQS9TRkIrIGZyYW1lYnVmZmVyIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDA2LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo0MDc6Y29uZmlnIEZCX1VWRVNBXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTQwOC1cXHR0cmlzdGF0ZSBcXFwiVXNlcnNwYWNlIFZFU0EgVkdBIGdyYXBoaWNzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDIzLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo0MjQ6Y29uZmlnIEZCX1ZFU0FcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDI1LVxcdGJvb2wgXFxcIlZFU0EgVkdBIGdyYXBoaWNzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDM1LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo0MzY6Y29uZmlnIEZCX0VGSVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00MzctXFx0Ym9vbCBcXFwiRUZJLWJhc2VkIEZyYW1lYnVmZmVyIFN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDQ3LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo0NDg6Y29uZmlnIEZCX040MTFcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDQ5LVxcdHRyaXN0YXRlIFxcXCJONDExIEFwb2xsby9IZWN1YmEgZGV2a2l0IHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDU1LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo0NTY6Y29uZmlnIEZCX0dCRVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00NTctXFx0Ym9vbCBcXFwiU0dJIEdyYXBoaWNzIEJhY2tlbmQgZnJhbWUgYnVmZmVyIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDY0LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo0NjU6Y29uZmlnIEZCX0dCRV9NRU1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDY2LVxcdGludCBcXFwiVmlkZW8gbWVtb3J5IHNpemUgaW4gTUJcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDcyLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo0NzM6Y29uZmlnIEZCX1NCVVNcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDc0LVxcdGJvb2wgXFxcIlNCVVMgYW5kIFVQQSBmcmFtZWJ1ZmZlcnNcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDc4LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo0Nzk6Y29uZmlnIEZCX1NCVVNfSEVMUEVSU1xcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00ODAtXFx0Ym9vbFxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTQ4NS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NDg2OmNvbmZpZyBGQl9CVzJcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDg3LVxcdGJvb2wgXFxcIkJXdHdvIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNDkyLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo0OTM6Y29uZmlnIEZCX0NHM1xcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy00OTQtXFx0Ym9vbCBcXFwiQ0d0aHJlZSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTQ5OS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NTAwOmNvbmZpZyBGQl9DRzZcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNTAxLVxcdGJvb2wgXFxcIkNHc2l4IChHWCxUdXJib0dYKSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTUwOS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NTEwOmNvbmZpZyBGQl9GRkJcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNTExLVxcdGJvb2wgXFxcIkNyZWF0b3IvQ3JlYXRvcjNEL0VsaXRlM0Qgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01MTktXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjUyMDpjb25maWcgRkJfVENYXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTUyMS1cXHRib29sIFxcXCJUQ1ggKFNTNC9TUzUgb25seSkgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01MjctXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjUyODpjb25maWcgRkJfQ0cxNFxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01MjktXFx0Ym9vbCBcXFwiQ0dmb3VydGVlbiAoU1gpIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNTM1LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo1MzY6Y29uZmlnIEZCX1A5MTAwXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTUzNy1cXHRib29sIFxcXCJQOTEwMCAoU3BhcmNib29rIDMgb25seSkgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01NDMtXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjU0NDpjb25maWcgRkJfTEVPXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTU0NS1cXHRib29sIFxcXCJMZW8gKFpYKSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTU1MS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NTUyOmNvbmZpZyBGQl9YVlI1MDBcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNTUzLVxcdGJvb2wgXFxcIlN1biBYVlItNTAwIDNETEFCUyBXaWxkY2F0IHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNTY1LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo1NjY6Y29uZmlnIEZCX1hWUjI1MDBcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNTY3LVxcdGJvb2wgXFxcIlN1biBYVlItMjUwMCAzRExBQlMgV2lsZGNhdCBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTU3Ni1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NTc3OmNvbmZpZyBGQl9YVlIxMDAwXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTU3OC1cXHRib29sIFxcXCJTdW4gWFZSLTEwMDAgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01ODYtXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjU4Nzpjb25maWcgRkJfUFZSMlxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy01ODgtXFx0dHJpc3RhdGUgXFxcIk5FQyBQb3dlclZSIDIgZGlzcGxheSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTYwOS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NjEwOmNvbmZpZyBGQl9PUEVOQ09SRVNcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNjExLVxcdHRyaXN0YXRlIFxcXCJPcGVuQ29yZXMgVkdBL0xDRCBjb3JlIDIuMCBmcmFtZWJ1ZmZlciBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTYyMy1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NjI0OmNvbmZpZyBGQl9TMUQxM1hYWFxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02MjUtXFx0dHJpc3RhdGUgXFxcIkVwc29uIFMxRDEzWFhYIGZyYW1lYnVmZmVyIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNjM1LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo2MzY6Y29uZmlnIEZCX0FUTUVMXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTYzNy1cXHR0cmlzdGF0ZSBcXFwiQVQ5MSBMQ0QgQ29udHJvbGxlciBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTY0Ny1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NjQ4OmNvbmZpZyBGQl9OVklESUFcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNjQ5LVxcdHRyaXN0YXRlIFxcXCJuVmlkaWEgRnJhbWVidWZmZXIgU3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02NjctXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjY2ODpjb25maWcgRkJfTlZJRElBX0kyQ1xcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02NjktXFx0Ym9vbCBcXFwiRW5hYmxlIEREQyBTdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTY4MC1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NjgxOmNvbmZpZyBGQl9OVklESUFfREVCVUdcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNjgyLVxcdGJvb2wgXFxcIkxvdHMgb2YgZGVidWcgb3V0cHV0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTY4OC1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6Njg5OmNvbmZpZyBGQl9OVklESUFfQkFDS0xJR0hUXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTY5MC1cXHRib29sIFxcXCJTdXBwb3J0IGZvciBiYWNrbGlnaHQgY29udHJvbFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02OTctXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjY5ODpjb25maWcgRkJfUklWQVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy02OTktXFx0dHJpc3RhdGUgXFxcIm5WaWRpYSBSaXZhIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNzE1LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo3MTY6Y29uZmlnIEZCX1JJVkFfSTJDXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTcxNy1cXHRib29sIFxcXCJFbmFibGUgRERDIFN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNzI4LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo3Mjk6Y29uZmlnIEZCX1JJVkFfREVCVUdcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNzMwLVxcdGJvb2wgXFxcIkxvdHMgb2YgZGVidWcgb3V0cHV0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTczNi1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NzM3OmNvbmZpZyBGQl9SSVZBX0JBQ0tMSUdIVFxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy03MzgtXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgYmFja2xpZ2h0IGNvbnRyb2xcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNzQ1LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo3NDY6Y29uZmlnIEZCX0k3NDBcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNzQ3LVxcdHRyaXN0YXRlIFxcXCJJbnRlbDc0MCBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTc1NS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NzU2OmNvbmZpZyBGQl9JODEwXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTc1Ny1cXHR0cmlzdGF0ZSBcXFwiSW50ZWwgODEwLzgxNSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTc3MS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6NzcyOmNvbmZpZyBGQl9JODEwX0dURlxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy03NzMtXFx0Ym9vbCBcXFwidXNlIFZFU0EgR2VuZXJhbGl6ZWQgVGltaW5nIEZvcm11bGFcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNzk0LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo3OTU6Y29uZmlnIEZCX0k4MTBfSTJDXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTc5Ni1cXHRib29sIFxcXCJFbmFibGUgRERDIFN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctODA0LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo4MDU6Y29uZmlnIEZCX01BVFJPWFxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy04MDYtXFx0dHJpc3RhdGUgXFxcIk1hdHJveCBhY2NlbGVyYXRpb25cXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctODI2LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo4Mjc6Y29uZmlnIEZCX01BVFJPWF9NSUxMRU5JVU1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctODI4LVxcdGJvb2wgXFxcIk1pbGxlbm5pdW0gSS9JSSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTgzNi1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6ODM3OmNvbmZpZyBGQl9NQVRST1hfTVlTVElRVUVcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctODM4LVxcdGJvb2wgXFxcIk15c3RpcXVlIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctODQ2LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo4NDc6Y29uZmlnIEZCX01BVFJPWF9HXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTg0OC1cXHRib29sIFxcXCJHMTAwL0cyMDAvRzQwMC9HNDUwL0c1NTAgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy04NzYtXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjg3Nzpjb25maWcgRkJfTUFUUk9YX0kyQ1xcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy04NzgtXFx0dHJpc3RhdGUgXFxcIk1hdHJveCBJMkMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy04OTMtXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjg5NDpjb25maWcgRkJfTUFUUk9YX01BVkVOXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTg5NS1cXHR0cmlzdGF0ZSBcXFwiRzQwMCBzZWNvbmQgaGVhZCBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTkyNS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6OTI2OmNvbmZpZyBGQl9SQURFT05cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctOTI3LVxcdHRyaXN0YXRlIFxcXCJBVEkgUmFkZW9uIGRpc3BsYXkgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy05MzktXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjk0MDpjb25maWcgRkJfUkFERU9OX0kyQ1xcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy05NDEtXFx0Ym9vbCBcXFwiRERDL0kyQyBmb3IgQVRJIFJhZGVvbiBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTk0Ny1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6OTQ4OmNvbmZpZyBGQl9SQURFT05fQkFDS0xJR0hUXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTk0OS1cXHRib29sIFxcXCJTdXBwb3J0IGZvciBiYWNrbGlnaHQgY29udHJvbFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy05NTYtXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjk1Nzpjb25maWcgRkJfUkFERU9OX0RFQlVHXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTk1OC1cXHRib29sIFxcXCJMb3RzIG9mIGRlYnVnIG91dHB1dCBmcm9tIFJhZGVvbiBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctOTY0LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo5NjU6Y29uZmlnIEZCX0FUWTEyOFxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy05NjYtXFx0dHJpc3RhdGUgXFxcIkFUSSBSYWdlMTI4IGRpc3BsYXkgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy05NzctXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjk3ODpjb25maWcgRkJfQVRZMTI4X0JBQ0tMSUdIVFxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy05NzktXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgYmFja2xpZ2h0IGNvbnRyb2xcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctOTg2LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo5ODc6Y29uZmlnIEZCX0FUWVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy05ODgtXFx0dHJpc3RhdGUgXFxcIkFUSSBNYWNoNjQgZGlzcGxheSBzdXBwb3J0XFxcIiBpZiBQQ0kgfHwgQVRBUklcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xMDAyLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoxMDAzOmNvbmZpZyBGQl9BVFlfQ1RcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTAwNC1cXHRib29sIFxcXCJNYWNoNjQgQ1QvVlQvR1QvTFQgKGluY2wuIDNEIFJBR0UpIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTAxMS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTAxMjpjb25maWcgRkJfQVRZX0dFTkVSSUNfTENEXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEwMTMtXFx0Ym9vbCBcXFwiTWFjaDY0IGdlbmVyaWMgTENEIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTAxOC1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTAxOTpjb25maWcgRkJfQVRZX0dYXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEwMjAtXFx0Ym9vbCBcXFwiTWFjaDY0IEdYIHN1cHBvcnRcXFwiIGlmIFBDSVxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEwMjktXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjEwMzA6Y29uZmlnIEZCX0FUWV9CQUNLTElHSFRcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTAzMS1cXHRib29sIFxcXCJTdXBwb3J0IGZvciBiYWNrbGlnaHQgY29udHJvbFxcXCJcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xMDM4LVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzoxMDM5OmNvbmZpZyBGQl9TM1xcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZy0xMDQwLVxcdHRyaXN0YXRlIFxcXCJTMyBUcmlvL1ZpcmdlIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctMTA1My1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWc6MTA1NDpjb25maWcgRkJfUzNfRERDXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEwNTUtXFx0Ym9vbCBcXFwiRERDIGZvciBTMyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTEwNjEtXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnOjEwNjI6Y29uZmlnIEZCX1NBVkFHRVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMzoyNC43ODkzNTkwN1oiLCJTZXEiOjMxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNjA2NDMxMzY5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIHByZXNlbnRlZCBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKk5hdmlnYXRpbmcgdGhlIEZyYW1lYnVmZmVyIExhbmRzY2FwZSoqXG5cbkFscmlnaHQsIGxldCdzIHNlZS4gVGhlIGluaXRpYWwgYEZCYCDigJMgdGhhdCdzIHNob3J0IGZvciBmcmFtZWJ1ZmZlciwgYW5kIGBDT05GSUdfRkJgIHNlZW1zIHRvIGJlIHRoZSBjb3JlLCB0aGUgZm91bmRhdGlvbmFsIGNvbXBvbmVudC4gU28gZmFyLCBzbyBnb29kLCBtYWtlcyBzZW5zZS4gTm93LCBgRFJNX0ZCREVWX0VNVUxBVElPTmAuLi4gSSdtIHByZXR0eSBzdXJlIHRoYXQgY29uZmlndXJhdGlvbiBvcHRpb24gaXMgcmVzcG9uc2libGUgZm9yIGxpbmtpbmcgdGhpbmdzIHVwIHdpdGggYEZCX0NPUkVgLCBvciBhdCBsZWFzdCBzb21ldGhpbmcgaW4gdGhhdCB2aWNpbml0eS4gQnV0IEkgcmVhbGx5IHNob3VsZCBkb3VibGUtY2hlY2sgdGhlIGBLY29uZmlnYCBmaWxlcyBhZ2Fpbi4gQmV0dGVyIHNhZmUgdGhhbiBzb3JyeSwgc3BlY2lmaWNhbGx5IGluIGBkcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnYCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4uIEFsd2F5cyBnb29kIHRvIHJlZnJlc2ggdGhlIG1lbW9yeSB3aXRoIHRob3NlIGNydWNpYWwgZGVwZW5kZW5jeSBkZWNsYXJhdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQxNDM1LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTM6MjguMzk1ODAzNTZaIiwiU2VxIjozMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYwNTEwMzE4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBEUk1fRkJERVZfRU1VTEFUSU9OXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZz0yOD1tZW51IFxcXCJTdXBwb3J0ZWQgRFJNIGNsaWVudHNcXFwiXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMwLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6MzE6Y29uZmlnIERSTV9GQkRFVl9FTVVMQVRJT05cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMyLVxcdGJvb2wgXFxcIkVuYWJsZSBsZWdhY3kgZmJkZXYgc3VwcG9ydCBmb3IgeW91ciBtb2Rlc2V0dGluZyBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDAxOjEzOjI4LjQ1NjMyMDM0OFoiLCJTZXEiOjMzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNTI0NDA0NzUyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkRpdmluZyBCYWNrIGludG8gdGhlIERSTSBDbGllbnQgS2NvbmZpZyoqXG5cbkFscmlnaHQsIGxldCdzIGNpcmNsZSBiYWNrIHRvIGBkcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnYCwgc3BlY2lmaWNhbGx5IGFyb3VuZCBsaW5lIDMxLiBJJ20gZ29pbmcgdG8gcmUtZXhhbWluZSB0aGF0IHNlY3Rpb24gdG8gcmVmcmVzaCBteSB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGUgY2xpZW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgc3RydWN0dXJlZC4gSSdtIHByb2JhYmx5IGxvb2tpbmcgZm9yIGEgc3BlY2lmaWMgZGVwZW5kZW5jeSBvciBhIHBhcnRpY3VsYXIgY29uZmlndXJhdGlvbiB2YXJpYWJsZSB0aGF0J3MgYmVlbiBuYWdnaW5nIGF0IG1lLiBQZXJoYXBzIEnigJltIHRyeWluZyB0byBzb2xpZGlmeSBteSBncmFzcCBvbiBhIHN1YnRsZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIGRpZmZlcmVudCBjbGllbnQgZHJpdmVycyBvciB0cnlpbmcgdG8gdHJhY2sgZG93biBhIGNvbmZpZ3VyYXRpb24gaXNzdWUgSeKAmXZlIGVuY291bnRlcmVkIHJlY2VudGx5LiBPciwgbWF5YmUgSSdtIHJldmlld2luZyB0aGUgb3ZlcmFsbCBhcmNoaXRlY3R1cmUgYmVmb3JlIHNvbWUgaW1wZW5kaW5nIGNoYW5nZSBvciBjb250cmlidXRpb24uIExldCBtZSBtYWtlIHN1cmUgSSdtIG5vdCBtaXNzaW5nIGFueSBlZGdlIGNhc2VzIG9yIGRlcGVuZGVuY2llcyBJIG1pZ2h0J3ZlIG1pc3NlZCB0aGUgZmlyc3QgdGltZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDE4MDQsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMzozMS45ODA3MjgyNloiLCJTZXEiOjM0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3OTY5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDI1LFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgIDI1OlxcdFxcdCAgRW5hYmxlcyB0aGUgRFJNIGNsaWVudCBzZWxlY3Rpb24uIERSTSBkcml2ZXJzIHRoYXQgc3VwcG9ydCB0aGVcXG4gIDI2OlxcdFxcdCAgZGVmYXVsdCBjbGllbnRzIHNob3VsZCBzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT04gaW5zdGVhZC5cXG4gIDI3OlxcdFxcbiAgMjg6XFx0bWVudSBcXFwiU3VwcG9ydGVkIERSTSBjbGllbnRzXFxcIlxcbiAgMjk6XFx0XFx0ZGVwZW5kcyBvbiBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbiAgMzA6XFx0XFxuICAzMTpcXHRjb25maWcgRFJNX0ZCREVWX0VNVUxBVElPTlxcbiAgMzI6XFx0XFx0Ym9vbCBcXFwiRW5hYmxlIGxlZ2FjeSBmYmRldiBzdXBwb3J0IGZvciB5b3VyIG1vZGVzZXR0aW5nIGRyaXZlclxcXCJcXG4gIDMzOlxcdFxcdGRlcGVuZHMgb24gRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG4gIDM0OlxcdFxcdHNlbGVjdCBEUk1fQ0xJRU5UXFxuICAzNTpcXHRcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRVRVUFxcbiAgMzY6XFx0XFx0c2VsZWN0IEZSQU1FQlVGRkVSX0NPTlNPTEVfREVURUNUX1BSSU1BUlkgaWYgRlJBTUVCVUZGRVJfQ09OU09MRVxcbiAgMzc6XFx0XFx0ZGVmYXVsdCBGQlxcbiAgMzg6XFx0XFx0aGVscFxcbiAgMzk6XFx0XFx0ICBDaG9vc2UgdGhpcyBvcHRpb24gaWYgeW91IGhhdmUgYSBuZWVkIGZvciB0aGUgbGVnYWN5IGZiZGV2XFxuICA0MDpcXHRcXHQgIHN1cHBvcnQuIE5vdGUgdGhhdCB0aGlzIHN1cHBvcnQgYWxzbyBwcm92aWRlcyB0aGUgbGludXggY29uc29sZVxcbiAgNDE6XFx0XFx0ICBzdXBwb3J0IG9uIHRvcCBvZiB5b3VyIG1vZGVzZXR0aW5nIGRyaXZlci5cXG4gIDQyOlxcdFxcbiAgNDM6XFx0XFx0ICBJZiBpbiBkb3VidCwgc2F5IFxcXCJZXFxcIi5cXG4gIDQ0OlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMzozMS45ODA4MTIxOFoiLCJTZXEiOjM1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODk5MjExODgwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdW5kZXJzdGFuZGluZywgZnJhbWVkIGFzIG15IGludGVybmFsIHRob3VnaHQgcHJvY2VzczpcblxuKipEZWNvZGluZyB0aGUgYGRlZmF1bHQgRkJgIENvbmZpZ3VyYXRpb24qKlxuXG5SaWdodCwgbGV0IG1lIGJyZWFrIHRoaXMgZG93bi4gV2hlbiBJIHNlZSBgZGVmYXVsdCBGQmAsIGl0J3MgaGludGluZyB0aGF0IHRoZSBzeXN0ZW0sIGJ5IGRlZmF1bHQsIHdpbGwgdXNlIHRoZSB2YWx1ZSBzZXQgYnkgYENPTkZJR19GQmAuIFNvIGZhciwgc28gZ29vZC4gSG93ZXZlciwgaXQgKmRvZXNuJ3QqIGF1dG9tYXRpY2FsbHkgbWVhbiB0aGF0IGl0IGFjdHVhbGx5ICpzZWxlY3RzKiBgRkJgIGRpcmVjdGx5LiBUaGF0J3MgYSBjcnVjaWFsIGRpc3RpbmN0aW9uLiBOb3csIEkgbmVlZCB0byByZW1pbmQgbXlzZWxmIHdoZXJlIHRoZSByZWxhdGVkIGNvZGUgcmVzaWRlcy4gQWggeWVzLCBgZHJtX2ZiX2hlbHBlci5jYC4gVGhpcyBmaWxlIHJlbGllcyBvbiBgZmJfaW5mb2AsIHdoaWNoIGlzIGRlZmluZWQgaW4gYGluY2x1ZGUvbGludXgvZmIuaGAuXG5cbkJ1dCBub3cgSSBoYXZlIHRvIGFzayBteXNlbGYgYW4gaW1wb3J0YW50IHF1ZXN0aW9uOiBEb2VzIGBkcm1fZmJfaGVscGVyLmNgIGhhdmUgYW4gaW1wbGljaXQgZGVwZW5kZW5jeSBvbiBgQ09ORklHX0ZCYD8gSXQgZmVlbHMgbGlrZSBpdCBtaWdodCwgYnV0IEkgbmVlZCB0byBjb25maXJtLiBNeSBndXQgc2F5cyBJIHNob3VsZCByZS1leGFtaW5lIHRoZSBgZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlYCB0byBlaXRoZXIgY29uZmlybSBvciByZWZ1dGUgbXkgc3VzcGljaW9uLiBJIHdpbGwgZG8gdGhhdCBiZWZvcmUgbWFraW5nIGFueSBhc3N1bXB0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDIzMTIsIk91dHB1dFRva2VucyI6MjEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5MCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDAxOjEzOjM1Ljg4MDAyNjQxWiIsIlNlcSI6MzYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDA0NzE2MDQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRybV9mYl9oZWxwZXIub1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGU9MTU5PWRybV9rbXNfaGVscGVyLSQoQ09ORklHX0RSTV9QQU5FTF9CUklER0UpICs9IGJyaWRnZS9wYW5lbC5vXFxuZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlOjE2MDpkcm1fa21zX2hlbHBlci0kKENPTkZJR19EUk1fRkJERVZfRU1VTEFUSU9OKSArPSBkcm1fZmJfaGVscGVyLm9cXG5kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUtMTYxLW9iai0kKENPTkZJR19EUk1fS01TX0hFTFBFUikgKz0gZHJtX2ttc19oZWxwZXIub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMzozNy44ODQ3NDk0OTlaIiwiU2VxIjozNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzYxNDYwNTczOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIERSTV9GQkRFVl9FTVVMQVRJT04gYW5kIGZyYW1lYnVmZmVyIGRlcGVuZGVuY2llcyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgdHJ5aW5nIHRvIHVuZGVyc3RhbmQgaXRzIGJ1aWxkIGRlcGVuZGVuY2llcy4gVGhlIGNydWNpYWwgcG9pbnQgaGVyZSBpcyB0aGUgYERSTV9GQkRFVl9FTVVMQVRJT05gIG9wdGlvbiBhbmQgaG93IGl0IGFmZmVjdHMgdGhlIGBkcm1fZmJfaGVscGVyLm9gIG1vZHVsZS4gU3BlY2lmaWNhbGx5LCBpZiB0aGlzIGVtdWxhdGlvbiBmZWF0dXJlIGlzIGVuYWJsZWQsIHRoZW4gdGhlIGBkcm1fZmJfaGVscGVyLm9gIGlzIGdvaW5nIHRvIGJlIGJ1aWx0LiBCdXQgSSBoYXZlIGEgbmFnZ2luZyBxdWVzdGlvbiBpbiB0aGUgYmFjayBvZiBteSBtaW5kOiBjYW4gYGRybV9mYl9oZWxwZXIuY2AgZXZlbiAqY29tcGlsZSogd2l0aG91dCB0aGUgY2xhc3NpYyBmcmFtZWJ1ZmZlciBjb25maWd1cmF0aW9uIChgQ09ORklHX0ZCYCkgZW5hYmxlZD8gSXQgc2VlbXMgdW5saWtlbHksIGdpdmVuIHRoZSBuYW1lLCBidXQgSSBuZWVkIHRvIGNvbmZpcm0gdGhpcy5cblxuVG8gYW5zd2VyIHRoYXQgcXVlc3Rpb24gd2l0aCBhYnNvbHV0ZSBjZXJ0YWludHksIEkgbmVlZCB0byBjb25zdWx0IHRoZSBjb2RlLiBUaGUgbGlrZWx5IHBsYWNlcyB0byBmaW5kIHRoaXMgaW5mb3JtYXRpb24gYXJlIGBpbmNsdWRlL2xpbnV4L2ZiLmhgLCB0aGF0IHNob3VsZCBwcm92aWRlIHRoZSBkZWNsYXJhdGlvbnMsIG9yIHBlcmhhcHMgdGhlIGBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2NvcmUvTWFrZWZpbGVgLiBUaGUgbWFrZWZpbGUgbWlnaHQgaGF2ZSBjb25kaXRpb25hbCBidWlsZCBmbGFncywgb3IgdGhlIGhlYWRlciBmaWxlIG1pZ2h0IGluY2x1ZGUgdGhlIHJlbGV2YW50IGBpZmRlZmAgYmxvY2tzLiBJJ2xsIHN0YXJ0IHdpdGggdGhvc2UgYW5kIHNlZSB3aGVyZSBJIGdldC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDI3NzEsIk91dHB1dFRva2VucyI6MTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMzo0MS40OTkzNTc0NzhaIiwiU2VxIjozOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0OTczMTI3NTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEZCX0NPUkVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy92aWRlby9mYmRldi9jb3JlL0tjb25maWctNS1cXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L2NvcmUvS2NvbmZpZzo2OmNvbmZpZyBGQl9DT1JFXFxuZHJpdmVycy92aWRlby9mYmRldi9jb3JlL0tjb25maWctNy1cXHRzZWxlY3QgVklERU9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTM6NDIuOTk2Njc3NjkyWiIsIlNlcSI6MzksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1MTQ5NDkyMDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlIGFuZCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipEUk1fRkJERVZfRU1VTEFUSU9OIGFuZCBGQl9DT1JFOiBBIFF1aWNrIENoZWNrKipcblxuUmlnaHQsIGxldCBtZSBqdXN0IHF1aWNrbHkgcnVuIHRocm91Z2ggdGhpcyBpbiBteSBoZWFkLiBJIG5lZWQgdG8gbWFrZSBhYnNvbHV0ZWx5IHN1cmUgYWJvdXQgc29tZXRoaW5nIHJlbGF0ZWQgdG8gdGhlIERpcmVjdCBSZW5kZXJpbmcgTWFuYWdlciAoRFJNKSBmcmFtZWJ1ZmZlciBlbXVsYXRpb24uIFNwZWNpZmljYWxseSwgSSdtIHRoaW5raW5nIGFib3V0IHRoZSBkZXBlbmRlbmN5IGJldHdlZW4gYERSTV9GQkRFVl9FTVVMQVRJT05gIGFuZCBgRkJfQ09SRWAuIEl0J3MgYSBmdW5kYW1lbnRhbCByZWxhdGlvbnNoaXAsIHJlYWxseS4gRG9lcyBlbmFibGluZyB0aGUgZm9ybWVyIGF1dG9tYXRpY2FsbHkgdHJpZ2dlciB0aGUgbGF0dGVyPyBJZiBgRFJNX0ZCREVWX0VNVUxBVElPTmAgaXMgc2VsZWN0ZWQsIGRvZXMgdGhhdCBpbmhlcmVudGx5IHB1bGwgaW4gdGhlIGBGQl9DT1JFYCBjb25maWd1cmF0aW9uIGFzIHdlbGw/IEkgbmVlZCB0byBjbGFyaWZ5IHRoYXQgZGVwZW5kZW5jeS4gQSBzb2xpZCB1bmRlcnN0YW5kaW5nIG9mIHRoYXQgbGluayBpcyBwcmV0dHkgbXVjaCBlc3NlbnRpYWwgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRoZSBjb3JlIGZyYW1lYnVmZmVyIGVtdWxhdGlvbiBhbmQgRFJNIGludGVyZmFjZSBpbnRlcmFjdC4gR290dGEgbWFrZSBzdXJlIHRob3NlIHR3byBhcmUgY29ycmVjdGx5IGxpbmtlZCBzbyB0aGF0IHRoZSB1c2Vyc3BhY2UgYXBwbGljYXRpb25zIGNhbiB3b3JrIGFzIGludGVuZGVkIHdpdGggdGhlc2UgbW9kdWxlcy4gSXQncyBhIGtleSBwaWVjZSB0byB2ZXJpZnkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQzMTYwLCJPdXRwdXRUb2tlbnMiOjE4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTM6NDYuNTExNjMwNTA1WiIsIlNlcSI6NDAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTMzMzk3MDIzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNlbGVjdCBGQl9DT1JFXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvZ3B1L2RybS9LY29uZmlnPTQ1PWNvbmZpZyBEUk1fS01TX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL0tjb25maWctNDctXFx0ZGVwZW5kcyBvbiBEUk1cXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZzo0ODpcXHRzZWxlY3QgRkJfQ09SRSBpZiBEUk1fRkJERVZfRU1VTEFUSU9OXFxuZHJpdmVycy9ncHUvZHJtL0tjb25maWctNDktXFx0aGVscFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL0tjb25maWc9MjUwPWNvbmZpZyBEUk1fVFRNX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL0tjb25maWctMjU0LVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUiBpZiBEUk1fRkJERVZfRU1VTEFUSU9OXFxuZHJpdmVycy9ncHUvZHJtL0tjb25maWc6MjU1OlxcdHNlbGVjdCBGQl9DT1JFIGlmIERSTV9GQkRFVl9FTVVMQVRJT05cXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZy0yNTYtXFx0c2VsZWN0IEZCX1NZU01FTV9IRUxQRVJTX0RFRkVSUkVEIGlmIERSTV9GQkRFVl9FTVVMQVRJT05cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnPTI2MD1jb25maWcgRFJNX0dFTV9ETUFfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZy0yNjMtXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSIGlmIERSTV9GQkRFVl9FTVVMQVRJT05cXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZzoyNjQ6XFx0c2VsZWN0IEZCX0NPUkUgaWYgRFJNX0ZCREVWX0VNVUxBVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnLTI2NS1cXHRzZWxlY3QgRkJfRE1BTUVNX0hFTFBFUlNfREVGRVJSRUQgaWYgRFJNX0ZCREVWX0VNVUxBVElPTlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL0tjb25maWc9MjY5PWNvbmZpZyBEUk1fR0VNX1NITUVNX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL0tjb25maWctMjcyLVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUiBpZiBEUk1fRkJERVZfRU1VTEFUSU9OXFxuZHJpdmVycy9ncHUvZHJtL0tjb25maWc6MjczOlxcdHNlbGVjdCBGQl9DT1JFIGlmIERSTV9GQkRFVl9FTVVMQVRJT05cXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZy0yNzQtXFx0c2VsZWN0IEZCX1NZU01FTV9IRUxQRVJTX0RFRkVSUkVEIGlmIERSTV9GQkRFVl9FTVVMQVRJT05cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc9Mz1jb25maWcgRFJNX0NMSUVOVF9MSUJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctNi1cXHRzZWxlY3QgRFJNX0tNU19IRUxQRVIgaWYgRFJNX0ZCREVWX0VNVUxBVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6NzpcXHRzZWxlY3QgRkJfQ09SRSBpZiBEUk1fRkJERVZfRU1VTEFUSU9OXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy04LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZz02PW1lbnVjb25maWcgRkJcXG5kcml2ZXJzL3ZpZGVvL2ZiZGV2L0tjb25maWctNy1cXHR0cmlzdGF0ZSBcXFwiU3VwcG9ydCBmb3IgZnJhbWUgYnVmZmVyIGRldmljZSBkcml2ZXJzXFxcIlxcbmRyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZzo4OlxcdHNlbGVjdCBGQl9DT1JFXFxuZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnLTktXFx0c2VsZWN0IEZCX05PVElGWVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxMzo0OC4wNDUwMzIzNjhaIiwiU2VxIjo0MSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTI0NzE4MTEzMDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb246IERSTSBWYmxhbmsgV2FpdGluZyBMb2dpYyoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgYERSTV9LTVNfSEVMUEVSYCBjaG9vc2VzIGBGQl9DT1JFYCBpZiB3ZSBoYXZlIGBEUk1fRkJERVZfRU1VTEFUSU9OYCBlbmFibGVkLiBBbmQsIGFzIHdlIGtub3csIGBEUk1fVktNU2AgYWxzbyBzZWxlY3RzIGBEUk1fS01TX0hFTFBFUmAsIHdoaWNoIGltcGxpY2l0bHkgc2VsZWN0cyBgRkJfQ09SRWAuIFRoaXMgbWVhbnMgYEZCX0NPUkVgIGlzIGhhbmRsZWQgYXV0b21hZ2ljYWxseSwgc28gbm8gbmVlZCB0byBleHBsaWNpdGx5IHdvcnJ5IGFib3V0IHRoYXQgb25lLiBCYXNpY2FsbHksIHdlIG9ubHkgbmVlZCB0byBlbmFibGUgYERSTV9WS01TYCBhbmQgYERSTV9GQkRFVl9FTVVMQVRJT05gLlxuXG5Ob3csIHRoZSBpbXBvcnRhbnQgcGFydDogSSBuZWVkIHRvIGNvbmZpcm0gd2hlcmUgdGhlc2Uga2V5IGZ1bmN0aW9ucyBhcmUgY2FsbGVkLiBJIHNlZSB0aGF0IGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBpcyBpbmRlZWQgY2FsbGVkIGFuZCBpcyBleHBvcnRlZC4gVGhlIHBhdGNoIGFsdGVycyBib3RoIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBhbmQgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AuIEJvdGggc2VlbSB0byBiZSByZWFjaGFibGUgLSB3aGljaCBpcyBrZXkhXG5cbk9rYXksIGxldCdzIHN1bW1hcml6ZSB0aGUgZnV6emluZyBwbGFuOlxuXG4qICAgKipXb3J0aEZ1enppbmc6KiogQWJzb2x1dGVseSFcbiogICAqKkZvY3VzIFN5bWJvbHM6KiogV2UgaGF2ZSB0byBmb2N1cyBvbiB0aGUgZm9sbG93aW5nIHN5bWJvbHNcbiAgICAqICAgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgXG4gICAgKiAgIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgXG4gICAgKiAgIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgXG4qICAgKipFbmFibGVDb25maWdzOioqXG4gICAgKiAgIGBEUk1fVktNU2BcbiAgICAqICAgYERSTV9GQkRFVl9FTVVMQVRJT05gXG5cbldhaXQsIGhhbmcgb24uIGBEUk1fVktNU2AgaXMgYSB2aXJ0dWFsIGRyaXZlciwgcGVyZmVjdCBmb3IgZnV6emluZyBpbiBhIGNvbnRyb2xsZWQgZW52aXJvbm1lbnQuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBpcyB0aGUgcmlnaHQgdmlydHVhbCBkcml2ZXIuIERvZXMgYW55IG90aGVyIHZpcnR1YWwgZHJpdmVyIHVzZSBEUk0/IExldCdzIHNlZS4uLiBgRFJNX1ZHRU1gIGRvZXNuJ3QgdXNlIEtNUywgc28gaXQgZG9lc24ndCB1c2UgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AuIEJ1dCwgYERSTV9WS01TYCAqZG9lcyogdXNlIEtNUyBhbmQgQ1JUQ3MuIFllcywgYERSTV9WS01TYCBpcyB0aGUgY29ycmVjdCB0YXJnZXQuXG5cbkxldCdzIGRvdWJsZS1jaGVjayB0aGUgZGVmaW5pdGlvbnMgb2YgdGhlIGtleSBmdW5jdGlvbnMgdG8gZW5zdXJlIHRoZXkncmUgYWNjZXNzaWJsZS4gSSdsbCBjb25maXJtIHRoYXQgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAgaXMgbm90IHN0YXRpYywgd2hpY2ggaXQgaXNuJ3QuIFNpbWlsYXJseSwgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIGFuZCBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYCBhcmUgYWxzbyBub3Qgc3RhdGljLiBFeGNlbGxlbnQuIE5vbmUgb2YgdGhlc2UgZnVuY3Rpb25zIGFyZSBzdGF0aWMgb3IgaW5saW5lZC5cblxuVGhlIHJlYXNvbiB0aGlzIGlzIGFsbCB3b3J0aHdoaWxlIGlzIHRoYXQgdGhlIHBhdGNoIHJlZmFjdG9ycyB0aGUgdmJsYW5rIHdhaXRpbmcgbG9naWMgdG8gZWxpbWluYXRlIG5lc3RlZCBgZHJtX2NydGNfdmJsYW5rX2dldGAgY2FsbHMsIGFuZCBpdCBpbnRyb2R1Y2VzIGEgbmV3IGhlbHBlciwgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAuIFRoaXMgZml4ZXMgYSBwb3RlbnRpYWwgaXNzdWUgaW4gYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIGFuZCBtb2RpZmllcyBob3cgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AgZnVuY3Rpb25zLiBTaW5jZSB0aGVzZSBmdW5jdGlvbnMgY2FuIGJlIGFjY2Vzc2VkIGZyb20gdXNlcnNwYWNlIHZpYSBmYmRldiBpb2N0bHMgKGxpa2UgYEZCSU9fV0FJVEZPUlZTWU5DYCkgYW5kIERSTSBhdG9taWMgY29tbWl0cywgdGhlcmUgaXMgYSBmdW5jdGlvbmFsIGltcGFjdCBpbiB0aGUgRFJNIGNvcmUsIG1ha2luZyB0aGVtIHBlcmZlY3QgdGFyZ2V0cy5cblxuU28sIHRvIHJlaXRlcmF0ZSwgaXQgc2VlbXMgbGlrZSBgRFJNX1ZLTVNgIGFuZCBgRFJNX0ZCREVWX0VNVUxBVElPTmAgYXJlIHRoZSBrZXkgY29uZmlncyB3ZSB3aWxsIG5lZWQuIFRoaXMgc2V0dXAgc2hvdWxkIGdpdmUgdXMgYSBnb29kIHRlc3RiZWQuIE9rYXksIEknbSByZWFkeSB0byBwcm9jZWVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NDA0MSwiT3V0cHV0VG9rZW5zIjoyMzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4NTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTQ6MDAuNTE2ODQ2OTM1WiIsIlNlcSI6NDIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Nzg0NjE3MDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkRSTV9WS01TXCIsXG4gICAgXCJEUk1fRkJERVZfRU1VTEFUSU9OXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua1wiLFxuICAgIFwiZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rXCIsXG4gICAgXCJkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZWZhY3RvcnMgdGhlIHZibGFuayB3YWl0aW5nIGxvZ2ljIGluIHRoZSBEUk0gY29yZSB0byBhdm9pZCBuZXN0ZWQgYGRybV9jcnRjX3ZibGFua19nZXRgIGNhbGxzLCBpbnRyb2R1Y2luZyBhIG5ldyBpbnRlcm5hbCBoZWxwZXIgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAuIFRoaXMgZml4ZXMgYSBwb3RlbnRpYWwgaXNzdWUgaW4gYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIGFuZCBtb2RpZmllcyB0aGUgZXhlY3V0aW9uIGZsb3cgb2YgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AuIFRoZXNlIGZ1bmN0aW9ucyBhcmUgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBmYmRldiBpb2N0bHMgKGUuZy4sIGBGQklPX1dBSVRGT1JWU1lOQ2ApIGFuZCBEUk0gYXRvbWljIGNvbW1pdHMuIFRoZSBjaGFuZ2VzIGhhdmUgYSBmdW5jdGlvbmFsIGltcGFjdCBvbiB0aGUgRFJNIGNvcmUgYW5kIGFyZSB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkRSTV9WS01TXCIsXG4gICAgXCJEUk1fRkJERVZfRU1VTEFUSU9OXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua1wiLFxuICAgIFwiZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rXCIsXG4gICAgXCJkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZWZhY3RvcnMgdGhlIHZibGFuayB3YWl0aW5nIGxvZ2ljIGluIHRoZSBEUk0gY29yZSB0byBhdm9pZCBuZXN0ZWQgYGRybV9jcnRjX3ZibGFua19nZXRgIGNhbGxzLCBpbnRyb2R1Y2luZyBhIG5ldyBpbnRlcm5hbCBoZWxwZXIgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAuIFRoaXMgZml4ZXMgYSBwb3RlbnRpYWwgaXNzdWUgaW4gYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIGFuZCBtb2RpZmllcyB0aGUgZXhlY3V0aW9uIGZsb3cgb2YgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AuIFRoZXNlIGZ1bmN0aW9ucyBhcmUgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBmYmRldiBpb2N0bHMgKGUuZy4sIGBGQklPX1dBSVRGT1JWU1lOQ2ApIGFuZCBEUk0gYXRvbWljIGNvbW1pdHMuIFRoZSBjaGFuZ2VzIGhhdmUgYSBmdW5jdGlvbmFsIGltcGFjdCBvbiB0aGUgRFJNIGNvcmUgYW5kIGFyZSB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxNDowMC41OTUzMTU2NzNaIiwiU2VxIjo0MywiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgzNzQxMzUxMzMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQwMToxNDowMC41OTU3NTYxMDNaIiwiU2VxIjo0NCwiTmVzdGluZyI6MiwiVHlwZSI6ImFnZW50IiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6ODM3MzY5MDk1MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVmYWN0b3JzIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIGJ5IGV4dHJhY3RpbmcgaXRzIGNvcmUgd2FpdGluZyBsb2dpYyBpbnRvIGEgbmV3IGludGVybmFsIGZ1bmN0aW9uIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgLiBUaGlzIGFsbG93cyBjYWxsZXJzIGxpa2UgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIHRoYXQgYWxyZWFkeSBob2xkIGEgdmJsYW5rIHJlZmVyZW5jZSB0byB3YWl0IHdpdGhvdXQgYWNxdWlyaW5nIGFuZCByZWxlYXNpbmcgdGhlIHJlZmVyZW5jZSBhZ2Fpbi4gVGhlIGNoYW5nZXMgYXJlIHB1cmVseSByZWxhdGVkIHRvIGNvbnRyb2wgZmxvdywgcmVmZXJlbmNlIGNvdW50aW5nLCBhbmQgd2FpdCBxdWV1ZXMuIFRoZXJlIGFyZSBubyBuZXcgZGF0YSBzdHJ1Y3R1cmVzIGFsbG9jYXRlZCwgbm8gc3RydWN0dXJlcyBjb3BpZWQgdG8gdXNlciBzcGFjZSwgYW5kIG5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJpc2tzIGludHJvZHVjZWQuIEFueSBwb3RlbnRpYWwgYnVncyBpbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2ggKHN1Y2ggYXMgdXNlLWFmdGVyLWZyZWUgZHVlIHRvIGluY29ycmVjdCByZWZlcmVuY2UgY291bnRpbmcpIHdvdWxkIGJlIGNhdWdodCBieSBLQVNBTiBvciBzdGFuZGFyZCBrZXJuZWwgZGVidWdnaW5nIHRvb2xzLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgbmVjZXNzYXJ5LlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBzZWN1cml0eSBlbmdpbmVlciBzcGVjaWFsaXppbmcgaW4ga2VybmVsIG1lbW9yeVxuZXJyb3IgZGV0ZWN0b3JzIChLQVNBTiBhbmQgS01TQU4pLiBZb3VyIGpvYiBpcyB0byByZXZpZXcgdGhlIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmRcbmRldGVybWluZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGp1c3RpZnkgc3Bhd25pbmcgYSBkZWRpY2F0ZWQgS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcilcbmZ1enppbmcgc2Vzc2lvbiBpbiBhZGRpdGlvbiB0byBzdGFuZGFyZCBLQVNBTiBmdXp6aW5nLlxuXG5DUklUSUNBTCBESVNUSU5DVElPTiBCRVRXRUVOIEtBU0FOIEFORCBLTVNBTjpcbi0gU3RhbmRhcmQgS0FTQU4ga2VybmVsIGJ1aWxkcyAodXBzdHJlYW0tYXBwYXJtb3Ita2FzYW4uY29uZmlnKSBhbHJlYWR5IGVuYWJsZVxuICBhIGNvbXByZWhlbnNpdmUgc3VpdGUgb2YgZGVidWdnaW5nIHRvb2xzIGFuZCBzYW5pdGl6ZXJzLCBpbmNsdWRpbmcgS0FTQU5cbiAgKG91dC1vZi1ib3VuZHMgYWNjZXNzZXMsIHVzZS1hZnRlci1mcmVlLCBkb3VibGUgZnJlZSwgaW52YWxpZCBmcmVlKSwgTE9DS0RFUFxuICAobG9ja2luZyBidWdzIGFuZCBkZWFkbG9ja3MpLCBVQi1zYW5pdGl6ZXJzLCBhbmQgbWVtb3J5IGNvcnJ1cHRpb24gY2hlY2tzLlxuLSBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKSBkZXRlY3RzIHJlYWRzIG9mIFVOSU5JVElBTElaRUQgbWVtb3J5IChzdGFjaywgaGVhcCxcbiAgb3IgcGFnZSBhbGxvY2F0aW9ucykgYW5kIGtlcm5lbC10by11c2VyIG1lbW9yeSBpbmZvLWxlYWtzLlxuXG5SdWxlOiBUSEVSRSBJUyBOTyBTRU5TRSBJTiBSVU5OSU5HIEEgS01TQU4gU0VTU0lPTiBJRiBBIEJVRyBDQU4gQkUgQ0FVR0hUIEJZIEtBU0FOLFxuTE9DS0RFUCwgT1IgT1RIRVIgU1RBTkRBUkQgQlVHIERFVEVDVE9SUy5cbkEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpbmN1cnMgc2lnbmlmaWNhbnQgcmVzb3VyY2UgY29zdHMuIFlvdSBtdXN0IE9OTFlcbnNldCBOZWVkc0tNU0FOPXRydWUgaWYgdGhlIGNvZGUgY2hhbmdlcyBpbnRyb2R1Y2Ugb3IgZXhwb3NlIFVOSU5JVElBTElaRUQgTUVNT1JZIHJpc2tzXG50aGF0IGFyZSBkZXRlY3RlZCBPTkxZIGJ5IEtNU0FOLlxuXG5Mb29rIGhvbGlzdGljYWxseSBhdCB0aGUgcGF0Y2ggc2VyaWVzIGFuZCBzdXJyb3VuZGluZyBjb2RlLiBFdmVuIGlmIG5vIGRpcmVjdFxudW5pbml0aWFsaXplZCBmaWVsZCBhY2Nlc3NlcyBvciBuZXcgYnVmZmVyIGFsbG9jYXRpb25zIGFyZSBhZGRlZCBpbiB0aGUgZGlmZiBpdHNlbGYsXG5hIHBhdGNoIG1heSBhbHRlciBjb250cm9sIGZsb3csIGJvdW5kcyBjaGVja2luZywgb3IgZGF0YSBsZW5ndGggY2FsY3VsYXRpb25zIGluIHdheXNcbnRoYXQgY2hhbmdlIGhvdyB0aGUgcmVzdCBvZiB0aGUgY29kZSBvcGVyYXRlcyBvbiBleGlzdGluZyBidWZmZXJzIChlLmcuIGFsbG93aW5nXG51bmluaXRpYWxpemVkIHN0YWNrL2hlYXAgbWVtb3J5IHRvIGJlIHJlYWQsIGNvcGllZCB0byB1c2VyIHNwYWNlLCBvciB1c2VkIGluIGNvbnRyb2xcbmZsb3cpLiBEbyBub3QgaGVzaXRhdGUgdG8gdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSxcbmNhbGxlZCBmdW5jdGlvbnMsIGFuZCBjYWxsZXJzLlxuXG5TZXQgTmVlZHNLTVNBTj10cnVlIE9OTFkgSUYgdGhlIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXM6XG4xLiBLZXJuZWwgc3RydWN0dXJlcyBzZW50IHRvIHVzZXIgc3BhY2UgKHZpYSBjb3B5X3RvX3VzZXIsIHB1dF91c2VyLCBuZXRsaW5rIHNrYlxuICAgYXR0cmlidXRlcywgaW9jdGwgb3V0cHV0IGFyZ3VtZW50cywgc29ja2V0IG9wdGlvbnMsIG9yIEJQRiBidWZmZXJzKSB3aGVyZSBmaWVsZHNcbiAgIG9yIHN0cnVjdHVyZSBwYWRkaW5nIG1pZ2h0IG5vdCBiZSBmdWxseSBpbml0aWFsaXplZC96ZXJvZWQuXG4yLiBDb25kaXRpb25hbCBsb2dpYyBvciBicmFuY2hpbmcgdGhhdCBkZXBlbmRzIG9uIHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzXG4gICBvciBzdHJ1Y3QgZmllbGRzLlxuMy4gQWxsb2NhdGlvbiBvciBpbml0aWFsaXphdGlvbiBvZiBjb21wbGV4IGRhdGEgc3RydWN0dXJlcyB3aGVyZSB1bmluaXRpYWxpemVkIGZpZWxkc1xuICAgY291bGQgYmUgcmVhZCBsYXRlciBpbiByZWFjaGFibGUgY29kZSBwYXRocy5cbjQuIEJvdW5kcyBjaGVja3MsIGxlbmd0aHMsIG9yIGxvZ2ljIGluIGEgd2F5IHRoYXQgYWxsb3dzIHN1cnJvdW5kaW5nIGNvZGUgdG8gYWNjZXNzXG4gICB1bmluaXRpYWxpemVkIGJ5dGVzIG9mIGV4aXN0aW5nIGJ1ZmZlcnMuXG5cblNldCBOZWVkc0tNU0FOPWZhbHNlIElGOlxuLSBUaGUgY29kZSBjaGFuZ2VzIHByaW1hcmlseSByaXNrIG91dC1vZi1ib3VuZHMgYWNjZXNzLCBhcnJheSBvdmVyZmxvd3MsIE5VTEwgcG9pbnRlclxuICBkZXJlZmVyZW5jZXMsIGxvY2tpbmcgZGVhZGxvY2tzLCBvciB1c2UtYWZ0ZXItZnJlZSBidWdzICh0aGVzZSBhcmUgYWxyZWFkeSBjYXVnaHRcbiAgYnkgS0FTQU4sIExPQ0tERVAsIG9yIHN0YW5kYXJkIGJ1ZyBkZXRlY3RvcnMpLlxuLSBBbGwgc3RhY2svaGVhcCBzdHJ1Y3R1cmVzIHRvdWNoZWQgb3IgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggYXJlIGZ1bGx5IHplcm9lZFxuICBvciBpbml0aWFsaXplZCAoZS5nLiB1c2luZyA9IHswfSwgbWVtc2V0LCBremFsbG9jKSBiZWZvcmUgYmVpbmcgcmVhZCBvciBjb3BpZWQuXG4tIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcy5cblxuVXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSBpZiBuZWNlc3NhcnksIHRoZW4gcHJvdmlkZVxuZGV0YWlsZWQgS01TQU5SZWFzb25pbmcgY29udHJhc3RpbmcgS0FTQU4gdnMgS01TQU4gYXBwbGljYWJpbGl0eSBmb3IgdGhpcyBwYXRjaC5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGQ0MGRlY2NjY2ZkYzI4NDYyMmMyMzY2ZWFiODIyYjI3NzA1MzZlZDhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEF1ZyAxMSAwMToxMTo1OCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuY1xuaW5kZXggMDA4MGE4ZTk1NTZhNS4uN2ZmMGYyNGEwZjUwMiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuY1xuKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jXG5AQCAtMTMyOCw3ICsxMzI4LDcgQEAgaW50IGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92Ymxhbmsoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIHVuc2lnbmVkIGlcbiBcdCAqL1xuIFx0cmV0ID0gZHJtX2NydGNfdmJsYW5rX2dldChjcnRjKTtcbiBcdGlmICghcmV0KSB7XG4tXHRcdGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhjcnRjKTtcbitcdFx0ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKGNydGMpO1xuIFx0XHRkcm1fY3J0Y192YmxhbmtfcHV0KGNydGMpO1xuIFx0fVxuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaCBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaFxuaW5kZXggZjg5M2IxZTNhNTk2ZS4uNmZkMzM2NzJkMjA2YSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaFxuKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oXG5AQCAtMTE1LDYgKzExNSw3IEBAIHZvaWQgZHJtX3ZibGFua19kaXNhYmxlX2FuZF9zYXZlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTtcbiBpbnQgZHJtX3ZibGFua19nZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpO1xuIHZvaWQgZHJtX3ZibGFua19wdXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpO1xuIHU2NCBkcm1fdmJsYW5rX2NvdW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTtcbitpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7XG4gXG4gLyogZHJtX3ZibGFua193b3JrLmMgKi9cbiBzdGF0aWMgaW5saW5lIHZvaWQgZHJtX3ZibGFua19mbHVzaF93b3JrZXIoc3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jXG5pbmRleCBmOTBmYjJkMTNlNDIzLi45Y2FjNzAxM2I0YzljIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuY1xuKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuY1xuQEAgLTEyOTcsNiArMTI5NywzMiBAQCB2b2lkIGRybV9jcnRjX3ZibGFua19wdXQoc3RydWN0IGRybV9jcnRjICpjcnRjKVxuIH1cbiBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3ZibGFua19wdXQpO1xuIFxuKy8qKlxuKyAqIGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbCAtIHdhaXQgZm9yIG9uZSB2YmxhbmtcbisgKiBAY3J0YzogRFJNIGNydGNcbisgKlxuKyAqIFRoaXMgd2FpdHMgZm9yIG9uZSB2YmxhbmsgdG8gcGFzcyBvbiBAY3J0YywgdXNpbmcgdGhlIGlycSBkcml2ZXIgaW50ZXJmYWNlcy5cbisgKiBFdmVyeSBjYWxsZXIgbXVzdCBob2xkIGEgdmJsYW5rIHJlZmVyZW5jZSBhY3Jvc3MgdGhlIGNvbXBsZXRlIHdhaXQuXG4rICpcbisgKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIG9uIGZhaWx1cmVzLlxuKyAqL1xuK2ludCBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoc3RydWN0IGRybV9jcnRjICpjcnRjKVxuK3tcbitcdHN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLVx1MDAzZWRldjtcbitcdGludCBwaXBlID0gZHJtX2NydGNfaW5kZXgoY3J0Yyk7XG4rXHRzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2YmxhbmsgPSBkcm1fY3J0Y192YmxhbmtfY3J0YyhjcnRjKTtcbitcdGludCByZXQ7XG4rXHR1NjQgbGFzdDtcbitcbitcdGxhc3QgPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSk7XG4rXG4rXHRyZXQgPSB3YWl0X2V2ZW50X3RpbWVvdXQodmJsYW5rLVx1MDAzZXF1ZXVlLFxuK1x0XHRcdFx0IGxhc3QgIT0gZHJtX3ZibGFua19jb3VudChkZXYsIHBpcGUpLFxuK1x0XHRcdFx0IG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpO1xuK1xuK1x0cmV0dXJuIHJldCA/IDAgOiAtRVRJTUVET1VUO1xuK31cbitcbiAvKipcbiAgKiBkcm1fY3J0Y193YWl0X29uZV92YmxhbmsgLSB3YWl0IGZvciBvbmUgdmJsYW5rXG4gICogQGNydGM6IERSTSBjcnRjXG5AQCAtMTMxMSwyNiArMTMzNywyMCBAQCBpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcbiB7XG4gXHRzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy1cdTAwM2VkZXY7XG4gXHRpbnQgcGlwZSA9IGRybV9jcnRjX2luZGV4KGNydGMpO1xuLVx0c3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rID0gZHJtX2NydGNfdmJsYW5rX2NydGMoY3J0Yyk7XG4gXHRpbnQgcmV0O1xuLVx0dTY0IGxhc3Q7XG4gXG4gXHRyZXQgPSBkcm1fdmJsYW5rX2dldChkZXYsIHBpcGUpO1xuIFx0aWYgKGRybV9XQVJOKGRldiwgcmV0LCBcInZibGFuayBub3QgYXZhaWxhYmxlIG9uIGNydGMgJWksIHJldD0laVxcblwiLFxuIFx0XHQgICAgIHBpcGUsIHJldCkpXG4gXHRcdHJldHVybiByZXQ7XG4gXG4tXHRsYXN0ID0gZHJtX3ZibGFua19jb3VudChkZXYsIHBpcGUpO1xuLVxuLVx0cmV0ID0gd2FpdF9ldmVudF90aW1lb3V0KHZibGFuay1cdTAwM2VxdWV1ZSxcbi1cdFx0XHRcdCBsYXN0ICE9IGRybV92YmxhbmtfY291bnQoZGV2LCBwaXBlKSxcbi1cdFx0XHRcdCBtc2Vjc190b19qaWZmaWVzKDEwMDApKTtcbitcdHJldCA9IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTtcbiBcbi1cdGRybV9XQVJOKGRldiwgcmV0ID09IDAsIFwidmJsYW5rIHdhaXQgdGltZWQgb3V0IG9uIGNydGMgJWlcXG5cIiwgcGlwZSk7XG4rXHRkcm1fV0FSTihkZXYsIHJldCA9PSAtRVRJTUVET1VULCBcInZibGFuayB3YWl0IHRpbWVkIG91dCBvbiBjcnRjICVpXFxuXCIsIHBpcGUpO1xuIFxuIFx0ZHJtX3ZibGFua19wdXQoZGV2LCBwaXBlKTtcbiBcbi1cdHJldHVybiByZXQgPyAwIDogLUVUSU1FRE9VVDtcbitcdHJldHVybiByZXQ7XG4gfVxuIEVYUE9SVF9TWU1CT0woZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKTtcbiBcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDAxOjE0OjAwLjU5NTc1NzAwM1oiLCJTZXEiOjQ1LCJOZXN0aW5nIjozLCJUeXBlIjoibGxtIiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4MzczNjYwMzEzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlJlZmFjdG9yaW5nIHRoZSBWYmxhbmsgV2FpdCBQYXRoKipcblxuT2theSwgc28gSSd2ZSBiZWVuIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCwgYW5kIGl0IGxvb2tzIGxpa2UgYSBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIHJlZmFjdG9yaW5nIG9mIHRoZSB2Ymxhbmsgd2FpdGluZyBtZWNoYW5pc20gd2l0aGluIHRoZSBEUk0gY29yZS4gQmFzaWNhbGx5LCB3aGF0J3MgaGFwcGVuaW5nIGlzIGEgZnVuY3Rpb24sIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCwgaXMgYmVpbmcgc3RyZWFtbGluZWQgdG8gYXZvaWQgcmVkdW5kYW50IGNhbGxzIHRvIGBkcm1fdmJsYW5rX2dldGAgYW5kIGBkcm1fdmJsYW5rX3B1dGAuIEkgY2FuIHNlZSB0aGUgbG9naWM7IGl0J3MgYWJvdXQgb3B0aW1pemluZyByZWZlcmVuY2UgY291bnRpbmcuXG5cblRoZSBtYWluIGNoYW5nZSBpcyB0aGUgaW50cm9kdWN0aW9uIG9mIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgLiBUaGlzIG5ldyBpbnRlcm5hbCBmdW5jdGlvbiBpbiBgZHJtX3ZibGFuay5jYCBpcyB0aGUga2V5LiBUaGUgZXhpc3RpbmcgZnVuY3Rpb24sIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgLCBvcmlnaW5hbGx5IGNvbnRhaW5lZCBhIGBkcm1fdmJsYW5rX2dldGAgY2FsbCBidXQgbm93LCB0aGUgY29kZSBub3cgZ2V0cyBhIHJlZmVyZW5jZSBiZWZvcmUgY2FsbGluZyB0aGUgbmV3IGludGVybmFsIGZ1bmN0aW9uLiBUaGlzIG5ldyBpbnRlcm5hbCBmdW5jdGlvbiBhc3N1bWVzIHRoZSBjYWxsZXIgYWxyZWFkeSBob2xkcyB0aGUgbmVjZXNzYXJ5IHJlZmVyZW5jZSwgc2tpcHBpbmcgdGhlIGdldC9wdXQgY2FsbHMgd2l0aGluIGl0c2VsZi4gVGhpcyBpcyBnb29kOyB3ZSBkb24ndCB3YW50IHRvIG92ZXItcmVsZWFzZSBvciBkb3VibGUgcmVsZWFzZS5cblxuRXNzZW50aWFsbHksIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgIGlzIGEgaGVscGVyIGZ1bmN0aW9uIHRoYXQgdGFrZXMgdGhlIGJ1cmRlbiBvZiB0aGUgcmVmZXJlbmNlIGNvdW50aW5nIGZyb20gdGhlIHB1YmxpYyBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYC4gSXQgc2ltcGxpZmllcyB0aGUgY29kZSBwYXRoIGJ5IGFsbG93aW5nIGEgY2FsbGVyIHRvIHByb3ZpZGUgdGhlIHJlZmVyZW5jZSBpZiBpdCBoYXMgaXQuIFRoZSBvbGQgZnVuY3Rpb24gYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AgY29udGludWVzIHRvIG1hbmFnZSB0aGUgcmVmZXJlbmNlLlxuXG5HaXZlbiB0aGUgbmF0dXJlIG9mIHRoZSBjaGFuZ2VzLCBJJ20gY29tZm9ydGFibGUgc2F5aW5nIHRoZXJlJ3Mgbm8gcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSBiZWluZyBleHBvc2VkIGhlcmUuIFdlJ3JlIGRlYWxpbmcgd2l0aCByZWZlcmVuY2UgY291bnRpbmcgYW5kIGNvbnRyb2wgZmxvdyDigJMgbm90IHdpdGggbmV3bHkgaW50cm9kdWNlZCBkYXRhIHN0cnVjdHVyZXMsIGFsbG9jYXRpb25zLCBvciBwb3RlbnRpYWxseSB1bnNhZmUgbWVtb3J5IGFjY2Vzc2VzLiBUaGlzIGlzbid0IGEgc2l0dWF0aW9uIHdoZXJlIEtNU0FOIChLZXJuZWwgTWVtb3J5IFNhbml0aXplcikgaXMgbmVlZGVkLiBLQVNBTiAoS2VybmVsIEFkZHJlc3MgU2FuaXRpemVyKSBhbmQgTE9DS0RFUCBzaG91bGQgYmUgbW9yZSB0aGFuIHN1ZmZpY2llbnQgdG8gY2F0Y2ggYW55IHN1YnRsZSBpc3N1ZXMgbGlrZSB1c2UtYWZ0ZXItZnJlZSBzY2VuYXJpb3MgaWYgdGhlIHJlZmVyZW5jZSBjb3VudGluZyBnb2VzIHdyb25nLiBJIGNhbiBzZWUgbm8gY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgb3IgYm91bmRzIGNoZWNrcyBoZXJlLlxuXG5JJ20gZ29pbmcgdG8gZG91YmxlLWNoZWNrIHRoZSBkaWZmIHRvIGNvbmZpcm0uIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgIHdpbGwgYmUgcmV0dXJuaW5nIGAwYCBvbiBzdWNjZXNzIGFuZCBgLUVUSU1FRE9VVGAgb24gZmFpbHVyZS4gYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2Agc2ltcGx5IHBhc3NlcyBiYWNrIHRoZSByZXR1cm4gY29kZSBmcm9tIHRoYXQgaW50ZXJuYWwgZnVuY3Rpb24uIEl0J3MgYSBjbGVhbiBzZXBhcmF0aW9uIG9mIGNvbmNlcm5zOiBjb250cm9sIGZsb3cgYW5kIHJlZmNvdW50aW5nLlxuXG5CYXNlZCBvbiB0aGlzIGFuYWx5c2lzLCBJJ20gc2V0dGluZyBgTmVlZHNLTVNBTj1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxNDYsIk91dHB1dFRva2VucyI6MTkxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDE0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMDE6MTQ6MDguOTY5NDI2NDM2WiIsIlNlcSI6NDYsIk5lc3RpbmciOjMsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTg1NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZWZhY3RvcnMgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AgYnkgZXh0cmFjdGluZyBpdHMgY29yZSB3YWl0aW5nIGxvZ2ljIGludG8gYSBuZXcgaW50ZXJuYWwgZnVuY3Rpb24gYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAuIFRoaXMgYWxsb3dzIGNhbGxlcnMgbGlrZSBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgdGhhdCBhbHJlYWR5IGhvbGQgYSB2YmxhbmsgcmVmZXJlbmNlIHRvIHdhaXQgd2l0aG91dCBhY3F1aXJpbmcgYW5kIHJlbGVhc2luZyB0aGUgcmVmZXJlbmNlIGFnYWluLiBUaGUgY2hhbmdlcyBhcmUgcHVyZWx5IHJlbGF0ZWQgdG8gY29udHJvbCBmbG93LCByZWZlcmVuY2UgY291bnRpbmcsIGFuZCB3YWl0IHF1ZXVlcy4gVGhlcmUgYXJlIG5vIG5ldyBkYXRhIHN0cnVjdHVyZXMgYWxsb2NhdGVkLCBubyBzdHJ1Y3R1cmVzIGNvcGllZCB0byB1c2VyIHNwYWNlLCBhbmQgbm8gdW5pbml0aWFsaXplZCBtZW1vcnkgcmlza3MgaW50cm9kdWNlZC4gQW55IHBvdGVudGlhbCBidWdzIGludHJvZHVjZWQgYnkgdGhpcyBwYXRjaCAoc3VjaCBhcyB1c2UtYWZ0ZXItZnJlZSBkdWUgdG8gaW5jb3JyZWN0IHJlZmVyZW5jZSBjb3VudGluZykgd291bGQgYmUgY2F1Z2h0IGJ5IEtBU0FOIG9yIHN0YW5kYXJkIGtlcm5lbCBkZWJ1Z2dpbmcgdG9vbHMuIFRoZXJlZm9yZSwgYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCBuZWNlc3NhcnkuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVmYWN0b3JzIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIGJ5IGV4dHJhY3RpbmcgaXRzIGNvcmUgd2FpdGluZyBsb2dpYyBpbnRvIGEgbmV3IGludGVybmFsIGZ1bmN0aW9uIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgLiBUaGlzIGFsbG93cyBjYWxsZXJzIGxpa2UgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIHRoYXQgYWxyZWFkeSBob2xkIGEgdmJsYW5rIHJlZmVyZW5jZSB0byB3YWl0IHdpdGhvdXQgYWNxdWlyaW5nIGFuZCByZWxlYXNpbmcgdGhlIHJlZmVyZW5jZSBhZ2Fpbi4gVGhlIGNoYW5nZXMgYXJlIHB1cmVseSByZWxhdGVkIHRvIGNvbnRyb2wgZmxvdywgcmVmZXJlbmNlIGNvdW50aW5nLCBhbmQgd2FpdCBxdWV1ZXMuIFRoZXJlIGFyZSBubyBuZXcgZGF0YSBzdHJ1Y3R1cmVzIGFsbG9jYXRlZCwgbm8gc3RydWN0dXJlcyBjb3BpZWQgdG8gdXNlciBzcGFjZSwgYW5kIG5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJpc2tzIGludHJvZHVjZWQuIEFueSBwb3RlbnRpYWwgYnVncyBpbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2ggKHN1Y2ggYXMgdXNlLWFmdGVyLWZyZWUgZHVlIHRvIGluY29ycmVjdCByZWZlcmVuY2UgY291bnRpbmcpIHdvdWxkIGJlIGNhdWdodCBieSBLQVNBTiBvciBzdGFuZGFyZCBrZXJuZWwgZGVidWdnaW5nIHRvb2xzLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgbmVjZXNzYXJ5LlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowz6lpf[1] Phase: Succeeded StartedAt: 2026-08-11 01:14:20 +0000 UTC FinishedAt: 2026-08-11 01:14:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6lpf[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-11 01:14:20 +0000 UTC FinishedAt: 2026-08-11 01:14:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6lpf[2] Phase: Succeeded StartedAt: 2026-08-11 01:14:20 +0000 UTC FinishedAt: 2026-08-11 05:06:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-11 01:14:20 +0000 UTC FinishedAt: 2026-08-11 05:06:13 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-11 01:14:20 +0000 UTC FinishedAt: 2026-08-11 01:14:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-11 01:14:20 +0000 UTC FinishedAt: 2026-08-11 01:14:25 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowz6lpf/series-workflowz6lpf-convert-artifact-3331467836/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-11 01:14:31 +0000 UTC FinishedAt: 2026-08-11 01:38:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-11 01:14:31 +0000 UTC FinishedAt: 2026-08-11 01:38: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:*cf835974-1bea-4ce0-8d1c-cdb8904a04a1,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-workflowz6lpf/series-workflowz6lpf-convert-artifact-3331467836/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": "0eda22f7-e328-4bff-8908-ab4983a1f57d", "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-workflowz6lpf/series-workflowz6lpf-build-action-1381415786/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-11 01:14:31 +0000 UTC FinishedAt: 2026-08-11 01:38: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:*cf835974-1bea-4ce0-8d1c-cdb8904a04a1,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-workflowz6lpf/series-workflowz6lpf-convert-artifact-3331467836/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": "0eda22f7-e328-4bff-8908-ab4983a1f57d", "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-workflowz6lpf/series-workflowz6lpf-build-action-1381415786/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-11 01:38:10 +0000 UTC FinishedAt: 2026-08-11 01:38:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-11 01:38:10 +0000 UTC FinishedAt: 2026-08-11 01:38:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-11 01:38:10 +0000 UTC FinishedAt: 2026-08-11 01:38:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-11 01:38:10 +0000 UTC FinishedAt: 2026-08-11 01:38:15 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowz6lpf/series-workflowz6lpf-convert-artifact-3268616315/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-11 01:38:20 +0000 UTC FinishedAt: 2026-08-11 01:40:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-11 01:38:20 +0000 UTC FinishedAt: 2026-08-11 01:40:33 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*0eda22f7-e328-4bff-8908-ab4983a1f57d,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-workflowz6lpf/series-workflowz6lpf-build-action-1381415786/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-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-11 01:40:43 +0000 UTC FinishedAt: 2026-08-11 01:40:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-11 01:40:43 +0000 UTC FinishedAt: 2026-08-11 01:40:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-11 01:40:43 +0000 UTC FinishedAt: 2026-08-11 01:59:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-11 01:40:43 +0000 UTC FinishedAt: 2026-08-11 01:59:13 +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:*cf835974-1bea-4ce0-8d1c-cdb8904a04a1,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-workflowz6lpf/series-workflowz6lpf-convert-artifact-3268616315/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": "af0d4cda-2a1a-4406-9318-38658269e711", "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-workflowz6lpf/series-workflowz6lpf-build-action-756126879/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-11 01:40:43 +0000 UTC FinishedAt: 2026-08-11 01:59:03 +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:*cf835974-1bea-4ce0-8d1c-cdb8904a04a1,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-workflowz6lpf/series-workflowz6lpf-convert-artifact-3268616315/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": "af0d4cda-2a1a-4406-9318-38658269e711", "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-workflowz6lpf/series-workflowz6lpf-build-action-756126879/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-11 01:59:13 +0000 UTC FinishedAt: 2026-08-11 01:59:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-11 01:59:13 +0000 UTC FinishedAt: 2026-08-11 01:59:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-11 01:59:13 +0000 UTC FinishedAt: 2026-08-11 02:01:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-11 01:59:13 +0000 UTC FinishedAt: 2026-08-11 02:01:08 +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:*af0d4cda-2a1a-4406-9318-38658269e711,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-workflowz6lpf/series-workflowz6lpf-build-action-756126879/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-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-11 02:01:18 +0000 UTC FinishedAt: 2026-08-11 05:06:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-11 02:01:18 +0000 UTC FinishedAt: 2026-08-11 05:06:13 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"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:*0eda22f7-e328-4bff-8908-ab4983a1f57d,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*af0d4cda-2a1a-4406-9318-38658269e711,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-workflowz6lpf/series-workflowz6lpf-build-action-1381415786/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-workflowz6lpf/series-workflowz6lpf-build-action-756126879/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-11 02:01:18 +0000 UTC FinishedAt: 2026-08-11 02:01:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-11 02:01:18 +0000 UTC FinishedAt: 2026-08-11 02:01:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"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-workflowz6lpf/series-workflowz6lpf-convert-artifact-3296507508/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-11 02:01:18 +0000 UTC FinishedAt: 2026-08-11 02:01:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-11 02:01:18 +0000 UTC FinishedAt: 2026-08-11 02:01:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-11 02:01:18 +0000 UTC FinishedAt: 2026-08-11 02:01:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-11 02:01:28 +0000 UTC FinishedAt: 2026-08-11 05:06:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowz6lpf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"3a6e4ca1-6efd-4128-bc62-1793fc793b0c","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-11 02:01:28 +0000 UTC FinishedAt: 2026-08-11 05:06:03 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*0eda22f7-e328-4bff-8908-ab4983a1f57d,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*af0d4cda-2a1a-4406-9318-38658269e711,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-workflowz6lpf/series-workflowz6lpf-build-action-1381415786/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-workflowz6lpf/series-workflowz6lpf-build-action-756126879/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-workflowz6lpf/series-workflowz6lpf-convert-artifact-3296507508/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,}