Name: series-workflowj54lh Phase: Succeeded StartedAt: 2026-07-27 19:54:37 +0000 UTC FinishedAt: 2026-07-27 22:27:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj54lh[0] Phase: Succeeded StartedAt: 2026-07-27 19:54:37 +0000 UTC FinishedAt: 2026-07-27 20:11:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj54lh[0].run-triage Phase: Succeeded StartedAt: 2026-07-27 19:54:37 +0000 UTC FinishedAt: 2026-07-27 20:11:20 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "STMMAC_ETH", "STMMAC_PCI", "STMMAC_SELFTESTS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "STMMAC_ETH", "STMMAC_PCI", "STMMAC_SELFTESTS" ], "series_id": "1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "phylink_pcs_loopback", "stmmac_selftest_run" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIwOjA5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NUTU1BQ19FVEgmIzM0OywKICAgICYjMzQ7U1RNTUFDX1BDSSYjMzQ7LAogICAgJiMzNDtTVE1NQUNfU0VMRlRFU1RTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cGh5bGlua19wY3NfbG9vcGJhY2smIzM0OywKICAgICYjMzQ7c3RtbWFjX3NlbGZ0ZXN0X3J1biYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGxvb3BiYWNrIHN1cHBvcnQgdG8gdGhlIHN0bW1hYyBpbnRlZ3JhdGVkIFBDUyBhbmQgcGh5bGluaywgd2hpY2ggaXMgdXRpbGl6ZWQgYnkgdGhlIHN0bW1hYyBldGh0b29sIHNlbGZ0ZXN0cy4gVGhpcyBjb2RlIGlzIHJlYWNoYWJsZSB2aWEgdGhlIFNJT0NFVEhUT09MIGlvY3RsIHdpdGggdGhlIEVUSFRPT0xfVEVTVCBjb21tYW5kLiBTeXprYWxsZXIgY2FuIHRyaWdnZXIgdGhpcyBieSBpbmplY3RpbmcgYSB2aXJ0dWFsIFBDSSBzdG1tYWMgZGV2aWNlIHVzaW5nIHN5el9wY2lfZGV2aWNlX2FkZCBhbmQgY2FsbGluZyBldGh0b29sIG9uIHRoZSByZXN1bHRpbmcgbmV0ZGV2LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIwOjA5PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZGVlMjhkN2FhMDA0MjgxZDNlMGFmMjNkOGVlYjAzNGU0ZDA2MGUwYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVsIDI3IDIwOjA5OjM4IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY3MuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY3MuY1xuaW5kZXggZGYzN2FmNWFiODM3YWYuLjkwYTIxYTJmN2U4NzMxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3Bjcy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNzLmNcbkBAIC0xNjgsNiAmIzQzOzE2OCwyMiBAQCBzdGF0aWMgdm9pZCBkd21hY19pbnRlZ3JhdGVkX3Bjc19hbl9yZXN0YXJ0KHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzKVxuIFx0fVxuIH1cbiBcbiYjNDM7c3RhdGljIGludCBkd21hY19pbnRlZ3JhdGVkX3Bjc19sb29wYmFjayhzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgYm9vbCBlbmFibGUpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3Qgc3RtbWFjX3BjcyAqc3BjcyA9IHBoeWxpbmtfcGNzX3RvX3N0bW1hY19wY3MocGNzKTtcbiYjNDM7XHR2b2lkIF9faW9tZW0gKmFuX2NvbnRyb2wgPSBzcGNzLVx1MDAzZWJhc2UgJiM0MzsgR01BQ19BTl9DVFJMKDApO1xuJiM0MztcdHUzMiBjdHJsO1xuJiM0MztcbiYjNDM7XHRjdHJsID0gcmVhZGwoYW5fY29udHJvbCk7XG4mIzQzO1x0aWYgKGVuYWJsZSlcbiYjNDM7XHRcdGN0cmwgfD0gR01BQ19BTl9DVFJMX0VMRTtcbiYjNDM7XHRlbHNlXG4mIzQzO1x0XHRjdHJsIFx1MDAyNj0gfkdNQUNfQU5fQ1RSTF9FTEU7XG4mIzQzO1x0d3JpdGVsKGN0cmwsIGFuX2NvbnRyb2wpO1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gMDtcbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgY29uc3Qgc3RydWN0IHBoeWxpbmtfcGNzX29wcyBkd21hY19pbnRlZ3JhdGVkX3Bjc19vcHMgPSB7XG4gXHQucGNzX2luYmFuZF9jYXBzID0gZHdtYWNfaW50ZWdyYXRlZF9wY3NfaW5iYW5kX2NhcHMsXG4gXHQucGNzX2VuYWJsZSA9IGR3bWFjX2ludGVncmF0ZWRfcGNzX2VuYWJsZSxcbkBAIC0xNzUsNiAmIzQzOzE5MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5bGlua19wY3Nfb3BzIGR3bWFjX2ludGVncmF0ZWRfcGNzX29wcyA9IHtcbiBcdC5wY3NfZ2V0X3N0YXRlID0gZHdtYWNfaW50ZWdyYXRlZF9wY3NfZ2V0X3N0YXRlLFxuIFx0LnBjc19jb25maWcgPSBkd21hY19pbnRlZ3JhdGVkX3Bjc19jb25maWcsXG4gXHQucGNzX2FuX3Jlc3RhcnQgPSBkd21hY19pbnRlZ3JhdGVkX3Bjc19hbl9yZXN0YXJ0LFxuJiM0MztcdC5wY3NfbG9vcGJhY2sgPSBkd21hY19pbnRlZ3JhdGVkX3Bjc19sb29wYmFjayxcbiB9O1xuIFxuIHZvaWQgc3RtbWFjX2ludGVncmF0ZWRfcGNzX2lycShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHUzMiBzdGF0dXMsXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3NlbGZ0ZXN0cy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3NlbGZ0ZXN0cy5jXG5pbmRleCAyOWU4MjRiZDkwY2E2Yi4uNzdhNDU3YjJmYTVjZjcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfc2VsZnRlc3RzLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19zZWxmdGVzdHMuY1xuQEAgLTE5LDYgJiM0MzsxOSw3IEBAXG4gI2luY2x1ZGUgXHUwMDNjbmV0L3VkcC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbmV0L3RjX2FjdC90Y19nYWN0LmhcdTAwM2VcbiAjaW5jbHVkZSBcJiMzNDtzdG1tYWMuaFwmIzM0O1xuJiM0MzsjaW5jbHVkZSBcJiMzNDtzdG1tYWNfcGNzLmhcJiMzNDtcbiBcbiBzdHJ1Y3Qgc3RtbWFjaGRyIHtcbiBcdF9fYmUzMiB2ZXJzaW9uO1xuQEAgLTM3NCwyMyAmIzQzOzM3NSw1MSBAQCBzdGF0aWMgaW50IHN0bW1hY190ZXN0X21hY19sb29wYmFjayhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG4gXHRyZXR1cm4gX19zdG1tYWNfdGVzdF9sb29wYmFjayhwcml2LCBcdTAwMjZhdHRyKTtcbiB9XG4gXG4mIzQzO3N0YXRpYyBzdHJ1Y3QgcGh5bGlua19wY3MgKnN0bW1hY19zZWxmdGVzdF9nZXRfcGNzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbiYjNDM7e1xuJiM0MztcdC8qIFRyeSBnbHVlIGRyaXZlciYjMzk7cyBQQ1MgZmlyc3QsIHRoZW4gdGhlIGludGVncmF0ZWQgUENTLiAqL1xuJiM0MztcdGlmIChwcml2LVx1MDAzZWh3LVx1MDAzZXBoeWxpbmtfcGNzKVxuJiM0MztcdFx0cmV0dXJuIHByaXYtXHUwMDNlaHctXHUwMDNlcGh5bGlua19wY3M7XG4mIzQzO1xuJiM0MztcdGlmIChwcml2LVx1MDAzZWludGVncmF0ZWRfcGNzKVxuJiM0MztcdFx0cmV0dXJuIFx1MDAyNnByaXYtXHUwMDNlaW50ZWdyYXRlZF9wY3MtXHUwMDNlcGNzO1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gTlVMTDtcbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgaW50IHN0bW1hY190ZXN0X3BoeV9sb29wYmFjayhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG4ge1xuIFx0c3RydWN0IHN0bW1hY19wYWNrZXRfYXR0cnMgYXR0ciA9IHsgfTtcbiYjNDM7XHRzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcztcbiBcdGludCByZXQ7XG4gXG4tXHRpZiAoIXByaXYtXHUwMDNlZGV2LVx1MDAzZXBoeWRldilcbi1cdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuJiM0MztcdGlmIChwcml2LVx1MDAzZWRldi1cdTAwM2VwaHlkZXYpIHtcbiYjNDM7XHRcdHJldCA9IHBoeV9sb29wYmFjayhwcml2LVx1MDAzZWRldi1cdTAwM2VwaHlkZXYsIHRydWUsIDApO1xuJiM0MztcdFx0aWYgKHJldClcbiYjNDM7XHRcdFx0cmV0dXJuIHJldDtcbiBcbi1cdHJldCA9IHBoeV9sb29wYmFjayhwcml2LVx1MDAzZWRldi1cdTAwM2VwaHlkZXYsIHRydWUsIDApO1xuLVx0aWYgKHJldClcbiYjNDM7XHRcdGF0dHIuZHN0ID0gcHJpdi1cdTAwM2VkZXYtXHUwMDNlZGV2X2FkZHI7XG4mIzQzO1x0XHRyZXQgPSBfX3N0bW1hY190ZXN0X2xvb3BiYWNrKHByaXYsIFx1MDAyNmF0dHIpO1xuJiM0MztcbiYjNDM7XHRcdHBoeV9sb29wYmFjayhwcml2LVx1MDAzZWRldi1cdTAwM2VwaHlkZXYsIGZhbHNlLCAwKTtcbiBcdFx0cmV0dXJuIHJldDtcbiYjNDM7XHR9XG4gXG4tXHRhdHRyLmRzdCA9IHByaXYtXHUwMDNlZGV2LVx1MDAzZWRldl9hZGRyO1xuLVx0cmV0ID0gX19zdG1tYWNfdGVzdF9sb29wYmFjayhwcml2LCBcdTAwMjZhdHRyKTtcbiYjNDM7XHQvKiBVc2UgUENTIGxvb3BiYWNrIGZvciBpbnRlcmZhY2VzIHdpdGhvdXQgYW4gZXh0ZXJuYWwgUEhZLiAqL1xuJiM0MztcdHBjcyA9IHN0bW1hY19zZWxmdGVzdF9nZXRfcGNzKHByaXYpO1xuJiM0MztcdGlmIChwY3MpIHtcbiYjNDM7XHRcdHJldCA9IHBoeWxpbmtfcGNzX2xvb3BiYWNrKHBjcywgdHJ1ZSk7XG4mIzQzO1x0XHRpZiAocmV0KVxuJiM0MztcdFx0XHRyZXR1cm4gcmV0O1xuIFxuLVx0cGh5X2xvb3BiYWNrKHByaXYtXHUwMDNlZGV2LVx1MDAzZXBoeWRldiwgZmFsc2UsIDApO1xuLVx0cmV0dXJuIHJldDtcbiYjNDM7XHRcdGF0dHIuZHN0ID0gcHJpdi1cdTAwM2VkZXYtXHUwMDNlZGV2X2FkZHI7XG4mIzQzO1x0XHRyZXQgPSBfX3N0bW1hY190ZXN0X2xvb3BiYWNrKHByaXYsIFx1MDAyNmF0dHIpO1xuJiM0MztcbiYjNDM7XHRcdHBoeWxpbmtfcGNzX2xvb3BiYWNrKHBjcywgZmFsc2UpO1xuJiM0MztcdFx0cmV0dXJuIHJldDtcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdHJldHVybiAtRU9QTk9UU1VQUDtcbiB9XG4gXG4gc3RhdGljIGludCBzdG1tYWNfdGVzdF9tbWMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuQEAgLTE5ODYsNiAmIzQzOzIwMTUsOSBAQCB2b2lkIHN0bW1hY19zZWxmdGVzdF9ydW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbiBcdFx0XHRyZXQgPSAtRU9QTk9UU1VQUDtcbiBcdFx0XHRpZiAoZGV2LVx1MDAzZXBoeWRldilcbiBcdFx0XHRcdHJldCA9IHBoeV9sb29wYmFjayhkZXYtXHUwMDNlcGh5ZGV2LCB0cnVlLCAwKTtcbiYjNDM7XHRcdFx0ZWxzZVxuJiM0MztcdFx0XHRcdHJldCA9IHBoeWxpbmtfcGNzX2xvb3BiYWNrKHN0bW1hY19zZWxmdGVzdF9nZXRfcGNzKHByaXYpLFxuJiM0MztcdFx0XHRcdFx0XHRcdCAgIHRydWUpO1xuIFx0XHRcdGlmICghcmV0KVxuIFx0XHRcdFx0YnJlYWs7XG4gXHRcdFx0ZmFsbHRocm91Z2g7XG5AQCAtMjAxOSw2ICYjNDM7MjA1MSw5IEBAIHZvaWQgc3RtbWFjX3NlbGZ0ZXN0X3J1bihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFx0XHRcdHJldCA9IC1FT1BOT1RTVVBQO1xuIFx0XHRcdGlmIChkZXYtXHUwMDNlcGh5ZGV2KVxuIFx0XHRcdFx0cmV0ID0gcGh5X2xvb3BiYWNrKGRldi1cdTAwM2VwaHlkZXYsIGZhbHNlLCAwKTtcbiYjNDM7XHRcdFx0ZWxzZVxuJiM0MztcdFx0XHRcdHJldCA9IHBoeWxpbmtfcGNzX2xvb3BiYWNrKHN0bW1hY19zZWxmdGVzdF9nZXRfcGNzKHByaXYpLFxuJiM0MztcdFx0XHRcdFx0XHRcdCAgIGZhbHNlKTtcbiBcdFx0XHRpZiAoIXJldClcbiBcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdGZhbGx0aHJvdWdoO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jXG5pbmRleCA1OWRmZTM1YWZhNTRmYy4uNjkyNDJjYWZmYWVmNTEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jXG5AQCAtOTk3LDYgJiM0Mzs5OTcsMjUgQEAgaW50IHBoeWxpbmtfcGNzX3ByZV9pbml0KHN0cnVjdCBwaHlsaW5rICpwbCwgc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpXG4gfVxuIEVYUE9SVF9TWU1CT0xfR1BMKHBoeWxpbmtfcGNzX3ByZV9pbml0KTtcbiBcbiYjNDM7LyoqXG4mIzQzOyAqIHBoeWxpbmtfcGNzX2xvb3BiYWNrKCkgLSBFbmFibGUgb3IgZGlzYWJsZSBsb29wYmFjayBhdCB0aGUgUENTXG4mIzQzOyAqIEBwY3M6IGEgcG9pbnRlciB0byBhIFx1MDAyNnN0cnVjdCBwaHlsaW5rX3Bjcy5cbiYjNDM7ICogQGVuYWJsZTogdHJ1ZSB0byBlbmFibGUgbG9vcGJhY2ssIGZhbHNlIHRvIGRpc2FibGVcbiYjNDM7ICpcbiYjNDM7ICogRW5hYmxlIG9yIGRpc2FibGUgbG9vcGJhY2sgbW9kZSBhdCB0aGUgUENTIGxldmVsLiBUaGlzIGlzIHVzZWQgYnkgTUFDXG4mIzQzOyAqIGRyaXZlcnMgZm9yIHNlbGZ0ZXN0IHB1cnBvc2VzIHdoZW4gbm8gZXh0ZXJuYWwgUEhZIGlzIHByZXNlbnQuXG4mIzQzOyAqXG4mIzQzOyAqIFJldHVybnMgMCBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuXG4mIzQzOyAqL1xuJiM0MztpbnQgcGh5bGlua19wY3NfbG9vcGJhY2soc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIGJvb2wgZW5hYmxlKVxuJiM0Mzt7XG4mIzQzO1x0aWYgKHBjcyBcdTAwMjZcdTAwMjYgcGNzLVx1MDAzZW9wcy1cdTAwM2VwY3NfbG9vcGJhY2spXG4mIzQzO1x0XHRyZXR1cm4gcGNzLVx1MDAzZW9wcy1cdTAwM2VwY3NfbG9vcGJhY2socGNzLCBlbmFibGUpO1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4mIzQzO31cbiYjNDM7RVhQT1JUX1NZTUJPTF9HUEwocGh5bGlua19wY3NfbG9vcGJhY2spO1xuJiM0MztcbiBzdGF0aWMgdm9pZCBwaHlsaW5rX21hY19jb25maWcoc3RydWN0IHBoeWxpbmsgKnBsLFxuIFx0XHRcdCAgICAgICBjb25zdCBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSlcbiB7XG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9waHlsaW5rLmggYi9pbmNsdWRlL2xpbnV4L3BoeWxpbmsuaFxuaW5kZXggMmJjMGRiM2Q1MmFjOGQuLjY2YzcwMTZkNGFjZGNiIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9waHlsaW5rLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvcGh5bGluay5oXG5AQCAtNTE4LDYgJiM0Mzs1MTgsNyBAQCBzdHJ1Y3QgcGh5bGlua19wY3Mge1xuICAqXHRcdCAgICB0aGUgTUFDLlxuICAqIEBwY3NfcHJlX2luaXQ6IGNvbmZpZ3VyZSBQQ1MgY29tcG9uZW50cyBuZWNlc3NhcnkgZm9yIE1BQyBoYXJkd2FyZVxuICAqICAgICAgICAgICAgICAgIGluaXRpYWxpemF0aW9uIGUuZy4gUlggY2xvY2sgZm9yIHN0bW1hYy5cbiYjNDM7ICogQHBjc19sb29wYmFjazogZW5hYmxlL2Rpc2FibGUgbG9vcGJhY2sgbW9kZSBhdCB0aGUgUENTLlxuICAqL1xuIHN0cnVjdCBwaHlsaW5rX3Bjc19vcHMge1xuIFx0aW50ICgqcGNzX3ZhbGlkYXRlKShzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgdW5zaWduZWQgbG9uZyAqc3VwcG9ydGVkLFxuQEAgLTU0Miw2ICYjNDM7NTQzLDcgQEAgc3RydWN0IHBoeWxpbmtfcGNzX29wcyB7XG4gXHR2b2lkICgqcGNzX2Rpc2FibGVfZWVlKShzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcyk7XG4gXHR2b2lkICgqcGNzX2VuYWJsZV9lZWUpKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzKTtcbiBcdGludCAoKnBjc19wcmVfaW5pdCkoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpO1xuJiM0MztcdGludCAoKnBjc19sb29wYmFjaykoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIGJvb2wgZW5hYmxlKTtcbiB9O1xuIFxuICNpZiAwIC8qIEZvciBrZXJuZWwtZG9jIHB1cnBvc2VzIG9ubHkuICovXG5AQCAtNzE3LDggJiM0Mzs3MTksMjIgQEAgdm9pZCBwY3NfZW5hYmxlX2VlZShzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcyk7XG4gICovXG4gaW50IHBjc19wcmVfaW5pdChzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcyk7XG4gXG4mIzQzOy8qKlxuJiM0MzsgKiBwY3NfbG9vcGJhY2soKSAtIEVuYWJsZSBvciBkaXNhYmxlIGxvb3BiYWNrIGF0IHRoZSBQQ1NcbiYjNDM7ICogQHBjczogYSBwb2ludGVyIHRvIGEgXHUwMDI2c3RydWN0IHBoeWxpbmtfcGNzLlxuJiM0MzsgKiBAZW5hYmxlOiB0cnVlIHRvIGVuYWJsZSBsb29wYmFjaywgZmFsc2UgdG8gZGlzYWJsZVxuJiM0MzsgKlxuJiM0MzsgKiBFbmFibGUgb3IgZGlzYWJsZSBsb29wYmFjayBtb2RlIGF0IHRoZSBQQ1MgbGV2ZWwuIFRoaXMgaXMgdXNlZCBieSBNQUNcbiYjNDM7ICogZHJpdmVycyBmb3Igc2VsZnRlc3QgcHVycG9zZXMgd2hlbiBubyBleHRlcm5hbCBQSFkgaXMgcHJlc2VudC5cbiYjNDM7ICpcbiYjNDM7ICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLlxuJiM0MzsgKi9cbiYjNDM7aW50IHBjc19sb29wYmFjayhzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgYm9vbCBlbmFibGUpO1xuJiM0MztcbiAjZW5kaWZcbiBcbiYjNDM7aW50IHBoeWxpbmtfcGNzX2xvb3BiYWNrKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCBib29sIGVuYWJsZSk7XG4mIzQzO1xuIHN0cnVjdCBwaHlsaW5rICpwaHlsaW5rX2NyZWF0ZShzdHJ1Y3QgcGh5bGlua19jb25maWcgKixcbiBcdFx0XHQgICAgICAgY29uc3Qgc3RydWN0IGZ3bm9kZV9oYW5kbGUgKixcbiBcdFx0XHQgICAgICAgcGh5X2ludGVyZmFjZV90LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIwOjA5PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtTVE1NQUNfRVRIJiMzNDssCiAgICAmIzM0O1NUTU1BQ19QQ0kmIzM0OywKICAgICYjMzQ7U1RNTUFDX1NFTEZURVNUUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3BoeWxpbmtfcGNzX2xvb3BiYWNrJiMzNDssCiAgICAmIzM0O3N0bW1hY19zZWxmdGVzdF9ydW4mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBsb29wYmFjayBzdXBwb3J0IHRvIHRoZSBzdG1tYWMgaW50ZWdyYXRlZCBQQ1MgYW5kIHBoeWxpbmssIHdoaWNoIGlzIHV0aWxpemVkIGJ5IHRoZSBzdG1tYWMgZXRodG9vbCBzZWxmdGVzdHMuIFRoaXMgY29kZSBpcyByZWFjaGFibGUgdmlhIHRoZSBTSU9DRVRIVE9PTCBpb2N0bCB3aXRoIHRoZSBFVEhUT09MX1RFU1QgY29tbWFuZC4gU3l6a2FsbGVyIGNhbiB0cmlnZ2VyIHRoaXMgYnkgaW5qZWN0aW5nIGEgdmlydHVhbCBQQ0kgc3RtbWFjIGRldmljZSB1c2luZyBzeXpfcGNpX2RldmljZV9hZGQgYW5kIGNhbGxpbmcgZXRodG9vbCBvbiB0aGUgcmVzdWx0aW5nIG5ldGRldi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGRlZTI4ZDdhYTAwNDI4MWQzZTBhZjIzZDhlZWIwMzRlNGQwNjBlMGIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEp1bCAyNyAyMDowOTozOCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY3MuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY3MuYwppbmRleCBkZjM3YWY1YWI4MzdhZi4uOTBhMjFhMmY3ZTg3MzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY3MuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNzLmMKQEAgLTE2OCw2ICYjNDM7MTY4LDIyIEBAIHN0YXRpYyB2b2lkIGR3bWFjX2ludGVncmF0ZWRfcGNzX2FuX3Jlc3RhcnQoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpCiAJfQogfQogCiYjNDM7c3RhdGljIGludCBkd21hY19pbnRlZ3JhdGVkX3Bjc19sb29wYmFjayhzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgYm9vbCBlbmFibGUpCiYjNDM7ewomIzQzOwlzdHJ1Y3Qgc3RtbWFjX3BjcyAqc3BjcyA9IHBoeWxpbmtfcGNzX3RvX3N0bW1hY19wY3MocGNzKTsKJiM0MzsJdm9pZCBfX2lvbWVtICphbl9jb250cm9sID0gc3Bjcy0mZ3Q7YmFzZSAmIzQzOyBHTUFDX0FOX0NUUkwoMCk7CiYjNDM7CXUzMiBjdHJsOwomIzQzOwomIzQzOwljdHJsID0gcmVhZGwoYW5fY29udHJvbCk7CiYjNDM7CWlmIChlbmFibGUpCiYjNDM7CQljdHJsIHw9IEdNQUNfQU5fQ1RSTF9FTEU7CiYjNDM7CWVsc2UKJiM0MzsJCWN0cmwgJmFtcDs9IH5HTUFDX0FOX0NUUkxfRUxFOwomIzQzOwl3cml0ZWwoY3RybCwgYW5fY29udHJvbCk7CiYjNDM7CiYjNDM7CXJldHVybiAwOwomIzQzO30KJiM0MzsKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5bGlua19wY3Nfb3BzIGR3bWFjX2ludGVncmF0ZWRfcGNzX29wcyA9IHsKIAkucGNzX2luYmFuZF9jYXBzID0gZHdtYWNfaW50ZWdyYXRlZF9wY3NfaW5iYW5kX2NhcHMsCiAJLnBjc19lbmFibGUgPSBkd21hY19pbnRlZ3JhdGVkX3Bjc19lbmFibGUsCkBAIC0xNzUsNiAmIzQzOzE5MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5bGlua19wY3Nfb3BzIGR3bWFjX2ludGVncmF0ZWRfcGNzX29wcyA9IHsKIAkucGNzX2dldF9zdGF0ZSA9IGR3bWFjX2ludGVncmF0ZWRfcGNzX2dldF9zdGF0ZSwKIAkucGNzX2NvbmZpZyA9IGR3bWFjX2ludGVncmF0ZWRfcGNzX2NvbmZpZywKIAkucGNzX2FuX3Jlc3RhcnQgPSBkd21hY19pbnRlZ3JhdGVkX3Bjc19hbl9yZXN0YXJ0LAomIzQzOwkucGNzX2xvb3BiYWNrID0gZHdtYWNfaW50ZWdyYXRlZF9wY3NfbG9vcGJhY2ssCiB9OwogCiB2b2lkIHN0bW1hY19pbnRlZ3JhdGVkX3Bjc19pcnEoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCB1MzIgc3RhdHVzLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3NlbGZ0ZXN0cy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3NlbGZ0ZXN0cy5jCmluZGV4IDI5ZTgyNGJkOTBjYTZiLi43N2E0NTdiMmZhNWNmNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3NlbGZ0ZXN0cy5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19zZWxmdGVzdHMuYwpAQCAtMTksNiAmIzQzOzE5LDcgQEAKICNpbmNsdWRlICZsdDtuZXQvdWRwLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bmV0L3RjX2FjdC90Y19nYWN0LmgmZ3Q7CiAjaW5jbHVkZSAmIzM0O3N0bW1hYy5oJiMzNDsKJiM0MzsjaW5jbHVkZSAmIzM0O3N0bW1hY19wY3MuaCYjMzQ7CiAKIHN0cnVjdCBzdG1tYWNoZHIgewogCV9fYmUzMiB2ZXJzaW9uOwpAQCAtMzc0LDIzICYjNDM7Mzc1LDUxIEBAIHN0YXRpYyBpbnQgc3RtbWFjX3Rlc3RfbWFjX2xvb3BiYWNrKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdikKIAlyZXR1cm4gX19zdG1tYWNfdGVzdF9sb29wYmFjayhwcml2LCAmYW1wO2F0dHIpOwogfQogCiYjNDM7c3RhdGljIHN0cnVjdCBwaHlsaW5rX3BjcyAqc3RtbWFjX3NlbGZ0ZXN0X2dldF9wY3Moc3RydWN0IHN0bW1hY19wcml2ICpwcml2KQomIzQzO3sKJiM0MzsJLyogVHJ5IGdsdWUgZHJpdmVyJiMzOTtzIFBDUyBmaXJzdCwgdGhlbiB0aGUgaW50ZWdyYXRlZCBQQ1MuICovCiYjNDM7CWlmIChwcml2LSZndDtody0mZ3Q7cGh5bGlua19wY3MpCiYjNDM7CQlyZXR1cm4gcHJpdi0mZ3Q7aHctJmd0O3BoeWxpbmtfcGNzOwomIzQzOwomIzQzOwlpZiAocHJpdi0mZ3Q7aW50ZWdyYXRlZF9wY3MpCiYjNDM7CQlyZXR1cm4gJmFtcDtwcml2LSZndDtpbnRlZ3JhdGVkX3Bjcy0mZ3Q7cGNzOwomIzQzOwomIzQzOwlyZXR1cm4gTlVMTDsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgaW50IHN0bW1hY190ZXN0X3BoeV9sb29wYmFjayhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpCiB7CiAJc3RydWN0IHN0bW1hY19wYWNrZXRfYXR0cnMgYXR0ciA9IHsgfTsKJiM0MzsJc3RydWN0IHBoeWxpbmtfcGNzICpwY3M7CiAJaW50IHJldDsKIAotCWlmICghcHJpdi0mZ3Q7ZGV2LSZndDtwaHlkZXYpCi0JCXJldHVybiAtRU9QTk9UU1VQUDsKJiM0MzsJaWYgKHByaXYtJmd0O2Rldi0mZ3Q7cGh5ZGV2KSB7CiYjNDM7CQlyZXQgPSBwaHlfbG9vcGJhY2socHJpdi0mZ3Q7ZGV2LSZndDtwaHlkZXYsIHRydWUsIDApOwomIzQzOwkJaWYgKHJldCkKJiM0MzsJCQlyZXR1cm4gcmV0OwogCi0JcmV0ID0gcGh5X2xvb3BiYWNrKHByaXYtJmd0O2Rldi0mZ3Q7cGh5ZGV2LCB0cnVlLCAwKTsKLQlpZiAocmV0KQomIzQzOwkJYXR0ci5kc3QgPSBwcml2LSZndDtkZXYtJmd0O2Rldl9hZGRyOwomIzQzOwkJcmV0ID0gX19zdG1tYWNfdGVzdF9sb29wYmFjayhwcml2LCAmYW1wO2F0dHIpOwomIzQzOwomIzQzOwkJcGh5X2xvb3BiYWNrKHByaXYtJmd0O2Rldi0mZ3Q7cGh5ZGV2LCBmYWxzZSwgMCk7CiAJCXJldHVybiByZXQ7CiYjNDM7CX0KIAotCWF0dHIuZHN0ID0gcHJpdi0mZ3Q7ZGV2LSZndDtkZXZfYWRkcjsKLQlyZXQgPSBfX3N0bW1hY190ZXN0X2xvb3BiYWNrKHByaXYsICZhbXA7YXR0cik7CiYjNDM7CS8qIFVzZSBQQ1MgbG9vcGJhY2sgZm9yIGludGVyZmFjZXMgd2l0aG91dCBhbiBleHRlcm5hbCBQSFkuICovCiYjNDM7CXBjcyA9IHN0bW1hY19zZWxmdGVzdF9nZXRfcGNzKHByaXYpOwomIzQzOwlpZiAocGNzKSB7CiYjNDM7CQlyZXQgPSBwaHlsaW5rX3Bjc19sb29wYmFjayhwY3MsIHRydWUpOwomIzQzOwkJaWYgKHJldCkKJiM0MzsJCQlyZXR1cm4gcmV0OwogCi0JcGh5X2xvb3BiYWNrKHByaXYtJmd0O2Rldi0mZ3Q7cGh5ZGV2LCBmYWxzZSwgMCk7Ci0JcmV0dXJuIHJldDsKJiM0MzsJCWF0dHIuZHN0ID0gcHJpdi0mZ3Q7ZGV2LSZndDtkZXZfYWRkcjsKJiM0MzsJCXJldCA9IF9fc3RtbWFjX3Rlc3RfbG9vcGJhY2socHJpdiwgJmFtcDthdHRyKTsKJiM0MzsKJiM0MzsJCXBoeWxpbmtfcGNzX2xvb3BiYWNrKHBjcywgZmFsc2UpOwomIzQzOwkJcmV0dXJuIHJldDsKJiM0MzsJfQomIzQzOwomIzQzOwlyZXR1cm4gLUVPUE5PVFNVUFA7CiB9CiAKIHN0YXRpYyBpbnQgc3RtbWFjX3Rlc3RfbW1jKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdikKQEAgLTE5ODYsNiAmIzQzOzIwMTUsOSBAQCB2b2lkIHN0bW1hY19zZWxmdGVzdF9ydW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJCXJldCA9IC1FT1BOT1RTVVBQOwogCQkJaWYgKGRldi0mZ3Q7cGh5ZGV2KQogCQkJCXJldCA9IHBoeV9sb29wYmFjayhkZXYtJmd0O3BoeWRldiwgdHJ1ZSwgMCk7CiYjNDM7CQkJZWxzZQomIzQzOwkJCQlyZXQgPSBwaHlsaW5rX3Bjc19sb29wYmFjayhzdG1tYWNfc2VsZnRlc3RfZ2V0X3Bjcyhwcml2KSwKJiM0MzsJCQkJCQkJICAgdHJ1ZSk7CiAJCQlpZiAoIXJldCkKIAkJCQlicmVhazsKIAkJCWZhbGx0aHJvdWdoOwpAQCAtMjAxOSw2ICYjNDM7MjA1MSw5IEBAIHZvaWQgc3RtbWFjX3NlbGZ0ZXN0X3J1bihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQkJcmV0ID0gLUVPUE5PVFNVUFA7CiAJCQlpZiAoZGV2LSZndDtwaHlkZXYpCiAJCQkJcmV0ID0gcGh5X2xvb3BiYWNrKGRldi0mZ3Q7cGh5ZGV2LCBmYWxzZSwgMCk7CiYjNDM7CQkJZWxzZQomIzQzOwkJCQlyZXQgPSBwaHlsaW5rX3Bjc19sb29wYmFjayhzdG1tYWNfc2VsZnRlc3RfZ2V0X3Bjcyhwcml2KSwKJiM0MzsJCQkJCQkJICAgZmFsc2UpOwogCQkJaWYgKCFyZXQpCiAJCQkJYnJlYWs7CiAJCQlmYWxsdGhyb3VnaDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jCmluZGV4IDU5ZGZlMzVhZmE1NGZjLi42OTI0MmNhZmZhZWY1MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jCkBAIC05OTcsNiAmIzQzOzk5NywyNSBAQCBpbnQgcGh5bGlua19wY3NfcHJlX2luaXQoc3RydWN0IHBoeWxpbmsgKnBsLCBzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcykKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHBoeWxpbmtfcGNzX3ByZV9pbml0KTsKIAomIzQzOy8qKgomIzQzOyAqIHBoeWxpbmtfcGNzX2xvb3BiYWNrKCkgLSBFbmFibGUgb3IgZGlzYWJsZSBsb29wYmFjayBhdCB0aGUgUENTCiYjNDM7ICogQHBjczogYSBwb2ludGVyIHRvIGEgJmFtcDtzdHJ1Y3QgcGh5bGlua19wY3MuCiYjNDM7ICogQGVuYWJsZTogdHJ1ZSB0byBlbmFibGUgbG9vcGJhY2ssIGZhbHNlIHRvIGRpc2FibGUKJiM0MzsgKgomIzQzOyAqIEVuYWJsZSBvciBkaXNhYmxlIGxvb3BiYWNrIG1vZGUgYXQgdGhlIFBDUyBsZXZlbC4gVGhpcyBpcyB1c2VkIGJ5IE1BQwomIzQzOyAqIGRyaXZlcnMgZm9yIHNlbGZ0ZXN0IHB1cnBvc2VzIHdoZW4gbm8gZXh0ZXJuYWwgUEhZIGlzIHByZXNlbnQuCiYjNDM7ICoKJiM0MzsgKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgomIzQzOyAqLwomIzQzO2ludCBwaHlsaW5rX3Bjc19sb29wYmFjayhzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgYm9vbCBlbmFibGUpCiYjNDM7ewomIzQzOwlpZiAocGNzICZhbXA7JmFtcDsgcGNzLSZndDtvcHMtJmd0O3Bjc19sb29wYmFjaykKJiM0MzsJCXJldHVybiBwY3MtJmd0O29wcy0mZ3Q7cGNzX2xvb3BiYWNrKHBjcywgZW5hYmxlKTsKJiM0MzsKJiM0MzsJcmV0dXJuIC1FT1BOT1RTVVBQOwomIzQzO30KJiM0MztFWFBPUlRfU1lNQk9MX0dQTChwaHlsaW5rX3Bjc19sb29wYmFjayk7CiYjNDM7CiBzdGF0aWMgdm9pZCBwaHlsaW5rX21hY19jb25maWcoc3RydWN0IHBoeWxpbmsgKnBsLAogCQkJICAgICAgIGNvbnN0IHN0cnVjdCBwaHlsaW5rX2xpbmtfc3RhdGUgKnN0YXRlKQogewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9waHlsaW5rLmggYi9pbmNsdWRlL2xpbnV4L3BoeWxpbmsuaAppbmRleCAyYmMwZGIzZDUyYWM4ZC4uNjZjNzAxNmQ0YWNkY2IgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcGh5bGluay5oCiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvcGh5bGluay5oCkBAIC01MTgsNiAmIzQzOzUxOCw3IEBAIHN0cnVjdCBwaHlsaW5rX3BjcyB7CiAgKgkJICAgIHRoZSBNQUMuCiAgKiBAcGNzX3ByZV9pbml0OiBjb25maWd1cmUgUENTIGNvbXBvbmVudHMgbmVjZXNzYXJ5IGZvciBNQUMgaGFyZHdhcmUKICAqICAgICAgICAgICAgICAgIGluaXRpYWxpemF0aW9uIGUuZy4gUlggY2xvY2sgZm9yIHN0bW1hYy4KJiM0MzsgKiBAcGNzX2xvb3BiYWNrOiBlbmFibGUvZGlzYWJsZSBsb29wYmFjayBtb2RlIGF0IHRoZSBQQ1MuCiAgKi8KIHN0cnVjdCBwaHlsaW5rX3Bjc19vcHMgewogCWludCAoKnBjc192YWxpZGF0ZSkoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIHVuc2lnbmVkIGxvbmcgKnN1cHBvcnRlZCwKQEAgLTU0Miw2ICYjNDM7NTQzLDcgQEAgc3RydWN0IHBoeWxpbmtfcGNzX29wcyB7CiAJdm9pZCAoKnBjc19kaXNhYmxlX2VlZSkoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpOwogCXZvaWQgKCpwY3NfZW5hYmxlX2VlZSkoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpOwogCWludCAoKnBjc19wcmVfaW5pdCkoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpOwomIzQzOwlpbnQgKCpwY3NfbG9vcGJhY2spKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCBib29sIGVuYWJsZSk7CiB9OwogCiAjaWYgMCAvKiBGb3Iga2VybmVsLWRvYyBwdXJwb3NlcyBvbmx5LiAqLwpAQCAtNzE3LDggJiM0Mzs3MTksMjIgQEAgdm9pZCBwY3NfZW5hYmxlX2VlZShzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcyk7CiAgKi8KIGludCBwY3NfcHJlX2luaXQoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpOwogCiYjNDM7LyoqCiYjNDM7ICogcGNzX2xvb3BiYWNrKCkgLSBFbmFibGUgb3IgZGlzYWJsZSBsb29wYmFjayBhdCB0aGUgUENTCiYjNDM7ICogQHBjczogYSBwb2ludGVyIHRvIGEgJmFtcDtzdHJ1Y3QgcGh5bGlua19wY3MuCiYjNDM7ICogQGVuYWJsZTogdHJ1ZSB0byBlbmFibGUgbG9vcGJhY2ssIGZhbHNlIHRvIGRpc2FibGUKJiM0MzsgKgomIzQzOyAqIEVuYWJsZSBvciBkaXNhYmxlIGxvb3BiYWNrIG1vZGUgYXQgdGhlIFBDUyBsZXZlbC4gVGhpcyBpcyB1c2VkIGJ5IE1BQwomIzQzOyAqIGRyaXZlcnMgZm9yIHNlbGZ0ZXN0IHB1cnBvc2VzIHdoZW4gbm8gZXh0ZXJuYWwgUEhZIGlzIHByZXNlbnQuCiYjNDM7ICoKJiM0MzsgKiBSZXR1cm5zIDAgb24gc3VjY2Vzcywgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCiYjNDM7ICovCiYjNDM7aW50IHBjc19sb29wYmFjayhzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgYm9vbCBlbmFibGUpOwomIzQzOwogI2VuZGlmCiAKJiM0MztpbnQgcGh5bGlua19wY3NfbG9vcGJhY2soc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIGJvb2wgZW5hYmxlKTsKJiM0MzsKIHN0cnVjdCBwaHlsaW5rICpwaHlsaW5rX2NyZWF0ZShzdHJ1Y3QgcGh5bGlua19jb25maWcgKiwKIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZndub2RlX2hhbmRsZSAqLAogCQkJICAgICAgIHBoeV9pbnRlcmZhY2VfdCwKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjA6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDQ2NgoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDY5OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFZpYWJpbGl0eSBvZiBTVE1NQUMgTG9vcGJhY2sgU3VwcG9ydCBpbiBhIFZpcnR1YWxpemVkIENvbnRleHQqKgoKT2theSwgc28gd2UmIzM5O3ZlIGdvdCBhIHBhdGNoIGhlcmUgdGhhdCBhZGRzIGxvb3BiYWNrIHN1cHBvcnQgdG8gdGhlIGBzdG1tYWNgIFBDUyBkcml2ZXIgYW5kIHBoeWxpbmssIHRvdWNoaW5nIGEgZmV3IGtleSBmaWxlczogYHN0bW1hY19wY3MuY2AsIGBzdG1tYWNfc2VsZnRlc3RzLmNgLCBgcGh5bGluay5jYCwgYW5kIGBwaHlsaW5rLmhgLiBUaGlzIGlzIGludGVyZXN0aW5nIGJlY2F1c2UgdGhlIGBzdG1tYWNgIGRyaXZlciBoYW5kbGVzIFNUTWljcm9lbGVjdHJvbmljcyYjMzk7IEV0aGVybmV0IE1BQ3MuIE15IGltbWVkaWF0ZSBxdWVzdGlvbiwgZ2l2ZW4gdGhhdCBJJiMzOTttIHdvcmtpbmcgaW4gYSBwb3RlbnRpYWxseSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgaXM6IENhbiBJIGFjdHVhbGx5ICpyZWFjaCogdGhpcyBmdW5jdGlvbmFsaXR5PwoKVHlwaWNhbGx5LCBgc3RtbWFjYCBpcyBhIHBsYXRmb3JtIGRyaXZlciwgdGlnaHRseSBjb3VwbGVkIHdpdGggc3BlY2lmaWMgU29DcyDigJMgQVJNLCBJbnRlbCBFbGtoYXJ0IExha2UsIHRoYXQgc29ydCBvZiB0aGluZy4gQnV0IHRoZXJlJiMzOTtzIHRoYXQgUENJIHdyYXBwZXIsIGBzdG1tYWNfcGNpLmNgLCB3aGljaCBzdXBwb3J0cyBzb21lIEludGVsIGFuZCBBTUQgY2hpcHMuIFNvLCBpcyB0aGVyZSBhbnkgcG9zc2liaWxpdHkgdGhhdCBRRU1VLCBteSB2aXJ0dWFsaXphdGlvbiB0b29sIG9mIGNob2ljZSwgZW11bGF0ZXMgb25lIG9mIHRoZXNlIFBDSSBkZXZpY2VzPyBBIHF1aWNrIGNoZWNrIHNob3dzIFFFTVUgc3VwcG9ydHMgdGhlIGxpa2VzIG9mIGBlMTAwMGAsIGBlMTAwMGVgLCBgcnRsODEzOWAsIGV0Yy4sIGJ1dCBub3RoaW5nIGRpcmVjdGx5IGxhYmVsZWQgYHN0bW1hY2AuCgpIbW0sIGlzIHRoZXJlIGV2ZW4gYSBwbGF0Zm9ybSAqd2l0aCogYHN0bW1hY2AgdGhhdCBRRU1VIG1pZ2h0IGVtdWxhdGU/IExldCYjMzk7cyBzZWUuLi4gQWxsd2lubmVyLCBpLk1YLCBOUENNLCBDYWRlbmNlLCBGVEdNQUMsIExBTjkxMTgsIFNNQzkxYzExMSwgU3RlbGxhcmlzLCBYR01BQy4uLiB3YWl0LCBYR01BQyAqaXMqIGEgU3lub3BzeXMgRGVzaWduV2FyZSBNQUMsIGJ1dCBpdCYjMzk7cyAxMEcsIGFuZCBgc3RtbWFjYCBpcyBmb3IgMTAvMTAwLzEwMDAuIE5vdCBxdWl0ZSB0aGUgc2FtZSB0aGluZy4KClNvLCByZWFsaXN0aWNhbGx5LCBpcyBgc3RtbWFjYCAqcHJvYmVhYmxlKiBpbiBRRU1VPyBJIGtub3cgdGhhdCwgbm9ybWFsbHksIGBzdG1tYWNgIGlzbiYjMzk7dCBhIHRhcmdldCBmb3IgZnV6emluZyB3aXRoIHN5emthbGxlciBiZWNhdXNlIGl0IG5lZWRzIHNwZWNpZmljIGhhcmR3YXJlIHRoYXQgUUVNVSBkb2VzbiYjMzk7dCBvZmZlci4gQnV0IHdhaXQsIGRpZCBzeXprYWxsZXIgZXZlbiBzdXBwb3J0IGBzdG1tYWNgPyBObywgaXQgbG9va3MgbGlrZSBzeXprYWxsZXIgc3RpY2tzIHRvIG1vcmUgc3RhbmRhcmQgc3R1ZmYgbGlrZSBgdHVuYCwgYHZldGhgLCBgdmlydGlvYCwgYGUxMDAwYCBhbmQgc28gb24sIHdoaWNoIGFyZSBhbGwgZWFzaWx5IHJlcHJvZHVjZWQuCgpNeSBjb25jbHVzaW9uIGlzIGl0JiMzOTtzIHVubGlrZWx5IHRoaXMgbG9vcGJhY2sgc3VwcG9ydCBpcyBnb2luZyB0byBiZSBlYXNpbHkgdGVzdGFibGUgaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50LiBUaGlzIGlzIHNvbWV0aGluZyB0aGF0IG5lZWRzIGEgdGFyZ2V0ZWQsIGhhcmR3YXJlLXNwZWNpZmljIHNldHVwLiBUaGUgcXVlc3Rpb24gbm93IGJlY29tZXM6IGhvdyBkbyBJIHZlcmlmeSB0aGlzIGZ1bmN0aW9uYWxpdHkgd2l0aG91dCB0aGF0PyBJcyB0aGVyZSBhIHRlc3QgYmVuY2ggdGhhdCB1c2VzIHRoZSBgc3RtbWFjYCBkcml2ZXIgdGhhdCBJIGNvdWxkIGxvb2sgYXQsIHRvIHRyeSB0byB1bmRlcnN0YW5kIGlmIHRoZXJlIGlzIGEgd29ya2Fyb3VuZD8KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdG1tYWMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDExNjI3IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI5PWNvbmZpZyBTVE1NQUNfUExBVEZPUk1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMzLVx0aGVscFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNDpcdCAgVGhpcyBzZWxlY3RzIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1LVx0ICBUaGlzIGlzIHRoZSBkcml2ZXIgdXNlZCBvbiBzZXZlcmFsIFNvQ3M6XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz02MD1jb25maWcgRFdNQUNfQU5BUklPTlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjY3Olx0ICBUaGlzIHNlbGVjdHMgdGhlIEFuYXJpb24gU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTY4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Nzg9Y29uZmlnIERXTUFDX0lOR0VOSUNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo4NjpcdCAgVGhpcyBzZWxlY3RzIEluZ2VuaWMgU29DcyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctODctXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgb24gZm9yIHRoZSBJbmdlbmljIFNvQ3Ncbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTkwPWNvbmZpZyBEV01BQ19JUFE4MDZYXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy05Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6OTg6XHQgIFRoaXMgc2VsZWN0cyB0aGUgSVBRODA2eCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTk5LVx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBkb2VzIG5vdCB1c2UgYW55IG9mIHRoZSBoYXJkd2FyZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTE0PWNvbmZpZyBEV01BQ19NRURJQVRFS1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTE5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMjA6XHQgIFRoaXMgc2VsZWN0cyB0aGUgTVQyNzEyIFNvQyBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRyaXZlci5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xMjI9Y29uZmlnIERXTUFDX01FU09OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMjktXHQgIFRoaXMgc2VsZWN0cyB0aGUgQW1sb2dpYyBNZXNvbiBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMzA6XHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgTWVzb242LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMzEtXHQgIE1lc29uOCwgTWVzb244YiBhbmQgR1hCQiBTb0NzLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTMzPWNvbmZpZyBEV01BQ19OVVZPVE9OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNDEtXHQgIFRoaXMgc2VsZWN0cyB0aGUgTnV2b3RvbiBNQTM1IHNlcmllcyBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE0MjpcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhlIG51dm90b24tZHdtYWMgZHJpdmVyIGlzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE0My1cdCAgdXNlZCBmb3IgTUEzNSBzZXJpZXMgU29Dcy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE0NT1jb25maWcgRFdNQUNfUUNPTV9FVEhRT1Ncbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE1Mi1cdCAgVGhpcyBzZWxlY3RzIHRoZSBRdWFsY29tbSBFVEhRT1MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTUzOlx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTU0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNTU9Y29uZmlnIERXTUFDX1JFTkVTQVNfR0JFVEhcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE2My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTY0Olx0ICBUaGlzIHNlbGVjdHMgUmVuZXNhcyBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRldmljZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNjUtXHQgIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlIFJaL1YySChQKSBmYW1pbHksIFJaL1QySCBhbmRcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE2OD1jb25maWcgRFdNQUNfUk9DS0NISVBcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE3Ni1cdCAgVGhpcyBzZWxlY3RzIHRoZSBSb2NrY2hpcCBSSzMyODggU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTc3Olx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE3OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTc5PWNvbmZpZyBEV01BQ19SWk4xXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xODctXHQgIFRoaXMgc2VsZWN0cyB0aGUgUmVuZXNhcyBSWi9OMSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxODg6XHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBzdXBwb3J0IGNhbiBtYWtlIHVzZSBvZiBhIGN1c3RvbSBNSUlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTg5LVx0ICBjb252ZXJ0ZXIgUENTIGRldmljZS5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE5MT1jb25maWcgRFdNQUNfUzMyXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xOTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE5ODpcdCAgVGhpcyBzZWxlY3RzIE5YUCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5OS1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlIFMzMkNDIHNlcmllc1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjAzPWNvbmZpZyBEV01BQ19TT0NGUEdBXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMTQtXHQgIFRoaXMgc2VsZWN0cyB0aGUgQWx0ZXJhIFNPQ0ZQR0EgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMTU6XHQgIGZvciB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIxNi1cdCAgYXJyaWE1IGFuZCBjeWNsb25lNSBGUEdBIFNvQ3MuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yMTg9Y29uZmlnIERXTUFDX1NPUEhHT1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjI1LVx0ICBUaGlzIHNlbGVjdHMgdGhlIFNvcGhnbyBTb0Mgc3BlY2lmaWMgZ2x1ZSBsYXllciBzdXBwb3J0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIyNjpcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIyNy1cdCAgZXRoZXJuZXQgY29udHJvbGxlcnMgb24gdmFyaW91cyBTb3BoZ28gU29Dcy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTIyOT1jb25maWcgRFdNQUNfU1BBQ0VNSVRcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIzNy1cdCAgVGhpcyBzZWxlY3RzIHRoZSBTcGFjZW1pdCBwbGF0Zm9ybSBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjM4Olx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjM5LVx0ICBTcGFjZW1pdCBLMyBldGhlcm5ldCBjb250cm9sbGVycy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI0MT1jb25maWcgRFdNQUNfU1RBUkZJVkVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI0OS1cdCAgVGhpcyBzZWxlY3RzIHRoZSBTdGFyRml2ZSBwbGF0Zm9ybSBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjUwOlx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjUxLVx0ICBTdGFyRml2ZSBKSDcxMDAgYW5kIEpINzExMCBldGhlcm5ldCBjb250cm9sbGVycy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI1Mz1jb25maWcgRFdNQUNfU1RJXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI2MTpcdCAgVGhpcyBzZWxlY3RzIFNUaSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI2Mi1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBvbiBmb3IgdGhlIFNUaSBzZXJpZXNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI2NT1jb25maWcgRFdNQUNfU1RNMzJcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjczOlx0ICBUaGlzIHNlbGVjdHMgU1RNMzIgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNzQtXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgb24gZm9yIHRoZSBTVE0zMiBzZXJpZXNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI3Nz1jb25maWcgRFdNQUNfU1VOWElcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI4NC1cdCAgVGhpcyBzZWxlY3RzIEFsbHdpbm5lciBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjg1Olx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgQTIwL0EzMVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yODYtXHQgIEdNQUMgZXRoZXJuZXQgY29udHJvbGxlci5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI4OD1jb25maWcgRFdNQUNfU1VOOElcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI5Ni1cdCAgVGhpcyBzZWxlY3RzIEFsbHdpbm5lciBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjk3Olx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgSDMvQTgzVC9BNjRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjk4LVx0ICBFTUFDIGV0aGVybmV0IGNvbnRyb2xsZXIuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMDA9Y29uZmlnIERXTUFDX1NVTjU1SVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzA4LVx0ICBUaGlzIHNlbGVjdHMgQWxsd2lubmVyIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMDk6XHQgIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBBNTIzL1Q1MjdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzEwLVx0ICBHTUFDMjAwIGV0aGVybmV0IGNvbnRyb2xsZXIuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMTI9Y29uZmlnIERXTUFDX1RIRUFEXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMTgtXHQgIFRoaXMgc2VsZWN0cyB0aGUgVC1IRUFEIHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzE5Olx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIFQtSEVBRCBUSDE1MjBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzIwLVx0ICBldGhlcm5ldCBjb250cm9sbGVyLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzIyPWNvbmZpZyBEV01BQ19JTVg4XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMzMDpcdCAgVGhpcyBzZWxlY3RzIE5YUCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMzMS1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgaS5NWDggc2VyaWVzIGxpa2Vcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTMzND1jb25maWcgRFdNQUNfSU5URUxfUExBVFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzQwLVx0ICBUaGlzIHNlbGVjdHMgdGhlIEludGVsIHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzQxOlx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIHRoZSBJbnRlbCBLZWVtIEJheVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNDItXHQgIFNvQy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM0ND1jb25maWcgRFdNQUNfTE9PTkdTT04xXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM1MTpcdCAgVGhpcyBzZWxlY3RzIExvb25nc29uMSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1Mi1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgTG9vbmdzb24xLWJhc2VkIGJvYXJkc1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzU1PWNvbmZpZyBEV01BQ19URUdSQVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzYwLVx0ICBmb3VuZCBvbiB0aGUgTlZJRElBIFRlZ3JhIFNvQyBkZXZpY2VzLiBUaGlzIGRyaXZlciBwcm92aWRlcyB0aGUgZ2x1ZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNjE6XHQgIGxheWVyIG9uIHRvcCBvZiB0aGUgc3RtbWFjIGRyaXZlciByZXF1aXJlZCBmb3IgdGhlc2UgTlZJRElBIFRlZ3JhIFNvQ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNjItXHQgIGRldmljZXMuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNzM9Y29uZmlnIFNUTU1BQ19MSUJQQ0lcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3NS1cdGhlbHBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mzc2Olx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSBQQ0kgYnVzIGhlbHBlcnMgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM3OD1jb25maWcgRFdNQUNfSU5URUxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM4NS1cdCAgVGhpcyBzZWxlY3RzIHRoZSBJbnRlbCBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM4NjpcdCAgc3RtbWFjIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgSW50ZWwgUXVhcmsvRUhML1RHTC5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zODg9Y29uZmlnIERXTUFDX0xPT05HU09OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTQtXHRoZWxwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM5NTpcdCAgVGhpcyBzZWxlY3RzIHRoZSBMT09OR1NPTiBQQ0kgYnVzIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTYtXHQgIFN1cHBvcnQgZm9yIGV0aGVybmV0IGNvbnRyb2xsZXIgb24gTG9vbmdzb24tMksxMDAwIFNvQyBhbmQgTFM3QTEwMDAgYnJpZGdlLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9NDA3PWNvbmZpZyBTVE1NQUNfUENJXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00MTItXHRoZWxwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQxMzpcdCAgVGhpcyBzZWxlY3RzIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQxNC1cdCAgVGhpcyBkcml2ZXIgd2FzIHRlc3RlZCBvbiBYTElOWCBYQzJWMzAwMCBGRjExNTJBTVQwMjIxXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyOm9iai0kKENPTkZJR19TVE1NQUNfRVRIKSAmIzQzOz0gc3RtbWFjLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjM6c3RtbWFjLW9ianM6PSBzdG1tYWNfbWFpbi5vIHN0bW1hY19ldGh0b29sLm8gc3RtbWFjX21kaW8ubyByaW5nX21vZGUub1x0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTQtXHQgICAgICBjaGFpbl9tb2RlLm8gZHdtYWNfbGliLm8gZHdtYWMxMDAwX2NvcmUubyBkd21hYzEwMDBfZG1hLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS01LVx0ICAgICAgZHdtYWMxMDBfY29yZS5vIGR3bWFjMTAwX2RtYS5vIGVuaF9kZXNjLm8gbm9ybV9kZXNjLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo2Olx0ICAgICAgbW1jX2NvcmUubyBzdG1tYWNfaHd0c3RhbXAubyBzdG1tYWNfcHRwLm8gZHdtYWM0X2Rlc2NzLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS03LVx0ICAgICAgZHdtYWM0X2RtYS5vIGR3bWFjNF9saWIubyBkd21hYzRfY29yZS5vIGR3bWFjNS5vIGh3aWYubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6ODpcdCAgICAgIHN0bW1hY190Yy5vIGR3eGdtYWMyX2NvcmUubyBkd3hnbWFjMl9kbWEubyBkd3hnbWFjMl9kZXNjcy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo5Olx0ICAgICAgc3RtbWFjX3hkcC5vIHN0bW1hY19lc3QubyBzdG1tYWNfZnBlLm8gc3RtbWFjX3ZsYW4ubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTA6XHQgICAgICBzdG1tYWNfcGNzLm8gJChzdG1tYWMteSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTExLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTI6c3RtbWFjLSQoQ09ORklHX1NUTU1BQ19TRUxGVEVTVFMpICYjNDM7PSBzdG1tYWNfc2VsZnRlc3RzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMTQtIyBPcmRlcmluZyBtYXR0ZXJzLiBHZW5lcmljIGRyaXZlciBtdXN0IGJlIGxhc3QuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToxNTpvYmotJChDT05GSUdfU1RNTUFDX1BMQVRGT1JNKVx0JiM0Mzs9IHN0bW1hYy1wbGF0Zm9ybS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0xNi1vYmotJChDT05GSUdfRFdNQUNfQU5BUklPTilcdCYjNDM7PSBkd21hYy1hbmFyaW9uLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT00NT1vYmotJChDT05GSUdfRFdNQUNfVklTQ09OVEkpXHQmIzQzOz0gZHdtYWMtdmlzY29udGkub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NDY6c3RtbWFjLXBsYXRmb3JtLW9ianM6PSBzdG1tYWNfcGxhdGZvcm0ub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNDctZHdtYWMtYWx0ci1zb2NmcGdhLW9ianMgOj0gZHdtYWMtc29jZnBnYS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS00OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjQ5Om9iai0kKENPTkZJR19TVE1NQUNfTElCUENJKVx0JiM0Mzs9IHN0bW1hY19saWJwY2kub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTA6b2JqLSQoQ09ORklHX1NUTU1BQ19QQ0kpXHQmIzQzOz0gc3RtbWFjLXBjaS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS01MS1vYmotJChDT05GSUdfRFdNQUNfSU5URUwpXHQmIzQzOz0gZHdtYWMtaW50ZWwub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTUzPW9iai0kKENPTkZJR19EV01BQ19NT1RPUkNPTU0pXHQmIzQzOz0gZHdtYWMtbW90b3Jjb21tLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjU0OnN0bW1hYy1wY2ktb2Jqczo9IHN0bW1hY19wY2kub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNTojaW5jbHVkZSBcJiMzNDtzdG1tYWMuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjE3OnN0YXRpYyBpbnQganVtYm9fZnJtKHN0cnVjdCBzdG1tYWNfdHhfcXVldWUgKnR4X3EsIHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTgtXHRcdCAgICAgaW50IGNzdW0pXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTIwLVx0dW5zaWduZWQgaW50IG5vcGFnZWRfbGVuID0gc2tiX2hlYWRsZW4oc2tiKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoyMTpcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IHR4X3EtXHUwMDNlcHJpdl9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTIyLVx0dW5zaWduZWQgaW50IGVudHJ5ID0gdHhfcS1cdTAwM2VjdXJfdHg7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTQ0LVx0LyogZG8gbm90IGNsb3NlIHRoZSBkZXNjcmlwdG9yIGFuZCBkbyBub3Qgc2V0IG93biBiaXQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzo0NTpcdHN0bW1hY19wcmVwYXJlX3R4X2Rlc2MocHJpdiwgZGVzYywgMSwgYnVmX2xlbiwgY3N1bSwgU1RNTUFDX0NIQUlOX01PREUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtNDYtXHRcdFx0MCwgZmFsc2UsIHNrYi1cdTAwM2VsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy02MS1cdFx0XHR0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmxlbiA9IGJtYXg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6NjI6XHRcdFx0c3RtbWFjX3ByZXBhcmVfdHhfZGVzYyhwcml2LCBkZXNjLCAwLCBibWF4LCBjc3VtLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTYzLVx0XHRcdFx0XHRTVE1NQUNfQ0hBSU5fTU9ERSwgMSwgZmFsc2UsIHNrYi1cdTAwM2VsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy03NS1cdFx0XHQvKiBsYXN0IGRlc2NyaXB0b3IgY2FuIGJlIHNldCBub3cgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzo3NjpcdFx0XHRzdG1tYWNfcHJlcGFyZV90eF9kZXNjKHByaXYsIGRlc2MsIDAsIGxlbiwgY3N1bSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy03Ny1cdFx0XHRcdFx0U1RNTUFDX0NIQUlOX01PREUsIDEsIHRydWUsIHNrYi1cdTAwM2VsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYz05OD1zdGF0aWMgdm9pZCBpbml0X2RtYV9jaGFpbih2b2lkICpkZXMsIGRtYV9hZGRyX3QgcGh5X2FkZHIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTEyNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxMjg6c3RhdGljIHZvaWQgcmVmaWxsX2Rlc2MzKHN0cnVjdCBzdG1tYWNfcnhfcXVldWUgKnJ4X3EsIHN0cnVjdCBkbWFfZGVzYyAqcClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xMjkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjEzMDpcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IHJ4X3EtXHUwMDNlcHJpdl9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTEzMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjE0MzpzdGF0aWMgdm9pZCBjbGVhbl9kZXNjMyhzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVlICp0eF9xLCBzdHJ1Y3QgZG1hX2Rlc2MgKnApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTQ0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNDU6XHRzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYgPSB0eF9xLVx1MDAzZXByaXZfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNDYtXHR1bnNpZ25lZCBpbnQgZW50cnkgPSB0eF9xLVx1MDAzZWRpcnR5X3R4O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MTYwOmNvbnN0IHN0cnVjdCBzdG1tYWNfbW9kZV9vcHMgY2hhaW5fbW9kZV9vcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTYxLVx0LmluaXQgPSBpbml0X2RtYV9jaGFpbixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xNS0jaW5jbHVkZSBcdTAwM2NsaW51eC9uZXRkZXZpY2UuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTY6I2luY2x1ZGUgXHUwMDNjbGludXgvc3RtbWFjLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTE3LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3BoeS5oXHUwMDNlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NDk9c3RhdGljIGlubGluZSBib29sIGR3bWFjX2lzX3htYWMoZW51bSBkd21hY19jb3JlX3R5cGUgY29yZV90eXBlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTcwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NzE6c3RydWN0IHN0bW1hY19xX3R4X3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTcyLVx0dTY0X3N0YXRzX3QgdHhfYnl0ZXM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo3ODpzdHJ1Y3Qgc3RtbWFjX25hcGlfdHhfc3RhdHMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNzktXHR1NjRfc3RhdHNfdCB0eF9wYWNrZXRzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6ODY6c3RydWN0IHN0bW1hY190eHFfc3RhdHMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtODctXHQvKiBVcGRhdGVzIHByb3RlY3RlZCBieSB0eCBxdWV1ZSBsb2NrLiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtODgtXHRzdHJ1Y3QgdTY0X3N0YXRzX3N5bmMgcV9zeW5jcDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjg5Olx0c3RydWN0IHN0bW1hY19xX3R4X3N0YXRzIHE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05Mi1cdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBuYXBpX3N5bmNwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6OTM6XHRzdHJ1Y3Qgc3RtbWFjX25hcGlfdHhfc3RhdHMgbmFwaTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk0LX0gX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6OTY6c3RydWN0IHN0bW1hY19uYXBpX3J4X3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk3LVx0dTY0X3N0YXRzX3QgcnhfYnl0ZXM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTAzOnN0cnVjdCBzdG1tYWNfcnhxX3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwNC1cdC8qIFVwZGF0ZXMgcHJvdGVjdGVkIGJ5IE5BUEkgcG9sbCBsb2dpYy4gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwNS1cdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBuYXBpX3N5bmNwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTA2Olx0c3RydWN0IHN0bW1hY19uYXBpX3J4X3N0YXRzIG5hcGk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMDctfSBfX19fY2FjaGVsaW5lX2FsaWduZWRfaW5fc21wO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwOS0vKiBVcGRhdGVzIG9uIGVhY2ggQ1BVIHByb3RlY3RlZCBieSBub3QgYWxsb3dpbmcgbmVzdGVkIGlycXMuICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoxMTA6c3RydWN0IHN0bW1hY19wY3B1X3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTExMS1cdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBzeW5jcDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMTYtLyogRXh0cmEgc3RhdGlzdGljIGFuZCBkZWJ1ZyBpbmZvcm1hdGlvbiBleHBvc2VkIGJ5IGV0aHRvb2wgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjExNzpzdHJ1Y3Qgc3RtbWFjX2V4dHJhX3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTExOC1cdC8qIFRyYW5zbWl0IGVycm9ycyAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTIzNy1cdC8qIHBlciBxdWV1ZSBzdGF0aXN0aWNzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoyMzg6XHRzdHJ1Y3Qgc3RtbWFjX3R4cV9zdGF0cyB0eHFfc3RhdHNbTVRMX01BWF9UWF9RVUVVRVNdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjM5Olx0c3RydWN0IHN0bW1hY19yeHFfc3RhdHMgcnhxX3N0YXRzW01UTF9NQVhfUlhfUVVFVUVTXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjI0MDpcdHN0cnVjdCBzdG1tYWNfcGNwdV9zdGF0cyBfX3BlcmNwdSAqcGNwdV9zdGF0cztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI0MS1cdHVuc2lnbmVkIGxvbmcgcnhfZHJvcHBlZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNDctLyogU2FmZXR5IEZlYXR1cmUgc3RhdGlzdGljcyBleHBvc2VkIGJ5IGV0aHRvb2wgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjI0ODpzdHJ1Y3Qgc3RtbWFjX3NhZmV0eV9zdGF0cyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNDktXHR1bnNpZ25lZCBsb25nIG1hY19lcnJvcnNbMzJdO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI1Ni0jZGVmaW5lIFNUTU1BQ19TQUZFVFlfRkVBVF9TSVpFXHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjU3Olx0KHNpemVvZihzdHJ1Y3Qgc3RtbWFjX3NhZmV0eV9zdGF0cykgLyBzaXplb2YodW5zaWduZWQgbG9uZykpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NDE2PXN0cnVjdCBkbWFfZmVhdHVyZXMge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTU2NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjU2NTp2b2lkIHN0bW1hY19heGlfYmxlbl90b19tYXNrKHUzMiAqcmVndmFsLCBjb25zdCB1MzIgKmJsZW4sIHNpemVfdCBsZW4pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNTY2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oPTYxMz1zdHJ1Y3QgbWFjX2RldmljZV9pbmZvIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxNDpcdGNvbnN0IHN0cnVjdCBzdG1tYWNfb3BzICptYWM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTU6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2Rlc2Nfb3BzICpkZXNjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE2Olx0Y29uc3Qgc3RydWN0IHN0bW1hY19kbWFfb3BzICpkbWE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTc6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX21vZGVfb3BzICptb2RlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE4Olx0Y29uc3Qgc3RydWN0IHN0bW1hY19od3RpbWVzdGFtcCAqcHRwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE5Olx0Y29uc3Qgc3RydWN0IHN0bW1hY190Y19vcHMgKnRjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjIwOlx0Y29uc3Qgc3RydWN0IHN0bW1hY19tbWNfb3BzICptbWM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MjE6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2VzdF9vcHMgKmVzdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYyMjpcdGNvbnN0IHN0cnVjdCBzdG1tYWNfdmxhbl9vcHMgKnZsYW47XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02MjMtXHRzdHJ1Y3QgZHdfeHBjcyAqeHBjcztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NDU6c3RydWN0IHN0bW1hY19yeF9yb3V0aW5nIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY0Ni1cdHUzMiByZWdfbWFzaztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTA6aW50IGR3bWFjMTAwX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTE6aW50IGR3bWFjMTAwMF9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjUyOmludCBkd21hYzRfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1MzppbnQgZHd4Z21hYzJfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1NDppbnQgZHd4bGdtYWMyX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTY6dm9pZCBzdG1tYWNfc2V0X21hY19hZGRyKHZvaWQgX19pb21lbSAqaW9hZGRyLCBjb25zdCB1OCBhZGRyWzZdLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjU3LVx0XHRcdCB1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTg6dm9pZCBzdG1tYWNfZ2V0X21hY19hZGRyKHZvaWQgX19pb21lbSAqaW9hZGRyLCB1bnNpZ25lZCBjaGFyICphZGRyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjU5LVx0XHRcdCB1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjA6dm9pZCBzdG1tYWNfc2V0X21hYyh2b2lkIF9faW9tZW0gKmlvYWRkciwgYm9vbCBlbmFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjYxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjYyOnZvaWQgc3RtbWFjX2R3bWFjNF9zZXRfbWFjX2FkZHIodm9pZCBfX2lvbWVtICppb2FkZHIsIGNvbnN0IHU4IGFkZHJbNl0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NjMtXHRcdFx0XHR1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjQ6dm9pZCBzdG1tYWNfZHdtYWM0X2dldF9tYWNfYWRkcih2b2lkIF9faW9tZW0gKmlvYWRkciwgdW5zaWduZWQgY2hhciAqYWRkcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY2NS1cdFx0XHRcdHVuc2lnbmVkIGludCBoaWdoLCB1bnNpZ25lZCBpbnQgbG93KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY2Njp2b2lkIHN0bW1hY19kd21hYzRfc2V0X21hYyh2b2lkIF9faW9tZW0gKmlvYWRkciwgYm9vbCBlbmFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjY3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMS0jaW5jbHVkZSBcdTAwM2NsaW51eC9vZl9uZXQuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEyOiNpbmNsdWRlIFx1MDAzY2xpbnV4L3N0bW1hYy5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTQ6I2luY2x1ZGUgXCYjMzQ7c3RtbWFjLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxNTojaW5jbHVkZSBcJiMzNDtzdG1tYWNfcGxhdGZvcm0uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTE2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz02Mz1hbmFyaW9uX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjY0Olx0XHQgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtNjUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz05Mz1zdGF0aWMgaW50IGFuYXJpb25fZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtOTYtXHRzdHJ1Y3QgYW5hcmlvbl9nbWFjICpnbWFjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjk3Olx0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzo5ODpcdHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzIHN0bW1hY19yZXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtOTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTAwOlx0cmV0ID0gc3RtbWFjX2dldF9wbGF0Zm9ybV9yZXNvdXJjZXMocGRldiwgXHUwMDI2c3RtbWFjX3Jlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTAxLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTAzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEwNDpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMDUtXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTE1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjExNjpcdHJldHVybiBkZXZtX3N0bW1hY19wbHRmcl9wcm9iZShwZGV2LCBwbGF0X2RhdCwgXHUwMDI2c3RtbWFjX3Jlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTE3LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM9MTI1PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGFuYXJpb25fZHdtYWNfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMjgtXHRcdC5uYW1lICAgICAgICAgICA9IFwmIzM0O2FuYXJpb24tZHdtYWNcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTI5Olx0XHQucG1cdFx0PSBcdTAwMjZzdG1tYWNfcGx0ZnJfcG1fb3BzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEzMC1cdFx0Lm9mX21hdGNoX3RhYmxlID0gYW5hcmlvbl9kd21hY19tYXRjaCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIxLSNpbmNsdWRlIFx1MDAzY2xpbnV4L3Jlc2V0LmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjI6I2luY2x1ZGUgXHUwMDNjbGludXgvc3RtbWFjLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI0OiNpbmNsdWRlIFwmIzM0O3N0bW1hY19wbGF0Zm9ybS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI1LSNpbmNsdWRlIFwmIzM0O2R3bWFjNC5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNj1zdGF0aWMgaW50IGR3Y19ldGhfZHdtYWNfY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjM3Olx0XHRcdFx0ICAgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtNDMtXHRcdHBsYXRfZGF0LVx1MDAzZWF4aSA9IGRldm1fa3phbGxvYyhcdTAwMjZwZGV2LVx1MDAzZWRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6NDQ6XHRcdFx0XHRcdCAgICAgc2l6ZW9mKHN0cnVjdCBzdG1tYWNfYXhpKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtNDUtXHRcdFx0XHRcdCAgICAgR0ZQX0tFUk5FTCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz05Nj1zdGF0aWMgaW50IGR3Y19xb3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6OTc6XHRcdFx0IHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjk4Olx0XHRcdCBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqc3RtbWFjX3JlcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtOTkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxMDA6XHRwbGF0X2RhdC1cdTAwM2VwY2xrID0gc3RtbWFjX3BsdGZyX2ZpbmRfY2xrKHBsYXRfZGF0LCBcJiMzNDtwaHlfcmVmX2Nsa1wmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTEwMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTExNT1zdGF0aWMgdm9pZCB0ZWdyYV9lcW9zX2ZpeF9zcGVlZCh2b2lkICpic3BfcHJpdiwgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTExOS1cdGJvb2wgbmVlZHNfY2FsaWJyYXRpb24gPSBmYWxzZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTIwOlx0c3RydWN0IHN0bW1hY19wcml2ICpwcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xMjEtXHR1MzIgdmFsdWU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNDEtXHRcdC8qIENhbGlicmF0aW9uIHNob3VsZCBiZSBkb25lIHdpdGggdGhlIE1ESU8gYnVzIGlkbGUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTQyOlx0XHRzdG1tYWNfbWRpb19sb2NrKHByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNDMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjE3ODpcdFx0c3RtbWFjX21kaW9fdW5sb2NrKHByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNzktXHR9IGVsc2Uge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MTg2PXN0YXRpYyBpbnQgdGVncmFfZXFvc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxODc6XHRcdFx0ICAgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjE4ODpcdFx0XHQgICAgc3RydWN0IHN0bW1hY19yZXNvdXJjZXMgKnJlcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTg5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIwMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjA0Olx0cGxhdF9kYXQtXHUwMDNlY2xrX3R4X2kgPSBzdG1tYWNfcGx0ZnJfZmluZF9jbGsocGxhdF9kYXQsIFwmIzM0O3R4XCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjA1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjM3LVx0cGxhdF9kYXQtXHUwMDNlZml4X21hY19zcGVlZCA9IHRlZ3JhX2Vxb3NfZml4X3NwZWVkO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyMzg6XHRwbGF0X2RhdC1cdTAwM2VzZXRfY2xrX3R4X3JhdGUgPSBzdG1tYWNfc2V0X2Nsa190eF9yYXRlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yMzktXHRwbGF0X2RhdC1cdTAwM2Vic3BfcHJpdiA9IGVxb3M7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNTI9c3RhdGljIHZvaWQgdGVncmFfZXFvc19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjUzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjU0Olx0c3RydWN0IHRlZ3JhX2Vxb3MgKmVxb3MgPSBnZXRfc3RtbWFjX2JzcF9wcml2KFx1MDAyNnBkZXYtXHUwMDNlZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjU1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjYwPXN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNjEtXHRpbnQgKCpwcm9iZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjYyOlx0XHQgICAgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI2MzpcdFx0ICAgICBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqcmVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjY0LVx0dm9pZCAoKnJlbW92ZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI2NTpcdGNvbnN0IGNoYXIgKnN0bW1hY19jbGtfbmFtZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjY2LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNjg9c3RhdGljIGNvbnN0IHN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEgZHdjX3Fvc19kYXRhID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNjktXHQucHJvYmUgPSBkd2NfcW9zX3Byb2JlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyNzA6XHQuc3RtbWFjX2Nsa19uYW1lID0gXCYjMzQ7YXBiX3BjbGtcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI3MS19O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjczPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhIHRlZ3JhX2Vxb3NfZGF0YSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI3NS1cdC5yZW1vdmUgPSB0ZWdyYV9lcW9zX3JlbW92ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjc2Olx0LnN0bW1hY19jbGtfbmFtZSA9IFwmIzM0O3NsYXZlX2J1c1wmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjc3LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNzk9c3RhdGljIGNvbnN0IHN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEgZnNkX2Vxb3NfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjgwOlx0LnN0bW1hY19jbGtfbmFtZSA9IFwmIzM0O3NsYXZlX2J1c1wmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjgxLX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yODM9c3RhdGljIGludCBkd2NfZXRoX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yODUtXHRjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhICpkYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyODY6XHRzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyODc6XHRzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyBzdG1tYWNfcmVzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yODgtXHRpbnQgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjkxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyOTI6XHRtZW1zZXQoXHUwMDI2c3RtbWFjX3JlcywgMCwgc2l6ZW9mKHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjk0LVx0LyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI5NTpcdCAqIFNpbmNlIHN0bW1hY19wbGF0Zm9ybSBzdXBwb3J0cyBuYW1lIElSUSBvbmx5LCBiYXNpYyBwbGF0Zm9ybVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTYtXHQgKiByZXNvdXJjZSBpbml0aWFsaXphdGlvbiBpcyBkb25lIGluIHRoZSBnbHVlIGxvZ2ljLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTctXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjk4Olx0c3RtbWFjX3Jlcy5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyOTk6XHRpZiAoc3RtbWFjX3Jlcy5pcnEgXHUwMDNjIDApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwMDpcdFx0cmV0dXJuIHN0bW1hY19yZXMuaXJxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDE6XHRzdG1tYWNfcmVzLndvbF9pcnEgPSBzdG1tYWNfcmVzLmlycTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDM6XHRzdG1tYWNfcmVzLmFkZHIgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwNDpcdGlmIChJU19FUlIoc3RtbWFjX3Jlcy5hZGRyKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzA1Olx0XHRyZXR1cm4gUFRSX0VSUihzdG1tYWNfcmVzLmFkZHIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwNzpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzA4LVx0aWYgKElTX0VSUihwbGF0X2RhdCkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMxNjpcdHBsYXRfZGF0LVx1MDAzZXN0bW1hY19jbGsgPSBzdG1tYWNfcGx0ZnJfZmluZF9jbGsocGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMxNzpcdFx0XHRcdFx0XHQgICAgIGRhdGEtXHUwMDNlc3RtbWFjX2Nsa19uYW1lKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMTktXHRpZiAoZGF0YS1cdTAwM2Vwcm9iZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzIwOlx0XHRyZXQgPSBkYXRhLVx1MDAzZXByb2JlKHBkZXYsIHBsYXRfZGF0LCBcdTAwMjZzdG1tYWNfcmVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzIxLVx0aWYgKHJldCBcdTAwM2MgMCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMzA6XHRyZXQgPSBzdG1tYWNfZHZyX3Byb2JlKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBwbGF0X2RhdCwgXHUwMDI2c3RtbWFjX3Jlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMzMS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNDM9c3RhdGljIHZvaWQgZHdjX2V0aF9kd21hY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM0Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzQ3Olx0c3RtbWFjX2R2cl9yZW1vdmUoXHUwMDI2cGRldi1cdTAwM2VkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNDgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNjE9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZHdjX2V0aF9kd21hY19kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNjUtXHRcdC5uYW1lICAgICAgICAgICA9IFwmIzM0O2R3Yy1ldGgtZHdtYWNcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjM2NjpcdFx0LnBtICAgICAgICAgICAgID0gXHUwMDI2c3RtbWFjX3BsdGZyX3BtX29wcyxcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIwOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwMTkxCgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogNTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyB0aGUgc3RtbWFjIERyaXZlciYjMzk7cyBQQ0kgQ2FwYWJpbGl0aWVzKioKCk9rYXksIHNvIHRoZSBzdG1tYWMgZHJpdmVyIGlzIGZ1bmRhbWVudGFsbHkgYSBwbGF0Zm9ybSBkcml2ZXIsIHRoYXQgbXVjaCBpcyBjbGVhci4gQnV0IHRoZW4gSSByZW1lbWJlciBzZWVpbmcgYHN0bW1hYy1wY2kuY2AgaW4gdGhlIGNvZGUsIHdoaWNoIGltbWVkaWF0ZWx5IHN1Z2dlc3RzIFBDSSBzdXBwb3J0IGlzIGFsc28gaW5jbHVkZWQsIGEga2V5IGRpc3RpbmN0aW9uLiBOb3csIHRoaXMgcmFpc2VzIGEgY3J1Y2lhbCBxdWVzdGlvbiBmb3IgbXkgY3VycmVudCB3b3JrLCB3aGF0ZXZlciBpdCBtYXkgYmUuIEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSB3aGV0aGVyIFFFTVUsIHRoZSB2aXJ0dWFsIG1hY2hpbmUgSSYjMzk7bSB1c2luZywgYWN0dWFsbHkgZW11bGF0ZXMgYW55IG9mIHRoZSBzcGVjaWZpYyBQQ0kgZGV2aWNlcyB0aGF0IHRoZSBgc3RtbWFjLXBjaS5jYCBtb2R1bGUgaXMgZGVzaWduZWQgdG8gaGFuZGxlLiBUaGlzIHdpbGwgZGlyZWN0bHkgYWZmZWN0IHRoZSB1c2VmdWxuZXNzIG9mIG15IGN1cnJlbnQgc2V0dXAgZm9yIHRlc3Rpbmcgb3IgZGV2ZWxvcG1lbnQuIEl0JiMzOTtzIHRpbWUgdG8gaW52ZXN0aWdhdGUgUUVNVSYjMzk7cyBkZXZpY2UgZW11bGF0aW9uIGNhcGFiaWxpdGllcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtQQ0lfREVWSUNFX0lEXyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MTkyPXN0YXRpYyB2b2lkIHN0bW1hY19wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xOTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjAwOiNkZWZpbmUgUENJX0RFVklDRV9JRF9TVE1NQUNfU1RNTUFDXHRcdDB4MTEwOFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIwMTojZGVmaW5lIFBDSV9ERVZJQ0VfSURfU1lOT1BTWVNfR01BQzVfSURcdFx0MHg3MTAyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjAyLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIwOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwNjc0CgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogNjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyBRRU1VIGFuZCBzdG1tYWMgRW11bGF0aW9uIGZvciBUZXN0aW5nKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGVzZSBQQ0kgSURzLCAweDExMDggYW5kIDB4NzEwMi4gVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiBpcywgZG9lcyBRRU1VIG5hdGl2ZWx5IGVtdWxhdGUgdGhlc2UgZGV2aWNlcz8gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIG5vLCB0aGF0JiMzOTtzIG5vdCBzb21ldGhpbmcgSSByZWNhbGwgc2VlaW5nIGluIHRoZSBzdGFuZGFyZCBRRU1VIHNldHVwLiBCdXQgaG9sZCBvbiwgSSBzZWVtIHRvIHJlY2FsbCBzb21ldGhpbmcgYWJvdXQgc3l6a2FsbGVyIGFuZCBzdG1tYWMuIEl0JiMzOTtzIHRpbWUgdG8gY2hlY2sgaWYgc3l6a2FsbGVyIGhhcyBhbnkgcHJlZGVmaW5lZCBkZXNjcmlwdGlvbnMgb3IgY29uZmlndXJhdGlvbnMgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLiBUaGF0IGNvdWxkIGJlIGEgdmFsdWFibGUgbGVhZCwgb2ZmZXJpbmcgYSBwb3RlbnRpYWwgcGF0aCBmb3IgdGVzdGluZywgZXZlbiBpZiBkaXJlY3QgUUVNVSBlbXVsYXRpb24gaXNuJiMzOTt0IGF2YWlsYWJsZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdG1tYWMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9jb3JlL3NlbGZ0ZXN0cy5jLTMtICogQ29weXJpZ2h0IChjKSAyMDE5IFN5bm9wc3lzLCBJbmMuIGFuZC9vciBpdHMgYWZmaWxpYXRlcy5cbm5ldC9jb3JlL3NlbGZ0ZXN0cy5jOjQ6ICogc3RtbWFjIFNlbGZ0ZXN0cyBTdXBwb3J0XG5uZXQvY29yZS9zZWxmdGVzdHMuYy01LSAqXG4tLVxubmV0L2NvcmUvc2VsZnRlc3RzLmMtNy0gKlxubmV0L2NvcmUvc2VsZnRlc3RzLmM6ODogKiBQb3J0ZWQgZnJvbSBzdG1tYWMgYnk6XG5uZXQvY29yZS9zZWxmdGVzdHMuYy05LSAqIENvcHlyaWdodCAoQykgMjAyMSBPbGVrc2lqIFJlbXBlbCBcdTAwM2NvLnJlbXBlbEBwZW5ndXRyb25peC5kZVx1MDAzZVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIwOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxMDczCgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMzY5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkRlY29kaW5nIHRoZSBTeXprYWxsZXIgQnVnIEh1bnQqKgoKT2theSwgbGV0JiMzOTtzIHNlZS4gVGhlIGNvbW1pdCBtZXNzYWdlIHNheXMgJiMzNDtzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcsJiMzNDsgYW5kIHRoZSBhdXRob3IgaXMgJiMzNDtzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7JiMzNDsuIFRoaXMgc2NyZWFtcyBzeXprYWxsZXIsIHJpZ2h0PyBUaGlzIG1lYW5zIGl0IGZvdW5kIGEgYnVnLCBvciBpcyBjdXJyZW50bHkgZnV6emluZyB0aGlzIHBhcnRpY3VsYXIgY2h1bmsgb2YgY29kZS4gSG93IGRpZCBpdCBtYW5hZ2UgdGhhdD8gVGhlIGtleSBpcyBwcm9iYWJseSBpbiB0aGF0IGZpbGUsIGBzdG1tYWNfc2VsZnRlc3RzLmNgLiBXYWl0IGEgc2Vjb25kLCB0aGUgcGF0Y2ggKmRvZXMqIG1vZGlmeSBgc3RtbWFjX3NlbGZ0ZXN0cy5jYCEgU28sIHRoZSBjb2RlIHVuZGVyIHNjcnV0aW55IGlzIHJlYWNoYWJsZSB2aWEgZXRodG9vbCBzZWxmdGVzdHM/CgpZZXMsIGxvb2tzIGxpa2UgYHN0bW1hY19zZWxmdGVzdF9ydW5gIGlzIGNhbGxlZCBieSBldGh0b29sLCBhbmQgdGhhdCYjMzk7cyB0aGUgZW50cnkgcG9pbnQuIEJ1dCBob3cgZGlkIHN5emthbGxlciBnZXQgYSBgc3RtbWFjYCBuZXR3b3JrIGRldmljZSAobmV0ZGV2KSB0byBhY3R1YWxseSBjYWxsIGV0aHRvb2wgb24/IEhtbS4uLiBtYXliZSBhIGR1bW15IGRyaXZlcj8gT3IgcGVyaGFwcyBhIHZpcnR1YWwgZGV2aWNlPyBXYWl0LCBgc3RtbWFjYCBpcyBhIHBsYXRmb3JtIGRyaXZlci4gQ2FuIHN5emthbGxlciBjcmVhdGUgcGxhdGZvcm0gZGV2aWNlcyB2aWEsIHNheSBgc3l6X2RldmxpbmtgIG9yIHNpbWlsYXI/IE5vLCBkZWZpbml0ZWx5IG5vdCB1c2luZyBgc3l6X2RldmxpbmtgLiBEb2VzIHN5emthbGxlciBvZmZlciBzb21lIGZvcm0gb2YgYHN5el9wbGF0Zm9ybV9kZXZpY2VfYWRkYD8gTm8sIG5vIHN1Y2ggZnVuY3Rpb25hbGl0eS4KCldhaXQuLi4gRXVyZWthISBTeXprYWxsZXIgKmNhbiogaW5qZWN0IFBDSSBkZXZpY2VzIHVzaW5nIGBzeXpfcGNpX2RldmljZV9hZGRgISBUaGF0JiMzOTtzIHRoZSBwc2V1ZG8tc3lzY2FsbCBJIHdhcyBtaXNzaW5nLiBJdCBhbGxvd3MgaW5qZWN0aW9uIG9mICphbnkqIFBDSSBkZXZpY2UgaW50byB0aGUgZ3Vlc3QsIGFzc3VtaW5nIHRoZSBrZXJuZWwgc3VwcG9ydHMgUENJIGhvdHBsdWcgYW5kIHRoZSBzcGVjaWZpYyBkcml2ZXIgaXMgcHJlc2VudC4gTm93LCBgc3RtbWFjX3BjaS5jYCBpcyBhIFBDSSBkcml2ZXIhIFRoYXQgY29uZmlybXMgaXQsIHN5emthbGxlciAqY2FuKiBpbmplY3QgdGhlIGBzdG1tYWNgIGRyaXZlciB1c2luZyBgc3l6X3BjaV9kZXZpY2VfYWRkYCEgTm93LCBsZXQmIzM5O3MganVzdCBjb25maXJtIHRoYXQgYHN0bW1hY19wY2kuY2AgaXMgY29tcGlsZWQgaW50byB0aGUga2VybmVsLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdG1tYWNfcGNpJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTUzPW9iai0kKENPTkZJR19EV01BQ19NT1RPUkNPTU0pXHQmIzQzOz0gZHdtYWMtbW90b3Jjb21tLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjU0OnN0bW1hYy1wY2ktb2Jqczo9IHN0bW1hY19wY2kub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9MjU9c3RydWN0IGludGVsX3ByaXZfZGF0YSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0zOS0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6NDA6c3RydWN0IHN0bW1hY19wY2lfZnVuY19kYXRhIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNDEtXHR1bnNpZ25lZCBpbnQgZnVuYztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo0NTpzdHJ1Y3Qgc3RtbWFjX3BjaV9kbWlfZGF0YSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjQ2Olx0Y29uc3Qgc3RydWN0IHN0bW1hY19wY2lfZnVuY19kYXRhICpmdW5jO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00Ny1cdHNpemVfdCBuZnVuY3M7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6NTA6c3RydWN0IHN0bW1hY19wY2lfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTUxLVx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTE9c3RhdGljIGNvbnN0IGludCBhZGxuX3Rzbl9sYW5lX3JlZ3NbXSA9IHs2fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjkzOnN0YXRpYyBpbnQgc3RtbWFjX3BjaV9maW5kX3BoeV9hZGRyKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NC1cdFx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCAqZG1pX2xpc3QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTY6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgKmZ1bmNfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTc6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9kbWlfZGF0YSAqZG1pX2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk4LVx0Y29uc3Qgc3RydWN0IGRtaV9zeXN0ZW1faWQgKmRtaV9pZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTc1NT1zdGF0aWMgaW50IGVobF9zZ21paV9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNzc0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo3NzU6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3NnbWlpMWdfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNzc2LVx0LnNldHVwID0gZWhsX3NnbWlpX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz03Nzk9c3RhdGljIGludCBlaGxfcmdtaWlfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTc4OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6NzkwOnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGVobF9yZ21paTFnX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTc5MS1cdC5zZXR1cCA9IGVobF9yZ21paV9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9ODEwPXN0YXRpYyBpbnQgZWhsX3BzZTBfcmdtaWkxZ19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo4MTc6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3BzZTBfcmdtaWkxZ19pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04MTgtXHQuc2V0dXAgPSBlaGxfcHNlMF9yZ21paTFnX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04MjE9c3RhdGljIGludCBlaGxfcHNlMF9zZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04MzgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjgzOTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMF9zZ21paTFnX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg0MC1cdC5zZXR1cCA9IGVobF9wc2UwX3NnbWlpMWdfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTg1OT1zdGF0aWMgaW50IGVobF9wc2UxX3JnbWlpMWdfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg2NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6ODY2OnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGVobF9wc2UxX3JnbWlpMWdfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODY3LVx0LnNldHVwID0gZWhsX3BzZTFfcmdtaWkxZ19kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9ODcwPXN0YXRpYyBpbnQgZWhsX3BzZTFfc2dtaWkxZ19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo4ODg6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3BzZTFfc2dtaWkxZ19pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04ODktXHQuc2V0dXAgPSBlaGxfcHNlMV9zZ21paTFnX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05MTM9c3RhdGljIGludCB0Z2xfc2dtaWlfcGh5MF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5MjI6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gdGdsX3NnbWlpMWdfcGh5MF9pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05MjMtXHQuc2V0dXAgPSB0Z2xfc2dtaWlfcGh5MF9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTI2PXN0YXRpYyBpbnQgdGdsX3NnbWlpX3BoeTFfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTkzNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTM1OnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHRnbF9zZ21paTFnX3BoeTFfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTM2LVx0LnNldHVwID0gdGdsX3NnbWlpX3BoeTFfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTkzOT1zdGF0aWMgaW50IGFkbHNfc2dtaWlfcGh5MF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTQ4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NDk6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gYWRsc19zZ21paTFnX3BoeTBfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTUwLVx0LnNldHVwID0gYWRsc19zZ21paV9waHkwX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05NTM9c3RhdGljIGludCBhZGxzX3NnbWlpX3BoeTFfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk2Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTYzOnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGFkbHNfc2dtaWkxZ19waHkxX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk2NC1cdC5zZXR1cCA9IGFkbHNfc2dtaWlfcGh5MV9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTkyPXN0YXRpYyBpbnQgYWRsbl9zZ21paV9waHkwX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDExOnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGFkbG5fc2dtaWkxZ19waHkwX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMTItXHQuc2V0dXAgPSBhZGxuX3NnbWlpX3BoeTBfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwMTU6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2Z1bmNfZGF0YSBnYWxpbGVvX3N0bW1hY19mdW5jX2RhdGFbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAxNi1cdHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwMjI6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2RtaV9kYXRhIGdhbGlsZW9fc3RtbWFjX2RtaV9kYXRhID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDIzLVx0LmZ1bmMgPSBnYWxpbGVvX3N0bW1hY19mdW5jX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDI2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDI3OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgaW90MjA0MF9zdG1tYWNfZnVuY19kYXRhW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMjgtXHR7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDM3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDM4OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9kbWlfZGF0YSBpb3QyMDQwX3N0bW1hY19kbWlfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAzOS1cdC5mdW5jID0gaW90MjA0MF9zdG1tYWNfZnVuY19kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9MTA3OD1zdGF0aWMgaW50IHF1YXJrX2RlZmF1bHRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwODgtXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTA4OTpcdHJldCA9IHN0bW1hY19wY2lfZmluZF9waHlfYWRkcihwZGV2LCBxdWFya19wY2lfZG1pKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTA5MC1cdGlmIChyZXQgXHUwMDNjIDApIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTExMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjExMTQ6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gcXVhcmtfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTExNS1cdC5zZXR1cCA9IHF1YXJrX2RlZmF1bHRfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTEyMzI9c3RhdGljIGludCBpbnRlbF9ldGhfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTIzNC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEyMzU6XHRzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICppbmZvID0gKHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKilpZC1cdTAwM2Vkcml2ZXJfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTIzNi1cdHN0cnVjdCBpbnRlbF9wcml2X2RhdGEgKmludGVsX3ByaXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz03Nj1zdHJ1Y3QgbG9vbmdzb25fZGF0YSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy04MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6ODI6c3RydWN0IHN0bW1hY19wY2lfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTgzLVx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9MTMyPXN0YXRpYyBpbnQgbG9vbmdzb25fZ21hY19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTQxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzoxNDI6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gbG9vbmdzb25fZ21hY19wY2lfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTQzLVx0LnNldHVwID0gbG9vbmdzb25fZ21hY19kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9MTY1PXN0YXRpYyBpbnQgbG9vbmdzb25fZ25ldF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTc2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzoxNzc6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gbG9vbmdzb25fZ25ldF9wY2lfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTc4LVx0LnNldHVwID0gbG9vbmdzb25fZ25ldF9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9NDk4PXN0YXRpYyBpbnQgbG9vbmdzb25fZHdtYWNfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTUwMS1cdHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzIHJlcyA9IHt9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1MDI6XHRzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICppbmZvO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01MDMtXHRzdHJ1Y3QgbG9vbmdzb25fZGF0YSAqbGQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01MzctXHRwbGF0LVx1MDAzZWZpeF9zb2NfcmVzZXQgPSBsb29uZ3Nvbl9kd21hY19maXhfcmVzZXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjUzODpcdHBsYXQtXHUwMDNlc3VzcGVuZCA9IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1Mzk6XHRwbGF0LVx1MDAzZXJlc3VtZSA9IHN0bW1hY19wY2lfcGxhdF9yZXN1bWU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTU0MC1cdGxkLVx1MDAzZWRldiA9IFx1MDAyNnBkZXYtXHUwMDNlZGV2O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1NDM6XHRpbmZvID0gKHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKilpZC1cdTAwM2Vkcml2ZXJfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTQ0LVx0cmV0ID0gaW5mby1cdTAwM2VzZXR1cChwZGV2LCBwbGF0KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYz0xODg9c3RhdGljIGludCBtb3RvcmNvbW1fcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMTkyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MTkzOlx0cmV0ID0gc3RtbWFjX3BjaV9wbGF0X3Jlc3VtZShkZXYsIGJzcF9wcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTE5NC1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM9MjA4PW1vdG9yY29tbV9kZWZhdWx0X3BsYXRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0yNDgtXHRwbGF0LVx1MDAzZWNvcmVfdHlwZVx0XHQ9IERXTUFDX0NPUkVfR01BQzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYzoyNDk6XHRwbGF0LVx1MDAzZXN1c3BlbmRcdFx0PSBzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTI1MC1cdHBsYXQtXHUwMDNlcmVzdW1lXHRcdD0gbW90b3Jjb21tX3Jlc3VtZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmM6MTI6aW50IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMTMte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0yNS19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmM6MjY6RVhQT1JUX1NZTUJPTF9HUEwoc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jLTI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jOjI4OmludCBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMjkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy00My19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmM6NDQ6RVhQT1JUX1NZTUJPTF9HUEwoc3RtbWFjX3BjaV9wbGF0X3Jlc3VtZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtNDUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5oLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmg6OTppbnQgc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpic3BfcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmg6MTA6aW50IHN0bW1hY19wY2lfcGxhdF9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpic3BfcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmgtMTEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjE5OnN0cnVjdCBzdG1tYWNfcGNpX2luZm8ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIwLVx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz0zMz1zdGF0aWMgaW50IHN0bW1hY19kZWZhdWx0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTQ5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjUwOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHN0bW1hY19wY2lfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy01MS1cdC5zZXR1cCA9IHN0bW1hY19kZWZhdWx0X2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTU0PXN0YXRpYyBpbnQgc25wc19nbWFjNV9kZWZhdWx0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEwMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxMDI6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gc25wc19nbWFjNV9wY2lfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xMDMtXHQuc2V0dXAgPSBzbnBzX2dtYWM1X2RlZmF1bHRfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTA2LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjEwNzogKiBzdG1tYWNfcGNpX3Byb2JlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTA4LSAqXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTExNy0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxMTg6c3RhdGljIGludCBzdG1tYWNfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTExOS1cdFx0XHQgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEyMC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTIxOlx0c3RydWN0IHN0bW1hY19wY2lfaW5mbyAqaW5mbyA9IChzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICopaWQtXHUwMDNlZHJpdmVyX2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTIyLVx0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xNzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTgwOlx0cGxhdC1cdTAwM2VzdXNwZW5kID0gc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTgxOlx0cGxhdC1cdTAwM2VyZXN1bWUgPSBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4Mi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTg2LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjE4NzogKiBzdG1tYWNfcGNpX3JlbW92ZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4OC0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xOTEtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTkyOnN0YXRpYyB2b2lkIHN0bW1hY19wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE5My17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTIwMz1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgc3RtbWFjX2lkX3RhYmxlW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjA0Olx0eyBQQ0lfREVWSUNFX0RBVEEoU1RNTUFDLCBTVE1NQUMsIFx1MDAyNnN0bW1hY19wY2lfaW5mbykgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMDU6XHR7IFBDSV9ERVZJQ0VfREFUQShTVE1JQ1JPLCBNQUMsIFx1MDAyNnN0bW1hY19wY2lfaW5mbykgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMDYtXHR7IFBDSV9ERVZJQ0VfREFUQShTWU5PUFNZUywgR01BQzVfSUQsIFx1MDAyNnNucHNfZ21hYzVfcGNpX2luZm8pIH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTIxMD1NT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgc3RtbWFjX2lkX3RhYmxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjEyOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBzdG1tYWNfcGNpX2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTMtXHQubmFtZSA9IFNUTU1BQ19SRVNPVVJDRV9OQU1FLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxNC1cdC5pZF90YWJsZSA9IHN0bW1hY19pZF90YWJsZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMTU6XHQucHJvYmUgPSBzdG1tYWNfcGNpX3Byb2JlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIxNjpcdC5yZW1vdmUgPSBzdG1tYWNfcGNpX3JlbW92ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTctXHQuZHJpdmVyICAgICAgICAgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIyMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMjI6bW9kdWxlX3BjaV9kcml2ZXIoc3RtbWFjX3BjaV9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIyMy1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjA6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjkxMjIKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAxOTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBTeXprYWxsZXIgUG90ZW50aWFsIGZvciBhIFNUTU1BQyBWdWxuZXJhYmlsaXR5KioKCk9rYXksIHNvIGBzdG1tYWNfcGNpLmNgIGlzIGRlZmluaXRlbHkgYSBQQ0kgZHJpdmVyIOKAkyBnb29kLCBTeXprYWxsZXIgY2FuIGluamVjdCBpdC4gQnV0IGhvbGQgb24sIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIGBkd21hY19pbnRlZ3JhdGVkX3Bjc19sb29wYmFja2Agd2l0aGluIGBzdG1tYWNfcGNzLmNgLiBJIG5lZWQgdG8gY29uZmlybSBpZiB0aGF0IGZpbGUgaXMgZXZlbiBjb21waWxlZCBpbnRvIHRoZSBrZXJuZWwgaW1hZ2UuIFllcCwgaXQmIzM5O3MgdGhlcmU6IGBzdG1tYWNfcGNzLm9gIGlzIGxpc3RlZCBpbiBgc3RtbWFjLW9ianNgLiBUaGF0JiMzOTtzIGEgZ29vZCBzaWduLgoKQW5kIHRoZSBwYXRjaCBhbHNvIHRvdWNoZXMgYHN0bW1hY19zZWxmdGVzdHMuY2AsIHdoaWNoIGNhbGxzIGBwaHlsaW5rX3Bjc19sb29wYmFja2AuIElzIHRoYXQgYWxzbyBnb2luZyB0byBiZSBjb21waWxlZCBpbj8gTGV0IG1lIHNlZeKApiB5ZXMsIGBzdG1tYWMtJChDT05GSUdfU1RNTUFDX1NFTEZURVNUUykgJiM0Mzs9IHN0bW1hY19zZWxmdGVzdHMub2AuIE9rYXksIHNvIHdlJiMzOTtsbCBuZWVkIHRvIGVuYWJsZSBgQ09ORklHX1NUTU1BQ19TRUxGVEVTVFNgIGZvciB0aGlzIHRvIGhhdmUgYW4gaW1wYWN0LiBMZXQmIzM5O3MgdmVyaWZ5IGhvdyBpdCBpcyBjdXJyZW50bHkgY29uZmlndXJlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjA6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFNUTU1BQ19TRUxGVEVTVFMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xOD1pZiBTVE1NQUNfRVRIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMDpjb25maWcgU1RNTUFDX1NFTEZURVNUU1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMS1cdGJvb2wgXCYjMzQ7U3VwcG9ydCBmb3IgU1RNTUFDIFNlbGZ0ZXN0c1wmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTcwNAoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDQzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBmcm9tIGFuIGV4cGVydCYjMzk7cyBwZXJzcGVjdGl2ZToKCioqRGl2aW5nIGludG8gdGhlIFNUTU1BQyBDb25maWd1cmF0aW9uKioKCkFscmlnaHQsIGxldCYjMzk7cyBzZWUuLi4gSSYjMzk7bSBsb29raW5nIGF0IHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBTVE1NQUMgZHJpdmVyLCBzcGVjaWZpY2FsbHkgdGhlIHNlbGYtdGVzdCBjYXBhYmlsaXR5LiBTbywgYENPTkZJR19TVE1NQUNfU0VMRlRFU1RTYCBpcyBhIGJvb2xlYW4gY29uZmlndXJhdGlvbiBvcHRpb24gdGhhdCBzZWVtcyB0byBiZSBuZXN0ZWQgdW5kZXIgYFNUTU1BQ19FVEhgLCB3aGljaCBpcyBpdHNlbGYgYSBjb25maWcgb3B0aW9uIHJlbGF0ZWQgdG8gdGhlIEV0aGVybmV0IGltcGxlbWVudGF0aW9uIG9mIHRoZSBkcml2ZXIuIE5vdywgSSBzaG91bGQgZG91YmxlIGNoZWNrIHdoYXQgb3B0aW9ucyBhcmUgYXZhaWxhYmxlIHVuZGVyIGJvdGggYFNUTU1BQ19FVEhgIGFuZCBgU1RNTUFDX1BDSWAuIEkgd2FudCB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGhvdyBzZWxmLXRlc3RzIGFyZSBlbmFibGVkLiBQZXJoYXBzIGNoZWNraW5nIGBTVE1NQUNfUENJYCBpcyByZWxldmFudCwgc28gSSB1bmRlcnN0YW5kIHRoZSBmdWxsIHNjb3BlIG9mIHdoZXJlIHRoaXMgY2FuIHJ1biBpbiBoYXJkd2FyZS4gS25vd2luZyB0aGF0IHRoZSBFdGhlcm5ldCBhbmQgUENJIHZlcnNpb25zIG9mIHRoZSBkcml2ZXIgYXJlIGltcG9ydGFudCwgSSBjYW4gc3RhcnQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIGZvciB0aGUgdGFyZ2V0IHBsYXRmb3JtLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgU1RNTUFDX0VUSCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI6Y29uZmlnIFNUTU1BQ19FVEhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O1NUTWljcm9lbGVjdHJvbmljcyBNdWx0aS1HaWdhYml0IEV0aGVybmV0IGRyaXZlclwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMDA5NAoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkRlY29kaW5nIHRoYXQgUGhyYXNlKioKCkhtbSwgJiMzNDtTVE1NQUNfUENJJiMzNDsuIFRoYXQmIzM5O3MgaW50cmlndWluZy4gTXkgaW5pdGlhbCB0aG91Z2h0IHByb2Nlc3MgaW1tZWRpYXRlbHkgc3RhcnRzIGRpc3NlY3RpbmcgdGhpcy4gJiMzNDtTVE1NQUMmIzM0OyBsaWtlbHkgcmVmZXJzIHRvIHRoZSBTVE1pY3JvZWxlY3Ryb25pY3MgTWVkaWEgQWNjZXNzIENvbnRyb2xsZXIgKE1BQykgSVAgY29yZSwgYSBjb21tb24gY29tcG9uZW50IGZvdW5kIGluIGEgbG90IG9mIGVtYmVkZGVkIHN5c3RlbXMsIHBhcnRpY3VsYXJseSB0aG9zZSB1c2luZyBTVE0zMiBtaWNyb2NvbnRyb2xsZXJzIG9yIHRoZWlyIGFzc29jaWF0ZWQgU29Dcy4KClRoZSAmIzM0O1BDSSYjMzQ7IHBhcnQgaXMgdGhlIG1vcmUgaW50ZXJlc3RpbmcgcGllY2UuIEl0IGltcGxpZXMgdGhpcyBNQUMgY29yZSBpcyBjb25uZWN0ZWQgdG8gYSBQQ0kgKFBlcmlwaGVyYWwgQ29tcG9uZW50IEludGVyY29ubmVjdCkgb3IgUENJIEV4cHJlc3MgYnVzLiBUaGlzIG5hcnJvd3MgZG93biB0aGUgYXBwbGljYXRpb24gc2lnbmlmaWNhbnRseS4gSSYjMzk7bSBsaWtlbHkgbG9va2luZyBhdCBhIHN5c3RlbSB3aXRoIHNvbWUgZGVncmVlIG9mIHNvcGhpc3RpY2F0aW9uLCBwb3RlbnRpYWxseSBhIG5ldHdvcmtpbmcgY2FyZCwgYW4gaW5kdXN0cmlhbCBjb250cm9sIHN5c3RlbSB3aXRoIGhpZ2hlciBiYW5kd2lkdGggcmVxdWlyZW1lbnRzLCBvciBldmVuIGEgc3BlY2lhbGl6ZWQgZW1iZWRkZWQgc3lzdGVtIG5lZWRpbmcgaGlnaC1zcGVlZCBuZXR3b3JrIGNvbm5lY3Rpdml0eS4KCk15IG1pbmQgaW1tZWRpYXRlbHkgc3RhcnRzIHRpY2tpbmcgdGhyb3VnaCB0aGUgaW1wbGljYXRpb25zOiBkcml2ZXIgcmVxdWlyZW1lbnRzLCBpbnRlcnJ1cHQgaGFuZGxpbmcsIERNQSAoRGlyZWN0IE1lbW9yeSBBY2Nlc3MpIGNvbmZpZ3VyYXRpb24uLi4gYWxsIG9mIHRoZXNlIHRha2Ugb24gYSBkaWZmZXJlbnQgZmxhdm9yIHdoZW4gZGVhbGluZyB3aXRoIGEgUENJIGludGVyZmFjZSByYXRoZXIgdGhhbiBzb21ldGhpbmcgc2ltcGxlciBsaWtlIGEgc3RhbmRhcmQgRXRoZXJuZXQgUEhZLiBJJiMzOTtkIGJlIGxvb2tpbmcgZm9yIFBDSSBjb25maWd1cmF0aW9uIHNwYWNlIGFjY2VzcywgcG90ZW50aWFsbHkgZGVhbGluZyB3aXRoIEJBUnMgKEJhc2UgQWRkcmVzcyBSZWdpc3RlcnMpIGFuZCBtZW1vcnktbWFwcGVkIEkvTywgYW5kIHRoZSBhc3NvY2lhdGVkIGNvbXBsZXhpdHkgb2YgYnVzIG1hc3RlcmluZy4KCkZ1cnRoZXJtb3JlLCBJJiMzOTtkIG5lZWQgdG8gY29uc2lkZXIgdGhlIHBvd2VyIG1hbmFnZW1lbnQgYXNwZWN0cy4gUENJIGRldmljZXMgb2Z0ZW4gaGF2ZSB0aGVpciBvd24gcG93ZXIgc3RhdGVzLCBhbmQgb3B0aW1pemluZyB0aGlzIHRvIHJlZHVjZSBwb3dlciBjb25zdW1wdGlvbiBvciBpbXByb3ZlIHJlc3BvbnNpdmVuZXNzIG1heSBiZSBhIGtleSBjb25zaWRlcmF0aW9uIGluIGFueSBwb3RlbnRpYWwgZGVzaWduIG9yIGRlYnVnZ2luZyBleGVyY2lzZS4gVGhlIGNsb2NraW5nIHNjaGVtZSBpcyBhbHNvIGxpa2VseSB0byBiZSB2ZXJ5IGltcG9ydGFudCwgc2luY2UgdGhlIE1BQyBuZWVkcyBhIHN0YWJsZSBjbG9jayBzaWduYWwgYW5kIG5lZWRzIHRvIGJlIHN5bmNocm9uaXplZCB3aXRoIHRoZSBQQ0kgYnVzIGNsb2NrLgoKVWx0aW1hdGVseSwgSSYjMzk7ZCBuZWVkIHRvIGxvb2sgYXQgdGhlIG92ZXJhbGwgYXJjaGl0ZWN0dXJlIG9mIHRoaXMgZGV2aWNlLCBpbiBwYXJ0aWN1bGFyLCB0aGUgY29uZmlndXJhdGlvbiBhbmQgaW50ZXJhY3Rpb24gb2YgdGhpcyBTVE1NQUMgSVAgY29yZSBhbmQgUENJIGJ1cy4gVGhlIHNwZWNpZmljIGRldGFpbHMsIGxpa2UgdGhlIHR5cGUgb2YgUENJIGJ1cyAoc3RhbmRhcmQgUENJLCBQQ0kgRXhwcmVzcywgZXRjLikgd2lsbCBzdHJvbmdseSBpbXBhY3QgZHJpdmVyIGNob2ljZXMgYW5kIG92ZXJhbGwgZGVzaWduIGNvbnN0cmFpbnRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgU1RNTUFDX1BDSSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM5OD1jb25maWcgRFdNQUNfTU9UT1JDT01NXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00MDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQwNzpjb25maWcgU1RNTUFDX1BDSVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00MDgtXHR0cmlzdGF0ZSBcJiMzNDtTVE1NQUMgUENJIGJ1cyBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIwOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwNjc4CgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMzg2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJlYWNoaW5nIFBoeWxpbmsgUENTIExvb3BiYWNrIGZvciBGdXp6aW5nKioKCk9rYXksIHNvIEkmIzM5O3ZlIGlkZW50aWZpZWQgYSBwcm9taXNpbmcgYXJlYSBmb3IgZnV6emluZzogc3BlY2lmaWNhbGx5LCB0aGUgcG90ZW50aWFsIGxvb3BiYWNrIGZ1bmN0aW9uYWxpdHkgd2l0aGluIHRoZSBTVE1NQUMgZHJpdmVyLiBJIG5lZWQgdG8gZW5zdXJlIHRoZXNlIGNvbXBvbmVudHMgYXJlIGVuYWJsZWQ6IGBTVE1NQUNfRVRIYCwgYFNUTU1BQ19QQ0lgLCBhbmQgYFNUTU1BQ19TRUxGVEVTVFNgLiBNeSBwcmltYXJ5IGZvY3VzIGlzIGdldHRpbmcgdG8gdGhlIGBwaHlsaW5rX3Bjc19sb29wYmFja2AgZnVuY3Rpb24sIGFzIHRoYXQgc2VlbXMgbGlrZSBhIGdvb2QgdGFyZ2V0LgoKTGV0JiMzOTtzIHRyYWNlIGhvdyB0aGlzIGZ1bmN0aW9uIGlzIHJlYWNoZWQuIFRoZSBwYXRoIGlzIGNsZWFyOiBUaGUgcGF0Y2ggYWRkcyBgcGh5bGlua19wY3NfbG9vcGJhY2tgIHRvIGBkcml2ZXJzL25ldC9waHkvcGh5bGluay5jYC4gIFRoaXMgZnVuY3Rpb24gaXMgdGhlbiBjYWxsZWQgYnkgYHN0bW1hY190ZXN0X3BoeV9sb29wYmFja2AsIHdoaWNoIGxpdmVzIGluIGBzdG1tYWNfc2VsZnRlc3RzLmNgLiBUaGF0IGZ1bmN0aW9uIGlzLCBpbiB0dXJuLCBjYWxsZWQgYnkgYHN0bW1hY19zZWxmdGVzdF9ydW5gLiBBbmQgZmluYWxseSwgYHN0bW1hY19zZWxmdGVzdF9ydW5gIGlzIGludm9rZWQgdGhyb3VnaCBgc3RtbWFjX2V0aHRvb2xfb3BzLnNlbGZfdGVzdGAuIFRoZSBpbXBvcnRhbnQgcGFydCBpcyB0aGF0IGV0aHRvb2wgc2VsZiB0ZXN0cyBhcmUgdHJpZ2dlcmVkIGJ5IHN5emthbGxlciB2aWEgYGlvY3RsKFNJT0NFVEhUT09MLCBFVEhUT09MX1RFU1QpYC4gVGhpcyBtZWFucyB0aGF0IGl0JiMzOTtzIGEgY29tcGxldGVseSByZWFjaGFibGUgcGF0aC4KCk5vdywgSSB3YW50IHRvIGRyaWxsIGRvd24gYW5kIHNlZSB0aGUgZXhhY3QgZnVuY3Rpb25zIGludm9sdmVkLiBUaGUgcGF0Y2ggYWxzbyBhZGRzIGBkd21hY19pbnRlZ3JhdGVkX3Bjc19sb29wYmFja2AgaW4gYHN0bW1hY19wY3MuY2AgYW5kIGEgc3RhdGljIGZ1bmN0aW9uIGBzdG1tYWNfc2VsZnRlc3RfZ2V0X3Bjc2AgaW4gYHN0bW1hY19zZWxmdGVzdHMuY2AuIFRoZSBtb3JlIGludGVyZXN0aW5nIG9uZSBpcyBgcGh5bGlua19wY3NfbG9vcGJhY2tgIGJlY2F1c2UgaXQmIzM5O3MgZXhwb3J0ZWQgYW5kIGNhbiBiZSBjYWxsZWQgZnJvbSBvdXRzaWRlLgoKSGFuZyBvbi4uLiBgZHdtYWNfaW50ZWdyYXRlZF9wY3NfbG9vcGJhY2tgIGlzIHN0YXRpYy4gVGhhdCYjMzk7cyBub3QgaWRlYWwgZm9yIGZ1enppbmcuIENhbiBJIGZvY3VzIG9uIGBwaHlsaW5rX3Bjc19sb29wYmFja2A/IFllcyEgSXQgaXMgZXhwb3J0ZWQuIEFuZCB3aGF0IGFib3V0IGBzdG1tYWNfdGVzdF9waHlfbG9vcGJhY2tgPyBJdCYjMzk7cyBzdGF0aWMsIGJ1dCBJJiMzOTttIGdldHRpbmcgdGhlcmUuIEl0JiMzOTtzIGNhbGxlZCBieSBgc3RtbWFjX3NlbGZ0ZXN0X3J1bmAsIHdoaWNoIGlzIHRoZSBlbnRyeSBwb2ludCwgc28gSSYjMzk7bGwgYWxzbyBjaGVjayBgc3RtbWFjX3NlbGZ0ZXN0X3J1bmAgaW4gYHN0bW1hY19zZWxmdGVzdHMuY2AgdG8gdW5kZXJzdGFuZCB0aGUgYmlnZ2VyIHBpY3R1cmUuIFRoaXMgc2VlbXMgdmVyeSBwcm9taXNpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIwOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N0bW1hY19zZWxmdGVzdF9ydW4mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmg9NDM0PXN0cnVjdCB0aW1lc3BlYzY0IHN0bW1hY19jYWxjX3Rhc19iYXNldGltZShrdGltZV90IG9sZF9iYXNlX3RpbWUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmgtNDM4LSNpZiBJU19FTkFCTEVEKENPTkZJR19TVE1NQUNfU0VMRlRFU1RTKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmg6NDM5OnZvaWQgc3RtbWFjX3NlbGZ0ZXN0X3J1bihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmgtNDQwLVx0XHRcdCBzdHJ1Y3QgZXRodG9vbF90ZXN0ICpldGVzdCwgdTY0ICpidWYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hYy5oPTQ0Mj1pbnQgc3RtbWFjX3NlbGZ0ZXN0X2dldF9jb3VudChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmgtNDQzLSNlbHNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWMuaDo0NDQ6c3RhdGljIGlubGluZSB2b2lkIHN0bW1hY19zZWxmdGVzdF9ydW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hYy5oLTQ0NS1cdFx0XHRcdCAgICAgICBzdHJ1Y3QgZXRodG9vbF90ZXN0ICpldGVzdCwgdTY0ICpidWYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYz0xMDkyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgc3RtbWFjX2V0aHRvb2xfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMtMTEwNS1cdC5zZXRfcGF1c2VwYXJhbSA9IHN0bW1hY19zZXRfcGF1c2VwYXJhbSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmM6MTEwNjpcdC5zZWxmX3Rlc3QgPSBzdG1tYWNfc2VsZnRlc3RfcnVuLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy0xMTA3LVx0LmdldF9ldGh0b29sX3N0YXRzID0gc3RtbWFjX2dldF9ldGh0b29sX3N0YXRzLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19zZWxmdGVzdHMuYz0xODUxPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3Rlc3Qge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19zZWxmdGVzdHMuYy0xOTg2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3NlbGZ0ZXN0cy5jOjE5ODc6dm9pZCBzdG1tYWNfc2VsZnRlc3RfcnVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfc2VsZnRlc3RzLmMtMTk4OC1cdFx0XHQgc3RydWN0IGV0aHRvb2xfdGVzdCAqZXRlc3QsIHU2NCAqYnVmKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjMxNQoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDIyNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEV0aGVybmV0IERyaXZlciBTZWxmLVRlc3QgRmxvdyoqCgpPa2F5LCBzbyBJJiMzOTttIGRpdmluZyBpbnRvIHRoaXMgc2VsZi10ZXN0IGZ1bmN0aW9uIGZvciB0aGUgRXRoZXJuZXQgZHJpdmVyLiBUaGUgZW50cnkgcG9pbnQsIGFzIEkgc2VlIGl0LCBpcyBgc3RtbWFjX3NlbGZ0ZXN0X3J1bmAuIEZpcnN0LCBJIHdhbnQgdG8gY29uZmlybSB3aGV0aGVyIG9yIG5vdCBgc3RtbWFjX3Rlc3RfcGh5X2xvb3BiYWNrYCBpcyBzdGF0aWMuIEFscmlnaHQsIGl0IGlzLiBUaGF0IG1lYW5zIEkgY2FuIHByb2JhYmx5IGF2b2lkIGZvY3VzaW5nIG9uIGl0IGRpcmVjdGx5LgoKTmV4dCwgSSYjMzk7bSBnb2luZyB0byBsb29rIGNsb3NlbHkgYXQgYHN0bW1hY19zZWxmdGVzdF9ydW5gIGl0c2VsZiBhbmQgYWxzbyBgcGh5bGlua19wY3NfbG9vcGJhY2tgLiBXYWl0IGEgbWludXRlLCB3aGF0IGFib3V0IGBkd21hY19pbnRlZ3JhdGVkX3Bjc19sb29wYmFja2A/IEl0JiMzOTtzIG1hcmtlZCBhcyBzdGF0aWMsIGJ1dCBpdCYjMzk7cyBhc3NpZ25lZCB0byBgcGNzX2xvb3BiYWNrYCBpbnNpZGUgYGR3bWFjX2ludGVncmF0ZWRfcGNzX29wc2AuIFRoZSBpbmxpbmluZyBtYWtlcyBpdCBoYXJkZXIsIGJ1dCBzaW5jZSBpdCYjMzk7cyBhc3NpZ25lZCB0byBhIGZ1bmN0aW9uIHBvaW50ZXIsIGl0ICpzaG91bGRuJiMzOTt0KiBiZSBpbmxpbmVkLiBFdmVuIHNvLCBpdCYjMzk7cyBnZW5lcmFsbHkgYmV0dGVyIHRvIHByaW9yaXRpemUgZXhwb3J0ZWQgb3Igbm9uLXN0YXRpYyBmdW5jdGlvbnMgZm9yIHRoaXMga2luZCBvZiBhbmFseXNpcy4KClRoYW5rZnVsbHksIGBwaHlsaW5rX3Bjc19sb29wYmFja2AgKmlzKiBleHBvcnRlZCwgd2hpY2ggaXMgcGVyZmVjdC4gQW5kIGNvbmZpcm1pbmcgdGhhdCBgc3RtbWFjX3NlbGZ0ZXN0X3J1bmAgaXMgYWxzbyBub24tc3RhdGljLCBJIGNhbiBnZXQgdG8gd29yay4KClRoZXJlZm9yZSwgbXkgbmV4dCBtb3ZlIGlzIHRvIGNoZWNrIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgcGh5bGlua19wY3NfbG9vcGJhY2tgIGxvY2F0ZWQgaW4gYGRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwaHlsaW5rX3Bjc19sb29wYmFjayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYz05OTg9RVhQT1JUX1NZTUJPTF9HUEwocGh5bGlua19wY3NfcHJlX2luaXQpO1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMTAwMC0vKipcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MTAwMTogKiBwaHlsaW5rX3Bjc19sb29wYmFjaygpIC0gRW5hYmxlIG9yIGRpc2FibGUgbG9vcGJhY2sgYXQgdGhlIFBDU1xuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0xMDAyLSAqIEBwY3M6IGEgcG9pbnRlciB0byBhIFx1MDAyNnN0cnVjdCBwaHlsaW5rX3Bjcy5cbi0tXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTEwMDktICovXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjEwMTA6aW50IHBoeWxpbmtfcGNzX2xvb3BiYWNrKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCBib29sIGVuYWJsZSlcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMTAxMS17XG4tLVxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0xMDE2LX1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MTAxNzpFWFBPUlRfU1lNQk9MX0dQTChwaHlsaW5rX3Bjc19sb29wYmFjayk7XG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTEwMTgtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIwOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMzMTU0CgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogMTI1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZvY3VzaW5nIG9uIFNlbGYtVGVzdCBhbmQgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTt2ZSB6ZXJvZWQgaW4gb24gdGhlIHJpZ2h0IGFyZWFzIHRvIGludmVzdGlnYXRlLiBgcGh5bGlua19wY3NfbG9vcGJhY2tgIGZlZWxzIGxpa2UgYSBzb2xpZCBmb2N1cyBzeW1ib2w7IGl0JiMzOTtzIHJpZ2h0IGluIHRoZSB3aGVlbGhvdXNlLiBTaW1pbGFybHksIGBzdG1tYWNfc2VsZnRlc3RfcnVuYCBpcyBhbm90aGVyIGV4Y2VsbGVudCBwb2ludCBvZiByZWZlcmVuY2UgZm9yIHRoaXMgc2VsZi10ZXN0IHdvcmsuCgpOb3csIGxldCYjMzk7cyBwaXZvdCB0byB0aGUgY29uZmlndXJhdGlvbiBhc3BlY3RzLiBXaGF0IGFyZSB0aGUga2V5IGNvbmZpZyBzeW1ib2xzIHdlIG5lZWQgdG8gY29uc2lkZXI/IEkmIzM5O20gdGhpbmtpbmc6IGBTVE1NQUNfRVRIYCwgYFNUTU1BQ19QQ0lgLCBgU1RNTUFDX1NFTEZURVNUU2AsIGFuZCBgUEhZTElOS2AuIGBQSFlMSU5LYCBpcyB1c3VhbGx5IGJyb3VnaHQgaW4gdmlhIGBTVE1NQUNfRVRIYCBvciBzb21ldGhpbmcgbGlrZSBgTUFDQmAsIGJ1dCBpdCYjMzk7cyB3b3J0aCBsaXN0aW5nIGV4cGxpY2l0bHkgZm9yIGNsYXJpdHkuIFRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBxdWlja2x5IGNvbmZpcm0gaWYgYFNUTU1BQ19FVEhgIHByb3Blcmx5IHNlbGVjdHMgb3IgdHJpZ2dlcnMgYFBIWUxJTktgLiBXZSBuZWVkIHRvIGJlIHN1cmUgdGhlIGRlcGVuZGVuY2llcyBhcmUgYXMgd2UgZXhwZWN0IHRoZW0gdG8gYmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIwOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NlbGVjdCBQSFlMSU5LJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mj1jb25maWcgU1RNTUFDX0VUSFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctOS1cdHNlbGVjdCBQQUdFX1BPT0xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTA6XHRzZWxlY3QgUEhZTElOS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMS1cdHNlbGVjdCBDUkMzMlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzY0MwoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDUzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUGF0Y2gmIzM5O3MgSW1wYWN0KioKCk9rYXksIHNvIEkmIzM5O3ZlIGNvbmZpcm1lZCB0aGUgaW5pdGlhbCBhc3Nlc3NtZW50IOKAkyB0aGUgY2hhbmdlIGRlZmluaXRlbHkgYXBwbGllcy4gQnV0IGhvbGQgb24gYSBzZWNvbmQuLi4gdGhlIHBhdGNoIGlzbiYjMzk7dCAqanVzdCogdG91Y2hpbmcgdGhhdCBvbmUgZmlsZS4gSXQgbG9va3MgbGlrZSBpdCYjMzk7cyBhbHNvIG1vZGlmeWluZyBgc3RtbWFjX3Bjcy5jYC4gVGhpcyByYWlzZXMgYSBxdWVzdGlvbiBJIG5lZWQgdG8gYmUgYWJzb2x1dGVseSBzdXJlIGFib3V0LiBJcyBgc3RtbWFjX3Bjcy5jYCB1bmNvbmRpdGlvbmFsbHkgY29tcGlsZWQgaW50byB0aGUgYnVpbGQgd2hlbiBgU1RNTUFDX0VUSGAgaXMgZW5hYmxlZD8gSSBuZWVkIHRvIGJlIGNlcnRhaW4sIGJlY2F1c2UgYW55IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGNoYW5nZXMgdGhlIHNjb3BlIG9mIG15IHJldmlldy4gVGltZSB0byBkaXZlIGludG8gdGhlIGBNYWtlZmlsZWAgYW5kIGNvbmZpcm0gaG93IHRoaXMgaXMgY29uZmlndXJlZC4gR290dGEgZ2V0IHRoZSBidWlsZCBkZXBlbmRlbmNpZXMgYW5kIGFueSBwb3RlbnRpYWxseSBoaWRkZW4gaW50ZXJhY3Rpb25zIGlyb25lZCBvdXQgbm93LCBiZWZvcmUgSSB3YXN0ZSB0aW1lIG9uIGEgZG93bnN0cmVhbSBpc3N1ZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjA6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RtbWFjX3Bjcy5vJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTM9c3RtbWFjLW9ianM6PSBzdG1tYWNfbWFpbi5vIHN0bW1hY19ldGh0b29sLm8gc3RtbWFjX21kaW8ubyByaW5nX21vZGUub1x0XFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS05LVx0ICAgICAgc3RtbWFjX3hkcC5vIHN0bW1hY19lc3QubyBzdG1tYWNfZnBlLm8gc3RtbWFjX3ZsYW4ubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTA6XHQgICAgICBzdG1tYWNfcGNzLm8gJChzdG1tYWMteSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTExLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNDA3MgoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDIyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBDdXJyZW50IExpbmUgb2YgUmVhc29uaW5nKioKCk9rYXksIHllcywgdGhhdCYjMzk7cyBjb3JyZWN0LiBMZXQmIzM5O3Mgc2VlLCB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgaGVyZSBhcmUgYFNUTU1BQ19FVEhgLCBgU1RNTUFDX1BDSWAsIGFuZCBgU1RNTUFDX1NFTEZURVNUU2AuIE5vdywgYSBxdWljayBwYXVzZS4uLiBkb2VzIGp1c3QgYFNUTU1BQ19QQ0lgIGFsb25lIGVuYWJsZSB0aGUgZHJpdmVyIHRvIHByb2JlIHByb3Blcmx5IGluIGEgdmlydHVhbGl6ZWQgY29udGV4dD8gSSBrbm93IHN5emthbGxlciBjYW4gaW5qZWN0IFBDSSBkZXZpY2VzIHVzaW5nIGBzeXpfcGNpX2RldmljZV9hZGRgLiBIYW5nIG9uLCBtYXliZSBpdCAqZG9lc24mIzM5O3QqIG5lZWQgYFNUTU1BQ19QQ0lgIGlmIGl0IGNhbiBpbmplY3QgcGxhdGZvcm0gZGV2aWNlcyBkaXJlY3RseT8gQWgsIHJpZ2h0LCBzeXprYWxsZXIgZG9lc24mIzM5O3QgaGF2ZSBhIGBzeXpfcGxhdGZvcm1fZGV2aWNlX2FkZGAgZnVuY3Rpb24sIG9ubHkgdGhpbmdzIGxpa2UgYHN5el9wY2lfZGV2aWNlX2FkZGAgYW5kIGBzeXpfdXNiX2Nvbm5lY3RgLiBTbywgdG8gbGV2ZXJhZ2UgUENJIGluamVjdGlvbiB3aXRoIHN5emthbGxlciwgaXQgKmRvZXMqIG5lZWQgYFNUTU1BQ19QQ0lgLgoKTGV0IG1lIGp1c3QgcXVpY2tseSBjb25maXJtIHRoYXQgYFNUTU1BQ19QQ0lgIGlzLCBpbiBmYWN0LCBhIHRyaXN0YXRlLiBHb29kLCBpdCBpcy4gVGhlcmVmb3JlLCB3ZSBzaG91bGQgYWJzb2x1dGVseSBpbmNsdWRlIGBTVE1NQUNfUENJYCBpbiB0aGUgY29uZmlndXJhdGlvbi4gTm93LCBqdXN0IHRvIGJlIHRob3JvdWdoLCBJIHNob3VsZCBkb3VibGUtY2hlY2sgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgZGVwZW5kZW5jaWVzIG9uIGBTVE1NQUNfUENJYCB0aGF0IG1pZ2h0IG5lZWQgdG8gYmUgY29uc2lkZXJlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjA6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFNUTU1BQ19QQ0kmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zOTg9Y29uZmlnIERXTUFDX01PVE9SQ09NTVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo0MDc6Y29uZmlnIFNUTU1BQ19QQ0lcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA4LVx0dHJpc3RhdGUgXCYjMzQ7U1RNTUFDIFBDSSBidXMgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNDc0MAoJCQkJCQkJb3V0cHV0OiA0NAoJCQkJCQkJdGhvdWdodHM6IDE0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOgoKKipEZWNvbnN0cnVjdGluZyBgU1RNTUFDX1BDSWAgRGVwZW5kZW5jaWVzKioKCk9rYXksIHNvIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgYFNUTU1BQ19QQ0lgIGFjdHVhbGx5ICpyZWxpZXMqIG9uLiBJJiMzOTttIHRoaW5raW5nLCBpbiB0ZXJtcyBvZiBzeXN0ZW0gYXJjaGl0ZWN0dXJlLCB0aGlzIGlzIGxpa2VseSBhIG5ldHdvcmsgZHJpdmVyLCByaWdodD8gTW9yZSBzcGVjaWZpY2FsbHksIGl0JiMzOTtzIHByb2JhYmx5IHJlbGF0ZWQgdG8gYSBzcGVjaWZpYyBFdGhlcm5ldCBjb250cm9sbGVyLCB0aGUgb25lIHdpdGggYW4gJiMzNDtTVCYjMzQ7IHByZWZpeCB3aGljaCBzdWdnZXN0cyBhIHBhcnRpY3VsYXIgc2lsaWNvbiB2ZW5kb3IgLSBwb3NzaWJseSBTVE1pY3JvZWxlY3Ryb25pY3MsIHRob3VnaCBJIHNob3VsZCB2ZXJpZnkgdGhhdC4gVGhlICYjMzQ7TUFDJiMzNDsgcGFydCBzdHJvbmdseSBzdWdnZXN0cyBpdOKAmXMgZGVhbGluZyB3aXRoIHRoZSBNZWRpYSBBY2Nlc3MgQ29udHJvbGxlciBsYXllciwgd2hpY2ggaXMgY3J1Y2lhbCBmb3IgaGFuZGxpbmcgRXRoZXJuZXQgZnJhbWVzLiBBbmQgdGhlICYjMzQ7UENJJiMzNDsgc3VmZml4PyBUaGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lIHRoaXMgZHJpdmVyIGludGVyZmFjZXMgd2l0aCB0aGUgaGFyZHdhcmUgdmlhIHRoZSBQZXJpcGhlcmFsIENvbXBvbmVudCBJbnRlcmNvbm5lY3QgYnVzLgoKVGhlcmVmb3JlLCB0aGUgZmlyc3QgcXVlc3Rpb25zIEkmIzM5O20gYXNraW5nIG15c2VsZiBhcmU6IFdoYXQgc3BlY2lmaWMgaGFyZHdhcmUgdmFyaWF0aW9ucyBpcyBpdCBkZXNpZ25lZCB0byBoYW5kbGU/IFdoYXQgb3RoZXIgZHJpdmVycyBvciBtb2R1bGVzIG1pZ2h0IGJlIHJlcXVpcmVkIGZvciB0aGlzIHRvIGZ1bmN0aW9uIGNvcnJlY3RseT8gRm9yIGV4YW1wbGUsIGlzIHRoZXJlIGEgc3BlY2lmaWMgUENJIGNvbnRyb2xsZXIgZHJpdmVyIGl0IG5lZWRzPyBBcmUgdGhlcmUgYW55IGxvd2VyLWxldmVsIGhhcmR3YXJlIGFic3RyYWN0aW9uIGxheWVycyB0aGF0IGl0IHVzZXM/IEFyZSB0aGVyZSBhbnkgZmlybXdhcmUgb3Igc2hhcmVkIGxpYnJhcnkgZGVwZW5kZW5jaWVzIHRoYXQgaXQgbWlnaHQgbG9hZD8gSSBuZWVkIHRvIGxvb2sgZm9yIGhlYWRlcnMsIGluY2x1ZGUgZmlsZXMsIG9yIGNvbmZpZ3VyYXRpb24gZmlsZXMgdG8gZGV0ZXJtaW5lIHdoYXQgb3RoZXIgcGFydHMgb2YgdGhlIHN5c3RlbSBhcmUgbmVlZGVkIHRvIG1ha2UgaXQgcnVuLiBJJiMzOTtsbCBuZWVkIHRvIGxvb2sgYXQgaXRzIEtjb25maWcgZW50cmllcy4gVGhpcyBpcyBnb2luZyB0byBiZSBteSBzdGFydGluZyBwb2ludC4gSSBrbm93IEkmIzM5O20gYWxyZWFkeSB0aGlua2luZyBhYm91dCBwb3RlbnRpYWwgY29uZmxpY3RzIG9yIGRlcGVuZGVuY2llcyBvbiBvdGhlciBkcml2ZXJzLCBhbmQgSSBuZWVkIHRvIHN0YXJ0IGZpZ3VyaW5nIG91dCBwb3RlbnRpYWwgdmVyc2lvbiByZXF1aXJlbWVudHMgb2YgYW55IGV4dGVybmFsIGxpYnJhcmllcywgc28gSSBjYW4gc3RhcnQgdG8gZGV2ZWxvcCBhIGhvbGlzdGljIHZpZXcgb2YgdGhlIGBTVE1NQUNfUENJYCBlY29zeXN0ZW0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIwOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDQwMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgNDAwOlx0XHRkZXBlbmRzIG9uIFBDSVxuIDQwMTpcdFx0c2VsZWN0IE1PVE9SQ09NTV9QSFlcbiA0MDI6XHRcdHNlbGVjdCBTVE1NQUNfTElCUENJXG4gNDAzOlx0XHRoZWxwXG4gNDA0Olx0XHQgIFRoaXMgZW5hYmxlcyBnbHVlIGRyaXZlciBmb3IgTW90b3Jjb21tIERXTUFDLWJhc2VkIFBDSSBFdGhlcm5ldFxuIDQwNTpcdFx0ICBjb250cm9sbGVycy4gQ3VycmVudGx5IG9ubHkgWVQ2ODAxIGlzIHN1cHBvcnRlZC5cbiA0MDY6XHRcbiA0MDc6XHRjb25maWcgU1RNTUFDX1BDSVxuIDQwODpcdFx0dHJpc3RhdGUgXCYjMzQ7U1RNTUFDIFBDSSBidXMgc3VwcG9ydFwmIzM0O1xuIDQwOTpcdFx0ZGVwZW5kcyBvbiBQQ0lcbiA0MTA6XHRcdGRlcGVuZHMgb24gQ09NTU9OX0NMS1xuIDQxMTpcdFx0c2VsZWN0IFNUTU1BQ19MSUJQQ0lcbiA0MTI6XHRcdGhlbHBcbiA0MTM6XHRcdCAgVGhpcyBzZWxlY3RzIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG4gNDE0Olx0XHQgIFRoaXMgZHJpdmVyIHdhcyB0ZXN0ZWQgb24gWExJTlggWEMyVjMwMDAgRkYxMTUyQU1UMDIyMVxuIDQxNTpcdFx0ICBEMTIxNTk5NEEgVklSVEVYIEZQR0EgYm9hcmQgYW5kIFNOUFMgUW9TIElQSyBQcm90b3R5cGluZyBLaXQuXG4gNDE2Olx0XG4gNDE3Olx0XHQgIElmIHlvdSBoYXZlIGEgY29udHJvbGxlciB3aXRoIHRoaXMgaW50ZXJmYWNlLCBzYXkgWSBvciBNIGhlcmUuXG4gNDE4Olx0XG4gNDE5Olx0XHQgIElmIHVuc3VyZSwgc2F5IE4uXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIwOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1NDU1CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogNzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCBtZSB0aGluayB0aGlzIHRocm91Z2guCgoqKkFuYWx5emluZyBEcml2ZXIgRGVwZW5kZW5jaWVzKioKCkFscmlnaHQsIHNvIHRoZSBgU1RNTUFDX1BDSWAgZHJpdmVyIGxldmVyYWdlcyB0aGUgYFBDSWAgYW5kIGBDT01NT05fQ0xLYCBzdWJzeXN0ZW1zLiBgUENJYCBpcyBwcmV0dHkgbXVjaCB1YmlxdWl0b3VzIOKAkyBpdCYjMzk7cyBhIHN0YW5kYXJkIGludGVyZmFjZSwgYSBmb3VuZGF0aW9uYWwgcGllY2Ugb2YgaGFyZHdhcmUgaW50ZWdyYXRpb24uIEFuZCBgQ09NTU9OX0NMS2AgaXMgYmVjb21pbmcgaW5jcmVhc2luZ2x5IHByZXZhbGVudCBhY3Jvc3MgdmFyaW91cyBhcmNoaXRlY3R1cmVzLCBhbm90aGVyIHN0YW5kYXJkIHRoYXQmIzM5O3MgZXNzZW50aWFsbHkgYmFrZWQgaW4gdGhlc2UgZGF5cy4gVGhhdCBtZWFucyBgU1RNTUFDX1BDSWAgc2VlbXMgbGlrZSBhIHNvbGlkIGNob2ljZSBmcm9tIGEgZGVwZW5kZW5jeSBwZXJzcGVjdGl2ZSwgcmVsYXRpdmVseSBlYXN5IHRvIHN1cHBvcnQsIEkmIzM5O2Qgc2F5LiBObyBpbW1lZGlhdGUgcmVkIGZsYWdzIHRoZXJlLgoKSG93ZXZlciwgSSBzaG91bGQgdGFrZSBhIGJyb2FkZXIgbG9vayBhdCB0aGUgbGFuZHNjYXBlLiBIb2xkIG9uIGEgc2Vjb25kLi4uIHdoYXQgYWJvdXQgYERXTUFDX0lOVEVMYD8gTm93IHRoYXQgSSB0aGluayBhYm91dCBpdCwgdGhhdCYjMzk7cyBhbm90aGVyIFBDSS1iYXNlZCBkcml2ZXIuIEkgc2hvdWxkIGFuYWx5emUgaXQgaW4gYSBzaW1pbGFyIGxpZ2h0IHRvIGVuc3VyZSBhIGNvaGVyZW50IGFwcHJvYWNoLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAzNzAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMzAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDM3MDpcdFxuIDM3MTpcdGVuZGlmICMgU1RNTUFDX1BMQVRGT1JNXG4gMzcyOlx0XG4gMzczOlx0Y29uZmlnIFNUTU1BQ19MSUJQQ0lcbiAzNzQ6XHRcdHRyaXN0YXRlXG4gMzc1Olx0XHRoZWxwXG4gMzc2Olx0XHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIFBDSSBidXMgaGVscGVycyBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG4gMzc3Olx0XG4gMzc4Olx0Y29uZmlnIERXTUFDX0lOVEVMXG4gMzc5Olx0XHR0cmlzdGF0ZSBcJiMzNDtJbnRlbCBHTUFDIHN1cHBvcnRcJiMzNDtcbiAzODA6XHRcdGRlZmF1bHQgWDg2XG4gMzgxOlx0XHRkZXBlbmRzIG9uIFg4NiBcdTAwMjZcdTAwMjYgUENJXG4gMzgyOlx0XHRkZXBlbmRzIG9uIENPTU1PTl9DTEtcbiAzODM6XHRcdGRlcGVuZHMgb24gQUNQSVxuIDM4NDpcdFx0aGVscFxuIDM4NTpcdFx0ICBUaGlzIHNlbGVjdHMgdGhlIEludGVsIHBsYXRmb3JtIHNwZWNpZmljIGJ1cyBzdXBwb3J0IGZvciB0aGVcbiAzODY6XHRcdCAgc3RtbWFjIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgSW50ZWwgUXVhcmsvRUhML1RHTC5cbiAzODc6XHRcbiAzODg6XHRjb25maWcgRFdNQUNfTE9PTkdTT05cbiAzODk6XHRcdHRyaXN0YXRlIFwmIzM0O0xvb25nc29uIFBDSSBEV01BQyBzdXBwb3J0XCYjMzQ7XG4gMzkwOlx0XHRkZWZhdWx0IE1BQ0hfTE9PTkdTT042NFxuIDM5MTpcdFx0ZGVwZW5kcyBvbiAoTUFDSF9MT09OR1NPTjY0IHx8IENPTVBJTEVfVEVTVCkgXHUwMDI2XHUwMDI2IFBDSVxuIDM5MjpcdFx0ZGVwZW5kcyBvbiBDT01NT05fQ0xLXG4gMzkzOlx0XHRzZWxlY3QgU1RNTUFDX0xJQlBDSVxuIDM5NDpcdFx0aGVscFxuIDM5NTpcdFx0ICBUaGlzIHNlbGVjdHMgdGhlIExPT05HU09OIFBDSSBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIsXG4gMzk2Olx0XHQgIFN1cHBvcnQgZm9yIGV0aGVybmV0IGNvbnRyb2xsZXIgb24gTG9vbmdzb24tMksxMDAwIFNvQyBhbmQgTFM3QTEwMDAgYnJpZGdlLlxuIDM5NzpcdFxuIDM5ODpcdGNvbmZpZyBEV01BQ19NT1RPUkNPTU1cbiAzOTk6XHRcdHRyaXN0YXRlIFwmIzM0O01vdG9yY29tbSBQQ0kgRFdNQUMgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjIwNwoJCQkJCQkJb3V0cHV0OiAxNjYKCQkJCQkJCXRob3VnaHRzOiAxMjUxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5c2lzIG9mIHRoZSBTVE1NQUMgSW50ZWdyYXRlZCBQQ1MgTG9vcGJhY2sgRnVuY3Rpb25hbGl0eSoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgYERXTUFDX0lOVEVMYCBpcyBhbHNvIGEgUENJIGRyaXZlciwgc28gdGhhdCYjMzk7cyBzb21ldGhpbmcgdG8ga2VlcCBpbiBtaW5kLCBldmVuIHRob3VnaCBgU1RNTUFDX1BDSWAgc3VwcG9ydHMgc3BlY2lmaWMgZGV2aWNlIGRhdGEgZm9yIGJvdGggYFNUTU1BQ2AgYW5kIGBTVE1JQ1JPYCB3aXRoIGAmYW1wO3N0bW1hY19wY2lfaW5mb2AuIFNpbmNlIFN5emthbGxlciBjYW4gaW5qZWN0IGFueSBQQ0kgSUQsIGBTVE1NQUNfUENJYCBzaG91bGQgYmUgc3VmZmljaWVudCBmb3Igb3VyIHB1cnBvc2VzLgoKTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGVuc3VyZSB3ZSBoYXZlIHRoZSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbnMgZW5hYmxlZC4gV2UmIzM5O3JlIGxvb2tpbmcgYXQgYFNUTU1BQ19FVEhgLCBgU1RNTUFDX1BDSWAsIGFuZCwgY3J1Y2lhbGx5LCBgU1RNTUFDX1NFTEZURVNUU2AuIEEgcXVpY2sgY2hlY2sgY29uZmlybXMgYWxsIHRocmVlLgoKTm93LCByZXZpZXdpbmcgdGhlIHBhdGNoIGl0c2VsZiwgc3BlY2lmaWNhbGx5IHRoZSBgZHdtYWNfaW50ZWdyYXRlZF9wY3NfbG9vcGJhY2tgIGZ1bmN0aW9uLCB3aGljaCBtb2RpZmllcyB0aGUgR01BQyBjb250cm9sIHJlZ2lzdGVyLiBJdCYjMzk7cyBhZGRpbmcgbG9vcGJhY2sgc3VwcG9ydCB0byB0aGUgaW50ZWdyYXRlZCBQQ1MuICBUaGUgY3J1Y2lhbCBwYXJ0IGlzIGhvdyB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQgd2l0aGluIHRoZSBgc3RtbWFjX3NlbGZ0ZXN0cy5jYCBmaWxlLiAgU3BlY2lmaWNhbGx5LCBgc3RtbWFjX3NlbGZ0ZXN0X2dldF9wY3NgLCB3aGljaCBjaGVja3MgZm9yIGVpdGhlciBnbHVlIGRyaXZlciYjMzk7cyBQQ1Mgb3IgdGhlIGludGVncmF0ZWQgUENTLiAgVGhlbiBgc3RtbWFjX3Rlc3RfcGh5X2xvb3BiYWNrYCB1c2VzIGBwaHlsaW5rX3Bjc19sb29wYmFja2AsIGFuZCBzdWJzZXF1ZW50bHkgYHN0bW1hY19zZWxmdGVzdF9ydW5gIGFsc28gdXNlcyBgcGh5bGlua19wY3NfbG9vcGJhY2tgLgoKTXkgZm9jdXMgaXMgb24gdGhlc2Ugc3ltYm9sczogYHBoeWxpbmtfcGNzX2xvb3BiYWNrYCBhbmQgYHN0bW1hY19zZWxmdGVzdF9ydW5gLiBBbHRob3VnaCBgZHdtYWNfaW50ZWdyYXRlZF9wY3NfbG9vcGJhY2tgIGlzIHN0YXRpYywgaXQmIzM5O3MgZXhlY3V0ZWQgd2hlbiBgcGh5bGlua19wY3NfbG9vcGJhY2tgIGlzIGNhbGxlZC4gTm8gb3RoZXIgZXhwb3J0ZWQgZnVuY3Rpb25zIGNvbWUgaW50byBwbGF5LgoKTGV0JiMzOTtzIGNvbmZpcm0gdGhlIGNvbmZpZ3VyYXRpb25zIGFnYWluOiBgU1RNTUFDX0VUSGAsIGBTVE1NQUNfUENJYCwgYW5kIGBTVE1NQUNfU0VMRlRFU1RTYCwgcGx1cyBgUEhZTElOS2Agd2hpY2ggaXMgc2VsZWN0ZWQgYnkgYFNUTU1BQ19FVEhgLCBhbmQgYFBDSWAsIHdoaWNoIGlzIHN0YW5kYXJkLiBBIGRvdWJsZSBjaGVjayBjb25maXJtcyBgU1RNTUFDX1NFTEZURVNUU2AgaXMgdGhlIHByZWNpc2UgY29uZmlndXJhdGlvbiBuYW1lLgoKTGV0JiMzOTtzIGVuc3VyZSB0aGUgZnVuY3Rpb24gbmFtZXMgYXJlIGNvcnJlY3Q6IGB2b2lkIHN0bW1hY19zZWxmdGVzdF9ydW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGV0aHRvb2xfdGVzdCAqZXRlc3QsIHU2NCAqYnVmKWAgYW5kIGBpbnQgcGh5bGlua19wY3NfbG9vcGJhY2soc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIGJvb2wgZW5hYmxlKWAuICBWZXJpZmljYXRpb24gb2YgdGhlIHN0YXRpYyBuYXR1cmUgb2YgYHN0bW1hY190ZXN0X3BoeV9sb29wYmFja2AgYW5kIGBzdG1tYWNfc2VsZnRlc3RfZ2V0X3Bjc2AgY29uZmlybXMgbXkgaW5pdGlhbCBhc3Nlc3NtZW50LgoKVGhlIGtleSBmb2N1cyBzeW1ib2xzIHJlbWFpbjogYHBoeWxpbmtfcGNzX2xvb3BiYWNrYCBhbmQgYHN0bW1hY19zZWxmdGVzdF9ydW5gLgoKVGhlIHJlYXNvbmluZyBpcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkOiB0aGlzIHBhdGNoIGFkZHMgYW5kIGVuYWJsZXMgbG9vcGJhY2sgc3VwcG9ydCBmb3IgdGhlIFNUTU1BQyBpbnRlZ3JhdGVkIFBDUyBhbmQgcGh5bGluaywgYW5kIHNpbmNlIHRoaXMgY29kZSBpcyByZWFjaGVkIHZpYSB0aGUgZXRodG9vbCBzZWxmLXRlc3RzLCB3aGljaCBhcmUgYWNjZXNzaWJsZSB0aHJvdWdoIGBTSU9DRVRIVE9PTGAgd2l0aCB0aGUgYEVUSFRPT0xfVEVTVGAgY29tbWFuZCwgd2UgY2FuIHRyaWdnZXIgdGhlIHZ1bG5lcmFiaWxpdHkgYnkgaW5qZWN0aW5nIGEgdmlydHVhbCBQQ0kgc3RtbWFjIGRldmljZSBhbmQgY2FsbGluZyBldGh0b29sIG9uIGl0LiAgQW5kIHRoZSBjb21taXQgbWVzc2FnZSByZWZlcmVuY2VzIHN5ei1jbHVzdGVyIHdpdGggdGhlIHBhdGNoLCB3aGljaCBtZWFucyBpdCBpcyB0ZXN0ZWQgYnkgc3l6a2FsbGVyLiAgVGhlcmVmb3JlLCBpdCBpcyBkZWZpbml0ZWx5IHJlYWNoYWJsZSwgYW5kIGZ1enppbmcgaXQgaXMgZGVmaW5pdGVseSB3b3J0aHdoaWxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7U1RNTUFDX0VUSCYjMzQ7LAogICAgJiMzNDtTVE1NQUNfUENJJiMzNDssCiAgICAmIzM0O1NUTU1BQ19TRUxGVEVTVFMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtwaHlsaW5rX3Bjc19sb29wYmFjayYjMzQ7LAogICAgJiMzNDtzdG1tYWNfc2VsZnRlc3RfcnVuJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgbG9vcGJhY2sgc3VwcG9ydCB0byB0aGUgc3RtbWFjIGludGVncmF0ZWQgUENTIGFuZCBwaHlsaW5rLCB3aGljaCBpcyB1dGlsaXplZCBieSB0aGUgc3RtbWFjIGV0aHRvb2wgc2VsZnRlc3RzLiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIHZpYSB0aGUgU0lPQ0VUSFRPT0wgaW9jdGwgd2l0aCB0aGUgRVRIVE9PTF9URVNUIGNvbW1hbmQuIFN5emthbGxlciBjYW4gdHJpZ2dlciB0aGlzIGJ5IGluamVjdGluZyBhIHZpcnR1YWwgUENJIHN0bW1hYyBkZXZpY2UgdXNpbmcgc3l6X3BjaV9kZXZpY2VfYWRkIGFuZCBjYWxsaW5nIGV0aHRvb2wgb24gdGhlIHJlc3VsdGluZyBuZXRkZXYuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NUTU1BQ19FVEgmIzM0OywKICAgICYjMzQ7U1RNTUFDX1BDSSYjMzQ7LAogICAgJiMzNDtTVE1NQUNfU0VMRlRFU1RTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cGh5bGlua19wY3NfbG9vcGJhY2smIzM0OywKICAgICYjMzQ7c3RtbWFjX3NlbGZ0ZXN0X3J1biYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGxvb3BiYWNrIHN1cHBvcnQgdG8gdGhlIHN0bW1hYyBpbnRlZ3JhdGVkIFBDUyBhbmQgcGh5bGluaywgd2hpY2ggaXMgdXRpbGl6ZWQgYnkgdGhlIHN0bW1hYyBldGh0b29sIHNlbGZ0ZXN0cy4gVGhpcyBjb2RlIGlzIHJlYWNoYWJsZSB2aWEgdGhlIFNJT0NFVEhUT09MIGlvY3RsIHdpdGggdGhlIEVUSFRPT0xfVEVTVCBjb21tYW5kLiBTeXprYWxsZXIgY2FuIHRyaWdnZXIgdGhpcyBieSBpbmplY3RpbmcgYSB2aXJ0dWFsIFBDSSBzdG1tYWMgZGV2aWNlIHVzaW5nIHN5el9wY2lfZGV2aWNlX2FkZCBhbmQgY2FsbGluZyBldGh0b29sIG9uIHRoZSByZXN1bHRpbmcgbmV0ZGV2LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjdUMjA6MDk6NDEuMDM3NjU0MTg1WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODY1MTA0OTEyMjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiU1RNTUFDX0VUSFwiLFxuICAgIFwiU1RNTUFDX1BDSVwiLFxuICAgIFwiU1RNTUFDX1NFTEZURVNUU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInBoeWxpbmtfcGNzX2xvb3BiYWNrXCIsXG4gICAgXCJzdG1tYWNfc2VsZnRlc3RfcnVuXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBsb29wYmFjayBzdXBwb3J0IHRvIHRoZSBzdG1tYWMgaW50ZWdyYXRlZCBQQ1MgYW5kIHBoeWxpbmssIHdoaWNoIGlzIHV0aWxpemVkIGJ5IHRoZSBzdG1tYWMgZXRodG9vbCBzZWxmdGVzdHMuIFRoaXMgY29kZSBpcyByZWFjaGFibGUgdmlhIHRoZSBTSU9DRVRIVE9PTCBpb2N0bCB3aXRoIHRoZSBFVEhUT09MX1RFU1QgY29tbWFuZC4gU3l6a2FsbGVyIGNhbiB0cmlnZ2VyIHRoaXMgYnkgaW5qZWN0aW5nIGEgdmlydHVhbCBQQ0kgc3RtbWFjIGRldmljZSB1c2luZyBzeXpfcGNpX2RldmljZV9hZGQgYW5kIGNhbGxpbmcgZXRodG9vbCBvbiB0aGUgcmVzdWx0aW5nIG5ldGRldi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjA6MDk6NDEuMDM3NjcyOTM2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MTUwODUwMzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBkZWUyOGQ3YWEwMDQyODFkM2UwYWYyM2Q4ZWViMDM0ZTRkMDYwZTBiXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gSnVsIDI3IDIwOjA5OjM4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY3MuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY3MuY1xcbmluZGV4IGRmMzdhZjVhYjgzN2FmLi45MGEyMWEyZjdlODczMSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNzLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNzLmNcXG5AQCAtMTY4LDYgKzE2OCwyMiBAQCBzdGF0aWMgdm9pZCBkd21hY19pbnRlZ3JhdGVkX3Bjc19hbl9yZXN0YXJ0KHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzKVxcbiBcXHR9XFxuIH1cXG4gXFxuK3N0YXRpYyBpbnQgZHdtYWNfaW50ZWdyYXRlZF9wY3NfbG9vcGJhY2soc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIGJvb2wgZW5hYmxlKVxcbit7XFxuK1xcdHN0cnVjdCBzdG1tYWNfcGNzICpzcGNzID0gcGh5bGlua19wY3NfdG9fc3RtbWFjX3BjcyhwY3MpO1xcbitcXHR2b2lkIF9faW9tZW0gKmFuX2NvbnRyb2wgPSBzcGNzLVxcdTAwM2ViYXNlICsgR01BQ19BTl9DVFJMKDApO1xcbitcXHR1MzIgY3RybDtcXG4rXFxuK1xcdGN0cmwgPSByZWFkbChhbl9jb250cm9sKTtcXG4rXFx0aWYgKGVuYWJsZSlcXG4rXFx0XFx0Y3RybCB8PSBHTUFDX0FOX0NUUkxfRUxFO1xcbitcXHRlbHNlXFxuK1xcdFxcdGN0cmwgXFx1MDAyNj0gfkdNQUNfQU5fQ1RSTF9FTEU7XFxuK1xcdHdyaXRlbChjdHJsLCBhbl9jb250cm9sKTtcXG4rXFxuK1xcdHJldHVybiAwO1xcbit9XFxuK1xcbiBzdGF0aWMgY29uc3Qgc3RydWN0IHBoeWxpbmtfcGNzX29wcyBkd21hY19pbnRlZ3JhdGVkX3Bjc19vcHMgPSB7XFxuIFxcdC5wY3NfaW5iYW5kX2NhcHMgPSBkd21hY19pbnRlZ3JhdGVkX3Bjc19pbmJhbmRfY2FwcyxcXG4gXFx0LnBjc19lbmFibGUgPSBkd21hY19pbnRlZ3JhdGVkX3Bjc19lbmFibGUsXFxuQEAgLTE3NSw2ICsxOTEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBoeWxpbmtfcGNzX29wcyBkd21hY19pbnRlZ3JhdGVkX3Bjc19vcHMgPSB7XFxuIFxcdC5wY3NfZ2V0X3N0YXRlID0gZHdtYWNfaW50ZWdyYXRlZF9wY3NfZ2V0X3N0YXRlLFxcbiBcXHQucGNzX2NvbmZpZyA9IGR3bWFjX2ludGVncmF0ZWRfcGNzX2NvbmZpZyxcXG4gXFx0LnBjc19hbl9yZXN0YXJ0ID0gZHdtYWNfaW50ZWdyYXRlZF9wY3NfYW5fcmVzdGFydCxcXG4rXFx0LnBjc19sb29wYmFjayA9IGR3bWFjX2ludGVncmF0ZWRfcGNzX2xvb3BiYWNrLFxcbiB9O1xcbiBcXG4gdm9pZCBzdG1tYWNfaW50ZWdyYXRlZF9wY3NfaXJxKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgdTMyIHN0YXR1cyxcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3NlbGZ0ZXN0cy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3NlbGZ0ZXN0cy5jXFxuaW5kZXggMjllODI0YmQ5MGNhNmIuLjc3YTQ1N2IyZmE1Y2Y3IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19zZWxmdGVzdHMuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19zZWxmdGVzdHMuY1xcbkBAIC0xOSw2ICsxOSw3IEBAXFxuICNpbmNsdWRlIFxcdTAwM2NuZXQvdWRwLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NuZXQvdGNfYWN0L3RjX2dhY3QuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFxcInN0bW1hYy5oXFxcIlxcbisjaW5jbHVkZSBcXFwic3RtbWFjX3Bjcy5oXFxcIlxcbiBcXG4gc3RydWN0IHN0bW1hY2hkciB7XFxuIFxcdF9fYmUzMiB2ZXJzaW9uO1xcbkBAIC0zNzQsMjMgKzM3NSw1MSBAQCBzdGF0aWMgaW50IHN0bW1hY190ZXN0X21hY19sb29wYmFjayhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuIFxcdHJldHVybiBfX3N0bW1hY190ZXN0X2xvb3BiYWNrKHByaXYsIFxcdTAwMjZhdHRyKTtcXG4gfVxcbiBcXG4rc3RhdGljIHN0cnVjdCBwaHlsaW5rX3BjcyAqc3RtbWFjX3NlbGZ0ZXN0X2dldF9wY3Moc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxcbit7XFxuK1xcdC8qIFRyeSBnbHVlIGRyaXZlcidzIFBDUyBmaXJzdCwgdGhlbiB0aGUgaW50ZWdyYXRlZCBQQ1MuICovXFxuK1xcdGlmIChwcml2LVxcdTAwM2Vody1cXHUwMDNlcGh5bGlua19wY3MpXFxuK1xcdFxcdHJldHVybiBwcml2LVxcdTAwM2Vody1cXHUwMDNlcGh5bGlua19wY3M7XFxuK1xcbitcXHRpZiAocHJpdi1cXHUwMDNlaW50ZWdyYXRlZF9wY3MpXFxuK1xcdFxcdHJldHVybiBcXHUwMDI2cHJpdi1cXHUwMDNlaW50ZWdyYXRlZF9wY3MtXFx1MDAzZXBjcztcXG4rXFxuK1xcdHJldHVybiBOVUxMO1xcbit9XFxuK1xcbiBzdGF0aWMgaW50IHN0bW1hY190ZXN0X3BoeV9sb29wYmFjayhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuIHtcXG4gXFx0c3RydWN0IHN0bW1hY19wYWNrZXRfYXR0cnMgYXR0ciA9IHsgfTtcXG4rXFx0c3RydWN0IHBoeWxpbmtfcGNzICpwY3M7XFxuIFxcdGludCByZXQ7XFxuIFxcbi1cXHRpZiAoIXByaXYtXFx1MDAzZWRldi1cXHUwMDNlcGh5ZGV2KVxcbi1cXHRcXHRyZXR1cm4gLUVPUE5PVFNVUFA7XFxuK1xcdGlmIChwcml2LVxcdTAwM2VkZXYtXFx1MDAzZXBoeWRldikge1xcbitcXHRcXHRyZXQgPSBwaHlfbG9vcGJhY2socHJpdi1cXHUwMDNlZGV2LVxcdTAwM2VwaHlkZXYsIHRydWUsIDApO1xcbitcXHRcXHRpZiAocmV0KVxcbitcXHRcXHRcXHRyZXR1cm4gcmV0O1xcbiBcXG4tXFx0cmV0ID0gcGh5X2xvb3BiYWNrKHByaXYtXFx1MDAzZWRldi1cXHUwMDNlcGh5ZGV2LCB0cnVlLCAwKTtcXG4tXFx0aWYgKHJldClcXG4rXFx0XFx0YXR0ci5kc3QgPSBwcml2LVxcdTAwM2VkZXYtXFx1MDAzZWRldl9hZGRyO1xcbitcXHRcXHRyZXQgPSBfX3N0bW1hY190ZXN0X2xvb3BiYWNrKHByaXYsIFxcdTAwMjZhdHRyKTtcXG4rXFxuK1xcdFxcdHBoeV9sb29wYmFjayhwcml2LVxcdTAwM2VkZXYtXFx1MDAzZXBoeWRldiwgZmFsc2UsIDApO1xcbiBcXHRcXHRyZXR1cm4gcmV0O1xcbitcXHR9XFxuIFxcbi1cXHRhdHRyLmRzdCA9IHByaXYtXFx1MDAzZWRldi1cXHUwMDNlZGV2X2FkZHI7XFxuLVxcdHJldCA9IF9fc3RtbWFjX3Rlc3RfbG9vcGJhY2socHJpdiwgXFx1MDAyNmF0dHIpO1xcbitcXHQvKiBVc2UgUENTIGxvb3BiYWNrIGZvciBpbnRlcmZhY2VzIHdpdGhvdXQgYW4gZXh0ZXJuYWwgUEhZLiAqL1xcbitcXHRwY3MgPSBzdG1tYWNfc2VsZnRlc3RfZ2V0X3Bjcyhwcml2KTtcXG4rXFx0aWYgKHBjcykge1xcbitcXHRcXHRyZXQgPSBwaHlsaW5rX3Bjc19sb29wYmFjayhwY3MsIHRydWUpO1xcbitcXHRcXHRpZiAocmV0KVxcbitcXHRcXHRcXHRyZXR1cm4gcmV0O1xcbiBcXG4tXFx0cGh5X2xvb3BiYWNrKHByaXYtXFx1MDAzZWRldi1cXHUwMDNlcGh5ZGV2LCBmYWxzZSwgMCk7XFxuLVxcdHJldHVybiByZXQ7XFxuK1xcdFxcdGF0dHIuZHN0ID0gcHJpdi1cXHUwMDNlZGV2LVxcdTAwM2VkZXZfYWRkcjtcXG4rXFx0XFx0cmV0ID0gX19zdG1tYWNfdGVzdF9sb29wYmFjayhwcml2LCBcXHUwMDI2YXR0cik7XFxuK1xcbitcXHRcXHRwaHlsaW5rX3Bjc19sb29wYmFjayhwY3MsIGZhbHNlKTtcXG4rXFx0XFx0cmV0dXJuIHJldDtcXG4rXFx0fVxcbitcXG4rXFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xcbiB9XFxuIFxcbiBzdGF0aWMgaW50IHN0bW1hY190ZXN0X21tYyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuQEAgLTE5ODYsNiArMjAxNSw5IEBAIHZvaWQgc3RtbWFjX3NlbGZ0ZXN0X3J1bihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbiBcXHRcXHRcXHRyZXQgPSAtRU9QTk9UU1VQUDtcXG4gXFx0XFx0XFx0aWYgKGRldi1cXHUwMDNlcGh5ZGV2KVxcbiBcXHRcXHRcXHRcXHRyZXQgPSBwaHlfbG9vcGJhY2soZGV2LVxcdTAwM2VwaHlkZXYsIHRydWUsIDApO1xcbitcXHRcXHRcXHRlbHNlXFxuK1xcdFxcdFxcdFxcdHJldCA9IHBoeWxpbmtfcGNzX2xvb3BiYWNrKHN0bW1hY19zZWxmdGVzdF9nZXRfcGNzKHByaXYpLFxcbitcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICB0cnVlKTtcXG4gXFx0XFx0XFx0aWYgKCFyZXQpXFxuIFxcdFxcdFxcdFxcdGJyZWFrO1xcbiBcXHRcXHRcXHRmYWxsdGhyb3VnaDtcXG5AQCAtMjAxOSw2ICsyMDUxLDkgQEAgdm9pZCBzdG1tYWNfc2VsZnRlc3RfcnVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuIFxcdFxcdFxcdHJldCA9IC1FT1BOT1RTVVBQO1xcbiBcXHRcXHRcXHRpZiAoZGV2LVxcdTAwM2VwaHlkZXYpXFxuIFxcdFxcdFxcdFxcdHJldCA9IHBoeV9sb29wYmFjayhkZXYtXFx1MDAzZXBoeWRldiwgZmFsc2UsIDApO1xcbitcXHRcXHRcXHRlbHNlXFxuK1xcdFxcdFxcdFxcdHJldCA9IHBoeWxpbmtfcGNzX2xvb3BiYWNrKHN0bW1hY19zZWxmdGVzdF9nZXRfcGNzKHByaXYpLFxcbitcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICBmYWxzZSk7XFxuIFxcdFxcdFxcdGlmICghcmV0KVxcbiBcXHRcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0XFx0ZmFsbHRocm91Z2g7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jXFxuaW5kZXggNTlkZmUzNWFmYTU0ZmMuLjY5MjQyY2FmZmFlZjUxIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmNcXG4rKysgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jXFxuQEAgLTk5Nyw2ICs5OTcsMjUgQEAgaW50IHBoeWxpbmtfcGNzX3ByZV9pbml0KHN0cnVjdCBwaHlsaW5rICpwbCwgc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpXFxuIH1cXG4gRVhQT1JUX1NZTUJPTF9HUEwocGh5bGlua19wY3NfcHJlX2luaXQpO1xcbiBcXG4rLyoqXFxuKyAqIHBoeWxpbmtfcGNzX2xvb3BiYWNrKCkgLSBFbmFibGUgb3IgZGlzYWJsZSBsb29wYmFjayBhdCB0aGUgUENTXFxuKyAqIEBwY3M6IGEgcG9pbnRlciB0byBhIFxcdTAwMjZzdHJ1Y3QgcGh5bGlua19wY3MuXFxuKyAqIEBlbmFibGU6IHRydWUgdG8gZW5hYmxlIGxvb3BiYWNrLCBmYWxzZSB0byBkaXNhYmxlXFxuKyAqXFxuKyAqIEVuYWJsZSBvciBkaXNhYmxlIGxvb3BiYWNrIG1vZGUgYXQgdGhlIFBDUyBsZXZlbC4gVGhpcyBpcyB1c2VkIGJ5IE1BQ1xcbisgKiBkcml2ZXJzIGZvciBzZWxmdGVzdCBwdXJwb3NlcyB3aGVuIG5vIGV4dGVybmFsIFBIWSBpcyBwcmVzZW50LlxcbisgKlxcbisgKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLlxcbisgKi9cXG4raW50IHBoeWxpbmtfcGNzX2xvb3BiYWNrKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCBib29sIGVuYWJsZSlcXG4re1xcbitcXHRpZiAocGNzIFxcdTAwMjZcXHUwMDI2IHBjcy1cXHUwMDNlb3BzLVxcdTAwM2VwY3NfbG9vcGJhY2spXFxuK1xcdFxcdHJldHVybiBwY3MtXFx1MDAzZW9wcy1cXHUwMDNlcGNzX2xvb3BiYWNrKHBjcywgZW5hYmxlKTtcXG4rXFxuK1xcdHJldHVybiAtRU9QTk9UU1VQUDtcXG4rfVxcbitFWFBPUlRfU1lNQk9MX0dQTChwaHlsaW5rX3Bjc19sb29wYmFjayk7XFxuK1xcbiBzdGF0aWMgdm9pZCBwaHlsaW5rX21hY19jb25maWcoc3RydWN0IHBoeWxpbmsgKnBsLFxcbiBcXHRcXHRcXHQgICAgICAgY29uc3Qgc3RydWN0IHBoeWxpbmtfbGlua19zdGF0ZSAqc3RhdGUpXFxuIHtcXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9waHlsaW5rLmggYi9pbmNsdWRlL2xpbnV4L3BoeWxpbmsuaFxcbmluZGV4IDJiYzBkYjNkNTJhYzhkLi42NmM3MDE2ZDRhY2RjYiAxMDA2NDRcXG4tLS0gYS9pbmNsdWRlL2xpbnV4L3BoeWxpbmsuaFxcbisrKyBiL2luY2x1ZGUvbGludXgvcGh5bGluay5oXFxuQEAgLTUxOCw2ICs1MTgsNyBAQCBzdHJ1Y3QgcGh5bGlua19wY3Mge1xcbiAgKlxcdFxcdCAgICB0aGUgTUFDLlxcbiAgKiBAcGNzX3ByZV9pbml0OiBjb25maWd1cmUgUENTIGNvbXBvbmVudHMgbmVjZXNzYXJ5IGZvciBNQUMgaGFyZHdhcmVcXG4gICogICAgICAgICAgICAgICAgaW5pdGlhbGl6YXRpb24gZS5nLiBSWCBjbG9jayBmb3Igc3RtbWFjLlxcbisgKiBAcGNzX2xvb3BiYWNrOiBlbmFibGUvZGlzYWJsZSBsb29wYmFjayBtb2RlIGF0IHRoZSBQQ1MuXFxuICAqL1xcbiBzdHJ1Y3QgcGh5bGlua19wY3Nfb3BzIHtcXG4gXFx0aW50ICgqcGNzX3ZhbGlkYXRlKShzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgdW5zaWduZWQgbG9uZyAqc3VwcG9ydGVkLFxcbkBAIC01NDIsNiArNTQzLDcgQEAgc3RydWN0IHBoeWxpbmtfcGNzX29wcyB7XFxuIFxcdHZvaWQgKCpwY3NfZGlzYWJsZV9lZWUpKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzKTtcXG4gXFx0dm9pZCAoKnBjc19lbmFibGVfZWVlKShzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcyk7XFxuIFxcdGludCAoKnBjc19wcmVfaW5pdCkoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpO1xcbitcXHRpbnQgKCpwY3NfbG9vcGJhY2spKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCBib29sIGVuYWJsZSk7XFxuIH07XFxuIFxcbiAjaWYgMCAvKiBGb3Iga2VybmVsLWRvYyBwdXJwb3NlcyBvbmx5LiAqL1xcbkBAIC03MTcsOCArNzE5LDIyIEBAIHZvaWQgcGNzX2VuYWJsZV9lZWUoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpO1xcbiAgKi9cXG4gaW50IHBjc19wcmVfaW5pdChzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcyk7XFxuIFxcbisvKipcXG4rICogcGNzX2xvb3BiYWNrKCkgLSBFbmFibGUgb3IgZGlzYWJsZSBsb29wYmFjayBhdCB0aGUgUENTXFxuKyAqIEBwY3M6IGEgcG9pbnRlciB0byBhIFxcdTAwMjZzdHJ1Y3QgcGh5bGlua19wY3MuXFxuKyAqIEBlbmFibGU6IHRydWUgdG8gZW5hYmxlIGxvb3BiYWNrLCBmYWxzZSB0byBkaXNhYmxlXFxuKyAqXFxuKyAqIEVuYWJsZSBvciBkaXNhYmxlIGxvb3BiYWNrIG1vZGUgYXQgdGhlIFBDUyBsZXZlbC4gVGhpcyBpcyB1c2VkIGJ5IE1BQ1xcbisgKiBkcml2ZXJzIGZvciBzZWxmdGVzdCBwdXJwb3NlcyB3aGVuIG5vIGV4dGVybmFsIFBIWSBpcyBwcmVzZW50LlxcbisgKlxcbisgKiBSZXR1cm5zIDAgb24gc3VjY2Vzcywgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuXFxuKyAqL1xcbitpbnQgcGNzX2xvb3BiYWNrKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCBib29sIGVuYWJsZSk7XFxuK1xcbiAjZW5kaWZcXG4gXFxuK2ludCBwaHlsaW5rX3Bjc19sb29wYmFjayhzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgYm9vbCBlbmFibGUpO1xcbitcXG4gc3RydWN0IHBoeWxpbmsgKnBoeWxpbmtfY3JlYXRlKHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqLFxcbiBcXHRcXHRcXHQgICAgICAgY29uc3Qgc3RydWN0IGZ3bm9kZV9oYW5kbGUgKixcXG4gXFx0XFx0XFx0ICAgICAgIHBoeV9pbnRlcmZhY2VfdCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjA6MDk6NDEuOTUzODczNjQ1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6ODU1OTQyNTcwOTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiU1RNTUFDX0VUSFwiLFxuICAgIFwiU1RNTUFDX1BDSVwiLFxuICAgIFwiU1RNTUFDX1NFTEZURVNUU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInBoeWxpbmtfcGNzX2xvb3BiYWNrXCIsXG4gICAgXCJzdG1tYWNfc2VsZnRlc3RfcnVuXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBsb29wYmFjayBzdXBwb3J0IHRvIHRoZSBzdG1tYWMgaW50ZWdyYXRlZCBQQ1MgYW5kIHBoeWxpbmssIHdoaWNoIGlzIHV0aWxpemVkIGJ5IHRoZSBzdG1tYWMgZXRodG9vbCBzZWxmdGVzdHMuIFRoaXMgY29kZSBpcyByZWFjaGFibGUgdmlhIHRoZSBTSU9DRVRIVE9PTCBpb2N0bCB3aXRoIHRoZSBFVEhUT09MX1RFU1QgY29tbWFuZC4gU3l6a2FsbGVyIGNhbiB0cmlnZ2VyIHRoaXMgYnkgaW5qZWN0aW5nIGEgdmlydHVhbCBQQ0kgc3RtbWFjIGRldmljZSB1c2luZyBzeXpfcGNpX2RldmljZV9hZGQgYW5kIGNhbGxpbmcgZXRodG9vbCBvbiB0aGUgcmVzdWx0aW5nIG5ldGRldi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZGVlMjhkN2FhMDA0MjgxZDNlMGFmMjNkOGVlYjAzNGU0ZDA2MGUwYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVsIDI3IDIwOjA5OjM4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3Bjcy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3Bjcy5jXG5pbmRleCBkZjM3YWY1YWI4MzdhZi4uOTBhMjFhMmY3ZTg3MzEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNzLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY3MuY1xuQEAgLTE2OCw2ICsxNjgsMjIgQEAgc3RhdGljIHZvaWQgZHdtYWNfaW50ZWdyYXRlZF9wY3NfYW5fcmVzdGFydChzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcylcbiBcdH1cbiB9XG4gXG4rc3RhdGljIGludCBkd21hY19pbnRlZ3JhdGVkX3Bjc19sb29wYmFjayhzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgYm9vbCBlbmFibGUpXG4re1xuK1x0c3RydWN0IHN0bW1hY19wY3MgKnNwY3MgPSBwaHlsaW5rX3Bjc190b19zdG1tYWNfcGNzKHBjcyk7XG4rXHR2b2lkIF9faW9tZW0gKmFuX2NvbnRyb2wgPSBzcGNzLVx1MDAzZWJhc2UgKyBHTUFDX0FOX0NUUkwoMCk7XG4rXHR1MzIgY3RybDtcbitcbitcdGN0cmwgPSByZWFkbChhbl9jb250cm9sKTtcbitcdGlmIChlbmFibGUpXG4rXHRcdGN0cmwgfD0gR01BQ19BTl9DVFJMX0VMRTtcbitcdGVsc2VcbitcdFx0Y3RybCBcdTAwMjY9IH5HTUFDX0FOX0NUUkxfRUxFO1xuK1x0d3JpdGVsKGN0cmwsIGFuX2NvbnRyb2wpO1xuK1xuK1x0cmV0dXJuIDA7XG4rfVxuK1xuIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5bGlua19wY3Nfb3BzIGR3bWFjX2ludGVncmF0ZWRfcGNzX29wcyA9IHtcbiBcdC5wY3NfaW5iYW5kX2NhcHMgPSBkd21hY19pbnRlZ3JhdGVkX3Bjc19pbmJhbmRfY2FwcyxcbiBcdC5wY3NfZW5hYmxlID0gZHdtYWNfaW50ZWdyYXRlZF9wY3NfZW5hYmxlLFxuQEAgLTE3NSw2ICsxOTEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBoeWxpbmtfcGNzX29wcyBkd21hY19pbnRlZ3JhdGVkX3Bjc19vcHMgPSB7XG4gXHQucGNzX2dldF9zdGF0ZSA9IGR3bWFjX2ludGVncmF0ZWRfcGNzX2dldF9zdGF0ZSxcbiBcdC5wY3NfY29uZmlnID0gZHdtYWNfaW50ZWdyYXRlZF9wY3NfY29uZmlnLFxuIFx0LnBjc19hbl9yZXN0YXJ0ID0gZHdtYWNfaW50ZWdyYXRlZF9wY3NfYW5fcmVzdGFydCxcbitcdC5wY3NfbG9vcGJhY2sgPSBkd21hY19pbnRlZ3JhdGVkX3Bjc19sb29wYmFjayxcbiB9O1xuIFxuIHZvaWQgc3RtbWFjX2ludGVncmF0ZWRfcGNzX2lycShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHUzMiBzdGF0dXMsXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3NlbGZ0ZXN0cy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3NlbGZ0ZXN0cy5jXG5pbmRleCAyOWU4MjRiZDkwY2E2Yi4uNzdhNDU3YjJmYTVjZjcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfc2VsZnRlc3RzLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19zZWxmdGVzdHMuY1xuQEAgLTE5LDYgKzE5LDcgQEBcbiAjaW5jbHVkZSBcdTAwM2NuZXQvdWRwLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NuZXQvdGNfYWN0L3RjX2dhY3QuaFx1MDAzZVxuICNpbmNsdWRlIFwic3RtbWFjLmhcIlxuKyNpbmNsdWRlIFwic3RtbWFjX3Bjcy5oXCJcbiBcbiBzdHJ1Y3Qgc3RtbWFjaGRyIHtcbiBcdF9fYmUzMiB2ZXJzaW9uO1xuQEAgLTM3NCwyMyArMzc1LDUxIEBAIHN0YXRpYyBpbnQgc3RtbWFjX3Rlc3RfbWFjX2xvb3BiYWNrKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbiBcdHJldHVybiBfX3N0bW1hY190ZXN0X2xvb3BiYWNrKHByaXYsIFx1MDAyNmF0dHIpO1xuIH1cbiBcbitzdGF0aWMgc3RydWN0IHBoeWxpbmtfcGNzICpzdG1tYWNfc2VsZnRlc3RfZ2V0X3BjcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG4re1xuK1x0LyogVHJ5IGdsdWUgZHJpdmVyJ3MgUENTIGZpcnN0LCB0aGVuIHRoZSBpbnRlZ3JhdGVkIFBDUy4gKi9cbitcdGlmIChwcml2LVx1MDAzZWh3LVx1MDAzZXBoeWxpbmtfcGNzKVxuK1x0XHRyZXR1cm4gcHJpdi1cdTAwM2Vody1cdTAwM2VwaHlsaW5rX3BjcztcbitcbitcdGlmIChwcml2LVx1MDAzZWludGVncmF0ZWRfcGNzKVxuK1x0XHRyZXR1cm4gXHUwMDI2cHJpdi1cdTAwM2VpbnRlZ3JhdGVkX3Bjcy1cdTAwM2VwY3M7XG4rXG4rXHRyZXR1cm4gTlVMTDtcbit9XG4rXG4gc3RhdGljIGludCBzdG1tYWNfdGVzdF9waHlfbG9vcGJhY2soc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuIHtcbiBcdHN0cnVjdCBzdG1tYWNfcGFja2V0X2F0dHJzIGF0dHIgPSB7IH07XG4rXHRzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcztcbiBcdGludCByZXQ7XG4gXG4tXHRpZiAoIXByaXYtXHUwMDNlZGV2LVx1MDAzZXBoeWRldilcbi1cdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuK1x0aWYgKHByaXYtXHUwMDNlZGV2LVx1MDAzZXBoeWRldikge1xuK1x0XHRyZXQgPSBwaHlfbG9vcGJhY2socHJpdi1cdTAwM2VkZXYtXHUwMDNlcGh5ZGV2LCB0cnVlLCAwKTtcbitcdFx0aWYgKHJldClcbitcdFx0XHRyZXR1cm4gcmV0O1xuIFxuLVx0cmV0ID0gcGh5X2xvb3BiYWNrKHByaXYtXHUwMDNlZGV2LVx1MDAzZXBoeWRldiwgdHJ1ZSwgMCk7XG4tXHRpZiAocmV0KVxuK1x0XHRhdHRyLmRzdCA9IHByaXYtXHUwMDNlZGV2LVx1MDAzZWRldl9hZGRyO1xuK1x0XHRyZXQgPSBfX3N0bW1hY190ZXN0X2xvb3BiYWNrKHByaXYsIFx1MDAyNmF0dHIpO1xuK1xuK1x0XHRwaHlfbG9vcGJhY2socHJpdi1cdTAwM2VkZXYtXHUwMDNlcGh5ZGV2LCBmYWxzZSwgMCk7XG4gXHRcdHJldHVybiByZXQ7XG4rXHR9XG4gXG4tXHRhdHRyLmRzdCA9IHByaXYtXHUwMDNlZGV2LVx1MDAzZWRldl9hZGRyO1xuLVx0cmV0ID0gX19zdG1tYWNfdGVzdF9sb29wYmFjayhwcml2LCBcdTAwMjZhdHRyKTtcbitcdC8qIFVzZSBQQ1MgbG9vcGJhY2sgZm9yIGludGVyZmFjZXMgd2l0aG91dCBhbiBleHRlcm5hbCBQSFkuICovXG4rXHRwY3MgPSBzdG1tYWNfc2VsZnRlc3RfZ2V0X3Bjcyhwcml2KTtcbitcdGlmIChwY3MpIHtcbitcdFx0cmV0ID0gcGh5bGlua19wY3NfbG9vcGJhY2socGNzLCB0cnVlKTtcbitcdFx0aWYgKHJldClcbitcdFx0XHRyZXR1cm4gcmV0O1xuIFxuLVx0cGh5X2xvb3BiYWNrKHByaXYtXHUwMDNlZGV2LVx1MDAzZXBoeWRldiwgZmFsc2UsIDApO1xuLVx0cmV0dXJuIHJldDtcbitcdFx0YXR0ci5kc3QgPSBwcml2LVx1MDAzZWRldi1cdTAwM2VkZXZfYWRkcjtcbitcdFx0cmV0ID0gX19zdG1tYWNfdGVzdF9sb29wYmFjayhwcml2LCBcdTAwMjZhdHRyKTtcbitcbitcdFx0cGh5bGlua19wY3NfbG9vcGJhY2socGNzLCBmYWxzZSk7XG4rXHRcdHJldHVybiByZXQ7XG4rXHR9XG4rXG4rXHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4gfVxuIFxuIHN0YXRpYyBpbnQgc3RtbWFjX3Rlc3RfbW1jKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbkBAIC0xOTg2LDYgKzIwMTUsOSBAQCB2b2lkIHN0bW1hY19zZWxmdGVzdF9ydW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbiBcdFx0XHRyZXQgPSAtRU9QTk9UU1VQUDtcbiBcdFx0XHRpZiAoZGV2LVx1MDAzZXBoeWRldilcbiBcdFx0XHRcdHJldCA9IHBoeV9sb29wYmFjayhkZXYtXHUwMDNlcGh5ZGV2LCB0cnVlLCAwKTtcbitcdFx0XHRlbHNlXG4rXHRcdFx0XHRyZXQgPSBwaHlsaW5rX3Bjc19sb29wYmFjayhzdG1tYWNfc2VsZnRlc3RfZ2V0X3Bjcyhwcml2KSxcbitcdFx0XHRcdFx0XHRcdCAgIHRydWUpO1xuIFx0XHRcdGlmICghcmV0KVxuIFx0XHRcdFx0YnJlYWs7XG4gXHRcdFx0ZmFsbHRocm91Z2g7XG5AQCAtMjAxOSw2ICsyMDUxLDkgQEAgdm9pZCBzdG1tYWNfc2VsZnRlc3RfcnVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXHRcdFx0cmV0ID0gLUVPUE5PVFNVUFA7XG4gXHRcdFx0aWYgKGRldi1cdTAwM2VwaHlkZXYpXG4gXHRcdFx0XHRyZXQgPSBwaHlfbG9vcGJhY2soZGV2LVx1MDAzZXBoeWRldiwgZmFsc2UsIDApO1xuK1x0XHRcdGVsc2VcbitcdFx0XHRcdHJldCA9IHBoeWxpbmtfcGNzX2xvb3BiYWNrKHN0bW1hY19zZWxmdGVzdF9nZXRfcGNzKHByaXYpLFxuK1x0XHRcdFx0XHRcdFx0ICAgZmFsc2UpO1xuIFx0XHRcdGlmICghcmV0KVxuIFx0XHRcdFx0YnJlYWs7XG4gXHRcdFx0ZmFsbHRocm91Z2g7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYyBiL2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmNcbmluZGV4IDU5ZGZlMzVhZmE1NGZjLi42OTI0MmNhZmZhZWY1MSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmNcbisrKyBiL2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmNcbkBAIC05OTcsNiArOTk3LDI1IEBAIGludCBwaHlsaW5rX3Bjc19wcmVfaW5pdChzdHJ1Y3QgcGh5bGluayAqcGwsIHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzKVxuIH1cbiBFWFBPUlRfU1lNQk9MX0dQTChwaHlsaW5rX3Bjc19wcmVfaW5pdCk7XG4gXG4rLyoqXG4rICogcGh5bGlua19wY3NfbG9vcGJhY2soKSAtIEVuYWJsZSBvciBkaXNhYmxlIGxvb3BiYWNrIGF0IHRoZSBQQ1NcbisgKiBAcGNzOiBhIHBvaW50ZXIgdG8gYSBcdTAwMjZzdHJ1Y3QgcGh5bGlua19wY3MuXG4rICogQGVuYWJsZTogdHJ1ZSB0byBlbmFibGUgbG9vcGJhY2ssIGZhbHNlIHRvIGRpc2FibGVcbisgKlxuKyAqIEVuYWJsZSBvciBkaXNhYmxlIGxvb3BiYWNrIG1vZGUgYXQgdGhlIFBDUyBsZXZlbC4gVGhpcyBpcyB1c2VkIGJ5IE1BQ1xuKyAqIGRyaXZlcnMgZm9yIHNlbGZ0ZXN0IHB1cnBvc2VzIHdoZW4gbm8gZXh0ZXJuYWwgUEhZIGlzIHByZXNlbnQuXG4rICpcbisgKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLlxuKyAqL1xuK2ludCBwaHlsaW5rX3Bjc19sb29wYmFjayhzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgYm9vbCBlbmFibGUpXG4re1xuK1x0aWYgKHBjcyBcdTAwMjZcdTAwMjYgcGNzLVx1MDAzZW9wcy1cdTAwM2VwY3NfbG9vcGJhY2spXG4rXHRcdHJldHVybiBwY3MtXHUwMDNlb3BzLVx1MDAzZXBjc19sb29wYmFjayhwY3MsIGVuYWJsZSk7XG4rXG4rXHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4rfVxuK0VYUE9SVF9TWU1CT0xfR1BMKHBoeWxpbmtfcGNzX2xvb3BiYWNrKTtcbitcbiBzdGF0aWMgdm9pZCBwaHlsaW5rX21hY19jb25maWcoc3RydWN0IHBoeWxpbmsgKnBsLFxuIFx0XHRcdCAgICAgICBjb25zdCBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSlcbiB7XG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9waHlsaW5rLmggYi9pbmNsdWRlL2xpbnV4L3BoeWxpbmsuaFxuaW5kZXggMmJjMGRiM2Q1MmFjOGQuLjY2YzcwMTZkNGFjZGNiIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9waHlsaW5rLmhcbisrKyBiL2luY2x1ZGUvbGludXgvcGh5bGluay5oXG5AQCAtNTE4LDYgKzUxOCw3IEBAIHN0cnVjdCBwaHlsaW5rX3BjcyB7XG4gICpcdFx0ICAgIHRoZSBNQUMuXG4gICogQHBjc19wcmVfaW5pdDogY29uZmlndXJlIFBDUyBjb21wb25lbnRzIG5lY2Vzc2FyeSBmb3IgTUFDIGhhcmR3YXJlXG4gICogICAgICAgICAgICAgICAgaW5pdGlhbGl6YXRpb24gZS5nLiBSWCBjbG9jayBmb3Igc3RtbWFjLlxuKyAqIEBwY3NfbG9vcGJhY2s6IGVuYWJsZS9kaXNhYmxlIGxvb3BiYWNrIG1vZGUgYXQgdGhlIFBDUy5cbiAgKi9cbiBzdHJ1Y3QgcGh5bGlua19wY3Nfb3BzIHtcbiBcdGludCAoKnBjc192YWxpZGF0ZSkoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIHVuc2lnbmVkIGxvbmcgKnN1cHBvcnRlZCxcbkBAIC01NDIsNiArNTQzLDcgQEAgc3RydWN0IHBoeWxpbmtfcGNzX29wcyB7XG4gXHR2b2lkICgqcGNzX2Rpc2FibGVfZWVlKShzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcyk7XG4gXHR2b2lkICgqcGNzX2VuYWJsZV9lZWUpKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzKTtcbiBcdGludCAoKnBjc19wcmVfaW5pdCkoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpO1xuK1x0aW50ICgqcGNzX2xvb3BiYWNrKShzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgYm9vbCBlbmFibGUpO1xuIH07XG4gXG4gI2lmIDAgLyogRm9yIGtlcm5lbC1kb2MgcHVycG9zZXMgb25seS4gKi9cbkBAIC03MTcsOCArNzE5LDIyIEBAIHZvaWQgcGNzX2VuYWJsZV9lZWUoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpO1xuICAqL1xuIGludCBwY3NfcHJlX2luaXQoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpO1xuIFxuKy8qKlxuKyAqIHBjc19sb29wYmFjaygpIC0gRW5hYmxlIG9yIGRpc2FibGUgbG9vcGJhY2sgYXQgdGhlIFBDU1xuKyAqIEBwY3M6IGEgcG9pbnRlciB0byBhIFx1MDAyNnN0cnVjdCBwaHlsaW5rX3Bjcy5cbisgKiBAZW5hYmxlOiB0cnVlIHRvIGVuYWJsZSBsb29wYmFjaywgZmFsc2UgdG8gZGlzYWJsZVxuKyAqXG4rICogRW5hYmxlIG9yIGRpc2FibGUgbG9vcGJhY2sgbW9kZSBhdCB0aGUgUENTIGxldmVsLiBUaGlzIGlzIHVzZWQgYnkgTUFDXG4rICogZHJpdmVycyBmb3Igc2VsZnRlc3QgcHVycG9zZXMgd2hlbiBubyBleHRlcm5hbCBQSFkgaXMgcHJlc2VudC5cbisgKlxuKyAqIFJldHVybnMgMCBvbiBzdWNjZXNzLCBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS5cbisgKi9cbitpbnQgcGNzX2xvb3BiYWNrKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCBib29sIGVuYWJsZSk7XG4rXG4gI2VuZGlmXG4gXG4raW50IHBoeWxpbmtfcGNzX2xvb3BiYWNrKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCBib29sIGVuYWJsZSk7XG4rXG4gc3RydWN0IHBoeWxpbmsgKnBoeWxpbmtfY3JlYXRlKHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqLFxuIFx0XHRcdCAgICAgICBjb25zdCBzdHJ1Y3QgZndub2RlX2hhbmRsZSAqLFxuIFx0XHRcdCAgICAgICBwaHlfaW50ZXJmYWNlX3QsXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMDowOTo0MS45NTM4ODAwOTVaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5ODMzMjg1NzYzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgVmlhYmlsaXR5IG9mIFNUTU1BQyBMb29wYmFjayBTdXBwb3J0IGluIGEgVmlydHVhbGl6ZWQgQ29udGV4dCoqXG5cbk9rYXksIHNvIHdlJ3ZlIGdvdCBhIHBhdGNoIGhlcmUgdGhhdCBhZGRzIGxvb3BiYWNrIHN1cHBvcnQgdG8gdGhlIGBzdG1tYWNgIFBDUyBkcml2ZXIgYW5kIHBoeWxpbmssIHRvdWNoaW5nIGEgZmV3IGtleSBmaWxlczogYHN0bW1hY19wY3MuY2AsIGBzdG1tYWNfc2VsZnRlc3RzLmNgLCBgcGh5bGluay5jYCwgYW5kIGBwaHlsaW5rLmhgLiBUaGlzIGlzIGludGVyZXN0aW5nIGJlY2F1c2UgdGhlIGBzdG1tYWNgIGRyaXZlciBoYW5kbGVzIFNUTWljcm9lbGVjdHJvbmljcycgRXRoZXJuZXQgTUFDcy4gTXkgaW1tZWRpYXRlIHF1ZXN0aW9uLCBnaXZlbiB0aGF0IEknbSB3b3JraW5nIGluIGEgcG90ZW50aWFsbHkgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIGlzOiBDYW4gSSBhY3R1YWxseSAqcmVhY2gqIHRoaXMgZnVuY3Rpb25hbGl0eT9cblxuVHlwaWNhbGx5LCBgc3RtbWFjYCBpcyBhIHBsYXRmb3JtIGRyaXZlciwgdGlnaHRseSBjb3VwbGVkIHdpdGggc3BlY2lmaWMgU29DcyDigJMgQVJNLCBJbnRlbCBFbGtoYXJ0IExha2UsIHRoYXQgc29ydCBvZiB0aGluZy4gQnV0IHRoZXJlJ3MgdGhhdCBQQ0kgd3JhcHBlciwgYHN0bW1hY19wY2kuY2AsIHdoaWNoIHN1cHBvcnRzIHNvbWUgSW50ZWwgYW5kIEFNRCBjaGlwcy4gU28sIGlzIHRoZXJlIGFueSBwb3NzaWJpbGl0eSB0aGF0IFFFTVUsIG15IHZpcnR1YWxpemF0aW9uIHRvb2wgb2YgY2hvaWNlLCBlbXVsYXRlcyBvbmUgb2YgdGhlc2UgUENJIGRldmljZXM/IEEgcXVpY2sgY2hlY2sgc2hvd3MgUUVNVSBzdXBwb3J0cyB0aGUgbGlrZXMgb2YgYGUxMDAwYCwgYGUxMDAwZWAsIGBydGw4MTM5YCwgZXRjLiwgYnV0IG5vdGhpbmcgZGlyZWN0bHkgbGFiZWxlZCBgc3RtbWFjYC5cblxuSG1tLCBpcyB0aGVyZSBldmVuIGEgcGxhdGZvcm0gKndpdGgqIGBzdG1tYWNgIHRoYXQgUUVNVSBtaWdodCBlbXVsYXRlPyBMZXQncyBzZWUuLi4gQWxsd2lubmVyLCBpLk1YLCBOUENNLCBDYWRlbmNlLCBGVEdNQUMsIExBTjkxMTgsIFNNQzkxYzExMSwgU3RlbGxhcmlzLCBYR01BQy4uLiB3YWl0LCBYR01BQyAqaXMqIGEgU3lub3BzeXMgRGVzaWduV2FyZSBNQUMsIGJ1dCBpdCdzIDEwRywgYW5kIGBzdG1tYWNgIGlzIGZvciAxMC8xMDAvMTAwMC4gTm90IHF1aXRlIHRoZSBzYW1lIHRoaW5nLlxuXG5TbywgcmVhbGlzdGljYWxseSwgaXMgYHN0bW1hY2AgKnByb2JlYWJsZSogaW4gUUVNVT8gSSBrbm93IHRoYXQsIG5vcm1hbGx5LCBgc3RtbWFjYCBpc24ndCBhIHRhcmdldCBmb3IgZnV6emluZyB3aXRoIHN5emthbGxlciBiZWNhdXNlIGl0IG5lZWRzIHNwZWNpZmljIGhhcmR3YXJlIHRoYXQgUUVNVSBkb2Vzbid0IG9mZmVyLiBCdXQgd2FpdCwgZGlkIHN5emthbGxlciBldmVuIHN1cHBvcnQgYHN0bW1hY2A/IE5vLCBpdCBsb29rcyBsaWtlIHN5emthbGxlciBzdGlja3MgdG8gbW9yZSBzdGFuZGFyZCBzdHVmZiBsaWtlIGB0dW5gLCBgdmV0aGAsIGB2aXJ0aW9gLCBgZTEwMDBgIGFuZCBzbyBvbiwgd2hpY2ggYXJlIGFsbCBlYXNpbHkgcmVwcm9kdWNlZC5cblxuTXkgY29uY2x1c2lvbiBpcyBpdCdzIHVubGlrZWx5IHRoaXMgbG9vcGJhY2sgc3VwcG9ydCBpcyBnb2luZyB0byBiZSBlYXNpbHkgdGVzdGFibGUgaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50LiBUaGlzIGlzIHNvbWV0aGluZyB0aGF0IG5lZWRzIGEgdGFyZ2V0ZWQsIGhhcmR3YXJlLXNwZWNpZmljIHNldHVwLiBUaGUgcXVlc3Rpb24gbm93IGJlY29tZXM6IGhvdyBkbyBJIHZlcmlmeSB0aGlzIGZ1bmN0aW9uYWxpdHkgd2l0aG91dCB0aGF0PyBJcyB0aGVyZSBhIHRlc3QgYmVuY2ggdGhhdCB1c2VzIHRoZSBgc3RtbWFjYCBkcml2ZXIgdGhhdCBJIGNvdWxkIGxvb2sgYXQsIHRvIHRyeSB0byB1bmRlcnN0YW5kIGlmIHRoZXJlIGlzIGEgd29ya2Fyb3VuZD9cblxuXG4iLCJJbnB1dFRva2VucyI6NDQ2NiwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY5OSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIwOjA5OjUxLjc4NzE2ODc3OFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjI0NzkzMzUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RtbWFjXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDExNjI3IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI5PWNvbmZpZyBTVE1NQUNfUExBVEZPUk1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzMtXFx0aGVscFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzQ6XFx0ICBUaGlzIHNlbGVjdHMgdGhlIHBsYXRmb3JtIHNwZWNpZmljIGJ1cyBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRyaXZlci5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1LVxcdCAgVGhpcyBpcyB0aGUgZHJpdmVyIHVzZWQgb24gc2V2ZXJhbCBTb0NzOlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz02MD1jb25maWcgRFdNQUNfQU5BUklPTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy02Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjY3OlxcdCAgVGhpcyBzZWxlY3RzIHRoZSBBbmFyaW9uIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNjgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTc4PWNvbmZpZyBEV01BQ19JTkdFTklDXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6ODY6XFx0ICBUaGlzIHNlbGVjdHMgSW5nZW5pYyBTb0NzIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctODctXFx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIG9uIGZvciB0aGUgSW5nZW5pYyBTb0NzXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTkwPWNvbmZpZyBEV01BQ19JUFE4MDZYXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTk3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6OTg6XFx0ICBUaGlzIHNlbGVjdHMgdGhlIElQUTgwNnggU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctOTktXFx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBkb2VzIG5vdCB1c2UgYW55IG9mIHRoZSBoYXJkd2FyZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xMTQ9Y29uZmlnIERXTUFDX01FRElBVEVLXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTExOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjEyMDpcXHQgIFRoaXMgc2VsZWN0cyB0aGUgTVQyNzEyIFNvQyBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRyaXZlci5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTEyMj1jb25maWcgRFdNQUNfTUVTT05cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTI5LVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBBbWxvZ2ljIE1lc29uIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMzA6XFx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIE1lc29uNixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEzMS1cXHQgIE1lc29uOCwgTWVzb244YiBhbmQgR1hCQiBTb0NzLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xMzM9Y29uZmlnIERXTUFDX05VVk9UT05cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTQxLVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBOdXZvdG9uIE1BMzUgc2VyaWVzIFNvQyBnbHVlIGxheWVyIHN1cHBvcnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE0MjpcXHQgIGZvciB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoZSBudXZvdG9uLWR3bWFjIGRyaXZlciBpc1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTQzLVxcdCAgdXNlZCBmb3IgTUEzNSBzZXJpZXMgU29Dcy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTQ1PWNvbmZpZyBEV01BQ19RQ09NX0VUSFFPU1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNTItXFx0ICBUaGlzIHNlbGVjdHMgdGhlIFF1YWxjb21tIEVUSFFPUyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTUzOlxcdCAgc3RtbWFjIGRldmljZSBkcml2ZXIuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNTU9Y29uZmlnIERXTUFDX1JFTkVTQVNfR0JFVEhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTYzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTY0OlxcdCAgVGhpcyBzZWxlY3RzIFJlbmVzYXMgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkZXZpY2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE2NS1cXHQgIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlIFJaL1YySChQKSBmYW1pbHksIFJaL1QySCBhbmRcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTY4PWNvbmZpZyBEV01BQ19ST0NLQ0hJUFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNzYtXFx0ICBUaGlzIHNlbGVjdHMgdGhlIFJvY2tjaGlwIFJLMzI4OCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTc3OlxcdCAgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTc4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTc5PWNvbmZpZyBEV01BQ19SWk4xXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE4Ny1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgUmVuZXNhcyBSWi9OMSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTg4OlxcdCAgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIHN1cHBvcnQgY2FuIG1ha2UgdXNlIG9mIGEgY3VzdG9tIE1JSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTg5LVxcdCAgY29udmVydGVyIFBDUyBkZXZpY2UuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE5MT1jb25maWcgRFdNQUNfUzMyXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE5ODpcXHQgIFRoaXMgc2VsZWN0cyBOWFAgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTk5LVxcdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlIFMzMkNDIHNlcmllc1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yMDM9Y29uZmlnIERXTUFDX1NPQ0ZQR0FcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjE0LVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBBbHRlcmEgU09DRlBHQSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMTU6XFx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjE2LVxcdCAgYXJyaWE1IGFuZCBjeWNsb25lNSBGUEdBIFNvQ3MuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTIxOD1jb25maWcgRFdNQUNfU09QSEdPXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIyNS1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgU29waGdvIFNvQyBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIyNjpcXHQgIGZvciB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjI3LVxcdCAgZXRoZXJuZXQgY29udHJvbGxlcnMgb24gdmFyaW91cyBTb3BoZ28gU29Dcy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjI5PWNvbmZpZyBEV01BQ19TUEFDRU1JVFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMzctXFx0ICBUaGlzIHNlbGVjdHMgdGhlIFNwYWNlbWl0IHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjM4OlxcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMzktXFx0ICBTcGFjZW1pdCBLMyBldGhlcm5ldCBjb250cm9sbGVycy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjQxPWNvbmZpZyBEV01BQ19TVEFSRklWRVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNDktXFx0ICBUaGlzIHNlbGVjdHMgdGhlIFN0YXJGaXZlIHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjUwOlxcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNTEtXFx0ICBTdGFyRml2ZSBKSDcxMDAgYW5kIEpINzExMCBldGhlcm5ldCBjb250cm9sbGVycy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjUzPWNvbmZpZyBEV01BQ19TVElcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjYwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjYxOlxcdCAgVGhpcyBzZWxlY3RzIFNUaSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNjItXFx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIG9uIGZvciB0aGUgU1RpIHNlcmllc1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yNjU9Y29uZmlnIERXTUFDX1NUTTMyXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI3MzpcXHQgIFRoaXMgc2VsZWN0cyBTVE0zMiBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNzQtXFx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIG9uIGZvciB0aGUgU1RNMzIgc2VyaWVzXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI3Nz1jb25maWcgRFdNQUNfU1VOWElcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjg0LVxcdCAgVGhpcyBzZWxlY3RzIEFsbHdpbm5lciBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI4NTpcXHQgIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBBMjAvQTMxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yODYtXFx0ICBHTUFDIGV0aGVybmV0IGNvbnRyb2xsZXIuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI4OD1jb25maWcgRFdNQUNfU1VOOElcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjk2LVxcdCAgVGhpcyBzZWxlY3RzIEFsbHdpbm5lciBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI5NzpcXHQgIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBIMy9BODNUL0E2NFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjk4LVxcdCAgRU1BQyBldGhlcm5ldCBjb250cm9sbGVyLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMDA9Y29uZmlnIERXTUFDX1NVTjU1SVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMDgtXFx0ICBUaGlzIHNlbGVjdHMgQWxsd2lubmVyIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzA5OlxcdCAgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIEE1MjMvVDUyN1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzEwLVxcdCAgR01BQzIwMCBldGhlcm5ldCBjb250cm9sbGVyLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMTI9Y29uZmlnIERXTUFDX1RIRUFEXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMxOC1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgVC1IRUFEIHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMxOTpcXHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgVC1IRUFEIFRIMTUyMFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzIwLVxcdCAgZXRoZXJuZXQgY29udHJvbGxlci5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzIyPWNvbmZpZyBEV01BQ19JTVg4XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMyOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMzMDpcXHQgIFRoaXMgc2VsZWN0cyBOWFAgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzMxLVxcdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgaS5NWDggc2VyaWVzIGxpa2VcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzM0PWNvbmZpZyBEV01BQ19JTlRFTF9QTEFUXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM0MC1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgSW50ZWwgcGxhdGZvcm0gc3BlY2lmaWMgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzQxOlxcdCAgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGUgSW50ZWwgS2VlbSBCYXlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM0Mi1cXHQgIFNvQy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzQ0PWNvbmZpZyBEV01BQ19MT09OR1NPTjFcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzUxOlxcdCAgVGhpcyBzZWxlY3RzIExvb25nc29uMSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNTItXFx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBMb29uZ3NvbjEtYmFzZWQgYm9hcmRzXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM1NT1jb25maWcgRFdNQUNfVEVHUkFcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzYwLVxcdCAgZm91bmQgb24gdGhlIE5WSURJQSBUZWdyYSBTb0MgZGV2aWNlcy4gVGhpcyBkcml2ZXIgcHJvdmlkZXMgdGhlIGdsdWVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM2MTpcXHQgIGxheWVyIG9uIHRvcCBvZiB0aGUgc3RtbWFjIGRyaXZlciByZXF1aXJlZCBmb3IgdGhlc2UgTlZJRElBIFRlZ3JhIFNvQ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzYyLVxcdCAgZGV2aWNlcy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzczPWNvbmZpZyBTVE1NQUNfTElCUENJXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3NS1cXHRoZWxwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNzY6XFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSBQQ0kgYnVzIGhlbHBlcnMgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzc3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mzc4PWNvbmZpZyBEV01BQ19JTlRFTFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zODUtXFx0ICBUaGlzIHNlbGVjdHMgdGhlIEludGVsIHBsYXRmb3JtIHNwZWNpZmljIGJ1cyBzdXBwb3J0IGZvciB0aGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM4NjpcXHQgIHN0bW1hYyBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIEludGVsIFF1YXJrL0VITC9UR0wuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zODctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zODg9Y29uZmlnIERXTUFDX0xPT05HU09OXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM5NC1cXHRoZWxwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozOTU6XFx0ICBUaGlzIHNlbGVjdHMgdGhlIExPT05HU09OIFBDSSBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTYtXFx0ICBTdXBwb3J0IGZvciBldGhlcm5ldCBjb250cm9sbGVyIG9uIExvb25nc29uLTJLMTAwMCBTb0MgYW5kIExTN0ExMDAwIGJyaWRnZS5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9NDA3PWNvbmZpZyBTVE1NQUNfUENJXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQxMi1cXHRoZWxwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo0MTM6XFx0ICBUaGlzIHNlbGVjdHMgdGhlIHBsYXRmb3JtIHNwZWNpZmljIGJ1cyBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRyaXZlci5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQxNC1cXHQgIFRoaXMgZHJpdmVyIHdhcyB0ZXN0ZWQgb24gWExJTlggWEMyVjMwMDAgRkYxMTUyQU1UMDIyMVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfU1RNTUFDX0VUSCkgKz0gc3RtbWFjLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTozOnN0bW1hYy1vYmpzOj0gc3RtbWFjX21haW4ubyBzdG1tYWNfZXRodG9vbC5vIHN0bW1hY19tZGlvLm8gcmluZ19tb2RlLm9cXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNC1cXHQgICAgICBjaGFpbl9tb2RlLm8gZHdtYWNfbGliLm8gZHdtYWMxMDAwX2NvcmUubyBkd21hYzEwMDBfZG1hLm9cXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNS1cXHQgICAgICBkd21hYzEwMF9jb3JlLm8gZHdtYWMxMDBfZG1hLm8gZW5oX2Rlc2MubyBub3JtX2Rlc2Mub1xcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo2OlxcdCAgICAgIG1tY19jb3JlLm8gc3RtbWFjX2h3dHN0YW1wLm8gc3RtbWFjX3B0cC5vIGR3bWFjNF9kZXNjcy5vXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTctXFx0ICAgICAgZHdtYWM0X2RtYS5vIGR3bWFjNF9saWIubyBkd21hYzRfY29yZS5vIGR3bWFjNS5vIGh3aWYubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6ODpcXHQgICAgICBzdG1tYWNfdGMubyBkd3hnbWFjMl9jb3JlLm8gZHd4Z21hYzJfZG1hLm8gZHd4Z21hYzJfZGVzY3MubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6OTpcXHQgICAgICBzdG1tYWNfeGRwLm8gc3RtbWFjX2VzdC5vIHN0bW1hY19mcGUubyBzdG1tYWNfdmxhbi5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToxMDpcXHQgICAgICBzdG1tYWNfcGNzLm8gJChzdG1tYWMteSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0xMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToxMjpzdG1tYWMtJChDT05GSUdfU1RNTUFDX1NFTEZURVNUUykgKz0gc3RtbWFjX3NlbGZ0ZXN0cy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMTQtIyBPcmRlcmluZyBtYXR0ZXJzLiBHZW5lcmljIGRyaXZlciBtdXN0IGJlIGxhc3QuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTU6b2JqLSQoQ09ORklHX1NUTU1BQ19QTEFURk9STSlcXHQrPSBzdG1tYWMtcGxhdGZvcm0ub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTE2LW9iai0kKENPTkZJR19EV01BQ19BTkFSSU9OKVxcdCs9IGR3bWFjLWFuYXJpb24ub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU9NDU9b2JqLSQoQ09ORklHX0RXTUFDX1ZJU0NPTlRJKVxcdCs9IGR3bWFjLXZpc2NvbnRpLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo0NjpzdG1tYWMtcGxhdGZvcm0tb2Jqczo9IHN0bW1hY19wbGF0Zm9ybS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNDctZHdtYWMtYWx0ci1zb2NmcGdhLW9ianMgOj0gZHdtYWMtc29jZnBnYS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NDk6b2JqLSQoQ09ORklHX1NUTU1BQ19MSUJQQ0kpXFx0Kz0gc3RtbWFjX2xpYnBjaS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTA6b2JqLSQoQ09ORklHX1NUTU1BQ19QQ0kpXFx0Kz0gc3RtbWFjLXBjaS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNTEtb2JqLSQoQ09ORklHX0RXTUFDX0lOVEVMKVxcdCs9IGR3bWFjLWludGVsLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTUzPW9iai0kKENPTkZJR19EV01BQ19NT1RPUkNPTU0pXFx0Kz0gZHdtYWMtbW90b3Jjb21tLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo1NDpzdG1tYWMtcGNpLW9ianM6PSBzdG1tYWNfcGNpLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MTU6I2luY2x1ZGUgXFxcInN0bW1hYy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MTc6c3RhdGljIGludCBqdW1ib19mcm0oc3RydWN0IHN0bW1hY190eF9xdWV1ZSAqdHhfcSwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTgtXFx0XFx0ICAgICBpbnQgY3N1bSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0yMC1cXHR1bnNpZ25lZCBpbnQgbm9wYWdlZF9sZW4gPSBza2JfaGVhZGxlbihza2IpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoyMTpcXHRzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYgPSB0eF9xLVxcdTAwM2Vwcml2X2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTIyLVxcdHVuc2lnbmVkIGludCBlbnRyeSA9IHR4X3EtXFx1MDAzZWN1cl90eDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy00NC1cXHQvKiBkbyBub3QgY2xvc2UgdGhlIGRlc2NyaXB0b3IgYW5kIGRvIG5vdCBzZXQgb3duIGJpdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzo0NTpcXHRzdG1tYWNfcHJlcGFyZV90eF9kZXNjKHByaXYsIGRlc2MsIDEsIGJ1Zl9sZW4sIGNzdW0sIFNUTU1BQ19DSEFJTl9NT0RFLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy00Ni1cXHRcXHRcXHQwLCBmYWxzZSwgc2tiLVxcdTAwM2VsZW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTYxLVxcdFxcdFxcdHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmxlbiA9IGJtYXg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjYyOlxcdFxcdFxcdHN0bW1hY19wcmVwYXJlX3R4X2Rlc2MocHJpdiwgZGVzYywgMCwgYm1heCwgY3N1bSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtNjMtXFx0XFx0XFx0XFx0XFx0U1RNTUFDX0NIQUlOX01PREUsIDEsIGZhbHNlLCBza2ItXFx1MDAzZWxlbik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtNzUtXFx0XFx0XFx0LyogbGFzdCBkZXNjcmlwdG9yIGNhbiBiZSBzZXQgbm93ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjc2OlxcdFxcdFxcdHN0bW1hY19wcmVwYXJlX3R4X2Rlc2MocHJpdiwgZGVzYywgMCwgbGVuLCBjc3VtLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy03Ny1cXHRcXHRcXHRcXHRcXHRTVE1NQUNfQ0hBSU5fTU9ERSwgMSwgdHJ1ZSwgc2tiLVxcdTAwM2VsZW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jPTk4PXN0YXRpYyB2b2lkIGluaXRfZG1hX2NoYWluKHZvaWQgKmRlcywgZG1hX2FkZHJfdCBwaHlfYWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xMjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjEyODpzdGF0aWMgdm9pZCByZWZpbGxfZGVzYzMoc3RydWN0IHN0bW1hY19yeF9xdWV1ZSAqcnhfcSwgc3RydWN0IGRtYV9kZXNjICpwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xMjkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxMzA6XFx0c3RydWN0IHN0bW1hY19wcml2ICpwcml2ID0gcnhfcS1cXHUwMDNlcHJpdl9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xMzEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTQyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNDM6c3RhdGljIHZvaWQgY2xlYW5fZGVzYzMoc3RydWN0IHN0bW1hY190eF9xdWV1ZSAqdHhfcSwgc3RydWN0IGRtYV9kZXNjICpwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNDQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNDU6XFx0c3RydWN0IHN0bW1hY19wcml2ICpwcml2ID0gdHhfcS1cXHUwMDNlcHJpdl9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNDYtXFx0dW5zaWduZWQgaW50IGVudHJ5ID0gdHhfcS1cXHUwMDNlZGlydHlfdHg7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTU5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNjA6Y29uc3Qgc3RydWN0IHN0bW1hY19tb2RlX29wcyBjaGFpbl9tb2RlX29wcyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTYxLVxcdC5pbml0ID0gaW5pdF9kbWFfY2hhaW4sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xNS0jaW5jbHVkZSBcXHUwMDNjbGludXgvbmV0ZGV2aWNlLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTY6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3N0bW1hYy5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTE3LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9waHkuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oPTQ5PXN0YXRpYyBpbmxpbmUgYm9vbCBkd21hY19pc194bWFjKGVudW0gZHdtYWNfY29yZV90eXBlIGNvcmVfdHlwZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTcwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjcxOnN0cnVjdCBzdG1tYWNfcV90eF9zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNzItXFx0dTY0X3N0YXRzX3QgdHhfYnl0ZXM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC03Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo3ODpzdHJ1Y3Qgc3RtbWFjX25hcGlfdHhfc3RhdHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTc5LVxcdHU2NF9zdGF0c190IHR4X3BhY2tldHM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC04NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo4NjpzdHJ1Y3Qgc3RtbWFjX3R4cV9zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtODctXFx0LyogVXBkYXRlcyBwcm90ZWN0ZWQgYnkgdHggcXVldWUgbG9jay4gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC04OC1cXHRzdHJ1Y3QgdTY0X3N0YXRzX3N5bmMgcV9zeW5jcDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo4OTpcXHRzdHJ1Y3Qgc3RtbWFjX3FfdHhfc3RhdHMgcTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05MC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTkyLVxcdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBuYXBpX3N5bmNwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjkzOlxcdHN0cnVjdCBzdG1tYWNfbmFwaV90eF9zdGF0cyBuYXBpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk0LX0gX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo5NjpzdHJ1Y3Qgc3RtbWFjX25hcGlfcnhfc3RhdHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk3LVxcdHU2NF9zdGF0c190IHJ4X2J5dGVzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjEwMzpzdHJ1Y3Qgc3RtbWFjX3J4cV9zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTA0LVxcdC8qIFVwZGF0ZXMgcHJvdGVjdGVkIGJ5IE5BUEkgcG9sbCBsb2dpYy4gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMDUtXFx0c3RydWN0IHU2NF9zdGF0c19zeW5jIG5hcGlfc3luY3A7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTA2OlxcdHN0cnVjdCBzdG1tYWNfbmFwaV9yeF9zdGF0cyBuYXBpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwNy19IF9fX19jYWNoZWxpbmVfYWxpZ25lZF9pbl9zbXA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMDktLyogVXBkYXRlcyBvbiBlYWNoIENQVSBwcm90ZWN0ZWQgYnkgbm90IGFsbG93aW5nIG5lc3RlZCBpcnFzLiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjExMDpzdHJ1Y3Qgc3RtbWFjX3BjcHVfc3RhdHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTExMS1cXHRzdHJ1Y3QgdTY0X3N0YXRzX3N5bmMgc3luY3A7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMTYtLyogRXh0cmEgc3RhdGlzdGljIGFuZCBkZWJ1ZyBpbmZvcm1hdGlvbiBleHBvc2VkIGJ5IGV0aHRvb2wgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoxMTc6c3RydWN0IHN0bW1hY19leHRyYV9zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTE4LVxcdC8qIFRyYW5zbWl0IGVycm9ycyAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMjM3LVxcdC8qIHBlciBxdWV1ZSBzdGF0aXN0aWNzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjM4OlxcdHN0cnVjdCBzdG1tYWNfdHhxX3N0YXRzIHR4cV9zdGF0c1tNVExfTUFYX1RYX1FVRVVFU107XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjM5OlxcdHN0cnVjdCBzdG1tYWNfcnhxX3N0YXRzIHJ4cV9zdGF0c1tNVExfTUFYX1JYX1FVRVVFU107XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjQwOlxcdHN0cnVjdCBzdG1tYWNfcGNwdV9zdGF0cyBfX3BlcmNwdSAqcGNwdV9zdGF0cztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNDEtXFx0dW5zaWduZWQgbG9uZyByeF9kcm9wcGVkO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMjQ3LS8qIFNhZmV0eSBGZWF0dXJlIHN0YXRpc3RpY3MgZXhwb3NlZCBieSBldGh0b29sICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjQ4OnN0cnVjdCBzdG1tYWNfc2FmZXR5X3N0YXRzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNDktXFx0dW5zaWduZWQgbG9uZyBtYWNfZXJyb3JzWzMyXTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI1Ni0jZGVmaW5lIFNUTU1BQ19TQUZFVFlfRkVBVF9TSVpFXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjI1NzpcXHQoc2l6ZW9mKHN0cnVjdCBzdG1tYWNfc2FmZXR5X3N0YXRzKSAvIHNpemVvZih1bnNpZ25lZCBsb25nKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNTgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaD00MTY9c3RydWN0IGRtYV9mZWF0dXJlcyB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC01NjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NTY1OnZvaWQgc3RtbWFjX2F4aV9ibGVuX3RvX21hc2sodTMyICpyZWd2YWwsIGNvbnN0IHUzMiAqYmxlbiwgc2l6ZV90IGxlbik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNTY2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NjEzPXN0cnVjdCBtYWNfZGV2aWNlX2luZm8ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxNDpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX29wcyAqbWFjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxNTpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2Rlc2Nfb3BzICpkZXNjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxNjpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2RtYV9vcHMgKmRtYTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTc6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY19tb2RlX29wcyAqbW9kZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTg6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY19od3RpbWVzdGFtcCAqcHRwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxOTpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3RjX29wcyAqdGM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjIwOlxcdGNvbnN0IHN0cnVjdCBzdG1tYWNfbW1jX29wcyAqbW1jO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYyMTpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2VzdF9vcHMgKmVzdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MjI6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY192bGFuX29wcyAqdmxhbjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02MjMtXFx0c3RydWN0IGR3X3hwY3MgKnhwY3M7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjQ1OnN0cnVjdCBzdG1tYWNfcnhfcm91dGluZyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjQ2LVxcdHUzMiByZWdfbWFzaztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY0OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTA6aW50IGR3bWFjMTAwX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjUxOmludCBkd21hYzEwMDBfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTI6aW50IGR3bWFjNF9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1MzppbnQgZHd4Z21hYzJfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTQ6aW50IGR3eGxnbWFjMl9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY1NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTY6dm9pZCBzdG1tYWNfc2V0X21hY19hZGRyKHZvaWQgX19pb21lbSAqaW9hZGRyLCBjb25zdCB1OCBhZGRyWzZdLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY1Ny1cXHRcXHRcXHQgdW5zaWduZWQgaW50IGhpZ2gsIHVuc2lnbmVkIGludCBsb3cpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1ODp2b2lkIHN0bW1hY19nZXRfbWFjX2FkZHIodm9pZCBfX2lvbWVtICppb2FkZHIsIHVuc2lnbmVkIGNoYXIgKmFkZHIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjU5LVxcdFxcdFxcdCB1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjYwOnZvaWQgc3RtbWFjX3NldF9tYWModm9pZCBfX2lvbWVtICppb2FkZHIsIGJvb2wgZW5hYmxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjYyOnZvaWQgc3RtbWFjX2R3bWFjNF9zZXRfbWFjX2FkZHIodm9pZCBfX2lvbWVtICppb2FkZHIsIGNvbnN0IHU4IGFkZHJbNl0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjYzLVxcdFxcdFxcdFxcdHVuc2lnbmVkIGludCBoaWdoLCB1bnNpZ25lZCBpbnQgbG93KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjQ6dm9pZCBzdG1tYWNfZHdtYWM0X2dldF9tYWNfYWRkcih2b2lkIF9faW9tZW0gKmlvYWRkciwgdW5zaWduZWQgY2hhciAqYWRkcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NjUtXFx0XFx0XFx0XFx0dW5zaWduZWQgaW50IGhpZ2gsIHVuc2lnbmVkIGludCBsb3cpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY2Njp2b2lkIHN0bW1hY19kd21hYzRfc2V0X21hYyh2b2lkIF9faW9tZW0gKmlvYWRkciwgYm9vbCBlbmFibGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY2Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMS0jaW5jbHVkZSBcXHUwMDNjbGludXgvb2ZfbmV0LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEyOiNpbmNsdWRlIFxcdTAwM2NsaW51eC9zdG1tYWMuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjE0OiNpbmNsdWRlIFxcXCJzdG1tYWMuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTU6I2luY2x1ZGUgXFxcInN0bW1hY19wbGF0Zm9ybS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xNi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz02Mz1hbmFyaW9uX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzo2NDpcXHRcXHQgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTY1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz05Mz1zdGF0aWMgaW50IGFuYXJpb25fZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy05Ni1cXHRzdHJ1Y3QgYW5hcmlvbl9nbWFjICpnbWFjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzo5NzpcXHRzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzo5ODpcXHRzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyBzdG1tYWNfcmVzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy05OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTAwOlxcdHJldCA9IHN0bW1hY19nZXRfcGxhdGZvcm1fcmVzb3VyY2VzKHBkZXYsIFxcdTAwMjZzdG1tYWNfcmVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTAxLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTAzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxMDQ6XFx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMDUtXFx0aWYgKElTX0VSUihwbGF0X2RhdCkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTE1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxMTY6XFx0cmV0dXJuIGRldm1fc3RtbWFjX3BsdGZyX3Byb2JlKHBkZXYsIHBsYXRfZGF0LCBcXHUwMDI2c3RtbWFjX3Jlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTExNy19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM9MTI1PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGFuYXJpb25fZHdtYWNfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEyOC1cXHRcXHQubmFtZSAgICAgICAgICAgPSBcXFwiYW5hcmlvbi1kd21hY1xcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEyOTpcXHRcXHQucG1cXHRcXHQ9IFxcdTAwMjZzdG1tYWNfcGx0ZnJfcG1fb3BzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMzAtXFx0XFx0Lm9mX21hdGNoX3RhYmxlID0gYW5hcmlvbl9kd21hY19tYXRjaCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjEtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3Jlc2V0LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyMjojaW5jbHVkZSBcXHUwMDNjbGludXgvc3RtbWFjLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI0OiNpbmNsdWRlIFxcXCJzdG1tYWNfcGxhdGZvcm0uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI1LSNpbmNsdWRlIFxcXCJkd21hYzQuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MzY9c3RhdGljIGludCBkd2NfZXRoX2R3bWFjX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mzc6XFx0XFx0XFx0XFx0ICAgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtNDMtXFx0XFx0cGxhdF9kYXQtXFx1MDAzZWF4aSA9IGRldm1fa3phbGxvYyhcXHUwMDI2cGRldi1cXHUwMDNlZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6NDQ6XFx0XFx0XFx0XFx0XFx0ICAgICBzaXplb2Yoc3RydWN0IHN0bW1hY19heGkpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtNDUtXFx0XFx0XFx0XFx0XFx0ICAgICBHRlBfS0VSTkVMKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9OTY9c3RhdGljIGludCBkd2NfcW9zX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzo5NzpcXHRcXHRcXHQgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjk4OlxcdFxcdFxcdCBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqc3RtbWFjX3JlcylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTk5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjEwMDpcXHRwbGF0X2RhdC1cXHUwMDNlcGNsayA9IHN0bW1hY19wbHRmcl9maW5kX2NsayhwbGF0X2RhdCwgXFxcInBoeV9yZWZfY2xrXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xMDEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTExNT1zdGF0aWMgdm9pZCB0ZWdyYV9lcW9zX2ZpeF9zcGVlZCh2b2lkICpic3BfcHJpdiwgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTE5LVxcdGJvb2wgbmVlZHNfY2FsaWJyYXRpb24gPSBmYWxzZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjEyMDpcXHRzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xMjEtXFx0dTMyIHZhbHVlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNDEtXFx0XFx0LyogQ2FsaWJyYXRpb24gc2hvdWxkIGJlIGRvbmUgd2l0aCB0aGUgTURJTyBidXMgaWRsZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTQyOlxcdFxcdHN0bW1hY19tZGlvX2xvY2socHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNDMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTE3Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjE3ODpcXHRcXHRzdG1tYWNfbWRpb191bmxvY2socHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNzktXFx0fSBlbHNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MTg2PXN0YXRpYyBpbnQgdGVncmFfZXFvc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTg3OlxcdFxcdFxcdCAgICBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTg4OlxcdFxcdFxcdCAgICBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqcmVzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTg5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjAzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjA0OlxcdHBsYXRfZGF0LVxcdTAwM2VjbGtfdHhfaSA9IHN0bW1hY19wbHRmcl9maW5kX2NsayhwbGF0X2RhdCwgXFxcInR4XFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yMDUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIzNy1cXHRwbGF0X2RhdC1cXHUwMDNlZml4X21hY19zcGVlZCA9IHRlZ3JhX2Vxb3NfZml4X3NwZWVkO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjM4OlxcdHBsYXRfZGF0LVxcdTAwM2VzZXRfY2xrX3R4X3JhdGUgPSBzdG1tYWNfc2V0X2Nsa190eF9yYXRlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjM5LVxcdHBsYXRfZGF0LVxcdTAwM2Vic3BfcHJpdiA9IGVxb3M7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTI1Mj1zdGF0aWMgdm9pZCB0ZWdyYV9lcW9zX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjUzLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI1NDpcXHRzdHJ1Y3QgdGVncmFfZXFvcyAqZXFvcyA9IGdldF9zdG1tYWNfYnNwX3ByaXYoXFx1MDAyNnBkZXYtXFx1MDAzZWRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNTUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTI2MD1zdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI2MS1cXHRpbnQgKCpwcm9iZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI2MjpcXHRcXHQgICAgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyNjM6XFx0XFx0ICAgICBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqcmVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI2NC1cXHR2b2lkICgqcmVtb3ZlKShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI2NTpcXHRjb25zdCBjaGFyICpzdG1tYWNfY2xrX25hbWU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNjYtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjY4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhIGR3Y19xb3NfZGF0YSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI2OS1cXHQucHJvYmUgPSBkd2NfcW9zX3Byb2JlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjcwOlxcdC5zdG1tYWNfY2xrX25hbWUgPSBcXFwiYXBiX3BjbGtcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjcxLX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTI3Mz1zdGF0aWMgY29uc3Qgc3RydWN0IGR3Y19ldGhfZHdtYWNfZGF0YSB0ZWdyYV9lcW9zX2RhdGEgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI3NS1cXHQucmVtb3ZlID0gdGVncmFfZXFvc19yZW1vdmUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyNzY6XFx0LnN0bW1hY19jbGtfbmFtZSA9IFxcXCJzbGF2ZV9idXNcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjc3LX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTI3OT1zdGF0aWMgY29uc3Qgc3RydWN0IGR3Y19ldGhfZHdtYWNfZGF0YSBmc2RfZXFvc19kYXRhID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjgwOlxcdC5zdG1tYWNfY2xrX25hbWUgPSBcXFwic2xhdmVfYnVzXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI4MS19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yODM9c3RhdGljIGludCBkd2NfZXRoX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI4NS1cXHRjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhICpkYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjg2OlxcdHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyODc6XFx0c3RydWN0IHN0bW1hY19yZXNvdXJjZXMgc3RtbWFjX3JlcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI4OC1cXHRpbnQgcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyOTI6XFx0bWVtc2V0KFxcdTAwMjZzdG1tYWNfcmVzLCAwLCBzaXplb2Yoc3RydWN0IHN0bW1hY19yZXNvdXJjZXMpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI5My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI5NC1cXHQvKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI5NTpcXHQgKiBTaW5jZSBzdG1tYWNfcGxhdGZvcm0gc3VwcG9ydHMgbmFtZSBJUlEgb25seSwgYmFzaWMgcGxhdGZvcm1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI5Ni1cXHQgKiByZXNvdXJjZSBpbml0aWFsaXphdGlvbiBpcyBkb25lIGluIHRoZSBnbHVlIGxvZ2ljLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjk3LVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjk4OlxcdHN0bW1hY19yZXMuaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI5OTpcXHRpZiAoc3RtbWFjX3Jlcy5pcnEgXFx1MDAzYyAwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzAwOlxcdFxcdHJldHVybiBzdG1tYWNfcmVzLmlycTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwMTpcXHRzdG1tYWNfcmVzLndvbF9pcnEgPSBzdG1tYWNfcmVzLmlycTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwMzpcXHRzdG1tYWNfcmVzLmFkZHIgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDQ6XFx0aWYgKElTX0VSUihzdG1tYWNfcmVzLmFkZHIpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzA1OlxcdFxcdHJldHVybiBQVFJfRVJSKHN0bW1hY19yZXMuYWRkcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDc6XFx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzA4LVxcdGlmIChJU19FUlIocGxhdF9kYXQpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMTY6XFx0cGxhdF9kYXQtXFx1MDAzZXN0bW1hY19jbGsgPSBzdG1tYWNfcGx0ZnJfZmluZF9jbGsocGxhdF9kYXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMTc6XFx0XFx0XFx0XFx0XFx0XFx0ICAgICBkYXRhLVxcdTAwM2VzdG1tYWNfY2xrX25hbWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzE5LVxcdGlmIChkYXRhLVxcdTAwM2Vwcm9iZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMyMDpcXHRcXHRyZXQgPSBkYXRhLVxcdTAwM2Vwcm9iZShwZGV2LCBwbGF0X2RhdCwgXFx1MDAyNnN0bW1hY19yZXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzIxLVxcdGlmIChyZXQgXFx1MDAzYyAwKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMyOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMzMDpcXHRyZXQgPSBzdG1tYWNfZHZyX3Byb2JlKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIHBsYXRfZGF0LCBcXHUwMDI2c3RtbWFjX3Jlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMzEtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MzQzPXN0YXRpYyB2b2lkIGR3Y19ldGhfZHdtYWNfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjM0NzpcXHRzdG1tYWNfZHZyX3JlbW92ZShcXHUwMDI2cGRldi1cXHUwMDNlZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM0OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MzYxPXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGR3Y19ldGhfZHdtYWNfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNjUtXFx0XFx0Lm5hbWUgICAgICAgICAgID0gXFxcImR3Yy1ldGgtZHdtYWNcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzY2OlxcdFxcdC5wbSAgICAgICAgICAgICA9IFxcdTAwMjZzdG1tYWNfcGx0ZnJfcG1fb3BzLFxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMDowOTo1Mi4wMDk2NTg0MzNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNjc0MzM2NDU5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgdGhlIHN0bW1hYyBEcml2ZXIncyBQQ0kgQ2FwYWJpbGl0aWVzKipcblxuT2theSwgc28gdGhlIHN0bW1hYyBkcml2ZXIgaXMgZnVuZGFtZW50YWxseSBhIHBsYXRmb3JtIGRyaXZlciwgdGhhdCBtdWNoIGlzIGNsZWFyLiBCdXQgdGhlbiBJIHJlbWVtYmVyIHNlZWluZyBgc3RtbWFjLXBjaS5jYCBpbiB0aGUgY29kZSwgd2hpY2ggaW1tZWRpYXRlbHkgc3VnZ2VzdHMgUENJIHN1cHBvcnQgaXMgYWxzbyBpbmNsdWRlZCwgYSBrZXkgZGlzdGluY3Rpb24uIE5vdywgdGhpcyByYWlzZXMgYSBjcnVjaWFsIHF1ZXN0aW9uIGZvciBteSBjdXJyZW50IHdvcmssIHdoYXRldmVyIGl0IG1heSBiZS4gSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIHdoZXRoZXIgUUVNVSwgdGhlIHZpcnR1YWwgbWFjaGluZSBJJ20gdXNpbmcsIGFjdHVhbGx5IGVtdWxhdGVzIGFueSBvZiB0aGUgc3BlY2lmaWMgUENJIGRldmljZXMgdGhhdCB0aGUgYHN0bW1hYy1wY2kuY2AgbW9kdWxlIGlzIGRlc2lnbmVkIHRvIGhhbmRsZS4gVGhpcyB3aWxsIGRpcmVjdGx5IGFmZmVjdCB0aGUgdXNlZnVsbmVzcyBvZiBteSBjdXJyZW50IHNldHVwIGZvciB0ZXN0aW5nIG9yIGRldmVsb3BtZW50LiBJdCdzIHRpbWUgdG8gaW52ZXN0aWdhdGUgUUVNVSdzIGRldmljZSBlbXVsYXRpb24gY2FwYWJpbGl0aWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDE5MSwiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIwOjA5OjU1LjY4Mzk5NzU3MloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTIwNDA3NTYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiUENJX0RFVklDRV9JRF9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz0xOTI9c3RhdGljIHZvaWQgc3RtbWFjX3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTk5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMDA6I2RlZmluZSBQQ0lfREVWSUNFX0lEX1NUTU1BQ19TVE1NQUNcXHRcXHQweDExMDhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjAxOiNkZWZpbmUgUENJX0RFVklDRV9JRF9TWU5PUFNZU19HTUFDNV9JRFxcdFxcdDB4NzEwMlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMDItXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIwOjA5OjU1LjgzNjA1NTA2OVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0NDA2MDYzODQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyBRRU1VIGFuZCBzdG1tYWMgRW11bGF0aW9uIGZvciBUZXN0aW5nKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhlc2UgUENJIElEcywgMHgxMTA4IGFuZCAweDcxMDIuIFRoZSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMsIGRvZXMgUUVNVSBuYXRpdmVseSBlbXVsYXRlIHRoZXNlIGRldmljZXM/IE15IGluaXRpYWwgdGhvdWdodCBpcyBubywgdGhhdCdzIG5vdCBzb21ldGhpbmcgSSByZWNhbGwgc2VlaW5nIGluIHRoZSBzdGFuZGFyZCBRRU1VIHNldHVwLiBCdXQgaG9sZCBvbiwgSSBzZWVtIHRvIHJlY2FsbCBzb21ldGhpbmcgYWJvdXQgc3l6a2FsbGVyIGFuZCBzdG1tYWMuIEl0J3MgdGltZSB0byBjaGVjayBpZiBzeXprYWxsZXIgaGFzIGFueSBwcmVkZWZpbmVkIGRlc2NyaXB0aW9ucyBvciBjb25maWd1cmF0aW9ucyBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuIFRoYXQgY291bGQgYmUgYSB2YWx1YWJsZSBsZWFkLCBvZmZlcmluZyBhIHBvdGVudGlhbCBwYXRoIGZvciB0ZXN0aW5nLCBldmVuIGlmIGRpcmVjdCBRRU1VIGVtdWxhdGlvbiBpc24ndCBhdmFpbGFibGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwNjc0LCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjA6MDk6NTkuMjc2NjY0MTUzWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1MTA3NTQ5NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzdG1tYWNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvY29yZS9zZWxmdGVzdHMuYy0zLSAqIENvcHlyaWdodCAoYykgMjAxOSBTeW5vcHN5cywgSW5jLiBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuXFxubmV0L2NvcmUvc2VsZnRlc3RzLmM6NDogKiBzdG1tYWMgU2VsZnRlc3RzIFN1cHBvcnRcXG5uZXQvY29yZS9zZWxmdGVzdHMuYy01LSAqXFxuLS1cXG5uZXQvY29yZS9zZWxmdGVzdHMuYy03LSAqXFxubmV0L2NvcmUvc2VsZnRlc3RzLmM6ODogKiBQb3J0ZWQgZnJvbSBzdG1tYWMgYnk6XFxubmV0L2NvcmUvc2VsZnRlc3RzLmMtOS0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgT2xla3NpaiBSZW1wZWwgXFx1MDAzY28ucmVtcGVsQHBlbmd1dHJvbml4LmRlXFx1MDAzZVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMDowOTo1OS41Mjc3NDU0NTdaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MTQ1MTMwOTQyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkRlY29kaW5nIHRoZSBTeXprYWxsZXIgQnVnIEh1bnQqKlxuXG5Pa2F5LCBsZXQncyBzZWUuIFRoZSBjb21taXQgbWVzc2FnZSBzYXlzIFwic3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3LFwiIGFuZCB0aGUgYXV0aG9yIGlzIFwic3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcIi4gVGhpcyBzY3JlYW1zIHN5emthbGxlciwgcmlnaHQ/IFRoaXMgbWVhbnMgaXQgZm91bmQgYSBidWcsIG9yIGlzIGN1cnJlbnRseSBmdXp6aW5nIHRoaXMgcGFydGljdWxhciBjaHVuayBvZiBjb2RlLiBIb3cgZGlkIGl0IG1hbmFnZSB0aGF0PyBUaGUga2V5IGlzIHByb2JhYmx5IGluIHRoYXQgZmlsZSwgYHN0bW1hY19zZWxmdGVzdHMuY2AuIFdhaXQgYSBzZWNvbmQsIHRoZSBwYXRjaCAqZG9lcyogbW9kaWZ5IGBzdG1tYWNfc2VsZnRlc3RzLmNgISBTbywgdGhlIGNvZGUgdW5kZXIgc2NydXRpbnkgaXMgcmVhY2hhYmxlIHZpYSBldGh0b29sIHNlbGZ0ZXN0cz9cblxuWWVzLCBsb29rcyBsaWtlIGBzdG1tYWNfc2VsZnRlc3RfcnVuYCBpcyBjYWxsZWQgYnkgZXRodG9vbCwgYW5kIHRoYXQncyB0aGUgZW50cnkgcG9pbnQuIEJ1dCBob3cgZGlkIHN5emthbGxlciBnZXQgYSBgc3RtbWFjYCBuZXR3b3JrIGRldmljZSAobmV0ZGV2KSB0byBhY3R1YWxseSBjYWxsIGV0aHRvb2wgb24/IEhtbS4uLiBtYXliZSBhIGR1bW15IGRyaXZlcj8gT3IgcGVyaGFwcyBhIHZpcnR1YWwgZGV2aWNlPyBXYWl0LCBgc3RtbWFjYCBpcyBhIHBsYXRmb3JtIGRyaXZlci4gQ2FuIHN5emthbGxlciBjcmVhdGUgcGxhdGZvcm0gZGV2aWNlcyB2aWEsIHNheSBgc3l6X2RldmxpbmtgIG9yIHNpbWlsYXI/IE5vLCBkZWZpbml0ZWx5IG5vdCB1c2luZyBgc3l6X2RldmxpbmtgLiBEb2VzIHN5emthbGxlciBvZmZlciBzb21lIGZvcm0gb2YgYHN5el9wbGF0Zm9ybV9kZXZpY2VfYWRkYD8gTm8sIG5vIHN1Y2ggZnVuY3Rpb25hbGl0eS5cblxuV2FpdC4uLiBFdXJla2EhIFN5emthbGxlciAqY2FuKiBpbmplY3QgUENJIGRldmljZXMgdXNpbmcgYHN5el9wY2lfZGV2aWNlX2FkZGAhIFRoYXQncyB0aGUgcHNldWRvLXN5c2NhbGwgSSB3YXMgbWlzc2luZy4gSXQgYWxsb3dzIGluamVjdGlvbiBvZiAqYW55KiBQQ0kgZGV2aWNlIGludG8gdGhlIGd1ZXN0LCBhc3N1bWluZyB0aGUga2VybmVsIHN1cHBvcnRzIFBDSSBob3RwbHVnIGFuZCB0aGUgc3BlY2lmaWMgZHJpdmVyIGlzIHByZXNlbnQuIE5vdywgYHN0bW1hY19wY2kuY2AgaXMgYSBQQ0kgZHJpdmVyISBUaGF0IGNvbmZpcm1zIGl0LCBzeXprYWxsZXIgKmNhbiogaW5qZWN0IHRoZSBgc3RtbWFjYCBkcml2ZXIgdXNpbmcgYHN5el9wY2lfZGV2aWNlX2FkZGAhIE5vdywgbGV0J3MganVzdCBjb25maXJtIHRoYXQgYHN0bW1hY19wY2kuY2AgaXMgY29tcGlsZWQgaW50byB0aGUga2VybmVsLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTA3MywiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM2OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMDoxMDowNi42NzI4ODA2NDlaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyOTQ2NjY2NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzdG1tYWNfcGNpXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT01Mz1vYmotJChDT05GSUdfRFdNQUNfTU9UT1JDT01NKVxcdCs9IGR3bWFjLW1vdG9yY29tbS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTQ6c3RtbWFjLXBjaS1vYmpzOj0gc3RtbWFjX3BjaS5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTI1PXN0cnVjdCBpbnRlbF9wcml2X2RhdGEge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0zOS0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjQwOnN0cnVjdCBzdG1tYWNfcGNpX2Z1bmNfZGF0YSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00MS1cXHR1bnNpZ25lZCBpbnQgZnVuYztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo0NTpzdHJ1Y3Qgc3RtbWFjX3BjaV9kbWlfZGF0YSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo0NjpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgKmZ1bmM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00Ny1cXHRzaXplX3QgbmZ1bmNzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjUwOnN0cnVjdCBzdG1tYWNfcGNpX2luZm8ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNTEtXFx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05MT1zdGF0aWMgY29uc3QgaW50IGFkbG5fdHNuX2xhbmVfcmVnc1tdID0gezZ9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5MzpzdGF0aWMgaW50IHN0bW1hY19wY2lfZmluZF9waHlfYWRkcihzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk0LVxcdFxcdFxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCAqZG1pX2xpc3QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NjpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgKmZ1bmNfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjk3OlxcdGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2RtaV9kYXRhICpkbWlfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk4LVxcdGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkICpkbWlfaWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTc1NT1zdGF0aWMgaW50IGVobF9zZ21paV9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy03NzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo3NzU6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3NnbWlpMWdfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTc3Ni1cXHQuc2V0dXAgPSBlaGxfc2dtaWlfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9Nzc5PXN0YXRpYyBpbnQgZWhsX3JnbWlpX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTc4OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjc5MDpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcmdtaWkxZ19pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNzkxLVxcdC5zZXR1cCA9IGVobF9yZ21paV9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04MTA9c3RhdGljIGludCBlaGxfcHNlMF9yZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTgxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjgxNzpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMF9yZ21paTFnX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04MTgtXFx0LnNldHVwID0gZWhsX3BzZTBfcmdtaWkxZ19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04MjE9c3RhdGljIGludCBlaGxfcHNlMF9zZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTgzOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjgzOTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMF9zZ21paTFnX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04NDAtXFx0LnNldHVwID0gZWhsX3BzZTBfc2dtaWkxZ19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04NTk9c3RhdGljIGludCBlaGxfcHNlMV9yZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg2NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjg2NjpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMV9yZ21paTFnX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04NjctXFx0LnNldHVwID0gZWhsX3BzZTFfcmdtaWkxZ19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04NzA9c3RhdGljIGludCBlaGxfcHNlMV9zZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjg4ODpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMV9zZ21paTFnX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04ODktXFx0LnNldHVwID0gZWhsX3BzZTFfc2dtaWkxZ19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05MTM9c3RhdGljIGludCB0Z2xfc2dtaWlfcGh5MF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05MjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5MjI6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gdGdsX3NnbWlpMWdfcGh5MF9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTIzLVxcdC5zZXR1cCA9IHRnbF9zZ21paV9waHkwX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTkyNj1zdGF0aWMgaW50IHRnbF9zZ21paV9waHkxX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTkzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjkzNTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyB0Z2xfc2dtaWkxZ19waHkxX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05MzYtXFx0LnNldHVwID0gdGdsX3NnbWlpX3BoeTFfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTM5PXN0YXRpYyBpbnQgYWRsc19zZ21paV9waHkwX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk0OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjk0OTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBhZGxzX3NnbWlpMWdfcGh5MF9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTUwLVxcdC5zZXR1cCA9IGFkbHNfc2dtaWlfcGh5MF9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05NTM9c3RhdGljIGludCBhZGxzX3NnbWlpX3BoeTFfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTYyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTYzOnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGFkbHNfc2dtaWkxZ19waHkxX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NjQtXFx0LnNldHVwID0gYWRsc19zZ21paV9waHkxX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTk5Mj1zdGF0aWMgaW50IGFkbG5fc2dtaWlfcGh5MF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTAxMTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBhZGxuX3NnbWlpMWdfcGh5MF9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAxMi1cXHQuc2V0dXAgPSBhZGxuX3NnbWlpX3BoeTBfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAxNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwMTU6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2Z1bmNfZGF0YSBnYWxpbGVvX3N0bW1hY19mdW5jX2RhdGFbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMTYtXFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTAyMjpzdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19wY2lfZG1pX2RhdGEgZ2FsaWxlb19zdG1tYWNfZG1pX2RhdGEgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDIzLVxcdC5mdW5jID0gZ2FsaWxlb19zdG1tYWNfZnVuY19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDI2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTAyNzpzdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19wY2lfZnVuY19kYXRhIGlvdDIwNDBfc3RtbWFjX2Z1bmNfZGF0YVtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAyOC1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDM4OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9kbWlfZGF0YSBpb3QyMDQwX3N0bW1hY19kbWlfZGF0YSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMzktXFx0LmZ1bmMgPSBpb3QyMDQwX3N0bW1hY19mdW5jX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTEwNzg9c3RhdGljIGludCBxdWFya19kZWZhdWx0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwODgtXFx0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDg5OlxcdHJldCA9IHN0bW1hY19wY2lfZmluZF9waHlfYWRkcihwZGV2LCBxdWFya19wY2lfZG1pKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwOTAtXFx0aWYgKHJldCBcXHUwMDNjIDApIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTExMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjExMTQ6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gcXVhcmtfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTExMTUtXFx0LnNldHVwID0gcXVhcmtfZGVmYXVsdF9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz0xMjMyPXN0YXRpYyBpbnQgaW50ZWxfZXRoX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTIzNC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMjM1OlxcdHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKmluZm8gPSAoc3RydWN0IHN0bW1hY19wY2lfaW5mbyAqKWlkLVxcdTAwM2Vkcml2ZXJfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEyMzYtXFx0c3RydWN0IGludGVsX3ByaXZfZGF0YSAqaW50ZWxfcHJpdjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9NzY9c3RydWN0IGxvb25nc29uX2RhdGEge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy04MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjgyOnN0cnVjdCBzdG1tYWNfcGNpX2luZm8ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtODMtXFx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz0xMzI9c3RhdGljIGludCBsb29uZ3Nvbl9nbWFjX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTE0MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjE0MjpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBsb29uZ3Nvbl9nbWFjX3BjaV9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTQzLVxcdC5zZXR1cCA9IGxvb25nc29uX2dtYWNfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9MTY1PXN0YXRpYyBpbnQgbG9vbmdzb25fZ25ldF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xNzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzoxNzc6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gbG9vbmdzb25fZ25ldF9wY2lfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTE3OC1cXHQuc2V0dXAgPSBsb29uZ3Nvbl9nbmV0X2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTQ5OD1zdGF0aWMgaW50IGxvb25nc29uX2R3bWFjX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTUwMS1cXHRzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyByZXMgPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjUwMjpcXHRzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICppbmZvO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTAzLVxcdHN0cnVjdCBsb29uZ3Nvbl9kYXRhICpsZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTM3LVxcdHBsYXQtXFx1MDAzZWZpeF9zb2NfcmVzZXQgPSBsb29uZ3Nvbl9kd21hY19maXhfcmVzZXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1Mzg6XFx0cGxhdC1cXHUwMDNlc3VzcGVuZCA9IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6NTM5OlxcdHBsYXQtXFx1MDAzZXJlc3VtZSA9IHN0bW1hY19wY2lfcGxhdF9yZXN1bWU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01NDAtXFx0bGQtXFx1MDAzZWRldiA9IFxcdTAwMjZwZGV2LVxcdTAwM2VkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTU0Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjU0MzpcXHRpbmZvID0gKHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKilpZC1cXHUwMDNlZHJpdmVyX2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01NDQtXFx0cmV0ID0gaW5mby1cXHUwMDNlc2V0dXAocGRldiwgcGxhdCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYz0xODg9c3RhdGljIGludCBtb3RvcmNvbW1fcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0xOTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MTkzOlxcdHJldCA9IHN0bW1hY19wY2lfcGxhdF9yZXN1bWUoZGV2LCBic3BfcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMTk0LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYz0yMDg9bW90b3Jjb21tX2RlZmF1bHRfcGxhdF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMjQ4LVxcdHBsYXQtXFx1MDAzZWNvcmVfdHlwZVxcdFxcdD0gRFdNQUNfQ09SRV9HTUFDNDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYzoyNDk6XFx0cGxhdC1cXHUwMDNlc3VzcGVuZFxcdFxcdD0gc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMjUwLVxcdHBsYXQtXFx1MDAzZXJlc3VtZVxcdFxcdD0gbW90b3Jjb21tX3Jlc3VtZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0xMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmM6MTI6aW50IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jLTEzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0yNS19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jOjI2OkVYUE9SVF9TWU1CT0xfR1BMKHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jOjI4OmludCBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jLTI5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy00My19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jOjQ0OkVYUE9SVF9TWU1CT0xfR1BMKHN0bW1hY19wY2lfcGxhdF9yZXN1bWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy00NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuaC04LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuaDo5OmludCBzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmJzcF9wcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmg6MTA6aW50IHN0bW1hY19wY2lfcGxhdF9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpic3BfcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5oLTExLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxOTpzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjAtXFx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTMzPXN0YXRpYyBpbnQgc3RtbWFjX2RlZmF1bHRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy00OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6NTA6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gc3RtbWFjX3BjaV9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy01MS1cXHQuc2V0dXAgPSBzdG1tYWNfZGVmYXVsdF9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTU0PXN0YXRpYyBpbnQgc25wc19nbWFjNV9kZWZhdWx0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTAxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxMDI6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gc25wc19nbWFjNV9wY2lfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTAzLVxcdC5zZXR1cCA9IHNucHNfZ21hYzVfZGVmYXVsdF9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEwNi0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTA3OiAqIHN0bW1hY19wY2lfcHJvYmVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTA4LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTE3LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxMTg6c3RhdGljIGludCBzdG1tYWNfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xMTktXFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTIwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTIxOlxcdHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKmluZm8gPSAoc3RydWN0IHN0bW1hY19wY2lfaW5mbyAqKWlkLVxcdTAwM2Vkcml2ZXJfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTIyLVxcdHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xNzktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjE4MDpcXHRwbGF0LVxcdTAwM2VzdXNwZW5kID0gc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjE4MTpcXHRwbGF0LVxcdTAwM2VyZXN1bWUgPSBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xODItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTg2LS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxODc6ICogc3RtbWFjX3BjaV9yZW1vdmVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTg4LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTkxLSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxOTI6c3RhdGljIHZvaWQgc3RtbWFjX3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE5My17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MjAzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBzdG1tYWNfaWRfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjA0OlxcdHsgUENJX0RFVklDRV9EQVRBKFNUTU1BQywgU1RNTUFDLCBcXHUwMDI2c3RtbWFjX3BjaV9pbmZvKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMDU6XFx0eyBQQ0lfREVWSUNFX0RBVEEoU1RNSUNSTywgTUFDLCBcXHUwMDI2c3RtbWFjX3BjaV9pbmZvKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMDYtXFx0eyBQQ0lfREVWSUNFX0RBVEEoU1lOT1BTWVMsIEdNQUM1X0lELCBcXHUwMDI2c25wc19nbWFjNV9wY2lfaW5mbykgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz0yMTA9TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIHN0bW1hY19pZF90YWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjEyOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBzdG1tYWNfcGNpX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjEzLVxcdC5uYW1lID0gU1RNTUFDX1JFU09VUkNFX05BTUUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxNC1cXHQuaWRfdGFibGUgPSBzdG1tYWNfaWRfdGFibGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIxNTpcXHQucHJvYmUgPSBzdG1tYWNfcGNpX3Byb2JlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMTY6XFx0LnJlbW92ZSA9IHN0bW1hY19wY2lfcmVtb3ZlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTctXFx0LmRyaXZlciAgICAgICAgID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjIyOm1vZHVsZV9wY2lfZHJpdmVyKHN0bW1hY19wY2lfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjIzLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMDoxMDowNi45MDIzNTQ3NjRaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDM5MzE0NDUxMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFN5emthbGxlciBQb3RlbnRpYWwgZm9yIGEgU1RNTUFDIFZ1bG5lcmFiaWxpdHkqKlxuXG5Pa2F5LCBzbyBgc3RtbWFjX3BjaS5jYCBpcyBkZWZpbml0ZWx5IGEgUENJIGRyaXZlciDigJMgZ29vZCwgU3l6a2FsbGVyIGNhbiBpbmplY3QgaXQuIEJ1dCBob2xkIG9uLCB0aGUgcGF0Y2ggaW50cm9kdWNlcyBgZHdtYWNfaW50ZWdyYXRlZF9wY3NfbG9vcGJhY2tgIHdpdGhpbiBgc3RtbWFjX3Bjcy5jYC4gSSBuZWVkIHRvIGNvbmZpcm0gaWYgdGhhdCBmaWxlIGlzIGV2ZW4gY29tcGlsZWQgaW50byB0aGUga2VybmVsIGltYWdlLiBZZXAsIGl0J3MgdGhlcmU6IGBzdG1tYWNfcGNzLm9gIGlzIGxpc3RlZCBpbiBgc3RtbWFjLW9ianNgLiBUaGF0J3MgYSBnb29kIHNpZ24uXG5cbkFuZCB0aGUgcGF0Y2ggYWxzbyB0b3VjaGVzIGBzdG1tYWNfc2VsZnRlc3RzLmNgLCB3aGljaCBjYWxscyBgcGh5bGlua19wY3NfbG9vcGJhY2tgLiBJcyB0aGF0IGFsc28gZ29pbmcgdG8gYmUgY29tcGlsZWQgaW4/IExldCBtZSBzZWXigKYgeWVzLCBgc3RtbWFjLSQoQ09ORklHX1NUTU1BQ19TRUxGVEVTVFMpICs9IHN0bW1hY19zZWxmdGVzdHMub2AuIE9rYXksIHNvIHdlJ2xsIG5lZWQgdG8gZW5hYmxlIGBDT05GSUdfU1RNTUFDX1NFTEZURVNUU2AgZm9yIHRoaXMgdG8gaGF2ZSBhbiBpbXBhY3QuIExldCdzIHZlcmlmeSBob3cgaXQgaXMgY3VycmVudGx5IGNvbmZpZ3VyZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5MTIyLCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTkwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIwOjEwOjExLjI5NTUzMDIzN1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk2MTkxOTE1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBTVE1NQUNfU0VMRlRFU1RTXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE4PWlmIFNUTU1BQ19FVEhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjA6Y29uZmlnIFNUTU1BQ19TRUxGVEVTVFNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIxLVxcdGJvb2wgXFxcIlN1cHBvcnQgZm9yIFNUTU1BQyBTZWxmdGVzdHNcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIwOjEwOjExLjQ5MTczNjAxMloiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODA5ODY0Nzg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGZyb20gYW4gZXhwZXJ0J3MgcGVyc3BlY3RpdmU6XG5cbioqRGl2aW5nIGludG8gdGhlIFNUTU1BQyBDb25maWd1cmF0aW9uKipcblxuQWxyaWdodCwgbGV0J3Mgc2VlLi4uIEknbSBsb29raW5nIGF0IHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBTVE1NQUMgZHJpdmVyLCBzcGVjaWZpY2FsbHkgdGhlIHNlbGYtdGVzdCBjYXBhYmlsaXR5LiBTbywgYENPTkZJR19TVE1NQUNfU0VMRlRFU1RTYCBpcyBhIGJvb2xlYW4gY29uZmlndXJhdGlvbiBvcHRpb24gdGhhdCBzZWVtcyB0byBiZSBuZXN0ZWQgdW5kZXIgYFNUTU1BQ19FVEhgLCB3aGljaCBpcyBpdHNlbGYgYSBjb25maWcgb3B0aW9uIHJlbGF0ZWQgdG8gdGhlIEV0aGVybmV0IGltcGxlbWVudGF0aW9uIG9mIHRoZSBkcml2ZXIuIE5vdywgSSBzaG91bGQgZG91YmxlIGNoZWNrIHdoYXQgb3B0aW9ucyBhcmUgYXZhaWxhYmxlIHVuZGVyIGJvdGggYFNUTU1BQ19FVEhgIGFuZCBgU1RNTUFDX1BDSWAuIEkgd2FudCB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGhvdyBzZWxmLXRlc3RzIGFyZSBlbmFibGVkLiBQZXJoYXBzIGNoZWNraW5nIGBTVE1NQUNfUENJYCBpcyByZWxldmFudCwgc28gSSB1bmRlcnN0YW5kIHRoZSBmdWxsIHNjb3BlIG9mIHdoZXJlIHRoaXMgY2FuIHJ1biBpbiBoYXJkd2FyZS4gS25vd2luZyB0aGF0IHRoZSBFdGhlcm5ldCBhbmQgUENJIHZlcnNpb25zIG9mIHRoZSBkcml2ZXIgYXJlIGltcG9ydGFudCwgSSBjYW4gc3RhcnQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIGZvciB0aGUgdGFyZ2V0IHBsYXRmb3JtLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyOTcwNCwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIwOjEwOjE1LjMwMTYwNTQ0OFoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc4NjM5ODc2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBTVE1NQUNfRVRIXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyOmNvbmZpZyBTVE1NQUNfRVRIXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJTVE1pY3JvZWxlY3Ryb25pY3MgTXVsdGktR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIwOjEwOjE1LjQ4MDI1MTQ2NFoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzY5NzA5NDI0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqRGVjb2RpbmcgdGhhdCBQaHJhc2UqKlxuXG5IbW0sIFwiU1RNTUFDX1BDSVwiLiBUaGF0J3MgaW50cmlndWluZy4gTXkgaW5pdGlhbCB0aG91Z2h0IHByb2Nlc3MgaW1tZWRpYXRlbHkgc3RhcnRzIGRpc3NlY3RpbmcgdGhpcy4gXCJTVE1NQUNcIiBsaWtlbHkgcmVmZXJzIHRvIHRoZSBTVE1pY3JvZWxlY3Ryb25pY3MgTWVkaWEgQWNjZXNzIENvbnRyb2xsZXIgKE1BQykgSVAgY29yZSwgYSBjb21tb24gY29tcG9uZW50IGZvdW5kIGluIGEgbG90IG9mIGVtYmVkZGVkIHN5c3RlbXMsIHBhcnRpY3VsYXJseSB0aG9zZSB1c2luZyBTVE0zMiBtaWNyb2NvbnRyb2xsZXJzIG9yIHRoZWlyIGFzc29jaWF0ZWQgU29Dcy5cblxuVGhlIFwiUENJXCIgcGFydCBpcyB0aGUgbW9yZSBpbnRlcmVzdGluZyBwaWVjZS4gSXQgaW1wbGllcyB0aGlzIE1BQyBjb3JlIGlzIGNvbm5lY3RlZCB0byBhIFBDSSAoUGVyaXBoZXJhbCBDb21wb25lbnQgSW50ZXJjb25uZWN0KSBvciBQQ0kgRXhwcmVzcyBidXMuIFRoaXMgbmFycm93cyBkb3duIHRoZSBhcHBsaWNhdGlvbiBzaWduaWZpY2FudGx5LiBJJ20gbGlrZWx5IGxvb2tpbmcgYXQgYSBzeXN0ZW0gd2l0aCBzb21lIGRlZ3JlZSBvZiBzb3BoaXN0aWNhdGlvbiwgcG90ZW50aWFsbHkgYSBuZXR3b3JraW5nIGNhcmQsIGFuIGluZHVzdHJpYWwgY29udHJvbCBzeXN0ZW0gd2l0aCBoaWdoZXIgYmFuZHdpZHRoIHJlcXVpcmVtZW50cywgb3IgZXZlbiBhIHNwZWNpYWxpemVkIGVtYmVkZGVkIHN5c3RlbSBuZWVkaW5nIGhpZ2gtc3BlZWQgbmV0d29yayBjb25uZWN0aXZpdHkuXG5cbk15IG1pbmQgaW1tZWRpYXRlbHkgc3RhcnRzIHRpY2tpbmcgdGhyb3VnaCB0aGUgaW1wbGljYXRpb25zOiBkcml2ZXIgcmVxdWlyZW1lbnRzLCBpbnRlcnJ1cHQgaGFuZGxpbmcsIERNQSAoRGlyZWN0IE1lbW9yeSBBY2Nlc3MpIGNvbmZpZ3VyYXRpb24uLi4gYWxsIG9mIHRoZXNlIHRha2Ugb24gYSBkaWZmZXJlbnQgZmxhdm9yIHdoZW4gZGVhbGluZyB3aXRoIGEgUENJIGludGVyZmFjZSByYXRoZXIgdGhhbiBzb21ldGhpbmcgc2ltcGxlciBsaWtlIGEgc3RhbmRhcmQgRXRoZXJuZXQgUEhZLiBJJ2QgYmUgbG9va2luZyBmb3IgUENJIGNvbmZpZ3VyYXRpb24gc3BhY2UgYWNjZXNzLCBwb3RlbnRpYWxseSBkZWFsaW5nIHdpdGggQkFScyAoQmFzZSBBZGRyZXNzIFJlZ2lzdGVycykgYW5kIG1lbW9yeS1tYXBwZWQgSS9PLCBhbmQgdGhlIGFzc29jaWF0ZWQgY29tcGxleGl0eSBvZiBidXMgbWFzdGVyaW5nLlxuXG5GdXJ0aGVybW9yZSwgSSdkIG5lZWQgdG8gY29uc2lkZXIgdGhlIHBvd2VyIG1hbmFnZW1lbnQgYXNwZWN0cy4gUENJIGRldmljZXMgb2Z0ZW4gaGF2ZSB0aGVpciBvd24gcG93ZXIgc3RhdGVzLCBhbmQgb3B0aW1pemluZyB0aGlzIHRvIHJlZHVjZSBwb3dlciBjb25zdW1wdGlvbiBvciBpbXByb3ZlIHJlc3BvbnNpdmVuZXNzIG1heSBiZSBhIGtleSBjb25zaWRlcmF0aW9uIGluIGFueSBwb3RlbnRpYWwgZGVzaWduIG9yIGRlYnVnZ2luZyBleGVyY2lzZS4gVGhlIGNsb2NraW5nIHNjaGVtZSBpcyBhbHNvIGxpa2VseSB0byBiZSB2ZXJ5IGltcG9ydGFudCwgc2luY2UgdGhlIE1BQyBuZWVkcyBhIHN0YWJsZSBjbG9jayBzaWduYWwgYW5kIG5lZWRzIHRvIGJlIHN5bmNocm9uaXplZCB3aXRoIHRoZSBQQ0kgYnVzIGNsb2NrLlxuXG5VbHRpbWF0ZWx5LCBJJ2QgbmVlZCB0byBsb29rIGF0IHRoZSBvdmVyYWxsIGFyY2hpdGVjdHVyZSBvZiB0aGlzIGRldmljZSwgaW4gcGFydGljdWxhciwgdGhlIGNvbmZpZ3VyYXRpb24gYW5kIGludGVyYWN0aW9uIG9mIHRoaXMgU1RNTUFDIElQIGNvcmUgYW5kIFBDSSBidXMuIFRoZSBzcGVjaWZpYyBkZXRhaWxzLCBsaWtlIHRoZSB0eXBlIG9mIFBDSSBidXMgKHN0YW5kYXJkIFBDSSwgUENJIEV4cHJlc3MsIGV0Yy4pIHdpbGwgc3Ryb25nbHkgaW1wYWN0IGRyaXZlciBjaG9pY2VzIGFuZCBvdmVyYWxsIGRlc2lnbiBjb25zdHJhaW50cy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzAwOTQsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIwOjEwOjE5Ljg0OTk2NDE5OFoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjU5NTk5OTI0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBTVE1NQUNfUENJXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM5OD1jb25maWcgRFdNQUNfTU9UT1JDT01NXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQwNzpjb25maWcgU1RNTUFDX1BDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA4LVxcdHRyaXN0YXRlIFxcXCJTVE1NQUMgUENJIGJ1cyBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMDoxMDoyMC4xMDk1NzAyODJaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Njc2OTAxMDc3MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipSZWFjaGluZyBQaHlsaW5rIFBDUyBMb29wYmFjayBmb3IgRnV6emluZyoqXG5cbk9rYXksIHNvIEkndmUgaWRlbnRpZmllZCBhIHByb21pc2luZyBhcmVhIGZvciBmdXp6aW5nOiBzcGVjaWZpY2FsbHksIHRoZSBwb3RlbnRpYWwgbG9vcGJhY2sgZnVuY3Rpb25hbGl0eSB3aXRoaW4gdGhlIFNUTU1BQyBkcml2ZXIuIEkgbmVlZCB0byBlbnN1cmUgdGhlc2UgY29tcG9uZW50cyBhcmUgZW5hYmxlZDogYFNUTU1BQ19FVEhgLCBgU1RNTUFDX1BDSWAsIGFuZCBgU1RNTUFDX1NFTEZURVNUU2AuIE15IHByaW1hcnkgZm9jdXMgaXMgZ2V0dGluZyB0byB0aGUgYHBoeWxpbmtfcGNzX2xvb3BiYWNrYCBmdW5jdGlvbiwgYXMgdGhhdCBzZWVtcyBsaWtlIGEgZ29vZCB0YXJnZXQuXG5cbkxldCdzIHRyYWNlIGhvdyB0aGlzIGZ1bmN0aW9uIGlzIHJlYWNoZWQuIFRoZSBwYXRoIGlzIGNsZWFyOiBUaGUgcGF0Y2ggYWRkcyBgcGh5bGlua19wY3NfbG9vcGJhY2tgIHRvIGBkcml2ZXJzL25ldC9waHkvcGh5bGluay5jYC4gIFRoaXMgZnVuY3Rpb24gaXMgdGhlbiBjYWxsZWQgYnkgYHN0bW1hY190ZXN0X3BoeV9sb29wYmFja2AsIHdoaWNoIGxpdmVzIGluIGBzdG1tYWNfc2VsZnRlc3RzLmNgLiBUaGF0IGZ1bmN0aW9uIGlzLCBpbiB0dXJuLCBjYWxsZWQgYnkgYHN0bW1hY19zZWxmdGVzdF9ydW5gLiBBbmQgZmluYWxseSwgYHN0bW1hY19zZWxmdGVzdF9ydW5gIGlzIGludm9rZWQgdGhyb3VnaCBgc3RtbWFjX2V0aHRvb2xfb3BzLnNlbGZfdGVzdGAuIFRoZSBpbXBvcnRhbnQgcGFydCBpcyB0aGF0IGV0aHRvb2wgc2VsZiB0ZXN0cyBhcmUgdHJpZ2dlcmVkIGJ5IHN5emthbGxlciB2aWEgYGlvY3RsKFNJT0NFVEhUT09MLCBFVEhUT09MX1RFU1QpYC4gVGhpcyBtZWFucyB0aGF0IGl0J3MgYSBjb21wbGV0ZWx5IHJlYWNoYWJsZSBwYXRoLlxuXG5Ob3csIEkgd2FudCB0byBkcmlsbCBkb3duIGFuZCBzZWUgdGhlIGV4YWN0IGZ1bmN0aW9ucyBpbnZvbHZlZC4gVGhlIHBhdGNoIGFsc28gYWRkcyBgZHdtYWNfaW50ZWdyYXRlZF9wY3NfbG9vcGJhY2tgIGluIGBzdG1tYWNfcGNzLmNgIGFuZCBhIHN0YXRpYyBmdW5jdGlvbiBgc3RtbWFjX3NlbGZ0ZXN0X2dldF9wY3NgIGluIGBzdG1tYWNfc2VsZnRlc3RzLmNgLiBUaGUgbW9yZSBpbnRlcmVzdGluZyBvbmUgaXMgYHBoeWxpbmtfcGNzX2xvb3BiYWNrYCBiZWNhdXNlIGl0J3MgZXhwb3J0ZWQgYW5kIGNhbiBiZSBjYWxsZWQgZnJvbSBvdXRzaWRlLlxuXG5IYW5nIG9uLi4uIGBkd21hY19pbnRlZ3JhdGVkX3Bjc19sb29wYmFja2AgaXMgc3RhdGljLiBUaGF0J3Mgbm90IGlkZWFsIGZvciBmdXp6aW5nLiBDYW4gSSBmb2N1cyBvbiBgcGh5bGlua19wY3NfbG9vcGJhY2tgPyBZZXMhIEl0IGlzIGV4cG9ydGVkLiBBbmQgd2hhdCBhYm91dCBgc3RtbWFjX3Rlc3RfcGh5X2xvb3BiYWNrYD8gSXQncyBzdGF0aWMsIGJ1dCBJJ20gZ2V0dGluZyB0aGVyZS4gSXQncyBjYWxsZWQgYnkgYHN0bW1hY19zZWxmdGVzdF9ydW5gLCB3aGljaCBpcyB0aGUgZW50cnkgcG9pbnQsIHNvIEknbGwgYWxzbyBjaGVjayBgc3RtbWFjX3NlbGZ0ZXN0X3J1bmAgaW4gYHN0bW1hY19zZWxmdGVzdHMuY2AgdG8gdW5kZXJzdGFuZCB0aGUgYmlnZ2VyIHBpY3R1cmUuIFRoaXMgc2VlbXMgdmVyeSBwcm9taXNpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwNjc4LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzg2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIwOjEwOjI2Ljg3ODU4NTc1M1oiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjYwNzE1MTU0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0bW1hY19zZWxmdGVzdF9ydW5cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hYy5oPTQzND1zdHJ1Y3QgdGltZXNwZWM2NCBzdG1tYWNfY2FsY190YXNfYmFzZXRpbWUoa3RpbWVfdCBvbGRfYmFzZV90aW1lLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmgtNDM4LSNpZiBJU19FTkFCTEVEKENPTkZJR19TVE1NQUNfU0VMRlRFU1RTKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hYy5oOjQzOTp2b2lkIHN0bW1hY19zZWxmdGVzdF9ydW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWMuaC00NDAtXFx0XFx0XFx0IHN0cnVjdCBldGh0b29sX3Rlc3QgKmV0ZXN0LCB1NjQgKmJ1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWMuaD00NDI9aW50IHN0bW1hY19zZWxmdGVzdF9nZXRfY291bnQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWMuaC00NDMtI2Vsc2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWMuaDo0NDQ6c3RhdGljIGlubGluZSB2b2lkIHN0bW1hY19zZWxmdGVzdF9ydW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWMuaC00NDUtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBldGh0b29sX3Rlc3QgKmV0ZXN0LCB1NjQgKmJ1ZilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmM9MTA5Mj1zdGF0aWMgY29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzIHN0bW1hY19ldGh0b29sX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMtMTEwNS1cXHQuc2V0X3BhdXNlcGFyYW0gPSBzdG1tYWNfc2V0X3BhdXNlcGFyYW0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYzoxMTA2OlxcdC5zZWxmX3Rlc3QgPSBzdG1tYWNfc2VsZnRlc3RfcnVuLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMtMTEwNy1cXHQuZ2V0X2V0aHRvb2xfc3RhdHMgPSBzdG1tYWNfZ2V0X2V0aHRvb2xfc3RhdHMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfc2VsZnRlc3RzLmM9MTg1MT1zdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY190ZXN0IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19zZWxmdGVzdHMuYy0xOTg2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19zZWxmdGVzdHMuYzoxOTg3OnZvaWQgc3RtbWFjX3NlbGZ0ZXN0X3J1bihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19zZWxmdGVzdHMuYy0xOTg4LVxcdFxcdFxcdCBzdHJ1Y3QgZXRodG9vbF90ZXN0ICpldGVzdCwgdTY0ICpidWYpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIwOjEwOjI3LjEzOTMxMjc0N1oiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTk0MzEwNjg4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgRXRoZXJuZXQgRHJpdmVyIFNlbGYtVGVzdCBGbG93KipcblxuT2theSwgc28gSSdtIGRpdmluZyBpbnRvIHRoaXMgc2VsZi10ZXN0IGZ1bmN0aW9uIGZvciB0aGUgRXRoZXJuZXQgZHJpdmVyLiBUaGUgZW50cnkgcG9pbnQsIGFzIEkgc2VlIGl0LCBpcyBgc3RtbWFjX3NlbGZ0ZXN0X3J1bmAuIEZpcnN0LCBJIHdhbnQgdG8gY29uZmlybSB3aGV0aGVyIG9yIG5vdCBgc3RtbWFjX3Rlc3RfcGh5X2xvb3BiYWNrYCBpcyBzdGF0aWMuIEFscmlnaHQsIGl0IGlzLiBUaGF0IG1lYW5zIEkgY2FuIHByb2JhYmx5IGF2b2lkIGZvY3VzaW5nIG9uIGl0IGRpcmVjdGx5LlxuXG5OZXh0LCBJJ20gZ29pbmcgdG8gbG9vayBjbG9zZWx5IGF0IGBzdG1tYWNfc2VsZnRlc3RfcnVuYCBpdHNlbGYgYW5kIGFsc28gYHBoeWxpbmtfcGNzX2xvb3BiYWNrYC4gV2FpdCBhIG1pbnV0ZSwgd2hhdCBhYm91dCBgZHdtYWNfaW50ZWdyYXRlZF9wY3NfbG9vcGJhY2tgPyBJdCdzIG1hcmtlZCBhcyBzdGF0aWMsIGJ1dCBpdCdzIGFzc2lnbmVkIHRvIGBwY3NfbG9vcGJhY2tgIGluc2lkZSBgZHdtYWNfaW50ZWdyYXRlZF9wY3Nfb3BzYC4gVGhlIGlubGluaW5nIG1ha2VzIGl0IGhhcmRlciwgYnV0IHNpbmNlIGl0J3MgYXNzaWduZWQgdG8gYSBmdW5jdGlvbiBwb2ludGVyLCBpdCAqc2hvdWxkbid0KiBiZSBpbmxpbmVkLiBFdmVuIHNvLCBpdCdzIGdlbmVyYWxseSBiZXR0ZXIgdG8gcHJpb3JpdGl6ZSBleHBvcnRlZCBvciBub24tc3RhdGljIGZ1bmN0aW9ucyBmb3IgdGhpcyBraW5kIG9mIGFuYWx5c2lzLlxuXG5UaGFua2Z1bGx5LCBgcGh5bGlua19wY3NfbG9vcGJhY2tgICppcyogZXhwb3J0ZWQsIHdoaWNoIGlzIHBlcmZlY3QuIEFuZCBjb25maXJtaW5nIHRoYXQgYHN0bW1hY19zZWxmdGVzdF9ydW5gIGlzIGFsc28gbm9uLXN0YXRpYywgSSBjYW4gZ2V0IHRvIHdvcmsuXG5cblRoZXJlZm9yZSwgbXkgbmV4dCBtb3ZlIGlzIHRvIGNoZWNrIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgcGh5bGlua19wY3NfbG9vcGJhY2tgIGxvY2F0ZWQgaW4gYGRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjMxNSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMDoxMDozMS43MzM2MjY0ODVaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNzk1NTI4OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwaHlsaW5rX3Bjc19sb29wYmFja1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9waHkvcGh5bGluay5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM9OTk4PUVYUE9SVF9TWU1CT0xfR1BMKHBoeWxpbmtfcGNzX3ByZV9pbml0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMTAwMC0vKipcXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjEwMDE6ICogcGh5bGlua19wY3NfbG9vcGJhY2soKSAtIEVuYWJsZSBvciBkaXNhYmxlIGxvb3BiYWNrIGF0IHRoZSBQQ1NcXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTEwMDItICogQHBjczogYSBwb2ludGVyIHRvIGEgXFx1MDAyNnN0cnVjdCBwaHlsaW5rX3Bjcy5cXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMTAwOS0gKi9cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjEwMTA6aW50IHBoeWxpbmtfcGNzX2xvb3BiYWNrKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCBib29sIGVuYWJsZSlcXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTEwMTEte1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0xMDE2LX1cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjEwMTc6RVhQT1JUX1NZTUJPTF9HUEwocGh5bGlua19wY3NfbG9vcGJhY2spO1xcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMTAxOC1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjA6MTA6MzEuODQxNTkyMTAzWiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyNTQ0OTMwMzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRm9jdXNpbmcgb24gU2VsZi1UZXN0IGFuZCBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSd2ZSB6ZXJvZWQgaW4gb24gdGhlIHJpZ2h0IGFyZWFzIHRvIGludmVzdGlnYXRlLiBgcGh5bGlua19wY3NfbG9vcGJhY2tgIGZlZWxzIGxpa2UgYSBzb2xpZCBmb2N1cyBzeW1ib2w7IGl0J3MgcmlnaHQgaW4gdGhlIHdoZWVsaG91c2UuIFNpbWlsYXJseSwgYHN0bW1hY19zZWxmdGVzdF9ydW5gIGlzIGFub3RoZXIgZXhjZWxsZW50IHBvaW50IG9mIHJlZmVyZW5jZSBmb3IgdGhpcyBzZWxmLXRlc3Qgd29yay5cblxuTm93LCBsZXQncyBwaXZvdCB0byB0aGUgY29uZmlndXJhdGlvbiBhc3BlY3RzLiBXaGF0IGFyZSB0aGUga2V5IGNvbmZpZyBzeW1ib2xzIHdlIG5lZWQgdG8gY29uc2lkZXI/IEknbSB0aGlua2luZzogYFNUTU1BQ19FVEhgLCBgU1RNTUFDX1BDSWAsIGBTVE1NQUNfU0VMRlRFU1RTYCwgYW5kIGBQSFlMSU5LYC4gYFBIWUxJTktgIGlzIHVzdWFsbHkgYnJvdWdodCBpbiB2aWEgYFNUTU1BQ19FVEhgIG9yIHNvbWV0aGluZyBsaWtlIGBNQUNCYCwgYnV0IGl0J3Mgd29ydGggbGlzdGluZyBleHBsaWNpdGx5IGZvciBjbGFyaXR5LiBUaGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gcXVpY2tseSBjb25maXJtIGlmIGBTVE1NQUNfRVRIYCBwcm9wZXJseSBzZWxlY3RzIG9yIHRyaWdnZXJzIGBQSFlMSU5LYC4gV2UgbmVlZCB0byBiZSBzdXJlIHRoZSBkZXBlbmRlbmNpZXMgYXJlIGFzIHdlIGV4cGVjdCB0aGVtIHRvIGJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzE1NCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMDoxMDozNi4wOTYwOTA4ODlaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUxMjY3MTU0OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzZWxlY3QgUEhZTElOS1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yPWNvbmZpZyBTVE1NQUNfRVRIXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTktXFx0c2VsZWN0IFBBR0VfUE9PTFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTA6XFx0c2VsZWN0IFBIWUxJTktcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTExLVxcdHNlbGVjdCBDUkMzMlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMDoxMDozNi42MDkyNTkwODhaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzMxOTg3MTQxNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBhdGNoJ3MgSW1wYWN0KipcblxuT2theSwgc28gSSd2ZSBjb25maXJtZWQgdGhlIGluaXRpYWwgYXNzZXNzbWVudCDigJMgdGhlIGNoYW5nZSBkZWZpbml0ZWx5IGFwcGxpZXMuIEJ1dCBob2xkIG9uIGEgc2Vjb25kLi4uIHRoZSBwYXRjaCBpc24ndCAqanVzdCogdG91Y2hpbmcgdGhhdCBvbmUgZmlsZS4gSXQgbG9va3MgbGlrZSBpdCdzIGFsc28gbW9kaWZ5aW5nIGBzdG1tYWNfcGNzLmNgLiBUaGlzIHJhaXNlcyBhIHF1ZXN0aW9uIEkgbmVlZCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUgYWJvdXQuIElzIGBzdG1tYWNfcGNzLmNgIHVuY29uZGl0aW9uYWxseSBjb21waWxlZCBpbnRvIHRoZSBidWlsZCB3aGVuIGBTVE1NQUNfRVRIYCBpcyBlbmFibGVkPyBJIG5lZWQgdG8gYmUgY2VydGFpbiwgYmVjYXVzZSBhbnkgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gY2hhbmdlcyB0aGUgc2NvcGUgb2YgbXkgcmV2aWV3LiBUaW1lIHRvIGRpdmUgaW50byB0aGUgYE1ha2VmaWxlYCBhbmQgY29uZmlybSBob3cgdGhpcyBpcyBjb25maWd1cmVkLiBHb3R0YSBnZXQgdGhlIGJ1aWxkIGRlcGVuZGVuY2llcyBhbmQgYW55IHBvdGVudGlhbGx5IGhpZGRlbiBpbnRlcmFjdGlvbnMgaXJvbmVkIG91dCBub3csIGJlZm9yZSBJIHdhc3RlIHRpbWUgb24gYSBkb3duc3RyZWFtIGlzc3VlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzY0MywiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIwOjEwOjM5LjkyOTEzNDc2NFoiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ3NTMxNjA0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0bW1hY19wY3Mub1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU9Mz1zdG1tYWMtb2Jqczo9IHN0bW1hY19tYWluLm8gc3RtbWFjX2V0aHRvb2wubyBzdG1tYWNfbWRpby5vIHJpbmdfbW9kZS5vXFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtOS1cXHQgICAgICBzdG1tYWNfeGRwLm8gc3RtbWFjX2VzdC5vIHN0bW1hY19mcGUubyBzdG1tYWNfdmxhbi5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToxMDpcXHQgICAgICBzdG1tYWNfcGNzLm8gJChzdG1tYWMteSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0xMS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjA6MTA6NDAuMTc2NjcyOTk4WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4MTMzMDU0NTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQ3VycmVudCBMaW5lIG9mIFJlYXNvbmluZyoqXG5cbk9rYXksIHllcywgdGhhdCdzIGNvcnJlY3QuIExldCdzIHNlZSwgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIGhlcmUgYXJlIGBTVE1NQUNfRVRIYCwgYFNUTU1BQ19QQ0lgLCBhbmQgYFNUTU1BQ19TRUxGVEVTVFNgLiBOb3csIGEgcXVpY2sgcGF1c2UuLi4gZG9lcyBqdXN0IGBTVE1NQUNfUENJYCBhbG9uZSBlbmFibGUgdGhlIGRyaXZlciB0byBwcm9iZSBwcm9wZXJseSBpbiBhIHZpcnR1YWxpemVkIGNvbnRleHQ/IEkga25vdyBzeXprYWxsZXIgY2FuIGluamVjdCBQQ0kgZGV2aWNlcyB1c2luZyBgc3l6X3BjaV9kZXZpY2VfYWRkYC4gSGFuZyBvbiwgbWF5YmUgaXQgKmRvZXNuJ3QqIG5lZWQgYFNUTU1BQ19QQ0lgIGlmIGl0IGNhbiBpbmplY3QgcGxhdGZvcm0gZGV2aWNlcyBkaXJlY3RseT8gQWgsIHJpZ2h0LCBzeXprYWxsZXIgZG9lc24ndCBoYXZlIGEgYHN5el9wbGF0Zm9ybV9kZXZpY2VfYWRkYCBmdW5jdGlvbiwgb25seSB0aGluZ3MgbGlrZSBgc3l6X3BjaV9kZXZpY2VfYWRkYCBhbmQgYHN5el91c2JfY29ubmVjdGAuIFNvLCB0byBsZXZlcmFnZSBQQ0kgaW5qZWN0aW9uIHdpdGggc3l6a2FsbGVyLCBpdCAqZG9lcyogbmVlZCBgU1RNTUFDX1BDSWAuXG5cbkxldCBtZSBqdXN0IHF1aWNrbHkgY29uZmlybSB0aGF0IGBTVE1NQUNfUENJYCBpcywgaW4gZmFjdCwgYSB0cmlzdGF0ZS4gR29vZCwgaXQgaXMuIFRoZXJlZm9yZSwgd2Ugc2hvdWxkIGFic29sdXRlbHkgaW5jbHVkZSBgU1RNTUFDX1BDSWAgaW4gdGhlIGNvbmZpZ3VyYXRpb24uIE5vdywganVzdCB0byBiZSB0aG9yb3VnaCwgSSBzaG91bGQgZG91YmxlLWNoZWNrIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGRlcGVuZGVuY2llcyBvbiBgU1RNTUFDX1BDSWAgdGhhdCBtaWdodCBuZWVkIHRvIGJlIGNvbnNpZGVyZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM0MDcyLCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjI0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIwOjEwOjQ0Ljk4OTk4MjU2M1oiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjU1NjY2MDE0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBTVE1NQUNfUENJXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM5OD1jb25maWcgRFdNQUNfTU9UT1JDT01NXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQwNzpjb25maWcgU1RNTUFDX1BDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA4LVxcdHRyaXN0YXRlIFxcXCJTVE1NQUMgUENJIGJ1cyBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMDoxMDo0NS4yNDU2NTk4MTdaIiwiU2VxIjoyNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDU5NTQ5OTQyOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOlxuXG4qKkRlY29uc3RydWN0aW5nIGBTVE1NQUNfUENJYCBEZXBlbmRlbmNpZXMqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IGBTVE1NQUNfUENJYCBhY3R1YWxseSAqcmVsaWVzKiBvbi4gSSdtIHRoaW5raW5nLCBpbiB0ZXJtcyBvZiBzeXN0ZW0gYXJjaGl0ZWN0dXJlLCB0aGlzIGlzIGxpa2VseSBhIG5ldHdvcmsgZHJpdmVyLCByaWdodD8gTW9yZSBzcGVjaWZpY2FsbHksIGl0J3MgcHJvYmFibHkgcmVsYXRlZCB0byBhIHNwZWNpZmljIEV0aGVybmV0IGNvbnRyb2xsZXIsIHRoZSBvbmUgd2l0aCBhbiBcIlNUXCIgcHJlZml4IHdoaWNoIHN1Z2dlc3RzIGEgcGFydGljdWxhciBzaWxpY29uIHZlbmRvciAtIHBvc3NpYmx5IFNUTWljcm9lbGVjdHJvbmljcywgdGhvdWdoIEkgc2hvdWxkIHZlcmlmeSB0aGF0LiBUaGUgXCJNQUNcIiBwYXJ0IHN0cm9uZ2x5IHN1Z2dlc3RzIGl04oCZcyBkZWFsaW5nIHdpdGggdGhlIE1lZGlhIEFjY2VzcyBDb250cm9sbGVyIGxheWVyLCB3aGljaCBpcyBjcnVjaWFsIGZvciBoYW5kbGluZyBFdGhlcm5ldCBmcmFtZXMuIEFuZCB0aGUgXCJQQ0lcIiBzdWZmaXg/IFRoYXQgaW1tZWRpYXRlbHkgdGVsbHMgbWUgdGhpcyBkcml2ZXIgaW50ZXJmYWNlcyB3aXRoIHRoZSBoYXJkd2FyZSB2aWEgdGhlIFBlcmlwaGVyYWwgQ29tcG9uZW50IEludGVyY29ubmVjdCBidXMuXG5cblRoZXJlZm9yZSwgdGhlIGZpcnN0IHF1ZXN0aW9ucyBJJ20gYXNraW5nIG15c2VsZiBhcmU6IFdoYXQgc3BlY2lmaWMgaGFyZHdhcmUgdmFyaWF0aW9ucyBpcyBpdCBkZXNpZ25lZCB0byBoYW5kbGU/IFdoYXQgb3RoZXIgZHJpdmVycyBvciBtb2R1bGVzIG1pZ2h0IGJlIHJlcXVpcmVkIGZvciB0aGlzIHRvIGZ1bmN0aW9uIGNvcnJlY3RseT8gRm9yIGV4YW1wbGUsIGlzIHRoZXJlIGEgc3BlY2lmaWMgUENJIGNvbnRyb2xsZXIgZHJpdmVyIGl0IG5lZWRzPyBBcmUgdGhlcmUgYW55IGxvd2VyLWxldmVsIGhhcmR3YXJlIGFic3RyYWN0aW9uIGxheWVycyB0aGF0IGl0IHVzZXM/IEFyZSB0aGVyZSBhbnkgZmlybXdhcmUgb3Igc2hhcmVkIGxpYnJhcnkgZGVwZW5kZW5jaWVzIHRoYXQgaXQgbWlnaHQgbG9hZD8gSSBuZWVkIHRvIGxvb2sgZm9yIGhlYWRlcnMsIGluY2x1ZGUgZmlsZXMsIG9yIGNvbmZpZ3VyYXRpb24gZmlsZXMgdG8gZGV0ZXJtaW5lIHdoYXQgb3RoZXIgcGFydHMgb2YgdGhlIHN5c3RlbSBhcmUgbmVlZGVkIHRvIG1ha2UgaXQgcnVuLiBJJ2xsIG5lZWQgdG8gbG9vayBhdCBpdHMgS2NvbmZpZyBlbnRyaWVzLiBUaGlzIGlzIGdvaW5nIHRvIGJlIG15IHN0YXJ0aW5nIHBvaW50LiBJIGtub3cgSSdtIGFscmVhZHkgdGhpbmtpbmcgYWJvdXQgcG90ZW50aWFsIGNvbmZsaWN0cyBvciBkZXBlbmRlbmNpZXMgb24gb3RoZXIgZHJpdmVycywgYW5kIEkgbmVlZCB0byBzdGFydCBmaWd1cmluZyBvdXQgcG90ZW50aWFsIHZlcnNpb24gcmVxdWlyZW1lbnRzIG9mIGFueSBleHRlcm5hbCBsaWJyYXJpZXMsIHNvIEkgY2FuIHN0YXJ0IHRvIGRldmVsb3AgYSBob2xpc3RpYyB2aWV3IG9mIHRoZSBgU1RNTUFDX1BDSWAgZWNvc3lzdGVtLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNDc0MCwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIwOjEwOjQ5Ljg0MTE2NDE1NVoiLCJTZXEiOjI4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjA4NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiA0MDAsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiA0MDA6XFx0XFx0ZGVwZW5kcyBvbiBQQ0lcXG4gNDAxOlxcdFxcdHNlbGVjdCBNT1RPUkNPTU1fUEhZXFxuIDQwMjpcXHRcXHRzZWxlY3QgU1RNTUFDX0xJQlBDSVxcbiA0MDM6XFx0XFx0aGVscFxcbiA0MDQ6XFx0XFx0ICBUaGlzIGVuYWJsZXMgZ2x1ZSBkcml2ZXIgZm9yIE1vdG9yY29tbSBEV01BQy1iYXNlZCBQQ0kgRXRoZXJuZXRcXG4gNDA1OlxcdFxcdCAgY29udHJvbGxlcnMuIEN1cnJlbnRseSBvbmx5IFlUNjgwMSBpcyBzdXBwb3J0ZWQuXFxuIDQwNjpcXHRcXG4gNDA3OlxcdGNvbmZpZyBTVE1NQUNfUENJXFxuIDQwODpcXHRcXHR0cmlzdGF0ZSBcXFwiU1RNTUFDIFBDSSBidXMgc3VwcG9ydFxcXCJcXG4gNDA5OlxcdFxcdGRlcGVuZHMgb24gUENJXFxuIDQxMDpcXHRcXHRkZXBlbmRzIG9uIENPTU1PTl9DTEtcXG4gNDExOlxcdFxcdHNlbGVjdCBTVE1NQUNfTElCUENJXFxuIDQxMjpcXHRcXHRoZWxwXFxuIDQxMzpcXHRcXHQgIFRoaXMgc2VsZWN0cyB0aGUgcGxhdGZvcm0gc3BlY2lmaWMgYnVzIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLlxcbiA0MTQ6XFx0XFx0ICBUaGlzIGRyaXZlciB3YXMgdGVzdGVkIG9uIFhMSU5YIFhDMlYzMDAwIEZGMTE1MkFNVDAyMjFcXG4gNDE1OlxcdFxcdCAgRDEyMTU5OTRBIFZJUlRFWCBGUEdBIGJvYXJkIGFuZCBTTlBTIFFvUyBJUEsgUHJvdG90eXBpbmcgS2l0LlxcbiA0MTY6XFx0XFxuIDQxNzpcXHRcXHQgIElmIHlvdSBoYXZlIGEgY29udHJvbGxlciB3aXRoIHRoaXMgaW50ZXJmYWNlLCBzYXkgWSBvciBNIGhlcmUuXFxuIDQxODpcXHRcXG4gNDE5OlxcdFxcdCAgSWYgdW5zdXJlLCBzYXkgTi5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjA6MTA6NDkuODQxMjg3Njk1WiIsIlNlcSI6MjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3NDY2Mzk2MTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCBtZSB0aGluayB0aGlzIHRocm91Z2guXG5cbioqQW5hbHl6aW5nIERyaXZlciBEZXBlbmRlbmNpZXMqKlxuXG5BbHJpZ2h0LCBzbyB0aGUgYFNUTU1BQ19QQ0lgIGRyaXZlciBsZXZlcmFnZXMgdGhlIGBQQ0lgIGFuZCBgQ09NTU9OX0NMS2Agc3Vic3lzdGVtcy4gYFBDSWAgaXMgcHJldHR5IG11Y2ggdWJpcXVpdG91cyDigJMgaXQncyBhIHN0YW5kYXJkIGludGVyZmFjZSwgYSBmb3VuZGF0aW9uYWwgcGllY2Ugb2YgaGFyZHdhcmUgaW50ZWdyYXRpb24uIEFuZCBgQ09NTU9OX0NMS2AgaXMgYmVjb21pbmcgaW5jcmVhc2luZ2x5IHByZXZhbGVudCBhY3Jvc3MgdmFyaW91cyBhcmNoaXRlY3R1cmVzLCBhbm90aGVyIHN0YW5kYXJkIHRoYXQncyBlc3NlbnRpYWxseSBiYWtlZCBpbiB0aGVzZSBkYXlzLiBUaGF0IG1lYW5zIGBTVE1NQUNfUENJYCBzZWVtcyBsaWtlIGEgc29saWQgY2hvaWNlIGZyb20gYSBkZXBlbmRlbmN5IHBlcnNwZWN0aXZlLCByZWxhdGl2ZWx5IGVhc3kgdG8gc3VwcG9ydCwgSSdkIHNheS4gTm8gaW1tZWRpYXRlIHJlZCBmbGFncyB0aGVyZS5cblxuSG93ZXZlciwgSSBzaG91bGQgdGFrZSBhIGJyb2FkZXIgbG9vayBhdCB0aGUgbGFuZHNjYXBlLiBIb2xkIG9uIGEgc2Vjb25kLi4uIHdoYXQgYWJvdXQgYERXTUFDX0lOVEVMYD8gTm93IHRoYXQgSSB0aGluayBhYm91dCBpdCwgdGhhdCdzIGFub3RoZXIgUENJLWJhc2VkIGRyaXZlci4gSSBzaG91bGQgYW5hbHl6ZSBpdCBpbiBhIHNpbWlsYXIgbGlnaHQgdG8gZW5zdXJlIGEgY29oZXJlbnQgYXBwcm9hY2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM1NDU1LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzgsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMDoxMDo1My41ODc5MzMzNjJaIiwiU2VxIjozMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjA4MjQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMzcwLFxuICBcIkxpbmVDb3VudFwiOiAzMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMzcwOlxcdFxcbiAzNzE6XFx0ZW5kaWYgIyBTVE1NQUNfUExBVEZPUk1cXG4gMzcyOlxcdFxcbiAzNzM6XFx0Y29uZmlnIFNUTU1BQ19MSUJQQ0lcXG4gMzc0OlxcdFxcdHRyaXN0YXRlXFxuIDM3NTpcXHRcXHRoZWxwXFxuIDM3NjpcXHRcXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIFBDSSBidXMgaGVscGVycyBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXFxuIDM3NzpcXHRcXG4gMzc4OlxcdGNvbmZpZyBEV01BQ19JTlRFTFxcbiAzNzk6XFx0XFx0dHJpc3RhdGUgXFxcIkludGVsIEdNQUMgc3VwcG9ydFxcXCJcXG4gMzgwOlxcdFxcdGRlZmF1bHQgWDg2XFxuIDM4MTpcXHRcXHRkZXBlbmRzIG9uIFg4NiBcXHUwMDI2XFx1MDAyNiBQQ0lcXG4gMzgyOlxcdFxcdGRlcGVuZHMgb24gQ09NTU9OX0NMS1xcbiAzODM6XFx0XFx0ZGVwZW5kcyBvbiBBQ1BJXFxuIDM4NDpcXHRcXHRoZWxwXFxuIDM4NTpcXHRcXHQgIFRoaXMgc2VsZWN0cyB0aGUgSW50ZWwgcGxhdGZvcm0gc3BlY2lmaWMgYnVzIHN1cHBvcnQgZm9yIHRoZVxcbiAzODY6XFx0XFx0ICBzdG1tYWMgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBJbnRlbCBRdWFyay9FSEwvVEdMLlxcbiAzODc6XFx0XFxuIDM4ODpcXHRjb25maWcgRFdNQUNfTE9PTkdTT05cXG4gMzg5OlxcdFxcdHRyaXN0YXRlIFxcXCJMb29uZ3NvbiBQQ0kgRFdNQUMgc3VwcG9ydFxcXCJcXG4gMzkwOlxcdFxcdGRlZmF1bHQgTUFDSF9MT09OR1NPTjY0XFxuIDM5MTpcXHRcXHRkZXBlbmRzIG9uIChNQUNIX0xPT05HU09ONjQgfHwgQ09NUElMRV9URVNUKSBcXHUwMDI2XFx1MDAyNiBQQ0lcXG4gMzkyOlxcdFxcdGRlcGVuZHMgb24gQ09NTU9OX0NMS1xcbiAzOTM6XFx0XFx0c2VsZWN0IFNUTU1BQ19MSUJQQ0lcXG4gMzk0OlxcdFxcdGhlbHBcXG4gMzk1OlxcdFxcdCAgVGhpcyBzZWxlY3RzIHRoZSBMT09OR1NPTiBQQ0kgYnVzIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLFxcbiAzOTY6XFx0XFx0ICBTdXBwb3J0IGZvciBldGhlcm5ldCBjb250cm9sbGVyIG9uIExvb25nc29uLTJLMTAwMCBTb0MgYW5kIExTN0ExMDAwIGJyaWRnZS5cXG4gMzk3OlxcdFxcbiAzOTg6XFx0Y29uZmlnIERXTUFDX01PVE9SQ09NTVxcbiAzOTk6XFx0XFx0dHJpc3RhdGUgXFxcIk1vdG9yY29tbSBQQ0kgRFdNQUMgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjA6MTA6NTMuNTg4MTQ1ODUzWiIsIlNlcSI6MzEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEzMjgyMjUxMjc5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5c2lzIG9mIHRoZSBTVE1NQUMgSW50ZWdyYXRlZCBQQ1MgTG9vcGJhY2sgRnVuY3Rpb25hbGl0eSoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIGBEV01BQ19JTlRFTGAgaXMgYWxzbyBhIFBDSSBkcml2ZXIsIHNvIHRoYXQncyBzb21ldGhpbmcgdG8ga2VlcCBpbiBtaW5kLCBldmVuIHRob3VnaCBgU1RNTUFDX1BDSWAgc3VwcG9ydHMgc3BlY2lmaWMgZGV2aWNlIGRhdGEgZm9yIGJvdGggYFNUTU1BQ2AgYW5kIGBTVE1JQ1JPYCB3aXRoIGBcdTAwMjZzdG1tYWNfcGNpX2luZm9gLiBTaW5jZSBTeXprYWxsZXIgY2FuIGluamVjdCBhbnkgUENJIElELCBgU1RNTUFDX1BDSWAgc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIG91ciBwdXJwb3Nlcy5cblxuTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGVuc3VyZSB3ZSBoYXZlIHRoZSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbnMgZW5hYmxlZC4gV2UncmUgbG9va2luZyBhdCBgU1RNTUFDX0VUSGAsIGBTVE1NQUNfUENJYCwgYW5kLCBjcnVjaWFsbHksIGBTVE1NQUNfU0VMRlRFU1RTYC4gQSBxdWljayBjaGVjayBjb25maXJtcyBhbGwgdGhyZWUuXG5cbk5vdywgcmV2aWV3aW5nIHRoZSBwYXRjaCBpdHNlbGYsIHNwZWNpZmljYWxseSB0aGUgYGR3bWFjX2ludGVncmF0ZWRfcGNzX2xvb3BiYWNrYCBmdW5jdGlvbiwgd2hpY2ggbW9kaWZpZXMgdGhlIEdNQUMgY29udHJvbCByZWdpc3Rlci4gSXQncyBhZGRpbmcgbG9vcGJhY2sgc3VwcG9ydCB0byB0aGUgaW50ZWdyYXRlZCBQQ1MuICBUaGUgY3J1Y2lhbCBwYXJ0IGlzIGhvdyB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQgd2l0aGluIHRoZSBgc3RtbWFjX3NlbGZ0ZXN0cy5jYCBmaWxlLiAgU3BlY2lmaWNhbGx5LCBgc3RtbWFjX3NlbGZ0ZXN0X2dldF9wY3NgLCB3aGljaCBjaGVja3MgZm9yIGVpdGhlciBnbHVlIGRyaXZlcidzIFBDUyBvciB0aGUgaW50ZWdyYXRlZCBQQ1MuICBUaGVuIGBzdG1tYWNfdGVzdF9waHlfbG9vcGJhY2tgIHVzZXMgYHBoeWxpbmtfcGNzX2xvb3BiYWNrYCwgYW5kIHN1YnNlcXVlbnRseSBgc3RtbWFjX3NlbGZ0ZXN0X3J1bmAgYWxzbyB1c2VzIGBwaHlsaW5rX3Bjc19sb29wYmFja2AuXG5cbk15IGZvY3VzIGlzIG9uIHRoZXNlIHN5bWJvbHM6IGBwaHlsaW5rX3Bjc19sb29wYmFja2AgYW5kIGBzdG1tYWNfc2VsZnRlc3RfcnVuYC4gQWx0aG91Z2ggYGR3bWFjX2ludGVncmF0ZWRfcGNzX2xvb3BiYWNrYCBpcyBzdGF0aWMsIGl0J3MgZXhlY3V0ZWQgd2hlbiBgcGh5bGlua19wY3NfbG9vcGJhY2tgIGlzIGNhbGxlZC4gTm8gb3RoZXIgZXhwb3J0ZWQgZnVuY3Rpb25zIGNvbWUgaW50byBwbGF5LlxuXG5MZXQncyBjb25maXJtIHRoZSBjb25maWd1cmF0aW9ucyBhZ2FpbjogYFNUTU1BQ19FVEhgLCBgU1RNTUFDX1BDSWAsIGFuZCBgU1RNTUFDX1NFTEZURVNUU2AsIHBsdXMgYFBIWUxJTktgIHdoaWNoIGlzIHNlbGVjdGVkIGJ5IGBTVE1NQUNfRVRIYCwgYW5kIGBQQ0lgLCB3aGljaCBpcyBzdGFuZGFyZC4gQSBkb3VibGUgY2hlY2sgY29uZmlybXMgYFNUTU1BQ19TRUxGVEVTVFNgIGlzIHRoZSBwcmVjaXNlIGNvbmZpZ3VyYXRpb24gbmFtZS5cblxuTGV0J3MgZW5zdXJlIHRoZSBmdW5jdGlvbiBuYW1lcyBhcmUgY29ycmVjdDogYHZvaWQgc3RtbWFjX3NlbGZ0ZXN0X3J1bihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgZXRodG9vbF90ZXN0ICpldGVzdCwgdTY0ICpidWYpYCBhbmQgYGludCBwaHlsaW5rX3Bjc19sb29wYmFjayhzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgYm9vbCBlbmFibGUpYC4gIFZlcmlmaWNhdGlvbiBvZiB0aGUgc3RhdGljIG5hdHVyZSBvZiBgc3RtbWFjX3Rlc3RfcGh5X2xvb3BiYWNrYCBhbmQgYHN0bW1hY19zZWxmdGVzdF9nZXRfcGNzYCBjb25maXJtcyBteSBpbml0aWFsIGFzc2Vzc21lbnQuXG5cblRoZSBrZXkgZm9jdXMgc3ltYm9scyByZW1haW46IGBwaHlsaW5rX3Bjc19sb29wYmFja2AgYW5kIGBzdG1tYWNfc2VsZnRlc3RfcnVuYC5cblxuVGhlIHJlYXNvbmluZyBpcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkOiB0aGlzIHBhdGNoIGFkZHMgYW5kIGVuYWJsZXMgbG9vcGJhY2sgc3VwcG9ydCBmb3IgdGhlIFNUTU1BQyBpbnRlZ3JhdGVkIFBDUyBhbmQgcGh5bGluaywgYW5kIHNpbmNlIHRoaXMgY29kZSBpcyByZWFjaGVkIHZpYSB0aGUgZXRodG9vbCBzZWxmLXRlc3RzLCB3aGljaCBhcmUgYWNjZXNzaWJsZSB0aHJvdWdoIGBTSU9DRVRIVE9PTGAgd2l0aCB0aGUgYEVUSFRPT0xfVEVTVGAgY29tbWFuZCwgd2UgY2FuIHRyaWdnZXIgdGhlIHZ1bG5lcmFiaWxpdHkgYnkgaW5qZWN0aW5nIGEgdmlydHVhbCBQQ0kgc3RtbWFjIGRldmljZSBhbmQgY2FsbGluZyBldGh0b29sIG9uIGl0LiAgQW5kIHRoZSBjb21taXQgbWVzc2FnZSByZWZlcmVuY2VzIHN5ei1jbHVzdGVyIHdpdGggdGhlIHBhdGNoLCB3aGljaCBtZWFucyBpdCBpcyB0ZXN0ZWQgYnkgc3l6a2FsbGVyLiAgVGhlcmVmb3JlLCBpdCBpcyBkZWZpbml0ZWx5IHJlYWNoYWJsZSwgYW5kIGZ1enppbmcgaXQgaXMgZGVmaW5pdGVseSB3b3J0aHdoaWxlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjIwNywiT3V0cHV0VG9rZW5zIjoxNjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjUxLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjA6MTE6MDYuODcwNDAzMjIxWiIsIlNlcSI6MzIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Njc3NzIyNTU1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJTVE1NQUNfRVRIXCIsXG4gICAgXCJTVE1NQUNfUENJXCIsXG4gICAgXCJTVE1NQUNfU0VMRlRFU1RTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicGh5bGlua19wY3NfbG9vcGJhY2tcIixcbiAgICBcInN0bW1hY19zZWxmdGVzdF9ydW5cIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGxvb3BiYWNrIHN1cHBvcnQgdG8gdGhlIHN0bW1hYyBpbnRlZ3JhdGVkIFBDUyBhbmQgcGh5bGluaywgd2hpY2ggaXMgdXRpbGl6ZWQgYnkgdGhlIHN0bW1hYyBldGh0b29sIHNlbGZ0ZXN0cy4gVGhpcyBjb2RlIGlzIHJlYWNoYWJsZSB2aWEgdGhlIFNJT0NFVEhUT09MIGlvY3RsIHdpdGggdGhlIEVUSFRPT0xfVEVTVCBjb21tYW5kLiBTeXprYWxsZXIgY2FuIHRyaWdnZXIgdGhpcyBieSBpbmplY3RpbmcgYSB2aXJ0dWFsIFBDSSBzdG1tYWMgZGV2aWNlIHVzaW5nIHN5el9wY2lfZGV2aWNlX2FkZCBhbmQgY2FsbGluZyBldGh0b29sIG9uIHRoZSByZXN1bHRpbmcgbmV0ZGV2LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlNUTU1BQ19FVEhcIixcbiAgICBcIlNUTU1BQ19QQ0lcIixcbiAgICBcIlNUTU1BQ19TRUxGVEVTVFNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJwaHlsaW5rX3Bjc19sb29wYmFja1wiLFxuICAgIFwic3RtbWFjX3NlbGZ0ZXN0X3J1blwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgbG9vcGJhY2sgc3VwcG9ydCB0byB0aGUgc3RtbWFjIGludGVncmF0ZWQgUENTIGFuZCBwaHlsaW5rLCB3aGljaCBpcyB1dGlsaXplZCBieSB0aGUgc3RtbWFjIGV0aHRvb2wgc2VsZnRlc3RzLiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIHZpYSB0aGUgU0lPQ0VUSFRPT0wgaW9jdGwgd2l0aCB0aGUgRVRIVE9PTF9URVNUIGNvbW1hbmQuIFN5emthbGxlciBjYW4gdHJpZ2dlciB0aGlzIGJ5IGluamVjdGluZyBhIHZpcnR1YWwgUENJIHN0bW1hYyBkZXZpY2UgdXNpbmcgc3l6X3BjaV9kZXZpY2VfYWRkIGFuZCBjYWxsaW5nIGV0aHRvb2wgb24gdGhlIHJlc3VsdGluZyBuZXRkZXYuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowj54lh[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-27 19:54:37 +0000 UTC FinishedAt: 2026-07-27 20:11:09 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "STMMAC_ETH", "STMMAC_PCI", "STMMAC_SELFTESTS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "STMMAC_ETH", "STMMAC_PCI", "STMMAC_SELFTESTS" ], "series_id": "1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "phylink_pcs_loopback", "stmmac_selftest_run" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIwOjA5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NUTU1BQ19FVEgmIzM0OywKICAgICYjMzQ7U1RNTUFDX1BDSSYjMzQ7LAogICAgJiMzNDtTVE1NQUNfU0VMRlRFU1RTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cGh5bGlua19wY3NfbG9vcGJhY2smIzM0OywKICAgICYjMzQ7c3RtbWFjX3NlbGZ0ZXN0X3J1biYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGxvb3BiYWNrIHN1cHBvcnQgdG8gdGhlIHN0bW1hYyBpbnRlZ3JhdGVkIFBDUyBhbmQgcGh5bGluaywgd2hpY2ggaXMgdXRpbGl6ZWQgYnkgdGhlIHN0bW1hYyBldGh0b29sIHNlbGZ0ZXN0cy4gVGhpcyBjb2RlIGlzIHJlYWNoYWJsZSB2aWEgdGhlIFNJT0NFVEhUT09MIGlvY3RsIHdpdGggdGhlIEVUSFRPT0xfVEVTVCBjb21tYW5kLiBTeXprYWxsZXIgY2FuIHRyaWdnZXIgdGhpcyBieSBpbmplY3RpbmcgYSB2aXJ0dWFsIFBDSSBzdG1tYWMgZGV2aWNlIHVzaW5nIHN5el9wY2lfZGV2aWNlX2FkZCBhbmQgY2FsbGluZyBldGh0b29sIG9uIHRoZSByZXN1bHRpbmcgbmV0ZGV2LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIwOjA5PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZGVlMjhkN2FhMDA0MjgxZDNlMGFmMjNkOGVlYjAzNGU0ZDA2MGUwYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVsIDI3IDIwOjA5OjM4IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY3MuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY3MuY1xuaW5kZXggZGYzN2FmNWFiODM3YWYuLjkwYTIxYTJmN2U4NzMxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3Bjcy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNzLmNcbkBAIC0xNjgsNiAmIzQzOzE2OCwyMiBAQCBzdGF0aWMgdm9pZCBkd21hY19pbnRlZ3JhdGVkX3Bjc19hbl9yZXN0YXJ0KHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzKVxuIFx0fVxuIH1cbiBcbiYjNDM7c3RhdGljIGludCBkd21hY19pbnRlZ3JhdGVkX3Bjc19sb29wYmFjayhzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgYm9vbCBlbmFibGUpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3Qgc3RtbWFjX3BjcyAqc3BjcyA9IHBoeWxpbmtfcGNzX3RvX3N0bW1hY19wY3MocGNzKTtcbiYjNDM7XHR2b2lkIF9faW9tZW0gKmFuX2NvbnRyb2wgPSBzcGNzLVx1MDAzZWJhc2UgJiM0MzsgR01BQ19BTl9DVFJMKDApO1xuJiM0MztcdHUzMiBjdHJsO1xuJiM0MztcbiYjNDM7XHRjdHJsID0gcmVhZGwoYW5fY29udHJvbCk7XG4mIzQzO1x0aWYgKGVuYWJsZSlcbiYjNDM7XHRcdGN0cmwgfD0gR01BQ19BTl9DVFJMX0VMRTtcbiYjNDM7XHRlbHNlXG4mIzQzO1x0XHRjdHJsIFx1MDAyNj0gfkdNQUNfQU5fQ1RSTF9FTEU7XG4mIzQzO1x0d3JpdGVsKGN0cmwsIGFuX2NvbnRyb2wpO1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gMDtcbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgY29uc3Qgc3RydWN0IHBoeWxpbmtfcGNzX29wcyBkd21hY19pbnRlZ3JhdGVkX3Bjc19vcHMgPSB7XG4gXHQucGNzX2luYmFuZF9jYXBzID0gZHdtYWNfaW50ZWdyYXRlZF9wY3NfaW5iYW5kX2NhcHMsXG4gXHQucGNzX2VuYWJsZSA9IGR3bWFjX2ludGVncmF0ZWRfcGNzX2VuYWJsZSxcbkBAIC0xNzUsNiAmIzQzOzE5MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5bGlua19wY3Nfb3BzIGR3bWFjX2ludGVncmF0ZWRfcGNzX29wcyA9IHtcbiBcdC5wY3NfZ2V0X3N0YXRlID0gZHdtYWNfaW50ZWdyYXRlZF9wY3NfZ2V0X3N0YXRlLFxuIFx0LnBjc19jb25maWcgPSBkd21hY19pbnRlZ3JhdGVkX3Bjc19jb25maWcsXG4gXHQucGNzX2FuX3Jlc3RhcnQgPSBkd21hY19pbnRlZ3JhdGVkX3Bjc19hbl9yZXN0YXJ0LFxuJiM0MztcdC5wY3NfbG9vcGJhY2sgPSBkd21hY19pbnRlZ3JhdGVkX3Bjc19sb29wYmFjayxcbiB9O1xuIFxuIHZvaWQgc3RtbWFjX2ludGVncmF0ZWRfcGNzX2lycShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHUzMiBzdGF0dXMsXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3NlbGZ0ZXN0cy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3NlbGZ0ZXN0cy5jXG5pbmRleCAyOWU4MjRiZDkwY2E2Yi4uNzdhNDU3YjJmYTVjZjcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfc2VsZnRlc3RzLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19zZWxmdGVzdHMuY1xuQEAgLTE5LDYgJiM0MzsxOSw3IEBAXG4gI2luY2x1ZGUgXHUwMDNjbmV0L3VkcC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbmV0L3RjX2FjdC90Y19nYWN0LmhcdTAwM2VcbiAjaW5jbHVkZSBcJiMzNDtzdG1tYWMuaFwmIzM0O1xuJiM0MzsjaW5jbHVkZSBcJiMzNDtzdG1tYWNfcGNzLmhcJiMzNDtcbiBcbiBzdHJ1Y3Qgc3RtbWFjaGRyIHtcbiBcdF9fYmUzMiB2ZXJzaW9uO1xuQEAgLTM3NCwyMyAmIzQzOzM3NSw1MSBAQCBzdGF0aWMgaW50IHN0bW1hY190ZXN0X21hY19sb29wYmFjayhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG4gXHRyZXR1cm4gX19zdG1tYWNfdGVzdF9sb29wYmFjayhwcml2LCBcdTAwMjZhdHRyKTtcbiB9XG4gXG4mIzQzO3N0YXRpYyBzdHJ1Y3QgcGh5bGlua19wY3MgKnN0bW1hY19zZWxmdGVzdF9nZXRfcGNzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbiYjNDM7e1xuJiM0MztcdC8qIFRyeSBnbHVlIGRyaXZlciYjMzk7cyBQQ1MgZmlyc3QsIHRoZW4gdGhlIGludGVncmF0ZWQgUENTLiAqL1xuJiM0MztcdGlmIChwcml2LVx1MDAzZWh3LVx1MDAzZXBoeWxpbmtfcGNzKVxuJiM0MztcdFx0cmV0dXJuIHByaXYtXHUwMDNlaHctXHUwMDNlcGh5bGlua19wY3M7XG4mIzQzO1xuJiM0MztcdGlmIChwcml2LVx1MDAzZWludGVncmF0ZWRfcGNzKVxuJiM0MztcdFx0cmV0dXJuIFx1MDAyNnByaXYtXHUwMDNlaW50ZWdyYXRlZF9wY3MtXHUwMDNlcGNzO1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gTlVMTDtcbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgaW50IHN0bW1hY190ZXN0X3BoeV9sb29wYmFjayhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG4ge1xuIFx0c3RydWN0IHN0bW1hY19wYWNrZXRfYXR0cnMgYXR0ciA9IHsgfTtcbiYjNDM7XHRzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcztcbiBcdGludCByZXQ7XG4gXG4tXHRpZiAoIXByaXYtXHUwMDNlZGV2LVx1MDAzZXBoeWRldilcbi1cdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuJiM0MztcdGlmIChwcml2LVx1MDAzZWRldi1cdTAwM2VwaHlkZXYpIHtcbiYjNDM7XHRcdHJldCA9IHBoeV9sb29wYmFjayhwcml2LVx1MDAzZWRldi1cdTAwM2VwaHlkZXYsIHRydWUsIDApO1xuJiM0MztcdFx0aWYgKHJldClcbiYjNDM7XHRcdFx0cmV0dXJuIHJldDtcbiBcbi1cdHJldCA9IHBoeV9sb29wYmFjayhwcml2LVx1MDAzZWRldi1cdTAwM2VwaHlkZXYsIHRydWUsIDApO1xuLVx0aWYgKHJldClcbiYjNDM7XHRcdGF0dHIuZHN0ID0gcHJpdi1cdTAwM2VkZXYtXHUwMDNlZGV2X2FkZHI7XG4mIzQzO1x0XHRyZXQgPSBfX3N0bW1hY190ZXN0X2xvb3BiYWNrKHByaXYsIFx1MDAyNmF0dHIpO1xuJiM0MztcbiYjNDM7XHRcdHBoeV9sb29wYmFjayhwcml2LVx1MDAzZWRldi1cdTAwM2VwaHlkZXYsIGZhbHNlLCAwKTtcbiBcdFx0cmV0dXJuIHJldDtcbiYjNDM7XHR9XG4gXG4tXHRhdHRyLmRzdCA9IHByaXYtXHUwMDNlZGV2LVx1MDAzZWRldl9hZGRyO1xuLVx0cmV0ID0gX19zdG1tYWNfdGVzdF9sb29wYmFjayhwcml2LCBcdTAwMjZhdHRyKTtcbiYjNDM7XHQvKiBVc2UgUENTIGxvb3BiYWNrIGZvciBpbnRlcmZhY2VzIHdpdGhvdXQgYW4gZXh0ZXJuYWwgUEhZLiAqL1xuJiM0MztcdHBjcyA9IHN0bW1hY19zZWxmdGVzdF9nZXRfcGNzKHByaXYpO1xuJiM0MztcdGlmIChwY3MpIHtcbiYjNDM7XHRcdHJldCA9IHBoeWxpbmtfcGNzX2xvb3BiYWNrKHBjcywgdHJ1ZSk7XG4mIzQzO1x0XHRpZiAocmV0KVxuJiM0MztcdFx0XHRyZXR1cm4gcmV0O1xuIFxuLVx0cGh5X2xvb3BiYWNrKHByaXYtXHUwMDNlZGV2LVx1MDAzZXBoeWRldiwgZmFsc2UsIDApO1xuLVx0cmV0dXJuIHJldDtcbiYjNDM7XHRcdGF0dHIuZHN0ID0gcHJpdi1cdTAwM2VkZXYtXHUwMDNlZGV2X2FkZHI7XG4mIzQzO1x0XHRyZXQgPSBfX3N0bW1hY190ZXN0X2xvb3BiYWNrKHByaXYsIFx1MDAyNmF0dHIpO1xuJiM0MztcbiYjNDM7XHRcdHBoeWxpbmtfcGNzX2xvb3BiYWNrKHBjcywgZmFsc2UpO1xuJiM0MztcdFx0cmV0dXJuIHJldDtcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdHJldHVybiAtRU9QTk9UU1VQUDtcbiB9XG4gXG4gc3RhdGljIGludCBzdG1tYWNfdGVzdF9tbWMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuQEAgLTE5ODYsNiAmIzQzOzIwMTUsOSBAQCB2b2lkIHN0bW1hY19zZWxmdGVzdF9ydW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbiBcdFx0XHRyZXQgPSAtRU9QTk9UU1VQUDtcbiBcdFx0XHRpZiAoZGV2LVx1MDAzZXBoeWRldilcbiBcdFx0XHRcdHJldCA9IHBoeV9sb29wYmFjayhkZXYtXHUwMDNlcGh5ZGV2LCB0cnVlLCAwKTtcbiYjNDM7XHRcdFx0ZWxzZVxuJiM0MztcdFx0XHRcdHJldCA9IHBoeWxpbmtfcGNzX2xvb3BiYWNrKHN0bW1hY19zZWxmdGVzdF9nZXRfcGNzKHByaXYpLFxuJiM0MztcdFx0XHRcdFx0XHRcdCAgIHRydWUpO1xuIFx0XHRcdGlmICghcmV0KVxuIFx0XHRcdFx0YnJlYWs7XG4gXHRcdFx0ZmFsbHRocm91Z2g7XG5AQCAtMjAxOSw2ICYjNDM7MjA1MSw5IEBAIHZvaWQgc3RtbWFjX3NlbGZ0ZXN0X3J1bihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFx0XHRcdHJldCA9IC1FT1BOT1RTVVBQO1xuIFx0XHRcdGlmIChkZXYtXHUwMDNlcGh5ZGV2KVxuIFx0XHRcdFx0cmV0ID0gcGh5X2xvb3BiYWNrKGRldi1cdTAwM2VwaHlkZXYsIGZhbHNlLCAwKTtcbiYjNDM7XHRcdFx0ZWxzZVxuJiM0MztcdFx0XHRcdHJldCA9IHBoeWxpbmtfcGNzX2xvb3BiYWNrKHN0bW1hY19zZWxmdGVzdF9nZXRfcGNzKHByaXYpLFxuJiM0MztcdFx0XHRcdFx0XHRcdCAgIGZhbHNlKTtcbiBcdFx0XHRpZiAoIXJldClcbiBcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdGZhbGx0aHJvdWdoO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jXG5pbmRleCA1OWRmZTM1YWZhNTRmYy4uNjkyNDJjYWZmYWVmNTEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jXG5AQCAtOTk3LDYgJiM0Mzs5OTcsMjUgQEAgaW50IHBoeWxpbmtfcGNzX3ByZV9pbml0KHN0cnVjdCBwaHlsaW5rICpwbCwgc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpXG4gfVxuIEVYUE9SVF9TWU1CT0xfR1BMKHBoeWxpbmtfcGNzX3ByZV9pbml0KTtcbiBcbiYjNDM7LyoqXG4mIzQzOyAqIHBoeWxpbmtfcGNzX2xvb3BiYWNrKCkgLSBFbmFibGUgb3IgZGlzYWJsZSBsb29wYmFjayBhdCB0aGUgUENTXG4mIzQzOyAqIEBwY3M6IGEgcG9pbnRlciB0byBhIFx1MDAyNnN0cnVjdCBwaHlsaW5rX3Bjcy5cbiYjNDM7ICogQGVuYWJsZTogdHJ1ZSB0byBlbmFibGUgbG9vcGJhY2ssIGZhbHNlIHRvIGRpc2FibGVcbiYjNDM7ICpcbiYjNDM7ICogRW5hYmxlIG9yIGRpc2FibGUgbG9vcGJhY2sgbW9kZSBhdCB0aGUgUENTIGxldmVsLiBUaGlzIGlzIHVzZWQgYnkgTUFDXG4mIzQzOyAqIGRyaXZlcnMgZm9yIHNlbGZ0ZXN0IHB1cnBvc2VzIHdoZW4gbm8gZXh0ZXJuYWwgUEhZIGlzIHByZXNlbnQuXG4mIzQzOyAqXG4mIzQzOyAqIFJldHVybnMgMCBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuXG4mIzQzOyAqL1xuJiM0MztpbnQgcGh5bGlua19wY3NfbG9vcGJhY2soc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIGJvb2wgZW5hYmxlKVxuJiM0Mzt7XG4mIzQzO1x0aWYgKHBjcyBcdTAwMjZcdTAwMjYgcGNzLVx1MDAzZW9wcy1cdTAwM2VwY3NfbG9vcGJhY2spXG4mIzQzO1x0XHRyZXR1cm4gcGNzLVx1MDAzZW9wcy1cdTAwM2VwY3NfbG9vcGJhY2socGNzLCBlbmFibGUpO1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4mIzQzO31cbiYjNDM7RVhQT1JUX1NZTUJPTF9HUEwocGh5bGlua19wY3NfbG9vcGJhY2spO1xuJiM0MztcbiBzdGF0aWMgdm9pZCBwaHlsaW5rX21hY19jb25maWcoc3RydWN0IHBoeWxpbmsgKnBsLFxuIFx0XHRcdCAgICAgICBjb25zdCBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSlcbiB7XG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9waHlsaW5rLmggYi9pbmNsdWRlL2xpbnV4L3BoeWxpbmsuaFxuaW5kZXggMmJjMGRiM2Q1MmFjOGQuLjY2YzcwMTZkNGFjZGNiIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9waHlsaW5rLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvcGh5bGluay5oXG5AQCAtNTE4LDYgJiM0Mzs1MTgsNyBAQCBzdHJ1Y3QgcGh5bGlua19wY3Mge1xuICAqXHRcdCAgICB0aGUgTUFDLlxuICAqIEBwY3NfcHJlX2luaXQ6IGNvbmZpZ3VyZSBQQ1MgY29tcG9uZW50cyBuZWNlc3NhcnkgZm9yIE1BQyBoYXJkd2FyZVxuICAqICAgICAgICAgICAgICAgIGluaXRpYWxpemF0aW9uIGUuZy4gUlggY2xvY2sgZm9yIHN0bW1hYy5cbiYjNDM7ICogQHBjc19sb29wYmFjazogZW5hYmxlL2Rpc2FibGUgbG9vcGJhY2sgbW9kZSBhdCB0aGUgUENTLlxuICAqL1xuIHN0cnVjdCBwaHlsaW5rX3Bjc19vcHMge1xuIFx0aW50ICgqcGNzX3ZhbGlkYXRlKShzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgdW5zaWduZWQgbG9uZyAqc3VwcG9ydGVkLFxuQEAgLTU0Miw2ICYjNDM7NTQzLDcgQEAgc3RydWN0IHBoeWxpbmtfcGNzX29wcyB7XG4gXHR2b2lkICgqcGNzX2Rpc2FibGVfZWVlKShzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcyk7XG4gXHR2b2lkICgqcGNzX2VuYWJsZV9lZWUpKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzKTtcbiBcdGludCAoKnBjc19wcmVfaW5pdCkoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpO1xuJiM0MztcdGludCAoKnBjc19sb29wYmFjaykoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIGJvb2wgZW5hYmxlKTtcbiB9O1xuIFxuICNpZiAwIC8qIEZvciBrZXJuZWwtZG9jIHB1cnBvc2VzIG9ubHkuICovXG5AQCAtNzE3LDggJiM0Mzs3MTksMjIgQEAgdm9pZCBwY3NfZW5hYmxlX2VlZShzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcyk7XG4gICovXG4gaW50IHBjc19wcmVfaW5pdChzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcyk7XG4gXG4mIzQzOy8qKlxuJiM0MzsgKiBwY3NfbG9vcGJhY2soKSAtIEVuYWJsZSBvciBkaXNhYmxlIGxvb3BiYWNrIGF0IHRoZSBQQ1NcbiYjNDM7ICogQHBjczogYSBwb2ludGVyIHRvIGEgXHUwMDI2c3RydWN0IHBoeWxpbmtfcGNzLlxuJiM0MzsgKiBAZW5hYmxlOiB0cnVlIHRvIGVuYWJsZSBsb29wYmFjaywgZmFsc2UgdG8gZGlzYWJsZVxuJiM0MzsgKlxuJiM0MzsgKiBFbmFibGUgb3IgZGlzYWJsZSBsb29wYmFjayBtb2RlIGF0IHRoZSBQQ1MgbGV2ZWwuIFRoaXMgaXMgdXNlZCBieSBNQUNcbiYjNDM7ICogZHJpdmVycyBmb3Igc2VsZnRlc3QgcHVycG9zZXMgd2hlbiBubyBleHRlcm5hbCBQSFkgaXMgcHJlc2VudC5cbiYjNDM7ICpcbiYjNDM7ICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLlxuJiM0MzsgKi9cbiYjNDM7aW50IHBjc19sb29wYmFjayhzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgYm9vbCBlbmFibGUpO1xuJiM0MztcbiAjZW5kaWZcbiBcbiYjNDM7aW50IHBoeWxpbmtfcGNzX2xvb3BiYWNrKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCBib29sIGVuYWJsZSk7XG4mIzQzO1xuIHN0cnVjdCBwaHlsaW5rICpwaHlsaW5rX2NyZWF0ZShzdHJ1Y3QgcGh5bGlua19jb25maWcgKixcbiBcdFx0XHQgICAgICAgY29uc3Qgc3RydWN0IGZ3bm9kZV9oYW5kbGUgKixcbiBcdFx0XHQgICAgICAgcGh5X2ludGVyZmFjZV90LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIwOjA5PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtTVE1NQUNfRVRIJiMzNDssCiAgICAmIzM0O1NUTU1BQ19QQ0kmIzM0OywKICAgICYjMzQ7U1RNTUFDX1NFTEZURVNUUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3BoeWxpbmtfcGNzX2xvb3BiYWNrJiMzNDssCiAgICAmIzM0O3N0bW1hY19zZWxmdGVzdF9ydW4mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBsb29wYmFjayBzdXBwb3J0IHRvIHRoZSBzdG1tYWMgaW50ZWdyYXRlZCBQQ1MgYW5kIHBoeWxpbmssIHdoaWNoIGlzIHV0aWxpemVkIGJ5IHRoZSBzdG1tYWMgZXRodG9vbCBzZWxmdGVzdHMuIFRoaXMgY29kZSBpcyByZWFjaGFibGUgdmlhIHRoZSBTSU9DRVRIVE9PTCBpb2N0bCB3aXRoIHRoZSBFVEhUT09MX1RFU1QgY29tbWFuZC4gU3l6a2FsbGVyIGNhbiB0cmlnZ2VyIHRoaXMgYnkgaW5qZWN0aW5nIGEgdmlydHVhbCBQQ0kgc3RtbWFjIGRldmljZSB1c2luZyBzeXpfcGNpX2RldmljZV9hZGQgYW5kIGNhbGxpbmcgZXRodG9vbCBvbiB0aGUgcmVzdWx0aW5nIG5ldGRldi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGRlZTI4ZDdhYTAwNDI4MWQzZTBhZjIzZDhlZWIwMzRlNGQwNjBlMGIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEp1bCAyNyAyMDowOTozOCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY3MuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY3MuYwppbmRleCBkZjM3YWY1YWI4MzdhZi4uOTBhMjFhMmY3ZTg3MzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY3MuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNzLmMKQEAgLTE2OCw2ICYjNDM7MTY4LDIyIEBAIHN0YXRpYyB2b2lkIGR3bWFjX2ludGVncmF0ZWRfcGNzX2FuX3Jlc3RhcnQoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpCiAJfQogfQogCiYjNDM7c3RhdGljIGludCBkd21hY19pbnRlZ3JhdGVkX3Bjc19sb29wYmFjayhzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgYm9vbCBlbmFibGUpCiYjNDM7ewomIzQzOwlzdHJ1Y3Qgc3RtbWFjX3BjcyAqc3BjcyA9IHBoeWxpbmtfcGNzX3RvX3N0bW1hY19wY3MocGNzKTsKJiM0MzsJdm9pZCBfX2lvbWVtICphbl9jb250cm9sID0gc3Bjcy0mZ3Q7YmFzZSAmIzQzOyBHTUFDX0FOX0NUUkwoMCk7CiYjNDM7CXUzMiBjdHJsOwomIzQzOwomIzQzOwljdHJsID0gcmVhZGwoYW5fY29udHJvbCk7CiYjNDM7CWlmIChlbmFibGUpCiYjNDM7CQljdHJsIHw9IEdNQUNfQU5fQ1RSTF9FTEU7CiYjNDM7CWVsc2UKJiM0MzsJCWN0cmwgJmFtcDs9IH5HTUFDX0FOX0NUUkxfRUxFOwomIzQzOwl3cml0ZWwoY3RybCwgYW5fY29udHJvbCk7CiYjNDM7CiYjNDM7CXJldHVybiAwOwomIzQzO30KJiM0MzsKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5bGlua19wY3Nfb3BzIGR3bWFjX2ludGVncmF0ZWRfcGNzX29wcyA9IHsKIAkucGNzX2luYmFuZF9jYXBzID0gZHdtYWNfaW50ZWdyYXRlZF9wY3NfaW5iYW5kX2NhcHMsCiAJLnBjc19lbmFibGUgPSBkd21hY19pbnRlZ3JhdGVkX3Bjc19lbmFibGUsCkBAIC0xNzUsNiAmIzQzOzE5MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5bGlua19wY3Nfb3BzIGR3bWFjX2ludGVncmF0ZWRfcGNzX29wcyA9IHsKIAkucGNzX2dldF9zdGF0ZSA9IGR3bWFjX2ludGVncmF0ZWRfcGNzX2dldF9zdGF0ZSwKIAkucGNzX2NvbmZpZyA9IGR3bWFjX2ludGVncmF0ZWRfcGNzX2NvbmZpZywKIAkucGNzX2FuX3Jlc3RhcnQgPSBkd21hY19pbnRlZ3JhdGVkX3Bjc19hbl9yZXN0YXJ0LAomIzQzOwkucGNzX2xvb3BiYWNrID0gZHdtYWNfaW50ZWdyYXRlZF9wY3NfbG9vcGJhY2ssCiB9OwogCiB2b2lkIHN0bW1hY19pbnRlZ3JhdGVkX3Bjc19pcnEoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCB1MzIgc3RhdHVzLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3NlbGZ0ZXN0cy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3NlbGZ0ZXN0cy5jCmluZGV4IDI5ZTgyNGJkOTBjYTZiLi43N2E0NTdiMmZhNWNmNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3NlbGZ0ZXN0cy5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19zZWxmdGVzdHMuYwpAQCAtMTksNiAmIzQzOzE5LDcgQEAKICNpbmNsdWRlICZsdDtuZXQvdWRwLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bmV0L3RjX2FjdC90Y19nYWN0LmgmZ3Q7CiAjaW5jbHVkZSAmIzM0O3N0bW1hYy5oJiMzNDsKJiM0MzsjaW5jbHVkZSAmIzM0O3N0bW1hY19wY3MuaCYjMzQ7CiAKIHN0cnVjdCBzdG1tYWNoZHIgewogCV9fYmUzMiB2ZXJzaW9uOwpAQCAtMzc0LDIzICYjNDM7Mzc1LDUxIEBAIHN0YXRpYyBpbnQgc3RtbWFjX3Rlc3RfbWFjX2xvb3BiYWNrKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdikKIAlyZXR1cm4gX19zdG1tYWNfdGVzdF9sb29wYmFjayhwcml2LCAmYW1wO2F0dHIpOwogfQogCiYjNDM7c3RhdGljIHN0cnVjdCBwaHlsaW5rX3BjcyAqc3RtbWFjX3NlbGZ0ZXN0X2dldF9wY3Moc3RydWN0IHN0bW1hY19wcml2ICpwcml2KQomIzQzO3sKJiM0MzsJLyogVHJ5IGdsdWUgZHJpdmVyJiMzOTtzIFBDUyBmaXJzdCwgdGhlbiB0aGUgaW50ZWdyYXRlZCBQQ1MuICovCiYjNDM7CWlmIChwcml2LSZndDtody0mZ3Q7cGh5bGlua19wY3MpCiYjNDM7CQlyZXR1cm4gcHJpdi0mZ3Q7aHctJmd0O3BoeWxpbmtfcGNzOwomIzQzOwomIzQzOwlpZiAocHJpdi0mZ3Q7aW50ZWdyYXRlZF9wY3MpCiYjNDM7CQlyZXR1cm4gJmFtcDtwcml2LSZndDtpbnRlZ3JhdGVkX3Bjcy0mZ3Q7cGNzOwomIzQzOwomIzQzOwlyZXR1cm4gTlVMTDsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgaW50IHN0bW1hY190ZXN0X3BoeV9sb29wYmFjayhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpCiB7CiAJc3RydWN0IHN0bW1hY19wYWNrZXRfYXR0cnMgYXR0ciA9IHsgfTsKJiM0MzsJc3RydWN0IHBoeWxpbmtfcGNzICpwY3M7CiAJaW50IHJldDsKIAotCWlmICghcHJpdi0mZ3Q7ZGV2LSZndDtwaHlkZXYpCi0JCXJldHVybiAtRU9QTk9UU1VQUDsKJiM0MzsJaWYgKHByaXYtJmd0O2Rldi0mZ3Q7cGh5ZGV2KSB7CiYjNDM7CQlyZXQgPSBwaHlfbG9vcGJhY2socHJpdi0mZ3Q7ZGV2LSZndDtwaHlkZXYsIHRydWUsIDApOwomIzQzOwkJaWYgKHJldCkKJiM0MzsJCQlyZXR1cm4gcmV0OwogCi0JcmV0ID0gcGh5X2xvb3BiYWNrKHByaXYtJmd0O2Rldi0mZ3Q7cGh5ZGV2LCB0cnVlLCAwKTsKLQlpZiAocmV0KQomIzQzOwkJYXR0ci5kc3QgPSBwcml2LSZndDtkZXYtJmd0O2Rldl9hZGRyOwomIzQzOwkJcmV0ID0gX19zdG1tYWNfdGVzdF9sb29wYmFjayhwcml2LCAmYW1wO2F0dHIpOwomIzQzOwomIzQzOwkJcGh5X2xvb3BiYWNrKHByaXYtJmd0O2Rldi0mZ3Q7cGh5ZGV2LCBmYWxzZSwgMCk7CiAJCXJldHVybiByZXQ7CiYjNDM7CX0KIAotCWF0dHIuZHN0ID0gcHJpdi0mZ3Q7ZGV2LSZndDtkZXZfYWRkcjsKLQlyZXQgPSBfX3N0bW1hY190ZXN0X2xvb3BiYWNrKHByaXYsICZhbXA7YXR0cik7CiYjNDM7CS8qIFVzZSBQQ1MgbG9vcGJhY2sgZm9yIGludGVyZmFjZXMgd2l0aG91dCBhbiBleHRlcm5hbCBQSFkuICovCiYjNDM7CXBjcyA9IHN0bW1hY19zZWxmdGVzdF9nZXRfcGNzKHByaXYpOwomIzQzOwlpZiAocGNzKSB7CiYjNDM7CQlyZXQgPSBwaHlsaW5rX3Bjc19sb29wYmFjayhwY3MsIHRydWUpOwomIzQzOwkJaWYgKHJldCkKJiM0MzsJCQlyZXR1cm4gcmV0OwogCi0JcGh5X2xvb3BiYWNrKHByaXYtJmd0O2Rldi0mZ3Q7cGh5ZGV2LCBmYWxzZSwgMCk7Ci0JcmV0dXJuIHJldDsKJiM0MzsJCWF0dHIuZHN0ID0gcHJpdi0mZ3Q7ZGV2LSZndDtkZXZfYWRkcjsKJiM0MzsJCXJldCA9IF9fc3RtbWFjX3Rlc3RfbG9vcGJhY2socHJpdiwgJmFtcDthdHRyKTsKJiM0MzsKJiM0MzsJCXBoeWxpbmtfcGNzX2xvb3BiYWNrKHBjcywgZmFsc2UpOwomIzQzOwkJcmV0dXJuIHJldDsKJiM0MzsJfQomIzQzOwomIzQzOwlyZXR1cm4gLUVPUE5PVFNVUFA7CiB9CiAKIHN0YXRpYyBpbnQgc3RtbWFjX3Rlc3RfbW1jKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdikKQEAgLTE5ODYsNiAmIzQzOzIwMTUsOSBAQCB2b2lkIHN0bW1hY19zZWxmdGVzdF9ydW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJCXJldCA9IC1FT1BOT1RTVVBQOwogCQkJaWYgKGRldi0mZ3Q7cGh5ZGV2KQogCQkJCXJldCA9IHBoeV9sb29wYmFjayhkZXYtJmd0O3BoeWRldiwgdHJ1ZSwgMCk7CiYjNDM7CQkJZWxzZQomIzQzOwkJCQlyZXQgPSBwaHlsaW5rX3Bjc19sb29wYmFjayhzdG1tYWNfc2VsZnRlc3RfZ2V0X3Bjcyhwcml2KSwKJiM0MzsJCQkJCQkJICAgdHJ1ZSk7CiAJCQlpZiAoIXJldCkKIAkJCQlicmVhazsKIAkJCWZhbGx0aHJvdWdoOwpAQCAtMjAxOSw2ICYjNDM7MjA1MSw5IEBAIHZvaWQgc3RtbWFjX3NlbGZ0ZXN0X3J1bihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQkJcmV0ID0gLUVPUE5PVFNVUFA7CiAJCQlpZiAoZGV2LSZndDtwaHlkZXYpCiAJCQkJcmV0ID0gcGh5X2xvb3BiYWNrKGRldi0mZ3Q7cGh5ZGV2LCBmYWxzZSwgMCk7CiYjNDM7CQkJZWxzZQomIzQzOwkJCQlyZXQgPSBwaHlsaW5rX3Bjc19sb29wYmFjayhzdG1tYWNfc2VsZnRlc3RfZ2V0X3Bjcyhwcml2KSwKJiM0MzsJCQkJCQkJICAgZmFsc2UpOwogCQkJaWYgKCFyZXQpCiAJCQkJYnJlYWs7CiAJCQlmYWxsdGhyb3VnaDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jCmluZGV4IDU5ZGZlMzVhZmE1NGZjLi42OTI0MmNhZmZhZWY1MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jCkBAIC05OTcsNiAmIzQzOzk5NywyNSBAQCBpbnQgcGh5bGlua19wY3NfcHJlX2luaXQoc3RydWN0IHBoeWxpbmsgKnBsLCBzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcykKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHBoeWxpbmtfcGNzX3ByZV9pbml0KTsKIAomIzQzOy8qKgomIzQzOyAqIHBoeWxpbmtfcGNzX2xvb3BiYWNrKCkgLSBFbmFibGUgb3IgZGlzYWJsZSBsb29wYmFjayBhdCB0aGUgUENTCiYjNDM7ICogQHBjczogYSBwb2ludGVyIHRvIGEgJmFtcDtzdHJ1Y3QgcGh5bGlua19wY3MuCiYjNDM7ICogQGVuYWJsZTogdHJ1ZSB0byBlbmFibGUgbG9vcGJhY2ssIGZhbHNlIHRvIGRpc2FibGUKJiM0MzsgKgomIzQzOyAqIEVuYWJsZSBvciBkaXNhYmxlIGxvb3BiYWNrIG1vZGUgYXQgdGhlIFBDUyBsZXZlbC4gVGhpcyBpcyB1c2VkIGJ5IE1BQwomIzQzOyAqIGRyaXZlcnMgZm9yIHNlbGZ0ZXN0IHB1cnBvc2VzIHdoZW4gbm8gZXh0ZXJuYWwgUEhZIGlzIHByZXNlbnQuCiYjNDM7ICoKJiM0MzsgKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgomIzQzOyAqLwomIzQzO2ludCBwaHlsaW5rX3Bjc19sb29wYmFjayhzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgYm9vbCBlbmFibGUpCiYjNDM7ewomIzQzOwlpZiAocGNzICZhbXA7JmFtcDsgcGNzLSZndDtvcHMtJmd0O3Bjc19sb29wYmFjaykKJiM0MzsJCXJldHVybiBwY3MtJmd0O29wcy0mZ3Q7cGNzX2xvb3BiYWNrKHBjcywgZW5hYmxlKTsKJiM0MzsKJiM0MzsJcmV0dXJuIC1FT1BOT1RTVVBQOwomIzQzO30KJiM0MztFWFBPUlRfU1lNQk9MX0dQTChwaHlsaW5rX3Bjc19sb29wYmFjayk7CiYjNDM7CiBzdGF0aWMgdm9pZCBwaHlsaW5rX21hY19jb25maWcoc3RydWN0IHBoeWxpbmsgKnBsLAogCQkJICAgICAgIGNvbnN0IHN0cnVjdCBwaHlsaW5rX2xpbmtfc3RhdGUgKnN0YXRlKQogewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9waHlsaW5rLmggYi9pbmNsdWRlL2xpbnV4L3BoeWxpbmsuaAppbmRleCAyYmMwZGIzZDUyYWM4ZC4uNjZjNzAxNmQ0YWNkY2IgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcGh5bGluay5oCiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvcGh5bGluay5oCkBAIC01MTgsNiAmIzQzOzUxOCw3IEBAIHN0cnVjdCBwaHlsaW5rX3BjcyB7CiAgKgkJICAgIHRoZSBNQUMuCiAgKiBAcGNzX3ByZV9pbml0OiBjb25maWd1cmUgUENTIGNvbXBvbmVudHMgbmVjZXNzYXJ5IGZvciBNQUMgaGFyZHdhcmUKICAqICAgICAgICAgICAgICAgIGluaXRpYWxpemF0aW9uIGUuZy4gUlggY2xvY2sgZm9yIHN0bW1hYy4KJiM0MzsgKiBAcGNzX2xvb3BiYWNrOiBlbmFibGUvZGlzYWJsZSBsb29wYmFjayBtb2RlIGF0IHRoZSBQQ1MuCiAgKi8KIHN0cnVjdCBwaHlsaW5rX3Bjc19vcHMgewogCWludCAoKnBjc192YWxpZGF0ZSkoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIHVuc2lnbmVkIGxvbmcgKnN1cHBvcnRlZCwKQEAgLTU0Miw2ICYjNDM7NTQzLDcgQEAgc3RydWN0IHBoeWxpbmtfcGNzX29wcyB7CiAJdm9pZCAoKnBjc19kaXNhYmxlX2VlZSkoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpOwogCXZvaWQgKCpwY3NfZW5hYmxlX2VlZSkoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpOwogCWludCAoKnBjc19wcmVfaW5pdCkoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpOwomIzQzOwlpbnQgKCpwY3NfbG9vcGJhY2spKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCBib29sIGVuYWJsZSk7CiB9OwogCiAjaWYgMCAvKiBGb3Iga2VybmVsLWRvYyBwdXJwb3NlcyBvbmx5LiAqLwpAQCAtNzE3LDggJiM0Mzs3MTksMjIgQEAgdm9pZCBwY3NfZW5hYmxlX2VlZShzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcyk7CiAgKi8KIGludCBwY3NfcHJlX2luaXQoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpOwogCiYjNDM7LyoqCiYjNDM7ICogcGNzX2xvb3BiYWNrKCkgLSBFbmFibGUgb3IgZGlzYWJsZSBsb29wYmFjayBhdCB0aGUgUENTCiYjNDM7ICogQHBjczogYSBwb2ludGVyIHRvIGEgJmFtcDtzdHJ1Y3QgcGh5bGlua19wY3MuCiYjNDM7ICogQGVuYWJsZTogdHJ1ZSB0byBlbmFibGUgbG9vcGJhY2ssIGZhbHNlIHRvIGRpc2FibGUKJiM0MzsgKgomIzQzOyAqIEVuYWJsZSBvciBkaXNhYmxlIGxvb3BiYWNrIG1vZGUgYXQgdGhlIFBDUyBsZXZlbC4gVGhpcyBpcyB1c2VkIGJ5IE1BQwomIzQzOyAqIGRyaXZlcnMgZm9yIHNlbGZ0ZXN0IHB1cnBvc2VzIHdoZW4gbm8gZXh0ZXJuYWwgUEhZIGlzIHByZXNlbnQuCiYjNDM7ICoKJiM0MzsgKiBSZXR1cm5zIDAgb24gc3VjY2Vzcywgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCiYjNDM7ICovCiYjNDM7aW50IHBjc19sb29wYmFjayhzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgYm9vbCBlbmFibGUpOwomIzQzOwogI2VuZGlmCiAKJiM0MztpbnQgcGh5bGlua19wY3NfbG9vcGJhY2soc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIGJvb2wgZW5hYmxlKTsKJiM0MzsKIHN0cnVjdCBwaHlsaW5rICpwaHlsaW5rX2NyZWF0ZShzdHJ1Y3QgcGh5bGlua19jb25maWcgKiwKIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZndub2RlX2hhbmRsZSAqLAogCQkJICAgICAgIHBoeV9pbnRlcmZhY2VfdCwKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjA6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDQ2NgoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDY5OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFZpYWJpbGl0eSBvZiBTVE1NQUMgTG9vcGJhY2sgU3VwcG9ydCBpbiBhIFZpcnR1YWxpemVkIENvbnRleHQqKgoKT2theSwgc28gd2UmIzM5O3ZlIGdvdCBhIHBhdGNoIGhlcmUgdGhhdCBhZGRzIGxvb3BiYWNrIHN1cHBvcnQgdG8gdGhlIGBzdG1tYWNgIFBDUyBkcml2ZXIgYW5kIHBoeWxpbmssIHRvdWNoaW5nIGEgZmV3IGtleSBmaWxlczogYHN0bW1hY19wY3MuY2AsIGBzdG1tYWNfc2VsZnRlc3RzLmNgLCBgcGh5bGluay5jYCwgYW5kIGBwaHlsaW5rLmhgLiBUaGlzIGlzIGludGVyZXN0aW5nIGJlY2F1c2UgdGhlIGBzdG1tYWNgIGRyaXZlciBoYW5kbGVzIFNUTWljcm9lbGVjdHJvbmljcyYjMzk7IEV0aGVybmV0IE1BQ3MuIE15IGltbWVkaWF0ZSBxdWVzdGlvbiwgZ2l2ZW4gdGhhdCBJJiMzOTttIHdvcmtpbmcgaW4gYSBwb3RlbnRpYWxseSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgaXM6IENhbiBJIGFjdHVhbGx5ICpyZWFjaCogdGhpcyBmdW5jdGlvbmFsaXR5PwoKVHlwaWNhbGx5LCBgc3RtbWFjYCBpcyBhIHBsYXRmb3JtIGRyaXZlciwgdGlnaHRseSBjb3VwbGVkIHdpdGggc3BlY2lmaWMgU29DcyDigJMgQVJNLCBJbnRlbCBFbGtoYXJ0IExha2UsIHRoYXQgc29ydCBvZiB0aGluZy4gQnV0IHRoZXJlJiMzOTtzIHRoYXQgUENJIHdyYXBwZXIsIGBzdG1tYWNfcGNpLmNgLCB3aGljaCBzdXBwb3J0cyBzb21lIEludGVsIGFuZCBBTUQgY2hpcHMuIFNvLCBpcyB0aGVyZSBhbnkgcG9zc2liaWxpdHkgdGhhdCBRRU1VLCBteSB2aXJ0dWFsaXphdGlvbiB0b29sIG9mIGNob2ljZSwgZW11bGF0ZXMgb25lIG9mIHRoZXNlIFBDSSBkZXZpY2VzPyBBIHF1aWNrIGNoZWNrIHNob3dzIFFFTVUgc3VwcG9ydHMgdGhlIGxpa2VzIG9mIGBlMTAwMGAsIGBlMTAwMGVgLCBgcnRsODEzOWAsIGV0Yy4sIGJ1dCBub3RoaW5nIGRpcmVjdGx5IGxhYmVsZWQgYHN0bW1hY2AuCgpIbW0sIGlzIHRoZXJlIGV2ZW4gYSBwbGF0Zm9ybSAqd2l0aCogYHN0bW1hY2AgdGhhdCBRRU1VIG1pZ2h0IGVtdWxhdGU/IExldCYjMzk7cyBzZWUuLi4gQWxsd2lubmVyLCBpLk1YLCBOUENNLCBDYWRlbmNlLCBGVEdNQUMsIExBTjkxMTgsIFNNQzkxYzExMSwgU3RlbGxhcmlzLCBYR01BQy4uLiB3YWl0LCBYR01BQyAqaXMqIGEgU3lub3BzeXMgRGVzaWduV2FyZSBNQUMsIGJ1dCBpdCYjMzk7cyAxMEcsIGFuZCBgc3RtbWFjYCBpcyBmb3IgMTAvMTAwLzEwMDAuIE5vdCBxdWl0ZSB0aGUgc2FtZSB0aGluZy4KClNvLCByZWFsaXN0aWNhbGx5LCBpcyBgc3RtbWFjYCAqcHJvYmVhYmxlKiBpbiBRRU1VPyBJIGtub3cgdGhhdCwgbm9ybWFsbHksIGBzdG1tYWNgIGlzbiYjMzk7dCBhIHRhcmdldCBmb3IgZnV6emluZyB3aXRoIHN5emthbGxlciBiZWNhdXNlIGl0IG5lZWRzIHNwZWNpZmljIGhhcmR3YXJlIHRoYXQgUUVNVSBkb2VzbiYjMzk7dCBvZmZlci4gQnV0IHdhaXQsIGRpZCBzeXprYWxsZXIgZXZlbiBzdXBwb3J0IGBzdG1tYWNgPyBObywgaXQgbG9va3MgbGlrZSBzeXprYWxsZXIgc3RpY2tzIHRvIG1vcmUgc3RhbmRhcmQgc3R1ZmYgbGlrZSBgdHVuYCwgYHZldGhgLCBgdmlydGlvYCwgYGUxMDAwYCBhbmQgc28gb24sIHdoaWNoIGFyZSBhbGwgZWFzaWx5IHJlcHJvZHVjZWQuCgpNeSBjb25jbHVzaW9uIGlzIGl0JiMzOTtzIHVubGlrZWx5IHRoaXMgbG9vcGJhY2sgc3VwcG9ydCBpcyBnb2luZyB0byBiZSBlYXNpbHkgdGVzdGFibGUgaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50LiBUaGlzIGlzIHNvbWV0aGluZyB0aGF0IG5lZWRzIGEgdGFyZ2V0ZWQsIGhhcmR3YXJlLXNwZWNpZmljIHNldHVwLiBUaGUgcXVlc3Rpb24gbm93IGJlY29tZXM6IGhvdyBkbyBJIHZlcmlmeSB0aGlzIGZ1bmN0aW9uYWxpdHkgd2l0aG91dCB0aGF0PyBJcyB0aGVyZSBhIHRlc3QgYmVuY2ggdGhhdCB1c2VzIHRoZSBgc3RtbWFjYCBkcml2ZXIgdGhhdCBJIGNvdWxkIGxvb2sgYXQsIHRvIHRyeSB0byB1bmRlcnN0YW5kIGlmIHRoZXJlIGlzIGEgd29ya2Fyb3VuZD8KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdG1tYWMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDExNjI3IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI5PWNvbmZpZyBTVE1NQUNfUExBVEZPUk1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMzLVx0aGVscFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNDpcdCAgVGhpcyBzZWxlY3RzIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1LVx0ICBUaGlzIGlzIHRoZSBkcml2ZXIgdXNlZCBvbiBzZXZlcmFsIFNvQ3M6XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz02MD1jb25maWcgRFdNQUNfQU5BUklPTlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjY3Olx0ICBUaGlzIHNlbGVjdHMgdGhlIEFuYXJpb24gU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTY4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Nzg9Y29uZmlnIERXTUFDX0lOR0VOSUNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo4NjpcdCAgVGhpcyBzZWxlY3RzIEluZ2VuaWMgU29DcyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctODctXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgb24gZm9yIHRoZSBJbmdlbmljIFNvQ3Ncbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTkwPWNvbmZpZyBEV01BQ19JUFE4MDZYXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy05Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6OTg6XHQgIFRoaXMgc2VsZWN0cyB0aGUgSVBRODA2eCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTk5LVx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBkb2VzIG5vdCB1c2UgYW55IG9mIHRoZSBoYXJkd2FyZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTE0PWNvbmZpZyBEV01BQ19NRURJQVRFS1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTE5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMjA6XHQgIFRoaXMgc2VsZWN0cyB0aGUgTVQyNzEyIFNvQyBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRyaXZlci5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xMjI9Y29uZmlnIERXTUFDX01FU09OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMjktXHQgIFRoaXMgc2VsZWN0cyB0aGUgQW1sb2dpYyBNZXNvbiBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMzA6XHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgTWVzb242LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMzEtXHQgIE1lc29uOCwgTWVzb244YiBhbmQgR1hCQiBTb0NzLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTMzPWNvbmZpZyBEV01BQ19OVVZPVE9OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNDEtXHQgIFRoaXMgc2VsZWN0cyB0aGUgTnV2b3RvbiBNQTM1IHNlcmllcyBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE0MjpcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhlIG51dm90b24tZHdtYWMgZHJpdmVyIGlzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE0My1cdCAgdXNlZCBmb3IgTUEzNSBzZXJpZXMgU29Dcy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE0NT1jb25maWcgRFdNQUNfUUNPTV9FVEhRT1Ncbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE1Mi1cdCAgVGhpcyBzZWxlY3RzIHRoZSBRdWFsY29tbSBFVEhRT1MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTUzOlx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTU0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNTU9Y29uZmlnIERXTUFDX1JFTkVTQVNfR0JFVEhcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE2My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTY0Olx0ICBUaGlzIHNlbGVjdHMgUmVuZXNhcyBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRldmljZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNjUtXHQgIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlIFJaL1YySChQKSBmYW1pbHksIFJaL1QySCBhbmRcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE2OD1jb25maWcgRFdNQUNfUk9DS0NISVBcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE3Ni1cdCAgVGhpcyBzZWxlY3RzIHRoZSBSb2NrY2hpcCBSSzMyODggU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTc3Olx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE3OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTc5PWNvbmZpZyBEV01BQ19SWk4xXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xODctXHQgIFRoaXMgc2VsZWN0cyB0aGUgUmVuZXNhcyBSWi9OMSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxODg6XHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBzdXBwb3J0IGNhbiBtYWtlIHVzZSBvZiBhIGN1c3RvbSBNSUlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTg5LVx0ICBjb252ZXJ0ZXIgUENTIGRldmljZS5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE5MT1jb25maWcgRFdNQUNfUzMyXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xOTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE5ODpcdCAgVGhpcyBzZWxlY3RzIE5YUCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5OS1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlIFMzMkNDIHNlcmllc1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjAzPWNvbmZpZyBEV01BQ19TT0NGUEdBXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMTQtXHQgIFRoaXMgc2VsZWN0cyB0aGUgQWx0ZXJhIFNPQ0ZQR0EgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMTU6XHQgIGZvciB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIxNi1cdCAgYXJyaWE1IGFuZCBjeWNsb25lNSBGUEdBIFNvQ3MuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yMTg9Y29uZmlnIERXTUFDX1NPUEhHT1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjI1LVx0ICBUaGlzIHNlbGVjdHMgdGhlIFNvcGhnbyBTb0Mgc3BlY2lmaWMgZ2x1ZSBsYXllciBzdXBwb3J0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIyNjpcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIyNy1cdCAgZXRoZXJuZXQgY29udHJvbGxlcnMgb24gdmFyaW91cyBTb3BoZ28gU29Dcy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTIyOT1jb25maWcgRFdNQUNfU1BBQ0VNSVRcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIzNy1cdCAgVGhpcyBzZWxlY3RzIHRoZSBTcGFjZW1pdCBwbGF0Zm9ybSBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjM4Olx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjM5LVx0ICBTcGFjZW1pdCBLMyBldGhlcm5ldCBjb250cm9sbGVycy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI0MT1jb25maWcgRFdNQUNfU1RBUkZJVkVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI0OS1cdCAgVGhpcyBzZWxlY3RzIHRoZSBTdGFyRml2ZSBwbGF0Zm9ybSBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjUwOlx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjUxLVx0ICBTdGFyRml2ZSBKSDcxMDAgYW5kIEpINzExMCBldGhlcm5ldCBjb250cm9sbGVycy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI1Mz1jb25maWcgRFdNQUNfU1RJXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI2MTpcdCAgVGhpcyBzZWxlY3RzIFNUaSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI2Mi1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBvbiBmb3IgdGhlIFNUaSBzZXJpZXNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI2NT1jb25maWcgRFdNQUNfU1RNMzJcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjczOlx0ICBUaGlzIHNlbGVjdHMgU1RNMzIgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNzQtXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgb24gZm9yIHRoZSBTVE0zMiBzZXJpZXNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI3Nz1jb25maWcgRFdNQUNfU1VOWElcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI4NC1cdCAgVGhpcyBzZWxlY3RzIEFsbHdpbm5lciBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjg1Olx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgQTIwL0EzMVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yODYtXHQgIEdNQUMgZXRoZXJuZXQgY29udHJvbGxlci5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI4OD1jb25maWcgRFdNQUNfU1VOOElcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI5Ni1cdCAgVGhpcyBzZWxlY3RzIEFsbHdpbm5lciBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjk3Olx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgSDMvQTgzVC9BNjRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjk4LVx0ICBFTUFDIGV0aGVybmV0IGNvbnRyb2xsZXIuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMDA9Y29uZmlnIERXTUFDX1NVTjU1SVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzA4LVx0ICBUaGlzIHNlbGVjdHMgQWxsd2lubmVyIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMDk6XHQgIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBBNTIzL1Q1MjdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzEwLVx0ICBHTUFDMjAwIGV0aGVybmV0IGNvbnRyb2xsZXIuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMTI9Y29uZmlnIERXTUFDX1RIRUFEXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMTgtXHQgIFRoaXMgc2VsZWN0cyB0aGUgVC1IRUFEIHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzE5Olx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIFQtSEVBRCBUSDE1MjBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzIwLVx0ICBldGhlcm5ldCBjb250cm9sbGVyLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzIyPWNvbmZpZyBEV01BQ19JTVg4XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMzMDpcdCAgVGhpcyBzZWxlY3RzIE5YUCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMzMS1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgaS5NWDggc2VyaWVzIGxpa2Vcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTMzND1jb25maWcgRFdNQUNfSU5URUxfUExBVFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzQwLVx0ICBUaGlzIHNlbGVjdHMgdGhlIEludGVsIHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzQxOlx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIHRoZSBJbnRlbCBLZWVtIEJheVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNDItXHQgIFNvQy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM0ND1jb25maWcgRFdNQUNfTE9PTkdTT04xXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM1MTpcdCAgVGhpcyBzZWxlY3RzIExvb25nc29uMSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1Mi1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgTG9vbmdzb24xLWJhc2VkIGJvYXJkc1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzU1PWNvbmZpZyBEV01BQ19URUdSQVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzYwLVx0ICBmb3VuZCBvbiB0aGUgTlZJRElBIFRlZ3JhIFNvQyBkZXZpY2VzLiBUaGlzIGRyaXZlciBwcm92aWRlcyB0aGUgZ2x1ZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNjE6XHQgIGxheWVyIG9uIHRvcCBvZiB0aGUgc3RtbWFjIGRyaXZlciByZXF1aXJlZCBmb3IgdGhlc2UgTlZJRElBIFRlZ3JhIFNvQ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNjItXHQgIGRldmljZXMuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNzM9Y29uZmlnIFNUTU1BQ19MSUJQQ0lcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3NS1cdGhlbHBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mzc2Olx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSBQQ0kgYnVzIGhlbHBlcnMgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM3OD1jb25maWcgRFdNQUNfSU5URUxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM4NS1cdCAgVGhpcyBzZWxlY3RzIHRoZSBJbnRlbCBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM4NjpcdCAgc3RtbWFjIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgSW50ZWwgUXVhcmsvRUhML1RHTC5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zODg9Y29uZmlnIERXTUFDX0xPT05HU09OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTQtXHRoZWxwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM5NTpcdCAgVGhpcyBzZWxlY3RzIHRoZSBMT09OR1NPTiBQQ0kgYnVzIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTYtXHQgIFN1cHBvcnQgZm9yIGV0aGVybmV0IGNvbnRyb2xsZXIgb24gTG9vbmdzb24tMksxMDAwIFNvQyBhbmQgTFM3QTEwMDAgYnJpZGdlLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9NDA3PWNvbmZpZyBTVE1NQUNfUENJXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00MTItXHRoZWxwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQxMzpcdCAgVGhpcyBzZWxlY3RzIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQxNC1cdCAgVGhpcyBkcml2ZXIgd2FzIHRlc3RlZCBvbiBYTElOWCBYQzJWMzAwMCBGRjExNTJBTVQwMjIxXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyOm9iai0kKENPTkZJR19TVE1NQUNfRVRIKSAmIzQzOz0gc3RtbWFjLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjM6c3RtbWFjLW9ianM6PSBzdG1tYWNfbWFpbi5vIHN0bW1hY19ldGh0b29sLm8gc3RtbWFjX21kaW8ubyByaW5nX21vZGUub1x0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTQtXHQgICAgICBjaGFpbl9tb2RlLm8gZHdtYWNfbGliLm8gZHdtYWMxMDAwX2NvcmUubyBkd21hYzEwMDBfZG1hLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS01LVx0ICAgICAgZHdtYWMxMDBfY29yZS5vIGR3bWFjMTAwX2RtYS5vIGVuaF9kZXNjLm8gbm9ybV9kZXNjLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo2Olx0ICAgICAgbW1jX2NvcmUubyBzdG1tYWNfaHd0c3RhbXAubyBzdG1tYWNfcHRwLm8gZHdtYWM0X2Rlc2NzLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS03LVx0ICAgICAgZHdtYWM0X2RtYS5vIGR3bWFjNF9saWIubyBkd21hYzRfY29yZS5vIGR3bWFjNS5vIGh3aWYubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6ODpcdCAgICAgIHN0bW1hY190Yy5vIGR3eGdtYWMyX2NvcmUubyBkd3hnbWFjMl9kbWEubyBkd3hnbWFjMl9kZXNjcy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo5Olx0ICAgICAgc3RtbWFjX3hkcC5vIHN0bW1hY19lc3QubyBzdG1tYWNfZnBlLm8gc3RtbWFjX3ZsYW4ubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTA6XHQgICAgICBzdG1tYWNfcGNzLm8gJChzdG1tYWMteSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTExLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTI6c3RtbWFjLSQoQ09ORklHX1NUTU1BQ19TRUxGVEVTVFMpICYjNDM7PSBzdG1tYWNfc2VsZnRlc3RzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMTQtIyBPcmRlcmluZyBtYXR0ZXJzLiBHZW5lcmljIGRyaXZlciBtdXN0IGJlIGxhc3QuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToxNTpvYmotJChDT05GSUdfU1RNTUFDX1BMQVRGT1JNKVx0JiM0Mzs9IHN0bW1hYy1wbGF0Zm9ybS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0xNi1vYmotJChDT05GSUdfRFdNQUNfQU5BUklPTilcdCYjNDM7PSBkd21hYy1hbmFyaW9uLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT00NT1vYmotJChDT05GSUdfRFdNQUNfVklTQ09OVEkpXHQmIzQzOz0gZHdtYWMtdmlzY29udGkub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NDY6c3RtbWFjLXBsYXRmb3JtLW9ianM6PSBzdG1tYWNfcGxhdGZvcm0ub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNDctZHdtYWMtYWx0ci1zb2NmcGdhLW9ianMgOj0gZHdtYWMtc29jZnBnYS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS00OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjQ5Om9iai0kKENPTkZJR19TVE1NQUNfTElCUENJKVx0JiM0Mzs9IHN0bW1hY19saWJwY2kub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTA6b2JqLSQoQ09ORklHX1NUTU1BQ19QQ0kpXHQmIzQzOz0gc3RtbWFjLXBjaS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS01MS1vYmotJChDT05GSUdfRFdNQUNfSU5URUwpXHQmIzQzOz0gZHdtYWMtaW50ZWwub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTUzPW9iai0kKENPTkZJR19EV01BQ19NT1RPUkNPTU0pXHQmIzQzOz0gZHdtYWMtbW90b3Jjb21tLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjU0OnN0bW1hYy1wY2ktb2Jqczo9IHN0bW1hY19wY2kub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNTojaW5jbHVkZSBcJiMzNDtzdG1tYWMuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjE3OnN0YXRpYyBpbnQganVtYm9fZnJtKHN0cnVjdCBzdG1tYWNfdHhfcXVldWUgKnR4X3EsIHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTgtXHRcdCAgICAgaW50IGNzdW0pXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTIwLVx0dW5zaWduZWQgaW50IG5vcGFnZWRfbGVuID0gc2tiX2hlYWRsZW4oc2tiKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoyMTpcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IHR4X3EtXHUwMDNlcHJpdl9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTIyLVx0dW5zaWduZWQgaW50IGVudHJ5ID0gdHhfcS1cdTAwM2VjdXJfdHg7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTQ0LVx0LyogZG8gbm90IGNsb3NlIHRoZSBkZXNjcmlwdG9yIGFuZCBkbyBub3Qgc2V0IG93biBiaXQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzo0NTpcdHN0bW1hY19wcmVwYXJlX3R4X2Rlc2MocHJpdiwgZGVzYywgMSwgYnVmX2xlbiwgY3N1bSwgU1RNTUFDX0NIQUlOX01PREUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtNDYtXHRcdFx0MCwgZmFsc2UsIHNrYi1cdTAwM2VsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy02MS1cdFx0XHR0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmxlbiA9IGJtYXg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6NjI6XHRcdFx0c3RtbWFjX3ByZXBhcmVfdHhfZGVzYyhwcml2LCBkZXNjLCAwLCBibWF4LCBjc3VtLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTYzLVx0XHRcdFx0XHRTVE1NQUNfQ0hBSU5fTU9ERSwgMSwgZmFsc2UsIHNrYi1cdTAwM2VsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy03NS1cdFx0XHQvKiBsYXN0IGRlc2NyaXB0b3IgY2FuIGJlIHNldCBub3cgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzo3NjpcdFx0XHRzdG1tYWNfcHJlcGFyZV90eF9kZXNjKHByaXYsIGRlc2MsIDAsIGxlbiwgY3N1bSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy03Ny1cdFx0XHRcdFx0U1RNTUFDX0NIQUlOX01PREUsIDEsIHRydWUsIHNrYi1cdTAwM2VsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYz05OD1zdGF0aWMgdm9pZCBpbml0X2RtYV9jaGFpbih2b2lkICpkZXMsIGRtYV9hZGRyX3QgcGh5X2FkZHIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTEyNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxMjg6c3RhdGljIHZvaWQgcmVmaWxsX2Rlc2MzKHN0cnVjdCBzdG1tYWNfcnhfcXVldWUgKnJ4X3EsIHN0cnVjdCBkbWFfZGVzYyAqcClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xMjkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjEzMDpcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IHJ4X3EtXHUwMDNlcHJpdl9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTEzMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjE0MzpzdGF0aWMgdm9pZCBjbGVhbl9kZXNjMyhzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVlICp0eF9xLCBzdHJ1Y3QgZG1hX2Rlc2MgKnApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTQ0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNDU6XHRzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYgPSB0eF9xLVx1MDAzZXByaXZfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNDYtXHR1bnNpZ25lZCBpbnQgZW50cnkgPSB0eF9xLVx1MDAzZWRpcnR5X3R4O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MTYwOmNvbnN0IHN0cnVjdCBzdG1tYWNfbW9kZV9vcHMgY2hhaW5fbW9kZV9vcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTYxLVx0LmluaXQgPSBpbml0X2RtYV9jaGFpbixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xNS0jaW5jbHVkZSBcdTAwM2NsaW51eC9uZXRkZXZpY2UuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTY6I2luY2x1ZGUgXHUwMDNjbGludXgvc3RtbWFjLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTE3LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3BoeS5oXHUwMDNlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NDk9c3RhdGljIGlubGluZSBib29sIGR3bWFjX2lzX3htYWMoZW51bSBkd21hY19jb3JlX3R5cGUgY29yZV90eXBlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTcwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NzE6c3RydWN0IHN0bW1hY19xX3R4X3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTcyLVx0dTY0X3N0YXRzX3QgdHhfYnl0ZXM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo3ODpzdHJ1Y3Qgc3RtbWFjX25hcGlfdHhfc3RhdHMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNzktXHR1NjRfc3RhdHNfdCB0eF9wYWNrZXRzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6ODY6c3RydWN0IHN0bW1hY190eHFfc3RhdHMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtODctXHQvKiBVcGRhdGVzIHByb3RlY3RlZCBieSB0eCBxdWV1ZSBsb2NrLiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtODgtXHRzdHJ1Y3QgdTY0X3N0YXRzX3N5bmMgcV9zeW5jcDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjg5Olx0c3RydWN0IHN0bW1hY19xX3R4X3N0YXRzIHE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05Mi1cdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBuYXBpX3N5bmNwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6OTM6XHRzdHJ1Y3Qgc3RtbWFjX25hcGlfdHhfc3RhdHMgbmFwaTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk0LX0gX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6OTY6c3RydWN0IHN0bW1hY19uYXBpX3J4X3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk3LVx0dTY0X3N0YXRzX3QgcnhfYnl0ZXM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTAzOnN0cnVjdCBzdG1tYWNfcnhxX3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwNC1cdC8qIFVwZGF0ZXMgcHJvdGVjdGVkIGJ5IE5BUEkgcG9sbCBsb2dpYy4gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwNS1cdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBuYXBpX3N5bmNwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTA2Olx0c3RydWN0IHN0bW1hY19uYXBpX3J4X3N0YXRzIG5hcGk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMDctfSBfX19fY2FjaGVsaW5lX2FsaWduZWRfaW5fc21wO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwOS0vKiBVcGRhdGVzIG9uIGVhY2ggQ1BVIHByb3RlY3RlZCBieSBub3QgYWxsb3dpbmcgbmVzdGVkIGlycXMuICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoxMTA6c3RydWN0IHN0bW1hY19wY3B1X3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTExMS1cdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBzeW5jcDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMTYtLyogRXh0cmEgc3RhdGlzdGljIGFuZCBkZWJ1ZyBpbmZvcm1hdGlvbiBleHBvc2VkIGJ5IGV0aHRvb2wgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjExNzpzdHJ1Y3Qgc3RtbWFjX2V4dHJhX3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTExOC1cdC8qIFRyYW5zbWl0IGVycm9ycyAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTIzNy1cdC8qIHBlciBxdWV1ZSBzdGF0aXN0aWNzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoyMzg6XHRzdHJ1Y3Qgc3RtbWFjX3R4cV9zdGF0cyB0eHFfc3RhdHNbTVRMX01BWF9UWF9RVUVVRVNdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjM5Olx0c3RydWN0IHN0bW1hY19yeHFfc3RhdHMgcnhxX3N0YXRzW01UTF9NQVhfUlhfUVVFVUVTXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjI0MDpcdHN0cnVjdCBzdG1tYWNfcGNwdV9zdGF0cyBfX3BlcmNwdSAqcGNwdV9zdGF0cztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI0MS1cdHVuc2lnbmVkIGxvbmcgcnhfZHJvcHBlZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNDctLyogU2FmZXR5IEZlYXR1cmUgc3RhdGlzdGljcyBleHBvc2VkIGJ5IGV0aHRvb2wgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjI0ODpzdHJ1Y3Qgc3RtbWFjX3NhZmV0eV9zdGF0cyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNDktXHR1bnNpZ25lZCBsb25nIG1hY19lcnJvcnNbMzJdO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI1Ni0jZGVmaW5lIFNUTU1BQ19TQUZFVFlfRkVBVF9TSVpFXHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjU3Olx0KHNpemVvZihzdHJ1Y3Qgc3RtbWFjX3NhZmV0eV9zdGF0cykgLyBzaXplb2YodW5zaWduZWQgbG9uZykpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NDE2PXN0cnVjdCBkbWFfZmVhdHVyZXMge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTU2NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjU2NTp2b2lkIHN0bW1hY19heGlfYmxlbl90b19tYXNrKHUzMiAqcmVndmFsLCBjb25zdCB1MzIgKmJsZW4sIHNpemVfdCBsZW4pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNTY2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oPTYxMz1zdHJ1Y3QgbWFjX2RldmljZV9pbmZvIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxNDpcdGNvbnN0IHN0cnVjdCBzdG1tYWNfb3BzICptYWM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTU6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2Rlc2Nfb3BzICpkZXNjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE2Olx0Y29uc3Qgc3RydWN0IHN0bW1hY19kbWFfb3BzICpkbWE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTc6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX21vZGVfb3BzICptb2RlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE4Olx0Y29uc3Qgc3RydWN0IHN0bW1hY19od3RpbWVzdGFtcCAqcHRwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE5Olx0Y29uc3Qgc3RydWN0IHN0bW1hY190Y19vcHMgKnRjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjIwOlx0Y29uc3Qgc3RydWN0IHN0bW1hY19tbWNfb3BzICptbWM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MjE6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2VzdF9vcHMgKmVzdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYyMjpcdGNvbnN0IHN0cnVjdCBzdG1tYWNfdmxhbl9vcHMgKnZsYW47XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02MjMtXHRzdHJ1Y3QgZHdfeHBjcyAqeHBjcztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NDU6c3RydWN0IHN0bW1hY19yeF9yb3V0aW5nIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY0Ni1cdHUzMiByZWdfbWFzaztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTA6aW50IGR3bWFjMTAwX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTE6aW50IGR3bWFjMTAwMF9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjUyOmludCBkd21hYzRfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1MzppbnQgZHd4Z21hYzJfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1NDppbnQgZHd4bGdtYWMyX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTY6dm9pZCBzdG1tYWNfc2V0X21hY19hZGRyKHZvaWQgX19pb21lbSAqaW9hZGRyLCBjb25zdCB1OCBhZGRyWzZdLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjU3LVx0XHRcdCB1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTg6dm9pZCBzdG1tYWNfZ2V0X21hY19hZGRyKHZvaWQgX19pb21lbSAqaW9hZGRyLCB1bnNpZ25lZCBjaGFyICphZGRyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjU5LVx0XHRcdCB1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjA6dm9pZCBzdG1tYWNfc2V0X21hYyh2b2lkIF9faW9tZW0gKmlvYWRkciwgYm9vbCBlbmFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjYxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjYyOnZvaWQgc3RtbWFjX2R3bWFjNF9zZXRfbWFjX2FkZHIodm9pZCBfX2lvbWVtICppb2FkZHIsIGNvbnN0IHU4IGFkZHJbNl0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NjMtXHRcdFx0XHR1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjQ6dm9pZCBzdG1tYWNfZHdtYWM0X2dldF9tYWNfYWRkcih2b2lkIF9faW9tZW0gKmlvYWRkciwgdW5zaWduZWQgY2hhciAqYWRkcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY2NS1cdFx0XHRcdHVuc2lnbmVkIGludCBoaWdoLCB1bnNpZ25lZCBpbnQgbG93KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY2Njp2b2lkIHN0bW1hY19kd21hYzRfc2V0X21hYyh2b2lkIF9faW9tZW0gKmlvYWRkciwgYm9vbCBlbmFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjY3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMS0jaW5jbHVkZSBcdTAwM2NsaW51eC9vZl9uZXQuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEyOiNpbmNsdWRlIFx1MDAzY2xpbnV4L3N0bW1hYy5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTQ6I2luY2x1ZGUgXCYjMzQ7c3RtbWFjLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxNTojaW5jbHVkZSBcJiMzNDtzdG1tYWNfcGxhdGZvcm0uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTE2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz02Mz1hbmFyaW9uX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjY0Olx0XHQgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtNjUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz05Mz1zdGF0aWMgaW50IGFuYXJpb25fZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtOTYtXHRzdHJ1Y3QgYW5hcmlvbl9nbWFjICpnbWFjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjk3Olx0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzo5ODpcdHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzIHN0bW1hY19yZXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtOTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTAwOlx0cmV0ID0gc3RtbWFjX2dldF9wbGF0Zm9ybV9yZXNvdXJjZXMocGRldiwgXHUwMDI2c3RtbWFjX3Jlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTAxLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTAzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEwNDpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMDUtXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTE1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjExNjpcdHJldHVybiBkZXZtX3N0bW1hY19wbHRmcl9wcm9iZShwZGV2LCBwbGF0X2RhdCwgXHUwMDI2c3RtbWFjX3Jlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTE3LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM9MTI1PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGFuYXJpb25fZHdtYWNfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMjgtXHRcdC5uYW1lICAgICAgICAgICA9IFwmIzM0O2FuYXJpb24tZHdtYWNcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTI5Olx0XHQucG1cdFx0PSBcdTAwMjZzdG1tYWNfcGx0ZnJfcG1fb3BzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEzMC1cdFx0Lm9mX21hdGNoX3RhYmxlID0gYW5hcmlvbl9kd21hY19tYXRjaCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIxLSNpbmNsdWRlIFx1MDAzY2xpbnV4L3Jlc2V0LmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjI6I2luY2x1ZGUgXHUwMDNjbGludXgvc3RtbWFjLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI0OiNpbmNsdWRlIFwmIzM0O3N0bW1hY19wbGF0Zm9ybS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI1LSNpbmNsdWRlIFwmIzM0O2R3bWFjNC5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNj1zdGF0aWMgaW50IGR3Y19ldGhfZHdtYWNfY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjM3Olx0XHRcdFx0ICAgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtNDMtXHRcdHBsYXRfZGF0LVx1MDAzZWF4aSA9IGRldm1fa3phbGxvYyhcdTAwMjZwZGV2LVx1MDAzZWRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6NDQ6XHRcdFx0XHRcdCAgICAgc2l6ZW9mKHN0cnVjdCBzdG1tYWNfYXhpKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtNDUtXHRcdFx0XHRcdCAgICAgR0ZQX0tFUk5FTCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz05Nj1zdGF0aWMgaW50IGR3Y19xb3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6OTc6XHRcdFx0IHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjk4Olx0XHRcdCBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqc3RtbWFjX3JlcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtOTkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxMDA6XHRwbGF0X2RhdC1cdTAwM2VwY2xrID0gc3RtbWFjX3BsdGZyX2ZpbmRfY2xrKHBsYXRfZGF0LCBcJiMzNDtwaHlfcmVmX2Nsa1wmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTEwMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTExNT1zdGF0aWMgdm9pZCB0ZWdyYV9lcW9zX2ZpeF9zcGVlZCh2b2lkICpic3BfcHJpdiwgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTExOS1cdGJvb2wgbmVlZHNfY2FsaWJyYXRpb24gPSBmYWxzZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTIwOlx0c3RydWN0IHN0bW1hY19wcml2ICpwcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xMjEtXHR1MzIgdmFsdWU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNDEtXHRcdC8qIENhbGlicmF0aW9uIHNob3VsZCBiZSBkb25lIHdpdGggdGhlIE1ESU8gYnVzIGlkbGUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTQyOlx0XHRzdG1tYWNfbWRpb19sb2NrKHByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNDMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjE3ODpcdFx0c3RtbWFjX21kaW9fdW5sb2NrKHByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNzktXHR9IGVsc2Uge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MTg2PXN0YXRpYyBpbnQgdGVncmFfZXFvc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxODc6XHRcdFx0ICAgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjE4ODpcdFx0XHQgICAgc3RydWN0IHN0bW1hY19yZXNvdXJjZXMgKnJlcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTg5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIwMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjA0Olx0cGxhdF9kYXQtXHUwMDNlY2xrX3R4X2kgPSBzdG1tYWNfcGx0ZnJfZmluZF9jbGsocGxhdF9kYXQsIFwmIzM0O3R4XCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjA1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjM3LVx0cGxhdF9kYXQtXHUwMDNlZml4X21hY19zcGVlZCA9IHRlZ3JhX2Vxb3NfZml4X3NwZWVkO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyMzg6XHRwbGF0X2RhdC1cdTAwM2VzZXRfY2xrX3R4X3JhdGUgPSBzdG1tYWNfc2V0X2Nsa190eF9yYXRlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yMzktXHRwbGF0X2RhdC1cdTAwM2Vic3BfcHJpdiA9IGVxb3M7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNTI9c3RhdGljIHZvaWQgdGVncmFfZXFvc19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjUzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjU0Olx0c3RydWN0IHRlZ3JhX2Vxb3MgKmVxb3MgPSBnZXRfc3RtbWFjX2JzcF9wcml2KFx1MDAyNnBkZXYtXHUwMDNlZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjU1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjYwPXN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNjEtXHRpbnQgKCpwcm9iZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjYyOlx0XHQgICAgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI2MzpcdFx0ICAgICBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqcmVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjY0LVx0dm9pZCAoKnJlbW92ZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI2NTpcdGNvbnN0IGNoYXIgKnN0bW1hY19jbGtfbmFtZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjY2LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNjg9c3RhdGljIGNvbnN0IHN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEgZHdjX3Fvc19kYXRhID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNjktXHQucHJvYmUgPSBkd2NfcW9zX3Byb2JlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyNzA6XHQuc3RtbWFjX2Nsa19uYW1lID0gXCYjMzQ7YXBiX3BjbGtcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI3MS19O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjczPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhIHRlZ3JhX2Vxb3NfZGF0YSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI3NS1cdC5yZW1vdmUgPSB0ZWdyYV9lcW9zX3JlbW92ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjc2Olx0LnN0bW1hY19jbGtfbmFtZSA9IFwmIzM0O3NsYXZlX2J1c1wmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjc3LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNzk9c3RhdGljIGNvbnN0IHN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEgZnNkX2Vxb3NfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjgwOlx0LnN0bW1hY19jbGtfbmFtZSA9IFwmIzM0O3NsYXZlX2J1c1wmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjgxLX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yODM9c3RhdGljIGludCBkd2NfZXRoX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yODUtXHRjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhICpkYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyODY6XHRzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyODc6XHRzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyBzdG1tYWNfcmVzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yODgtXHRpbnQgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjkxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyOTI6XHRtZW1zZXQoXHUwMDI2c3RtbWFjX3JlcywgMCwgc2l6ZW9mKHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjk0LVx0LyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI5NTpcdCAqIFNpbmNlIHN0bW1hY19wbGF0Zm9ybSBzdXBwb3J0cyBuYW1lIElSUSBvbmx5LCBiYXNpYyBwbGF0Zm9ybVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTYtXHQgKiByZXNvdXJjZSBpbml0aWFsaXphdGlvbiBpcyBkb25lIGluIHRoZSBnbHVlIGxvZ2ljLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTctXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjk4Olx0c3RtbWFjX3Jlcy5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyOTk6XHRpZiAoc3RtbWFjX3Jlcy5pcnEgXHUwMDNjIDApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwMDpcdFx0cmV0dXJuIHN0bW1hY19yZXMuaXJxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDE6XHRzdG1tYWNfcmVzLndvbF9pcnEgPSBzdG1tYWNfcmVzLmlycTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDM6XHRzdG1tYWNfcmVzLmFkZHIgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwNDpcdGlmIChJU19FUlIoc3RtbWFjX3Jlcy5hZGRyKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzA1Olx0XHRyZXR1cm4gUFRSX0VSUihzdG1tYWNfcmVzLmFkZHIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwNzpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzA4LVx0aWYgKElTX0VSUihwbGF0X2RhdCkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMxNjpcdHBsYXRfZGF0LVx1MDAzZXN0bW1hY19jbGsgPSBzdG1tYWNfcGx0ZnJfZmluZF9jbGsocGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMxNzpcdFx0XHRcdFx0XHQgICAgIGRhdGEtXHUwMDNlc3RtbWFjX2Nsa19uYW1lKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMTktXHRpZiAoZGF0YS1cdTAwM2Vwcm9iZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzIwOlx0XHRyZXQgPSBkYXRhLVx1MDAzZXByb2JlKHBkZXYsIHBsYXRfZGF0LCBcdTAwMjZzdG1tYWNfcmVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzIxLVx0aWYgKHJldCBcdTAwM2MgMCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMzA6XHRyZXQgPSBzdG1tYWNfZHZyX3Byb2JlKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBwbGF0X2RhdCwgXHUwMDI2c3RtbWFjX3Jlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMzMS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNDM9c3RhdGljIHZvaWQgZHdjX2V0aF9kd21hY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM0Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzQ3Olx0c3RtbWFjX2R2cl9yZW1vdmUoXHUwMDI2cGRldi1cdTAwM2VkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNDgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNjE9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZHdjX2V0aF9kd21hY19kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNjUtXHRcdC5uYW1lICAgICAgICAgICA9IFwmIzM0O2R3Yy1ldGgtZHdtYWNcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjM2NjpcdFx0LnBtICAgICAgICAgICAgID0gXHUwMDI2c3RtbWFjX3BsdGZyX3BtX29wcyxcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIwOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwMTkxCgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogNTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyB0aGUgc3RtbWFjIERyaXZlciYjMzk7cyBQQ0kgQ2FwYWJpbGl0aWVzKioKCk9rYXksIHNvIHRoZSBzdG1tYWMgZHJpdmVyIGlzIGZ1bmRhbWVudGFsbHkgYSBwbGF0Zm9ybSBkcml2ZXIsIHRoYXQgbXVjaCBpcyBjbGVhci4gQnV0IHRoZW4gSSByZW1lbWJlciBzZWVpbmcgYHN0bW1hYy1wY2kuY2AgaW4gdGhlIGNvZGUsIHdoaWNoIGltbWVkaWF0ZWx5IHN1Z2dlc3RzIFBDSSBzdXBwb3J0IGlzIGFsc28gaW5jbHVkZWQsIGEga2V5IGRpc3RpbmN0aW9uLiBOb3csIHRoaXMgcmFpc2VzIGEgY3J1Y2lhbCBxdWVzdGlvbiBmb3IgbXkgY3VycmVudCB3b3JrLCB3aGF0ZXZlciBpdCBtYXkgYmUuIEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSB3aGV0aGVyIFFFTVUsIHRoZSB2aXJ0dWFsIG1hY2hpbmUgSSYjMzk7bSB1c2luZywgYWN0dWFsbHkgZW11bGF0ZXMgYW55IG9mIHRoZSBzcGVjaWZpYyBQQ0kgZGV2aWNlcyB0aGF0IHRoZSBgc3RtbWFjLXBjaS5jYCBtb2R1bGUgaXMgZGVzaWduZWQgdG8gaGFuZGxlLiBUaGlzIHdpbGwgZGlyZWN0bHkgYWZmZWN0IHRoZSB1c2VmdWxuZXNzIG9mIG15IGN1cnJlbnQgc2V0dXAgZm9yIHRlc3Rpbmcgb3IgZGV2ZWxvcG1lbnQuIEl0JiMzOTtzIHRpbWUgdG8gaW52ZXN0aWdhdGUgUUVNVSYjMzk7cyBkZXZpY2UgZW11bGF0aW9uIGNhcGFiaWxpdGllcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtQQ0lfREVWSUNFX0lEXyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MTkyPXN0YXRpYyB2b2lkIHN0bW1hY19wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xOTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjAwOiNkZWZpbmUgUENJX0RFVklDRV9JRF9TVE1NQUNfU1RNTUFDXHRcdDB4MTEwOFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIwMTojZGVmaW5lIFBDSV9ERVZJQ0VfSURfU1lOT1BTWVNfR01BQzVfSURcdFx0MHg3MTAyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjAyLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIwOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwNjc0CgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogNjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyBRRU1VIGFuZCBzdG1tYWMgRW11bGF0aW9uIGZvciBUZXN0aW5nKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGVzZSBQQ0kgSURzLCAweDExMDggYW5kIDB4NzEwMi4gVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiBpcywgZG9lcyBRRU1VIG5hdGl2ZWx5IGVtdWxhdGUgdGhlc2UgZGV2aWNlcz8gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIG5vLCB0aGF0JiMzOTtzIG5vdCBzb21ldGhpbmcgSSByZWNhbGwgc2VlaW5nIGluIHRoZSBzdGFuZGFyZCBRRU1VIHNldHVwLiBCdXQgaG9sZCBvbiwgSSBzZWVtIHRvIHJlY2FsbCBzb21ldGhpbmcgYWJvdXQgc3l6a2FsbGVyIGFuZCBzdG1tYWMuIEl0JiMzOTtzIHRpbWUgdG8gY2hlY2sgaWYgc3l6a2FsbGVyIGhhcyBhbnkgcHJlZGVmaW5lZCBkZXNjcmlwdGlvbnMgb3IgY29uZmlndXJhdGlvbnMgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLiBUaGF0IGNvdWxkIGJlIGEgdmFsdWFibGUgbGVhZCwgb2ZmZXJpbmcgYSBwb3RlbnRpYWwgcGF0aCBmb3IgdGVzdGluZywgZXZlbiBpZiBkaXJlY3QgUUVNVSBlbXVsYXRpb24gaXNuJiMzOTt0IGF2YWlsYWJsZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdG1tYWMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9jb3JlL3NlbGZ0ZXN0cy5jLTMtICogQ29weXJpZ2h0IChjKSAyMDE5IFN5bm9wc3lzLCBJbmMuIGFuZC9vciBpdHMgYWZmaWxpYXRlcy5cbm5ldC9jb3JlL3NlbGZ0ZXN0cy5jOjQ6ICogc3RtbWFjIFNlbGZ0ZXN0cyBTdXBwb3J0XG5uZXQvY29yZS9zZWxmdGVzdHMuYy01LSAqXG4tLVxubmV0L2NvcmUvc2VsZnRlc3RzLmMtNy0gKlxubmV0L2NvcmUvc2VsZnRlc3RzLmM6ODogKiBQb3J0ZWQgZnJvbSBzdG1tYWMgYnk6XG5uZXQvY29yZS9zZWxmdGVzdHMuYy05LSAqIENvcHlyaWdodCAoQykgMjAyMSBPbGVrc2lqIFJlbXBlbCBcdTAwM2NvLnJlbXBlbEBwZW5ndXRyb25peC5kZVx1MDAzZVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIwOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxMDczCgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMzY5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkRlY29kaW5nIHRoZSBTeXprYWxsZXIgQnVnIEh1bnQqKgoKT2theSwgbGV0JiMzOTtzIHNlZS4gVGhlIGNvbW1pdCBtZXNzYWdlIHNheXMgJiMzNDtzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcsJiMzNDsgYW5kIHRoZSBhdXRob3IgaXMgJiMzNDtzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7JiMzNDsuIFRoaXMgc2NyZWFtcyBzeXprYWxsZXIsIHJpZ2h0PyBUaGlzIG1lYW5zIGl0IGZvdW5kIGEgYnVnLCBvciBpcyBjdXJyZW50bHkgZnV6emluZyB0aGlzIHBhcnRpY3VsYXIgY2h1bmsgb2YgY29kZS4gSG93IGRpZCBpdCBtYW5hZ2UgdGhhdD8gVGhlIGtleSBpcyBwcm9iYWJseSBpbiB0aGF0IGZpbGUsIGBzdG1tYWNfc2VsZnRlc3RzLmNgLiBXYWl0IGEgc2Vjb25kLCB0aGUgcGF0Y2ggKmRvZXMqIG1vZGlmeSBgc3RtbWFjX3NlbGZ0ZXN0cy5jYCEgU28sIHRoZSBjb2RlIHVuZGVyIHNjcnV0aW55IGlzIHJlYWNoYWJsZSB2aWEgZXRodG9vbCBzZWxmdGVzdHM/CgpZZXMsIGxvb2tzIGxpa2UgYHN0bW1hY19zZWxmdGVzdF9ydW5gIGlzIGNhbGxlZCBieSBldGh0b29sLCBhbmQgdGhhdCYjMzk7cyB0aGUgZW50cnkgcG9pbnQuIEJ1dCBob3cgZGlkIHN5emthbGxlciBnZXQgYSBgc3RtbWFjYCBuZXR3b3JrIGRldmljZSAobmV0ZGV2KSB0byBhY3R1YWxseSBjYWxsIGV0aHRvb2wgb24/IEhtbS4uLiBtYXliZSBhIGR1bW15IGRyaXZlcj8gT3IgcGVyaGFwcyBhIHZpcnR1YWwgZGV2aWNlPyBXYWl0LCBgc3RtbWFjYCBpcyBhIHBsYXRmb3JtIGRyaXZlci4gQ2FuIHN5emthbGxlciBjcmVhdGUgcGxhdGZvcm0gZGV2aWNlcyB2aWEsIHNheSBgc3l6X2RldmxpbmtgIG9yIHNpbWlsYXI/IE5vLCBkZWZpbml0ZWx5IG5vdCB1c2luZyBgc3l6X2RldmxpbmtgLiBEb2VzIHN5emthbGxlciBvZmZlciBzb21lIGZvcm0gb2YgYHN5el9wbGF0Zm9ybV9kZXZpY2VfYWRkYD8gTm8sIG5vIHN1Y2ggZnVuY3Rpb25hbGl0eS4KCldhaXQuLi4gRXVyZWthISBTeXprYWxsZXIgKmNhbiogaW5qZWN0IFBDSSBkZXZpY2VzIHVzaW5nIGBzeXpfcGNpX2RldmljZV9hZGRgISBUaGF0JiMzOTtzIHRoZSBwc2V1ZG8tc3lzY2FsbCBJIHdhcyBtaXNzaW5nLiBJdCBhbGxvd3MgaW5qZWN0aW9uIG9mICphbnkqIFBDSSBkZXZpY2UgaW50byB0aGUgZ3Vlc3QsIGFzc3VtaW5nIHRoZSBrZXJuZWwgc3VwcG9ydHMgUENJIGhvdHBsdWcgYW5kIHRoZSBzcGVjaWZpYyBkcml2ZXIgaXMgcHJlc2VudC4gTm93LCBgc3RtbWFjX3BjaS5jYCBpcyBhIFBDSSBkcml2ZXIhIFRoYXQgY29uZmlybXMgaXQsIHN5emthbGxlciAqY2FuKiBpbmplY3QgdGhlIGBzdG1tYWNgIGRyaXZlciB1c2luZyBgc3l6X3BjaV9kZXZpY2VfYWRkYCEgTm93LCBsZXQmIzM5O3MganVzdCBjb25maXJtIHRoYXQgYHN0bW1hY19wY2kuY2AgaXMgY29tcGlsZWQgaW50byB0aGUga2VybmVsLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdG1tYWNfcGNpJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTUzPW9iai0kKENPTkZJR19EV01BQ19NT1RPUkNPTU0pXHQmIzQzOz0gZHdtYWMtbW90b3Jjb21tLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjU0OnN0bW1hYy1wY2ktb2Jqczo9IHN0bW1hY19wY2kub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9MjU9c3RydWN0IGludGVsX3ByaXZfZGF0YSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0zOS0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6NDA6c3RydWN0IHN0bW1hY19wY2lfZnVuY19kYXRhIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNDEtXHR1bnNpZ25lZCBpbnQgZnVuYztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo0NTpzdHJ1Y3Qgc3RtbWFjX3BjaV9kbWlfZGF0YSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjQ2Olx0Y29uc3Qgc3RydWN0IHN0bW1hY19wY2lfZnVuY19kYXRhICpmdW5jO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00Ny1cdHNpemVfdCBuZnVuY3M7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6NTA6c3RydWN0IHN0bW1hY19wY2lfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTUxLVx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTE9c3RhdGljIGNvbnN0IGludCBhZGxuX3Rzbl9sYW5lX3JlZ3NbXSA9IHs2fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjkzOnN0YXRpYyBpbnQgc3RtbWFjX3BjaV9maW5kX3BoeV9hZGRyKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NC1cdFx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCAqZG1pX2xpc3QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTY6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgKmZ1bmNfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTc6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9kbWlfZGF0YSAqZG1pX2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk4LVx0Y29uc3Qgc3RydWN0IGRtaV9zeXN0ZW1faWQgKmRtaV9pZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTc1NT1zdGF0aWMgaW50IGVobF9zZ21paV9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNzc0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo3NzU6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3NnbWlpMWdfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNzc2LVx0LnNldHVwID0gZWhsX3NnbWlpX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz03Nzk9c3RhdGljIGludCBlaGxfcmdtaWlfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTc4OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6NzkwOnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGVobF9yZ21paTFnX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTc5MS1cdC5zZXR1cCA9IGVobF9yZ21paV9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9ODEwPXN0YXRpYyBpbnQgZWhsX3BzZTBfcmdtaWkxZ19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo4MTc6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3BzZTBfcmdtaWkxZ19pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04MTgtXHQuc2V0dXAgPSBlaGxfcHNlMF9yZ21paTFnX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04MjE9c3RhdGljIGludCBlaGxfcHNlMF9zZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04MzgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjgzOTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMF9zZ21paTFnX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg0MC1cdC5zZXR1cCA9IGVobF9wc2UwX3NnbWlpMWdfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTg1OT1zdGF0aWMgaW50IGVobF9wc2UxX3JnbWlpMWdfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg2NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6ODY2OnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGVobF9wc2UxX3JnbWlpMWdfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODY3LVx0LnNldHVwID0gZWhsX3BzZTFfcmdtaWkxZ19kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9ODcwPXN0YXRpYyBpbnQgZWhsX3BzZTFfc2dtaWkxZ19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtODg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo4ODg6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3BzZTFfc2dtaWkxZ19pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04ODktXHQuc2V0dXAgPSBlaGxfcHNlMV9zZ21paTFnX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05MTM9c3RhdGljIGludCB0Z2xfc2dtaWlfcGh5MF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5MjI6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gdGdsX3NnbWlpMWdfcGh5MF9pbmZvID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05MjMtXHQuc2V0dXAgPSB0Z2xfc2dtaWlfcGh5MF9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTI2PXN0YXRpYyBpbnQgdGdsX3NnbWlpX3BoeTFfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTkzNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTM1OnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHRnbF9zZ21paTFnX3BoeTFfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTM2LVx0LnNldHVwID0gdGdsX3NnbWlpX3BoeTFfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTkzOT1zdGF0aWMgaW50IGFkbHNfc2dtaWlfcGh5MF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTQ4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NDk6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gYWRsc19zZ21paTFnX3BoeTBfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTUwLVx0LnNldHVwID0gYWRsc19zZ21paV9waHkwX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05NTM9c3RhdGljIGludCBhZGxzX3NnbWlpX3BoeTFfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk2Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTYzOnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGFkbHNfc2dtaWkxZ19waHkxX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk2NC1cdC5zZXR1cCA9IGFkbHNfc2dtaWlfcGh5MV9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTkyPXN0YXRpYyBpbnQgYWRsbl9zZ21paV9waHkwX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDExOnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGFkbG5fc2dtaWkxZ19waHkwX2luZm8gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMTItXHQuc2V0dXAgPSBhZGxuX3NnbWlpX3BoeTBfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwMTU6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2Z1bmNfZGF0YSBnYWxpbGVvX3N0bW1hY19mdW5jX2RhdGFbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAxNi1cdHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwMjI6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2RtaV9kYXRhIGdhbGlsZW9fc3RtbWFjX2RtaV9kYXRhID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDIzLVx0LmZ1bmMgPSBnYWxpbGVvX3N0bW1hY19mdW5jX2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDI2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDI3OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgaW90MjA0MF9zdG1tYWNfZnVuY19kYXRhW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMjgtXHR7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDM3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDM4OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9kbWlfZGF0YSBpb3QyMDQwX3N0bW1hY19kbWlfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAzOS1cdC5mdW5jID0gaW90MjA0MF9zdG1tYWNfZnVuY19kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9MTA3OD1zdGF0aWMgaW50IHF1YXJrX2RlZmF1bHRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwODgtXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTA4OTpcdHJldCA9IHN0bW1hY19wY2lfZmluZF9waHlfYWRkcihwZGV2LCBxdWFya19wY2lfZG1pKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTA5MC1cdGlmIChyZXQgXHUwMDNjIDApIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTExMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjExMTQ6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gcXVhcmtfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTExNS1cdC5zZXR1cCA9IHF1YXJrX2RlZmF1bHRfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTEyMzI9c3RhdGljIGludCBpbnRlbF9ldGhfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTIzNC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEyMzU6XHRzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICppbmZvID0gKHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKilpZC1cdTAwM2Vkcml2ZXJfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTIzNi1cdHN0cnVjdCBpbnRlbF9wcml2X2RhdGEgKmludGVsX3ByaXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz03Nj1zdHJ1Y3QgbG9vbmdzb25fZGF0YSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy04MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6ODI6c3RydWN0IHN0bW1hY19wY2lfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTgzLVx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9MTMyPXN0YXRpYyBpbnQgbG9vbmdzb25fZ21hY19kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTQxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzoxNDI6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gbG9vbmdzb25fZ21hY19wY2lfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTQzLVx0LnNldHVwID0gbG9vbmdzb25fZ21hY19kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9MTY1PXN0YXRpYyBpbnQgbG9vbmdzb25fZ25ldF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTc2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzoxNzc6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gbG9vbmdzb25fZ25ldF9wY2lfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTc4LVx0LnNldHVwID0gbG9vbmdzb25fZ25ldF9kYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9NDk4PXN0YXRpYyBpbnQgbG9vbmdzb25fZHdtYWNfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTUwMS1cdHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzIHJlcyA9IHt9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1MDI6XHRzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICppbmZvO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01MDMtXHRzdHJ1Y3QgbG9vbmdzb25fZGF0YSAqbGQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01MzctXHRwbGF0LVx1MDAzZWZpeF9zb2NfcmVzZXQgPSBsb29uZ3Nvbl9kd21hY19maXhfcmVzZXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjUzODpcdHBsYXQtXHUwMDNlc3VzcGVuZCA9IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1Mzk6XHRwbGF0LVx1MDAzZXJlc3VtZSA9IHN0bW1hY19wY2lfcGxhdF9yZXN1bWU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTU0MC1cdGxkLVx1MDAzZWRldiA9IFx1MDAyNnBkZXYtXHUwMDNlZGV2O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1NDM6XHRpbmZvID0gKHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKilpZC1cdTAwM2Vkcml2ZXJfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTQ0LVx0cmV0ID0gaW5mby1cdTAwM2VzZXR1cChwZGV2LCBwbGF0KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYz0xODg9c3RhdGljIGludCBtb3RvcmNvbW1fcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMTkyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MTkzOlx0cmV0ID0gc3RtbWFjX3BjaV9wbGF0X3Jlc3VtZShkZXYsIGJzcF9wcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTE5NC1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM9MjA4PW1vdG9yY29tbV9kZWZhdWx0X3BsYXRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0yNDgtXHRwbGF0LVx1MDAzZWNvcmVfdHlwZVx0XHQ9IERXTUFDX0NPUkVfR01BQzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYzoyNDk6XHRwbGF0LVx1MDAzZXN1c3BlbmRcdFx0PSBzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTI1MC1cdHBsYXQtXHUwMDNlcmVzdW1lXHRcdD0gbW90b3Jjb21tX3Jlc3VtZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmM6MTI6aW50IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMTMte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0yNS19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmM6MjY6RVhQT1JUX1NZTUJPTF9HUEwoc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jLTI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jOjI4OmludCBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMjkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy00My19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmM6NDQ6RVhQT1JUX1NZTUJPTF9HUEwoc3RtbWFjX3BjaV9wbGF0X3Jlc3VtZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtNDUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5oLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmg6OTppbnQgc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpic3BfcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmg6MTA6aW50IHN0bW1hY19wY2lfcGxhdF9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpic3BfcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmgtMTEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjE5OnN0cnVjdCBzdG1tYWNfcGNpX2luZm8ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIwLVx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz0zMz1zdGF0aWMgaW50IHN0bW1hY19kZWZhdWx0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTQ5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjUwOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHN0bW1hY19wY2lfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy01MS1cdC5zZXR1cCA9IHN0bW1hY19kZWZhdWx0X2RhdGEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTU0PXN0YXRpYyBpbnQgc25wc19nbWFjNV9kZWZhdWx0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEwMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxMDI6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gc25wc19nbWFjNV9wY2lfaW5mbyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xMDMtXHQuc2V0dXAgPSBzbnBzX2dtYWM1X2RlZmF1bHRfZGF0YSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTA2LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjEwNzogKiBzdG1tYWNfcGNpX3Byb2JlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTA4LSAqXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTExNy0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxMTg6c3RhdGljIGludCBzdG1tYWNfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTExOS1cdFx0XHQgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEyMC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTIxOlx0c3RydWN0IHN0bW1hY19wY2lfaW5mbyAqaW5mbyA9IChzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICopaWQtXHUwMDNlZHJpdmVyX2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTIyLVx0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xNzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTgwOlx0cGxhdC1cdTAwM2VzdXNwZW5kID0gc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTgxOlx0cGxhdC1cdTAwM2VyZXN1bWUgPSBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4Mi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTg2LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjE4NzogKiBzdG1tYWNfcGNpX3JlbW92ZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4OC0gKlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xOTEtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTkyOnN0YXRpYyB2b2lkIHN0bW1hY19wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE5My17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTIwMz1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgc3RtbWFjX2lkX3RhYmxlW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjA0Olx0eyBQQ0lfREVWSUNFX0RBVEEoU1RNTUFDLCBTVE1NQUMsIFx1MDAyNnN0bW1hY19wY2lfaW5mbykgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMDU6XHR7IFBDSV9ERVZJQ0VfREFUQShTVE1JQ1JPLCBNQUMsIFx1MDAyNnN0bW1hY19wY2lfaW5mbykgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMDYtXHR7IFBDSV9ERVZJQ0VfREFUQShTWU5PUFNZUywgR01BQzVfSUQsIFx1MDAyNnNucHNfZ21hYzVfcGNpX2luZm8pIH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTIxMD1NT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgc3RtbWFjX2lkX3RhYmxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjEyOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBzdG1tYWNfcGNpX2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTMtXHQubmFtZSA9IFNUTU1BQ19SRVNPVVJDRV9OQU1FLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxNC1cdC5pZF90YWJsZSA9IHN0bW1hY19pZF90YWJsZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMTU6XHQucHJvYmUgPSBzdG1tYWNfcGNpX3Byb2JlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIxNjpcdC5yZW1vdmUgPSBzdG1tYWNfcGNpX3JlbW92ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTctXHQuZHJpdmVyICAgICAgICAgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIyMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMjI6bW9kdWxlX3BjaV9kcml2ZXIoc3RtbWFjX3BjaV9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIyMy1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjA6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjkxMjIKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAxOTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBTeXprYWxsZXIgUG90ZW50aWFsIGZvciBhIFNUTU1BQyBWdWxuZXJhYmlsaXR5KioKCk9rYXksIHNvIGBzdG1tYWNfcGNpLmNgIGlzIGRlZmluaXRlbHkgYSBQQ0kgZHJpdmVyIOKAkyBnb29kLCBTeXprYWxsZXIgY2FuIGluamVjdCBpdC4gQnV0IGhvbGQgb24sIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIGBkd21hY19pbnRlZ3JhdGVkX3Bjc19sb29wYmFja2Agd2l0aGluIGBzdG1tYWNfcGNzLmNgLiBJIG5lZWQgdG8gY29uZmlybSBpZiB0aGF0IGZpbGUgaXMgZXZlbiBjb21waWxlZCBpbnRvIHRoZSBrZXJuZWwgaW1hZ2UuIFllcCwgaXQmIzM5O3MgdGhlcmU6IGBzdG1tYWNfcGNzLm9gIGlzIGxpc3RlZCBpbiBgc3RtbWFjLW9ianNgLiBUaGF0JiMzOTtzIGEgZ29vZCBzaWduLgoKQW5kIHRoZSBwYXRjaCBhbHNvIHRvdWNoZXMgYHN0bW1hY19zZWxmdGVzdHMuY2AsIHdoaWNoIGNhbGxzIGBwaHlsaW5rX3Bjc19sb29wYmFja2AuIElzIHRoYXQgYWxzbyBnb2luZyB0byBiZSBjb21waWxlZCBpbj8gTGV0IG1lIHNlZeKApiB5ZXMsIGBzdG1tYWMtJChDT05GSUdfU1RNTUFDX1NFTEZURVNUUykgJiM0Mzs9IHN0bW1hY19zZWxmdGVzdHMub2AuIE9rYXksIHNvIHdlJiMzOTtsbCBuZWVkIHRvIGVuYWJsZSBgQ09ORklHX1NUTU1BQ19TRUxGVEVTVFNgIGZvciB0aGlzIHRvIGhhdmUgYW4gaW1wYWN0LiBMZXQmIzM5O3MgdmVyaWZ5IGhvdyBpdCBpcyBjdXJyZW50bHkgY29uZmlndXJlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjA6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFNUTU1BQ19TRUxGVEVTVFMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xOD1pZiBTVE1NQUNfRVRIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMDpjb25maWcgU1RNTUFDX1NFTEZURVNUU1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMS1cdGJvb2wgXCYjMzQ7U3VwcG9ydCBmb3IgU1RNTUFDIFNlbGZ0ZXN0c1wmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTcwNAoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDQzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBmcm9tIGFuIGV4cGVydCYjMzk7cyBwZXJzcGVjdGl2ZToKCioqRGl2aW5nIGludG8gdGhlIFNUTU1BQyBDb25maWd1cmF0aW9uKioKCkFscmlnaHQsIGxldCYjMzk7cyBzZWUuLi4gSSYjMzk7bSBsb29raW5nIGF0IHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBTVE1NQUMgZHJpdmVyLCBzcGVjaWZpY2FsbHkgdGhlIHNlbGYtdGVzdCBjYXBhYmlsaXR5LiBTbywgYENPTkZJR19TVE1NQUNfU0VMRlRFU1RTYCBpcyBhIGJvb2xlYW4gY29uZmlndXJhdGlvbiBvcHRpb24gdGhhdCBzZWVtcyB0byBiZSBuZXN0ZWQgdW5kZXIgYFNUTU1BQ19FVEhgLCB3aGljaCBpcyBpdHNlbGYgYSBjb25maWcgb3B0aW9uIHJlbGF0ZWQgdG8gdGhlIEV0aGVybmV0IGltcGxlbWVudGF0aW9uIG9mIHRoZSBkcml2ZXIuIE5vdywgSSBzaG91bGQgZG91YmxlIGNoZWNrIHdoYXQgb3B0aW9ucyBhcmUgYXZhaWxhYmxlIHVuZGVyIGJvdGggYFNUTU1BQ19FVEhgIGFuZCBgU1RNTUFDX1BDSWAuIEkgd2FudCB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGhvdyBzZWxmLXRlc3RzIGFyZSBlbmFibGVkLiBQZXJoYXBzIGNoZWNraW5nIGBTVE1NQUNfUENJYCBpcyByZWxldmFudCwgc28gSSB1bmRlcnN0YW5kIHRoZSBmdWxsIHNjb3BlIG9mIHdoZXJlIHRoaXMgY2FuIHJ1biBpbiBoYXJkd2FyZS4gS25vd2luZyB0aGF0IHRoZSBFdGhlcm5ldCBhbmQgUENJIHZlcnNpb25zIG9mIHRoZSBkcml2ZXIgYXJlIGltcG9ydGFudCwgSSBjYW4gc3RhcnQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIGZvciB0aGUgdGFyZ2V0IHBsYXRmb3JtLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgU1RNTUFDX0VUSCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI6Y29uZmlnIFNUTU1BQ19FVEhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O1NUTWljcm9lbGVjdHJvbmljcyBNdWx0aS1HaWdhYml0IEV0aGVybmV0IGRyaXZlclwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMDA5NAoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkRlY29kaW5nIHRoYXQgUGhyYXNlKioKCkhtbSwgJiMzNDtTVE1NQUNfUENJJiMzNDsuIFRoYXQmIzM5O3MgaW50cmlndWluZy4gTXkgaW5pdGlhbCB0aG91Z2h0IHByb2Nlc3MgaW1tZWRpYXRlbHkgc3RhcnRzIGRpc3NlY3RpbmcgdGhpcy4gJiMzNDtTVE1NQUMmIzM0OyBsaWtlbHkgcmVmZXJzIHRvIHRoZSBTVE1pY3JvZWxlY3Ryb25pY3MgTWVkaWEgQWNjZXNzIENvbnRyb2xsZXIgKE1BQykgSVAgY29yZSwgYSBjb21tb24gY29tcG9uZW50IGZvdW5kIGluIGEgbG90IG9mIGVtYmVkZGVkIHN5c3RlbXMsIHBhcnRpY3VsYXJseSB0aG9zZSB1c2luZyBTVE0zMiBtaWNyb2NvbnRyb2xsZXJzIG9yIHRoZWlyIGFzc29jaWF0ZWQgU29Dcy4KClRoZSAmIzM0O1BDSSYjMzQ7IHBhcnQgaXMgdGhlIG1vcmUgaW50ZXJlc3RpbmcgcGllY2UuIEl0IGltcGxpZXMgdGhpcyBNQUMgY29yZSBpcyBjb25uZWN0ZWQgdG8gYSBQQ0kgKFBlcmlwaGVyYWwgQ29tcG9uZW50IEludGVyY29ubmVjdCkgb3IgUENJIEV4cHJlc3MgYnVzLiBUaGlzIG5hcnJvd3MgZG93biB0aGUgYXBwbGljYXRpb24gc2lnbmlmaWNhbnRseS4gSSYjMzk7bSBsaWtlbHkgbG9va2luZyBhdCBhIHN5c3RlbSB3aXRoIHNvbWUgZGVncmVlIG9mIHNvcGhpc3RpY2F0aW9uLCBwb3RlbnRpYWxseSBhIG5ldHdvcmtpbmcgY2FyZCwgYW4gaW5kdXN0cmlhbCBjb250cm9sIHN5c3RlbSB3aXRoIGhpZ2hlciBiYW5kd2lkdGggcmVxdWlyZW1lbnRzLCBvciBldmVuIGEgc3BlY2lhbGl6ZWQgZW1iZWRkZWQgc3lzdGVtIG5lZWRpbmcgaGlnaC1zcGVlZCBuZXR3b3JrIGNvbm5lY3Rpdml0eS4KCk15IG1pbmQgaW1tZWRpYXRlbHkgc3RhcnRzIHRpY2tpbmcgdGhyb3VnaCB0aGUgaW1wbGljYXRpb25zOiBkcml2ZXIgcmVxdWlyZW1lbnRzLCBpbnRlcnJ1cHQgaGFuZGxpbmcsIERNQSAoRGlyZWN0IE1lbW9yeSBBY2Nlc3MpIGNvbmZpZ3VyYXRpb24uLi4gYWxsIG9mIHRoZXNlIHRha2Ugb24gYSBkaWZmZXJlbnQgZmxhdm9yIHdoZW4gZGVhbGluZyB3aXRoIGEgUENJIGludGVyZmFjZSByYXRoZXIgdGhhbiBzb21ldGhpbmcgc2ltcGxlciBsaWtlIGEgc3RhbmRhcmQgRXRoZXJuZXQgUEhZLiBJJiMzOTtkIGJlIGxvb2tpbmcgZm9yIFBDSSBjb25maWd1cmF0aW9uIHNwYWNlIGFjY2VzcywgcG90ZW50aWFsbHkgZGVhbGluZyB3aXRoIEJBUnMgKEJhc2UgQWRkcmVzcyBSZWdpc3RlcnMpIGFuZCBtZW1vcnktbWFwcGVkIEkvTywgYW5kIHRoZSBhc3NvY2lhdGVkIGNvbXBsZXhpdHkgb2YgYnVzIG1hc3RlcmluZy4KCkZ1cnRoZXJtb3JlLCBJJiMzOTtkIG5lZWQgdG8gY29uc2lkZXIgdGhlIHBvd2VyIG1hbmFnZW1lbnQgYXNwZWN0cy4gUENJIGRldmljZXMgb2Z0ZW4gaGF2ZSB0aGVpciBvd24gcG93ZXIgc3RhdGVzLCBhbmQgb3B0aW1pemluZyB0aGlzIHRvIHJlZHVjZSBwb3dlciBjb25zdW1wdGlvbiBvciBpbXByb3ZlIHJlc3BvbnNpdmVuZXNzIG1heSBiZSBhIGtleSBjb25zaWRlcmF0aW9uIGluIGFueSBwb3RlbnRpYWwgZGVzaWduIG9yIGRlYnVnZ2luZyBleGVyY2lzZS4gVGhlIGNsb2NraW5nIHNjaGVtZSBpcyBhbHNvIGxpa2VseSB0byBiZSB2ZXJ5IGltcG9ydGFudCwgc2luY2UgdGhlIE1BQyBuZWVkcyBhIHN0YWJsZSBjbG9jayBzaWduYWwgYW5kIG5lZWRzIHRvIGJlIHN5bmNocm9uaXplZCB3aXRoIHRoZSBQQ0kgYnVzIGNsb2NrLgoKVWx0aW1hdGVseSwgSSYjMzk7ZCBuZWVkIHRvIGxvb2sgYXQgdGhlIG92ZXJhbGwgYXJjaGl0ZWN0dXJlIG9mIHRoaXMgZGV2aWNlLCBpbiBwYXJ0aWN1bGFyLCB0aGUgY29uZmlndXJhdGlvbiBhbmQgaW50ZXJhY3Rpb24gb2YgdGhpcyBTVE1NQUMgSVAgY29yZSBhbmQgUENJIGJ1cy4gVGhlIHNwZWNpZmljIGRldGFpbHMsIGxpa2UgdGhlIHR5cGUgb2YgUENJIGJ1cyAoc3RhbmRhcmQgUENJLCBQQ0kgRXhwcmVzcywgZXRjLikgd2lsbCBzdHJvbmdseSBpbXBhY3QgZHJpdmVyIGNob2ljZXMgYW5kIG92ZXJhbGwgZGVzaWduIGNvbnN0cmFpbnRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgU1RNTUFDX1BDSSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM5OD1jb25maWcgRFdNQUNfTU9UT1JDT01NXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00MDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQwNzpjb25maWcgU1RNTUFDX1BDSVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00MDgtXHR0cmlzdGF0ZSBcJiMzNDtTVE1NQUMgUENJIGJ1cyBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIwOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwNjc4CgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMzg2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJlYWNoaW5nIFBoeWxpbmsgUENTIExvb3BiYWNrIGZvciBGdXp6aW5nKioKCk9rYXksIHNvIEkmIzM5O3ZlIGlkZW50aWZpZWQgYSBwcm9taXNpbmcgYXJlYSBmb3IgZnV6emluZzogc3BlY2lmaWNhbGx5LCB0aGUgcG90ZW50aWFsIGxvb3BiYWNrIGZ1bmN0aW9uYWxpdHkgd2l0aGluIHRoZSBTVE1NQUMgZHJpdmVyLiBJIG5lZWQgdG8gZW5zdXJlIHRoZXNlIGNvbXBvbmVudHMgYXJlIGVuYWJsZWQ6IGBTVE1NQUNfRVRIYCwgYFNUTU1BQ19QQ0lgLCBhbmQgYFNUTU1BQ19TRUxGVEVTVFNgLiBNeSBwcmltYXJ5IGZvY3VzIGlzIGdldHRpbmcgdG8gdGhlIGBwaHlsaW5rX3Bjc19sb29wYmFja2AgZnVuY3Rpb24sIGFzIHRoYXQgc2VlbXMgbGlrZSBhIGdvb2QgdGFyZ2V0LgoKTGV0JiMzOTtzIHRyYWNlIGhvdyB0aGlzIGZ1bmN0aW9uIGlzIHJlYWNoZWQuIFRoZSBwYXRoIGlzIGNsZWFyOiBUaGUgcGF0Y2ggYWRkcyBgcGh5bGlua19wY3NfbG9vcGJhY2tgIHRvIGBkcml2ZXJzL25ldC9waHkvcGh5bGluay5jYC4gIFRoaXMgZnVuY3Rpb24gaXMgdGhlbiBjYWxsZWQgYnkgYHN0bW1hY190ZXN0X3BoeV9sb29wYmFja2AsIHdoaWNoIGxpdmVzIGluIGBzdG1tYWNfc2VsZnRlc3RzLmNgLiBUaGF0IGZ1bmN0aW9uIGlzLCBpbiB0dXJuLCBjYWxsZWQgYnkgYHN0bW1hY19zZWxmdGVzdF9ydW5gLiBBbmQgZmluYWxseSwgYHN0bW1hY19zZWxmdGVzdF9ydW5gIGlzIGludm9rZWQgdGhyb3VnaCBgc3RtbWFjX2V0aHRvb2xfb3BzLnNlbGZfdGVzdGAuIFRoZSBpbXBvcnRhbnQgcGFydCBpcyB0aGF0IGV0aHRvb2wgc2VsZiB0ZXN0cyBhcmUgdHJpZ2dlcmVkIGJ5IHN5emthbGxlciB2aWEgYGlvY3RsKFNJT0NFVEhUT09MLCBFVEhUT09MX1RFU1QpYC4gVGhpcyBtZWFucyB0aGF0IGl0JiMzOTtzIGEgY29tcGxldGVseSByZWFjaGFibGUgcGF0aC4KCk5vdywgSSB3YW50IHRvIGRyaWxsIGRvd24gYW5kIHNlZSB0aGUgZXhhY3QgZnVuY3Rpb25zIGludm9sdmVkLiBUaGUgcGF0Y2ggYWxzbyBhZGRzIGBkd21hY19pbnRlZ3JhdGVkX3Bjc19sb29wYmFja2AgaW4gYHN0bW1hY19wY3MuY2AgYW5kIGEgc3RhdGljIGZ1bmN0aW9uIGBzdG1tYWNfc2VsZnRlc3RfZ2V0X3Bjc2AgaW4gYHN0bW1hY19zZWxmdGVzdHMuY2AuIFRoZSBtb3JlIGludGVyZXN0aW5nIG9uZSBpcyBgcGh5bGlua19wY3NfbG9vcGJhY2tgIGJlY2F1c2UgaXQmIzM5O3MgZXhwb3J0ZWQgYW5kIGNhbiBiZSBjYWxsZWQgZnJvbSBvdXRzaWRlLgoKSGFuZyBvbi4uLiBgZHdtYWNfaW50ZWdyYXRlZF9wY3NfbG9vcGJhY2tgIGlzIHN0YXRpYy4gVGhhdCYjMzk7cyBub3QgaWRlYWwgZm9yIGZ1enppbmcuIENhbiBJIGZvY3VzIG9uIGBwaHlsaW5rX3Bjc19sb29wYmFja2A/IFllcyEgSXQgaXMgZXhwb3J0ZWQuIEFuZCB3aGF0IGFib3V0IGBzdG1tYWNfdGVzdF9waHlfbG9vcGJhY2tgPyBJdCYjMzk7cyBzdGF0aWMsIGJ1dCBJJiMzOTttIGdldHRpbmcgdGhlcmUuIEl0JiMzOTtzIGNhbGxlZCBieSBgc3RtbWFjX3NlbGZ0ZXN0X3J1bmAsIHdoaWNoIGlzIHRoZSBlbnRyeSBwb2ludCwgc28gSSYjMzk7bGwgYWxzbyBjaGVjayBgc3RtbWFjX3NlbGZ0ZXN0X3J1bmAgaW4gYHN0bW1hY19zZWxmdGVzdHMuY2AgdG8gdW5kZXJzdGFuZCB0aGUgYmlnZ2VyIHBpY3R1cmUuIFRoaXMgc2VlbXMgdmVyeSBwcm9taXNpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIwOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N0bW1hY19zZWxmdGVzdF9ydW4mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmg9NDM0PXN0cnVjdCB0aW1lc3BlYzY0IHN0bW1hY19jYWxjX3Rhc19iYXNldGltZShrdGltZV90IG9sZF9iYXNlX3RpbWUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmgtNDM4LSNpZiBJU19FTkFCTEVEKENPTkZJR19TVE1NQUNfU0VMRlRFU1RTKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmg6NDM5OnZvaWQgc3RtbWFjX3NlbGZ0ZXN0X3J1bihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmgtNDQwLVx0XHRcdCBzdHJ1Y3QgZXRodG9vbF90ZXN0ICpldGVzdCwgdTY0ICpidWYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hYy5oPTQ0Mj1pbnQgc3RtbWFjX3NlbGZ0ZXN0X2dldF9jb3VudChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmgtNDQzLSNlbHNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWMuaDo0NDQ6c3RhdGljIGlubGluZSB2b2lkIHN0bW1hY19zZWxmdGVzdF9ydW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hYy5oLTQ0NS1cdFx0XHRcdCAgICAgICBzdHJ1Y3QgZXRodG9vbF90ZXN0ICpldGVzdCwgdTY0ICpidWYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYz0xMDkyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgc3RtbWFjX2V0aHRvb2xfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMtMTEwNS1cdC5zZXRfcGF1c2VwYXJhbSA9IHN0bW1hY19zZXRfcGF1c2VwYXJhbSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmM6MTEwNjpcdC5zZWxmX3Rlc3QgPSBzdG1tYWNfc2VsZnRlc3RfcnVuLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy0xMTA3LVx0LmdldF9ldGh0b29sX3N0YXRzID0gc3RtbWFjX2dldF9ldGh0b29sX3N0YXRzLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19zZWxmdGVzdHMuYz0xODUxPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3Rlc3Qge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19zZWxmdGVzdHMuYy0xOTg2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3NlbGZ0ZXN0cy5jOjE5ODc6dm9pZCBzdG1tYWNfc2VsZnRlc3RfcnVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfc2VsZnRlc3RzLmMtMTk4OC1cdFx0XHQgc3RydWN0IGV0aHRvb2xfdGVzdCAqZXRlc3QsIHU2NCAqYnVmKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjMxNQoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDIyNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEV0aGVybmV0IERyaXZlciBTZWxmLVRlc3QgRmxvdyoqCgpPa2F5LCBzbyBJJiMzOTttIGRpdmluZyBpbnRvIHRoaXMgc2VsZi10ZXN0IGZ1bmN0aW9uIGZvciB0aGUgRXRoZXJuZXQgZHJpdmVyLiBUaGUgZW50cnkgcG9pbnQsIGFzIEkgc2VlIGl0LCBpcyBgc3RtbWFjX3NlbGZ0ZXN0X3J1bmAuIEZpcnN0LCBJIHdhbnQgdG8gY29uZmlybSB3aGV0aGVyIG9yIG5vdCBgc3RtbWFjX3Rlc3RfcGh5X2xvb3BiYWNrYCBpcyBzdGF0aWMuIEFscmlnaHQsIGl0IGlzLiBUaGF0IG1lYW5zIEkgY2FuIHByb2JhYmx5IGF2b2lkIGZvY3VzaW5nIG9uIGl0IGRpcmVjdGx5LgoKTmV4dCwgSSYjMzk7bSBnb2luZyB0byBsb29rIGNsb3NlbHkgYXQgYHN0bW1hY19zZWxmdGVzdF9ydW5gIGl0c2VsZiBhbmQgYWxzbyBgcGh5bGlua19wY3NfbG9vcGJhY2tgLiBXYWl0IGEgbWludXRlLCB3aGF0IGFib3V0IGBkd21hY19pbnRlZ3JhdGVkX3Bjc19sb29wYmFja2A/IEl0JiMzOTtzIG1hcmtlZCBhcyBzdGF0aWMsIGJ1dCBpdCYjMzk7cyBhc3NpZ25lZCB0byBgcGNzX2xvb3BiYWNrYCBpbnNpZGUgYGR3bWFjX2ludGVncmF0ZWRfcGNzX29wc2AuIFRoZSBpbmxpbmluZyBtYWtlcyBpdCBoYXJkZXIsIGJ1dCBzaW5jZSBpdCYjMzk7cyBhc3NpZ25lZCB0byBhIGZ1bmN0aW9uIHBvaW50ZXIsIGl0ICpzaG91bGRuJiMzOTt0KiBiZSBpbmxpbmVkLiBFdmVuIHNvLCBpdCYjMzk7cyBnZW5lcmFsbHkgYmV0dGVyIHRvIHByaW9yaXRpemUgZXhwb3J0ZWQgb3Igbm9uLXN0YXRpYyBmdW5jdGlvbnMgZm9yIHRoaXMga2luZCBvZiBhbmFseXNpcy4KClRoYW5rZnVsbHksIGBwaHlsaW5rX3Bjc19sb29wYmFja2AgKmlzKiBleHBvcnRlZCwgd2hpY2ggaXMgcGVyZmVjdC4gQW5kIGNvbmZpcm1pbmcgdGhhdCBgc3RtbWFjX3NlbGZ0ZXN0X3J1bmAgaXMgYWxzbyBub24tc3RhdGljLCBJIGNhbiBnZXQgdG8gd29yay4KClRoZXJlZm9yZSwgbXkgbmV4dCBtb3ZlIGlzIHRvIGNoZWNrIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgcGh5bGlua19wY3NfbG9vcGJhY2tgIGxvY2F0ZWQgaW4gYGRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwaHlsaW5rX3Bjc19sb29wYmFjayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYz05OTg9RVhQT1JUX1NZTUJPTF9HUEwocGh5bGlua19wY3NfcHJlX2luaXQpO1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMTAwMC0vKipcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MTAwMTogKiBwaHlsaW5rX3Bjc19sb29wYmFjaygpIC0gRW5hYmxlIG9yIGRpc2FibGUgbG9vcGJhY2sgYXQgdGhlIFBDU1xuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0xMDAyLSAqIEBwY3M6IGEgcG9pbnRlciB0byBhIFx1MDAyNnN0cnVjdCBwaHlsaW5rX3Bjcy5cbi0tXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTEwMDktICovXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjEwMTA6aW50IHBoeWxpbmtfcGNzX2xvb3BiYWNrKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCBib29sIGVuYWJsZSlcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMTAxMS17XG4tLVxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0xMDE2LX1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MTAxNzpFWFBPUlRfU1lNQk9MX0dQTChwaHlsaW5rX3Bjc19sb29wYmFjayk7XG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTEwMTgtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIwOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMzMTU0CgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogMTI1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZvY3VzaW5nIG9uIFNlbGYtVGVzdCBhbmQgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTt2ZSB6ZXJvZWQgaW4gb24gdGhlIHJpZ2h0IGFyZWFzIHRvIGludmVzdGlnYXRlLiBgcGh5bGlua19wY3NfbG9vcGJhY2tgIGZlZWxzIGxpa2UgYSBzb2xpZCBmb2N1cyBzeW1ib2w7IGl0JiMzOTtzIHJpZ2h0IGluIHRoZSB3aGVlbGhvdXNlLiBTaW1pbGFybHksIGBzdG1tYWNfc2VsZnRlc3RfcnVuYCBpcyBhbm90aGVyIGV4Y2VsbGVudCBwb2ludCBvZiByZWZlcmVuY2UgZm9yIHRoaXMgc2VsZi10ZXN0IHdvcmsuCgpOb3csIGxldCYjMzk7cyBwaXZvdCB0byB0aGUgY29uZmlndXJhdGlvbiBhc3BlY3RzLiBXaGF0IGFyZSB0aGUga2V5IGNvbmZpZyBzeW1ib2xzIHdlIG5lZWQgdG8gY29uc2lkZXI/IEkmIzM5O20gdGhpbmtpbmc6IGBTVE1NQUNfRVRIYCwgYFNUTU1BQ19QQ0lgLCBgU1RNTUFDX1NFTEZURVNUU2AsIGFuZCBgUEhZTElOS2AuIGBQSFlMSU5LYCBpcyB1c3VhbGx5IGJyb3VnaHQgaW4gdmlhIGBTVE1NQUNfRVRIYCBvciBzb21ldGhpbmcgbGlrZSBgTUFDQmAsIGJ1dCBpdCYjMzk7cyB3b3J0aCBsaXN0aW5nIGV4cGxpY2l0bHkgZm9yIGNsYXJpdHkuIFRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBxdWlja2x5IGNvbmZpcm0gaWYgYFNUTU1BQ19FVEhgIHByb3Blcmx5IHNlbGVjdHMgb3IgdHJpZ2dlcnMgYFBIWUxJTktgLiBXZSBuZWVkIHRvIGJlIHN1cmUgdGhlIGRlcGVuZGVuY2llcyBhcmUgYXMgd2UgZXhwZWN0IHRoZW0gdG8gYmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIwOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NlbGVjdCBQSFlMSU5LJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mj1jb25maWcgU1RNTUFDX0VUSFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctOS1cdHNlbGVjdCBQQUdFX1BPT0xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTA6XHRzZWxlY3QgUEhZTElOS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMS1cdHNlbGVjdCBDUkMzMlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzY0MwoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDUzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUGF0Y2gmIzM5O3MgSW1wYWN0KioKCk9rYXksIHNvIEkmIzM5O3ZlIGNvbmZpcm1lZCB0aGUgaW5pdGlhbCBhc3Nlc3NtZW50IOKAkyB0aGUgY2hhbmdlIGRlZmluaXRlbHkgYXBwbGllcy4gQnV0IGhvbGQgb24gYSBzZWNvbmQuLi4gdGhlIHBhdGNoIGlzbiYjMzk7dCAqanVzdCogdG91Y2hpbmcgdGhhdCBvbmUgZmlsZS4gSXQgbG9va3MgbGlrZSBpdCYjMzk7cyBhbHNvIG1vZGlmeWluZyBgc3RtbWFjX3Bjcy5jYC4gVGhpcyByYWlzZXMgYSBxdWVzdGlvbiBJIG5lZWQgdG8gYmUgYWJzb2x1dGVseSBzdXJlIGFib3V0LiBJcyBgc3RtbWFjX3Bjcy5jYCB1bmNvbmRpdGlvbmFsbHkgY29tcGlsZWQgaW50byB0aGUgYnVpbGQgd2hlbiBgU1RNTUFDX0VUSGAgaXMgZW5hYmxlZD8gSSBuZWVkIHRvIGJlIGNlcnRhaW4sIGJlY2F1c2UgYW55IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGNoYW5nZXMgdGhlIHNjb3BlIG9mIG15IHJldmlldy4gVGltZSB0byBkaXZlIGludG8gdGhlIGBNYWtlZmlsZWAgYW5kIGNvbmZpcm0gaG93IHRoaXMgaXMgY29uZmlndXJlZC4gR290dGEgZ2V0IHRoZSBidWlsZCBkZXBlbmRlbmNpZXMgYW5kIGFueSBwb3RlbnRpYWxseSBoaWRkZW4gaW50ZXJhY3Rpb25zIGlyb25lZCBvdXQgbm93LCBiZWZvcmUgSSB3YXN0ZSB0aW1lIG9uIGEgZG93bnN0cmVhbSBpc3N1ZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjA6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RtbWFjX3Bjcy5vJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTM9c3RtbWFjLW9ianM6PSBzdG1tYWNfbWFpbi5vIHN0bW1hY19ldGh0b29sLm8gc3RtbWFjX21kaW8ubyByaW5nX21vZGUub1x0XFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS05LVx0ICAgICAgc3RtbWFjX3hkcC5vIHN0bW1hY19lc3QubyBzdG1tYWNfZnBlLm8gc3RtbWFjX3ZsYW4ubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTA6XHQgICAgICBzdG1tYWNfcGNzLm8gJChzdG1tYWMteSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTExLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNDA3MgoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDIyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBDdXJyZW50IExpbmUgb2YgUmVhc29uaW5nKioKCk9rYXksIHllcywgdGhhdCYjMzk7cyBjb3JyZWN0LiBMZXQmIzM5O3Mgc2VlLCB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgaGVyZSBhcmUgYFNUTU1BQ19FVEhgLCBgU1RNTUFDX1BDSWAsIGFuZCBgU1RNTUFDX1NFTEZURVNUU2AuIE5vdywgYSBxdWljayBwYXVzZS4uLiBkb2VzIGp1c3QgYFNUTU1BQ19QQ0lgIGFsb25lIGVuYWJsZSB0aGUgZHJpdmVyIHRvIHByb2JlIHByb3Blcmx5IGluIGEgdmlydHVhbGl6ZWQgY29udGV4dD8gSSBrbm93IHN5emthbGxlciBjYW4gaW5qZWN0IFBDSSBkZXZpY2VzIHVzaW5nIGBzeXpfcGNpX2RldmljZV9hZGRgLiBIYW5nIG9uLCBtYXliZSBpdCAqZG9lc24mIzM5O3QqIG5lZWQgYFNUTU1BQ19QQ0lgIGlmIGl0IGNhbiBpbmplY3QgcGxhdGZvcm0gZGV2aWNlcyBkaXJlY3RseT8gQWgsIHJpZ2h0LCBzeXprYWxsZXIgZG9lc24mIzM5O3QgaGF2ZSBhIGBzeXpfcGxhdGZvcm1fZGV2aWNlX2FkZGAgZnVuY3Rpb24sIG9ubHkgdGhpbmdzIGxpa2UgYHN5el9wY2lfZGV2aWNlX2FkZGAgYW5kIGBzeXpfdXNiX2Nvbm5lY3RgLiBTbywgdG8gbGV2ZXJhZ2UgUENJIGluamVjdGlvbiB3aXRoIHN5emthbGxlciwgaXQgKmRvZXMqIG5lZWQgYFNUTU1BQ19QQ0lgLgoKTGV0IG1lIGp1c3QgcXVpY2tseSBjb25maXJtIHRoYXQgYFNUTU1BQ19QQ0lgIGlzLCBpbiBmYWN0LCBhIHRyaXN0YXRlLiBHb29kLCBpdCBpcy4gVGhlcmVmb3JlLCB3ZSBzaG91bGQgYWJzb2x1dGVseSBpbmNsdWRlIGBTVE1NQUNfUENJYCBpbiB0aGUgY29uZmlndXJhdGlvbi4gTm93LCBqdXN0IHRvIGJlIHRob3JvdWdoLCBJIHNob3VsZCBkb3VibGUtY2hlY2sgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgZGVwZW5kZW5jaWVzIG9uIGBTVE1NQUNfUENJYCB0aGF0IG1pZ2h0IG5lZWQgdG8gYmUgY29uc2lkZXJlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMjA6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFNUTU1BQ19QQ0kmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zOTg9Y29uZmlnIERXTUFDX01PVE9SQ09NTVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo0MDc6Y29uZmlnIFNUTU1BQ19QQ0lcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA4LVx0dHJpc3RhdGUgXCYjMzQ7U1RNTUFDIFBDSSBidXMgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNDc0MAoJCQkJCQkJb3V0cHV0OiA0NAoJCQkJCQkJdGhvdWdodHM6IDE0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOgoKKipEZWNvbnN0cnVjdGluZyBgU1RNTUFDX1BDSWAgRGVwZW5kZW5jaWVzKioKCk9rYXksIHNvIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgYFNUTU1BQ19QQ0lgIGFjdHVhbGx5ICpyZWxpZXMqIG9uLiBJJiMzOTttIHRoaW5raW5nLCBpbiB0ZXJtcyBvZiBzeXN0ZW0gYXJjaGl0ZWN0dXJlLCB0aGlzIGlzIGxpa2VseSBhIG5ldHdvcmsgZHJpdmVyLCByaWdodD8gTW9yZSBzcGVjaWZpY2FsbHksIGl0JiMzOTtzIHByb2JhYmx5IHJlbGF0ZWQgdG8gYSBzcGVjaWZpYyBFdGhlcm5ldCBjb250cm9sbGVyLCB0aGUgb25lIHdpdGggYW4gJiMzNDtTVCYjMzQ7IHByZWZpeCB3aGljaCBzdWdnZXN0cyBhIHBhcnRpY3VsYXIgc2lsaWNvbiB2ZW5kb3IgLSBwb3NzaWJseSBTVE1pY3JvZWxlY3Ryb25pY3MsIHRob3VnaCBJIHNob3VsZCB2ZXJpZnkgdGhhdC4gVGhlICYjMzQ7TUFDJiMzNDsgcGFydCBzdHJvbmdseSBzdWdnZXN0cyBpdOKAmXMgZGVhbGluZyB3aXRoIHRoZSBNZWRpYSBBY2Nlc3MgQ29udHJvbGxlciBsYXllciwgd2hpY2ggaXMgY3J1Y2lhbCBmb3IgaGFuZGxpbmcgRXRoZXJuZXQgZnJhbWVzLiBBbmQgdGhlICYjMzQ7UENJJiMzNDsgc3VmZml4PyBUaGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lIHRoaXMgZHJpdmVyIGludGVyZmFjZXMgd2l0aCB0aGUgaGFyZHdhcmUgdmlhIHRoZSBQZXJpcGhlcmFsIENvbXBvbmVudCBJbnRlcmNvbm5lY3QgYnVzLgoKVGhlcmVmb3JlLCB0aGUgZmlyc3QgcXVlc3Rpb25zIEkmIzM5O20gYXNraW5nIG15c2VsZiBhcmU6IFdoYXQgc3BlY2lmaWMgaGFyZHdhcmUgdmFyaWF0aW9ucyBpcyBpdCBkZXNpZ25lZCB0byBoYW5kbGU/IFdoYXQgb3RoZXIgZHJpdmVycyBvciBtb2R1bGVzIG1pZ2h0IGJlIHJlcXVpcmVkIGZvciB0aGlzIHRvIGZ1bmN0aW9uIGNvcnJlY3RseT8gRm9yIGV4YW1wbGUsIGlzIHRoZXJlIGEgc3BlY2lmaWMgUENJIGNvbnRyb2xsZXIgZHJpdmVyIGl0IG5lZWRzPyBBcmUgdGhlcmUgYW55IGxvd2VyLWxldmVsIGhhcmR3YXJlIGFic3RyYWN0aW9uIGxheWVycyB0aGF0IGl0IHVzZXM/IEFyZSB0aGVyZSBhbnkgZmlybXdhcmUgb3Igc2hhcmVkIGxpYnJhcnkgZGVwZW5kZW5jaWVzIHRoYXQgaXQgbWlnaHQgbG9hZD8gSSBuZWVkIHRvIGxvb2sgZm9yIGhlYWRlcnMsIGluY2x1ZGUgZmlsZXMsIG9yIGNvbmZpZ3VyYXRpb24gZmlsZXMgdG8gZGV0ZXJtaW5lIHdoYXQgb3RoZXIgcGFydHMgb2YgdGhlIHN5c3RlbSBhcmUgbmVlZGVkIHRvIG1ha2UgaXQgcnVuLiBJJiMzOTtsbCBuZWVkIHRvIGxvb2sgYXQgaXRzIEtjb25maWcgZW50cmllcy4gVGhpcyBpcyBnb2luZyB0byBiZSBteSBzdGFydGluZyBwb2ludC4gSSBrbm93IEkmIzM5O20gYWxyZWFkeSB0aGlua2luZyBhYm91dCBwb3RlbnRpYWwgY29uZmxpY3RzIG9yIGRlcGVuZGVuY2llcyBvbiBvdGhlciBkcml2ZXJzLCBhbmQgSSBuZWVkIHRvIHN0YXJ0IGZpZ3VyaW5nIG91dCBwb3RlbnRpYWwgdmVyc2lvbiByZXF1aXJlbWVudHMgb2YgYW55IGV4dGVybmFsIGxpYnJhcmllcywgc28gSSBjYW4gc3RhcnQgdG8gZGV2ZWxvcCBhIGhvbGlzdGljIHZpZXcgb2YgdGhlIGBTVE1NQUNfUENJYCBlY29zeXN0ZW0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIwOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDQwMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgNDAwOlx0XHRkZXBlbmRzIG9uIFBDSVxuIDQwMTpcdFx0c2VsZWN0IE1PVE9SQ09NTV9QSFlcbiA0MDI6XHRcdHNlbGVjdCBTVE1NQUNfTElCUENJXG4gNDAzOlx0XHRoZWxwXG4gNDA0Olx0XHQgIFRoaXMgZW5hYmxlcyBnbHVlIGRyaXZlciBmb3IgTW90b3Jjb21tIERXTUFDLWJhc2VkIFBDSSBFdGhlcm5ldFxuIDQwNTpcdFx0ICBjb250cm9sbGVycy4gQ3VycmVudGx5IG9ubHkgWVQ2ODAxIGlzIHN1cHBvcnRlZC5cbiA0MDY6XHRcbiA0MDc6XHRjb25maWcgU1RNTUFDX1BDSVxuIDQwODpcdFx0dHJpc3RhdGUgXCYjMzQ7U1RNTUFDIFBDSSBidXMgc3VwcG9ydFwmIzM0O1xuIDQwOTpcdFx0ZGVwZW5kcyBvbiBQQ0lcbiA0MTA6XHRcdGRlcGVuZHMgb24gQ09NTU9OX0NMS1xuIDQxMTpcdFx0c2VsZWN0IFNUTU1BQ19MSUJQQ0lcbiA0MTI6XHRcdGhlbHBcbiA0MTM6XHRcdCAgVGhpcyBzZWxlY3RzIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG4gNDE0Olx0XHQgIFRoaXMgZHJpdmVyIHdhcyB0ZXN0ZWQgb24gWExJTlggWEMyVjMwMDAgRkYxMTUyQU1UMDIyMVxuIDQxNTpcdFx0ICBEMTIxNTk5NEEgVklSVEVYIEZQR0EgYm9hcmQgYW5kIFNOUFMgUW9TIElQSyBQcm90b3R5cGluZyBLaXQuXG4gNDE2Olx0XG4gNDE3Olx0XHQgIElmIHlvdSBoYXZlIGEgY29udHJvbGxlciB3aXRoIHRoaXMgaW50ZXJmYWNlLCBzYXkgWSBvciBNIGhlcmUuXG4gNDE4Olx0XG4gNDE5Olx0XHQgIElmIHVuc3VyZSwgc2F5IE4uXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDIwOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1NDU1CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogNzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCBtZSB0aGluayB0aGlzIHRocm91Z2guCgoqKkFuYWx5emluZyBEcml2ZXIgRGVwZW5kZW5jaWVzKioKCkFscmlnaHQsIHNvIHRoZSBgU1RNTUFDX1BDSWAgZHJpdmVyIGxldmVyYWdlcyB0aGUgYFBDSWAgYW5kIGBDT01NT05fQ0xLYCBzdWJzeXN0ZW1zLiBgUENJYCBpcyBwcmV0dHkgbXVjaCB1YmlxdWl0b3VzIOKAkyBpdCYjMzk7cyBhIHN0YW5kYXJkIGludGVyZmFjZSwgYSBmb3VuZGF0aW9uYWwgcGllY2Ugb2YgaGFyZHdhcmUgaW50ZWdyYXRpb24uIEFuZCBgQ09NTU9OX0NMS2AgaXMgYmVjb21pbmcgaW5jcmVhc2luZ2x5IHByZXZhbGVudCBhY3Jvc3MgdmFyaW91cyBhcmNoaXRlY3R1cmVzLCBhbm90aGVyIHN0YW5kYXJkIHRoYXQmIzM5O3MgZXNzZW50aWFsbHkgYmFrZWQgaW4gdGhlc2UgZGF5cy4gVGhhdCBtZWFucyBgU1RNTUFDX1BDSWAgc2VlbXMgbGlrZSBhIHNvbGlkIGNob2ljZSBmcm9tIGEgZGVwZW5kZW5jeSBwZXJzcGVjdGl2ZSwgcmVsYXRpdmVseSBlYXN5IHRvIHN1cHBvcnQsIEkmIzM5O2Qgc2F5LiBObyBpbW1lZGlhdGUgcmVkIGZsYWdzIHRoZXJlLgoKSG93ZXZlciwgSSBzaG91bGQgdGFrZSBhIGJyb2FkZXIgbG9vayBhdCB0aGUgbGFuZHNjYXBlLiBIb2xkIG9uIGEgc2Vjb25kLi4uIHdoYXQgYWJvdXQgYERXTUFDX0lOVEVMYD8gTm93IHRoYXQgSSB0aGluayBhYm91dCBpdCwgdGhhdCYjMzk7cyBhbm90aGVyIFBDSS1iYXNlZCBkcml2ZXIuIEkgc2hvdWxkIGFuYWx5emUgaXQgaW4gYSBzaW1pbGFyIGxpZ2h0IHRvIGVuc3VyZSBhIGNvaGVyZW50IGFwcHJvYWNoLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAzNzAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMzAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDM3MDpcdFxuIDM3MTpcdGVuZGlmICMgU1RNTUFDX1BMQVRGT1JNXG4gMzcyOlx0XG4gMzczOlx0Y29uZmlnIFNUTU1BQ19MSUJQQ0lcbiAzNzQ6XHRcdHRyaXN0YXRlXG4gMzc1Olx0XHRoZWxwXG4gMzc2Olx0XHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIFBDSSBidXMgaGVscGVycyBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG4gMzc3Olx0XG4gMzc4Olx0Y29uZmlnIERXTUFDX0lOVEVMXG4gMzc5Olx0XHR0cmlzdGF0ZSBcJiMzNDtJbnRlbCBHTUFDIHN1cHBvcnRcJiMzNDtcbiAzODA6XHRcdGRlZmF1bHQgWDg2XG4gMzgxOlx0XHRkZXBlbmRzIG9uIFg4NiBcdTAwMjZcdTAwMjYgUENJXG4gMzgyOlx0XHRkZXBlbmRzIG9uIENPTU1PTl9DTEtcbiAzODM6XHRcdGRlcGVuZHMgb24gQUNQSVxuIDM4NDpcdFx0aGVscFxuIDM4NTpcdFx0ICBUaGlzIHNlbGVjdHMgdGhlIEludGVsIHBsYXRmb3JtIHNwZWNpZmljIGJ1cyBzdXBwb3J0IGZvciB0aGVcbiAzODY6XHRcdCAgc3RtbWFjIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgSW50ZWwgUXVhcmsvRUhML1RHTC5cbiAzODc6XHRcbiAzODg6XHRjb25maWcgRFdNQUNfTE9PTkdTT05cbiAzODk6XHRcdHRyaXN0YXRlIFwmIzM0O0xvb25nc29uIFBDSSBEV01BQyBzdXBwb3J0XCYjMzQ7XG4gMzkwOlx0XHRkZWZhdWx0IE1BQ0hfTE9PTkdTT042NFxuIDM5MTpcdFx0ZGVwZW5kcyBvbiAoTUFDSF9MT09OR1NPTjY0IHx8IENPTVBJTEVfVEVTVCkgXHUwMDI2XHUwMDI2IFBDSVxuIDM5MjpcdFx0ZGVwZW5kcyBvbiBDT01NT05fQ0xLXG4gMzkzOlx0XHRzZWxlY3QgU1RNTUFDX0xJQlBDSVxuIDM5NDpcdFx0aGVscFxuIDM5NTpcdFx0ICBUaGlzIHNlbGVjdHMgdGhlIExPT05HU09OIFBDSSBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIsXG4gMzk2Olx0XHQgIFN1cHBvcnQgZm9yIGV0aGVybmV0IGNvbnRyb2xsZXIgb24gTG9vbmdzb24tMksxMDAwIFNvQyBhbmQgTFM3QTEwMDAgYnJpZGdlLlxuIDM5NzpcdFxuIDM5ODpcdGNvbmZpZyBEV01BQ19NT1RPUkNPTU1cbiAzOTk6XHRcdHRyaXN0YXRlIFwmIzM0O01vdG9yY29tbSBQQ0kgRFdNQUMgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjIwNwoJCQkJCQkJb3V0cHV0OiAxNjYKCQkJCQkJCXRob3VnaHRzOiAxMjUxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5c2lzIG9mIHRoZSBTVE1NQUMgSW50ZWdyYXRlZCBQQ1MgTG9vcGJhY2sgRnVuY3Rpb25hbGl0eSoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgYERXTUFDX0lOVEVMYCBpcyBhbHNvIGEgUENJIGRyaXZlciwgc28gdGhhdCYjMzk7cyBzb21ldGhpbmcgdG8ga2VlcCBpbiBtaW5kLCBldmVuIHRob3VnaCBgU1RNTUFDX1BDSWAgc3VwcG9ydHMgc3BlY2lmaWMgZGV2aWNlIGRhdGEgZm9yIGJvdGggYFNUTU1BQ2AgYW5kIGBTVE1JQ1JPYCB3aXRoIGAmYW1wO3N0bW1hY19wY2lfaW5mb2AuIFNpbmNlIFN5emthbGxlciBjYW4gaW5qZWN0IGFueSBQQ0kgSUQsIGBTVE1NQUNfUENJYCBzaG91bGQgYmUgc3VmZmljaWVudCBmb3Igb3VyIHB1cnBvc2VzLgoKTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGVuc3VyZSB3ZSBoYXZlIHRoZSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbnMgZW5hYmxlZC4gV2UmIzM5O3JlIGxvb2tpbmcgYXQgYFNUTU1BQ19FVEhgLCBgU1RNTUFDX1BDSWAsIGFuZCwgY3J1Y2lhbGx5LCBgU1RNTUFDX1NFTEZURVNUU2AuIEEgcXVpY2sgY2hlY2sgY29uZmlybXMgYWxsIHRocmVlLgoKTm93LCByZXZpZXdpbmcgdGhlIHBhdGNoIGl0c2VsZiwgc3BlY2lmaWNhbGx5IHRoZSBgZHdtYWNfaW50ZWdyYXRlZF9wY3NfbG9vcGJhY2tgIGZ1bmN0aW9uLCB3aGljaCBtb2RpZmllcyB0aGUgR01BQyBjb250cm9sIHJlZ2lzdGVyLiBJdCYjMzk7cyBhZGRpbmcgbG9vcGJhY2sgc3VwcG9ydCB0byB0aGUgaW50ZWdyYXRlZCBQQ1MuICBUaGUgY3J1Y2lhbCBwYXJ0IGlzIGhvdyB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQgd2l0aGluIHRoZSBgc3RtbWFjX3NlbGZ0ZXN0cy5jYCBmaWxlLiAgU3BlY2lmaWNhbGx5LCBgc3RtbWFjX3NlbGZ0ZXN0X2dldF9wY3NgLCB3aGljaCBjaGVja3MgZm9yIGVpdGhlciBnbHVlIGRyaXZlciYjMzk7cyBQQ1Mgb3IgdGhlIGludGVncmF0ZWQgUENTLiAgVGhlbiBgc3RtbWFjX3Rlc3RfcGh5X2xvb3BiYWNrYCB1c2VzIGBwaHlsaW5rX3Bjc19sb29wYmFja2AsIGFuZCBzdWJzZXF1ZW50bHkgYHN0bW1hY19zZWxmdGVzdF9ydW5gIGFsc28gdXNlcyBgcGh5bGlua19wY3NfbG9vcGJhY2tgLgoKTXkgZm9jdXMgaXMgb24gdGhlc2Ugc3ltYm9sczogYHBoeWxpbmtfcGNzX2xvb3BiYWNrYCBhbmQgYHN0bW1hY19zZWxmdGVzdF9ydW5gLiBBbHRob3VnaCBgZHdtYWNfaW50ZWdyYXRlZF9wY3NfbG9vcGJhY2tgIGlzIHN0YXRpYywgaXQmIzM5O3MgZXhlY3V0ZWQgd2hlbiBgcGh5bGlua19wY3NfbG9vcGJhY2tgIGlzIGNhbGxlZC4gTm8gb3RoZXIgZXhwb3J0ZWQgZnVuY3Rpb25zIGNvbWUgaW50byBwbGF5LgoKTGV0JiMzOTtzIGNvbmZpcm0gdGhlIGNvbmZpZ3VyYXRpb25zIGFnYWluOiBgU1RNTUFDX0VUSGAsIGBTVE1NQUNfUENJYCwgYW5kIGBTVE1NQUNfU0VMRlRFU1RTYCwgcGx1cyBgUEhZTElOS2Agd2hpY2ggaXMgc2VsZWN0ZWQgYnkgYFNUTU1BQ19FVEhgLCBhbmQgYFBDSWAsIHdoaWNoIGlzIHN0YW5kYXJkLiBBIGRvdWJsZSBjaGVjayBjb25maXJtcyBgU1RNTUFDX1NFTEZURVNUU2AgaXMgdGhlIHByZWNpc2UgY29uZmlndXJhdGlvbiBuYW1lLgoKTGV0JiMzOTtzIGVuc3VyZSB0aGUgZnVuY3Rpb24gbmFtZXMgYXJlIGNvcnJlY3Q6IGB2b2lkIHN0bW1hY19zZWxmdGVzdF9ydW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGV0aHRvb2xfdGVzdCAqZXRlc3QsIHU2NCAqYnVmKWAgYW5kIGBpbnQgcGh5bGlua19wY3NfbG9vcGJhY2soc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIGJvb2wgZW5hYmxlKWAuICBWZXJpZmljYXRpb24gb2YgdGhlIHN0YXRpYyBuYXR1cmUgb2YgYHN0bW1hY190ZXN0X3BoeV9sb29wYmFja2AgYW5kIGBzdG1tYWNfc2VsZnRlc3RfZ2V0X3Bjc2AgY29uZmlybXMgbXkgaW5pdGlhbCBhc3Nlc3NtZW50LgoKVGhlIGtleSBmb2N1cyBzeW1ib2xzIHJlbWFpbjogYHBoeWxpbmtfcGNzX2xvb3BiYWNrYCBhbmQgYHN0bW1hY19zZWxmdGVzdF9ydW5gLgoKVGhlIHJlYXNvbmluZyBpcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkOiB0aGlzIHBhdGNoIGFkZHMgYW5kIGVuYWJsZXMgbG9vcGJhY2sgc3VwcG9ydCBmb3IgdGhlIFNUTU1BQyBpbnRlZ3JhdGVkIFBDUyBhbmQgcGh5bGluaywgYW5kIHNpbmNlIHRoaXMgY29kZSBpcyByZWFjaGVkIHZpYSB0aGUgZXRodG9vbCBzZWxmLXRlc3RzLCB3aGljaCBhcmUgYWNjZXNzaWJsZSB0aHJvdWdoIGBTSU9DRVRIVE9PTGAgd2l0aCB0aGUgYEVUSFRPT0xfVEVTVGAgY29tbWFuZCwgd2UgY2FuIHRyaWdnZXIgdGhlIHZ1bG5lcmFiaWxpdHkgYnkgaW5qZWN0aW5nIGEgdmlydHVhbCBQQ0kgc3RtbWFjIGRldmljZSBhbmQgY2FsbGluZyBldGh0b29sIG9uIGl0LiAgQW5kIHRoZSBjb21taXQgbWVzc2FnZSByZWZlcmVuY2VzIHN5ei1jbHVzdGVyIHdpdGggdGhlIHBhdGNoLCB3aGljaCBtZWFucyBpdCBpcyB0ZXN0ZWQgYnkgc3l6a2FsbGVyLiAgVGhlcmVmb3JlLCBpdCBpcyBkZWZpbml0ZWx5IHJlYWNoYWJsZSwgYW5kIGZ1enppbmcgaXQgaXMgZGVmaW5pdGVseSB3b3J0aHdoaWxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAyMDoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7U1RNTUFDX0VUSCYjMzQ7LAogICAgJiMzNDtTVE1NQUNfUENJJiMzNDssCiAgICAmIzM0O1NUTU1BQ19TRUxGVEVTVFMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtwaHlsaW5rX3Bjc19sb29wYmFjayYjMzQ7LAogICAgJiMzNDtzdG1tYWNfc2VsZnRlc3RfcnVuJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgbG9vcGJhY2sgc3VwcG9ydCB0byB0aGUgc3RtbWFjIGludGVncmF0ZWQgUENTIGFuZCBwaHlsaW5rLCB3aGljaCBpcyB1dGlsaXplZCBieSB0aGUgc3RtbWFjIGV0aHRvb2wgc2VsZnRlc3RzLiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIHZpYSB0aGUgU0lPQ0VUSFRPT0wgaW9jdGwgd2l0aCB0aGUgRVRIVE9PTF9URVNUIGNvbW1hbmQuIFN5emthbGxlciBjYW4gdHJpZ2dlciB0aGlzIGJ5IGluamVjdGluZyBhIHZpcnR1YWwgUENJIHN0bW1hYyBkZXZpY2UgdXNpbmcgc3l6X3BjaV9kZXZpY2VfYWRkIGFuZCBjYWxsaW5nIGV0aHRvb2wgb24gdGhlIHJlc3VsdGluZyBuZXRkZXYuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NUTU1BQ19FVEgmIzM0OywKICAgICYjMzQ7U1RNTUFDX1BDSSYjMzQ7LAogICAgJiMzNDtTVE1NQUNfU0VMRlRFU1RTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cGh5bGlua19wY3NfbG9vcGJhY2smIzM0OywKICAgICYjMzQ7c3RtbWFjX3NlbGZ0ZXN0X3J1biYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGxvb3BiYWNrIHN1cHBvcnQgdG8gdGhlIHN0bW1hYyBpbnRlZ3JhdGVkIFBDUyBhbmQgcGh5bGluaywgd2hpY2ggaXMgdXRpbGl6ZWQgYnkgdGhlIHN0bW1hYyBldGh0b29sIHNlbGZ0ZXN0cy4gVGhpcyBjb2RlIGlzIHJlYWNoYWJsZSB2aWEgdGhlIFNJT0NFVEhUT09MIGlvY3RsIHdpdGggdGhlIEVUSFRPT0xfVEVTVCBjb21tYW5kLiBTeXprYWxsZXIgY2FuIHRyaWdnZXIgdGhpcyBieSBpbmplY3RpbmcgYSB2aXJ0dWFsIFBDSSBzdG1tYWMgZGV2aWNlIHVzaW5nIHN5el9wY2lfZGV2aWNlX2FkZCBhbmQgY2FsbGluZyBldGh0b29sIG9uIHRoZSByZXN1bHRpbmcgbmV0ZGV2LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjdUMjA6MDk6NDEuMDM3NjU0MTg1WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODY1MTA0OTEyMjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiU1RNTUFDX0VUSFwiLFxuICAgIFwiU1RNTUFDX1BDSVwiLFxuICAgIFwiU1RNTUFDX1NFTEZURVNUU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInBoeWxpbmtfcGNzX2xvb3BiYWNrXCIsXG4gICAgXCJzdG1tYWNfc2VsZnRlc3RfcnVuXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBsb29wYmFjayBzdXBwb3J0IHRvIHRoZSBzdG1tYWMgaW50ZWdyYXRlZCBQQ1MgYW5kIHBoeWxpbmssIHdoaWNoIGlzIHV0aWxpemVkIGJ5IHRoZSBzdG1tYWMgZXRodG9vbCBzZWxmdGVzdHMuIFRoaXMgY29kZSBpcyByZWFjaGFibGUgdmlhIHRoZSBTSU9DRVRIVE9PTCBpb2N0bCB3aXRoIHRoZSBFVEhUT09MX1RFU1QgY29tbWFuZC4gU3l6a2FsbGVyIGNhbiB0cmlnZ2VyIHRoaXMgYnkgaW5qZWN0aW5nIGEgdmlydHVhbCBQQ0kgc3RtbWFjIGRldmljZSB1c2luZyBzeXpfcGNpX2RldmljZV9hZGQgYW5kIGNhbGxpbmcgZXRodG9vbCBvbiB0aGUgcmVzdWx0aW5nIG5ldGRldi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjA6MDk6NDEuMDM3NjcyOTM2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MTUwODUwMzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBkZWUyOGQ3YWEwMDQyODFkM2UwYWYyM2Q4ZWViMDM0ZTRkMDYwZTBiXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gSnVsIDI3IDIwOjA5OjM4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY3MuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY3MuY1xcbmluZGV4IGRmMzdhZjVhYjgzN2FmLi45MGEyMWEyZjdlODczMSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNzLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNzLmNcXG5AQCAtMTY4LDYgKzE2OCwyMiBAQCBzdGF0aWMgdm9pZCBkd21hY19pbnRlZ3JhdGVkX3Bjc19hbl9yZXN0YXJ0KHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzKVxcbiBcXHR9XFxuIH1cXG4gXFxuK3N0YXRpYyBpbnQgZHdtYWNfaW50ZWdyYXRlZF9wY3NfbG9vcGJhY2soc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIGJvb2wgZW5hYmxlKVxcbit7XFxuK1xcdHN0cnVjdCBzdG1tYWNfcGNzICpzcGNzID0gcGh5bGlua19wY3NfdG9fc3RtbWFjX3BjcyhwY3MpO1xcbitcXHR2b2lkIF9faW9tZW0gKmFuX2NvbnRyb2wgPSBzcGNzLVxcdTAwM2ViYXNlICsgR01BQ19BTl9DVFJMKDApO1xcbitcXHR1MzIgY3RybDtcXG4rXFxuK1xcdGN0cmwgPSByZWFkbChhbl9jb250cm9sKTtcXG4rXFx0aWYgKGVuYWJsZSlcXG4rXFx0XFx0Y3RybCB8PSBHTUFDX0FOX0NUUkxfRUxFO1xcbitcXHRlbHNlXFxuK1xcdFxcdGN0cmwgXFx1MDAyNj0gfkdNQUNfQU5fQ1RSTF9FTEU7XFxuK1xcdHdyaXRlbChjdHJsLCBhbl9jb250cm9sKTtcXG4rXFxuK1xcdHJldHVybiAwO1xcbit9XFxuK1xcbiBzdGF0aWMgY29uc3Qgc3RydWN0IHBoeWxpbmtfcGNzX29wcyBkd21hY19pbnRlZ3JhdGVkX3Bjc19vcHMgPSB7XFxuIFxcdC5wY3NfaW5iYW5kX2NhcHMgPSBkd21hY19pbnRlZ3JhdGVkX3Bjc19pbmJhbmRfY2FwcyxcXG4gXFx0LnBjc19lbmFibGUgPSBkd21hY19pbnRlZ3JhdGVkX3Bjc19lbmFibGUsXFxuQEAgLTE3NSw2ICsxOTEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBoeWxpbmtfcGNzX29wcyBkd21hY19pbnRlZ3JhdGVkX3Bjc19vcHMgPSB7XFxuIFxcdC5wY3NfZ2V0X3N0YXRlID0gZHdtYWNfaW50ZWdyYXRlZF9wY3NfZ2V0X3N0YXRlLFxcbiBcXHQucGNzX2NvbmZpZyA9IGR3bWFjX2ludGVncmF0ZWRfcGNzX2NvbmZpZyxcXG4gXFx0LnBjc19hbl9yZXN0YXJ0ID0gZHdtYWNfaW50ZWdyYXRlZF9wY3NfYW5fcmVzdGFydCxcXG4rXFx0LnBjc19sb29wYmFjayA9IGR3bWFjX2ludGVncmF0ZWRfcGNzX2xvb3BiYWNrLFxcbiB9O1xcbiBcXG4gdm9pZCBzdG1tYWNfaW50ZWdyYXRlZF9wY3NfaXJxKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgdTMyIHN0YXR1cyxcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3NlbGZ0ZXN0cy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3NlbGZ0ZXN0cy5jXFxuaW5kZXggMjllODI0YmQ5MGNhNmIuLjc3YTQ1N2IyZmE1Y2Y3IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19zZWxmdGVzdHMuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19zZWxmdGVzdHMuY1xcbkBAIC0xOSw2ICsxOSw3IEBAXFxuICNpbmNsdWRlIFxcdTAwM2NuZXQvdWRwLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NuZXQvdGNfYWN0L3RjX2dhY3QuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFxcInN0bW1hYy5oXFxcIlxcbisjaW5jbHVkZSBcXFwic3RtbWFjX3Bjcy5oXFxcIlxcbiBcXG4gc3RydWN0IHN0bW1hY2hkciB7XFxuIFxcdF9fYmUzMiB2ZXJzaW9uO1xcbkBAIC0zNzQsMjMgKzM3NSw1MSBAQCBzdGF0aWMgaW50IHN0bW1hY190ZXN0X21hY19sb29wYmFjayhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuIFxcdHJldHVybiBfX3N0bW1hY190ZXN0X2xvb3BiYWNrKHByaXYsIFxcdTAwMjZhdHRyKTtcXG4gfVxcbiBcXG4rc3RhdGljIHN0cnVjdCBwaHlsaW5rX3BjcyAqc3RtbWFjX3NlbGZ0ZXN0X2dldF9wY3Moc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxcbit7XFxuK1xcdC8qIFRyeSBnbHVlIGRyaXZlcidzIFBDUyBmaXJzdCwgdGhlbiB0aGUgaW50ZWdyYXRlZCBQQ1MuICovXFxuK1xcdGlmIChwcml2LVxcdTAwM2Vody1cXHUwMDNlcGh5bGlua19wY3MpXFxuK1xcdFxcdHJldHVybiBwcml2LVxcdTAwM2Vody1cXHUwMDNlcGh5bGlua19wY3M7XFxuK1xcbitcXHRpZiAocHJpdi1cXHUwMDNlaW50ZWdyYXRlZF9wY3MpXFxuK1xcdFxcdHJldHVybiBcXHUwMDI2cHJpdi1cXHUwMDNlaW50ZWdyYXRlZF9wY3MtXFx1MDAzZXBjcztcXG4rXFxuK1xcdHJldHVybiBOVUxMO1xcbit9XFxuK1xcbiBzdGF0aWMgaW50IHN0bW1hY190ZXN0X3BoeV9sb29wYmFjayhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuIHtcXG4gXFx0c3RydWN0IHN0bW1hY19wYWNrZXRfYXR0cnMgYXR0ciA9IHsgfTtcXG4rXFx0c3RydWN0IHBoeWxpbmtfcGNzICpwY3M7XFxuIFxcdGludCByZXQ7XFxuIFxcbi1cXHRpZiAoIXByaXYtXFx1MDAzZWRldi1cXHUwMDNlcGh5ZGV2KVxcbi1cXHRcXHRyZXR1cm4gLUVPUE5PVFNVUFA7XFxuK1xcdGlmIChwcml2LVxcdTAwM2VkZXYtXFx1MDAzZXBoeWRldikge1xcbitcXHRcXHRyZXQgPSBwaHlfbG9vcGJhY2socHJpdi1cXHUwMDNlZGV2LVxcdTAwM2VwaHlkZXYsIHRydWUsIDApO1xcbitcXHRcXHRpZiAocmV0KVxcbitcXHRcXHRcXHRyZXR1cm4gcmV0O1xcbiBcXG4tXFx0cmV0ID0gcGh5X2xvb3BiYWNrKHByaXYtXFx1MDAzZWRldi1cXHUwMDNlcGh5ZGV2LCB0cnVlLCAwKTtcXG4tXFx0aWYgKHJldClcXG4rXFx0XFx0YXR0ci5kc3QgPSBwcml2LVxcdTAwM2VkZXYtXFx1MDAzZWRldl9hZGRyO1xcbitcXHRcXHRyZXQgPSBfX3N0bW1hY190ZXN0X2xvb3BiYWNrKHByaXYsIFxcdTAwMjZhdHRyKTtcXG4rXFxuK1xcdFxcdHBoeV9sb29wYmFjayhwcml2LVxcdTAwM2VkZXYtXFx1MDAzZXBoeWRldiwgZmFsc2UsIDApO1xcbiBcXHRcXHRyZXR1cm4gcmV0O1xcbitcXHR9XFxuIFxcbi1cXHRhdHRyLmRzdCA9IHByaXYtXFx1MDAzZWRldi1cXHUwMDNlZGV2X2FkZHI7XFxuLVxcdHJldCA9IF9fc3RtbWFjX3Rlc3RfbG9vcGJhY2socHJpdiwgXFx1MDAyNmF0dHIpO1xcbitcXHQvKiBVc2UgUENTIGxvb3BiYWNrIGZvciBpbnRlcmZhY2VzIHdpdGhvdXQgYW4gZXh0ZXJuYWwgUEhZLiAqL1xcbitcXHRwY3MgPSBzdG1tYWNfc2VsZnRlc3RfZ2V0X3Bjcyhwcml2KTtcXG4rXFx0aWYgKHBjcykge1xcbitcXHRcXHRyZXQgPSBwaHlsaW5rX3Bjc19sb29wYmFjayhwY3MsIHRydWUpO1xcbitcXHRcXHRpZiAocmV0KVxcbitcXHRcXHRcXHRyZXR1cm4gcmV0O1xcbiBcXG4tXFx0cGh5X2xvb3BiYWNrKHByaXYtXFx1MDAzZWRldi1cXHUwMDNlcGh5ZGV2LCBmYWxzZSwgMCk7XFxuLVxcdHJldHVybiByZXQ7XFxuK1xcdFxcdGF0dHIuZHN0ID0gcHJpdi1cXHUwMDNlZGV2LVxcdTAwM2VkZXZfYWRkcjtcXG4rXFx0XFx0cmV0ID0gX19zdG1tYWNfdGVzdF9sb29wYmFjayhwcml2LCBcXHUwMDI2YXR0cik7XFxuK1xcbitcXHRcXHRwaHlsaW5rX3Bjc19sb29wYmFjayhwY3MsIGZhbHNlKTtcXG4rXFx0XFx0cmV0dXJuIHJldDtcXG4rXFx0fVxcbitcXG4rXFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xcbiB9XFxuIFxcbiBzdGF0aWMgaW50IHN0bW1hY190ZXN0X21tYyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuQEAgLTE5ODYsNiArMjAxNSw5IEBAIHZvaWQgc3RtbWFjX3NlbGZ0ZXN0X3J1bihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbiBcXHRcXHRcXHRyZXQgPSAtRU9QTk9UU1VQUDtcXG4gXFx0XFx0XFx0aWYgKGRldi1cXHUwMDNlcGh5ZGV2KVxcbiBcXHRcXHRcXHRcXHRyZXQgPSBwaHlfbG9vcGJhY2soZGV2LVxcdTAwM2VwaHlkZXYsIHRydWUsIDApO1xcbitcXHRcXHRcXHRlbHNlXFxuK1xcdFxcdFxcdFxcdHJldCA9IHBoeWxpbmtfcGNzX2xvb3BiYWNrKHN0bW1hY19zZWxmdGVzdF9nZXRfcGNzKHByaXYpLFxcbitcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICB0cnVlKTtcXG4gXFx0XFx0XFx0aWYgKCFyZXQpXFxuIFxcdFxcdFxcdFxcdGJyZWFrO1xcbiBcXHRcXHRcXHRmYWxsdGhyb3VnaDtcXG5AQCAtMjAxOSw2ICsyMDUxLDkgQEAgdm9pZCBzdG1tYWNfc2VsZnRlc3RfcnVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuIFxcdFxcdFxcdHJldCA9IC1FT1BOT1RTVVBQO1xcbiBcXHRcXHRcXHRpZiAoZGV2LVxcdTAwM2VwaHlkZXYpXFxuIFxcdFxcdFxcdFxcdHJldCA9IHBoeV9sb29wYmFjayhkZXYtXFx1MDAzZXBoeWRldiwgZmFsc2UsIDApO1xcbitcXHRcXHRcXHRlbHNlXFxuK1xcdFxcdFxcdFxcdHJldCA9IHBoeWxpbmtfcGNzX2xvb3BiYWNrKHN0bW1hY19zZWxmdGVzdF9nZXRfcGNzKHByaXYpLFxcbitcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICBmYWxzZSk7XFxuIFxcdFxcdFxcdGlmICghcmV0KVxcbiBcXHRcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0XFx0ZmFsbHRocm91Z2g7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jXFxuaW5kZXggNTlkZmUzNWFmYTU0ZmMuLjY5MjQyY2FmZmFlZjUxIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmNcXG4rKysgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jXFxuQEAgLTk5Nyw2ICs5OTcsMjUgQEAgaW50IHBoeWxpbmtfcGNzX3ByZV9pbml0KHN0cnVjdCBwaHlsaW5rICpwbCwgc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpXFxuIH1cXG4gRVhQT1JUX1NZTUJPTF9HUEwocGh5bGlua19wY3NfcHJlX2luaXQpO1xcbiBcXG4rLyoqXFxuKyAqIHBoeWxpbmtfcGNzX2xvb3BiYWNrKCkgLSBFbmFibGUgb3IgZGlzYWJsZSBsb29wYmFjayBhdCB0aGUgUENTXFxuKyAqIEBwY3M6IGEgcG9pbnRlciB0byBhIFxcdTAwMjZzdHJ1Y3QgcGh5bGlua19wY3MuXFxuKyAqIEBlbmFibGU6IHRydWUgdG8gZW5hYmxlIGxvb3BiYWNrLCBmYWxzZSB0byBkaXNhYmxlXFxuKyAqXFxuKyAqIEVuYWJsZSBvciBkaXNhYmxlIGxvb3BiYWNrIG1vZGUgYXQgdGhlIFBDUyBsZXZlbC4gVGhpcyBpcyB1c2VkIGJ5IE1BQ1xcbisgKiBkcml2ZXJzIGZvciBzZWxmdGVzdCBwdXJwb3NlcyB3aGVuIG5vIGV4dGVybmFsIFBIWSBpcyBwcmVzZW50LlxcbisgKlxcbisgKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLlxcbisgKi9cXG4raW50IHBoeWxpbmtfcGNzX2xvb3BiYWNrKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCBib29sIGVuYWJsZSlcXG4re1xcbitcXHRpZiAocGNzIFxcdTAwMjZcXHUwMDI2IHBjcy1cXHUwMDNlb3BzLVxcdTAwM2VwY3NfbG9vcGJhY2spXFxuK1xcdFxcdHJldHVybiBwY3MtXFx1MDAzZW9wcy1cXHUwMDNlcGNzX2xvb3BiYWNrKHBjcywgZW5hYmxlKTtcXG4rXFxuK1xcdHJldHVybiAtRU9QTk9UU1VQUDtcXG4rfVxcbitFWFBPUlRfU1lNQk9MX0dQTChwaHlsaW5rX3Bjc19sb29wYmFjayk7XFxuK1xcbiBzdGF0aWMgdm9pZCBwaHlsaW5rX21hY19jb25maWcoc3RydWN0IHBoeWxpbmsgKnBsLFxcbiBcXHRcXHRcXHQgICAgICAgY29uc3Qgc3RydWN0IHBoeWxpbmtfbGlua19zdGF0ZSAqc3RhdGUpXFxuIHtcXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9waHlsaW5rLmggYi9pbmNsdWRlL2xpbnV4L3BoeWxpbmsuaFxcbmluZGV4IDJiYzBkYjNkNTJhYzhkLi42NmM3MDE2ZDRhY2RjYiAxMDA2NDRcXG4tLS0gYS9pbmNsdWRlL2xpbnV4L3BoeWxpbmsuaFxcbisrKyBiL2luY2x1ZGUvbGludXgvcGh5bGluay5oXFxuQEAgLTUxOCw2ICs1MTgsNyBAQCBzdHJ1Y3QgcGh5bGlua19wY3Mge1xcbiAgKlxcdFxcdCAgICB0aGUgTUFDLlxcbiAgKiBAcGNzX3ByZV9pbml0OiBjb25maWd1cmUgUENTIGNvbXBvbmVudHMgbmVjZXNzYXJ5IGZvciBNQUMgaGFyZHdhcmVcXG4gICogICAgICAgICAgICAgICAgaW5pdGlhbGl6YXRpb24gZS5nLiBSWCBjbG9jayBmb3Igc3RtbWFjLlxcbisgKiBAcGNzX2xvb3BiYWNrOiBlbmFibGUvZGlzYWJsZSBsb29wYmFjayBtb2RlIGF0IHRoZSBQQ1MuXFxuICAqL1xcbiBzdHJ1Y3QgcGh5bGlua19wY3Nfb3BzIHtcXG4gXFx0aW50ICgqcGNzX3ZhbGlkYXRlKShzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgdW5zaWduZWQgbG9uZyAqc3VwcG9ydGVkLFxcbkBAIC01NDIsNiArNTQzLDcgQEAgc3RydWN0IHBoeWxpbmtfcGNzX29wcyB7XFxuIFxcdHZvaWQgKCpwY3NfZGlzYWJsZV9lZWUpKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzKTtcXG4gXFx0dm9pZCAoKnBjc19lbmFibGVfZWVlKShzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcyk7XFxuIFxcdGludCAoKnBjc19wcmVfaW5pdCkoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpO1xcbitcXHRpbnQgKCpwY3NfbG9vcGJhY2spKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCBib29sIGVuYWJsZSk7XFxuIH07XFxuIFxcbiAjaWYgMCAvKiBGb3Iga2VybmVsLWRvYyBwdXJwb3NlcyBvbmx5LiAqL1xcbkBAIC03MTcsOCArNzE5LDIyIEBAIHZvaWQgcGNzX2VuYWJsZV9lZWUoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpO1xcbiAgKi9cXG4gaW50IHBjc19wcmVfaW5pdChzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcyk7XFxuIFxcbisvKipcXG4rICogcGNzX2xvb3BiYWNrKCkgLSBFbmFibGUgb3IgZGlzYWJsZSBsb29wYmFjayBhdCB0aGUgUENTXFxuKyAqIEBwY3M6IGEgcG9pbnRlciB0byBhIFxcdTAwMjZzdHJ1Y3QgcGh5bGlua19wY3MuXFxuKyAqIEBlbmFibGU6IHRydWUgdG8gZW5hYmxlIGxvb3BiYWNrLCBmYWxzZSB0byBkaXNhYmxlXFxuKyAqXFxuKyAqIEVuYWJsZSBvciBkaXNhYmxlIGxvb3BiYWNrIG1vZGUgYXQgdGhlIFBDUyBsZXZlbC4gVGhpcyBpcyB1c2VkIGJ5IE1BQ1xcbisgKiBkcml2ZXJzIGZvciBzZWxmdGVzdCBwdXJwb3NlcyB3aGVuIG5vIGV4dGVybmFsIFBIWSBpcyBwcmVzZW50LlxcbisgKlxcbisgKiBSZXR1cm5zIDAgb24gc3VjY2Vzcywgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuXFxuKyAqL1xcbitpbnQgcGNzX2xvb3BiYWNrKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCBib29sIGVuYWJsZSk7XFxuK1xcbiAjZW5kaWZcXG4gXFxuK2ludCBwaHlsaW5rX3Bjc19sb29wYmFjayhzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgYm9vbCBlbmFibGUpO1xcbitcXG4gc3RydWN0IHBoeWxpbmsgKnBoeWxpbmtfY3JlYXRlKHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqLFxcbiBcXHRcXHRcXHQgICAgICAgY29uc3Qgc3RydWN0IGZ3bm9kZV9oYW5kbGUgKixcXG4gXFx0XFx0XFx0ICAgICAgIHBoeV9pbnRlcmZhY2VfdCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjA6MDk6NDEuOTUzODczNjQ1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6ODU1OTQyNTcwOTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiU1RNTUFDX0VUSFwiLFxuICAgIFwiU1RNTUFDX1BDSVwiLFxuICAgIFwiU1RNTUFDX1NFTEZURVNUU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInBoeWxpbmtfcGNzX2xvb3BiYWNrXCIsXG4gICAgXCJzdG1tYWNfc2VsZnRlc3RfcnVuXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBsb29wYmFjayBzdXBwb3J0IHRvIHRoZSBzdG1tYWMgaW50ZWdyYXRlZCBQQ1MgYW5kIHBoeWxpbmssIHdoaWNoIGlzIHV0aWxpemVkIGJ5IHRoZSBzdG1tYWMgZXRodG9vbCBzZWxmdGVzdHMuIFRoaXMgY29kZSBpcyByZWFjaGFibGUgdmlhIHRoZSBTSU9DRVRIVE9PTCBpb2N0bCB3aXRoIHRoZSBFVEhUT09MX1RFU1QgY29tbWFuZC4gU3l6a2FsbGVyIGNhbiB0cmlnZ2VyIHRoaXMgYnkgaW5qZWN0aW5nIGEgdmlydHVhbCBQQ0kgc3RtbWFjIGRldmljZSB1c2luZyBzeXpfcGNpX2RldmljZV9hZGQgYW5kIGNhbGxpbmcgZXRodG9vbCBvbiB0aGUgcmVzdWx0aW5nIG5ldGRldi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZGVlMjhkN2FhMDA0MjgxZDNlMGFmMjNkOGVlYjAzNGU0ZDA2MGUwYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVsIDI3IDIwOjA5OjM4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3Bjcy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3Bjcy5jXG5pbmRleCBkZjM3YWY1YWI4MzdhZi4uOTBhMjFhMmY3ZTg3MzEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNzLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY3MuY1xuQEAgLTE2OCw2ICsxNjgsMjIgQEAgc3RhdGljIHZvaWQgZHdtYWNfaW50ZWdyYXRlZF9wY3NfYW5fcmVzdGFydChzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcylcbiBcdH1cbiB9XG4gXG4rc3RhdGljIGludCBkd21hY19pbnRlZ3JhdGVkX3Bjc19sb29wYmFjayhzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgYm9vbCBlbmFibGUpXG4re1xuK1x0c3RydWN0IHN0bW1hY19wY3MgKnNwY3MgPSBwaHlsaW5rX3Bjc190b19zdG1tYWNfcGNzKHBjcyk7XG4rXHR2b2lkIF9faW9tZW0gKmFuX2NvbnRyb2wgPSBzcGNzLVx1MDAzZWJhc2UgKyBHTUFDX0FOX0NUUkwoMCk7XG4rXHR1MzIgY3RybDtcbitcbitcdGN0cmwgPSByZWFkbChhbl9jb250cm9sKTtcbitcdGlmIChlbmFibGUpXG4rXHRcdGN0cmwgfD0gR01BQ19BTl9DVFJMX0VMRTtcbitcdGVsc2VcbitcdFx0Y3RybCBcdTAwMjY9IH5HTUFDX0FOX0NUUkxfRUxFO1xuK1x0d3JpdGVsKGN0cmwsIGFuX2NvbnRyb2wpO1xuK1xuK1x0cmV0dXJuIDA7XG4rfVxuK1xuIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5bGlua19wY3Nfb3BzIGR3bWFjX2ludGVncmF0ZWRfcGNzX29wcyA9IHtcbiBcdC5wY3NfaW5iYW5kX2NhcHMgPSBkd21hY19pbnRlZ3JhdGVkX3Bjc19pbmJhbmRfY2FwcyxcbiBcdC5wY3NfZW5hYmxlID0gZHdtYWNfaW50ZWdyYXRlZF9wY3NfZW5hYmxlLFxuQEAgLTE3NSw2ICsxOTEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBoeWxpbmtfcGNzX29wcyBkd21hY19pbnRlZ3JhdGVkX3Bjc19vcHMgPSB7XG4gXHQucGNzX2dldF9zdGF0ZSA9IGR3bWFjX2ludGVncmF0ZWRfcGNzX2dldF9zdGF0ZSxcbiBcdC5wY3NfY29uZmlnID0gZHdtYWNfaW50ZWdyYXRlZF9wY3NfY29uZmlnLFxuIFx0LnBjc19hbl9yZXN0YXJ0ID0gZHdtYWNfaW50ZWdyYXRlZF9wY3NfYW5fcmVzdGFydCxcbitcdC5wY3NfbG9vcGJhY2sgPSBkd21hY19pbnRlZ3JhdGVkX3Bjc19sb29wYmFjayxcbiB9O1xuIFxuIHZvaWQgc3RtbWFjX2ludGVncmF0ZWRfcGNzX2lycShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHUzMiBzdGF0dXMsXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3NlbGZ0ZXN0cy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3NlbGZ0ZXN0cy5jXG5pbmRleCAyOWU4MjRiZDkwY2E2Yi4uNzdhNDU3YjJmYTVjZjcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfc2VsZnRlc3RzLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19zZWxmdGVzdHMuY1xuQEAgLTE5LDYgKzE5LDcgQEBcbiAjaW5jbHVkZSBcdTAwM2NuZXQvdWRwLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NuZXQvdGNfYWN0L3RjX2dhY3QuaFx1MDAzZVxuICNpbmNsdWRlIFwic3RtbWFjLmhcIlxuKyNpbmNsdWRlIFwic3RtbWFjX3Bjcy5oXCJcbiBcbiBzdHJ1Y3Qgc3RtbWFjaGRyIHtcbiBcdF9fYmUzMiB2ZXJzaW9uO1xuQEAgLTM3NCwyMyArMzc1LDUxIEBAIHN0YXRpYyBpbnQgc3RtbWFjX3Rlc3RfbWFjX2xvb3BiYWNrKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbiBcdHJldHVybiBfX3N0bW1hY190ZXN0X2xvb3BiYWNrKHByaXYsIFx1MDAyNmF0dHIpO1xuIH1cbiBcbitzdGF0aWMgc3RydWN0IHBoeWxpbmtfcGNzICpzdG1tYWNfc2VsZnRlc3RfZ2V0X3BjcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG4re1xuK1x0LyogVHJ5IGdsdWUgZHJpdmVyJ3MgUENTIGZpcnN0LCB0aGVuIHRoZSBpbnRlZ3JhdGVkIFBDUy4gKi9cbitcdGlmIChwcml2LVx1MDAzZWh3LVx1MDAzZXBoeWxpbmtfcGNzKVxuK1x0XHRyZXR1cm4gcHJpdi1cdTAwM2Vody1cdTAwM2VwaHlsaW5rX3BjcztcbitcbitcdGlmIChwcml2LVx1MDAzZWludGVncmF0ZWRfcGNzKVxuK1x0XHRyZXR1cm4gXHUwMDI2cHJpdi1cdTAwM2VpbnRlZ3JhdGVkX3Bjcy1cdTAwM2VwY3M7XG4rXG4rXHRyZXR1cm4gTlVMTDtcbit9XG4rXG4gc3RhdGljIGludCBzdG1tYWNfdGVzdF9waHlfbG9vcGJhY2soc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuIHtcbiBcdHN0cnVjdCBzdG1tYWNfcGFja2V0X2F0dHJzIGF0dHIgPSB7IH07XG4rXHRzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcztcbiBcdGludCByZXQ7XG4gXG4tXHRpZiAoIXByaXYtXHUwMDNlZGV2LVx1MDAzZXBoeWRldilcbi1cdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuK1x0aWYgKHByaXYtXHUwMDNlZGV2LVx1MDAzZXBoeWRldikge1xuK1x0XHRyZXQgPSBwaHlfbG9vcGJhY2socHJpdi1cdTAwM2VkZXYtXHUwMDNlcGh5ZGV2LCB0cnVlLCAwKTtcbitcdFx0aWYgKHJldClcbitcdFx0XHRyZXR1cm4gcmV0O1xuIFxuLVx0cmV0ID0gcGh5X2xvb3BiYWNrKHByaXYtXHUwMDNlZGV2LVx1MDAzZXBoeWRldiwgdHJ1ZSwgMCk7XG4tXHRpZiAocmV0KVxuK1x0XHRhdHRyLmRzdCA9IHByaXYtXHUwMDNlZGV2LVx1MDAzZWRldl9hZGRyO1xuK1x0XHRyZXQgPSBfX3N0bW1hY190ZXN0X2xvb3BiYWNrKHByaXYsIFx1MDAyNmF0dHIpO1xuK1xuK1x0XHRwaHlfbG9vcGJhY2socHJpdi1cdTAwM2VkZXYtXHUwMDNlcGh5ZGV2LCBmYWxzZSwgMCk7XG4gXHRcdHJldHVybiByZXQ7XG4rXHR9XG4gXG4tXHRhdHRyLmRzdCA9IHByaXYtXHUwMDNlZGV2LVx1MDAzZWRldl9hZGRyO1xuLVx0cmV0ID0gX19zdG1tYWNfdGVzdF9sb29wYmFjayhwcml2LCBcdTAwMjZhdHRyKTtcbitcdC8qIFVzZSBQQ1MgbG9vcGJhY2sgZm9yIGludGVyZmFjZXMgd2l0aG91dCBhbiBleHRlcm5hbCBQSFkuICovXG4rXHRwY3MgPSBzdG1tYWNfc2VsZnRlc3RfZ2V0X3Bjcyhwcml2KTtcbitcdGlmIChwY3MpIHtcbitcdFx0cmV0ID0gcGh5bGlua19wY3NfbG9vcGJhY2socGNzLCB0cnVlKTtcbitcdFx0aWYgKHJldClcbitcdFx0XHRyZXR1cm4gcmV0O1xuIFxuLVx0cGh5X2xvb3BiYWNrKHByaXYtXHUwMDNlZGV2LVx1MDAzZXBoeWRldiwgZmFsc2UsIDApO1xuLVx0cmV0dXJuIHJldDtcbitcdFx0YXR0ci5kc3QgPSBwcml2LVx1MDAzZWRldi1cdTAwM2VkZXZfYWRkcjtcbitcdFx0cmV0ID0gX19zdG1tYWNfdGVzdF9sb29wYmFjayhwcml2LCBcdTAwMjZhdHRyKTtcbitcbitcdFx0cGh5bGlua19wY3NfbG9vcGJhY2socGNzLCBmYWxzZSk7XG4rXHRcdHJldHVybiByZXQ7XG4rXHR9XG4rXG4rXHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4gfVxuIFxuIHN0YXRpYyBpbnQgc3RtbWFjX3Rlc3RfbW1jKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbkBAIC0xOTg2LDYgKzIwMTUsOSBAQCB2b2lkIHN0bW1hY19zZWxmdGVzdF9ydW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbiBcdFx0XHRyZXQgPSAtRU9QTk9UU1VQUDtcbiBcdFx0XHRpZiAoZGV2LVx1MDAzZXBoeWRldilcbiBcdFx0XHRcdHJldCA9IHBoeV9sb29wYmFjayhkZXYtXHUwMDNlcGh5ZGV2LCB0cnVlLCAwKTtcbitcdFx0XHRlbHNlXG4rXHRcdFx0XHRyZXQgPSBwaHlsaW5rX3Bjc19sb29wYmFjayhzdG1tYWNfc2VsZnRlc3RfZ2V0X3Bjcyhwcml2KSxcbitcdFx0XHRcdFx0XHRcdCAgIHRydWUpO1xuIFx0XHRcdGlmICghcmV0KVxuIFx0XHRcdFx0YnJlYWs7XG4gXHRcdFx0ZmFsbHRocm91Z2g7XG5AQCAtMjAxOSw2ICsyMDUxLDkgQEAgdm9pZCBzdG1tYWNfc2VsZnRlc3RfcnVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXHRcdFx0cmV0ID0gLUVPUE5PVFNVUFA7XG4gXHRcdFx0aWYgKGRldi1cdTAwM2VwaHlkZXYpXG4gXHRcdFx0XHRyZXQgPSBwaHlfbG9vcGJhY2soZGV2LVx1MDAzZXBoeWRldiwgZmFsc2UsIDApO1xuK1x0XHRcdGVsc2VcbitcdFx0XHRcdHJldCA9IHBoeWxpbmtfcGNzX2xvb3BiYWNrKHN0bW1hY19zZWxmdGVzdF9nZXRfcGNzKHByaXYpLFxuK1x0XHRcdFx0XHRcdFx0ICAgZmFsc2UpO1xuIFx0XHRcdGlmICghcmV0KVxuIFx0XHRcdFx0YnJlYWs7XG4gXHRcdFx0ZmFsbHRocm91Z2g7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYyBiL2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmNcbmluZGV4IDU5ZGZlMzVhZmE1NGZjLi42OTI0MmNhZmZhZWY1MSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmNcbisrKyBiL2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmNcbkBAIC05OTcsNiArOTk3LDI1IEBAIGludCBwaHlsaW5rX3Bjc19wcmVfaW5pdChzdHJ1Y3QgcGh5bGluayAqcGwsIHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzKVxuIH1cbiBFWFBPUlRfU1lNQk9MX0dQTChwaHlsaW5rX3Bjc19wcmVfaW5pdCk7XG4gXG4rLyoqXG4rICogcGh5bGlua19wY3NfbG9vcGJhY2soKSAtIEVuYWJsZSBvciBkaXNhYmxlIGxvb3BiYWNrIGF0IHRoZSBQQ1NcbisgKiBAcGNzOiBhIHBvaW50ZXIgdG8gYSBcdTAwMjZzdHJ1Y3QgcGh5bGlua19wY3MuXG4rICogQGVuYWJsZTogdHJ1ZSB0byBlbmFibGUgbG9vcGJhY2ssIGZhbHNlIHRvIGRpc2FibGVcbisgKlxuKyAqIEVuYWJsZSBvciBkaXNhYmxlIGxvb3BiYWNrIG1vZGUgYXQgdGhlIFBDUyBsZXZlbC4gVGhpcyBpcyB1c2VkIGJ5IE1BQ1xuKyAqIGRyaXZlcnMgZm9yIHNlbGZ0ZXN0IHB1cnBvc2VzIHdoZW4gbm8gZXh0ZXJuYWwgUEhZIGlzIHByZXNlbnQuXG4rICpcbisgKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLlxuKyAqL1xuK2ludCBwaHlsaW5rX3Bjc19sb29wYmFjayhzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgYm9vbCBlbmFibGUpXG4re1xuK1x0aWYgKHBjcyBcdTAwMjZcdTAwMjYgcGNzLVx1MDAzZW9wcy1cdTAwM2VwY3NfbG9vcGJhY2spXG4rXHRcdHJldHVybiBwY3MtXHUwMDNlb3BzLVx1MDAzZXBjc19sb29wYmFjayhwY3MsIGVuYWJsZSk7XG4rXG4rXHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4rfVxuK0VYUE9SVF9TWU1CT0xfR1BMKHBoeWxpbmtfcGNzX2xvb3BiYWNrKTtcbitcbiBzdGF0aWMgdm9pZCBwaHlsaW5rX21hY19jb25maWcoc3RydWN0IHBoeWxpbmsgKnBsLFxuIFx0XHRcdCAgICAgICBjb25zdCBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSlcbiB7XG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9waHlsaW5rLmggYi9pbmNsdWRlL2xpbnV4L3BoeWxpbmsuaFxuaW5kZXggMmJjMGRiM2Q1MmFjOGQuLjY2YzcwMTZkNGFjZGNiIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9waHlsaW5rLmhcbisrKyBiL2luY2x1ZGUvbGludXgvcGh5bGluay5oXG5AQCAtNTE4LDYgKzUxOCw3IEBAIHN0cnVjdCBwaHlsaW5rX3BjcyB7XG4gICpcdFx0ICAgIHRoZSBNQUMuXG4gICogQHBjc19wcmVfaW5pdDogY29uZmlndXJlIFBDUyBjb21wb25lbnRzIG5lY2Vzc2FyeSBmb3IgTUFDIGhhcmR3YXJlXG4gICogICAgICAgICAgICAgICAgaW5pdGlhbGl6YXRpb24gZS5nLiBSWCBjbG9jayBmb3Igc3RtbWFjLlxuKyAqIEBwY3NfbG9vcGJhY2s6IGVuYWJsZS9kaXNhYmxlIGxvb3BiYWNrIG1vZGUgYXQgdGhlIFBDUy5cbiAgKi9cbiBzdHJ1Y3QgcGh5bGlua19wY3Nfb3BzIHtcbiBcdGludCAoKnBjc192YWxpZGF0ZSkoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MsIHVuc2lnbmVkIGxvbmcgKnN1cHBvcnRlZCxcbkBAIC01NDIsNiArNTQzLDcgQEAgc3RydWN0IHBoeWxpbmtfcGNzX29wcyB7XG4gXHR2b2lkICgqcGNzX2Rpc2FibGVfZWVlKShzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcyk7XG4gXHR2b2lkICgqcGNzX2VuYWJsZV9lZWUpKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzKTtcbiBcdGludCAoKnBjc19wcmVfaW5pdCkoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpO1xuK1x0aW50ICgqcGNzX2xvb3BiYWNrKShzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgYm9vbCBlbmFibGUpO1xuIH07XG4gXG4gI2lmIDAgLyogRm9yIGtlcm5lbC1kb2MgcHVycG9zZXMgb25seS4gKi9cbkBAIC03MTcsOCArNzE5LDIyIEBAIHZvaWQgcGNzX2VuYWJsZV9lZWUoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpO1xuICAqL1xuIGludCBwY3NfcHJlX2luaXQoc3RydWN0IHBoeWxpbmtfcGNzICpwY3MpO1xuIFxuKy8qKlxuKyAqIHBjc19sb29wYmFjaygpIC0gRW5hYmxlIG9yIGRpc2FibGUgbG9vcGJhY2sgYXQgdGhlIFBDU1xuKyAqIEBwY3M6IGEgcG9pbnRlciB0byBhIFx1MDAyNnN0cnVjdCBwaHlsaW5rX3Bjcy5cbisgKiBAZW5hYmxlOiB0cnVlIHRvIGVuYWJsZSBsb29wYmFjaywgZmFsc2UgdG8gZGlzYWJsZVxuKyAqXG4rICogRW5hYmxlIG9yIGRpc2FibGUgbG9vcGJhY2sgbW9kZSBhdCB0aGUgUENTIGxldmVsLiBUaGlzIGlzIHVzZWQgYnkgTUFDXG4rICogZHJpdmVycyBmb3Igc2VsZnRlc3QgcHVycG9zZXMgd2hlbiBubyBleHRlcm5hbCBQSFkgaXMgcHJlc2VudC5cbisgKlxuKyAqIFJldHVybnMgMCBvbiBzdWNjZXNzLCBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS5cbisgKi9cbitpbnQgcGNzX2xvb3BiYWNrKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCBib29sIGVuYWJsZSk7XG4rXG4gI2VuZGlmXG4gXG4raW50IHBoeWxpbmtfcGNzX2xvb3BiYWNrKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCBib29sIGVuYWJsZSk7XG4rXG4gc3RydWN0IHBoeWxpbmsgKnBoeWxpbmtfY3JlYXRlKHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqLFxuIFx0XHRcdCAgICAgICBjb25zdCBzdHJ1Y3QgZndub2RlX2hhbmRsZSAqLFxuIFx0XHRcdCAgICAgICBwaHlfaW50ZXJmYWNlX3QsXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMDowOTo0MS45NTM4ODAwOTVaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5ODMzMjg1NzYzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgVmlhYmlsaXR5IG9mIFNUTU1BQyBMb29wYmFjayBTdXBwb3J0IGluIGEgVmlydHVhbGl6ZWQgQ29udGV4dCoqXG5cbk9rYXksIHNvIHdlJ3ZlIGdvdCBhIHBhdGNoIGhlcmUgdGhhdCBhZGRzIGxvb3BiYWNrIHN1cHBvcnQgdG8gdGhlIGBzdG1tYWNgIFBDUyBkcml2ZXIgYW5kIHBoeWxpbmssIHRvdWNoaW5nIGEgZmV3IGtleSBmaWxlczogYHN0bW1hY19wY3MuY2AsIGBzdG1tYWNfc2VsZnRlc3RzLmNgLCBgcGh5bGluay5jYCwgYW5kIGBwaHlsaW5rLmhgLiBUaGlzIGlzIGludGVyZXN0aW5nIGJlY2F1c2UgdGhlIGBzdG1tYWNgIGRyaXZlciBoYW5kbGVzIFNUTWljcm9lbGVjdHJvbmljcycgRXRoZXJuZXQgTUFDcy4gTXkgaW1tZWRpYXRlIHF1ZXN0aW9uLCBnaXZlbiB0aGF0IEknbSB3b3JraW5nIGluIGEgcG90ZW50aWFsbHkgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIGlzOiBDYW4gSSBhY3R1YWxseSAqcmVhY2gqIHRoaXMgZnVuY3Rpb25hbGl0eT9cblxuVHlwaWNhbGx5LCBgc3RtbWFjYCBpcyBhIHBsYXRmb3JtIGRyaXZlciwgdGlnaHRseSBjb3VwbGVkIHdpdGggc3BlY2lmaWMgU29DcyDigJMgQVJNLCBJbnRlbCBFbGtoYXJ0IExha2UsIHRoYXQgc29ydCBvZiB0aGluZy4gQnV0IHRoZXJlJ3MgdGhhdCBQQ0kgd3JhcHBlciwgYHN0bW1hY19wY2kuY2AsIHdoaWNoIHN1cHBvcnRzIHNvbWUgSW50ZWwgYW5kIEFNRCBjaGlwcy4gU28sIGlzIHRoZXJlIGFueSBwb3NzaWJpbGl0eSB0aGF0IFFFTVUsIG15IHZpcnR1YWxpemF0aW9uIHRvb2wgb2YgY2hvaWNlLCBlbXVsYXRlcyBvbmUgb2YgdGhlc2UgUENJIGRldmljZXM/IEEgcXVpY2sgY2hlY2sgc2hvd3MgUUVNVSBzdXBwb3J0cyB0aGUgbGlrZXMgb2YgYGUxMDAwYCwgYGUxMDAwZWAsIGBydGw4MTM5YCwgZXRjLiwgYnV0IG5vdGhpbmcgZGlyZWN0bHkgbGFiZWxlZCBgc3RtbWFjYC5cblxuSG1tLCBpcyB0aGVyZSBldmVuIGEgcGxhdGZvcm0gKndpdGgqIGBzdG1tYWNgIHRoYXQgUUVNVSBtaWdodCBlbXVsYXRlPyBMZXQncyBzZWUuLi4gQWxsd2lubmVyLCBpLk1YLCBOUENNLCBDYWRlbmNlLCBGVEdNQUMsIExBTjkxMTgsIFNNQzkxYzExMSwgU3RlbGxhcmlzLCBYR01BQy4uLiB3YWl0LCBYR01BQyAqaXMqIGEgU3lub3BzeXMgRGVzaWduV2FyZSBNQUMsIGJ1dCBpdCdzIDEwRywgYW5kIGBzdG1tYWNgIGlzIGZvciAxMC8xMDAvMTAwMC4gTm90IHF1aXRlIHRoZSBzYW1lIHRoaW5nLlxuXG5TbywgcmVhbGlzdGljYWxseSwgaXMgYHN0bW1hY2AgKnByb2JlYWJsZSogaW4gUUVNVT8gSSBrbm93IHRoYXQsIG5vcm1hbGx5LCBgc3RtbWFjYCBpc24ndCBhIHRhcmdldCBmb3IgZnV6emluZyB3aXRoIHN5emthbGxlciBiZWNhdXNlIGl0IG5lZWRzIHNwZWNpZmljIGhhcmR3YXJlIHRoYXQgUUVNVSBkb2Vzbid0IG9mZmVyLiBCdXQgd2FpdCwgZGlkIHN5emthbGxlciBldmVuIHN1cHBvcnQgYHN0bW1hY2A/IE5vLCBpdCBsb29rcyBsaWtlIHN5emthbGxlciBzdGlja3MgdG8gbW9yZSBzdGFuZGFyZCBzdHVmZiBsaWtlIGB0dW5gLCBgdmV0aGAsIGB2aXJ0aW9gLCBgZTEwMDBgIGFuZCBzbyBvbiwgd2hpY2ggYXJlIGFsbCBlYXNpbHkgcmVwcm9kdWNlZC5cblxuTXkgY29uY2x1c2lvbiBpcyBpdCdzIHVubGlrZWx5IHRoaXMgbG9vcGJhY2sgc3VwcG9ydCBpcyBnb2luZyB0byBiZSBlYXNpbHkgdGVzdGFibGUgaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50LiBUaGlzIGlzIHNvbWV0aGluZyB0aGF0IG5lZWRzIGEgdGFyZ2V0ZWQsIGhhcmR3YXJlLXNwZWNpZmljIHNldHVwLiBUaGUgcXVlc3Rpb24gbm93IGJlY29tZXM6IGhvdyBkbyBJIHZlcmlmeSB0aGlzIGZ1bmN0aW9uYWxpdHkgd2l0aG91dCB0aGF0PyBJcyB0aGVyZSBhIHRlc3QgYmVuY2ggdGhhdCB1c2VzIHRoZSBgc3RtbWFjYCBkcml2ZXIgdGhhdCBJIGNvdWxkIGxvb2sgYXQsIHRvIHRyeSB0byB1bmRlcnN0YW5kIGlmIHRoZXJlIGlzIGEgd29ya2Fyb3VuZD9cblxuXG4iLCJJbnB1dFRva2VucyI6NDQ2NiwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY5OSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIwOjA5OjUxLjc4NzE2ODc3OFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjI0NzkzMzUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RtbWFjXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDExNjI3IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI5PWNvbmZpZyBTVE1NQUNfUExBVEZPUk1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzMtXFx0aGVscFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzQ6XFx0ICBUaGlzIHNlbGVjdHMgdGhlIHBsYXRmb3JtIHNwZWNpZmljIGJ1cyBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRyaXZlci5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1LVxcdCAgVGhpcyBpcyB0aGUgZHJpdmVyIHVzZWQgb24gc2V2ZXJhbCBTb0NzOlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz02MD1jb25maWcgRFdNQUNfQU5BUklPTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy02Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjY3OlxcdCAgVGhpcyBzZWxlY3RzIHRoZSBBbmFyaW9uIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNjgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTc4PWNvbmZpZyBEV01BQ19JTkdFTklDXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6ODY6XFx0ICBUaGlzIHNlbGVjdHMgSW5nZW5pYyBTb0NzIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctODctXFx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIG9uIGZvciB0aGUgSW5nZW5pYyBTb0NzXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTkwPWNvbmZpZyBEV01BQ19JUFE4MDZYXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTk3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6OTg6XFx0ICBUaGlzIHNlbGVjdHMgdGhlIElQUTgwNnggU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctOTktXFx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBkb2VzIG5vdCB1c2UgYW55IG9mIHRoZSBoYXJkd2FyZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xMTQ9Y29uZmlnIERXTUFDX01FRElBVEVLXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTExOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjEyMDpcXHQgIFRoaXMgc2VsZWN0cyB0aGUgTVQyNzEyIFNvQyBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRyaXZlci5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTEyMj1jb25maWcgRFdNQUNfTUVTT05cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTI5LVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBBbWxvZ2ljIE1lc29uIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMzA6XFx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIE1lc29uNixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEzMS1cXHQgIE1lc29uOCwgTWVzb244YiBhbmQgR1hCQiBTb0NzLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xMzM9Y29uZmlnIERXTUFDX05VVk9UT05cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTQxLVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBOdXZvdG9uIE1BMzUgc2VyaWVzIFNvQyBnbHVlIGxheWVyIHN1cHBvcnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE0MjpcXHQgIGZvciB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoZSBudXZvdG9uLWR3bWFjIGRyaXZlciBpc1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTQzLVxcdCAgdXNlZCBmb3IgTUEzNSBzZXJpZXMgU29Dcy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTQ1PWNvbmZpZyBEV01BQ19RQ09NX0VUSFFPU1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNTItXFx0ICBUaGlzIHNlbGVjdHMgdGhlIFF1YWxjb21tIEVUSFFPUyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTUzOlxcdCAgc3RtbWFjIGRldmljZSBkcml2ZXIuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNTU9Y29uZmlnIERXTUFDX1JFTkVTQVNfR0JFVEhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTYzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTY0OlxcdCAgVGhpcyBzZWxlY3RzIFJlbmVzYXMgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkZXZpY2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE2NS1cXHQgIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlIFJaL1YySChQKSBmYW1pbHksIFJaL1QySCBhbmRcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTY4PWNvbmZpZyBEV01BQ19ST0NLQ0hJUFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNzYtXFx0ICBUaGlzIHNlbGVjdHMgdGhlIFJvY2tjaGlwIFJLMzI4OCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTc3OlxcdCAgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTc4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTc5PWNvbmZpZyBEV01BQ19SWk4xXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE4Ny1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgUmVuZXNhcyBSWi9OMSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTg4OlxcdCAgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIHN1cHBvcnQgY2FuIG1ha2UgdXNlIG9mIGEgY3VzdG9tIE1JSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTg5LVxcdCAgY29udmVydGVyIFBDUyBkZXZpY2UuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE5MT1jb25maWcgRFdNQUNfUzMyXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE5ODpcXHQgIFRoaXMgc2VsZWN0cyBOWFAgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTk5LVxcdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlIFMzMkNDIHNlcmllc1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yMDM9Y29uZmlnIERXTUFDX1NPQ0ZQR0FcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjE0LVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBBbHRlcmEgU09DRlBHQSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMTU6XFx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjE2LVxcdCAgYXJyaWE1IGFuZCBjeWNsb25lNSBGUEdBIFNvQ3MuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTIxOD1jb25maWcgRFdNQUNfU09QSEdPXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIyNS1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgU29waGdvIFNvQyBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIyNjpcXHQgIGZvciB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjI3LVxcdCAgZXRoZXJuZXQgY29udHJvbGxlcnMgb24gdmFyaW91cyBTb3BoZ28gU29Dcy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjI5PWNvbmZpZyBEV01BQ19TUEFDRU1JVFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMzctXFx0ICBUaGlzIHNlbGVjdHMgdGhlIFNwYWNlbWl0IHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjM4OlxcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMzktXFx0ICBTcGFjZW1pdCBLMyBldGhlcm5ldCBjb250cm9sbGVycy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjQxPWNvbmZpZyBEV01BQ19TVEFSRklWRVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNDktXFx0ICBUaGlzIHNlbGVjdHMgdGhlIFN0YXJGaXZlIHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjUwOlxcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNTEtXFx0ICBTdGFyRml2ZSBKSDcxMDAgYW5kIEpINzExMCBldGhlcm5ldCBjb250cm9sbGVycy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjUzPWNvbmZpZyBEV01BQ19TVElcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjYwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjYxOlxcdCAgVGhpcyBzZWxlY3RzIFNUaSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNjItXFx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIG9uIGZvciB0aGUgU1RpIHNlcmllc1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yNjU9Y29uZmlnIERXTUFDX1NUTTMyXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI3MzpcXHQgIFRoaXMgc2VsZWN0cyBTVE0zMiBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNzQtXFx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIG9uIGZvciB0aGUgU1RNMzIgc2VyaWVzXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI3Nz1jb25maWcgRFdNQUNfU1VOWElcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjg0LVxcdCAgVGhpcyBzZWxlY3RzIEFsbHdpbm5lciBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI4NTpcXHQgIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBBMjAvQTMxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yODYtXFx0ICBHTUFDIGV0aGVybmV0IGNvbnRyb2xsZXIuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI4OD1jb25maWcgRFdNQUNfU1VOOElcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjk2LVxcdCAgVGhpcyBzZWxlY3RzIEFsbHdpbm5lciBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI5NzpcXHQgIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBIMy9BODNUL0E2NFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjk4LVxcdCAgRU1BQyBldGhlcm5ldCBjb250cm9sbGVyLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMDA9Y29uZmlnIERXTUFDX1NVTjU1SVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMDgtXFx0ICBUaGlzIHNlbGVjdHMgQWxsd2lubmVyIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzA5OlxcdCAgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIEE1MjMvVDUyN1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzEwLVxcdCAgR01BQzIwMCBldGhlcm5ldCBjb250cm9sbGVyLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMTI9Y29uZmlnIERXTUFDX1RIRUFEXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMxOC1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgVC1IRUFEIHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMxOTpcXHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgVC1IRUFEIFRIMTUyMFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzIwLVxcdCAgZXRoZXJuZXQgY29udHJvbGxlci5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzIyPWNvbmZpZyBEV01BQ19JTVg4XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMyOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMzMDpcXHQgIFRoaXMgc2VsZWN0cyBOWFAgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzMxLVxcdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgaS5NWDggc2VyaWVzIGxpa2VcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzM0PWNvbmZpZyBEV01BQ19JTlRFTF9QTEFUXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM0MC1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgSW50ZWwgcGxhdGZvcm0gc3BlY2lmaWMgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzQxOlxcdCAgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGUgSW50ZWwgS2VlbSBCYXlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM0Mi1cXHQgIFNvQy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzQ0PWNvbmZpZyBEV01BQ19MT09OR1NPTjFcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzUxOlxcdCAgVGhpcyBzZWxlY3RzIExvb25nc29uMSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNTItXFx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBMb29uZ3NvbjEtYmFzZWQgYm9hcmRzXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM1NT1jb25maWcgRFdNQUNfVEVHUkFcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzYwLVxcdCAgZm91bmQgb24gdGhlIE5WSURJQSBUZWdyYSBTb0MgZGV2aWNlcy4gVGhpcyBkcml2ZXIgcHJvdmlkZXMgdGhlIGdsdWVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM2MTpcXHQgIGxheWVyIG9uIHRvcCBvZiB0aGUgc3RtbWFjIGRyaXZlciByZXF1aXJlZCBmb3IgdGhlc2UgTlZJRElBIFRlZ3JhIFNvQ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzYyLVxcdCAgZGV2aWNlcy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzczPWNvbmZpZyBTVE1NQUNfTElCUENJXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3NS1cXHRoZWxwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNzY6XFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSBQQ0kgYnVzIGhlbHBlcnMgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzc3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mzc4PWNvbmZpZyBEV01BQ19JTlRFTFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zODUtXFx0ICBUaGlzIHNlbGVjdHMgdGhlIEludGVsIHBsYXRmb3JtIHNwZWNpZmljIGJ1cyBzdXBwb3J0IGZvciB0aGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM4NjpcXHQgIHN0bW1hYyBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIEludGVsIFF1YXJrL0VITC9UR0wuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zODctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zODg9Y29uZmlnIERXTUFDX0xPT05HU09OXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM5NC1cXHRoZWxwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozOTU6XFx0ICBUaGlzIHNlbGVjdHMgdGhlIExPT05HU09OIFBDSSBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTYtXFx0ICBTdXBwb3J0IGZvciBldGhlcm5ldCBjb250cm9sbGVyIG9uIExvb25nc29uLTJLMTAwMCBTb0MgYW5kIExTN0ExMDAwIGJyaWRnZS5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9NDA3PWNvbmZpZyBTVE1NQUNfUENJXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQxMi1cXHRoZWxwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo0MTM6XFx0ICBUaGlzIHNlbGVjdHMgdGhlIHBsYXRmb3JtIHNwZWNpZmljIGJ1cyBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRyaXZlci5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQxNC1cXHQgIFRoaXMgZHJpdmVyIHdhcyB0ZXN0ZWQgb24gWExJTlggWEMyVjMwMDAgRkYxMTUyQU1UMDIyMVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfU1RNTUFDX0VUSCkgKz0gc3RtbWFjLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTozOnN0bW1hYy1vYmpzOj0gc3RtbWFjX21haW4ubyBzdG1tYWNfZXRodG9vbC5vIHN0bW1hY19tZGlvLm8gcmluZ19tb2RlLm9cXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNC1cXHQgICAgICBjaGFpbl9tb2RlLm8gZHdtYWNfbGliLm8gZHdtYWMxMDAwX2NvcmUubyBkd21hYzEwMDBfZG1hLm9cXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNS1cXHQgICAgICBkd21hYzEwMF9jb3JlLm8gZHdtYWMxMDBfZG1hLm8gZW5oX2Rlc2MubyBub3JtX2Rlc2Mub1xcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo2OlxcdCAgICAgIG1tY19jb3JlLm8gc3RtbWFjX2h3dHN0YW1wLm8gc3RtbWFjX3B0cC5vIGR3bWFjNF9kZXNjcy5vXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTctXFx0ICAgICAgZHdtYWM0X2RtYS5vIGR3bWFjNF9saWIubyBkd21hYzRfY29yZS5vIGR3bWFjNS5vIGh3aWYubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6ODpcXHQgICAgICBzdG1tYWNfdGMubyBkd3hnbWFjMl9jb3JlLm8gZHd4Z21hYzJfZG1hLm8gZHd4Z21hYzJfZGVzY3MubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6OTpcXHQgICAgICBzdG1tYWNfeGRwLm8gc3RtbWFjX2VzdC5vIHN0bW1hY19mcGUubyBzdG1tYWNfdmxhbi5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToxMDpcXHQgICAgICBzdG1tYWNfcGNzLm8gJChzdG1tYWMteSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0xMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToxMjpzdG1tYWMtJChDT05GSUdfU1RNTUFDX1NFTEZURVNUUykgKz0gc3RtbWFjX3NlbGZ0ZXN0cy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMTQtIyBPcmRlcmluZyBtYXR0ZXJzLiBHZW5lcmljIGRyaXZlciBtdXN0IGJlIGxhc3QuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTU6b2JqLSQoQ09ORklHX1NUTU1BQ19QTEFURk9STSlcXHQrPSBzdG1tYWMtcGxhdGZvcm0ub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTE2LW9iai0kKENPTkZJR19EV01BQ19BTkFSSU9OKVxcdCs9IGR3bWFjLWFuYXJpb24ub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU9NDU9b2JqLSQoQ09ORklHX0RXTUFDX1ZJU0NPTlRJKVxcdCs9IGR3bWFjLXZpc2NvbnRpLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo0NjpzdG1tYWMtcGxhdGZvcm0tb2Jqczo9IHN0bW1hY19wbGF0Zm9ybS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNDctZHdtYWMtYWx0ci1zb2NmcGdhLW9ianMgOj0gZHdtYWMtc29jZnBnYS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NDk6b2JqLSQoQ09ORklHX1NUTU1BQ19MSUJQQ0kpXFx0Kz0gc3RtbWFjX2xpYnBjaS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTA6b2JqLSQoQ09ORklHX1NUTU1BQ19QQ0kpXFx0Kz0gc3RtbWFjLXBjaS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNTEtb2JqLSQoQ09ORklHX0RXTUFDX0lOVEVMKVxcdCs9IGR3bWFjLWludGVsLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTUzPW9iai0kKENPTkZJR19EV01BQ19NT1RPUkNPTU0pXFx0Kz0gZHdtYWMtbW90b3Jjb21tLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo1NDpzdG1tYWMtcGNpLW9ianM6PSBzdG1tYWNfcGNpLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MTU6I2luY2x1ZGUgXFxcInN0bW1hYy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MTc6c3RhdGljIGludCBqdW1ib19mcm0oc3RydWN0IHN0bW1hY190eF9xdWV1ZSAqdHhfcSwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTgtXFx0XFx0ICAgICBpbnQgY3N1bSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0yMC1cXHR1bnNpZ25lZCBpbnQgbm9wYWdlZF9sZW4gPSBza2JfaGVhZGxlbihza2IpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoyMTpcXHRzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYgPSB0eF9xLVxcdTAwM2Vwcml2X2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTIyLVxcdHVuc2lnbmVkIGludCBlbnRyeSA9IHR4X3EtXFx1MDAzZWN1cl90eDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy00NC1cXHQvKiBkbyBub3QgY2xvc2UgdGhlIGRlc2NyaXB0b3IgYW5kIGRvIG5vdCBzZXQgb3duIGJpdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzo0NTpcXHRzdG1tYWNfcHJlcGFyZV90eF9kZXNjKHByaXYsIGRlc2MsIDEsIGJ1Zl9sZW4sIGNzdW0sIFNUTU1BQ19DSEFJTl9NT0RFLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy00Ni1cXHRcXHRcXHQwLCBmYWxzZSwgc2tiLVxcdTAwM2VsZW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTYxLVxcdFxcdFxcdHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmxlbiA9IGJtYXg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjYyOlxcdFxcdFxcdHN0bW1hY19wcmVwYXJlX3R4X2Rlc2MocHJpdiwgZGVzYywgMCwgYm1heCwgY3N1bSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtNjMtXFx0XFx0XFx0XFx0XFx0U1RNTUFDX0NIQUlOX01PREUsIDEsIGZhbHNlLCBza2ItXFx1MDAzZWxlbik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtNzUtXFx0XFx0XFx0LyogbGFzdCBkZXNjcmlwdG9yIGNhbiBiZSBzZXQgbm93ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjc2OlxcdFxcdFxcdHN0bW1hY19wcmVwYXJlX3R4X2Rlc2MocHJpdiwgZGVzYywgMCwgbGVuLCBjc3VtLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy03Ny1cXHRcXHRcXHRcXHRcXHRTVE1NQUNfQ0hBSU5fTU9ERSwgMSwgdHJ1ZSwgc2tiLVxcdTAwM2VsZW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jPTk4PXN0YXRpYyB2b2lkIGluaXRfZG1hX2NoYWluKHZvaWQgKmRlcywgZG1hX2FkZHJfdCBwaHlfYWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xMjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjEyODpzdGF0aWMgdm9pZCByZWZpbGxfZGVzYzMoc3RydWN0IHN0bW1hY19yeF9xdWV1ZSAqcnhfcSwgc3RydWN0IGRtYV9kZXNjICpwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xMjkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxMzA6XFx0c3RydWN0IHN0bW1hY19wcml2ICpwcml2ID0gcnhfcS1cXHUwMDNlcHJpdl9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xMzEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTQyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNDM6c3RhdGljIHZvaWQgY2xlYW5fZGVzYzMoc3RydWN0IHN0bW1hY190eF9xdWV1ZSAqdHhfcSwgc3RydWN0IGRtYV9kZXNjICpwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNDQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNDU6XFx0c3RydWN0IHN0bW1hY19wcml2ICpwcml2ID0gdHhfcS1cXHUwMDNlcHJpdl9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNDYtXFx0dW5zaWduZWQgaW50IGVudHJ5ID0gdHhfcS1cXHUwMDNlZGlydHlfdHg7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTU5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNjA6Y29uc3Qgc3RydWN0IHN0bW1hY19tb2RlX29wcyBjaGFpbl9tb2RlX29wcyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTYxLVxcdC5pbml0ID0gaW5pdF9kbWFfY2hhaW4sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xNS0jaW5jbHVkZSBcXHUwMDNjbGludXgvbmV0ZGV2aWNlLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTY6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3N0bW1hYy5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTE3LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9waHkuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oPTQ5PXN0YXRpYyBpbmxpbmUgYm9vbCBkd21hY19pc194bWFjKGVudW0gZHdtYWNfY29yZV90eXBlIGNvcmVfdHlwZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTcwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjcxOnN0cnVjdCBzdG1tYWNfcV90eF9zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNzItXFx0dTY0X3N0YXRzX3QgdHhfYnl0ZXM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC03Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo3ODpzdHJ1Y3Qgc3RtbWFjX25hcGlfdHhfc3RhdHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTc5LVxcdHU2NF9zdGF0c190IHR4X3BhY2tldHM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC04NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo4NjpzdHJ1Y3Qgc3RtbWFjX3R4cV9zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtODctXFx0LyogVXBkYXRlcyBwcm90ZWN0ZWQgYnkgdHggcXVldWUgbG9jay4gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC04OC1cXHRzdHJ1Y3QgdTY0X3N0YXRzX3N5bmMgcV9zeW5jcDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo4OTpcXHRzdHJ1Y3Qgc3RtbWFjX3FfdHhfc3RhdHMgcTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05MC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTkyLVxcdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBuYXBpX3N5bmNwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjkzOlxcdHN0cnVjdCBzdG1tYWNfbmFwaV90eF9zdGF0cyBuYXBpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk0LX0gX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo5NjpzdHJ1Y3Qgc3RtbWFjX25hcGlfcnhfc3RhdHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk3LVxcdHU2NF9zdGF0c190IHJ4X2J5dGVzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjEwMzpzdHJ1Y3Qgc3RtbWFjX3J4cV9zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTA0LVxcdC8qIFVwZGF0ZXMgcHJvdGVjdGVkIGJ5IE5BUEkgcG9sbCBsb2dpYy4gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMDUtXFx0c3RydWN0IHU2NF9zdGF0c19zeW5jIG5hcGlfc3luY3A7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTA2OlxcdHN0cnVjdCBzdG1tYWNfbmFwaV9yeF9zdGF0cyBuYXBpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwNy19IF9fX19jYWNoZWxpbmVfYWxpZ25lZF9pbl9zbXA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMDktLyogVXBkYXRlcyBvbiBlYWNoIENQVSBwcm90ZWN0ZWQgYnkgbm90IGFsbG93aW5nIG5lc3RlZCBpcnFzLiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjExMDpzdHJ1Y3Qgc3RtbWFjX3BjcHVfc3RhdHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTExMS1cXHRzdHJ1Y3QgdTY0X3N0YXRzX3N5bmMgc3luY3A7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMTYtLyogRXh0cmEgc3RhdGlzdGljIGFuZCBkZWJ1ZyBpbmZvcm1hdGlvbiBleHBvc2VkIGJ5IGV0aHRvb2wgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoxMTc6c3RydWN0IHN0bW1hY19leHRyYV9zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTE4LVxcdC8qIFRyYW5zbWl0IGVycm9ycyAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMjM3LVxcdC8qIHBlciBxdWV1ZSBzdGF0aXN0aWNzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjM4OlxcdHN0cnVjdCBzdG1tYWNfdHhxX3N0YXRzIHR4cV9zdGF0c1tNVExfTUFYX1RYX1FVRVVFU107XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjM5OlxcdHN0cnVjdCBzdG1tYWNfcnhxX3N0YXRzIHJ4cV9zdGF0c1tNVExfTUFYX1JYX1FVRVVFU107XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjQwOlxcdHN0cnVjdCBzdG1tYWNfcGNwdV9zdGF0cyBfX3BlcmNwdSAqcGNwdV9zdGF0cztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNDEtXFx0dW5zaWduZWQgbG9uZyByeF9kcm9wcGVkO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMjQ3LS8qIFNhZmV0eSBGZWF0dXJlIHN0YXRpc3RpY3MgZXhwb3NlZCBieSBldGh0b29sICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjQ4OnN0cnVjdCBzdG1tYWNfc2FmZXR5X3N0YXRzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNDktXFx0dW5zaWduZWQgbG9uZyBtYWNfZXJyb3JzWzMyXTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI1Ni0jZGVmaW5lIFNUTU1BQ19TQUZFVFlfRkVBVF9TSVpFXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjI1NzpcXHQoc2l6ZW9mKHN0cnVjdCBzdG1tYWNfc2FmZXR5X3N0YXRzKSAvIHNpemVvZih1bnNpZ25lZCBsb25nKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNTgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaD00MTY9c3RydWN0IGRtYV9mZWF0dXJlcyB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC01NjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NTY1OnZvaWQgc3RtbWFjX2F4aV9ibGVuX3RvX21hc2sodTMyICpyZWd2YWwsIGNvbnN0IHUzMiAqYmxlbiwgc2l6ZV90IGxlbik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNTY2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NjEzPXN0cnVjdCBtYWNfZGV2aWNlX2luZm8ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxNDpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX29wcyAqbWFjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxNTpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2Rlc2Nfb3BzICpkZXNjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxNjpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2RtYV9vcHMgKmRtYTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTc6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY19tb2RlX29wcyAqbW9kZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTg6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY19od3RpbWVzdGFtcCAqcHRwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxOTpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3RjX29wcyAqdGM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjIwOlxcdGNvbnN0IHN0cnVjdCBzdG1tYWNfbW1jX29wcyAqbW1jO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYyMTpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2VzdF9vcHMgKmVzdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MjI6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY192bGFuX29wcyAqdmxhbjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02MjMtXFx0c3RydWN0IGR3X3hwY3MgKnhwY3M7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjQ1OnN0cnVjdCBzdG1tYWNfcnhfcm91dGluZyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjQ2LVxcdHUzMiByZWdfbWFzaztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY0OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTA6aW50IGR3bWFjMTAwX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjUxOmludCBkd21hYzEwMDBfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTI6aW50IGR3bWFjNF9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1MzppbnQgZHd4Z21hYzJfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTQ6aW50IGR3eGxnbWFjMl9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY1NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTY6dm9pZCBzdG1tYWNfc2V0X21hY19hZGRyKHZvaWQgX19pb21lbSAqaW9hZGRyLCBjb25zdCB1OCBhZGRyWzZdLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY1Ny1cXHRcXHRcXHQgdW5zaWduZWQgaW50IGhpZ2gsIHVuc2lnbmVkIGludCBsb3cpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1ODp2b2lkIHN0bW1hY19nZXRfbWFjX2FkZHIodm9pZCBfX2lvbWVtICppb2FkZHIsIHVuc2lnbmVkIGNoYXIgKmFkZHIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjU5LVxcdFxcdFxcdCB1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjYwOnZvaWQgc3RtbWFjX3NldF9tYWModm9pZCBfX2lvbWVtICppb2FkZHIsIGJvb2wgZW5hYmxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjYyOnZvaWQgc3RtbWFjX2R3bWFjNF9zZXRfbWFjX2FkZHIodm9pZCBfX2lvbWVtICppb2FkZHIsIGNvbnN0IHU4IGFkZHJbNl0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjYzLVxcdFxcdFxcdFxcdHVuc2lnbmVkIGludCBoaWdoLCB1bnNpZ25lZCBpbnQgbG93KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjQ6dm9pZCBzdG1tYWNfZHdtYWM0X2dldF9tYWNfYWRkcih2b2lkIF9faW9tZW0gKmlvYWRkciwgdW5zaWduZWQgY2hhciAqYWRkcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NjUtXFx0XFx0XFx0XFx0dW5zaWduZWQgaW50IGhpZ2gsIHVuc2lnbmVkIGludCBsb3cpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY2Njp2b2lkIHN0bW1hY19kd21hYzRfc2V0X21hYyh2b2lkIF9faW9tZW0gKmlvYWRkciwgYm9vbCBlbmFibGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY2Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMS0jaW5jbHVkZSBcXHUwMDNjbGludXgvb2ZfbmV0LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEyOiNpbmNsdWRlIFxcdTAwM2NsaW51eC9zdG1tYWMuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjE0OiNpbmNsdWRlIFxcXCJzdG1tYWMuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTU6I2luY2x1ZGUgXFxcInN0bW1hY19wbGF0Zm9ybS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xNi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz02Mz1hbmFyaW9uX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzo2NDpcXHRcXHQgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTY1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz05Mz1zdGF0aWMgaW50IGFuYXJpb25fZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy05Ni1cXHRzdHJ1Y3QgYW5hcmlvbl9nbWFjICpnbWFjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzo5NzpcXHRzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzo5ODpcXHRzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyBzdG1tYWNfcmVzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy05OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTAwOlxcdHJldCA9IHN0bW1hY19nZXRfcGxhdGZvcm1fcmVzb3VyY2VzKHBkZXYsIFxcdTAwMjZzdG1tYWNfcmVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTAxLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTAzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxMDQ6XFx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMDUtXFx0aWYgKElTX0VSUihwbGF0X2RhdCkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTE1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxMTY6XFx0cmV0dXJuIGRldm1fc3RtbWFjX3BsdGZyX3Byb2JlKHBkZXYsIHBsYXRfZGF0LCBcXHUwMDI2c3RtbWFjX3Jlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTExNy19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM9MTI1PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGFuYXJpb25fZHdtYWNfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEyOC1cXHRcXHQubmFtZSAgICAgICAgICAgPSBcXFwiYW5hcmlvbi1kd21hY1xcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEyOTpcXHRcXHQucG1cXHRcXHQ9IFxcdTAwMjZzdG1tYWNfcGx0ZnJfcG1fb3BzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMzAtXFx0XFx0Lm9mX21hdGNoX3RhYmxlID0gYW5hcmlvbl9kd21hY19tYXRjaCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjEtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3Jlc2V0LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyMjojaW5jbHVkZSBcXHUwMDNjbGludXgvc3RtbWFjLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI0OiNpbmNsdWRlIFxcXCJzdG1tYWNfcGxhdGZvcm0uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI1LSNpbmNsdWRlIFxcXCJkd21hYzQuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MzY9c3RhdGljIGludCBkd2NfZXRoX2R3bWFjX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mzc6XFx0XFx0XFx0XFx0ICAgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtNDMtXFx0XFx0cGxhdF9kYXQtXFx1MDAzZWF4aSA9IGRldm1fa3phbGxvYyhcXHUwMDI2cGRldi1cXHUwMDNlZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6NDQ6XFx0XFx0XFx0XFx0XFx0ICAgICBzaXplb2Yoc3RydWN0IHN0bW1hY19heGkpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtNDUtXFx0XFx0XFx0XFx0XFx0ICAgICBHRlBfS0VSTkVMKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9OTY9c3RhdGljIGludCBkd2NfcW9zX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzo5NzpcXHRcXHRcXHQgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjk4OlxcdFxcdFxcdCBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqc3RtbWFjX3JlcylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTk5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjEwMDpcXHRwbGF0X2RhdC1cXHUwMDNlcGNsayA9IHN0bW1hY19wbHRmcl9maW5kX2NsayhwbGF0X2RhdCwgXFxcInBoeV9yZWZfY2xrXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xMDEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTExNT1zdGF0aWMgdm9pZCB0ZWdyYV9lcW9zX2ZpeF9zcGVlZCh2b2lkICpic3BfcHJpdiwgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTE5LVxcdGJvb2wgbmVlZHNfY2FsaWJyYXRpb24gPSBmYWxzZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjEyMDpcXHRzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xMjEtXFx0dTMyIHZhbHVlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNDEtXFx0XFx0LyogQ2FsaWJyYXRpb24gc2hvdWxkIGJlIGRvbmUgd2l0aCB0aGUgTURJTyBidXMgaWRsZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTQyOlxcdFxcdHN0bW1hY19tZGlvX2xvY2socHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNDMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTE3Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjE3ODpcXHRcXHRzdG1tYWNfbWRpb191bmxvY2socHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNzktXFx0fSBlbHNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MTg2PXN0YXRpYyBpbnQgdGVncmFfZXFvc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTg3OlxcdFxcdFxcdCAgICBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTg4OlxcdFxcdFxcdCAgICBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqcmVzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTg5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjAzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjA0OlxcdHBsYXRfZGF0LVxcdTAwM2VjbGtfdHhfaSA9IHN0bW1hY19wbHRmcl9maW5kX2NsayhwbGF0X2RhdCwgXFxcInR4XFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yMDUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIzNy1cXHRwbGF0X2RhdC1cXHUwMDNlZml4X21hY19zcGVlZCA9IHRlZ3JhX2Vxb3NfZml4X3NwZWVkO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjM4OlxcdHBsYXRfZGF0LVxcdTAwM2VzZXRfY2xrX3R4X3JhdGUgPSBzdG1tYWNfc2V0X2Nsa190eF9yYXRlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjM5LVxcdHBsYXRfZGF0LVxcdTAwM2Vic3BfcHJpdiA9IGVxb3M7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTI1Mj1zdGF0aWMgdm9pZCB0ZWdyYV9lcW9zX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjUzLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI1NDpcXHRzdHJ1Y3QgdGVncmFfZXFvcyAqZXFvcyA9IGdldF9zdG1tYWNfYnNwX3ByaXYoXFx1MDAyNnBkZXYtXFx1MDAzZWRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNTUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTI2MD1zdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI2MS1cXHRpbnQgKCpwcm9iZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI2MjpcXHRcXHQgICAgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyNjM6XFx0XFx0ICAgICBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqcmVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI2NC1cXHR2b2lkICgqcmVtb3ZlKShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI2NTpcXHRjb25zdCBjaGFyICpzdG1tYWNfY2xrX25hbWU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNjYtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjY4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhIGR3Y19xb3NfZGF0YSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI2OS1cXHQucHJvYmUgPSBkd2NfcW9zX3Byb2JlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjcwOlxcdC5zdG1tYWNfY2xrX25hbWUgPSBcXFwiYXBiX3BjbGtcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjcxLX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTI3Mz1zdGF0aWMgY29uc3Qgc3RydWN0IGR3Y19ldGhfZHdtYWNfZGF0YSB0ZWdyYV9lcW9zX2RhdGEgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI3NS1cXHQucmVtb3ZlID0gdGVncmFfZXFvc19yZW1vdmUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyNzY6XFx0LnN0bW1hY19jbGtfbmFtZSA9IFxcXCJzbGF2ZV9idXNcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjc3LX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTI3OT1zdGF0aWMgY29uc3Qgc3RydWN0IGR3Y19ldGhfZHdtYWNfZGF0YSBmc2RfZXFvc19kYXRhID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjgwOlxcdC5zdG1tYWNfY2xrX25hbWUgPSBcXFwic2xhdmVfYnVzXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI4MS19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yODM9c3RhdGljIGludCBkd2NfZXRoX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI4NS1cXHRjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhICpkYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjg2OlxcdHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyODc6XFx0c3RydWN0IHN0bW1hY19yZXNvdXJjZXMgc3RtbWFjX3JlcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI4OC1cXHRpbnQgcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyOTI6XFx0bWVtc2V0KFxcdTAwMjZzdG1tYWNfcmVzLCAwLCBzaXplb2Yoc3RydWN0IHN0bW1hY19yZXNvdXJjZXMpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI5My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI5NC1cXHQvKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI5NTpcXHQgKiBTaW5jZSBzdG1tYWNfcGxhdGZvcm0gc3VwcG9ydHMgbmFtZSBJUlEgb25seSwgYmFzaWMgcGxhdGZvcm1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI5Ni1cXHQgKiByZXNvdXJjZSBpbml0aWFsaXphdGlvbiBpcyBkb25lIGluIHRoZSBnbHVlIGxvZ2ljLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjk3LVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjk4OlxcdHN0bW1hY19yZXMuaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI5OTpcXHRpZiAoc3RtbWFjX3Jlcy5pcnEgXFx1MDAzYyAwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzAwOlxcdFxcdHJldHVybiBzdG1tYWNfcmVzLmlycTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwMTpcXHRzdG1tYWNfcmVzLndvbF9pcnEgPSBzdG1tYWNfcmVzLmlycTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwMzpcXHRzdG1tYWNfcmVzLmFkZHIgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDQ6XFx0aWYgKElTX0VSUihzdG1tYWNfcmVzLmFkZHIpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzA1OlxcdFxcdHJldHVybiBQVFJfRVJSKHN0bW1hY19yZXMuYWRkcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDc6XFx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzA4LVxcdGlmIChJU19FUlIocGxhdF9kYXQpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMTY6XFx0cGxhdF9kYXQtXFx1MDAzZXN0bW1hY19jbGsgPSBzdG1tYWNfcGx0ZnJfZmluZF9jbGsocGxhdF9kYXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMTc6XFx0XFx0XFx0XFx0XFx0XFx0ICAgICBkYXRhLVxcdTAwM2VzdG1tYWNfY2xrX25hbWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzE5LVxcdGlmIChkYXRhLVxcdTAwM2Vwcm9iZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMyMDpcXHRcXHRyZXQgPSBkYXRhLVxcdTAwM2Vwcm9iZShwZGV2LCBwbGF0X2RhdCwgXFx1MDAyNnN0bW1hY19yZXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzIxLVxcdGlmIChyZXQgXFx1MDAzYyAwKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMyOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMzMDpcXHRyZXQgPSBzdG1tYWNfZHZyX3Byb2JlKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIHBsYXRfZGF0LCBcXHUwMDI2c3RtbWFjX3Jlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMzEtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MzQzPXN0YXRpYyB2b2lkIGR3Y19ldGhfZHdtYWNfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjM0NzpcXHRzdG1tYWNfZHZyX3JlbW92ZShcXHUwMDI2cGRldi1cXHUwMDNlZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM0OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MzYxPXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGR3Y19ldGhfZHdtYWNfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNjUtXFx0XFx0Lm5hbWUgICAgICAgICAgID0gXFxcImR3Yy1ldGgtZHdtYWNcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzY2OlxcdFxcdC5wbSAgICAgICAgICAgICA9IFxcdTAwMjZzdG1tYWNfcGx0ZnJfcG1fb3BzLFxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMDowOTo1Mi4wMDk2NTg0MzNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNjc0MzM2NDU5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgdGhlIHN0bW1hYyBEcml2ZXIncyBQQ0kgQ2FwYWJpbGl0aWVzKipcblxuT2theSwgc28gdGhlIHN0bW1hYyBkcml2ZXIgaXMgZnVuZGFtZW50YWxseSBhIHBsYXRmb3JtIGRyaXZlciwgdGhhdCBtdWNoIGlzIGNsZWFyLiBCdXQgdGhlbiBJIHJlbWVtYmVyIHNlZWluZyBgc3RtbWFjLXBjaS5jYCBpbiB0aGUgY29kZSwgd2hpY2ggaW1tZWRpYXRlbHkgc3VnZ2VzdHMgUENJIHN1cHBvcnQgaXMgYWxzbyBpbmNsdWRlZCwgYSBrZXkgZGlzdGluY3Rpb24uIE5vdywgdGhpcyByYWlzZXMgYSBjcnVjaWFsIHF1ZXN0aW9uIGZvciBteSBjdXJyZW50IHdvcmssIHdoYXRldmVyIGl0IG1heSBiZS4gSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIHdoZXRoZXIgUUVNVSwgdGhlIHZpcnR1YWwgbWFjaGluZSBJJ20gdXNpbmcsIGFjdHVhbGx5IGVtdWxhdGVzIGFueSBvZiB0aGUgc3BlY2lmaWMgUENJIGRldmljZXMgdGhhdCB0aGUgYHN0bW1hYy1wY2kuY2AgbW9kdWxlIGlzIGRlc2lnbmVkIHRvIGhhbmRsZS4gVGhpcyB3aWxsIGRpcmVjdGx5IGFmZmVjdCB0aGUgdXNlZnVsbmVzcyBvZiBteSBjdXJyZW50IHNldHVwIGZvciB0ZXN0aW5nIG9yIGRldmVsb3BtZW50LiBJdCdzIHRpbWUgdG8gaW52ZXN0aWdhdGUgUUVNVSdzIGRldmljZSBlbXVsYXRpb24gY2FwYWJpbGl0aWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDE5MSwiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIwOjA5OjU1LjY4Mzk5NzU3MloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTIwNDA3NTYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiUENJX0RFVklDRV9JRF9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz0xOTI9c3RhdGljIHZvaWQgc3RtbWFjX3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTk5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMDA6I2RlZmluZSBQQ0lfREVWSUNFX0lEX1NUTU1BQ19TVE1NQUNcXHRcXHQweDExMDhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjAxOiNkZWZpbmUgUENJX0RFVklDRV9JRF9TWU5PUFNZU19HTUFDNV9JRFxcdFxcdDB4NzEwMlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMDItXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIwOjA5OjU1LjgzNjA1NTA2OVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0NDA2MDYzODQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyBRRU1VIGFuZCBzdG1tYWMgRW11bGF0aW9uIGZvciBUZXN0aW5nKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhlc2UgUENJIElEcywgMHgxMTA4IGFuZCAweDcxMDIuIFRoZSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMsIGRvZXMgUUVNVSBuYXRpdmVseSBlbXVsYXRlIHRoZXNlIGRldmljZXM/IE15IGluaXRpYWwgdGhvdWdodCBpcyBubywgdGhhdCdzIG5vdCBzb21ldGhpbmcgSSByZWNhbGwgc2VlaW5nIGluIHRoZSBzdGFuZGFyZCBRRU1VIHNldHVwLiBCdXQgaG9sZCBvbiwgSSBzZWVtIHRvIHJlY2FsbCBzb21ldGhpbmcgYWJvdXQgc3l6a2FsbGVyIGFuZCBzdG1tYWMuIEl0J3MgdGltZSB0byBjaGVjayBpZiBzeXprYWxsZXIgaGFzIGFueSBwcmVkZWZpbmVkIGRlc2NyaXB0aW9ucyBvciBjb25maWd1cmF0aW9ucyBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuIFRoYXQgY291bGQgYmUgYSB2YWx1YWJsZSBsZWFkLCBvZmZlcmluZyBhIHBvdGVudGlhbCBwYXRoIGZvciB0ZXN0aW5nLCBldmVuIGlmIGRpcmVjdCBRRU1VIGVtdWxhdGlvbiBpc24ndCBhdmFpbGFibGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwNjc0LCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjA6MDk6NTkuMjc2NjY0MTUzWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1MTA3NTQ5NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzdG1tYWNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvY29yZS9zZWxmdGVzdHMuYy0zLSAqIENvcHlyaWdodCAoYykgMjAxOSBTeW5vcHN5cywgSW5jLiBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuXFxubmV0L2NvcmUvc2VsZnRlc3RzLmM6NDogKiBzdG1tYWMgU2VsZnRlc3RzIFN1cHBvcnRcXG5uZXQvY29yZS9zZWxmdGVzdHMuYy01LSAqXFxuLS1cXG5uZXQvY29yZS9zZWxmdGVzdHMuYy03LSAqXFxubmV0L2NvcmUvc2VsZnRlc3RzLmM6ODogKiBQb3J0ZWQgZnJvbSBzdG1tYWMgYnk6XFxubmV0L2NvcmUvc2VsZnRlc3RzLmMtOS0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgT2xla3NpaiBSZW1wZWwgXFx1MDAzY28ucmVtcGVsQHBlbmd1dHJvbml4LmRlXFx1MDAzZVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMDowOTo1OS41Mjc3NDU0NTdaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MTQ1MTMwOTQyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkRlY29kaW5nIHRoZSBTeXprYWxsZXIgQnVnIEh1bnQqKlxuXG5Pa2F5LCBsZXQncyBzZWUuIFRoZSBjb21taXQgbWVzc2FnZSBzYXlzIFwic3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3LFwiIGFuZCB0aGUgYXV0aG9yIGlzIFwic3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcIi4gVGhpcyBzY3JlYW1zIHN5emthbGxlciwgcmlnaHQ/IFRoaXMgbWVhbnMgaXQgZm91bmQgYSBidWcsIG9yIGlzIGN1cnJlbnRseSBmdXp6aW5nIHRoaXMgcGFydGljdWxhciBjaHVuayBvZiBjb2RlLiBIb3cgZGlkIGl0IG1hbmFnZSB0aGF0PyBUaGUga2V5IGlzIHByb2JhYmx5IGluIHRoYXQgZmlsZSwgYHN0bW1hY19zZWxmdGVzdHMuY2AuIFdhaXQgYSBzZWNvbmQsIHRoZSBwYXRjaCAqZG9lcyogbW9kaWZ5IGBzdG1tYWNfc2VsZnRlc3RzLmNgISBTbywgdGhlIGNvZGUgdW5kZXIgc2NydXRpbnkgaXMgcmVhY2hhYmxlIHZpYSBldGh0b29sIHNlbGZ0ZXN0cz9cblxuWWVzLCBsb29rcyBsaWtlIGBzdG1tYWNfc2VsZnRlc3RfcnVuYCBpcyBjYWxsZWQgYnkgZXRodG9vbCwgYW5kIHRoYXQncyB0aGUgZW50cnkgcG9pbnQuIEJ1dCBob3cgZGlkIHN5emthbGxlciBnZXQgYSBgc3RtbWFjYCBuZXR3b3JrIGRldmljZSAobmV0ZGV2KSB0byBhY3R1YWxseSBjYWxsIGV0aHRvb2wgb24/IEhtbS4uLiBtYXliZSBhIGR1bW15IGRyaXZlcj8gT3IgcGVyaGFwcyBhIHZpcnR1YWwgZGV2aWNlPyBXYWl0LCBgc3RtbWFjYCBpcyBhIHBsYXRmb3JtIGRyaXZlci4gQ2FuIHN5emthbGxlciBjcmVhdGUgcGxhdGZvcm0gZGV2aWNlcyB2aWEsIHNheSBgc3l6X2RldmxpbmtgIG9yIHNpbWlsYXI/IE5vLCBkZWZpbml0ZWx5IG5vdCB1c2luZyBgc3l6X2RldmxpbmtgLiBEb2VzIHN5emthbGxlciBvZmZlciBzb21lIGZvcm0gb2YgYHN5el9wbGF0Zm9ybV9kZXZpY2VfYWRkYD8gTm8sIG5vIHN1Y2ggZnVuY3Rpb25hbGl0eS5cblxuV2FpdC4uLiBFdXJla2EhIFN5emthbGxlciAqY2FuKiBpbmplY3QgUENJIGRldmljZXMgdXNpbmcgYHN5el9wY2lfZGV2aWNlX2FkZGAhIFRoYXQncyB0aGUgcHNldWRvLXN5c2NhbGwgSSB3YXMgbWlzc2luZy4gSXQgYWxsb3dzIGluamVjdGlvbiBvZiAqYW55KiBQQ0kgZGV2aWNlIGludG8gdGhlIGd1ZXN0LCBhc3N1bWluZyB0aGUga2VybmVsIHN1cHBvcnRzIFBDSSBob3RwbHVnIGFuZCB0aGUgc3BlY2lmaWMgZHJpdmVyIGlzIHByZXNlbnQuIE5vdywgYHN0bW1hY19wY2kuY2AgaXMgYSBQQ0kgZHJpdmVyISBUaGF0IGNvbmZpcm1zIGl0LCBzeXprYWxsZXIgKmNhbiogaW5qZWN0IHRoZSBgc3RtbWFjYCBkcml2ZXIgdXNpbmcgYHN5el9wY2lfZGV2aWNlX2FkZGAhIE5vdywgbGV0J3MganVzdCBjb25maXJtIHRoYXQgYHN0bW1hY19wY2kuY2AgaXMgY29tcGlsZWQgaW50byB0aGUga2VybmVsLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTA3MywiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM2OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMDoxMDowNi42NzI4ODA2NDlaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyOTQ2NjY2NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzdG1tYWNfcGNpXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT01Mz1vYmotJChDT05GSUdfRFdNQUNfTU9UT1JDT01NKVxcdCs9IGR3bWFjLW1vdG9yY29tbS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTQ6c3RtbWFjLXBjaS1vYmpzOj0gc3RtbWFjX3BjaS5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTI1PXN0cnVjdCBpbnRlbF9wcml2X2RhdGEge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0zOS0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjQwOnN0cnVjdCBzdG1tYWNfcGNpX2Z1bmNfZGF0YSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00MS1cXHR1bnNpZ25lZCBpbnQgZnVuYztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo0NTpzdHJ1Y3Qgc3RtbWFjX3BjaV9kbWlfZGF0YSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo0NjpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgKmZ1bmM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00Ny1cXHRzaXplX3QgbmZ1bmNzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy00OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjUwOnN0cnVjdCBzdG1tYWNfcGNpX2luZm8ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNTEtXFx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05MT1zdGF0aWMgY29uc3QgaW50IGFkbG5fdHNuX2xhbmVfcmVnc1tdID0gezZ9O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5MzpzdGF0aWMgaW50IHN0bW1hY19wY2lfZmluZF9waHlfYWRkcihzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk0LVxcdFxcdFxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCAqZG1pX2xpc3QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5NjpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9mdW5jX2RhdGEgKmZ1bmNfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjk3OlxcdGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2RtaV9kYXRhICpkbWlfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk4LVxcdGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkICpkbWlfaWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTc1NT1zdGF0aWMgaW50IGVobF9zZ21paV9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy03NzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo3NzU6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gZWhsX3NnbWlpMWdfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTc3Ni1cXHQuc2V0dXAgPSBlaGxfc2dtaWlfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9Nzc5PXN0YXRpYyBpbnQgZWhsX3JnbWlpX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTc4OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjc5MDpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcmdtaWkxZ19pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtNzkxLVxcdC5zZXR1cCA9IGVobF9yZ21paV9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04MTA9c3RhdGljIGludCBlaGxfcHNlMF9yZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTgxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjgxNzpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMF9yZ21paTFnX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04MTgtXFx0LnNldHVwID0gZWhsX3BzZTBfcmdtaWkxZ19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04MjE9c3RhdGljIGludCBlaGxfcHNlMF9zZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTgzOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjgzOTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMF9zZ21paTFnX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04NDAtXFx0LnNldHVwID0gZWhsX3BzZTBfc2dtaWkxZ19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04NTk9c3RhdGljIGludCBlaGxfcHNlMV9yZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg2NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjg2NjpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMV9yZ21paTFnX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04NjctXFx0LnNldHVwID0gZWhsX3BzZTFfcmdtaWkxZ19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz04NzA9c3RhdGljIGludCBlaGxfcHNlMV9zZ21paTFnX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTg4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjg4ODpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBlaGxfcHNlMV9zZ21paTFnX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy04ODktXFx0LnNldHVwID0gZWhsX3BzZTFfc2dtaWkxZ19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05MTM9c3RhdGljIGludCB0Z2xfc2dtaWlfcGh5MF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05MjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzo5MjI6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gdGdsX3NnbWlpMWdfcGh5MF9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTIzLVxcdC5zZXR1cCA9IHRnbF9zZ21paV9waHkwX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTkyNj1zdGF0aWMgaW50IHRnbF9zZ21paV9waHkxX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTkzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjkzNTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyB0Z2xfc2dtaWkxZ19waHkxX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05MzYtXFx0LnNldHVwID0gdGdsX3NnbWlpX3BoeTFfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9OTM5PXN0YXRpYyBpbnQgYWRsc19zZ21paV9waHkwX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTk0OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjk0OTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBhZGxzX3NnbWlpMWdfcGh5MF9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTUwLVxcdC5zZXR1cCA9IGFkbHNfc2dtaWlfcGh5MF9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz05NTM9c3RhdGljIGludCBhZGxzX3NnbWlpX3BoeTFfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtOTYyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6OTYzOnN0YXRpYyBzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIGFkbHNfc2dtaWkxZ19waHkxX2luZm8gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy05NjQtXFx0LnNldHVwID0gYWRsc19zZ21paV9waHkxX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTk5Mj1zdGF0aWMgaW50IGFkbG5fc2dtaWlfcGh5MF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTAxMTpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBhZGxuX3NnbWlpMWdfcGh5MF9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAxMi1cXHQuc2V0dXAgPSBhZGxuX3NnbWlpX3BoeTBfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAxNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEwMTU6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2Z1bmNfZGF0YSBnYWxpbGVvX3N0bW1hY19mdW5jX2RhdGFbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMTYtXFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTAyMjpzdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19wY2lfZG1pX2RhdGEgZ2FsaWxlb19zdG1tYWNfZG1pX2RhdGEgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDIzLVxcdC5mdW5jID0gZ2FsaWxlb19zdG1tYWNfZnVuY19kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMDI2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTAyNzpzdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19wY2lfZnVuY19kYXRhIGlvdDIwNDBfc3RtbWFjX2Z1bmNfZGF0YVtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTAyOC1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDM4OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX3BjaV9kbWlfZGF0YSBpb3QyMDQwX3N0bW1hY19kbWlfZGF0YSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwMzktXFx0LmZ1bmMgPSBpb3QyMDQwX3N0bW1hY19mdW5jX2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTEwNzg9c3RhdGljIGludCBxdWFya19kZWZhdWx0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwODgtXFx0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMDg5OlxcdHJldCA9IHN0bW1hY19wY2lfZmluZF9waHlfYWRkcihwZGV2LCBxdWFya19wY2lfZG1pKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEwOTAtXFx0aWYgKHJldCBcXHUwMDNjIDApIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTExMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjExMTQ6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gcXVhcmtfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTExMTUtXFx0LnNldHVwID0gcXVhcmtfZGVmYXVsdF9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz0xMjMyPXN0YXRpYyBpbnQgaW50ZWxfZXRoX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTIzNC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMjM1OlxcdHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKmluZm8gPSAoc3RydWN0IHN0bW1hY19wY2lfaW5mbyAqKWlkLVxcdTAwM2Vkcml2ZXJfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEyMzYtXFx0c3RydWN0IGludGVsX3ByaXZfZGF0YSAqaW50ZWxfcHJpdjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9NzY9c3RydWN0IGxvb25nc29uX2RhdGEge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy04MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjgyOnN0cnVjdCBzdG1tYWNfcGNpX2luZm8ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtODMtXFx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz0xMzI9c3RhdGljIGludCBsb29uZ3Nvbl9nbWFjX2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTE0MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjE0MjpzdGF0aWMgc3RydWN0IHN0bW1hY19wY2lfaW5mbyBsb29uZ3Nvbl9nbWFjX3BjaV9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtMTQzLVxcdC5zZXR1cCA9IGxvb25nc29uX2dtYWNfZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9MTY1PXN0YXRpYyBpbnQgbG9vbmdzb25fZ25ldF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy0xNzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzoxNzc6c3RhdGljIHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gbG9vbmdzb25fZ25ldF9wY2lfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTE3OC1cXHQuc2V0dXAgPSBsb29uZ3Nvbl9nbmV0X2RhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTQ5OD1zdGF0aWMgaW50IGxvb25nc29uX2R3bWFjX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTUwMS1cXHRzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyByZXMgPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjUwMjpcXHRzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvICppbmZvO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTAzLVxcdHN0cnVjdCBsb29uZ3Nvbl9kYXRhICpsZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTM3LVxcdHBsYXQtXFx1MDAzZWZpeF9zb2NfcmVzZXQgPSBsb29uZ3Nvbl9kd21hY19maXhfcmVzZXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo1Mzg6XFx0cGxhdC1cXHUwMDNlc3VzcGVuZCA9IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6NTM5OlxcdHBsYXQtXFx1MDAzZXJlc3VtZSA9IHN0bW1hY19wY2lfcGxhdF9yZXN1bWU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01NDAtXFx0bGQtXFx1MDAzZWRldiA9IFxcdTAwMjZwZGV2LVxcdTAwM2VkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTU0Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjU0MzpcXHRpbmZvID0gKHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKilpZC1cXHUwMDNlZHJpdmVyX2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01NDQtXFx0cmV0ID0gaW5mby1cXHUwMDNlc2V0dXAocGRldiwgcGxhdCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYz0xODg9c3RhdGljIGludCBtb3RvcmNvbW1fcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0xOTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MTkzOlxcdHJldCA9IHN0bW1hY19wY2lfcGxhdF9yZXN1bWUoZGV2LCBic3BfcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMTk0LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYz0yMDg9bW90b3Jjb21tX2RlZmF1bHRfcGxhdF9kYXRhKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMjQ4LVxcdHBsYXQtXFx1MDAzZWNvcmVfdHlwZVxcdFxcdD0gRFdNQUNfQ09SRV9HTUFDNDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYzoyNDk6XFx0cGxhdC1cXHUwMDNlc3VzcGVuZFxcdFxcdD0gc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMjUwLVxcdHBsYXQtXFx1MDAzZXJlc3VtZVxcdFxcdD0gbW90b3Jjb21tX3Jlc3VtZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0xMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmM6MTI6aW50IHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jLTEzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy0yNS19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jOjI2OkVYUE9SVF9TWU1CT0xfR1BMKHN0bW1hY19wY2lfcGxhdF9zdXNwZW5kKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmMtMjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jOjI4OmludCBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqYnNwX3ByaXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jLTI5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy00My19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5jOjQ0OkVYUE9SVF9TWU1CT0xfR1BMKHN0bW1hY19wY2lfcGxhdF9yZXN1bWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuYy00NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuaC04LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19saWJwY2kuaDo5OmludCBzdG1tYWNfcGNpX3BsYXRfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmJzcF9wcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbGlicGNpLmg6MTA6aW50IHN0bW1hY19wY2lfcGxhdF9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpic3BfcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2xpYnBjaS5oLTExLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxOTpzdHJ1Y3Qgc3RtbWFjX3BjaV9pbmZvIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjAtXFx0aW50ICgqc2V0dXApKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTMzPXN0YXRpYyBpbnQgc3RtbWFjX2RlZmF1bHRfZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy00OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6NTA6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gc3RtbWFjX3BjaV9pbmZvID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy01MS1cXHQuc2V0dXAgPSBzdG1tYWNfZGVmYXVsdF9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTU0PXN0YXRpYyBpbnQgc25wc19nbWFjNV9kZWZhdWx0X2RhdGEoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTAxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxMDI6c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gc25wc19nbWFjNV9wY2lfaW5mbyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTAzLVxcdC5zZXR1cCA9IHNucHNfZ21hYzVfZGVmYXVsdF9kYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTEwNi0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTA3OiAqIHN0bW1hY19wY2lfcHJvYmVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTA4LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTE3LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxMTg6c3RhdGljIGludCBzdG1tYWNfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xMTktXFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTIwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTIxOlxcdHN0cnVjdCBzdG1tYWNfcGNpX2luZm8gKmluZm8gPSAoc3RydWN0IHN0bW1hY19wY2lfaW5mbyAqKWlkLVxcdTAwM2Vkcml2ZXJfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTIyLVxcdHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xNzktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjE4MDpcXHRwbGF0LVxcdTAwM2VzdXNwZW5kID0gc3RtbWFjX3BjaV9wbGF0X3N1c3BlbmQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjE4MTpcXHRwbGF0LVxcdTAwM2VyZXN1bWUgPSBzdG1tYWNfcGNpX3BsYXRfcmVzdW1lO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0xODItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTg2LS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxODc6ICogc3RtbWFjX3BjaV9yZW1vdmVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTg4LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTkxLSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxOTI6c3RhdGljIHZvaWQgc3RtbWFjX3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTE5My17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MjAzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBzdG1tYWNfaWRfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjA0OlxcdHsgUENJX0RFVklDRV9EQVRBKFNUTU1BQywgU1RNTUFDLCBcXHUwMDI2c3RtbWFjX3BjaV9pbmZvKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMDU6XFx0eyBQQ0lfREVWSUNFX0RBVEEoU1RNSUNSTywgTUFDLCBcXHUwMDI2c3RtbWFjX3BjaV9pbmZvKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMDYtXFx0eyBQQ0lfREVWSUNFX0RBVEEoU1lOT1BTWVMsIEdNQUM1X0lELCBcXHUwMDI2c25wc19nbWFjNV9wY2lfaW5mbykgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz0yMTA9TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIHN0bW1hY19pZF90YWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjEyOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBzdG1tYWNfcGNpX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjEzLVxcdC5uYW1lID0gU1RNTUFDX1JFU09VUkNFX05BTUUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxNC1cXHQuaWRfdGFibGUgPSBzdG1tYWNfaWRfdGFibGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIxNTpcXHQucHJvYmUgPSBzdG1tYWNfcGNpX3Byb2JlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMTY6XFx0LnJlbW92ZSA9IHN0bW1hY19wY2lfcmVtb3ZlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTctXFx0LmRyaXZlciAgICAgICAgID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjIyOm1vZHVsZV9wY2lfZHJpdmVyKHN0bW1hY19wY2lfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjIzLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMDoxMDowNi45MDIzNTQ3NjRaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDM5MzE0NDUxMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFN5emthbGxlciBQb3RlbnRpYWwgZm9yIGEgU1RNTUFDIFZ1bG5lcmFiaWxpdHkqKlxuXG5Pa2F5LCBzbyBgc3RtbWFjX3BjaS5jYCBpcyBkZWZpbml0ZWx5IGEgUENJIGRyaXZlciDigJMgZ29vZCwgU3l6a2FsbGVyIGNhbiBpbmplY3QgaXQuIEJ1dCBob2xkIG9uLCB0aGUgcGF0Y2ggaW50cm9kdWNlcyBgZHdtYWNfaW50ZWdyYXRlZF9wY3NfbG9vcGJhY2tgIHdpdGhpbiBgc3RtbWFjX3Bjcy5jYC4gSSBuZWVkIHRvIGNvbmZpcm0gaWYgdGhhdCBmaWxlIGlzIGV2ZW4gY29tcGlsZWQgaW50byB0aGUga2VybmVsIGltYWdlLiBZZXAsIGl0J3MgdGhlcmU6IGBzdG1tYWNfcGNzLm9gIGlzIGxpc3RlZCBpbiBgc3RtbWFjLW9ianNgLiBUaGF0J3MgYSBnb29kIHNpZ24uXG5cbkFuZCB0aGUgcGF0Y2ggYWxzbyB0b3VjaGVzIGBzdG1tYWNfc2VsZnRlc3RzLmNgLCB3aGljaCBjYWxscyBgcGh5bGlua19wY3NfbG9vcGJhY2tgLiBJcyB0aGF0IGFsc28gZ29pbmcgdG8gYmUgY29tcGlsZWQgaW4/IExldCBtZSBzZWXigKYgeWVzLCBgc3RtbWFjLSQoQ09ORklHX1NUTU1BQ19TRUxGVEVTVFMpICs9IHN0bW1hY19zZWxmdGVzdHMub2AuIE9rYXksIHNvIHdlJ2xsIG5lZWQgdG8gZW5hYmxlIGBDT05GSUdfU1RNTUFDX1NFTEZURVNUU2AgZm9yIHRoaXMgdG8gaGF2ZSBhbiBpbXBhY3QuIExldCdzIHZlcmlmeSBob3cgaXQgaXMgY3VycmVudGx5IGNvbmZpZ3VyZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5MTIyLCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTkwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIwOjEwOjExLjI5NTUzMDIzN1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk2MTkxOTE1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBTVE1NQUNfU0VMRlRFU1RTXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE4PWlmIFNUTU1BQ19FVEhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjA6Y29uZmlnIFNUTU1BQ19TRUxGVEVTVFNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIxLVxcdGJvb2wgXFxcIlN1cHBvcnQgZm9yIFNUTU1BQyBTZWxmdGVzdHNcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIwOjEwOjExLjQ5MTczNjAxMloiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODA5ODY0Nzg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGZyb20gYW4gZXhwZXJ0J3MgcGVyc3BlY3RpdmU6XG5cbioqRGl2aW5nIGludG8gdGhlIFNUTU1BQyBDb25maWd1cmF0aW9uKipcblxuQWxyaWdodCwgbGV0J3Mgc2VlLi4uIEknbSBsb29raW5nIGF0IHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBTVE1NQUMgZHJpdmVyLCBzcGVjaWZpY2FsbHkgdGhlIHNlbGYtdGVzdCBjYXBhYmlsaXR5LiBTbywgYENPTkZJR19TVE1NQUNfU0VMRlRFU1RTYCBpcyBhIGJvb2xlYW4gY29uZmlndXJhdGlvbiBvcHRpb24gdGhhdCBzZWVtcyB0byBiZSBuZXN0ZWQgdW5kZXIgYFNUTU1BQ19FVEhgLCB3aGljaCBpcyBpdHNlbGYgYSBjb25maWcgb3B0aW9uIHJlbGF0ZWQgdG8gdGhlIEV0aGVybmV0IGltcGxlbWVudGF0aW9uIG9mIHRoZSBkcml2ZXIuIE5vdywgSSBzaG91bGQgZG91YmxlIGNoZWNrIHdoYXQgb3B0aW9ucyBhcmUgYXZhaWxhYmxlIHVuZGVyIGJvdGggYFNUTU1BQ19FVEhgIGFuZCBgU1RNTUFDX1BDSWAuIEkgd2FudCB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGhvdyBzZWxmLXRlc3RzIGFyZSBlbmFibGVkLiBQZXJoYXBzIGNoZWNraW5nIGBTVE1NQUNfUENJYCBpcyByZWxldmFudCwgc28gSSB1bmRlcnN0YW5kIHRoZSBmdWxsIHNjb3BlIG9mIHdoZXJlIHRoaXMgY2FuIHJ1biBpbiBoYXJkd2FyZS4gS25vd2luZyB0aGF0IHRoZSBFdGhlcm5ldCBhbmQgUENJIHZlcnNpb25zIG9mIHRoZSBkcml2ZXIgYXJlIGltcG9ydGFudCwgSSBjYW4gc3RhcnQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIGZvciB0aGUgdGFyZ2V0IHBsYXRmb3JtLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyOTcwNCwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIwOjEwOjE1LjMwMTYwNTQ0OFoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc4NjM5ODc2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBTVE1NQUNfRVRIXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyOmNvbmZpZyBTVE1NQUNfRVRIXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJTVE1pY3JvZWxlY3Ryb25pY3MgTXVsdGktR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIwOjEwOjE1LjQ4MDI1MTQ2NFoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzY5NzA5NDI0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqRGVjb2RpbmcgdGhhdCBQaHJhc2UqKlxuXG5IbW0sIFwiU1RNTUFDX1BDSVwiLiBUaGF0J3MgaW50cmlndWluZy4gTXkgaW5pdGlhbCB0aG91Z2h0IHByb2Nlc3MgaW1tZWRpYXRlbHkgc3RhcnRzIGRpc3NlY3RpbmcgdGhpcy4gXCJTVE1NQUNcIiBsaWtlbHkgcmVmZXJzIHRvIHRoZSBTVE1pY3JvZWxlY3Ryb25pY3MgTWVkaWEgQWNjZXNzIENvbnRyb2xsZXIgKE1BQykgSVAgY29yZSwgYSBjb21tb24gY29tcG9uZW50IGZvdW5kIGluIGEgbG90IG9mIGVtYmVkZGVkIHN5c3RlbXMsIHBhcnRpY3VsYXJseSB0aG9zZSB1c2luZyBTVE0zMiBtaWNyb2NvbnRyb2xsZXJzIG9yIHRoZWlyIGFzc29jaWF0ZWQgU29Dcy5cblxuVGhlIFwiUENJXCIgcGFydCBpcyB0aGUgbW9yZSBpbnRlcmVzdGluZyBwaWVjZS4gSXQgaW1wbGllcyB0aGlzIE1BQyBjb3JlIGlzIGNvbm5lY3RlZCB0byBhIFBDSSAoUGVyaXBoZXJhbCBDb21wb25lbnQgSW50ZXJjb25uZWN0KSBvciBQQ0kgRXhwcmVzcyBidXMuIFRoaXMgbmFycm93cyBkb3duIHRoZSBhcHBsaWNhdGlvbiBzaWduaWZpY2FudGx5LiBJJ20gbGlrZWx5IGxvb2tpbmcgYXQgYSBzeXN0ZW0gd2l0aCBzb21lIGRlZ3JlZSBvZiBzb3BoaXN0aWNhdGlvbiwgcG90ZW50aWFsbHkgYSBuZXR3b3JraW5nIGNhcmQsIGFuIGluZHVzdHJpYWwgY29udHJvbCBzeXN0ZW0gd2l0aCBoaWdoZXIgYmFuZHdpZHRoIHJlcXVpcmVtZW50cywgb3IgZXZlbiBhIHNwZWNpYWxpemVkIGVtYmVkZGVkIHN5c3RlbSBuZWVkaW5nIGhpZ2gtc3BlZWQgbmV0d29yayBjb25uZWN0aXZpdHkuXG5cbk15IG1pbmQgaW1tZWRpYXRlbHkgc3RhcnRzIHRpY2tpbmcgdGhyb3VnaCB0aGUgaW1wbGljYXRpb25zOiBkcml2ZXIgcmVxdWlyZW1lbnRzLCBpbnRlcnJ1cHQgaGFuZGxpbmcsIERNQSAoRGlyZWN0IE1lbW9yeSBBY2Nlc3MpIGNvbmZpZ3VyYXRpb24uLi4gYWxsIG9mIHRoZXNlIHRha2Ugb24gYSBkaWZmZXJlbnQgZmxhdm9yIHdoZW4gZGVhbGluZyB3aXRoIGEgUENJIGludGVyZmFjZSByYXRoZXIgdGhhbiBzb21ldGhpbmcgc2ltcGxlciBsaWtlIGEgc3RhbmRhcmQgRXRoZXJuZXQgUEhZLiBJJ2QgYmUgbG9va2luZyBmb3IgUENJIGNvbmZpZ3VyYXRpb24gc3BhY2UgYWNjZXNzLCBwb3RlbnRpYWxseSBkZWFsaW5nIHdpdGggQkFScyAoQmFzZSBBZGRyZXNzIFJlZ2lzdGVycykgYW5kIG1lbW9yeS1tYXBwZWQgSS9PLCBhbmQgdGhlIGFzc29jaWF0ZWQgY29tcGxleGl0eSBvZiBidXMgbWFzdGVyaW5nLlxuXG5GdXJ0aGVybW9yZSwgSSdkIG5lZWQgdG8gY29uc2lkZXIgdGhlIHBvd2VyIG1hbmFnZW1lbnQgYXNwZWN0cy4gUENJIGRldmljZXMgb2Z0ZW4gaGF2ZSB0aGVpciBvd24gcG93ZXIgc3RhdGVzLCBhbmQgb3B0aW1pemluZyB0aGlzIHRvIHJlZHVjZSBwb3dlciBjb25zdW1wdGlvbiBvciBpbXByb3ZlIHJlc3BvbnNpdmVuZXNzIG1heSBiZSBhIGtleSBjb25zaWRlcmF0aW9uIGluIGFueSBwb3RlbnRpYWwgZGVzaWduIG9yIGRlYnVnZ2luZyBleGVyY2lzZS4gVGhlIGNsb2NraW5nIHNjaGVtZSBpcyBhbHNvIGxpa2VseSB0byBiZSB2ZXJ5IGltcG9ydGFudCwgc2luY2UgdGhlIE1BQyBuZWVkcyBhIHN0YWJsZSBjbG9jayBzaWduYWwgYW5kIG5lZWRzIHRvIGJlIHN5bmNocm9uaXplZCB3aXRoIHRoZSBQQ0kgYnVzIGNsb2NrLlxuXG5VbHRpbWF0ZWx5LCBJJ2QgbmVlZCB0byBsb29rIGF0IHRoZSBvdmVyYWxsIGFyY2hpdGVjdHVyZSBvZiB0aGlzIGRldmljZSwgaW4gcGFydGljdWxhciwgdGhlIGNvbmZpZ3VyYXRpb24gYW5kIGludGVyYWN0aW9uIG9mIHRoaXMgU1RNTUFDIElQIGNvcmUgYW5kIFBDSSBidXMuIFRoZSBzcGVjaWZpYyBkZXRhaWxzLCBsaWtlIHRoZSB0eXBlIG9mIFBDSSBidXMgKHN0YW5kYXJkIFBDSSwgUENJIEV4cHJlc3MsIGV0Yy4pIHdpbGwgc3Ryb25nbHkgaW1wYWN0IGRyaXZlciBjaG9pY2VzIGFuZCBvdmVyYWxsIGRlc2lnbiBjb25zdHJhaW50cy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzAwOTQsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIwOjEwOjE5Ljg0OTk2NDE5OFoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjU5NTk5OTI0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBTVE1NQUNfUENJXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM5OD1jb25maWcgRFdNQUNfTU9UT1JDT01NXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQwNzpjb25maWcgU1RNTUFDX1BDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA4LVxcdHRyaXN0YXRlIFxcXCJTVE1NQUMgUENJIGJ1cyBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMDoxMDoyMC4xMDk1NzAyODJaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Njc2OTAxMDc3MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipSZWFjaGluZyBQaHlsaW5rIFBDUyBMb29wYmFjayBmb3IgRnV6emluZyoqXG5cbk9rYXksIHNvIEkndmUgaWRlbnRpZmllZCBhIHByb21pc2luZyBhcmVhIGZvciBmdXp6aW5nOiBzcGVjaWZpY2FsbHksIHRoZSBwb3RlbnRpYWwgbG9vcGJhY2sgZnVuY3Rpb25hbGl0eSB3aXRoaW4gdGhlIFNUTU1BQyBkcml2ZXIuIEkgbmVlZCB0byBlbnN1cmUgdGhlc2UgY29tcG9uZW50cyBhcmUgZW5hYmxlZDogYFNUTU1BQ19FVEhgLCBgU1RNTUFDX1BDSWAsIGFuZCBgU1RNTUFDX1NFTEZURVNUU2AuIE15IHByaW1hcnkgZm9jdXMgaXMgZ2V0dGluZyB0byB0aGUgYHBoeWxpbmtfcGNzX2xvb3BiYWNrYCBmdW5jdGlvbiwgYXMgdGhhdCBzZWVtcyBsaWtlIGEgZ29vZCB0YXJnZXQuXG5cbkxldCdzIHRyYWNlIGhvdyB0aGlzIGZ1bmN0aW9uIGlzIHJlYWNoZWQuIFRoZSBwYXRoIGlzIGNsZWFyOiBUaGUgcGF0Y2ggYWRkcyBgcGh5bGlua19wY3NfbG9vcGJhY2tgIHRvIGBkcml2ZXJzL25ldC9waHkvcGh5bGluay5jYC4gIFRoaXMgZnVuY3Rpb24gaXMgdGhlbiBjYWxsZWQgYnkgYHN0bW1hY190ZXN0X3BoeV9sb29wYmFja2AsIHdoaWNoIGxpdmVzIGluIGBzdG1tYWNfc2VsZnRlc3RzLmNgLiBUaGF0IGZ1bmN0aW9uIGlzLCBpbiB0dXJuLCBjYWxsZWQgYnkgYHN0bW1hY19zZWxmdGVzdF9ydW5gLiBBbmQgZmluYWxseSwgYHN0bW1hY19zZWxmdGVzdF9ydW5gIGlzIGludm9rZWQgdGhyb3VnaCBgc3RtbWFjX2V0aHRvb2xfb3BzLnNlbGZfdGVzdGAuIFRoZSBpbXBvcnRhbnQgcGFydCBpcyB0aGF0IGV0aHRvb2wgc2VsZiB0ZXN0cyBhcmUgdHJpZ2dlcmVkIGJ5IHN5emthbGxlciB2aWEgYGlvY3RsKFNJT0NFVEhUT09MLCBFVEhUT09MX1RFU1QpYC4gVGhpcyBtZWFucyB0aGF0IGl0J3MgYSBjb21wbGV0ZWx5IHJlYWNoYWJsZSBwYXRoLlxuXG5Ob3csIEkgd2FudCB0byBkcmlsbCBkb3duIGFuZCBzZWUgdGhlIGV4YWN0IGZ1bmN0aW9ucyBpbnZvbHZlZC4gVGhlIHBhdGNoIGFsc28gYWRkcyBgZHdtYWNfaW50ZWdyYXRlZF9wY3NfbG9vcGJhY2tgIGluIGBzdG1tYWNfcGNzLmNgIGFuZCBhIHN0YXRpYyBmdW5jdGlvbiBgc3RtbWFjX3NlbGZ0ZXN0X2dldF9wY3NgIGluIGBzdG1tYWNfc2VsZnRlc3RzLmNgLiBUaGUgbW9yZSBpbnRlcmVzdGluZyBvbmUgaXMgYHBoeWxpbmtfcGNzX2xvb3BiYWNrYCBiZWNhdXNlIGl0J3MgZXhwb3J0ZWQgYW5kIGNhbiBiZSBjYWxsZWQgZnJvbSBvdXRzaWRlLlxuXG5IYW5nIG9uLi4uIGBkd21hY19pbnRlZ3JhdGVkX3Bjc19sb29wYmFja2AgaXMgc3RhdGljLiBUaGF0J3Mgbm90IGlkZWFsIGZvciBmdXp6aW5nLiBDYW4gSSBmb2N1cyBvbiBgcGh5bGlua19wY3NfbG9vcGJhY2tgPyBZZXMhIEl0IGlzIGV4cG9ydGVkLiBBbmQgd2hhdCBhYm91dCBgc3RtbWFjX3Rlc3RfcGh5X2xvb3BiYWNrYD8gSXQncyBzdGF0aWMsIGJ1dCBJJ20gZ2V0dGluZyB0aGVyZS4gSXQncyBjYWxsZWQgYnkgYHN0bW1hY19zZWxmdGVzdF9ydW5gLCB3aGljaCBpcyB0aGUgZW50cnkgcG9pbnQsIHNvIEknbGwgYWxzbyBjaGVjayBgc3RtbWFjX3NlbGZ0ZXN0X3J1bmAgaW4gYHN0bW1hY19zZWxmdGVzdHMuY2AgdG8gdW5kZXJzdGFuZCB0aGUgYmlnZ2VyIHBpY3R1cmUuIFRoaXMgc2VlbXMgdmVyeSBwcm9taXNpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwNjc4LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzg2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIwOjEwOjI2Ljg3ODU4NTc1M1oiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjYwNzE1MTU0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0bW1hY19zZWxmdGVzdF9ydW5cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hYy5oPTQzND1zdHJ1Y3QgdGltZXNwZWM2NCBzdG1tYWNfY2FsY190YXNfYmFzZXRpbWUoa3RpbWVfdCBvbGRfYmFzZV90aW1lLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmgtNDM4LSNpZiBJU19FTkFCTEVEKENPTkZJR19TVE1NQUNfU0VMRlRFU1RTKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hYy5oOjQzOTp2b2lkIHN0bW1hY19zZWxmdGVzdF9ydW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWMuaC00NDAtXFx0XFx0XFx0IHN0cnVjdCBldGh0b29sX3Rlc3QgKmV0ZXN0LCB1NjQgKmJ1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWMuaD00NDI9aW50IHN0bW1hY19zZWxmdGVzdF9nZXRfY291bnQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWMuaC00NDMtI2Vsc2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWMuaDo0NDQ6c3RhdGljIGlubGluZSB2b2lkIHN0bW1hY19zZWxmdGVzdF9ydW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWMuaC00NDUtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBldGh0b29sX3Rlc3QgKmV0ZXN0LCB1NjQgKmJ1ZilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmM9MTA5Mj1zdGF0aWMgY29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzIHN0bW1hY19ldGh0b29sX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMtMTEwNS1cXHQuc2V0X3BhdXNlcGFyYW0gPSBzdG1tYWNfc2V0X3BhdXNlcGFyYW0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYzoxMTA2OlxcdC5zZWxmX3Rlc3QgPSBzdG1tYWNfc2VsZnRlc3RfcnVuLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMtMTEwNy1cXHQuZ2V0X2V0aHRvb2xfc3RhdHMgPSBzdG1tYWNfZ2V0X2V0aHRvb2xfc3RhdHMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfc2VsZnRlc3RzLmM9MTg1MT1zdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY190ZXN0IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19zZWxmdGVzdHMuYy0xOTg2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19zZWxmdGVzdHMuYzoxOTg3OnZvaWQgc3RtbWFjX3NlbGZ0ZXN0X3J1bihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19zZWxmdGVzdHMuYy0xOTg4LVxcdFxcdFxcdCBzdHJ1Y3QgZXRodG9vbF90ZXN0ICpldGVzdCwgdTY0ICpidWYpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIwOjEwOjI3LjEzOTMxMjc0N1oiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTk0MzEwNjg4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgRXRoZXJuZXQgRHJpdmVyIFNlbGYtVGVzdCBGbG93KipcblxuT2theSwgc28gSSdtIGRpdmluZyBpbnRvIHRoaXMgc2VsZi10ZXN0IGZ1bmN0aW9uIGZvciB0aGUgRXRoZXJuZXQgZHJpdmVyLiBUaGUgZW50cnkgcG9pbnQsIGFzIEkgc2VlIGl0LCBpcyBgc3RtbWFjX3NlbGZ0ZXN0X3J1bmAuIEZpcnN0LCBJIHdhbnQgdG8gY29uZmlybSB3aGV0aGVyIG9yIG5vdCBgc3RtbWFjX3Rlc3RfcGh5X2xvb3BiYWNrYCBpcyBzdGF0aWMuIEFscmlnaHQsIGl0IGlzLiBUaGF0IG1lYW5zIEkgY2FuIHByb2JhYmx5IGF2b2lkIGZvY3VzaW5nIG9uIGl0IGRpcmVjdGx5LlxuXG5OZXh0LCBJJ20gZ29pbmcgdG8gbG9vayBjbG9zZWx5IGF0IGBzdG1tYWNfc2VsZnRlc3RfcnVuYCBpdHNlbGYgYW5kIGFsc28gYHBoeWxpbmtfcGNzX2xvb3BiYWNrYC4gV2FpdCBhIG1pbnV0ZSwgd2hhdCBhYm91dCBgZHdtYWNfaW50ZWdyYXRlZF9wY3NfbG9vcGJhY2tgPyBJdCdzIG1hcmtlZCBhcyBzdGF0aWMsIGJ1dCBpdCdzIGFzc2lnbmVkIHRvIGBwY3NfbG9vcGJhY2tgIGluc2lkZSBgZHdtYWNfaW50ZWdyYXRlZF9wY3Nfb3BzYC4gVGhlIGlubGluaW5nIG1ha2VzIGl0IGhhcmRlciwgYnV0IHNpbmNlIGl0J3MgYXNzaWduZWQgdG8gYSBmdW5jdGlvbiBwb2ludGVyLCBpdCAqc2hvdWxkbid0KiBiZSBpbmxpbmVkLiBFdmVuIHNvLCBpdCdzIGdlbmVyYWxseSBiZXR0ZXIgdG8gcHJpb3JpdGl6ZSBleHBvcnRlZCBvciBub24tc3RhdGljIGZ1bmN0aW9ucyBmb3IgdGhpcyBraW5kIG9mIGFuYWx5c2lzLlxuXG5UaGFua2Z1bGx5LCBgcGh5bGlua19wY3NfbG9vcGJhY2tgICppcyogZXhwb3J0ZWQsIHdoaWNoIGlzIHBlcmZlY3QuIEFuZCBjb25maXJtaW5nIHRoYXQgYHN0bW1hY19zZWxmdGVzdF9ydW5gIGlzIGFsc28gbm9uLXN0YXRpYywgSSBjYW4gZ2V0IHRvIHdvcmsuXG5cblRoZXJlZm9yZSwgbXkgbmV4dCBtb3ZlIGlzIHRvIGNoZWNrIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgcGh5bGlua19wY3NfbG9vcGJhY2tgIGxvY2F0ZWQgaW4gYGRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjMxNSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMDoxMDozMS43MzM2MjY0ODVaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNzk1NTI4OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwaHlsaW5rX3Bjc19sb29wYmFja1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9waHkvcGh5bGluay5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM9OTk4PUVYUE9SVF9TWU1CT0xfR1BMKHBoeWxpbmtfcGNzX3ByZV9pbml0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMTAwMC0vKipcXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjEwMDE6ICogcGh5bGlua19wY3NfbG9vcGJhY2soKSAtIEVuYWJsZSBvciBkaXNhYmxlIGxvb3BiYWNrIGF0IHRoZSBQQ1NcXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTEwMDItICogQHBjczogYSBwb2ludGVyIHRvIGEgXFx1MDAyNnN0cnVjdCBwaHlsaW5rX3Bjcy5cXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMTAwOS0gKi9cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjEwMTA6aW50IHBoeWxpbmtfcGNzX2xvb3BiYWNrKHN0cnVjdCBwaHlsaW5rX3BjcyAqcGNzLCBib29sIGVuYWJsZSlcXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTEwMTEte1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0xMDE2LX1cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjEwMTc6RVhQT1JUX1NZTUJPTF9HUEwocGh5bGlua19wY3NfbG9vcGJhY2spO1xcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMTAxOC1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjA6MTA6MzEuODQxNTkyMTAzWiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyNTQ0OTMwMzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRm9jdXNpbmcgb24gU2VsZi1UZXN0IGFuZCBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSd2ZSB6ZXJvZWQgaW4gb24gdGhlIHJpZ2h0IGFyZWFzIHRvIGludmVzdGlnYXRlLiBgcGh5bGlua19wY3NfbG9vcGJhY2tgIGZlZWxzIGxpa2UgYSBzb2xpZCBmb2N1cyBzeW1ib2w7IGl0J3MgcmlnaHQgaW4gdGhlIHdoZWVsaG91c2UuIFNpbWlsYXJseSwgYHN0bW1hY19zZWxmdGVzdF9ydW5gIGlzIGFub3RoZXIgZXhjZWxsZW50IHBvaW50IG9mIHJlZmVyZW5jZSBmb3IgdGhpcyBzZWxmLXRlc3Qgd29yay5cblxuTm93LCBsZXQncyBwaXZvdCB0byB0aGUgY29uZmlndXJhdGlvbiBhc3BlY3RzLiBXaGF0IGFyZSB0aGUga2V5IGNvbmZpZyBzeW1ib2xzIHdlIG5lZWQgdG8gY29uc2lkZXI/IEknbSB0aGlua2luZzogYFNUTU1BQ19FVEhgLCBgU1RNTUFDX1BDSWAsIGBTVE1NQUNfU0VMRlRFU1RTYCwgYW5kIGBQSFlMSU5LYC4gYFBIWUxJTktgIGlzIHVzdWFsbHkgYnJvdWdodCBpbiB2aWEgYFNUTU1BQ19FVEhgIG9yIHNvbWV0aGluZyBsaWtlIGBNQUNCYCwgYnV0IGl0J3Mgd29ydGggbGlzdGluZyBleHBsaWNpdGx5IGZvciBjbGFyaXR5LiBUaGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gcXVpY2tseSBjb25maXJtIGlmIGBTVE1NQUNfRVRIYCBwcm9wZXJseSBzZWxlY3RzIG9yIHRyaWdnZXJzIGBQSFlMSU5LYC4gV2UgbmVlZCB0byBiZSBzdXJlIHRoZSBkZXBlbmRlbmNpZXMgYXJlIGFzIHdlIGV4cGVjdCB0aGVtIHRvIGJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzE1NCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMDoxMDozNi4wOTYwOTA4ODlaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUxMjY3MTU0OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzZWxlY3QgUEhZTElOS1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yPWNvbmZpZyBTVE1NQUNfRVRIXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTktXFx0c2VsZWN0IFBBR0VfUE9PTFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTA6XFx0c2VsZWN0IFBIWUxJTktcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTExLVxcdHNlbGVjdCBDUkMzMlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMDoxMDozNi42MDkyNTkwODhaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzMxOTg3MTQxNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBhdGNoJ3MgSW1wYWN0KipcblxuT2theSwgc28gSSd2ZSBjb25maXJtZWQgdGhlIGluaXRpYWwgYXNzZXNzbWVudCDigJMgdGhlIGNoYW5nZSBkZWZpbml0ZWx5IGFwcGxpZXMuIEJ1dCBob2xkIG9uIGEgc2Vjb25kLi4uIHRoZSBwYXRjaCBpc24ndCAqanVzdCogdG91Y2hpbmcgdGhhdCBvbmUgZmlsZS4gSXQgbG9va3MgbGlrZSBpdCdzIGFsc28gbW9kaWZ5aW5nIGBzdG1tYWNfcGNzLmNgLiBUaGlzIHJhaXNlcyBhIHF1ZXN0aW9uIEkgbmVlZCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUgYWJvdXQuIElzIGBzdG1tYWNfcGNzLmNgIHVuY29uZGl0aW9uYWxseSBjb21waWxlZCBpbnRvIHRoZSBidWlsZCB3aGVuIGBTVE1NQUNfRVRIYCBpcyBlbmFibGVkPyBJIG5lZWQgdG8gYmUgY2VydGFpbiwgYmVjYXVzZSBhbnkgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gY2hhbmdlcyB0aGUgc2NvcGUgb2YgbXkgcmV2aWV3LiBUaW1lIHRvIGRpdmUgaW50byB0aGUgYE1ha2VmaWxlYCBhbmQgY29uZmlybSBob3cgdGhpcyBpcyBjb25maWd1cmVkLiBHb3R0YSBnZXQgdGhlIGJ1aWxkIGRlcGVuZGVuY2llcyBhbmQgYW55IHBvdGVudGlhbGx5IGhpZGRlbiBpbnRlcmFjdGlvbnMgaXJvbmVkIG91dCBub3csIGJlZm9yZSBJIHdhc3RlIHRpbWUgb24gYSBkb3duc3RyZWFtIGlzc3VlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzY0MywiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIwOjEwOjM5LjkyOTEzNDc2NFoiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ3NTMxNjA0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0bW1hY19wY3Mub1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU9Mz1zdG1tYWMtb2Jqczo9IHN0bW1hY19tYWluLm8gc3RtbWFjX2V0aHRvb2wubyBzdG1tYWNfbWRpby5vIHJpbmdfbW9kZS5vXFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtOS1cXHQgICAgICBzdG1tYWNfeGRwLm8gc3RtbWFjX2VzdC5vIHN0bW1hY19mcGUubyBzdG1tYWNfdmxhbi5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToxMDpcXHQgICAgICBzdG1tYWNfcGNzLm8gJChzdG1tYWMteSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0xMS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjA6MTA6NDAuMTc2NjcyOTk4WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4MTMzMDU0NTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQ3VycmVudCBMaW5lIG9mIFJlYXNvbmluZyoqXG5cbk9rYXksIHllcywgdGhhdCdzIGNvcnJlY3QuIExldCdzIHNlZSwgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIGhlcmUgYXJlIGBTVE1NQUNfRVRIYCwgYFNUTU1BQ19QQ0lgLCBhbmQgYFNUTU1BQ19TRUxGVEVTVFNgLiBOb3csIGEgcXVpY2sgcGF1c2UuLi4gZG9lcyBqdXN0IGBTVE1NQUNfUENJYCBhbG9uZSBlbmFibGUgdGhlIGRyaXZlciB0byBwcm9iZSBwcm9wZXJseSBpbiBhIHZpcnR1YWxpemVkIGNvbnRleHQ/IEkga25vdyBzeXprYWxsZXIgY2FuIGluamVjdCBQQ0kgZGV2aWNlcyB1c2luZyBgc3l6X3BjaV9kZXZpY2VfYWRkYC4gSGFuZyBvbiwgbWF5YmUgaXQgKmRvZXNuJ3QqIG5lZWQgYFNUTU1BQ19QQ0lgIGlmIGl0IGNhbiBpbmplY3QgcGxhdGZvcm0gZGV2aWNlcyBkaXJlY3RseT8gQWgsIHJpZ2h0LCBzeXprYWxsZXIgZG9lc24ndCBoYXZlIGEgYHN5el9wbGF0Zm9ybV9kZXZpY2VfYWRkYCBmdW5jdGlvbiwgb25seSB0aGluZ3MgbGlrZSBgc3l6X3BjaV9kZXZpY2VfYWRkYCBhbmQgYHN5el91c2JfY29ubmVjdGAuIFNvLCB0byBsZXZlcmFnZSBQQ0kgaW5qZWN0aW9uIHdpdGggc3l6a2FsbGVyLCBpdCAqZG9lcyogbmVlZCBgU1RNTUFDX1BDSWAuXG5cbkxldCBtZSBqdXN0IHF1aWNrbHkgY29uZmlybSB0aGF0IGBTVE1NQUNfUENJYCBpcywgaW4gZmFjdCwgYSB0cmlzdGF0ZS4gR29vZCwgaXQgaXMuIFRoZXJlZm9yZSwgd2Ugc2hvdWxkIGFic29sdXRlbHkgaW5jbHVkZSBgU1RNTUFDX1BDSWAgaW4gdGhlIGNvbmZpZ3VyYXRpb24uIE5vdywganVzdCB0byBiZSB0aG9yb3VnaCwgSSBzaG91bGQgZG91YmxlLWNoZWNrIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGRlcGVuZGVuY2llcyBvbiBgU1RNTUFDX1BDSWAgdGhhdCBtaWdodCBuZWVkIHRvIGJlIGNvbnNpZGVyZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM0MDcyLCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjI0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIwOjEwOjQ0Ljk4OTk4MjU2M1oiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjU1NjY2MDE0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBTVE1NQUNfUENJXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM5OD1jb25maWcgRFdNQUNfTU9UT1JDT01NXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQwNzpjb25maWcgU1RNTUFDX1BDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA4LVxcdHRyaXN0YXRlIFxcXCJTVE1NQUMgUENJIGJ1cyBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMDoxMDo0NS4yNDU2NTk4MTdaIiwiU2VxIjoyNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDU5NTQ5OTQyOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOlxuXG4qKkRlY29uc3RydWN0aW5nIGBTVE1NQUNfUENJYCBEZXBlbmRlbmNpZXMqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IGBTVE1NQUNfUENJYCBhY3R1YWxseSAqcmVsaWVzKiBvbi4gSSdtIHRoaW5raW5nLCBpbiB0ZXJtcyBvZiBzeXN0ZW0gYXJjaGl0ZWN0dXJlLCB0aGlzIGlzIGxpa2VseSBhIG5ldHdvcmsgZHJpdmVyLCByaWdodD8gTW9yZSBzcGVjaWZpY2FsbHksIGl0J3MgcHJvYmFibHkgcmVsYXRlZCB0byBhIHNwZWNpZmljIEV0aGVybmV0IGNvbnRyb2xsZXIsIHRoZSBvbmUgd2l0aCBhbiBcIlNUXCIgcHJlZml4IHdoaWNoIHN1Z2dlc3RzIGEgcGFydGljdWxhciBzaWxpY29uIHZlbmRvciAtIHBvc3NpYmx5IFNUTWljcm9lbGVjdHJvbmljcywgdGhvdWdoIEkgc2hvdWxkIHZlcmlmeSB0aGF0LiBUaGUgXCJNQUNcIiBwYXJ0IHN0cm9uZ2x5IHN1Z2dlc3RzIGl04oCZcyBkZWFsaW5nIHdpdGggdGhlIE1lZGlhIEFjY2VzcyBDb250cm9sbGVyIGxheWVyLCB3aGljaCBpcyBjcnVjaWFsIGZvciBoYW5kbGluZyBFdGhlcm5ldCBmcmFtZXMuIEFuZCB0aGUgXCJQQ0lcIiBzdWZmaXg/IFRoYXQgaW1tZWRpYXRlbHkgdGVsbHMgbWUgdGhpcyBkcml2ZXIgaW50ZXJmYWNlcyB3aXRoIHRoZSBoYXJkd2FyZSB2aWEgdGhlIFBlcmlwaGVyYWwgQ29tcG9uZW50IEludGVyY29ubmVjdCBidXMuXG5cblRoZXJlZm9yZSwgdGhlIGZpcnN0IHF1ZXN0aW9ucyBJJ20gYXNraW5nIG15c2VsZiBhcmU6IFdoYXQgc3BlY2lmaWMgaGFyZHdhcmUgdmFyaWF0aW9ucyBpcyBpdCBkZXNpZ25lZCB0byBoYW5kbGU/IFdoYXQgb3RoZXIgZHJpdmVycyBvciBtb2R1bGVzIG1pZ2h0IGJlIHJlcXVpcmVkIGZvciB0aGlzIHRvIGZ1bmN0aW9uIGNvcnJlY3RseT8gRm9yIGV4YW1wbGUsIGlzIHRoZXJlIGEgc3BlY2lmaWMgUENJIGNvbnRyb2xsZXIgZHJpdmVyIGl0IG5lZWRzPyBBcmUgdGhlcmUgYW55IGxvd2VyLWxldmVsIGhhcmR3YXJlIGFic3RyYWN0aW9uIGxheWVycyB0aGF0IGl0IHVzZXM/IEFyZSB0aGVyZSBhbnkgZmlybXdhcmUgb3Igc2hhcmVkIGxpYnJhcnkgZGVwZW5kZW5jaWVzIHRoYXQgaXQgbWlnaHQgbG9hZD8gSSBuZWVkIHRvIGxvb2sgZm9yIGhlYWRlcnMsIGluY2x1ZGUgZmlsZXMsIG9yIGNvbmZpZ3VyYXRpb24gZmlsZXMgdG8gZGV0ZXJtaW5lIHdoYXQgb3RoZXIgcGFydHMgb2YgdGhlIHN5c3RlbSBhcmUgbmVlZGVkIHRvIG1ha2UgaXQgcnVuLiBJJ2xsIG5lZWQgdG8gbG9vayBhdCBpdHMgS2NvbmZpZyBlbnRyaWVzLiBUaGlzIGlzIGdvaW5nIHRvIGJlIG15IHN0YXJ0aW5nIHBvaW50LiBJIGtub3cgSSdtIGFscmVhZHkgdGhpbmtpbmcgYWJvdXQgcG90ZW50aWFsIGNvbmZsaWN0cyBvciBkZXBlbmRlbmNpZXMgb24gb3RoZXIgZHJpdmVycywgYW5kIEkgbmVlZCB0byBzdGFydCBmaWd1cmluZyBvdXQgcG90ZW50aWFsIHZlcnNpb24gcmVxdWlyZW1lbnRzIG9mIGFueSBleHRlcm5hbCBsaWJyYXJpZXMsIHNvIEkgY2FuIHN0YXJ0IHRvIGRldmVsb3AgYSBob2xpc3RpYyB2aWV3IG9mIHRoZSBgU1RNTUFDX1BDSWAgZWNvc3lzdGVtLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNDc0MCwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDIwOjEwOjQ5Ljg0MTE2NDE1NVoiLCJTZXEiOjI4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjA4NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiA0MDAsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiA0MDA6XFx0XFx0ZGVwZW5kcyBvbiBQQ0lcXG4gNDAxOlxcdFxcdHNlbGVjdCBNT1RPUkNPTU1fUEhZXFxuIDQwMjpcXHRcXHRzZWxlY3QgU1RNTUFDX0xJQlBDSVxcbiA0MDM6XFx0XFx0aGVscFxcbiA0MDQ6XFx0XFx0ICBUaGlzIGVuYWJsZXMgZ2x1ZSBkcml2ZXIgZm9yIE1vdG9yY29tbSBEV01BQy1iYXNlZCBQQ0kgRXRoZXJuZXRcXG4gNDA1OlxcdFxcdCAgY29udHJvbGxlcnMuIEN1cnJlbnRseSBvbmx5IFlUNjgwMSBpcyBzdXBwb3J0ZWQuXFxuIDQwNjpcXHRcXG4gNDA3OlxcdGNvbmZpZyBTVE1NQUNfUENJXFxuIDQwODpcXHRcXHR0cmlzdGF0ZSBcXFwiU1RNTUFDIFBDSSBidXMgc3VwcG9ydFxcXCJcXG4gNDA5OlxcdFxcdGRlcGVuZHMgb24gUENJXFxuIDQxMDpcXHRcXHRkZXBlbmRzIG9uIENPTU1PTl9DTEtcXG4gNDExOlxcdFxcdHNlbGVjdCBTVE1NQUNfTElCUENJXFxuIDQxMjpcXHRcXHRoZWxwXFxuIDQxMzpcXHRcXHQgIFRoaXMgc2VsZWN0cyB0aGUgcGxhdGZvcm0gc3BlY2lmaWMgYnVzIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLlxcbiA0MTQ6XFx0XFx0ICBUaGlzIGRyaXZlciB3YXMgdGVzdGVkIG9uIFhMSU5YIFhDMlYzMDAwIEZGMTE1MkFNVDAyMjFcXG4gNDE1OlxcdFxcdCAgRDEyMTU5OTRBIFZJUlRFWCBGUEdBIGJvYXJkIGFuZCBTTlBTIFFvUyBJUEsgUHJvdG90eXBpbmcgS2l0LlxcbiA0MTY6XFx0XFxuIDQxNzpcXHRcXHQgIElmIHlvdSBoYXZlIGEgY29udHJvbGxlciB3aXRoIHRoaXMgaW50ZXJmYWNlLCBzYXkgWSBvciBNIGhlcmUuXFxuIDQxODpcXHRcXG4gNDE5OlxcdFxcdCAgSWYgdW5zdXJlLCBzYXkgTi5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjA6MTA6NDkuODQxMjg3Njk1WiIsIlNlcSI6MjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3NDY2Mzk2MTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCBtZSB0aGluayB0aGlzIHRocm91Z2guXG5cbioqQW5hbHl6aW5nIERyaXZlciBEZXBlbmRlbmNpZXMqKlxuXG5BbHJpZ2h0LCBzbyB0aGUgYFNUTU1BQ19QQ0lgIGRyaXZlciBsZXZlcmFnZXMgdGhlIGBQQ0lgIGFuZCBgQ09NTU9OX0NMS2Agc3Vic3lzdGVtcy4gYFBDSWAgaXMgcHJldHR5IG11Y2ggdWJpcXVpdG91cyDigJMgaXQncyBhIHN0YW5kYXJkIGludGVyZmFjZSwgYSBmb3VuZGF0aW9uYWwgcGllY2Ugb2YgaGFyZHdhcmUgaW50ZWdyYXRpb24uIEFuZCBgQ09NTU9OX0NMS2AgaXMgYmVjb21pbmcgaW5jcmVhc2luZ2x5IHByZXZhbGVudCBhY3Jvc3MgdmFyaW91cyBhcmNoaXRlY3R1cmVzLCBhbm90aGVyIHN0YW5kYXJkIHRoYXQncyBlc3NlbnRpYWxseSBiYWtlZCBpbiB0aGVzZSBkYXlzLiBUaGF0IG1lYW5zIGBTVE1NQUNfUENJYCBzZWVtcyBsaWtlIGEgc29saWQgY2hvaWNlIGZyb20gYSBkZXBlbmRlbmN5IHBlcnNwZWN0aXZlLCByZWxhdGl2ZWx5IGVhc3kgdG8gc3VwcG9ydCwgSSdkIHNheS4gTm8gaW1tZWRpYXRlIHJlZCBmbGFncyB0aGVyZS5cblxuSG93ZXZlciwgSSBzaG91bGQgdGFrZSBhIGJyb2FkZXIgbG9vayBhdCB0aGUgbGFuZHNjYXBlLiBIb2xkIG9uIGEgc2Vjb25kLi4uIHdoYXQgYWJvdXQgYERXTUFDX0lOVEVMYD8gTm93IHRoYXQgSSB0aGluayBhYm91dCBpdCwgdGhhdCdzIGFub3RoZXIgUENJLWJhc2VkIGRyaXZlci4gSSBzaG91bGQgYW5hbHl6ZSBpdCBpbiBhIHNpbWlsYXIgbGlnaHQgdG8gZW5zdXJlIGEgY29oZXJlbnQgYXBwcm9hY2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM1NDU1LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzgsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QyMDoxMDo1My41ODc5MzMzNjJaIiwiU2VxIjozMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjA4MjQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMzcwLFxuICBcIkxpbmVDb3VudFwiOiAzMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMzcwOlxcdFxcbiAzNzE6XFx0ZW5kaWYgIyBTVE1NQUNfUExBVEZPUk1cXG4gMzcyOlxcdFxcbiAzNzM6XFx0Y29uZmlnIFNUTU1BQ19MSUJQQ0lcXG4gMzc0OlxcdFxcdHRyaXN0YXRlXFxuIDM3NTpcXHRcXHRoZWxwXFxuIDM3NjpcXHRcXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIFBDSSBidXMgaGVscGVycyBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXFxuIDM3NzpcXHRcXG4gMzc4OlxcdGNvbmZpZyBEV01BQ19JTlRFTFxcbiAzNzk6XFx0XFx0dHJpc3RhdGUgXFxcIkludGVsIEdNQUMgc3VwcG9ydFxcXCJcXG4gMzgwOlxcdFxcdGRlZmF1bHQgWDg2XFxuIDM4MTpcXHRcXHRkZXBlbmRzIG9uIFg4NiBcXHUwMDI2XFx1MDAyNiBQQ0lcXG4gMzgyOlxcdFxcdGRlcGVuZHMgb24gQ09NTU9OX0NMS1xcbiAzODM6XFx0XFx0ZGVwZW5kcyBvbiBBQ1BJXFxuIDM4NDpcXHRcXHRoZWxwXFxuIDM4NTpcXHRcXHQgIFRoaXMgc2VsZWN0cyB0aGUgSW50ZWwgcGxhdGZvcm0gc3BlY2lmaWMgYnVzIHN1cHBvcnQgZm9yIHRoZVxcbiAzODY6XFx0XFx0ICBzdG1tYWMgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBJbnRlbCBRdWFyay9FSEwvVEdMLlxcbiAzODc6XFx0XFxuIDM4ODpcXHRjb25maWcgRFdNQUNfTE9PTkdTT05cXG4gMzg5OlxcdFxcdHRyaXN0YXRlIFxcXCJMb29uZ3NvbiBQQ0kgRFdNQUMgc3VwcG9ydFxcXCJcXG4gMzkwOlxcdFxcdGRlZmF1bHQgTUFDSF9MT09OR1NPTjY0XFxuIDM5MTpcXHRcXHRkZXBlbmRzIG9uIChNQUNIX0xPT05HU09ONjQgfHwgQ09NUElMRV9URVNUKSBcXHUwMDI2XFx1MDAyNiBQQ0lcXG4gMzkyOlxcdFxcdGRlcGVuZHMgb24gQ09NTU9OX0NMS1xcbiAzOTM6XFx0XFx0c2VsZWN0IFNUTU1BQ19MSUJQQ0lcXG4gMzk0OlxcdFxcdGhlbHBcXG4gMzk1OlxcdFxcdCAgVGhpcyBzZWxlY3RzIHRoZSBMT09OR1NPTiBQQ0kgYnVzIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLFxcbiAzOTY6XFx0XFx0ICBTdXBwb3J0IGZvciBldGhlcm5ldCBjb250cm9sbGVyIG9uIExvb25nc29uLTJLMTAwMCBTb0MgYW5kIExTN0ExMDAwIGJyaWRnZS5cXG4gMzk3OlxcdFxcbiAzOTg6XFx0Y29uZmlnIERXTUFDX01PVE9SQ09NTVxcbiAzOTk6XFx0XFx0dHJpc3RhdGUgXFxcIk1vdG9yY29tbSBQQ0kgRFdNQUMgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjA6MTA6NTMuNTg4MTQ1ODUzWiIsIlNlcSI6MzEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEzMjgyMjUxMjc5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5c2lzIG9mIHRoZSBTVE1NQUMgSW50ZWdyYXRlZCBQQ1MgTG9vcGJhY2sgRnVuY3Rpb25hbGl0eSoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIGBEV01BQ19JTlRFTGAgaXMgYWxzbyBhIFBDSSBkcml2ZXIsIHNvIHRoYXQncyBzb21ldGhpbmcgdG8ga2VlcCBpbiBtaW5kLCBldmVuIHRob3VnaCBgU1RNTUFDX1BDSWAgc3VwcG9ydHMgc3BlY2lmaWMgZGV2aWNlIGRhdGEgZm9yIGJvdGggYFNUTU1BQ2AgYW5kIGBTVE1JQ1JPYCB3aXRoIGBcdTAwMjZzdG1tYWNfcGNpX2luZm9gLiBTaW5jZSBTeXprYWxsZXIgY2FuIGluamVjdCBhbnkgUENJIElELCBgU1RNTUFDX1BDSWAgc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIG91ciBwdXJwb3Nlcy5cblxuTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGVuc3VyZSB3ZSBoYXZlIHRoZSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbnMgZW5hYmxlZC4gV2UncmUgbG9va2luZyBhdCBgU1RNTUFDX0VUSGAsIGBTVE1NQUNfUENJYCwgYW5kLCBjcnVjaWFsbHksIGBTVE1NQUNfU0VMRlRFU1RTYC4gQSBxdWljayBjaGVjayBjb25maXJtcyBhbGwgdGhyZWUuXG5cbk5vdywgcmV2aWV3aW5nIHRoZSBwYXRjaCBpdHNlbGYsIHNwZWNpZmljYWxseSB0aGUgYGR3bWFjX2ludGVncmF0ZWRfcGNzX2xvb3BiYWNrYCBmdW5jdGlvbiwgd2hpY2ggbW9kaWZpZXMgdGhlIEdNQUMgY29udHJvbCByZWdpc3Rlci4gSXQncyBhZGRpbmcgbG9vcGJhY2sgc3VwcG9ydCB0byB0aGUgaW50ZWdyYXRlZCBQQ1MuICBUaGUgY3J1Y2lhbCBwYXJ0IGlzIGhvdyB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQgd2l0aGluIHRoZSBgc3RtbWFjX3NlbGZ0ZXN0cy5jYCBmaWxlLiAgU3BlY2lmaWNhbGx5LCBgc3RtbWFjX3NlbGZ0ZXN0X2dldF9wY3NgLCB3aGljaCBjaGVja3MgZm9yIGVpdGhlciBnbHVlIGRyaXZlcidzIFBDUyBvciB0aGUgaW50ZWdyYXRlZCBQQ1MuICBUaGVuIGBzdG1tYWNfdGVzdF9waHlfbG9vcGJhY2tgIHVzZXMgYHBoeWxpbmtfcGNzX2xvb3BiYWNrYCwgYW5kIHN1YnNlcXVlbnRseSBgc3RtbWFjX3NlbGZ0ZXN0X3J1bmAgYWxzbyB1c2VzIGBwaHlsaW5rX3Bjc19sb29wYmFja2AuXG5cbk15IGZvY3VzIGlzIG9uIHRoZXNlIHN5bWJvbHM6IGBwaHlsaW5rX3Bjc19sb29wYmFja2AgYW5kIGBzdG1tYWNfc2VsZnRlc3RfcnVuYC4gQWx0aG91Z2ggYGR3bWFjX2ludGVncmF0ZWRfcGNzX2xvb3BiYWNrYCBpcyBzdGF0aWMsIGl0J3MgZXhlY3V0ZWQgd2hlbiBgcGh5bGlua19wY3NfbG9vcGJhY2tgIGlzIGNhbGxlZC4gTm8gb3RoZXIgZXhwb3J0ZWQgZnVuY3Rpb25zIGNvbWUgaW50byBwbGF5LlxuXG5MZXQncyBjb25maXJtIHRoZSBjb25maWd1cmF0aW9ucyBhZ2FpbjogYFNUTU1BQ19FVEhgLCBgU1RNTUFDX1BDSWAsIGFuZCBgU1RNTUFDX1NFTEZURVNUU2AsIHBsdXMgYFBIWUxJTktgIHdoaWNoIGlzIHNlbGVjdGVkIGJ5IGBTVE1NQUNfRVRIYCwgYW5kIGBQQ0lgLCB3aGljaCBpcyBzdGFuZGFyZC4gQSBkb3VibGUgY2hlY2sgY29uZmlybXMgYFNUTU1BQ19TRUxGVEVTVFNgIGlzIHRoZSBwcmVjaXNlIGNvbmZpZ3VyYXRpb24gbmFtZS5cblxuTGV0J3MgZW5zdXJlIHRoZSBmdW5jdGlvbiBuYW1lcyBhcmUgY29ycmVjdDogYHZvaWQgc3RtbWFjX3NlbGZ0ZXN0X3J1bihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgZXRodG9vbF90ZXN0ICpldGVzdCwgdTY0ICpidWYpYCBhbmQgYGludCBwaHlsaW5rX3Bjc19sb29wYmFjayhzdHJ1Y3QgcGh5bGlua19wY3MgKnBjcywgYm9vbCBlbmFibGUpYC4gIFZlcmlmaWNhdGlvbiBvZiB0aGUgc3RhdGljIG5hdHVyZSBvZiBgc3RtbWFjX3Rlc3RfcGh5X2xvb3BiYWNrYCBhbmQgYHN0bW1hY19zZWxmdGVzdF9nZXRfcGNzYCBjb25maXJtcyBteSBpbml0aWFsIGFzc2Vzc21lbnQuXG5cblRoZSBrZXkgZm9jdXMgc3ltYm9scyByZW1haW46IGBwaHlsaW5rX3Bjc19sb29wYmFja2AgYW5kIGBzdG1tYWNfc2VsZnRlc3RfcnVuYC5cblxuVGhlIHJlYXNvbmluZyBpcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkOiB0aGlzIHBhdGNoIGFkZHMgYW5kIGVuYWJsZXMgbG9vcGJhY2sgc3VwcG9ydCBmb3IgdGhlIFNUTU1BQyBpbnRlZ3JhdGVkIFBDUyBhbmQgcGh5bGluaywgYW5kIHNpbmNlIHRoaXMgY29kZSBpcyByZWFjaGVkIHZpYSB0aGUgZXRodG9vbCBzZWxmLXRlc3RzLCB3aGljaCBhcmUgYWNjZXNzaWJsZSB0aHJvdWdoIGBTSU9DRVRIVE9PTGAgd2l0aCB0aGUgYEVUSFRPT0xfVEVTVGAgY29tbWFuZCwgd2UgY2FuIHRyaWdnZXIgdGhlIHZ1bG5lcmFiaWxpdHkgYnkgaW5qZWN0aW5nIGEgdmlydHVhbCBQQ0kgc3RtbWFjIGRldmljZSBhbmQgY2FsbGluZyBldGh0b29sIG9uIGl0LiAgQW5kIHRoZSBjb21taXQgbWVzc2FnZSByZWZlcmVuY2VzIHN5ei1jbHVzdGVyIHdpdGggdGhlIHBhdGNoLCB3aGljaCBtZWFucyBpdCBpcyB0ZXN0ZWQgYnkgc3l6a2FsbGVyLiAgVGhlcmVmb3JlLCBpdCBpcyBkZWZpbml0ZWx5IHJlYWNoYWJsZSwgYW5kIGZ1enppbmcgaXQgaXMgZGVmaW5pdGVseSB3b3J0aHdoaWxlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjIwNywiT3V0cHV0VG9rZW5zIjoxNjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjUxLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMjA6MTE6MDYuODcwNDAzMjIxWiIsIlNlcSI6MzIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Njc3NzIyNTU1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJTVE1NQUNfRVRIXCIsXG4gICAgXCJTVE1NQUNfUENJXCIsXG4gICAgXCJTVE1NQUNfU0VMRlRFU1RTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicGh5bGlua19wY3NfbG9vcGJhY2tcIixcbiAgICBcInN0bW1hY19zZWxmdGVzdF9ydW5cIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGxvb3BiYWNrIHN1cHBvcnQgdG8gdGhlIHN0bW1hYyBpbnRlZ3JhdGVkIFBDUyBhbmQgcGh5bGluaywgd2hpY2ggaXMgdXRpbGl6ZWQgYnkgdGhlIHN0bW1hYyBldGh0b29sIHNlbGZ0ZXN0cy4gVGhpcyBjb2RlIGlzIHJlYWNoYWJsZSB2aWEgdGhlIFNJT0NFVEhUT09MIGlvY3RsIHdpdGggdGhlIEVUSFRPT0xfVEVTVCBjb21tYW5kLiBTeXprYWxsZXIgY2FuIHRyaWdnZXIgdGhpcyBieSBpbmplY3RpbmcgYSB2aXJ0dWFsIFBDSSBzdG1tYWMgZGV2aWNlIHVzaW5nIHN5el9wY2lfZGV2aWNlX2FkZCBhbmQgY2FsbGluZyBldGh0b29sIG9uIHRoZSByZXN1bHRpbmcgbmV0ZGV2LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlNUTU1BQ19FVEhcIixcbiAgICBcIlNUTU1BQ19QQ0lcIixcbiAgICBcIlNUTU1BQ19TRUxGVEVTVFNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJwaHlsaW5rX3Bjc19sb29wYmFja1wiLFxuICAgIFwic3RtbWFjX3NlbGZ0ZXN0X3J1blwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgbG9vcGJhY2sgc3VwcG9ydCB0byB0aGUgc3RtbWFjIGludGVncmF0ZWQgUENTIGFuZCBwaHlsaW5rLCB3aGljaCBpcyB1dGlsaXplZCBieSB0aGUgc3RtbWFjIGV0aHRvb2wgc2VsZnRlc3RzLiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIHZpYSB0aGUgU0lPQ0VUSFRPT0wgaW9jdGwgd2l0aCB0aGUgRVRIVE9PTF9URVNUIGNvbW1hbmQuIFN5emthbGxlciBjYW4gdHJpZ2dlciB0aGlzIGJ5IGluamVjdGluZyBhIHZpcnR1YWwgUENJIHN0bW1hYyBkZXZpY2UgdXNpbmcgc3l6X3BjaV9kZXZpY2VfYWRkIGFuZCBjYWxsaW5nIGV0aHRvb2wgb24gdGhlIHJlc3VsdGluZyBuZXRkZXYuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowj54lh[1] Phase: Succeeded StartedAt: 2026-07-27 20:11:20 +0000 UTC FinishedAt: 2026-07-27 20:11:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj54lh[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-27 20:11:20 +0000 UTC FinishedAt: 2026-07-27 20:11:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj54lh[2] Phase: Succeeded StartedAt: 2026-07-27 20:11:20 +0000 UTC FinishedAt: 2026-07-27 22:27:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-27 20:11:21 +0000 UTC FinishedAt: 2026-07-27 22:27:53 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-27 20:11:21 +0000 UTC FinishedAt: 2026-07-27 20:12:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-27 20:11:21 +0000 UTC FinishedAt: 2026-07-27 20:11:58 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},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-workflowj54lh/series-workflowj54lh-convert-artifact-4236552564/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-27 20:12:10 +0000 UTC FinishedAt: 2026-07-27 20:59:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-27 20:12:10 +0000 UTC FinishedAt: 2026-07-27 20:59:46 +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:*e00cc654-8bea-496f-89de-5687c8594516,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-workflowj54lh/series-workflowj54lh-convert-artifact-4236552564/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": "cf1d11b2-06a3-4f53-860f-e0a4cfa39309", "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-workflowj54lh/series-workflowj54lh-build-action-4130246258/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-27 20:12:10 +0000 UTC FinishedAt: 2026-07-27 20:59:20 +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:*e00cc654-8bea-496f-89de-5687c8594516,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-workflowj54lh/series-workflowj54lh-convert-artifact-4236552564/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": "cf1d11b2-06a3-4f53-860f-e0a4cfa39309", "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-workflowj54lh/series-workflowj54lh-build-action-4130246258/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-27 20:59:46 +0000 UTC FinishedAt: 2026-07-27 20:59:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-27 20:59:46 +0000 UTC FinishedAt: 2026-07-27 20:59:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-27 20:59:46 +0000 UTC FinishedAt: 2026-07-27 21:00:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-27 20:59:46 +0000 UTC FinishedAt: 2026-07-27 20:59:56 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},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-workflowj54lh/series-workflowj54lh-convert-artifact-3109298227/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-27 21:00:07 +0000 UTC FinishedAt: 2026-07-27 21:02:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-27 21:00:07 +0000 UTC FinishedAt: 2026-07-27 21:01:59 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*cf1d11b2-06a3-4f53-860f-e0a4cfa39309,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-workflowj54lh/series-workflowj54lh-build-action-4130246258/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-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-27 21:02:11 +0000 UTC FinishedAt: 2026-07-27 21:02:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-27 21:02:11 +0000 UTC FinishedAt: 2026-07-27 21:02:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-27 21:02:11 +0000 UTC FinishedAt: 2026-07-27 21:36:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-27 21:02:11 +0000 UTC FinishedAt: 2026-07-27 21:36:45 +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:*e00cc654-8bea-496f-89de-5687c8594516,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-workflowj54lh/series-workflowj54lh-convert-artifact-3109298227/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": "25895193-991a-4d68-9ff1-7b4825fc5d0c", "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-workflowj54lh/series-workflowj54lh-build-action-1765091559/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-27 21:02:11 +0000 UTC FinishedAt: 2026-07-27 21:36:35 +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:*e00cc654-8bea-496f-89de-5687c8594516,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-workflowj54lh/series-workflowj54lh-convert-artifact-3109298227/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": "25895193-991a-4d68-9ff1-7b4825fc5d0c", "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-workflowj54lh/series-workflowj54lh-build-action-1765091559/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-27 21:36:45 +0000 UTC FinishedAt: 2026-07-27 21:36:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-27 21:36:45 +0000 UTC FinishedAt: 2026-07-27 21:36:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-27 21:36:45 +0000 UTC FinishedAt: 2026-07-27 21:38:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-27 21:36:45 +0000 UTC FinishedAt: 2026-07-27 21:38:26 +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:*25895193-991a-4d68-9ff1-7b4825fc5d0c,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-workflowj54lh/series-workflowj54lh-build-action-1765091559/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-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-27 21:38:36 +0000 UTC FinishedAt: 2026-07-27 22:27:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-27 21:38:36 +0000 UTC FinishedAt: 2026-07-27 22:27:53 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"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:*cf1d11b2-06a3-4f53-860f-e0a4cfa39309,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*25895193-991a-4d68-9ff1-7b4825fc5d0c,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-workflowj54lh/series-workflowj54lh-build-action-4130246258/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-workflowj54lh/series-workflowj54lh-build-action-1765091559/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-27 21:38:36 +0000 UTC FinishedAt: 2026-07-27 21:38:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-27 21:38:36 +0000 UTC FinishedAt: 2026-07-27 21:38:43 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"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-workflowj54lh/series-workflowj54lh-convert-artifact-2830554668/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-27 21:38:36 +0000 UTC FinishedAt: 2026-07-27 21:38:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-27 21:38:36 +0000 UTC FinishedAt: 2026-07-27 21:38:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-27 21:38:36 +0000 UTC FinishedAt: 2026-07-27 21:38:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-27 21:38:46 +0000 UTC FinishedAt: 2026-07-27 22:27:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowj54lh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["phylink_pcs_loopback","stmmac_selftest_run"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1df10cef2d1e7f9f2fb7eddb67fc70d3abf101f9","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PCI","STMMAC_SELFTESTS"],"series_id":"1a7f9e6f-bd37-4eb5-85eb-80a6ad19ff09","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-27 21:38:46 +0000 UTC FinishedAt: 2026-07-27 22:27:43 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*cf1d11b2-06a3-4f53-860f-e0a4cfa39309,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*25895193-991a-4d68-9ff1-7b4825fc5d0c,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-workflowj54lh/series-workflowj54lh-build-action-4130246258/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-workflowj54lh/series-workflowj54lh-build-action-1765091559/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-workflowj54lh/series-workflowj54lh-convert-artifact-2830554668/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,}