Name: series-workflow52p72 Phase: Succeeded StartedAt: 2026-07-23 03:55:07 +0000 UTC FinishedAt: 2026-07-23 06:36:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflow52p72[0] Phase: Succeeded StartedAt: 2026-07-23 03:55:07 +0000 UTC FinishedAt: 2026-07-23 04:07:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflow52p72[0].run-triage Phase: Succeeded StartedAt: 2026-07-23 03:55:07 +0000 UTC FinishedAt: 2026-07-23 04:07:53 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "90883c513ca01e77c56b8d94be7de11420c1dacf", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "ATH6KL", "ATH6KL_USB" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "90883c513ca01e77c56b8d94be7de11420c1dacf", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "ATH6KL", "ATH6KL_USB" ], "series_id": "f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ath6kl_ibss_map_epid" ], "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+CgkJCTx0ZD4yMDI2LzA3LzIzIDA0OjA3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0FUSDZLTCYjMzQ7LAogICAgJiMzNDtBVEg2S0xfVVNCJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YXRoNmtsX2lic3NfbWFwX2VwaWQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyBhcnJheSBhY2Nlc3MgaW4gYGF0aDZrbF9pYnNzX21hcF9lcGlkYCBieSBjb3JyZWN0aW5nIHRoZSBib3VuZHMgY2hlY2sgb24gYGFyLVx1MDAzZW5vZGVfbnVtYCBiZWZvcmUgaW5jcmVtZW50aW5nIGl0IGFuZCB1c2luZyBpdCBhcyBhbiBpbmRleC4gVGhlIGBhdGg2a2xgIGRyaXZlciBjYW4gYmUgZnV6emVkIHZpYSBpdHMgVVNCIGludGVyZmFjZSAoYENPTkZJR19BVEg2S0xfVVNCYCkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDQ6MDc8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBjNTFmNjEwYzk4ZDkxNzMzNjU1MDkwNTA3ZGZiYjBlMGI4YWQ3MDFkXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMjMgMDQ6MDc6MDQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguY1xuaW5kZXggOTdmZGFjNzIzN2UyNmUuLjNiMDAzMzQzMWIyOTg3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jXG5AQCAtNjcsMTAgJiM0Mzs2Nyw5IEBAIHN0YXRpYyB1OCBhdGg2a2xfaWJzc19tYXBfZXBpZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFx0fVxuIFxuIFx0aWYgKGVwX21hcCA9PSAtMSkge1xuLVx0XHRlcF9tYXAgPSBhci1cdTAwM2Vub2RlX251bTtcbi1cdFx0YXItXHUwMDNlbm9kZV9udW0mIzQzOyYjNDM7O1xuLVx0XHRpZiAoYXItXHUwMDNlbm9kZV9udW0gXHUwMDNlIE1BWF9OT0RFX05VTSlcbiYjNDM7XHRcdGlmIChhci1cdTAwM2Vub2RlX251bSBcdTAwM2U9IE1BWF9OT0RFX05VTSlcbiBcdFx0XHRyZXR1cm4gRU5EUE9JTlRfVU5VU0VEO1xuJiM0MztcdFx0ZXBfbWFwID0gYXItXHUwMDNlbm9kZV9udW0mIzQzOyYjNDM7O1xuIFx0fVxuIFxuIFx0bWVtY3B5KGFyLVx1MDAzZW5vZGVfbWFwW2VwX21hcF0ubWFjX2FkZHIsIGV0aF9oZHItXHUwMDNlaF9kZXN0LCBFVEhfQUxFTik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDQ6MDc8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0FUSDZLTCYjMzQ7LAogICAgJiMzNDtBVEg2S0xfVVNCJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YXRoNmtsX2lic3NfbWFwX2VwaWQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyBhcnJheSBhY2Nlc3MgaW4gYGF0aDZrbF9pYnNzX21hcF9lcGlkYCBieSBjb3JyZWN0aW5nIHRoZSBib3VuZHMgY2hlY2sgb24gYGFyLVx1MDAzZW5vZGVfbnVtYCBiZWZvcmUgaW5jcmVtZW50aW5nIGl0IGFuZCB1c2luZyBpdCBhcyBhbiBpbmRleC4gVGhlIGBhdGg2a2xgIGRyaXZlciBjYW4gYmUgZnV6emVkIHZpYSBpdHMgVVNCIGludGVyZmFjZSAoYENPTkZJR19BVEg2S0xfVVNCYCkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGM1MWY2MTBjOThkOTE3MzM2NTUwOTA1MDdkZmJiMGUwYjhhZDcwMWQKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEp1bCAyMyAwNDowNzowNCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMKaW5kZXggOTdmZGFjNzIzN2UyNmUuLjNiMDAzMzQzMWIyOTg3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYwpAQCAtNjcsMTAgJiM0Mzs2Nyw5IEBAIHN0YXRpYyB1OCBhdGg2a2xfaWJzc19tYXBfZXBpZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCX0KIAogCWlmIChlcF9tYXAgPT0gLTEpIHsKLQkJZXBfbWFwID0gYXItJmd0O25vZGVfbnVtOwotCQlhci0mZ3Q7bm9kZV9udW0mIzQzOyYjNDM7OwotCQlpZiAoYXItJmd0O25vZGVfbnVtICZndDsgTUFYX05PREVfTlVNKQomIzQzOwkJaWYgKGFyLSZndDtub2RlX251bSAmZ3Q7PSBNQVhfTk9ERV9OVU0pCiAJCQlyZXR1cm4gRU5EUE9JTlRfVU5VU0VEOwomIzQzOwkJZXBfbWFwID0gYXItJmd0O25vZGVfbnVtJiM0MzsmIzQzOzsKIAl9CiAKIAltZW1jcHkoYXItJmd0O25vZGVfbWFwW2VwX21hcF0ubWFjX2FkZHIsIGV0aF9oZHItJmd0O2hfZGVzdCwgRVRIX0FMRU4pOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwNDowNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTgyCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogNDE1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIERyaXZlciBQYXRjaDogUG90ZW50aWFsIFZ1bG5lcmFiaWxpdHkgYW5kIEZ1enppbmcgRmVhc2liaWxpdHkqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBhdGg2a2xfaWJzc19tYXBfZXBpZGAgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jYC4gSXQgc2VlbXMgbGlrZSB0aGV5JiMzOTtyZSBmaXhpbmcgYSBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyBhcnJheSBhY2Nlc3MsIHdoaWNoIGlzIGFsd2F5cyBzb21ldGhpbmcgdG8gcGF5IGF0dGVudGlvbiB0by4gVGhlIG9yaWdpbmFsIGNvZGUgd2FzIGEgbGl0dGxlIGNsdW5reTogaXQgZmlyc3QgYXNzaWduZWQgYGVwX21hcGAgYW5kICp0aGVuKiBpbmNyZW1lbnRlZCBgYXItJmd0O25vZGVfbnVtYC4gVGhlIGRhbmdlciB3YXMgdGhhdCBpZiBgYXItJmd0O25vZGVfbnVtYCB3YXMgYWxyZWFkeSBhdCBgTUFYX05PREVfTlVNYCwgYGVwX21hcGAgd291bGQgZ2V0IGFzc2lnbmVkIHRoYXQgdmFsdWUgKmJlZm9yZSogdGhlIGNoZWNrLiBUaGlzIG1lYW50IGFjY2Vzc2luZyBgYXItJmd0O25vZGVfbWFwW2VwX21hcF1gIHdvdWxkIGdvIG91dCBvZiBib3VuZHMuIFRoZSBuZXcgY29kZSBzbWFydGx5IGluY3JlbWVudHMgKmFmdGVyKiB0aGUgYXNzaWdubWVudC4gVGhhdCYjMzk7cyBhIGdvb2QsIGNsZWFuIGZpeC4KCkJ1dCBub3csIG15IGV4cGVydCBpbnN0aW5jdHMga2ljayBpbi4gSSBzdGFydCB0aGlua2luZywgJiMzNDtDYW4gd2UgKmV4cGxvaXQqIHRoaXMgaW4gYW55IG1lYW5pbmdmdWwgd2F5PyBBbmQgY2FuIHdlIGV2ZW4gKnJlYWNoKiB0aGlzIGNvZGUgaW4gYSB3YXkgdGhhdOKAmXMgZnV6emFibGU/JiMzNDsgYGF0aDZrbGAuLi4gdGhhdOKAmXMgYW4gQXRoZXJvcyBBUjYwMDMvQVI2MDA0IGRyaXZlciwgcmlnaHQ/IFRoaXMgaXMgaGFyZHdhcmUtc3BlY2lmaWMsIHNvIGl04oCZcyBsaWtlbHkgcnVubmluZyBhdCBhIGxvdyBsZXZlbC4gVGhlIGJpZyBxdWVzdGlvbiBpcyB3aGV0aGVyIGl0JiMzOTtzIGFjY2Vzc2libGUgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gVGhhdCYjMzk7cyBteSBtYWluIGNvbmNlcm4uIFdpdGhvdXQgaGFyZHdhcmUgZW11bGF0aW9uIGxpa2UgYG1hYzgwMjExX2h3c2ltYCwgaXTigJlzIGdvaW5nIHRvIGJlIHRvdWdoIHVubGVzcyB0aGVyZeKAmXMgYSBkaXJlY3QgaW50ZXJmYWNlLgoKTXkgZmlyc3QgdGhvdWdodCBpcyBhbHdheXMsIGFyZSB0aGVyZSBVU0Igb3IgU0RJTyBpbnRlcmZhY2VzPyBDb3VsZCB3ZSBmdXp6IHRoaXMgd2l0aCBhIGR1bW15IEhDRCBvciBzb21ldGhpbmcgc2ltaWxhcj8gTGV04oCZcyBmaW5kIG91dC4gSSBuYXZpZ2F0ZSB0aGUgZGlyZWN0b3J5IHN0cnVjdHVyZS4gSSBzZWUgYHVzYi5jYCBhbmQgYHNkaW8uY2AgaW4gdGhlIGBhdGg2a2xgIGRpcmVjdG9yeS4gQWxyaWdodCwgdGhpcyBpcyBwcm9taXNpbmchIFRoZSBmYWN0IHRoYXQgaXQgaGFzIHRoZXNlIGludGVyZmFjZXMgbWVhbnMgdGhlcmUmIzM5O3MgYSBnb29kIGNoYW5jZSB3ZSBjYW4gcmVhY2ggaXQuIE5vdywgdGhlIHJlYWwgd29yayBiZWdpbnMuIEkmIzM5O2xsIG5lZWQgdG8gZGlnIGludG8gYHVzYi5jYCBhbmQgc2VlIGlmIHdlIGNhbiBjcmFmdCBzb21lIGlucHV0cyB0byB0cmlnZ2VyIHRoaXMgYGF0aDZrbF9pYnNzX21hcF9lcGlkYCBmdW5jdGlvbiBhbmQgZXhwbG9yZSBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0eSBwYXRocy4gSSYjMzk7bSBub3cgdGhpbmtpbmcgYWJvdXQgaG93IHRvIGJ1aWxkIGEgZnV6emVyIGZvciB0aGlzLi4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDQ6MDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YXRoNmtsX3VzYiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZz0yNT1jb25maWcgQVRINktMX1VTQlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZy0zMi1cdCAgVVNCLiBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGl0IGFzIGEgbW9kdWxlLCBpdCB3aWxsIGJlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL0tjb25maWc6MzM6XHQgIGNhbGxlZCBhdGg2a2xfdXNiLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnLTM0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvTWFrZWZpbGU9NDM9YXRoNmtsX3NkaW8teSAmIzQzOz0gc2Rpby5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL01ha2VmaWxlLTQ0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9NYWtlZmlsZTo0NTpvYmotJChDT05GSUdfQVRINktMX1VTQikgJiM0Mzs9IGF0aDZrbF91c2Iub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9NYWtlZmlsZTo0NjphdGg2a2xfdXNiLXkgJiM0Mzs9IHVzYi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL01ha2VmaWxlLTQ3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvaHRjX3BpcGUuYz05NDE9c3RhdGljIGludCBhdGg2a2xfaHRjX3BpcGVfcnhfY29tcGxldGUoc3RydWN0IGF0aDZrbCAqYXIsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9odGNfcGlwZS5jLTk1OS1cdCAqIFRodXMgdGhlIHBvc3NpYmlsaXR5IG9mIGFyLVx1MDAzZWh0Y190YXJnZXQgYmVpbmcgTlVMTFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9odGNfcGlwZS5jOjk2MDpcdCAqIHZpYSBhdGg2a2xfcmVjdl9jb21wbGV0ZSAtXHUwMDNlIGF0aDZrbF91c2JfaW9fY29tcF93b3JrLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9odGNfcGlwZS5jLTk2MS1cdCAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM9MzA9ZW51bSBBVEg2S0xfVVNCX1BJUEVfSUQge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjQ0OnN0cnVjdCBhdGg2a2xfdXNiX3BpcGUge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy00NS1cdHN0cnVjdCBsaXN0X2hlYWQgdXJiX2xpc3RfaGVhZDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTUzLVx0dTggbG9naWNhbF9waXBlX251bTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NTQ6XHRzdHJ1Y3QgYXRoNmtsX3VzYiAqYXJfdXNiO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01NS1cdHUxNiBtYXhfcGFja2V0X3NpemU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02My0vKiB1c2IgZGV2aWNlIG9iamVjdCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo2NDpzdHJ1Y3QgYXRoNmtsX3VzYiB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTY1LVx0LyogcHJvdGVjdHMgcGlwZS1cdTAwM2V1cmJfbGlzdF9oZWFkIGFuZCAgcGlwZS1cdTAwM2V1cmJfY250ICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02OS1cdHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2U7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjcwOlx0c3RydWN0IGF0aDZrbF91c2JfcGlwZSBwaXBlc1tBVEg2S0xfVVNCX1BJUEVfTUFYXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNzEtXHR1OCAqZGlhZ19jbWRfYnVmZmVyO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM9Nzg9c3RydWN0IGF0aDZrbF91cmJfY29udGV4dCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTc5LVx0c3RydWN0IGxpc3RfaGVhZCBsaW5rO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo4MDpcdHN0cnVjdCBhdGg2a2xfdXNiX3BpcGUgKnBpcGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTgxLVx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTA1OnN0cnVjdCBhdGg2a2xfdXNiX2N0cmxfZGlhZ19jbWRfd3JpdGUge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDYtXHRfX2xlMzIgY21kO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTExLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTI6c3RydWN0IGF0aDZrbF91c2JfY3RybF9kaWFnX2NtZF9yZWFkIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTEzLVx0X19sZTMyIGNtZDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTE3OnN0cnVjdCBhdGg2a2xfdXNiX2N0cmxfZGlhZ19yZXNwX3JlYWQge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTgtXHRfX2xlMzIgdmFsdWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMjEtLyogZnVuY3Rpb24gZGVjbGFyYXRpb25zICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEyMjpzdGF0aWMgdm9pZCBhdGg2a2xfdXNiX3JlY3ZfY29tcGxldGUoc3RydWN0IHVyYiAqdXJiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTIzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM9MTMwPXN0YXRpYyBzdHJ1Y3QgYXRoNmtsX3VyYl9jb250ZXh0ICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTMxOmF0aDZrbF91c2JfYWxsb2NfdXJiX2Zyb21fcGlwZShzdHJ1Y3QgYXRoNmtsX3VzYl9waXBlICpwaXBlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMzIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTUyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxNTM6c3RhdGljIHZvaWQgYXRoNmtsX3VzYl9mcmVlX3VyYl90b19waXBlKHN0cnVjdCBhdGg2a2xfdXNiX3BpcGUgKnBpcGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTE1NC1cdFx0XHRcdFx0c3RydWN0IGF0aDZrbF91cmJfY29udGV4dCAqdXJiX2NvbnRleHQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xNjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjE2OTpzdGF0aWMgdm9pZCBhdGg2a2xfdXNiX2NsZWFudXBfcmVjdl91cmIoc3RydWN0IGF0aDZrbF91cmJfY29udGV4dCAqdXJiX2NvbnRleHQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTE3MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xNzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjE3NDpcdGF0aDZrbF91c2JfZnJlZV91cmJfdG9fcGlwZSh1cmJfY29udGV4dC1cdTAwM2VwaXBlLCB1cmJfY29udGV4dCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTE3NS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTE3Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTc3OnN0YXRpYyBpbmxpbmUgc3RydWN0IGF0aDZrbF91c2IgKmF0aDZrbF91c2JfcHJpdihzdHJ1Y3QgYXRoNmtsICphcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTc4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTE4Mi0vKiBwaXBlIHJlc291cmNlIGFsbG9jYXRpb24vY2xlYW51cCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxODM6c3RhdGljIGludCBhdGg2a2xfdXNiX2FsbG9jX3BpcGVfcmVzb3VyY2VzKHN0cnVjdCBhdGg2a2xfdXNiX3BpcGUgKnBpcGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTE4NC1cdFx0XHRcdFx0ICAgaW50IHVyYl9jbnQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0yMDUtXHRcdHBpcGUtXHUwMDNldXJiX2FsbG9jJiM0MzsmIzQzOztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MjA2Olx0XHRhdGg2a2xfdXNiX2ZyZWVfdXJiX3RvX3BpcGUocGlwZSwgdXJiX2NvbnRleHQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0yMDctXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0yMTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjIxODpzdGF0aWMgdm9pZCBhdGg2a2xfdXNiX2ZyZWVfcGlwZV9yZXNvdXJjZXMoc3RydWN0IGF0aDZrbF91c2JfcGlwZSAqcGlwZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMjE5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTI0MS1cdHdoaWxlICh0cnVlKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjI0MjpcdFx0dXJiX2NvbnRleHQgPSBhdGg2a2xfdXNiX2FsbG9jX3VyYl9mcm9tX3BpcGUocGlwZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTI0My1cdFx0aWYgKHVyYl9jb250ZXh0ID09IE5VTEwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0yNDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjI0OTpzdGF0aWMgdm9pZCBhdGg2a2xfdXNiX2NsZWFudXBfcGlwZV9yZXNvdXJjZXMoc3RydWN0IGF0aDZrbF91c2IgKmFyX3VzYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMjUwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTI1My1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFUSDZLTF9VU0JfUElQRV9NQVg7IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoyNTQ6XHRcdGF0aDZrbF91c2JfZnJlZV9waXBlX3Jlc291cmNlcyhcdTAwMjZhcl91c2ItXHUwMDNlcGlwZXNbaV0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0yNTUtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0yNTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjI1NzpzdGF0aWMgdTggYXRoNmtsX3VzYl9nZXRfbG9naWNhbF9waXBlX251bShzdHJ1Y3QgYXRoNmtsX3VzYiAqYXJfdXNiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0yNTgtXHRcdFx0XHRcdCAgdTggZXBfYWRkcmVzcywgaW50ICp1cmJfY291bnQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0zMDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjMwMzpzdGF0aWMgaW50IGF0aDZrbF91c2Jfc2V0dXBfcGlwZV9yZXNvdXJjZXMoc3RydWN0IGF0aDZrbF91c2IgKmFyX3VzYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMzA0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTMwNy1cdHN0cnVjdCB1c2JfZW5kcG9pbnRfZGVzY3JpcHRvciAqZW5kcG9pbnQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjMwODpcdHN0cnVjdCBhdGg2a2xfdXNiX3BpcGUgKnBpcGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTMwOS1cdGludCBpLCB1cmJjb3VudCwgc3RhdHVzID0gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTM1MC1cdFx0cGlwZV9udW0gPVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzozNTE6XHRcdCAgICBhdGg2a2xfdXNiX2dldF9sb2dpY2FsX3BpcGVfbnVtKGFyX3VzYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMzUyLVx0XHRcdFx0XHRcdCAgICBlbmRwb2ludC1cdTAwM2ViRW5kcG9pbnRBZGRyZXNzLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNDA1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo0MDY6XHRcdHN0YXR1cyA9IGF0aDZrbF91c2JfYWxsb2NfcGlwZV9yZXNvdXJjZXMocGlwZSwgdXJiY291bnQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy00MDctXHRcdGlmIChzdGF0dXMgIT0gMClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQxNC0vKiBwaXBlIG9wZXJhdGlvbnMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NDE1OnN0YXRpYyB2b2lkIGF0aDZrbF91c2JfcG9zdF9yZWN2X3RyYW5zZmVycyhzdHJ1Y3QgYXRoNmtsX3VzYl9waXBlICpyZWN2X3BpcGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQxNi1cdFx0XHRcdFx0ICAgaW50IGJ1ZmZlcl9sZW5ndGgpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy00MjItXHR3aGlsZSAodHJ1ZSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo0MjM6XHRcdHVyYl9jb250ZXh0ID0gYXRoNmtsX3VzYl9hbGxvY191cmJfZnJvbV9waXBlKHJlY3ZfcGlwZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQyNC1cdFx0aWYgKHVyYl9jb250ZXh0ID09IE5VTEwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy00MzktXHRcdFx0XHQgIGJ1ZmZlcl9sZW5ndGgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjQ0MDpcdFx0XHRcdCAgYXRoNmtsX3VzYl9yZWN2X2NvbXBsZXRlLCB1cmJfY29udGV4dCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQ0MS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQ2My1lcnJfY2xlYW51cF91cmI6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjQ2NDpcdGF0aDZrbF91c2JfY2xlYW51cF9yZWN2X3VyYih1cmJfY29udGV4dCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQ2NS1cdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQ2Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NDY4OnN0YXRpYyB2b2lkIGF0aDZrbF91c2JfZmx1c2hfYWxsKHN0cnVjdCBhdGg2a2xfdXNiICphcl91c2IpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQ2OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy00ODMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjQ4NDpzdGF0aWMgdm9pZCBhdGg2a2xfdXNiX3N0YXJ0X3JlY3ZfcGlwZXMoc3RydWN0IGF0aDZrbF91c2IgKmFyX3VzYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNDg1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQ4OS1cdCAqICAgICAgYXJfdXNiLVx1MDAzZXBpcGVzW0FUSDZLTF9VU0JfUElQRV9SWF9DVFJMXS51cmJfYWxsb2MvMjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NDkwOlx0ICogYXRoNmtsX3VzYl9wb3N0X3JlY3ZfdHJhbnNmZXJzKFx1MDAyNmFyX3VzYi1cdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNDkxLVx0ICpcdFx0cGlwZXNbQVRINktMX1VTQl9QSVBFX1JYX0NUUkxdLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNDk2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo0OTc6XHRhdGg2a2xfdXNiX3Bvc3RfcmVjdl90cmFuc2ZlcnMoXHUwMDI2YXJfdXNiLVx1MDAzZXBpcGVzW0FUSDZLTF9VU0JfUElQRV9SWF9EQVRBXSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNDk4LVx0XHRcdFx0ICAgICAgIEFUSDZLTF9VU0JfUlhfQlVGRkVSX1NJWkUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNTAxLS8qIGhpZiB1c2IgcngvdHggY29tcGxldGlvbiBmdW5jdGlvbnMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NTAyOnN0YXRpYyB2b2lkIGF0aDZrbF91c2JfcmVjdl9jb21wbGV0ZShzdHJ1Y3QgdXJiICp1cmIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTUwMy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTUwNC1cdHN0cnVjdCBhdGg2a2xfdXJiX2NvbnRleHQgKnVyYl9jb250ZXh0ID0gdXJiLVx1MDAzZWNvbnRleHQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjUwNTpcdHN0cnVjdCBhdGg2a2xfdXNiX3BpcGUgKnBpcGUgPSB1cmJfY29udGV4dC1cdTAwM2VwaXBlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01MDYtXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiID0gTlVMTDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTU0OS1jbGVhbnVwX3JlY3ZfdXJiOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo1NTA6XHRhdGg2a2xfdXNiX2NsZWFudXBfcmVjdl91cmIodXJiX2NvbnRleHQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01NTEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01NTQtXHRcdC8qIG91ciBmcmVlIHVyYnMgYXJlIHBpbGluZyB1cCwgcG9zdCBtb3JlIHRyYW5zZmVycyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo1NTU6XHRcdGF0aDZrbF91c2JfcG9zdF9yZWN2X3RyYW5zZmVycyhwaXBlLCBBVEg2S0xfVVNCX1JYX0JVRkZFUl9TSVpFKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNTU2LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNTU4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo1NTk6c3RhdGljIHZvaWQgYXRoNmtsX3VzYl91c2JfdHJhbnNtaXRfY29tcGxldGUoc3RydWN0IHVyYiAqdXJiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01NjAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01NjEtXHRzdHJ1Y3QgYXRoNmtsX3VyYl9jb250ZXh0ICp1cmJfY29udGV4dCA9IHVyYi1cdTAwM2Vjb250ZXh0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo1NjI6XHRzdHJ1Y3QgYXRoNmtsX3VzYl9waXBlICpwaXBlID0gdXJiX2NvbnRleHQtXHUwMDNlcGlwZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNTYzLVx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTU3Ny1cdHVyYl9jb250ZXh0LVx1MDAzZXNrYiA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjU3ODpcdGF0aDZrbF91c2JfZnJlZV91cmJfdG9fcGlwZSh1cmJfY29udGV4dC1cdTAwM2VwaXBlLCB1cmJfY29udGV4dCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTU3OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTU4NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NTg1OnN0YXRpYyB2b2lkIGF0aDZrbF91c2JfaW9fY29tcF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNTg2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NTg3Olx0c3RydWN0IGF0aDZrbF91c2JfcGlwZSAqcGlwZSA9IGNvbnRhaW5lcl9vZih3b3JrLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo1ODg6XHRcdFx0XHRcdFx0ICAgIHN0cnVjdCBhdGg2a2xfdXNiX3BpcGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTU4OS1cdFx0XHRcdFx0XHQgICAgaW9fY29tcGxldGVfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjU5MDpcdHN0cnVjdCBhdGg2a2xfdXNiICphcl91c2I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTU5MS1cdHN0cnVjdCBza19idWZmICpza2I7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02MDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjYwOTojZGVmaW5lIEFUSDZLTF9VU0JfTUFYX0RJQUdfQ01EIChzaXplb2Yoc3RydWN0IGF0aDZrbF91c2JfY3RybF9kaWFnX2NtZF93cml0ZSkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjYxMDojZGVmaW5lIEFUSDZLTF9VU0JfTUFYX0RJQUdfUkVTUCAoc2l6ZW9mKHN0cnVjdCBhdGg2a2xfdXNiX2N0cmxfZGlhZ19yZXNwX3JlYWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02MTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjYxMjpzdGF0aWMgdm9pZCBhdGg2a2xfdXNiX2Rlc3Ryb3koc3RydWN0IGF0aDZrbF91c2IgKmFyX3VzYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjEzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NjE0Olx0YXRoNmtsX3VzYl9mbHVzaF9hbGwoYXJfdXNiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo2MTY6XHRhdGg2a2xfdXNiX2NsZWFudXBfcGlwZV9yZXNvdXJjZXMoYXJfdXNiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjE3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo2Mjc6c3RhdGljIHN0cnVjdCBhdGg2a2xfdXNiICphdGg2a2xfdXNiX2NyZWF0ZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02Mjgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02MjktXHRzdHJ1Y3QgdXNiX2RldmljZSAqZGV2ID0gaW50ZXJmYWNlX3RvX3VzYmRldihpbnRlcmZhY2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo2MzA6XHRzdHJ1Y3QgYXRoNmtsX3VzYiAqYXJfdXNiO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo2MzE6XHRzdHJ1Y3QgYXRoNmtsX3VzYl9waXBlICpwaXBlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02MzItXHRpbnQgc3RhdHVzID0gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTYzNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NjM1Olx0LyogYXRoNmtsX3VzYl9kZXN0cm95KCkgbmVlZHMgYXJfdXNiICE9IE5VTEwgXHUwMDI2XHUwMDI2IGFyX3VzYi1cdTAwM2V3cSAhPSBOVUxMLiAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo2MzY6XHRhcl91c2IgPSBremFsbG9jX29iaihzdHJ1Y3QgYXRoNmtsX3VzYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTYzNy1cdGlmIChhcl91c2IgPT0gTlVMTClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTY1Mi1cdFx0SU5JVF9XT1JLKFx1MDAyNnBpcGUtXHUwMDNlaW9fY29tcGxldGVfd29yayxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NjUzOlx0XHRcdCAgYXRoNmtsX3VzYl9pb19jb21wX3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02NTQtXHRcdHNrYl9xdWV1ZV9oZWFkX2luaXQoXHUwMDI2cGlwZS1cdTAwM2Vpb19jb21wX3F1ZXVlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTY1OS1cdFx0c3RhdHVzID0gLUVOT01FTTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NjYwOlx0XHRnb3RvIGZhaWxfYXRoNmtsX3VzYl9jcmVhdGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTY2MS1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTY2Ni1cdFx0c3RhdHVzID0gLUVOT01FTTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NjY3Olx0XHRnb3RvIGZhaWxfYXRoNmtsX3VzYl9jcmVhdGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTY2OC1cdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjY5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo2NzA6XHRzdGF0dXMgPSBhdGg2a2xfdXNiX3NldHVwX3BpcGVfcmVzb3VyY2VzKGFyX3VzYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTY3MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NjcyOmZhaWxfYXRoNmtsX3VzYl9jcmVhdGU6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTY3My1cdGlmIChzdGF0dXMgIT0gMCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo2NzQ6XHRcdGF0aDZrbF91c2JfZGVzdHJveShhcl91c2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02NzUtXHRcdGFyX3VzYiA9IE5VTEw7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02NzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjY4MDpzdGF0aWMgdm9pZCBhdGg2a2xfdXNiX2RldmljZV9kZXRhY2hlZChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02ODEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo2ODI6XHRzdHJ1Y3QgYXRoNmtsX3VzYiAqYXJfdXNiO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02ODMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02OTItXHRhdGg2a2xfY29yZV9jbGVhbnVwKGFyX3VzYi1cdTAwM2Vhcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjY5MzpcdGF0aDZrbF91c2JfZGVzdHJveShhcl91c2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02OTQtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM9Njk3PXN0YXRpYyB2b2lkIGhpZl9zdGFydChzdHJ1Y3QgYXRoNmtsICphcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjk4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6Njk5Olx0c3RydWN0IGF0aDZrbF91c2IgKmRldmljZSA9IGF0aDZrbF91c2JfcHJpdihhcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTcwMC1cdGludCBpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03MDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjcwMjpcdGF0aDZrbF91c2Jfc3RhcnRfcmVjdl9waXBlcyhkZXZpY2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03MDMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03MTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjcxMjpzdGF0aWMgaW50IGF0aDZrbF91c2Jfc2VuZChzdHJ1Y3QgYXRoNmtsICphciwgdTggUGlwZUlELFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03MTMtXHRcdFx0ICAgc3RydWN0IHNrX2J1ZmYgKmhkcl9za2IsIHN0cnVjdCBza19idWZmICpza2IpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTcxNC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjcxNTpcdHN0cnVjdCBhdGg2a2xfdXNiICpkZXZpY2UgPSBhdGg2a2xfdXNiX3ByaXYoYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo3MTY6XHRzdHJ1Y3QgYXRoNmtsX3VzYl9waXBlICpwaXBlID0gXHUwMDI2ZGV2aWNlLVx1MDAzZXBpcGVzW1BpcGVJRF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTcxNy1cdHN0cnVjdCBhdGg2a2xfdXJiX2NvbnRleHQgKnVyYl9jb250ZXh0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNzI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo3MjY6XHR1cmJfY29udGV4dCA9IGF0aDZrbF91c2JfYWxsb2NfdXJiX2Zyb21fcGlwZShwaXBlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNzI3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNzQ3LVx0XHRzdGF0dXMgPSAtRU5PTUVNO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo3NDg6XHRcdGF0aDZrbF91c2JfZnJlZV91cmJfdG9fcGlwZSh1cmJfY29udGV4dC1cdTAwM2VwaXBlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03NDktXHRcdFx0XHRcdCAgICB1cmJfY29udGV4dCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03NTctXHRcdFx0ICBsZW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjc1ODpcdFx0XHQgIGF0aDZrbF91c2JfdXNiX3RyYW5zbWl0X2NvbXBsZXRlLCB1cmJfY29udGV4dCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTc1OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTc3Ny1cdFx0dXNiX3VuYW5jaG9yX3VyYih1cmIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo3Nzg6XHRcdGF0aDZrbF91c2JfZnJlZV91cmJfdG9fcGlwZSh1cmJfY29udGV4dC1cdTAwM2VwaXBlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03NzktXHRcdFx0XHRcdCAgICB1cmJfY29udGV4dCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYz03ODg9c3RhdGljIHZvaWQgaGlmX3N0b3Aoc3RydWN0IGF0aDZrbCAqYXIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTc4OS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjc5MDpcdHN0cnVjdCBhdGg2a2xfdXNiICpkZXZpY2UgPSBhdGg2a2xfdXNiX3ByaXYoYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03OTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjc5MjpcdGF0aDZrbF91c2JfZmx1c2hfYWxsKGRldmljZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTc5My19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTc5NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6Nzk1OnN0YXRpYyB2b2lkIGF0aDZrbF91c2JfZ2V0X2RlZmF1bHRfcGlwZShzdHJ1Y3QgYXRoNmtsICphcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNzk2LVx0XHRcdFx0XHR1OCAqdWxfcGlwZSwgdTggKmRsX3BpcGUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy04MDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjgwMjpzdGF0aWMgaW50IGF0aDZrbF91c2JfbWFwX3NlcnZpY2VfcGlwZShzdHJ1Y3QgYXRoNmtsICphciwgdTE2IHN2Y19pZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtODAzLVx0XHRcdFx0ICAgICAgIHU4ICp1bF9waXBlLCB1OCAqZGxfcGlwZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTg1Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6ODU3OnN0YXRpYyB1MTYgYXRoNmtsX3VzYl9nZXRfZnJlZV9xdWV1ZV9udW1iZXIoc3RydWN0IGF0aDZrbCAqYXIsIHU4IHBpcGVfaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTg1OC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjg1OTpcdHN0cnVjdCBhdGg2a2xfdXNiICpkZXZpY2UgPSBhdGg2a2xfdXNiX3ByaXYoYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy04NjAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYz04NjQ9c3RhdGljIHZvaWQgaGlmX2RldGFjaF9odGMoc3RydWN0IGF0aDZrbCAqYXIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTg2NS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjg2NjpcdHN0cnVjdCBhdGg2a2xfdXNiICpkZXZpY2UgPSBhdGg2a2xfdXNiX3ByaXYoYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy04NjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjg2ODpcdGF0aDZrbF91c2JfZmx1c2hfYWxsKGRldmljZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTg2OS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTg3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6ODcxOnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9zdWJtaXRfY3RybF9vdXQoc3RydWN0IGF0aDZrbF91c2IgKmFyX3VzYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtODcyLVx0XHRcdFx0ICAgdTggcmVxLCB1MTYgdmFsdWUsIHUxNiBpbmRleCwgdm9pZCAqZGF0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTkwMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6OTAzOnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9zdWJtaXRfY3RybF9pbihzdHJ1Y3QgYXRoNmtsX3VzYiAqYXJfdXNiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05MDQtXHRcdFx0XHQgIHU4IHJlcSwgdTE2IHZhbHVlLCB1MTYgaW5kZXgsIHZvaWQgKmRhdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05MzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjkzNzpzdGF0aWMgaW50IGF0aDZrbF91c2JfY3RybF9tc2dfZXhjaGFuZ2Uoc3RydWN0IGF0aDZrbF91c2IgKmFyX3VzYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTM4LVx0XHRcdFx0ICAgICB1OCByZXFfdmFsLCB1OCAqcmVxX2J1ZiwgdTMyIHJlcV9sZW4sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05NDMtXHQvKiBzZW5kIGNvbW1hbmQgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6OTQ0Olx0cmV0ID0gYXRoNmtsX3VzYl9zdWJtaXRfY3RybF9vdXQoYXJfdXNiLCByZXFfdmFsLCAwLCAwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05NDUtXHRcdFx0XHRcdCByZXFfYnVmLCByZXFfbGVuKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTk1NS1cdC8qIGdldCByZXNwb25zZSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo5NTY6XHRyZXQgPSBhdGg2a2xfdXNiX3N1Ym1pdF9jdHJsX2luKGFyX3VzYiwgcmVzcF92YWwsIDAsIDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTk1Ny1cdFx0XHRcdFx0cmVzcF9idWYsICpyZXNwX2xlbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05NjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjk2MjpzdGF0aWMgaW50IGF0aDZrbF91c2JfZGlhZ19yZWFkMzIoc3RydWN0IGF0aDZrbCAqYXIsIHUzMiBhZGRyZXNzLCB1MzIgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTk2My17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjk2NDpcdHN0cnVjdCBhdGg2a2xfdXNiICphcl91c2IgPSBhci1cdTAwM2VoaWZfcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6OTY1Olx0c3RydWN0IGF0aDZrbF91c2JfY3RybF9kaWFnX3Jlc3BfcmVhZCAqcmVzcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6OTY2Olx0c3RydWN0IGF0aDZrbF91c2JfY3RybF9kaWFnX2NtZF9yZWFkICpjbWQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTk2Ny1cdHUzMiByZXNwX2xlbjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTk2OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6OTcwOlx0Y21kID0gKHN0cnVjdCBhdGg2a2xfdXNiX2N0cmxfZGlhZ19jbWRfcmVhZCAqKSBhcl91c2ItXHUwMDNlZGlhZ19jbWRfYnVmZmVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05NzEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05NzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjk3NzpcdHJldCA9IGF0aDZrbF91c2JfY3RybF9tc2dfZXhjaGFuZ2UoYXJfdXNiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05NzgtXHRcdFx0XHRBVEg2S0xfVVNCX0NPTlRST0xfUkVRX0RJQUdfQ01ELFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05NzktXHRcdFx0XHQodTggKikgY21kLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo5ODA6XHRcdFx0XHRzaXplb2Yoc3RydWN0IGF0aDZrbF91c2JfY3RybF9kaWFnX2NtZF93cml0ZSksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTk4MS1cdFx0XHRcdEFUSDZLTF9VU0JfQ09OVFJPTF9SRVFfRElBR19SRVNQLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTg4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo5ODk6XHRyZXNwID0gKHN0cnVjdCBhdGg2a2xfdXNiX2N0cmxfZGlhZ19yZXNwX3JlYWQgKilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTkwLVx0XHRhcl91c2ItXHUwMDNlZGlhZ19yZXNwX2J1ZmZlcjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTk5Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6OTk3OnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9kaWFnX3dyaXRlMzIoc3RydWN0IGF0aDZrbCAqYXIsIHUzMiBhZGRyZXNzLCBfX2xlMzIgZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTk4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6OTk5Olx0c3RydWN0IGF0aDZrbF91c2IgKmFyX3VzYiA9IGFyLVx1MDAzZWhpZl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMDAwOlx0c3RydWN0IGF0aDZrbF91c2JfY3RybF9kaWFnX2NtZF93cml0ZSAqY21kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDAxLVx0aW50IHJldDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTAwMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTAwMzpcdGNtZCA9IChzdHJ1Y3QgYXRoNmtsX3VzYl9jdHJsX2RpYWdfY21kX3dyaXRlICopIGFyX3VzYi1cdTAwM2VkaWFnX2NtZF9idWZmZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwMDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEwMDU6XHRtZW1zZXQoY21kLCAwLCBzaXplb2Yoc3RydWN0IGF0aDZrbF91c2JfY3RybF9kaWFnX2NtZF93cml0ZSkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDA2LVx0Y21kLVx1MDAzZWNtZCA9IGNwdV90b19sZTMyKEFUSDZLTF9VU0JfQ1RSTF9ESUFHX0NDX1dSSVRFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwMDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEwMTA6XHRyZXQgPSBhdGg2a2xfdXNiX2N0cmxfbXNnX2V4Y2hhbmdlKGFyX3VzYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTAxMS1cdFx0XHRcdFx0ICAgQVRINktMX1VTQl9DT05UUk9MX1JFUV9ESUFHX0NNRCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEwMjM6c3RhdGljIGludCBhdGg2a2xfdXNiX2JtaV9yZWFkKHN0cnVjdCBhdGg2a2wgKmFyLCB1OCAqYnVmLCB1MzIgbGVuKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDI0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTAyNTpcdHN0cnVjdCBhdGg2a2xfdXNiICphcl91c2IgPSBhci1cdTAwM2VoaWZfcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTAyNi1cdGludCByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDI4LVx0LyogZ2V0IHJlc3BvbnNlICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEwMjk6XHRyZXQgPSBhdGg2a2xfdXNiX3N1Ym1pdF9jdHJsX2luKGFyX3VzYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTAzMC1cdFx0XHRcdFx0QVRINktMX1VTQl9DT05UUk9MX1JFUV9SRUNWX0JNSV9SRVNQLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTA0MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTA0MTpzdGF0aWMgaW50IGF0aDZrbF91c2JfYm1pX3dyaXRlKHN0cnVjdCBhdGg2a2wgKmFyLCB1OCAqYnVmLCB1MzIgbGVuKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDQyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTA0MzpcdHN0cnVjdCBhdGg2a2xfdXNiICphcl91c2IgPSBhci1cdTAwM2VoaWZfcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTA0NC1cdGludCByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDQ2LVx0Lyogc2VuZCBjb21tYW5kICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEwNDc6XHRyZXQgPSBhdGg2a2xfdXNiX3N1Ym1pdF9jdHJsX291dChhcl91c2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwNDgtXHRcdFx0XHRcdCBBVEg2S0xfVVNCX0NPTlRST0xfUkVRX1NFTkRfQk1JX0NNRCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwNTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEwNTk6c3RhdGljIGludCBhdGg2a2xfdXNiX3Bvd2VyX29uKHN0cnVjdCBhdGg2a2wgKmFyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDYwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwNjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEwNjU6c3RhdGljIGludCBhdGg2a2xfdXNiX3Bvd2VyX29mZihzdHJ1Y3QgYXRoNmtsICphcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTA2Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMDcxOnN0YXRpYyB2b2lkIGF0aDZrbF91c2Jfc3RvcChzdHJ1Y3QgYXRoNmtsICphcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTA3Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDc1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMDc2OnN0YXRpYyB2b2lkIGF0aDZrbF91c2JfY2xlYW51cF9zY2F0dGVyKHN0cnVjdCBhdGg2a2wgKmFyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDc3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwODMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEwODQ6c3RhdGljIGludCBhdGg2a2xfdXNiX3N1c3BlbmQoc3RydWN0IGF0aDZrbCAqYXIsIHN0cnVjdCBjZmc4MDIxMV93b3dsYW4gKndvdylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTA4NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDkxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMDkyOnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9yZXN1bWUoc3RydWN0IGF0aDZrbCAqYXIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwOTMte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTA5OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTEwMDpzdGF0aWMgY29uc3Qgc3RydWN0IGF0aDZrbF9oaWZfb3BzIGF0aDZrbF91c2Jfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTAxOlx0LmRpYWdfcmVhZDMyID0gYXRoNmtsX3VzYl9kaWFnX3JlYWQzMixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTEwMjpcdC5kaWFnX3dyaXRlMzIgPSBhdGg2a2xfdXNiX2RpYWdfd3JpdGUzMixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTEwMzpcdC5ibWlfcmVhZCA9IGF0aDZrbF91c2JfYm1pX3JlYWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExMDQ6XHQuYm1pX3dyaXRlID0gYXRoNmtsX3VzYl9ibWlfd3JpdGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExMDU6XHQucG93ZXJfb24gPSBhdGg2a2xfdXNiX3Bvd2VyX29uLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTA2Olx0LnBvd2VyX29mZiA9IGF0aDZrbF91c2JfcG93ZXJfb2ZmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTA3Olx0LnN0b3AgPSBhdGg2a2xfdXNiX3N0b3AsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExMDg6XHQucGlwZV9zZW5kID0gYXRoNmtsX3VzYl9zZW5kLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTA5Olx0LnBpcGVfZ2V0X2RlZmF1bHQgPSBhdGg2a2xfdXNiX2dldF9kZWZhdWx0X3BpcGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExMTA6XHQucGlwZV9tYXBfc2VydmljZSA9IGF0aDZrbF91c2JfbWFwX3NlcnZpY2VfcGlwZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTExMTpcdC5waXBlX2dldF9mcmVlX3F1ZXVlX251bWJlciA9IGF0aDZrbF91c2JfZ2V0X2ZyZWVfcXVldWVfbnVtYmVyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTEyOlx0LmNsZWFudXBfc2NhdHRlciA9IGF0aDZrbF91c2JfY2xlYW51cF9zY2F0dGVyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTEzOlx0LnN1c3BlbmQgPSBhdGg2a2xfdXNiX3N1c3BlbmQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExMTQ6XHQucmVzdW1lID0gYXRoNmtsX3VzYl9yZXN1bWUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExMTUtfTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExMTctLyogYXRoNmtsIHVzYiBkcml2ZXIgcmVnaXN0ZXJlZCBmdW5jdGlvbnMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTExODpzdGF0aWMgaW50IGF0aDZrbF91c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTExOS1cdFx0XHQgICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTEyMi1cdHN0cnVjdCBhdGg2a2wgKmFyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTIzOlx0c3RydWN0IGF0aDZrbF91c2IgKmFyX3VzYiA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExMjQtXHRpbnQgdmVuZG9yX2lkLCBwcm9kdWN0X2lkO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTE0Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTE0MzpcdGFyX3VzYiA9IGF0aDZrbF91c2JfY3JlYXRlKGludGVyZmFjZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExNDQtXHRpZiAoYXJfdXNiID09IE5VTEwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTU1LVx0YXItXHUwMDNlaGlmX3R5cGUgPSBBVEg2S0xfSElGX1RZUEVfVVNCO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTU2Olx0YXItXHUwMDNlaGlmX29wcyA9IFx1MDAyNmF0aDZrbF91c2Jfb3BzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTU3LVx0YXItXHUwMDNlbWJveF9pbmZvLmJsb2NrX3NpemUgPSAxNjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExNzItZXJyX3VzYl9kZXN0cm95OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTczOlx0YXRoNmtsX3VzYl9kZXN0cm95KGFyX3VzYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExNzQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTc4OnN0YXRpYyB2b2lkIGF0aDZrbF91c2JfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTc5LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTE4MDpcdGF0aDZrbF91c2JfZGV2aWNlX2RldGFjaGVkKGludGVyZmFjZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExODEtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTE4NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTE4NTpzdGF0aWMgaW50IGF0aDZrbF91c2JfcG1fc3VzcGVuZChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTg2LVx0XHRcdCAgICAgIHBtX21lc3NhZ2VfdCBtZXNzYWdlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTg3LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTE4ODpcdHN0cnVjdCBhdGg2a2xfdXNiICpkZXZpY2U7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExODktXHRkZXZpY2UgPSB1c2JfZ2V0X2ludGZkYXRhKGludGVyZmFjZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExOTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExOTE6XHRhdGg2a2xfdXNiX2ZsdXNoX2FsbChkZXZpY2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTkyLVx0cmV0dXJuIDA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTk0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTk1OnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9wbV9yZXN1bWUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTE5Ni17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExOTc6XHRzdHJ1Y3QgYXRoNmtsX3VzYiAqZGV2aWNlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTk4LVx0ZGV2aWNlID0gdXNiX2dldF9pbnRmZGF0YShpbnRlcmZhY2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTk5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMjAwOlx0YXRoNmtsX3VzYl9wb3N0X3JlY3ZfdHJhbnNmZXJzKFx1MDAyNmRldmljZS1cdTAwM2VwaXBlc1tBVEg2S0xfVVNCX1BJUEVfUlhfREFUQV0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEyMDEtXHRcdFx0XHQgICAgICAgQVRINktMX1VTQl9SWF9CVUZGRVJfU0laRSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEyMDI6XHRhdGg2a2xfdXNiX3Bvc3RfcmVjdl90cmFuc2ZlcnMoXHUwMDI2ZGV2aWNlLVx1MDAzZXBpcGVzW0FUSDZLTF9VU0JfUElQRV9SWF9EQVRBMl0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEyMDMtXHRcdFx0XHQgICAgICAgQVRINktMX1VTQl9SWF9CVUZGRVJfU0laRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMjA5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMjEwOiNkZWZpbmUgYXRoNmtsX3VzYl9wbV9zdXNwZW5kIE5VTExcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTIxMTojZGVmaW5lIGF0aDZrbF91c2JfcG1fcmVzdW1lIE5VTExcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTIxMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEyMTUtLyogdGFibGUgb2YgZGV2aWNlcyB0aGF0IHdvcmsgd2l0aCB0aGlzIGRyaXZlciAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMjE2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBhdGg2a2xfdXNiX2lkc1tdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMjE3LVx0e1VTQl9ERVZJQ0UoMHgwY2YzLCAweDkzNzUpfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEyMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEyMjM6TU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIGF0aDZrbF91c2JfaWRzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTIyNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTIyNTpzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgYXRoNmtsX3VzYl9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEyMjY6XHQubmFtZSA9IFwmIzM0O2F0aDZrbF91c2JcJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEyMjc6XHQucHJvYmUgPSBhdGg2a2xfdXNiX3Byb2JlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMjI4Olx0LnN1c3BlbmQgPSBhdGg2a2xfdXNiX3BtX3N1c3BlbmQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEyMjk6XHQucmVzdW1lID0gYXRoNmtsX3VzYl9wbV9yZXN1bWUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEyMzA6XHQuZGlzY29ubmVjdCA9IGF0aDZrbF91c2JfZGlzY29ubmVjdCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTIzMTpcdC5pZF90YWJsZSA9IGF0aDZrbF91c2JfaWRzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMjMyLVx0LnN1cHBvcnRzX2F1dG9zdXNwZW5kID0gdHJ1ZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEyMzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEyMzY6bW9kdWxlX3VzYl9kcml2ZXIoYXRoNmtsX3VzYl9kcml2ZXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMjM3LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDA0OjA3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE1Nzg3CgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogOTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW5pdGlhbCBBc3Nlc3NtZW50ICZhbXA7IFN0cmF0ZWd5KioKCk9rYXksIHNvIHRoZSBgYXRoNmtsYCBkcml2ZXIgaGFzIGEgVVNCIGNvbXBvbmVudCDigJMgdGhhdCYjMzk7cyBwb3RlbnRpYWxseSB2ZXJ5IGludGVyZXN0aW5nIGZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlISBUaGUgZmFjdCB0aGF0IGl0JiMzOTtzIFVTQi1lbmFibGVkIG1lYW5zIHdlIG1pZ2h0IGJlIGFibGUgdG8gbGV2ZXJhZ2UgdGhlIFVTQiBkdW1teSBIQ0QsIGxpa2UgdGhlIG9uZSB1c2VkIGJ5IHN5emthbGxlciwgZm9yIHNvbWUgZWZmZWN0aXZlIGZ1enppbmcuIEl0IGZlZWxzIGxpa2UgdGhpcyBjb3VsZCBiZSBhIGdyZWF0IHZlY3RvciBmb3IgZmluZGluZyBzb21lIGludGVyZXN0aW5nIGJ1Z3MuIE5vdywgdGhlIHBhdGNoIGZvY3VzZXMgb24gbW9kaWZ5aW5nIGBhdGg2a2xfaWJzc19tYXBfZXBpZGAgd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguY2AuIE15IGZpcnN0IG1vdmUgaGVyZSBpcyBnb2luZyB0byBiZSB0byB1bmRlcnN0YW5kIHRoZSBjYWxsaW5nIGNvbnRleHRzIG9mIHRoYXQgc3BlY2lmaWMgZnVuY3Rpb24uIEtub3dpbmcgaXRzIHVzYWdlIHdpbGwgYWxsb3cgbWUgdG8gYXNzZXNzIHRoZSBwb3RlbnRpYWwgaW1wYWN0IG9mIHRoZSBwYXRjaCBhbmQgaG93IGVmZmVjdGl2ZWx5IHdlIGNhbiBmdXp6IGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDA0OjA3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2F0aDZrbF9pYnNzX21hcF9lcGlkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM9Mzc9c3RhdGljIGlubGluZSB1OCBhdGg2a2xfZ2V0X2FpZCh1OCB0aWRfbXV4KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTQxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM6NDI6c3RhdGljIHU4IGF0aDZrbF9pYnNzX21hcF9lcGlkKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy00My1cdFx0XHQgICAgICAgdTMyICptYXBfbm8pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM9MzU1PW5ldGRldl90eF90IGF0aDZrbF9kYXRhX3R4KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtNDU0LVx0aWYgKGNoa19hZGhvY19wc19tYXBwaW5nKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM6NDU1Olx0XHRlaWQgPSBhdGg2a2xfaWJzc19tYXBfZXBpZChza2IsIGRldiwgXHUwMDI2bWFwX25vKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTQ1Ni1cdGVsc2VcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwNDowNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNjQwNAoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDU2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246CgoqKkFuYWx5emluZyB0aGUgTmV0d29yayBUcmFuc21pc3Npb24gUGF0aCoqCgpSaWdodCwgc28gSSYjMzk7bSBkaXZpbmcgaW50byB0aGlzIGBhdGg2a2xfZGF0YV90eGAgZnVuY3Rpb24uIFRoZSBrZXkgaGVyZSBpcyB0aGF0IGl0JiMzOTtzIGJlaW5nIGNhbGxlZCBmcm9tIGBuZG9fc3RhcnRfeG1pdGAsIHdoaWNoLCBpZiBJIHJlY2FsbCBjb3JyZWN0bHksIGlzIHRoZSBrZXJuZWwmIzM5O3MgbmV0d29yayBkZXZpY2UmIzM5O3MgdHJhbnNtaXQgZnVuY3Rpb24uIEkgbmVlZCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4gdGhhdCBteSB1bmRlcnN0YW5kaW5nIGlzIGNvcnJlY3Q7IEkgbmVlZCB0byB2ZXJpZnkgdGhhdCBgYXRoNmtsX2RhdGFfdHhgICppcyogYWN0dWFsbHkgd2hhdCB3ZSYjMzk7dmUgaG9va2VkIHVwIHRvIGBuZG9fc3RhcnRfeG1pdGAuIFRoYXQmIzM5O3MgdGhlIGNydWNpYWwgZmlyc3Qgc3RlcC4gV2UgbmVlZCB0byB2YWxpZGF0ZSB0aGF0IGFzc3VtcHRpb24gYmVmb3JlIHByb2NlZWRpbmcgd2l0aCBhbnkgaW4tZGVwdGggYW5hbHlzaXMgb2YgdGhlIGRhdGEgcGF0aC4gVGhpcyBpcyBhIGZvdW5kYXRpb25hbCBwaWVjZSBvZiB0aGUgcHV6emxlLCBhbmQgYSBtaXN1bmRlcnN0YW5kaW5nIGhlcmUgd291bGQgdGhyb3cgZXZlcnl0aGluZyBlbHNlIG9mZi4gTGV0IG1lIGRvdWJsZS1jaGVjayB0aGF0IHF1aWNrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDA0OjA3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2F0aDZrbF9kYXRhX3R4JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9jb3JlLmg9OTE2PXZvaWQgYXRoNmtsX2ZyZWVfY29va2llKHN0cnVjdCBhdGg2a2wgKmFyLCBzdHJ1Y3QgYXRoNmtsX2Nvb2tpZSAqY29va2llKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvY29yZS5oOjkxNzpuZXRkZXZfdHhfdCBhdGg2a2xfZGF0YV90eChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvY29yZS5oLTkxOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL21haW4uYz04Njg9dm9pZCBhdGg2a2xfcHNwb2xsX2V2ZW50KHN0cnVjdCBhdGg2a2xfdmlmICp2aWYsIHU4IGFpZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL21haW4uYy05MTEtXHRcdGNvbm4tXHUwMDNlc3RhX2ZsYWdzIHw9IFNUQV9QU19QT0xMRUQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL21haW4uYzo5MTI6XHRcdGF0aDZrbF9kYXRhX3R4KHNrYiwgdmlmLVx1MDAzZW5kZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9tYWluLmMtOTEzLVx0XHRjb25uLVx1MDAzZXN0YV9mbGFncyBcdTAwMjY9IH5TVEFfUFNfUE9MTEVEO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvbWFpbi5jPTkyND12b2lkIGF0aDZrbF9kdGltZXhwaXJ5X2V2ZW50KHN0cnVjdCBhdGg2a2xfdmlmICp2aWYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9tYWluLmMtOTU1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9tYWluLmM6OTU2Olx0XHRhdGg2a2xfZGF0YV90eChza2IsIHZpZi1cdTAwM2VuZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvbWFpbi5jLTk1Ny1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL21haW4uYz0xMjgzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgYXRoNmtsX25ldGRldl9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9tYWluLmMtMTI4NS1cdC5uZG9fc3RvcCAgICAgICAgICAgICAgID0gYXRoNmtsX2Nsb3NlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9tYWluLmM6MTI4NjpcdC5uZG9fc3RhcnRfeG1pdCAgICAgICAgID0gYXRoNmtsX2RhdGFfdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL21haW4uYy0xMjg3LVx0Lm5kb19zZXRfZmVhdHVyZXMgICAgICAgPSBhdGg2a2xfc2V0X2ZlYXR1cmVzLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jPTI4NT1pbnQgYXRoNmtsX2NvbnRyb2xfdHgodm9pZCAqZGV2dCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy0zNTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYzozNTU6bmV0ZGV2X3R4X3QgYXRoNmtsX2RhdGFfdHgoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTM1Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM9MTIzMT1zdGF0aWMgdm9pZCBhdGg2a2xfdWFwc2RfdHJpZ2dlcl9mcmFtZV9yeChzdHJ1Y3QgYXRoNmtsX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTEyODAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYzoxMjgxOlx0XHRhdGg2a2xfZGF0YV90eChza2IsIHZpZi1cdTAwM2VuZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTEyODItXHRcdGNvbm4tXHUwMDNlc3RhX2ZsYWdzIFx1MDAyNj0gfihTVEFfUFNfQVBTRF9UUklHR0VSKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYz0xMzAwPXZvaWQgYXRoNmtsX3J4KHN0cnVjdCBodGNfdGFyZ2V0ICp0YXJnZXQsIHN0cnVjdCBodGNfcGFja2V0ICpwYWNrZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtMTQ4NS1cdFx0XHRcdFx0c3Bpbl91bmxvY2tfYmgoXHUwMDI2Y29ubi1cdTAwM2Vwc3FfbG9jayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYzoxNDg2Olx0XHRcdFx0XHRhdGg2a2xfZGF0YV90eChza2J1ZmYsIHZpZi1cdTAwM2VuZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTE0ODctXHRcdFx0XHRcdHNwaW5fbG9ja19iaChcdTAwMjZjb25uLVx1MDAzZXBzcV9sb2NrKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy0xNDkyLVx0XHRcdFx0XHRzcGluX3VubG9ja19iaChcdTAwMjZjb25uLVx1MDAzZXBzcV9sb2NrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jOjE0OTM6XHRcdFx0XHRcdGF0aDZrbF9kYXRhX3R4KHNrYnVmZiwgdmlmLVx1MDAzZW5kZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtMTQ5NC1cdFx0XHRcdFx0c3Bpbl9sb2NrX2JoKFx1MDAyNmNvbm4tXHUwMDNlcHNxX2xvY2spO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTE1ODktXHRcdGlmIChza2IxKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM6MTU5MDpcdFx0XHRhdGg2a2xfZGF0YV90eChza2IxLCB2aWYtXHUwMDNlbmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy0xNTkxLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDA0OjA3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE3OTMyCgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMTI2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFdpcmVsZXNzIERyaXZlciBWdWxuZXJhYmlsaXR5KioKCk9rYXksIHNvIGBhdGg2a2xfZGF0YV90eGAgaXMgZGVmaW5pdGl2ZWx5IHRoZSBgbmRvX3N0YXJ0X3htaXRgIGZ1bmN0aW9uIC0gZ290IGl0LiBUaGF0IG1lYW5zIGl0JiMzOTtzIHRoZSBlbnRyeSBwb2ludCBmb3IgbmV0d29yayBwYWNrZXQgdHJhbnNtaXNzaW9uLCB3aGljaCwgYXMgZXZlcnlvbmUga25vd3MsIG1ha2VzIGl0IGEgcHJpbWUgdGFyZ2V0IGZvciBmdXp6aW5nLiBUaGUgcGF0Y2ggSSYjMzk7bSBsb29raW5nIGF0IGFkZHJlc3NlcyBhbiBvdXQtb2YtYm91bmRzIGFjY2VzcyB3aXRoaW4gYGF0aDZrbF9pYnNzX21hcF9lcGlkYC4gVGhlIHF1ZXN0aW9uIGlzLCBjYW4gd2UgYWN0dWFsbHkgKnJlYWNoKiB0aGF0IGZ1bmN0aW9uPwoKTGV0JiMzOTtzIHNlZS4uLiBgYXRoNmtsX2lic3NfbWFwX2VwaWRgIGlzIGNhbGxlZCB3aXRoaW4gYGF0aDZrbF9kYXRhX3R4YCwgYnV0IG9ubHkgdW5kZXIgdGhlIGNvbmRpdGlvbiB0aGF0IGBjaGtfYWRob2NfcHNfbWFwcGluZ2AgaXMgdHJ1ZS4gUmlnaHQuIFNvLCB0aGF0JiMzOTtzIHRoZSBrZXkuIFdlIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZGl0aW9ucyB1bmRlciB3aGljaCBgY2hrX2FkaG9jX3BzX21hcHBpbmdgIGV2YWx1YXRlcyB0byB0cnVlIHRvIGZpZ3VyZSBvdXQgaWYgd2UgY2FuIGV2ZW4gdHJpZ2dlciB0aGlzIHZ1bG5lcmFiaWxpdHkuIFRpbWUgdG8gZGlnIGRlZXBlciBpbnRvIHRoZSBjb2RlIGFuZCBzZWUgd2hhdCBtYWtlcyB0aGF0IHZhcmlhYmxlIHRpY2suCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDA0OjA3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2Noa19hZGhvY19wc19tYXBwaW5nJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM9MzU1PW5ldGRldl90eF90IGF0aDZrbF9kYXRhX3R4KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtMzYzLVx0dTggYWMgPSA5OTsgLyogaW5pdGlhbGl6ZSB0byB1bm1hcHBlZCBhYyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM6MzY0Olx0Ym9vbCBjaGtfYWRob2NfcHNfbWFwcGluZyA9IGZhbHNlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtMzY1LVx0aW50IHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy00MzgtXHRcdCAgICBhci1cdTAwM2VpYnNzX3BzX2VuYWJsZSBcdTAwMjZcdTAwMjYgdGVzdF9iaXQoQ09OTkVDVEVELCBcdTAwMjZ2aWYtXHUwMDNlZmxhZ3MpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM6NDM5Olx0XHRcdGNoa19hZGhvY19wc19tYXBwaW5nID0gdHJ1ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTQ0MC1cdFx0ZWxzZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtNDUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM6NDU0Olx0aWYgKGNoa19hZGhvY19wc19tYXBwaW5nKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtNDU1LVx0XHRlaWQgPSBhdGg2a2xfaWJzc19tYXBfZXBpZChza2IsIGRldiwgXHUwMDI2bWFwX25vKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDQ6MDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTg2ODYKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAxNDUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgQnVnIEZpeCBhbmQgRnV6emluZyBTdHJhdGVneSoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBwaW5wb2ludGVkIHRoZSBjb25kaXRpb246IHRoaXMgdmFyaWFibGUgaXMgc2V0IHRvIHRydWUgd2hlbiB0aGUgV2ktRmkgaW50ZXJmYWNlIHR5cGUgaXMgYWQtaG9jLCBJQlNTIHBvd2VyLXNhdmUgaXMgZW5hYmxlZCwgYW5kIHRoZSBpbnRlcmZhY2UgaXMgY29ubmVjdGVkLiBTZWVtcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIOKAkyBkZWZpbml0ZWx5IGEgcmVhY2hhYmxlIGNvZGUgcGF0aC4gVGhlIHBhdGNoIGNsYWltcyB0byBmaXggYW4gb3V0LW9mLWJvdW5kcyBhY2Nlc3MuIEdpdmVuIHRoZSBwb3RlbnRpYWwgc2V2ZXJpdHkgb2YgT09CIGlzc3VlcywgYW5kIHRoZSByZWxhdGl2ZWx5IGNsZWFyIHRyaWdnZXIgY29uZGl0aW9uLCB0aGlzIGlzICphYnNvbHV0ZWx5KiB3b3J0aCBmdXp6aW5nLgoKTm93LCBsZXQmIzM5O3MgbmFpbCBkb3duIHRoZSBjb25maWd1cmF0aW9uIHJlcXVpcmVtZW50cyBmb3Igc3VjY2Vzc2Z1bCBmdXp6aW5nLiBJJiMzOTttIHRoaW5raW5nIHdlJiMzOTtsbCBuZWVkIGBDT05GSUdfQVRINktMYCBhbmQgZWl0aGVyIGBDT05GSUdfQVRINktMX1VTQmAgb3IgYENPTkZJR19BVEg2S0xfU0RJT2AuIFVTQiB3aWxsIHByb2JhYmx5IGJlIGVhc2llciB0byB3b3JrIHdpdGggZnJvbSBhIGZ1enppbmcgcGVyc3BlY3RpdmUsIGJ1dCBsZXQmIzM5O3MgcXVpY2tseSBkb3VibGUtY2hlY2sgdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL0tjb25maWdgIGZpbGUgdG8gY29uZmlybSB0aG9zZSBjb25maWcgbmFtZXMgYXJlIGV4YWN0bHkgY29ycmVjdCBhbmQgdGhlcmUgYXJlbiYjMzk7dCBhbnkgc3VidGxlIGRlcGVuZGVuY2llcyBJJiMzOTttIG1pc3NpbmcuIEdldHRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gcmlnaHQgdXBmcm9udCBzYXZlcyB0aW1lIGFuZCBmcnVzdHJhdGlvbiBsYXRlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDQ6MDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEFUSDZLTCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IElTQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnOjI6Y29uZmlnIEFUSDZLTFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtBdGhlcm9zIG1vYmlsZSBjaGlwc2V0cyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnLTEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnOjE0OmNvbmZpZyBBVEg2S0xfU0RJT1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnLTE1LVx0dHJpc3RhdGUgXCYjMzQ7QXRoZXJvcyBhdGg2a2wgU0RJTyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnLTI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnOjI1OmNvbmZpZyBBVEg2S0xfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL0tjb25maWctMjYtXHR0cmlzdGF0ZSBcJiMzNDtBdGhlcm9zIGF0aDZrbCBVU0Igc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZy0zNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZzozNTpjb25maWcgQVRINktMX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL0tjb25maWctMzYtXHRib29sIFwmIzM0O0F0aGVyb3MgYXRoNmtsIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZy00NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZzo0NTpjb25maWcgQVRINktMX1RSQUNJTkdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZy00Ni1cdGJvb2wgXCYjMzQ7QXRoZXJvcyBhdGg2a2wgdHJhY2luZyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnLTU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnOjU3OmNvbmZpZyBBVEg2S0xfUkVHRE9NQUlOXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL0tjb25maWctNTgtXHRib29sIFwmIzM0O0F0aGVyb3MgYXRoNmtsIHJlZ2RvbWFpbiBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDA0OjA3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5NTgxCgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMjczCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZvY3VzaW5nIG9uIFNwZWNpZmljIEZ1bmN0aW9ucyBmb3IgQW5hbHlzaXMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoZSBgQVRINktMYCBhbmQgYEFUSDZLTF9VU0JgIGNvbmZpZ3VyYXRpb25zLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZmlndXJlIG91dCB0aGUga2V5IGZ1bmN0aW9ucyB0byBleGFtaW5lLiBSaWdodCBub3csIEkmIzM5O20ga2V5ZWQgaW4gb24gYGF0aDZrbF9pYnNzX21hcF9lcGlkYCBiZWNhdXNlIGl0JiMzOTtzIHRoZSBtb2RpZmllZCBvbmUuIEl0IGFwcGVhcnMgdGhhdCBgYXRoNmtsX2RhdGFfdHhgIGlzIHRoZSBjYWxsZXIuIEkgc2hvdWxkIHByb2JhYmx5IGNoZWNrIGZvciBhbnkgb3RoZXIgcmVsYXRlZCBmdW5jdGlvbnMuCgpSaWdodCwgYGF0aDZrbF9pYnNzX21hcF9lcGlkYCBpcyBhIHN0YXRpYyBmdW5jdGlvbiBsb2NhdGVkIHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmNgLiBJIHdhcyBnb2luZyB0byBhZGQgYm90aCBgYXRoNmtsX2lic3NfbWFwX2VwaWRgIGFuZCBgYXRoNmtsX2RhdGFfdHhgIHRvIG15IGBGb2N1c1N5bWJvbHNgIGxpc3QuIEhvd2V2ZXIsIEkgbmVlZCB0byBwYXVzZSBmb3IgYSBzZWNvbmQuIGBhdGg2a2xfZGF0YV90eGAgaXMgYSBob3QtcGF0aCBmdW5jdGlvbiwgc3BlY2lmaWNhbGx5IHRoZSBgbmRvX3N0YXJ0X3htaXRgIGVudHJ5IHBvaW50LiBUaGUgaW5zdHJ1Y3Rpb25zIGFkdmlzZSBhdm9pZGluZyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gYXZvaWQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KCkV2ZW4gdGhvdWdoIGBhdGg2a2xfZGF0YV90eGAgaXMgc3BlY2lmaWMgdG8gdGhlIGBhdGg2a2xgIGRyaXZlciwgaXQmIzM5O3MgYWxzbyB0aGUgcHJpbWFyeSBUWCBwYXRoIGZvciBpdC4gVGhhdCBtYWtlcyBpdCBtb3JlIGdlbmVyaWMgdGhhbiBpdCBzaG91bGQgYmUuIFRodXMsIEkmIzM5O2xsIHN0aWNrIHRvIGBhdGg2a2xfaWJzc19tYXBfZXBpZGAg4oCTIGl0JiMzOTtzIG1vcmUgc3BlY2lmaWMgdG8gdGhlIG1vZGlmaWNhdGlvbiBhbmQgc2hvdWxkIHByb3ZpZGUgYSBjbGVhcmVyIHNpZ25hbC4gSSYjMzk7bGwgY29udGludWUgc2VhcmNoaW5nIGZvciBhbnkgb3RoZXIgcG90ZW50aWFsbHkgcmVsZXZhbnQgZnVuY3Rpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwNDowNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGg2a2xfaWJzc19tYXBfZXBpZCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jPTM3PXN0YXRpYyBpbmxpbmUgdTggYXRoNmtsX2dldF9haWQodTggdGlkX211eClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy00MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jOjQyOnN0YXRpYyB1OCBhdGg2a2xfaWJzc19tYXBfZXBpZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtNDMtXHRcdFx0ICAgICAgIHUzMiAqbWFwX25vKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jPTM1NT1uZXRkZXZfdHhfdCBhdGg2a2xfZGF0YV90eChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTQ1NC1cdGlmIChjaGtfYWRob2NfcHNfbWFwcGluZylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jOjQ1NTpcdFx0ZWlkID0gYXRoNmtsX2lic3NfbWFwX2VwaWQoc2tiLCBkZXYsIFx1MDAyNm1hcF9ubyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy00NTYtXHRlbHNlXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDA0OjA3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwNTMyCgkJCQkJCQlvdXRwdXQ6IDEyOQoJCQkJCQkJdGhvdWdodHM6IDM4MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQb3RlbnRpYWwgT3V0LW9mLUJvdW5kcyBJc3N1ZSBpbiBgYXRoNmtsX2lic3NfbWFwX2VwaWRgKioKCk9rYXksIHNvIEkgc2VlIHRoYXQgdGhlIGRpZmYgKm9ubHkqIHRvdWNoZXMgYGF0aDZrbF9pYnNzX21hcF9lcGlkYC4gTGV0JiMzOTtzIGNvbmZpcm0gdGhhdCYjMzk7cyB0aGUgc29sZSBmdW5jdGlvbiBtb2RpZmllZCDigJMgeXVwLCBqdXN0IHRoYXQgb25lLiBUaGlzIGltbWVkaWF0ZWx5IGZvY3VzZXMgbXkgYXR0ZW50aW9uLiBUaGUgY2hhbmdlIHNlZW1zIHRvIGJlIGNvcnJlY3RpbmcgYW4gb3V0LW9mLWJvdW5kcyBhcnJheSBhY2Nlc3Mgd2l0aGluIHRoaXMgZnVuY3Rpb24uIEl0IGxvb2tzIGxpa2UgdGhlIHByaW9yIGxvZ2ljIGhhZCBhIGZsYXcgaW4gaG93IGl0IGhhbmRsZWQgYGFyLSZndDtub2RlX251bWAgYmVmb3JlIHVzaW5nIGl0IGFzIGFuIGluZGV4LgoKU3BlY2lmaWNhbGx5LCBpdCBzZWVtcyB0aGUgYm91bmRzIGNoZWNrIHdhc24mIzM5O3QgcXVpdGUgcmlnaHQuIEl0IGNoZWNrZWQgaWYgYGFyLSZndDtub2RlX251bWAgKmV4Y2VlZGVkKiBgTUFYX05PREVfTlVNYCBidXQgdGhlbiBpbmNyZW1lbnRlZCBpdCBiZWZvcmUgdXNpbmcgaXQgYXMgYW4gaW5kZXguIE5vdyBpdCBjaGVja3MgaWYgYGFyLSZndDtub2RlX251bWAgaXMgKmdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byogYE1BWF9OT0RFX05VTWAgYmVmb3JlIGluY3JlbWVudGluZy4gVGhpcyBpcyBhIGNsYXNzaWMgb2ZmLWJ5LW9uZSBlcnJvciBmaXguIFRoZSB1cGRhdGVkIGNvZGUsIGluIGVzc2VuY2UsIGVuc3VyZXMgdGhhdCBgYXItJmd0O25vZGVfbnVtYCBpcyB3aXRoaW4gYm91bmRzIGJlZm9yZSBpdCYjMzk7cyB1c2VkIHRvIGluZGV4IGludG8gYGFyLSZndDtub2RlX21hcGAuCgpHaXZlbiB0aGF0IHRoaXMgaXMgYW4gYGF0aDZrbGAgZHJpdmVyIGFuZCB0aGUgY29udGV4dCBtZW50aW9ucyB0aGUgVVNCIGludGVyZmFjZSwgSSBzaG91bGQgZG91YmxlLWNoZWNrIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIExvb2tzIGxpa2UgYEFUSDZLTGAgYW5kIGBBVEg2S0xfVVNCYCBhcmUgdGhlIG9uZXMgdG8gYmUgYXdhcmUgb2YuIFRoZSBmYWN0IHRoYXQgdGhlIGRyaXZlciBoYXMgYSBVU0IgaW50ZXJmYWNlIHN1Z2dlc3RzIGl0IGNvdWxkIGJlIGZ1enphYmxlLCB3aGljaCBpcyBnb29kIHRvIGtlZXAgaW4gbWluZC4gQmFzZWQgb24gdGhpcyBhbmFseXNpcywgSSYjMzk7ZCBzYXkgdGhhdCBgYXRoNmtsX2lic3NfbWFwX2VwaWRgIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbiBJIHdhbnQgdG8gdGFyZ2V0IGZvciBmdXp6aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwNDowNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QVRINktMJiMzNDssCiAgICAmIzM0O0FUSDZLTF9VU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthdGg2a2xfaWJzc19tYXBfZXBpZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhbiBvdXQtb2YtYm91bmRzIGFycmF5IGFjY2VzcyBpbiBgYXRoNmtsX2lic3NfbWFwX2VwaWRgIGJ5IGNvcnJlY3RpbmcgdGhlIGJvdW5kcyBjaGVjayBvbiBgYXItXHUwMDNlbm9kZV9udW1gIGJlZm9yZSBpbmNyZW1lbnRpbmcgaXQgYW5kIHVzaW5nIGl0IGFzIGFuIGluZGV4LiBUaGUgYGF0aDZrbGAgZHJpdmVyIGNhbiBiZSBmdXp6ZWQgdmlhIGl0cyBVU0IgaW50ZXJmYWNlIChgQ09ORklHX0FUSDZLTF9VU0JgKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QVRINktMJiMzNDssCiAgICAmIzM0O0FUSDZLTF9VU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthdGg2a2xfaWJzc19tYXBfZXBpZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhbiBvdXQtb2YtYm91bmRzIGFycmF5IGFjY2VzcyBpbiBgYXRoNmtsX2lic3NfbWFwX2VwaWRgIGJ5IGNvcnJlY3RpbmcgdGhlIGJvdW5kcyBjaGVjayBvbiBgYXItXHUwMDNlbm9kZV9udW1gIGJlZm9yZSBpbmNyZW1lbnRpbmcgaXQgYW5kIHVzaW5nIGl0IGFzIGFuIGluZGV4LiBUaGUgYGF0aDZrbGAgZHJpdmVyIGNhbiBiZSBmdXp6ZWQgdmlhIGl0cyBVU0IgaW50ZXJmYWNlIChgQ09ORklHX0FUSDZLTF9VU0JgKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDA0OjA3OjA1LjQwODc5Mjk0NVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM2MDU2OTEzODE1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkFUSDZLTFwiLFxuICAgIFwiQVRINktMX1VTQlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImF0aDZrbF9pYnNzX21hcF9lcGlkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyBhcnJheSBhY2Nlc3MgaW4gYGF0aDZrbF9pYnNzX21hcF9lcGlkYCBieSBjb3JyZWN0aW5nIHRoZSBib3VuZHMgY2hlY2sgb24gYGFyLVxcdTAwM2Vub2RlX251bWAgYmVmb3JlIGluY3JlbWVudGluZyBpdCBhbmQgdXNpbmcgaXQgYXMgYW4gaW5kZXguIFRoZSBgYXRoNmtsYCBkcml2ZXIgY2FuIGJlIGZ1enplZCB2aWEgaXRzIFVTQiBpbnRlcmZhY2UgKGBDT05GSUdfQVRINktMX1VTQmApLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwNDowNzowNS40MDg3OTkwMzVaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMzNDMxNjcyNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGM1MWY2MTBjOThkOTE3MzM2NTUwOTA1MDdkZmJiMGUwYjhhZDcwMWRcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgMjMgMDQ6MDc6MDQgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguY1xcbmluZGV4IDk3ZmRhYzcyMzdlMjZlLi4zYjAwMzM0MzFiMjk4NyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jXFxuQEAgLTY3LDEwICs2Nyw5IEBAIHN0YXRpYyB1OCBhdGg2a2xfaWJzc19tYXBfZXBpZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbiBcXHR9XFxuIFxcbiBcXHRpZiAoZXBfbWFwID09IC0xKSB7XFxuLVxcdFxcdGVwX21hcCA9IGFyLVxcdTAwM2Vub2RlX251bTtcXG4tXFx0XFx0YXItXFx1MDAzZW5vZGVfbnVtKys7XFxuLVxcdFxcdGlmIChhci1cXHUwMDNlbm9kZV9udW0gXFx1MDAzZSBNQVhfTk9ERV9OVU0pXFxuK1xcdFxcdGlmIChhci1cXHUwMDNlbm9kZV9udW0gXFx1MDAzZT0gTUFYX05PREVfTlVNKVxcbiBcXHRcXHRcXHRyZXR1cm4gRU5EUE9JTlRfVU5VU0VEO1xcbitcXHRcXHRlcF9tYXAgPSBhci1cXHUwMDNlbm9kZV9udW0rKztcXG4gXFx0fVxcbiBcXG4gXFx0bWVtY3B5KGFyLVxcdTAwM2Vub2RlX21hcFtlcF9tYXBdLm1hY19hZGRyLCBldGhfaGRyLVxcdTAwM2VoX2Rlc3QsIEVUSF9BTEVOKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDQ6MDc6MDUuNzQzNzQwNDIxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MzU3MjE5NTc4MzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQVRINktMXCIsXG4gICAgXCJBVEg2S0xfVVNCXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYXRoNmtsX2lic3NfbWFwX2VwaWRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhbiBvdXQtb2YtYm91bmRzIGFycmF5IGFjY2VzcyBpbiBgYXRoNmtsX2lic3NfbWFwX2VwaWRgIGJ5IGNvcnJlY3RpbmcgdGhlIGJvdW5kcyBjaGVjayBvbiBgYXItXFx1MDAzZW5vZGVfbnVtYCBiZWZvcmUgaW5jcmVtZW50aW5nIGl0IGFuZCB1c2luZyBpdCBhcyBhbiBpbmRleC4gVGhlIGBhdGg2a2xgIGRyaXZlciBjYW4gYmUgZnV6emVkIHZpYSBpdHMgVVNCIGludGVyZmFjZSAoYENPTkZJR19BVEg2S0xfVVNCYCkuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYzUxZjYxMGM5OGQ5MTczMzY1NTA5MDUwN2RmYmIwZTBiOGFkNzAxZFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDIzIDA0OjA3OjA0IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguY1xuaW5kZXggOTdmZGFjNzIzN2UyNmUuLjNiMDAzMzQzMWIyOTg3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jXG5AQCAtNjcsMTAgKzY3LDkgQEAgc3RhdGljIHU4IGF0aDZrbF9pYnNzX21hcF9lcGlkKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXHR9XG4gXG4gXHRpZiAoZXBfbWFwID09IC0xKSB7XG4tXHRcdGVwX21hcCA9IGFyLVx1MDAzZW5vZGVfbnVtO1xuLVx0XHRhci1cdTAwM2Vub2RlX251bSsrO1xuLVx0XHRpZiAoYXItXHUwMDNlbm9kZV9udW0gXHUwMDNlIE1BWF9OT0RFX05VTSlcbitcdFx0aWYgKGFyLVx1MDAzZW5vZGVfbnVtIFx1MDAzZT0gTUFYX05PREVfTlVNKVxuIFx0XHRcdHJldHVybiBFTkRQT0lOVF9VTlVTRUQ7XG4rXHRcdGVwX21hcCA9IGFyLVx1MDAzZW5vZGVfbnVtKys7XG4gXHR9XG4gXG4gXHRtZW1jcHkoYXItXHUwMDNlbm9kZV9tYXBbZXBfbWFwXS5tYWNfYWRkciwgZXRoX2hkci1cdTAwM2VoX2Rlc3QsIEVUSF9BTEVOKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDA0OjA3OjA1Ljc0Mzc0MTg3MVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY4ODQ0NTIzNjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgRHJpdmVyIFBhdGNoOiBQb3RlbnRpYWwgVnVsbmVyYWJpbGl0eSBhbmQgRnV6emluZyBGZWFzaWJpbGl0eSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBhdGg2a2xfaWJzc19tYXBfZXBpZGAgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jYC4gSXQgc2VlbXMgbGlrZSB0aGV5J3JlIGZpeGluZyBhIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIGFycmF5IGFjY2Vzcywgd2hpY2ggaXMgYWx3YXlzIHNvbWV0aGluZyB0byBwYXkgYXR0ZW50aW9uIHRvLiBUaGUgb3JpZ2luYWwgY29kZSB3YXMgYSBsaXR0bGUgY2x1bmt5OiBpdCBmaXJzdCBhc3NpZ25lZCBgZXBfbWFwYCBhbmQgKnRoZW4qIGluY3JlbWVudGVkIGBhci1cdTAwM2Vub2RlX251bWAuIFRoZSBkYW5nZXIgd2FzIHRoYXQgaWYgYGFyLVx1MDAzZW5vZGVfbnVtYCB3YXMgYWxyZWFkeSBhdCBgTUFYX05PREVfTlVNYCwgYGVwX21hcGAgd291bGQgZ2V0IGFzc2lnbmVkIHRoYXQgdmFsdWUgKmJlZm9yZSogdGhlIGNoZWNrLiBUaGlzIG1lYW50IGFjY2Vzc2luZyBgYXItXHUwMDNlbm9kZV9tYXBbZXBfbWFwXWAgd291bGQgZ28gb3V0IG9mIGJvdW5kcy4gVGhlIG5ldyBjb2RlIHNtYXJ0bHkgaW5jcmVtZW50cyAqYWZ0ZXIqIHRoZSBhc3NpZ25tZW50LiBUaGF0J3MgYSBnb29kLCBjbGVhbiBmaXguXG5cbkJ1dCBub3csIG15IGV4cGVydCBpbnN0aW5jdHMga2ljayBpbi4gSSBzdGFydCB0aGlua2luZywgXCJDYW4gd2UgKmV4cGxvaXQqIHRoaXMgaW4gYW55IG1lYW5pbmdmdWwgd2F5PyBBbmQgY2FuIHdlIGV2ZW4gKnJlYWNoKiB0aGlzIGNvZGUgaW4gYSB3YXkgdGhhdOKAmXMgZnV6emFibGU/XCIgYGF0aDZrbGAuLi4gdGhhdOKAmXMgYW4gQXRoZXJvcyBBUjYwMDMvQVI2MDA0IGRyaXZlciwgcmlnaHQ/IFRoaXMgaXMgaGFyZHdhcmUtc3BlY2lmaWMsIHNvIGl04oCZcyBsaWtlbHkgcnVubmluZyBhdCBhIGxvdyBsZXZlbC4gVGhlIGJpZyBxdWVzdGlvbiBpcyB3aGV0aGVyIGl0J3MgYWNjZXNzaWJsZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBUaGF0J3MgbXkgbWFpbiBjb25jZXJuLiBXaXRob3V0IGhhcmR3YXJlIGVtdWxhdGlvbiBsaWtlIGBtYWM4MDIxMV9od3NpbWAsIGl04oCZcyBnb2luZyB0byBiZSB0b3VnaCB1bmxlc3MgdGhlcmXigJlzIGEgZGlyZWN0IGludGVyZmFjZS5cblxuTXkgZmlyc3QgdGhvdWdodCBpcyBhbHdheXMsIGFyZSB0aGVyZSBVU0Igb3IgU0RJTyBpbnRlcmZhY2VzPyBDb3VsZCB3ZSBmdXp6IHRoaXMgd2l0aCBhIGR1bW15IEhDRCBvciBzb21ldGhpbmcgc2ltaWxhcj8gTGV04oCZcyBmaW5kIG91dC4gSSBuYXZpZ2F0ZSB0aGUgZGlyZWN0b3J5IHN0cnVjdHVyZS4gSSBzZWUgYHVzYi5jYCBhbmQgYHNkaW8uY2AgaW4gdGhlIGBhdGg2a2xgIGRpcmVjdG9yeS4gQWxyaWdodCwgdGhpcyBpcyBwcm9taXNpbmchIFRoZSBmYWN0IHRoYXQgaXQgaGFzIHRoZXNlIGludGVyZmFjZXMgbWVhbnMgdGhlcmUncyBhIGdvb2QgY2hhbmNlIHdlIGNhbiByZWFjaCBpdC4gTm93LCB0aGUgcmVhbCB3b3JrIGJlZ2lucy4gSSdsbCBuZWVkIHRvIGRpZyBpbnRvIGB1c2IuY2AgYW5kIHNlZSBpZiB3ZSBjYW4gY3JhZnQgc29tZSBpbnB1dHMgdG8gdHJpZ2dlciB0aGlzIGBhdGg2a2xfaWJzc19tYXBfZXBpZGAgZnVuY3Rpb24gYW5kIGV4cGxvcmUgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdHkgcGF0aHMuIEknbSBub3cgdGhpbmtpbmcgYWJvdXQgaG93IHRvIGJ1aWxkIGEgZnV6emVyIGZvciB0aGlzLi4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5ODIsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MTUsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwNDowNzoxMi42MjgxOTYzNjhaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTU5NzAwNjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoNmtsX3VzYlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL0tjb25maWc9MjU9Y29uZmlnIEFUSDZLTF9VU0JcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZy0zMi1cXHQgIFVTQi4gSWYgeW91IGNob29zZSB0byBidWlsZCBpdCBhcyBhIG1vZHVsZSwgaXQgd2lsbCBiZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZzozMzpcXHQgIGNhbGxlZCBhdGg2a2xfdXNiLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZy0zNC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvTWFrZWZpbGU9NDM9YXRoNmtsX3NkaW8teSArPSBzZGlvLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL01ha2VmaWxlLTQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvTWFrZWZpbGU6NDU6b2JqLSQoQ09ORklHX0FUSDZLTF9VU0IpICs9IGF0aDZrbF91c2Iub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvTWFrZWZpbGU6NDY6YXRoNmtsX3VzYi15ICs9IHVzYi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9NYWtlZmlsZS00Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvaHRjX3BpcGUuYz05NDE9c3RhdGljIGludCBhdGg2a2xfaHRjX3BpcGVfcnhfY29tcGxldGUoc3RydWN0IGF0aDZrbCAqYXIsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL2h0Y19waXBlLmMtOTU5LVxcdCAqIFRodXMgdGhlIHBvc3NpYmlsaXR5IG9mIGFyLVxcdTAwM2VodGNfdGFyZ2V0IGJlaW5nIE5VTExcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL2h0Y19waXBlLmM6OTYwOlxcdCAqIHZpYSBhdGg2a2xfcmVjdl9jb21wbGV0ZSAtXFx1MDAzZSBhdGg2a2xfdXNiX2lvX2NvbXBfd29yay5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL2h0Y19waXBlLmMtOTYxLVxcdCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYz0zMD1lbnVtIEFUSDZLTF9VU0JfUElQRV9JRCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NDQ6c3RydWN0IGF0aDZrbF91c2JfcGlwZSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy00NS1cXHRzdHJ1Y3QgbGlzdF9oZWFkIHVyYl9saXN0X2hlYWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTUzLVxcdHU4IGxvZ2ljYWxfcGlwZV9udW07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo1NDpcXHRzdHJ1Y3QgYXRoNmtsX3VzYiAqYXJfdXNiO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNTUtXFx0dTE2IG1heF9wYWNrZXRfc2l6ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjMtLyogdXNiIGRldmljZSBvYmplY3QgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjY0OnN0cnVjdCBhdGg2a2xfdXNiIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTY1LVxcdC8qIHByb3RlY3RzIHBpcGUtXFx1MDAzZXVyYl9saXN0X2hlYWQgYW5kICBwaXBlLVxcdTAwM2V1cmJfY250ICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTY5LVxcdHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2U7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo3MDpcXHRzdHJ1Y3QgYXRoNmtsX3VzYl9waXBlIHBpcGVzW0FUSDZLTF9VU0JfUElQRV9NQVhdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNzEtXFx0dTggKmRpYWdfY21kX2J1ZmZlcjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM9Nzg9c3RydWN0IGF0aDZrbF91cmJfY29udGV4dCB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03OS1cXHRzdHJ1Y3QgbGlzdF9oZWFkIGxpbms7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo4MDpcXHRzdHJ1Y3QgYXRoNmtsX3VzYl9waXBlICpwaXBlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtODEtXFx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTA0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTA1OnN0cnVjdCBhdGg2a2xfdXNiX2N0cmxfZGlhZ19jbWRfd3JpdGUge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTA2LVxcdF9fbGUzMiBjbWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExMjpzdHJ1Y3QgYXRoNmtsX3VzYl9jdHJsX2RpYWdfY21kX3JlYWQge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTEzLVxcdF9fbGUzMiBjbWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExNzpzdHJ1Y3QgYXRoNmtsX3VzYl9jdHJsX2RpYWdfcmVzcF9yZWFkIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExOC1cXHRfX2xlMzIgdmFsdWU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEyMS0vKiBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEyMjpzdGF0aWMgdm9pZCBhdGg2a2xfdXNiX3JlY3ZfY29tcGxldGUoc3RydWN0IHVyYiAqdXJiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEyMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM9MTMwPXN0YXRpYyBzdHJ1Y3QgYXRoNmtsX3VyYl9jb250ZXh0ICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEzMTphdGg2a2xfdXNiX2FsbG9jX3VyYl9mcm9tX3BpcGUoc3RydWN0IGF0aDZrbF91c2JfcGlwZSAqcGlwZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEzMi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTE1Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjE1MzpzdGF0aWMgdm9pZCBhdGg2a2xfdXNiX2ZyZWVfdXJiX3RvX3BpcGUoc3RydWN0IGF0aDZrbF91c2JfcGlwZSAqcGlwZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTE1NC1cXHRcXHRcXHRcXHRcXHRzdHJ1Y3QgYXRoNmtsX3VyYl9jb250ZXh0ICp1cmJfY29udGV4dClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTY4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTY5OnN0YXRpYyB2b2lkIGF0aDZrbF91c2JfY2xlYW51cF9yZWN2X3VyYihzdHJ1Y3QgYXRoNmtsX3VyYl9jb250ZXh0ICp1cmJfY29udGV4dClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTE3MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTE3My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjE3NDpcXHRhdGg2a2xfdXNiX2ZyZWVfdXJiX3RvX3BpcGUodXJiX2NvbnRleHQtXFx1MDAzZXBpcGUsIHVyYl9jb250ZXh0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTE3NS19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xNzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxNzc6c3RhdGljIGlubGluZSBzdHJ1Y3QgYXRoNmtsX3VzYiAqYXRoNmtsX3VzYl9wcml2KHN0cnVjdCBhdGg2a2wgKmFyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTc4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTgyLS8qIHBpcGUgcmVzb3VyY2UgYWxsb2NhdGlvbi9jbGVhbnVwICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxODM6c3RhdGljIGludCBhdGg2a2xfdXNiX2FsbG9jX3BpcGVfcmVzb3VyY2VzKHN0cnVjdCBhdGg2a2xfdXNiX3BpcGUgKnBpcGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xODQtXFx0XFx0XFx0XFx0XFx0ICAgaW50IHVyYl9jbnQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTIwNS1cXHRcXHRwaXBlLVxcdTAwM2V1cmJfYWxsb2MrKztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjIwNjpcXHRcXHRhdGg2a2xfdXNiX2ZyZWVfdXJiX3RvX3BpcGUocGlwZSwgdXJiX2NvbnRleHQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMjA3LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMjE3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MjE4OnN0YXRpYyB2b2lkIGF0aDZrbF91c2JfZnJlZV9waXBlX3Jlc291cmNlcyhzdHJ1Y3QgYXRoNmtsX3VzYl9waXBlICpwaXBlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMjE5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMjQxLVxcdHdoaWxlICh0cnVlKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoyNDI6XFx0XFx0dXJiX2NvbnRleHQgPSBhdGg2a2xfdXNiX2FsbG9jX3VyYl9mcm9tX3BpcGUocGlwZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0yNDMtXFx0XFx0aWYgKHVyYl9jb250ZXh0ID09IE5VTEwpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTI0OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjI0OTpzdGF0aWMgdm9pZCBhdGg2a2xfdXNiX2NsZWFudXBfcGlwZV9yZXNvdXJjZXMoc3RydWN0IGF0aDZrbF91c2IgKmFyX3VzYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTI1MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTI1My1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRINktMX1VTQl9QSVBFX01BWDsgaSsrKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MjU0OlxcdFxcdGF0aDZrbF91c2JfZnJlZV9waXBlX3Jlc291cmNlcyhcXHUwMDI2YXJfdXNiLVxcdTAwM2VwaXBlc1tpXSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0yNTUtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMjU2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MjU3OnN0YXRpYyB1OCBhdGg2a2xfdXNiX2dldF9sb2dpY2FsX3BpcGVfbnVtKHN0cnVjdCBhdGg2a2xfdXNiICphcl91c2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0yNTgtXFx0XFx0XFx0XFx0XFx0ICB1OCBlcF9hZGRyZXNzLCBpbnQgKnVyYl9jb3VudClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMzAyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MzAzOnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9zZXR1cF9waXBlX3Jlc291cmNlcyhzdHJ1Y3QgYXRoNmtsX3VzYiAqYXJfdXNiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMzA0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMzA3LVxcdHN0cnVjdCB1c2JfZW5kcG9pbnRfZGVzY3JpcHRvciAqZW5kcG9pbnQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzozMDg6XFx0c3RydWN0IGF0aDZrbF91c2JfcGlwZSAqcGlwZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTMwOS1cXHRpbnQgaSwgdXJiY291bnQsIHN0YXR1cyA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTM1MC1cXHRcXHRwaXBlX251bSA9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzozNTE6XFx0XFx0ICAgIGF0aDZrbF91c2JfZ2V0X2xvZ2ljYWxfcGlwZV9udW0oYXJfdXNiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMzUyLVxcdFxcdFxcdFxcdFxcdFxcdCAgICBlbmRwb2ludC1cXHUwMDNlYkVuZHBvaW50QWRkcmVzcyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNDA1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NDA2OlxcdFxcdHN0YXR1cyA9IGF0aDZrbF91c2JfYWxsb2NfcGlwZV9yZXNvdXJjZXMocGlwZSwgdXJiY291bnQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNDA3LVxcdFxcdGlmIChzdGF0dXMgIT0gMClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNDE0LS8qIHBpcGUgb3BlcmF0aW9ucyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NDE1OnN0YXRpYyB2b2lkIGF0aDZrbF91c2JfcG9zdF9yZWN2X3RyYW5zZmVycyhzdHJ1Y3QgYXRoNmtsX3VzYl9waXBlICpyZWN2X3BpcGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy00MTYtXFx0XFx0XFx0XFx0XFx0ICAgaW50IGJ1ZmZlcl9sZW5ndGgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQyMi1cXHR3aGlsZSAodHJ1ZSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NDIzOlxcdFxcdHVyYl9jb250ZXh0ID0gYXRoNmtsX3VzYl9hbGxvY191cmJfZnJvbV9waXBlKHJlY3ZfcGlwZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy00MjQtXFx0XFx0aWYgKHVyYl9jb250ZXh0ID09IE5VTEwpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQzOS1cXHRcXHRcXHRcXHQgIGJ1ZmZlcl9sZW5ndGgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo0NDA6XFx0XFx0XFx0XFx0ICBhdGg2a2xfdXNiX3JlY3ZfY29tcGxldGUsIHVyYl9jb250ZXh0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQ0MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNDYzLWVycl9jbGVhbnVwX3VyYjpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjQ2NDpcXHRhdGg2a2xfdXNiX2NsZWFudXBfcmVjdl91cmIodXJiX2NvbnRleHQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNDY1LVxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNDY3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NDY4OnN0YXRpYyB2b2lkIGF0aDZrbF91c2JfZmx1c2hfYWxsKHN0cnVjdCBhdGg2a2xfdXNiICphcl91c2IpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy00Njkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy00ODMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo0ODQ6c3RhdGljIHZvaWQgYXRoNmtsX3VzYl9zdGFydF9yZWN2X3BpcGVzKHN0cnVjdCBhdGg2a2xfdXNiICphcl91c2IpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy00ODUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy00ODktXFx0ICogICAgICBhcl91c2ItXFx1MDAzZXBpcGVzW0FUSDZLTF9VU0JfUElQRV9SWF9DVFJMXS51cmJfYWxsb2MvMjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjQ5MDpcXHQgKiBhdGg2a2xfdXNiX3Bvc3RfcmVjdl90cmFuc2ZlcnMoXFx1MDAyNmFyX3VzYi1cXHUwMDNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy00OTEtXFx0ICpcXHRcXHRwaXBlc1tBVEg2S0xfVVNCX1BJUEVfUlhfQ1RSTF0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQ5Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjQ5NzpcXHRhdGg2a2xfdXNiX3Bvc3RfcmVjdl90cmFuc2ZlcnMoXFx1MDAyNmFyX3VzYi1cXHUwMDNlcGlwZXNbQVRINktMX1VTQl9QSVBFX1JYX0RBVEFdLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNDk4LVxcdFxcdFxcdFxcdCAgICAgICBBVEg2S0xfVVNCX1JYX0JVRkZFUl9TSVpFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNTAxLS8qIGhpZiB1c2IgcngvdHggY29tcGxldGlvbiBmdW5jdGlvbnMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjUwMjpzdGF0aWMgdm9pZCBhdGg2a2xfdXNiX3JlY3ZfY29tcGxldGUoc3RydWN0IHVyYiAqdXJiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNTAzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTUwNC1cXHRzdHJ1Y3QgYXRoNmtsX3VyYl9jb250ZXh0ICp1cmJfY29udGV4dCA9IHVyYi1cXHUwMDNlY29udGV4dDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjUwNTpcXHRzdHJ1Y3QgYXRoNmtsX3VzYl9waXBlICpwaXBlID0gdXJiX2NvbnRleHQtXFx1MDAzZXBpcGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01MDYtXFx0c3RydWN0IHNrX2J1ZmYgKnNrYiA9IE5VTEw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTU0OS1jbGVhbnVwX3JlY3ZfdXJiOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NTUwOlxcdGF0aDZrbF91c2JfY2xlYW51cF9yZWN2X3VyYih1cmJfY29udGV4dCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01NTEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTU1NC1cXHRcXHQvKiBvdXIgZnJlZSB1cmJzIGFyZSBwaWxpbmcgdXAsIHBvc3QgbW9yZSB0cmFuc2ZlcnMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjU1NTpcXHRcXHRhdGg2a2xfdXNiX3Bvc3RfcmVjdl90cmFuc2ZlcnMocGlwZSwgQVRINktMX1VTQl9SWF9CVUZGRVJfU0laRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01NTYtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01NTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo1NTk6c3RhdGljIHZvaWQgYXRoNmtsX3VzYl91c2JfdHJhbnNtaXRfY29tcGxldGUoc3RydWN0IHVyYiAqdXJiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNTYwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTU2MS1cXHRzdHJ1Y3QgYXRoNmtsX3VyYl9jb250ZXh0ICp1cmJfY29udGV4dCA9IHVyYi1cXHUwMDNlY29udGV4dDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjU2MjpcXHRzdHJ1Y3QgYXRoNmtsX3VzYl9waXBlICpwaXBlID0gdXJiX2NvbnRleHQtXFx1MDAzZXBpcGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01NjMtXFx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNTc3LVxcdHVyYl9jb250ZXh0LVxcdTAwM2Vza2IgPSBOVUxMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NTc4OlxcdGF0aDZrbF91c2JfZnJlZV91cmJfdG9fcGlwZSh1cmJfY29udGV4dC1cXHUwMDNlcGlwZSwgdXJiX2NvbnRleHQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNTc5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01ODQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo1ODU6c3RhdGljIHZvaWQgYXRoNmtsX3VzYl9pb19jb21wX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNTg2LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjU4NzpcXHRzdHJ1Y3QgYXRoNmtsX3VzYl9waXBlICpwaXBlID0gY29udGFpbmVyX29mKHdvcmssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo1ODg6XFx0XFx0XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBhdGg2a2xfdXNiX3BpcGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01ODktXFx0XFx0XFx0XFx0XFx0XFx0ICAgIGlvX2NvbXBsZXRlX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NTkwOlxcdHN0cnVjdCBhdGg2a2xfdXNiICphcl91c2I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01OTEtXFx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjA4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NjA5OiNkZWZpbmUgQVRINktMX1VTQl9NQVhfRElBR19DTUQgKHNpemVvZihzdHJ1Y3QgYXRoNmtsX3VzYl9jdHJsX2RpYWdfY21kX3dyaXRlKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjYxMDojZGVmaW5lIEFUSDZLTF9VU0JfTUFYX0RJQUdfUkVTUCAoc2l6ZW9mKHN0cnVjdCBhdGg2a2xfdXNiX2N0cmxfZGlhZ19yZXNwX3JlYWQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NjEyOnN0YXRpYyB2b2lkIGF0aDZrbF91c2JfZGVzdHJveShzdHJ1Y3QgYXRoNmtsX3VzYiAqYXJfdXNiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjEzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjYxNDpcXHRhdGg2a2xfdXNiX2ZsdXNoX2FsbChhcl91c2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjE1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NjE2OlxcdGF0aDZrbF91c2JfY2xlYW51cF9waXBlX3Jlc291cmNlcyhhcl91c2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjE3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02MjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo2Mjc6c3RhdGljIHN0cnVjdCBhdGg2a2xfdXNiICphdGg2a2xfdXNiX2NyZWF0ZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjI4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTYyOS1cXHRzdHJ1Y3QgdXNiX2RldmljZSAqZGV2ID0gaW50ZXJmYWNlX3RvX3VzYmRldihpbnRlcmZhY2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NjMwOlxcdHN0cnVjdCBhdGg2a2xfdXNiICphcl91c2I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo2MzE6XFx0c3RydWN0IGF0aDZrbF91c2JfcGlwZSAqcGlwZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTYzMi1cXHRpbnQgc3RhdHVzID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjM0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NjM1OlxcdC8qIGF0aDZrbF91c2JfZGVzdHJveSgpIG5lZWRzIGFyX3VzYiAhPSBOVUxMIFxcdTAwMjZcXHUwMDI2IGFyX3VzYi1cXHUwMDNld3EgIT0gTlVMTC4gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjYzNjpcXHRhcl91c2IgPSBremFsbG9jX29iaihzdHJ1Y3QgYXRoNmtsX3VzYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02MzctXFx0aWYgKGFyX3VzYiA9PSBOVUxMKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02NTItXFx0XFx0SU5JVF9XT1JLKFxcdTAwMjZwaXBlLVxcdTAwM2Vpb19jb21wbGV0ZV93b3JrLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NjUzOlxcdFxcdFxcdCAgYXRoNmtsX3VzYl9pb19jb21wX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjU0LVxcdFxcdHNrYl9xdWV1ZV9oZWFkX2luaXQoXFx1MDAyNnBpcGUtXFx1MDAzZWlvX2NvbXBfcXVldWUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02NTktXFx0XFx0c3RhdHVzID0gLUVOT01FTTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjY2MDpcXHRcXHRnb3RvIGZhaWxfYXRoNmtsX3VzYl9jcmVhdGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02NjEtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02NjYtXFx0XFx0c3RhdHVzID0gLUVOT01FTTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjY2NzpcXHRcXHRnb3RvIGZhaWxfYXRoNmtsX3VzYl9jcmVhdGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02NjgtXFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjY5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NjcwOlxcdHN0YXR1cyA9IGF0aDZrbF91c2Jfc2V0dXBfcGlwZV9yZXNvdXJjZXMoYXJfdXNiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTY3MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjY3MjpmYWlsX2F0aDZrbF91c2JfY3JlYXRlOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjczLVxcdGlmIChzdGF0dXMgIT0gMCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6Njc0OlxcdFxcdGF0aDZrbF91c2JfZGVzdHJveShhcl91c2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjc1LVxcdFxcdGFyX3VzYiA9IE5VTEw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTY3OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjY4MDpzdGF0aWMgdm9pZCBhdGg2a2xfdXNiX2RldmljZV9kZXRhY2hlZChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjgxLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjY4MjpcXHRzdHJ1Y3QgYXRoNmtsX3VzYiAqYXJfdXNiO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjgzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02OTItXFx0YXRoNmtsX2NvcmVfY2xlYW51cChhcl91c2ItXFx1MDAzZWFyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjY5MzpcXHRhdGg2a2xfdXNiX2Rlc3Ryb3koYXJfdXNiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTY5NC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jPTY5Nz1zdGF0aWMgdm9pZCBoaWZfc3RhcnQoc3RydWN0IGF0aDZrbCAqYXIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02OTgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6Njk5OlxcdHN0cnVjdCBhdGg2a2xfdXNiICpkZXZpY2UgPSBhdGg2a2xfdXNiX3ByaXYoYXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNzAwLVxcdGludCBpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNzAxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NzAyOlxcdGF0aDZrbF91c2Jfc3RhcnRfcmVjdl9waXBlcyhkZXZpY2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNzAzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03MTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo3MTI6c3RhdGljIGludCBhdGg2a2xfdXNiX3NlbmQoc3RydWN0IGF0aDZrbCAqYXIsIHU4IFBpcGVJRCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTcxMy1cXHRcXHRcXHQgICBzdHJ1Y3Qgc2tfYnVmZiAqaGRyX3NrYiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTcxNC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo3MTU6XFx0c3RydWN0IGF0aDZrbF91c2IgKmRldmljZSA9IGF0aDZrbF91c2JfcHJpdihhcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo3MTY6XFx0c3RydWN0IGF0aDZrbF91c2JfcGlwZSAqcGlwZSA9IFxcdTAwMjZkZXZpY2UtXFx1MDAzZXBpcGVzW1BpcGVJRF07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03MTctXFx0c3RydWN0IGF0aDZrbF91cmJfY29udGV4dCAqdXJiX2NvbnRleHQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTcyNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjcyNjpcXHR1cmJfY29udGV4dCA9IGF0aDZrbF91c2JfYWxsb2NfdXJiX2Zyb21fcGlwZShwaXBlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTcyNy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNzQ3LVxcdFxcdHN0YXR1cyA9IC1FTk9NRU07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo3NDg6XFx0XFx0YXRoNmtsX3VzYl9mcmVlX3VyYl90b19waXBlKHVyYl9jb250ZXh0LVxcdTAwM2VwaXBlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNzQ5LVxcdFxcdFxcdFxcdFxcdCAgICB1cmJfY29udGV4dCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTc1Ny1cXHRcXHRcXHQgIGxlbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjc1ODpcXHRcXHRcXHQgIGF0aDZrbF91c2JfdXNiX3RyYW5zbWl0X2NvbXBsZXRlLCB1cmJfY29udGV4dCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03NTktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTc3Ny1cXHRcXHR1c2JfdW5hbmNob3JfdXJiKHVyYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo3Nzg6XFx0XFx0YXRoNmtsX3VzYl9mcmVlX3VyYl90b19waXBlKHVyYl9jb250ZXh0LVxcdTAwM2VwaXBlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNzc5LVxcdFxcdFxcdFxcdFxcdCAgICB1cmJfY29udGV4dCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jPTc4OD1zdGF0aWMgdm9pZCBoaWZfc3RvcChzdHJ1Y3QgYXRoNmtsICphcilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTc4OS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo3OTA6XFx0c3RydWN0IGF0aDZrbF91c2IgKmRldmljZSA9IGF0aDZrbF91c2JfcHJpdihhcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03OTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo3OTI6XFx0YXRoNmtsX3VzYl9mbHVzaF9hbGwoZGV2aWNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTc5My19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03OTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo3OTU6c3RhdGljIHZvaWQgYXRoNmtsX3VzYl9nZXRfZGVmYXVsdF9waXBlKHN0cnVjdCBhdGg2a2wgKmFyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNzk2LVxcdFxcdFxcdFxcdFxcdHU4ICp1bF9waXBlLCB1OCAqZGxfcGlwZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtODAxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6ODAyOnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9tYXBfc2VydmljZV9waXBlKHN0cnVjdCBhdGg2a2wgKmFyLCB1MTYgc3ZjX2lkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtODAzLVxcdFxcdFxcdFxcdCAgICAgICB1OCAqdWxfcGlwZSwgdTggKmRsX3BpcGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTg1Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjg1NzpzdGF0aWMgdTE2IGF0aDZrbF91c2JfZ2V0X2ZyZWVfcXVldWVfbnVtYmVyKHN0cnVjdCBhdGg2a2wgKmFyLCB1OCBwaXBlX2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtODU4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjg1OTpcXHRzdHJ1Y3QgYXRoNmtsX3VzYiAqZGV2aWNlID0gYXRoNmtsX3VzYl9wcml2KGFyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTg2MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM9ODY0PXN0YXRpYyB2b2lkIGhpZl9kZXRhY2hfaHRjKHN0cnVjdCBhdGg2a2wgKmFyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtODY1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjg2NjpcXHRzdHJ1Y3QgYXRoNmtsX3VzYiAqZGV2aWNlID0gYXRoNmtsX3VzYl9wcml2KGFyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTg2Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjg2ODpcXHRhdGg2a2xfdXNiX2ZsdXNoX2FsbChkZXZpY2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtODY5LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTg3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjg3MTpzdGF0aWMgaW50IGF0aDZrbF91c2Jfc3VibWl0X2N0cmxfb3V0KHN0cnVjdCBhdGg2a2xfdXNiICphcl91c2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy04NzItXFx0XFx0XFx0XFx0ICAgdTggcmVxLCB1MTYgdmFsdWUsIHUxNiBpbmRleCwgdm9pZCAqZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTAyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6OTAzOnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9zdWJtaXRfY3RybF9pbihzdHJ1Y3QgYXRoNmtsX3VzYiAqYXJfdXNiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTA0LVxcdFxcdFxcdFxcdCAgdTggcmVxLCB1MTYgdmFsdWUsIHUxNiBpbmRleCwgdm9pZCAqZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTM2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6OTM3OnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9jdHJsX21zZ19leGNoYW5nZShzdHJ1Y3QgYXRoNmtsX3VzYiAqYXJfdXNiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTM4LVxcdFxcdFxcdFxcdCAgICAgdTggcmVxX3ZhbCwgdTggKnJlcV9idWYsIHUzMiByZXFfbGVuLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05NDMtXFx0Lyogc2VuZCBjb21tYW5kICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo5NDQ6XFx0cmV0ID0gYXRoNmtsX3VzYl9zdWJtaXRfY3RybF9vdXQoYXJfdXNiLCByZXFfdmFsLCAwLCAwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTQ1LVxcdFxcdFxcdFxcdFxcdCByZXFfYnVmLCByZXFfbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTU1LVxcdC8qIGdldCByZXNwb25zZSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6OTU2OlxcdHJldCA9IGF0aDZrbF91c2Jfc3VibWl0X2N0cmxfaW4oYXJfdXNiLCByZXNwX3ZhbCwgMCwgMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTk1Ny1cXHRcXHRcXHRcXHRcXHRyZXNwX2J1ZiwgKnJlc3BfbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTYxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6OTYyOnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9kaWFnX3JlYWQzMihzdHJ1Y3QgYXRoNmtsICphciwgdTMyIGFkZHJlc3MsIHUzMiAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTk2My17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo5NjQ6XFx0c3RydWN0IGF0aDZrbF91c2IgKmFyX3VzYiA9IGFyLVxcdTAwM2VoaWZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjk2NTpcXHRzdHJ1Y3QgYXRoNmtsX3VzYl9jdHJsX2RpYWdfcmVzcF9yZWFkICpyZXNwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6OTY2OlxcdHN0cnVjdCBhdGg2a2xfdXNiX2N0cmxfZGlhZ19jbWRfcmVhZCAqY21kO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTY3LVxcdHUzMiByZXNwX2xlbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTY5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6OTcwOlxcdGNtZCA9IChzdHJ1Y3QgYXRoNmtsX3VzYl9jdHJsX2RpYWdfY21kX3JlYWQgKikgYXJfdXNiLVxcdTAwM2VkaWFnX2NtZF9idWZmZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05NzEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTk3Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjk3NzpcXHRyZXQgPSBhdGg2a2xfdXNiX2N0cmxfbXNnX2V4Y2hhbmdlKGFyX3VzYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTk3OC1cXHRcXHRcXHRcXHRBVEg2S0xfVVNCX0NPTlRST0xfUkVRX0RJQUdfQ01ELFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTc5LVxcdFxcdFxcdFxcdCh1OCAqKSBjbWQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo5ODA6XFx0XFx0XFx0XFx0c2l6ZW9mKHN0cnVjdCBhdGg2a2xfdXNiX2N0cmxfZGlhZ19jbWRfd3JpdGUpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTgxLVxcdFxcdFxcdFxcdEFUSDZLTF9VU0JfQ09OVFJPTF9SRVFfRElBR19SRVNQLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05ODgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo5ODk6XFx0cmVzcCA9IChzdHJ1Y3QgYXRoNmtsX3VzYl9jdHJsX2RpYWdfcmVzcF9yZWFkICopXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05OTAtXFx0XFx0YXJfdXNiLVxcdTAwM2VkaWFnX3Jlc3BfYnVmZmVyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05OTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo5OTc6c3RhdGljIGludCBhdGg2a2xfdXNiX2RpYWdfd3JpdGUzMihzdHJ1Y3QgYXRoNmtsICphciwgdTMyIGFkZHJlc3MsIF9fbGUzMiBkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTk4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjk5OTpcXHRzdHJ1Y3QgYXRoNmtsX3VzYiAqYXJfdXNiID0gYXItXFx1MDAzZWhpZl9wcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTAwMDpcXHRzdHJ1Y3QgYXRoNmtsX3VzYl9jdHJsX2RpYWdfY21kX3dyaXRlICpjbWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDAxLVxcdGludCByZXQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDAyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTAwMzpcXHRjbWQgPSAoc3RydWN0IGF0aDZrbF91c2JfY3RybF9kaWFnX2NtZF93cml0ZSAqKSBhcl91c2ItXFx1MDAzZWRpYWdfY21kX2J1ZmZlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwMDQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMDA1OlxcdG1lbXNldChjbWQsIDAsIHNpemVvZihzdHJ1Y3QgYXRoNmtsX3VzYl9jdHJsX2RpYWdfY21kX3dyaXRlKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDA2LVxcdGNtZC1cXHUwMDNlY21kID0gY3B1X3RvX2xlMzIoQVRINktMX1VTQl9DVFJMX0RJQUdfQ0NfV1JJVEUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDA5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTAxMDpcXHRyZXQgPSBhdGg2a2xfdXNiX2N0cmxfbXNnX2V4Y2hhbmdlKGFyX3VzYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwMTEtXFx0XFx0XFx0XFx0XFx0ICAgQVRINktMX1VTQl9DT05UUk9MX1JFUV9ESUFHX0NNRCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTAyMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEwMjM6c3RhdGljIGludCBhdGg2a2xfdXNiX2JtaV9yZWFkKHN0cnVjdCBhdGg2a2wgKmFyLCB1OCAqYnVmLCB1MzIgbGVuKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTAyNC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMDI1OlxcdHN0cnVjdCBhdGg2a2xfdXNiICphcl91c2IgPSBhci1cXHUwMDNlaGlmX3ByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDI2LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwMjgtXFx0LyogZ2V0IHJlc3BvbnNlICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMDI5OlxcdHJldCA9IGF0aDZrbF91c2Jfc3VibWl0X2N0cmxfaW4oYXJfdXNiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTAzMC1cXHRcXHRcXHRcXHRcXHRBVEg2S0xfVVNCX0NPTlRST0xfUkVRX1JFQ1ZfQk1JX1JFU1AsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwNDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMDQxOnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9ibWlfd3JpdGUoc3RydWN0IGF0aDZrbCAqYXIsIHU4ICpidWYsIHUzMiBsZW4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDQyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEwNDM6XFx0c3RydWN0IGF0aDZrbF91c2IgKmFyX3VzYiA9IGFyLVxcdTAwM2VoaWZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwNDQtXFx0aW50IHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTA0Ni1cXHQvKiBzZW5kIGNvbW1hbmQgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEwNDc6XFx0cmV0ID0gYXRoNmtsX3VzYl9zdWJtaXRfY3RybF9vdXQoYXJfdXNiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTA0OC1cXHRcXHRcXHRcXHRcXHQgQVRINktMX1VTQl9DT05UUk9MX1JFUV9TRU5EX0JNSV9DTUQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwNTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMDU5OnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9wb3dlcl9vbihzdHJ1Y3QgYXRoNmtsICphcilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwNjAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTA2NTpzdGF0aWMgaW50IGF0aDZrbF91c2JfcG93ZXJfb2ZmKHN0cnVjdCBhdGg2a2wgKmFyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTA2Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwNzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMDcxOnN0YXRpYyB2b2lkIGF0aDZrbF91c2Jfc3RvcChzdHJ1Y3QgYXRoNmtsICphcilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwNzIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDc1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTA3NjpzdGF0aWMgdm9pZCBhdGg2a2xfdXNiX2NsZWFudXBfc2NhdHRlcihzdHJ1Y3QgYXRoNmtsICphcilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwNzcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDgzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTA4NDpzdGF0aWMgaW50IGF0aDZrbF91c2Jfc3VzcGVuZChzdHJ1Y3QgYXRoNmtsICphciwgc3RydWN0IGNmZzgwMjExX3dvd2xhbiAqd293KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTA4NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwOTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMDkyOnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9yZXN1bWUoc3RydWN0IGF0aDZrbCAqYXIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDkzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTA5OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExMDA6c3RhdGljIGNvbnN0IHN0cnVjdCBhdGg2a2xfaGlmX29wcyBhdGg2a2xfdXNiX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExMDE6XFx0LmRpYWdfcmVhZDMyID0gYXRoNmtsX3VzYl9kaWFnX3JlYWQzMixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExMDI6XFx0LmRpYWdfd3JpdGUzMiA9IGF0aDZrbF91c2JfZGlhZ193cml0ZTMyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTEwMzpcXHQuYm1pX3JlYWQgPSBhdGg2a2xfdXNiX2JtaV9yZWFkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTEwNDpcXHQuYm1pX3dyaXRlID0gYXRoNmtsX3VzYl9ibWlfd3JpdGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTA1OlxcdC5wb3dlcl9vbiA9IGF0aDZrbF91c2JfcG93ZXJfb24sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTA2OlxcdC5wb3dlcl9vZmYgPSBhdGg2a2xfdXNiX3Bvd2VyX29mZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExMDc6XFx0LnN0b3AgPSBhdGg2a2xfdXNiX3N0b3AsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTA4OlxcdC5waXBlX3NlbmQgPSBhdGg2a2xfdXNiX3NlbmQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTA5OlxcdC5waXBlX2dldF9kZWZhdWx0ID0gYXRoNmtsX3VzYl9nZXRfZGVmYXVsdF9waXBlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTExMDpcXHQucGlwZV9tYXBfc2VydmljZSA9IGF0aDZrbF91c2JfbWFwX3NlcnZpY2VfcGlwZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExMTE6XFx0LnBpcGVfZ2V0X2ZyZWVfcXVldWVfbnVtYmVyID0gYXRoNmtsX3VzYl9nZXRfZnJlZV9xdWV1ZV9udW1iZXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTEyOlxcdC5jbGVhbnVwX3NjYXR0ZXIgPSBhdGg2a2xfdXNiX2NsZWFudXBfc2NhdHRlcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExMTM6XFx0LnN1c3BlbmQgPSBhdGg2a2xfdXNiX3N1c3BlbmQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTE0OlxcdC5yZXN1bWUgPSBhdGg2a2xfdXNiX3Jlc3VtZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExMTUtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTExNy0vKiBhdGg2a2wgdXNiIGRyaXZlciByZWdpc3RlcmVkIGZ1bmN0aW9ucyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTExODpzdGF0aWMgaW50IGF0aDZrbF91c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExMTktXFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTEyMi1cXHRzdHJ1Y3QgYXRoNmtsICphcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExMjM6XFx0c3RydWN0IGF0aDZrbF91c2IgKmFyX3VzYiA9IE5VTEw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTI0LVxcdGludCB2ZW5kb3JfaWQsIHByb2R1Y3RfaWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExNDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTQzOlxcdGFyX3VzYiA9IGF0aDZrbF91c2JfY3JlYXRlKGludGVyZmFjZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTQ0LVxcdGlmIChhcl91c2IgPT0gTlVMTClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTE1NS1cXHRhci1cXHUwMDNlaGlmX3R5cGUgPSBBVEg2S0xfSElGX1RZUEVfVVNCO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTE1NjpcXHRhci1cXHUwMDNlaGlmX29wcyA9IFxcdTAwMjZhdGg2a2xfdXNiX29wcztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExNTctXFx0YXItXFx1MDAzZW1ib3hfaW5mby5ibG9ja19zaXplID0gMTY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExNzItZXJyX3VzYl9kZXN0cm95OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTE3MzpcXHRhdGg2a2xfdXNiX2Rlc3Ryb3koYXJfdXNiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExNzQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExNzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTc4OnN0YXRpYyB2b2lkIGF0aDZrbF91c2JfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTE3OS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTgwOlxcdGF0aDZrbF91c2JfZGV2aWNlX2RldGFjaGVkKGludGVyZmFjZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTgxLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTE4NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExODU6c3RhdGljIGludCBhdGg2a2xfdXNiX3BtX3N1c3BlbmQoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExODYtXFx0XFx0XFx0ICAgICAgcG1fbWVzc2FnZV90IG1lc3NhZ2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTg3LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExODg6XFx0c3RydWN0IGF0aDZrbF91c2IgKmRldmljZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExODktXFx0ZGV2aWNlID0gdXNiX2dldF9pbnRmZGF0YShpbnRlcmZhY2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTE5MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExOTE6XFx0YXRoNmtsX3VzYl9mbHVzaF9hbGwoZGV2aWNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExOTItXFx0cmV0dXJuIDA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExOTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTk1OnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9wbV9yZXN1bWUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExOTYte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTE5NzpcXHRzdHJ1Y3QgYXRoNmtsX3VzYiAqZGV2aWNlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTE5OC1cXHRkZXZpY2UgPSB1c2JfZ2V0X2ludGZkYXRhKGludGVyZmFjZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTk5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTIwMDpcXHRhdGg2a2xfdXNiX3Bvc3RfcmVjdl90cmFuc2ZlcnMoXFx1MDAyNmRldmljZS1cXHUwMDNlcGlwZXNbQVRINktMX1VTQl9QSVBFX1JYX0RBVEFdLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTIwMS1cXHRcXHRcXHRcXHQgICAgICAgQVRINktMX1VTQl9SWF9CVUZGRVJfU0laRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMjAyOlxcdGF0aDZrbF91c2JfcG9zdF9yZWN2X3RyYW5zZmVycyhcXHUwMDI2ZGV2aWNlLVxcdTAwM2VwaXBlc1tBVEg2S0xfVVNCX1BJUEVfUlhfREFUQTJdLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTIwMy1cXHRcXHRcXHRcXHQgICAgICAgQVRINktMX1VTQl9SWF9CVUZGRVJfU0laRSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEyMDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMjEwOiNkZWZpbmUgYXRoNmtsX3VzYl9wbV9zdXNwZW5kIE5VTExcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEyMTE6I2RlZmluZSBhdGg2a2xfdXNiX3BtX3Jlc3VtZSBOVUxMXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMjEyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMjE1LS8qIHRhYmxlIG9mIGRldmljZXMgdGhhdCB3b3JrIHdpdGggdGhpcyBkcml2ZXIgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEyMTY6c3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIGF0aDZrbF91c2JfaWRzW10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMjE3LVxcdHtVU0JfREVWSUNFKDB4MGNmMywgMHg5Mzc1KX0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEyMjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMjIzOk1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBhdGg2a2xfdXNiX2lkcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMjI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTIyNTpzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgYXRoNmtsX3VzYl9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMjI2OlxcdC5uYW1lID0gXFxcImF0aDZrbF91c2JcXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTIyNzpcXHQucHJvYmUgPSBhdGg2a2xfdXNiX3Byb2JlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTIyODpcXHQuc3VzcGVuZCA9IGF0aDZrbF91c2JfcG1fc3VzcGVuZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEyMjk6XFx0LnJlc3VtZSA9IGF0aDZrbF91c2JfcG1fcmVzdW1lLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTIzMDpcXHQuZGlzY29ubmVjdCA9IGF0aDZrbF91c2JfZGlzY29ubmVjdCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEyMzE6XFx0LmlkX3RhYmxlID0gYXRoNmtsX3VzYl9pZHMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMjMyLVxcdC5zdXBwb3J0c19hdXRvc3VzcGVuZCA9IHRydWUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEyMzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMjM2Om1vZHVsZV91c2JfZHJpdmVyKGF0aDZrbF91c2JfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEyMzctXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDA0OjA3OjEyLjY4NDE3MDQ2NFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0ODY4Mjg2NDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW5pdGlhbCBBc3Nlc3NtZW50IFx1MDAyNiBTdHJhdGVneSoqXG5cbk9rYXksIHNvIHRoZSBgYXRoNmtsYCBkcml2ZXIgaGFzIGEgVVNCIGNvbXBvbmVudCDigJMgdGhhdCdzIHBvdGVudGlhbGx5IHZlcnkgaW50ZXJlc3RpbmcgZnJvbSBhIGZ1enppbmcgcGVyc3BlY3RpdmUhIFRoZSBmYWN0IHRoYXQgaXQncyBVU0ItZW5hYmxlZCBtZWFucyB3ZSBtaWdodCBiZSBhYmxlIHRvIGxldmVyYWdlIHRoZSBVU0IgZHVtbXkgSENELCBsaWtlIHRoZSBvbmUgdXNlZCBieSBzeXprYWxsZXIsIGZvciBzb21lIGVmZmVjdGl2ZSBmdXp6aW5nLiBJdCBmZWVscyBsaWtlIHRoaXMgY291bGQgYmUgYSBncmVhdCB2ZWN0b3IgZm9yIGZpbmRpbmcgc29tZSBpbnRlcmVzdGluZyBidWdzLiBOb3csIHRoZSBwYXRjaCBmb2N1c2VzIG9uIG1vZGlmeWluZyBgYXRoNmtsX2lic3NfbWFwX2VwaWRgIHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmNgLiBNeSBmaXJzdCBtb3ZlIGhlcmUgaXMgZ29pbmcgdG8gYmUgdG8gdW5kZXJzdGFuZCB0aGUgY2FsbGluZyBjb250ZXh0cyBvZiB0aGF0IHNwZWNpZmljIGZ1bmN0aW9uLiBLbm93aW5nIGl0cyB1c2FnZSB3aWxsIGFsbG93IG1lIHRvIGFzc2VzcyB0aGUgcG90ZW50aWFsIGltcGFjdCBvZiB0aGUgcGF0Y2ggYW5kIGhvdyBlZmZlY3RpdmVseSB3ZSBjYW4gZnV6eiBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTU3ODcsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwNDowNzoxNi4xNzEwMDA5MDZaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTU5OTQzOTYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoNmtsX2lic3NfbWFwX2VwaWRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM9Mzc9c3RhdGljIGlubGluZSB1OCBhdGg2a2xfZ2V0X2FpZCh1OCB0aWRfbXV4KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtNDEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM6NDI6c3RhdGljIHU4IGF0aDZrbF9pYnNzX21hcF9lcGlkKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtNDMtXFx0XFx0XFx0ICAgICAgIHUzMiAqbWFwX25vKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM9MzU1PW5ldGRldl90eF90IGF0aDZrbF9kYXRhX3R4KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy00NTQtXFx0aWYgKGNoa19hZGhvY19wc19tYXBwaW5nKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jOjQ1NTpcXHRcXHRlaWQgPSBhdGg2a2xfaWJzc19tYXBfZXBpZChza2IsIGRldiwgXFx1MDAyNm1hcF9ubyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtNDU2LVxcdGVsc2VcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDQ6MDc6MTYuMjI3MDA0MzQyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzk4NzY1Mjc4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246XG5cbioqQW5hbHl6aW5nIHRoZSBOZXR3b3JrIFRyYW5zbWlzc2lvbiBQYXRoKipcblxuUmlnaHQsIHNvIEknbSBkaXZpbmcgaW50byB0aGlzIGBhdGg2a2xfZGF0YV90eGAgZnVuY3Rpb24uIFRoZSBrZXkgaGVyZSBpcyB0aGF0IGl0J3MgYmVpbmcgY2FsbGVkIGZyb20gYG5kb19zdGFydF94bWl0YCwgd2hpY2gsIGlmIEkgcmVjYWxsIGNvcnJlY3RseSwgaXMgdGhlIGtlcm5lbCdzIG5ldHdvcmsgZGV2aWNlJ3MgdHJhbnNtaXQgZnVuY3Rpb24uIEkgbmVlZCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4gdGhhdCBteSB1bmRlcnN0YW5kaW5nIGlzIGNvcnJlY3Q7IEkgbmVlZCB0byB2ZXJpZnkgdGhhdCBgYXRoNmtsX2RhdGFfdHhgICppcyogYWN0dWFsbHkgd2hhdCB3ZSd2ZSBob29rZWQgdXAgdG8gYG5kb19zdGFydF94bWl0YC4gVGhhdCdzIHRoZSBjcnVjaWFsIGZpcnN0IHN0ZXAuIFdlIG5lZWQgdG8gdmFsaWRhdGUgdGhhdCBhc3N1bXB0aW9uIGJlZm9yZSBwcm9jZWVkaW5nIHdpdGggYW55IGluLWRlcHRoIGFuYWx5c2lzIG9mIHRoZSBkYXRhIHBhdGguIFRoaXMgaXMgYSBmb3VuZGF0aW9uYWwgcGllY2Ugb2YgdGhlIHB1enpsZSwgYW5kIGEgbWlzdW5kZXJzdGFuZGluZyBoZXJlIHdvdWxkIHRocm93IGV2ZXJ5dGhpbmcgZWxzZSBvZmYuIExldCBtZSBkb3VibGUtY2hlY2sgdGhhdCBxdWljay5cblxuXG4iLCJJbnB1dFRva2VucyI6MTY0MDQsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwNDowNzoyMC4yMTQ2NTk4OTdaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTgxNDQwOTYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoNmtsX2RhdGFfdHhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9jb3JlLmg9OTE2PXZvaWQgYXRoNmtsX2ZyZWVfY29va2llKHN0cnVjdCBhdGg2a2wgKmFyLCBzdHJ1Y3QgYXRoNmtsX2Nvb2tpZSAqY29va2llKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL2NvcmUuaDo5MTc6bmV0ZGV2X3R4X3QgYXRoNmtsX2RhdGFfdHgoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9jb3JlLmgtOTE4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9tYWluLmM9ODY4PXZvaWQgYXRoNmtsX3BzcG9sbF9ldmVudChzdHJ1Y3QgYXRoNmtsX3ZpZiAqdmlmLCB1OCBhaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL21haW4uYy05MTEtXFx0XFx0Y29ubi1cXHUwMDNlc3RhX2ZsYWdzIHw9IFNUQV9QU19QT0xMRUQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9tYWluLmM6OTEyOlxcdFxcdGF0aDZrbF9kYXRhX3R4KHNrYiwgdmlmLVxcdTAwM2VuZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL21haW4uYy05MTMtXFx0XFx0Y29ubi1cXHUwMDNlc3RhX2ZsYWdzIFxcdTAwMjY9IH5TVEFfUFNfUE9MTEVEO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9tYWluLmM9OTI0PXZvaWQgYXRoNmtsX2R0aW1leHBpcnlfZXZlbnQoc3RydWN0IGF0aDZrbF92aWYgKnZpZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvbWFpbi5jLTk1NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL21haW4uYzo5NTY6XFx0XFx0YXRoNmtsX2RhdGFfdHgoc2tiLCB2aWYtXFx1MDAzZW5kZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvbWFpbi5jLTk1Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvbWFpbi5jPTEyODM9c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBhdGg2a2xfbmV0ZGV2X29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvbWFpbi5jLTEyODUtXFx0Lm5kb19zdG9wICAgICAgICAgICAgICAgPSBhdGg2a2xfY2xvc2UsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9tYWluLmM6MTI4NjpcXHQubmRvX3N0YXJ0X3htaXQgICAgICAgICA9IGF0aDZrbF9kYXRhX3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvbWFpbi5jLTEyODctXFx0Lm5kb19zZXRfZmVhdHVyZXMgICAgICAgPSBhdGg2a2xfc2V0X2ZlYXR1cmVzLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM9Mjg1PWludCBhdGg2a2xfY29udHJvbF90eCh2b2lkICpkZXZ0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtMzU0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jOjM1NTpuZXRkZXZfdHhfdCBhdGg2a2xfZGF0YV90eChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTM1Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYz0xMjMxPXN0YXRpYyB2b2lkIGF0aDZrbF91YXBzZF90cmlnZ2VyX2ZyYW1lX3J4KHN0cnVjdCBhdGg2a2xfdmlmICp2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy0xMjgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jOjEyODE6XFx0XFx0YXRoNmtsX2RhdGFfdHgoc2tiLCB2aWYtXFx1MDAzZW5kZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTEyODItXFx0XFx0Y29ubi1cXHUwMDNlc3RhX2ZsYWdzIFxcdTAwMjY9IH4oU1RBX1BTX0FQU0RfVFJJR0dFUik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYz0xMzAwPXZvaWQgYXRoNmtsX3J4KHN0cnVjdCBodGNfdGFyZ2V0ICp0YXJnZXQsIHN0cnVjdCBodGNfcGFja2V0ICpwYWNrZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy0xNDg1LVxcdFxcdFxcdFxcdFxcdHNwaW5fdW5sb2NrX2JoKFxcdTAwMjZjb25uLVxcdTAwM2Vwc3FfbG9jayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM6MTQ4NjpcXHRcXHRcXHRcXHRcXHRhdGg2a2xfZGF0YV90eChza2J1ZmYsIHZpZi1cXHUwMDNlbmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtMTQ4Ny1cXHRcXHRcXHRcXHRcXHRzcGluX2xvY2tfYmgoXFx1MDAyNmNvbm4tXFx1MDAzZXBzcV9sb2NrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTE0OTItXFx0XFx0XFx0XFx0XFx0c3Bpbl91bmxvY2tfYmgoXFx1MDAyNmNvbm4tXFx1MDAzZXBzcV9sb2NrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYzoxNDkzOlxcdFxcdFxcdFxcdFxcdGF0aDZrbF9kYXRhX3R4KHNrYnVmZiwgdmlmLVxcdTAwM2VuZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy0xNDk0LVxcdFxcdFxcdFxcdFxcdHNwaW5fbG9ja19iaChcXHUwMDI2Y29ubi1cXHUwMDNlcHNxX2xvY2spO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtMTU4OS1cXHRcXHRpZiAoc2tiMSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYzoxNTkwOlxcdFxcdFxcdGF0aDZrbF9kYXRhX3R4KHNrYjEsIHZpZi1cXHUwMDNlbmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtMTU5MS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDQ6MDc6MjAuMjcyODA5NTAzWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzkxMDIzNTMzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBXaXJlbGVzcyBEcml2ZXIgVnVsbmVyYWJpbGl0eSoqXG5cbk9rYXksIHNvIGBhdGg2a2xfZGF0YV90eGAgaXMgZGVmaW5pdGl2ZWx5IHRoZSBgbmRvX3N0YXJ0X3htaXRgIGZ1bmN0aW9uIC0gZ290IGl0LiBUaGF0IG1lYW5zIGl0J3MgdGhlIGVudHJ5IHBvaW50IGZvciBuZXR3b3JrIHBhY2tldCB0cmFuc21pc3Npb24sIHdoaWNoLCBhcyBldmVyeW9uZSBrbm93cywgbWFrZXMgaXQgYSBwcmltZSB0YXJnZXQgZm9yIGZ1enppbmcuIFRoZSBwYXRjaCBJJ20gbG9va2luZyBhdCBhZGRyZXNzZXMgYW4gb3V0LW9mLWJvdW5kcyBhY2Nlc3Mgd2l0aGluIGBhdGg2a2xfaWJzc19tYXBfZXBpZGAuIFRoZSBxdWVzdGlvbiBpcywgY2FuIHdlIGFjdHVhbGx5ICpyZWFjaCogdGhhdCBmdW5jdGlvbj9cblxuTGV0J3Mgc2VlLi4uIGBhdGg2a2xfaWJzc19tYXBfZXBpZGAgaXMgY2FsbGVkIHdpdGhpbiBgYXRoNmtsX2RhdGFfdHhgLCBidXQgb25seSB1bmRlciB0aGUgY29uZGl0aW9uIHRoYXQgYGNoa19hZGhvY19wc19tYXBwaW5nYCBpcyB0cnVlLiBSaWdodC4gU28sIHRoYXQncyB0aGUga2V5LiBXZSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmRpdGlvbnMgdW5kZXIgd2hpY2ggYGNoa19hZGhvY19wc19tYXBwaW5nYCBldmFsdWF0ZXMgdG8gdHJ1ZSB0byBmaWd1cmUgb3V0IGlmIHdlIGNhbiBldmVuIHRyaWdnZXIgdGhpcyB2dWxuZXJhYmlsaXR5LiBUaW1lIHRvIGRpZyBkZWVwZXIgaW50byB0aGUgY29kZSBhbmQgc2VlIHdoYXQgbWFrZXMgdGhhdCB2YXJpYWJsZSB0aWNrLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNzkzMiwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwNDowNzoyNC4xODMwNDcwNjRaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU2OTc4MjI2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNoa19hZGhvY19wc19tYXBwaW5nXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jPTM1NT1uZXRkZXZfdHhfdCBhdGg2a2xfZGF0YV90eChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtMzYzLVxcdHU4IGFjID0gOTk7IC8qIGluaXRpYWxpemUgdG8gdW5tYXBwZWQgYWMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYzozNjQ6XFx0Ym9vbCBjaGtfYWRob2NfcHNfbWFwcGluZyA9IGZhbHNlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTM2NS1cXHRpbnQgcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtNDM4LVxcdFxcdCAgICBhci1cXHUwMDNlaWJzc19wc19lbmFibGUgXFx1MDAyNlxcdTAwMjYgdGVzdF9iaXQoQ09OTkVDVEVELCBcXHUwMDI2dmlmLVxcdTAwM2VmbGFncykpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM6NDM5OlxcdFxcdFxcdGNoa19hZGhvY19wc19tYXBwaW5nID0gdHJ1ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy00NDAtXFx0XFx0ZWxzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy00NTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM6NDU0OlxcdGlmIChjaGtfYWRob2NfcHNfbWFwcGluZylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy00NTUtXFx0XFx0ZWlkID0gYXRoNmtsX2lic3NfbWFwX2VwaWQoc2tiLCBkZXYsIFxcdTAwMjZtYXBfbm8pO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwNDowNzoyNC4yNDAwMzA4NVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MDIwMzcyODIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIEJ1ZyBGaXggYW5kIEZ1enppbmcgU3RyYXRlZ3kqKlxuXG5Pa2F5LCBzbyBJJ3ZlIHBpbnBvaW50ZWQgdGhlIGNvbmRpdGlvbjogdGhpcyB2YXJpYWJsZSBpcyBzZXQgdG8gdHJ1ZSB3aGVuIHRoZSBXaS1GaSBpbnRlcmZhY2UgdHlwZSBpcyBhZC1ob2MsIElCU1MgcG93ZXItc2F2ZSBpcyBlbmFibGVkLCBhbmQgdGhlIGludGVyZmFjZSBpcyBjb25uZWN0ZWQuIFNlZW1zIHByZXR0eSBzdHJhaWdodGZvcndhcmQg4oCTIGRlZmluaXRlbHkgYSByZWFjaGFibGUgY29kZSBwYXRoLiBUaGUgcGF0Y2ggY2xhaW1zIHRvIGZpeCBhbiBvdXQtb2YtYm91bmRzIGFjY2Vzcy4gR2l2ZW4gdGhlIHBvdGVudGlhbCBzZXZlcml0eSBvZiBPT0IgaXNzdWVzLCBhbmQgdGhlIHJlbGF0aXZlbHkgY2xlYXIgdHJpZ2dlciBjb25kaXRpb24sIHRoaXMgaXMgKmFic29sdXRlbHkqIHdvcnRoIGZ1enppbmcuXG5cbk5vdywgbGV0J3MgbmFpbCBkb3duIHRoZSBjb25maWd1cmF0aW9uIHJlcXVpcmVtZW50cyBmb3Igc3VjY2Vzc2Z1bCBmdXp6aW5nLiBJJ20gdGhpbmtpbmcgd2UnbGwgbmVlZCBgQ09ORklHX0FUSDZLTGAgYW5kIGVpdGhlciBgQ09ORklHX0FUSDZLTF9VU0JgIG9yIGBDT05GSUdfQVRINktMX1NESU9gLiBVU0Igd2lsbCBwcm9iYWJseSBiZSBlYXNpZXIgdG8gd29yayB3aXRoIGZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlLCBidXQgbGV0J3MgcXVpY2tseSBkb3VibGUtY2hlY2sgdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL0tjb25maWdgIGZpbGUgdG8gY29uZmlybSB0aG9zZSBjb25maWcgbmFtZXMgYXJlIGV4YWN0bHkgY29ycmVjdCBhbmQgdGhlcmUgYXJlbid0IGFueSBzdWJ0bGUgZGVwZW5kZW5jaWVzIEknbSBtaXNzaW5nLiBHZXR0aW5nIHRoZSBjb25maWd1cmF0aW9uIHJpZ2h0IHVwZnJvbnQgc2F2ZXMgdGltZSBhbmQgZnJ1c3RyYXRpb24gbGF0ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4Njg2LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQ1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDA0OjA3OjI5LjI2MDQwNjE3MVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTY5Nzc4MzYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEFUSDZLTFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBJU0NcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL0tjb25maWc6Mjpjb25maWcgQVRINktMXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIkF0aGVyb3MgbW9iaWxlIGNoaXBzZXRzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL0tjb25maWctMTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnOjE0OmNvbmZpZyBBVEg2S0xfU0RJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZy0xNS1cXHR0cmlzdGF0ZSBcXFwiQXRoZXJvcyBhdGg2a2wgU0RJTyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnLTI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZzoyNTpjb25maWcgQVRINktMX1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZy0yNi1cXHR0cmlzdGF0ZSBcXFwiQXRoZXJvcyBhdGg2a2wgVVNCIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL0tjb25maWctMzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnOjM1OmNvbmZpZyBBVEg2S0xfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL0tjb25maWctMzYtXFx0Ym9vbCBcXFwiQXRoZXJvcyBhdGg2a2wgZGVidWdnaW5nXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnLTQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZzo0NTpjb25maWcgQVRINktMX1RSQUNJTkdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL0tjb25maWctNDYtXFx0Ym9vbCBcXFwiQXRoZXJvcyBhdGg2a2wgdHJhY2luZyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnLTU2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZzo1Nzpjb25maWcgQVRINktMX1JFR0RPTUFJTlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZy01OC1cXHRib29sIFxcXCJBdGhlcm9zIGF0aDZrbCByZWdkb21haW4gc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDQ6MDc6MjkuMzE3MzkwODI3WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU4NTM5NjE5MjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRm9jdXNpbmcgb24gU3BlY2lmaWMgRnVuY3Rpb25zIGZvciBBbmFseXNpcyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZSBgQVRINktMYCBhbmQgYEFUSDZLTF9VU0JgIGNvbmZpZ3VyYXRpb25zLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZmlndXJlIG91dCB0aGUga2V5IGZ1bmN0aW9ucyB0byBleGFtaW5lLiBSaWdodCBub3csIEknbSBrZXllZCBpbiBvbiBgYXRoNmtsX2lic3NfbWFwX2VwaWRgIGJlY2F1c2UgaXQncyB0aGUgbW9kaWZpZWQgb25lLiBJdCBhcHBlYXJzIHRoYXQgYGF0aDZrbF9kYXRhX3R4YCBpcyB0aGUgY2FsbGVyLiBJIHNob3VsZCBwcm9iYWJseSBjaGVjayBmb3IgYW55IG90aGVyIHJlbGF0ZWQgZnVuY3Rpb25zLlxuXG5SaWdodCwgYGF0aDZrbF9pYnNzX21hcF9lcGlkYCBpcyBhIHN0YXRpYyBmdW5jdGlvbiBsb2NhdGVkIHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmNgLiBJIHdhcyBnb2luZyB0byBhZGQgYm90aCBgYXRoNmtsX2lic3NfbWFwX2VwaWRgIGFuZCBgYXRoNmtsX2RhdGFfdHhgIHRvIG15IGBGb2N1c1N5bWJvbHNgIGxpc3QuIEhvd2V2ZXIsIEkgbmVlZCB0byBwYXVzZSBmb3IgYSBzZWNvbmQuIGBhdGg2a2xfZGF0YV90eGAgaXMgYSBob3QtcGF0aCBmdW5jdGlvbiwgc3BlY2lmaWNhbGx5IHRoZSBgbmRvX3N0YXJ0X3htaXRgIGVudHJ5IHBvaW50LiBUaGUgaW5zdHJ1Y3Rpb25zIGFkdmlzZSBhdm9pZGluZyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gYXZvaWQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cblxuRXZlbiB0aG91Z2ggYGF0aDZrbF9kYXRhX3R4YCBpcyBzcGVjaWZpYyB0byB0aGUgYGF0aDZrbGAgZHJpdmVyLCBpdCdzIGFsc28gdGhlIHByaW1hcnkgVFggcGF0aCBmb3IgaXQuIFRoYXQgbWFrZXMgaXQgbW9yZSBnZW5lcmljIHRoYW4gaXQgc2hvdWxkIGJlLiBUaHVzLCBJJ2xsIHN0aWNrIHRvIGBhdGg2a2xfaWJzc19tYXBfZXBpZGAg4oCTIGl0J3MgbW9yZSBzcGVjaWZpYyB0byB0aGUgbW9kaWZpY2F0aW9uIGFuZCBzaG91bGQgcHJvdmlkZSBhIGNsZWFyZXIgc2lnbmFsLiBJJ2xsIGNvbnRpbnVlIHNlYXJjaGluZyBmb3IgYW55IG90aGVyIHBvdGVudGlhbGx5IHJlbGV2YW50IGZ1bmN0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTk1ODEsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDQ6MDc6MzUuMTcxMzU1MTVaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU2Njk4MzQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aDZrbF9pYnNzX21hcF9lcGlkXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jPTM3PXN0YXRpYyBpbmxpbmUgdTggYXRoNmtsX2dldF9haWQodTggdGlkX211eClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTQxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jOjQyOnN0YXRpYyB1OCBhdGg2a2xfaWJzc19tYXBfZXBpZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTQzLVxcdFxcdFxcdCAgICAgICB1MzIgKm1hcF9ubylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jPTM1NT1uZXRkZXZfdHhfdCBhdGg2a2xfZGF0YV90eChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtNDU0LVxcdGlmIChjaGtfYWRob2NfcHNfbWFwcGluZylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYzo0NTU6XFx0XFx0ZWlkID0gYXRoNmtsX2lic3NfbWFwX2VwaWQoc2tiLCBkZXYsIFxcdTAwMjZtYXBfbm8pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTQ1Ni1cXHRlbHNlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDA0OjA3OjM1LjIyODA1Nzg1NVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTU2MDk2MzcxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBvdGVudGlhbCBPdXQtb2YtQm91bmRzIElzc3VlIGluIGBhdGg2a2xfaWJzc19tYXBfZXBpZGAqKlxuXG5Pa2F5LCBzbyBJIHNlZSB0aGF0IHRoZSBkaWZmICpvbmx5KiB0b3VjaGVzIGBhdGg2a2xfaWJzc19tYXBfZXBpZGAuIExldCdzIGNvbmZpcm0gdGhhdCdzIHRoZSBzb2xlIGZ1bmN0aW9uIG1vZGlmaWVkIOKAkyB5dXAsIGp1c3QgdGhhdCBvbmUuIFRoaXMgaW1tZWRpYXRlbHkgZm9jdXNlcyBteSBhdHRlbnRpb24uIFRoZSBjaGFuZ2Ugc2VlbXMgdG8gYmUgY29ycmVjdGluZyBhbiBvdXQtb2YtYm91bmRzIGFycmF5IGFjY2VzcyB3aXRoaW4gdGhpcyBmdW5jdGlvbi4gSXQgbG9va3MgbGlrZSB0aGUgcHJpb3IgbG9naWMgaGFkIGEgZmxhdyBpbiBob3cgaXQgaGFuZGxlZCBgYXItXHUwMDNlbm9kZV9udW1gIGJlZm9yZSB1c2luZyBpdCBhcyBhbiBpbmRleC5cblxuU3BlY2lmaWNhbGx5LCBpdCBzZWVtcyB0aGUgYm91bmRzIGNoZWNrIHdhc24ndCBxdWl0ZSByaWdodC4gSXQgY2hlY2tlZCBpZiBgYXItXHUwMDNlbm9kZV9udW1gICpleGNlZWRlZCogYE1BWF9OT0RFX05VTWAgYnV0IHRoZW4gaW5jcmVtZW50ZWQgaXQgYmVmb3JlIHVzaW5nIGl0IGFzIGFuIGluZGV4LiBOb3cgaXQgY2hlY2tzIGlmIGBhci1cdTAwM2Vub2RlX251bWAgaXMgKmdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byogYE1BWF9OT0RFX05VTWAgYmVmb3JlIGluY3JlbWVudGluZy4gVGhpcyBpcyBhIGNsYXNzaWMgb2ZmLWJ5LW9uZSBlcnJvciBmaXguIFRoZSB1cGRhdGVkIGNvZGUsIGluIGVzc2VuY2UsIGVuc3VyZXMgdGhhdCBgYXItXHUwMDNlbm9kZV9udW1gIGlzIHdpdGhpbiBib3VuZHMgYmVmb3JlIGl0J3MgdXNlZCB0byBpbmRleCBpbnRvIGBhci1cdTAwM2Vub2RlX21hcGAuXG5cbkdpdmVuIHRoYXQgdGhpcyBpcyBhbiBgYXRoNmtsYCBkcml2ZXIgYW5kIHRoZSBjb250ZXh0IG1lbnRpb25zIHRoZSBVU0IgaW50ZXJmYWNlLCBJIHNob3VsZCBkb3VibGUtY2hlY2sgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gTG9va3MgbGlrZSBgQVRINktMYCBhbmQgYEFUSDZLTF9VU0JgIGFyZSB0aGUgb25lcyB0byBiZSBhd2FyZSBvZi4gVGhlIGZhY3QgdGhhdCB0aGUgZHJpdmVyIGhhcyBhIFVTQiBpbnRlcmZhY2Ugc3VnZ2VzdHMgaXQgY291bGQgYmUgZnV6emFibGUsIHdoaWNoIGlzIGdvb2QgdG8ga2VlcCBpbiBtaW5kLiBCYXNlZCBvbiB0aGlzIGFuYWx5c2lzLCBJJ2Qgc2F5IHRoYXQgYGF0aDZrbF9pYnNzX21hcF9lcGlkYCBpcyBkZWZpbml0ZWx5IGEgZnVuY3Rpb24gSSB3YW50IHRvIHRhcmdldCBmb3IgZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjA1MzIsIk91dHB1dFRva2VucyI6MTI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzgwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDA0OjA3OjQxLjM4NDE1NjgzNloiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgxNTM4ODc0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJBVEg2S0xcIixcbiAgICBcIkFUSDZLTF9VU0JcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJhdGg2a2xfaWJzc19tYXBfZXBpZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgYXJyYXkgYWNjZXNzIGluIGBhdGg2a2xfaWJzc19tYXBfZXBpZGAgYnkgY29ycmVjdGluZyB0aGUgYm91bmRzIGNoZWNrIG9uIGBhci1cXHUwMDNlbm9kZV9udW1gIGJlZm9yZSBpbmNyZW1lbnRpbmcgaXQgYW5kIHVzaW5nIGl0IGFzIGFuIGluZGV4LiBUaGUgYGF0aDZrbGAgZHJpdmVyIGNhbiBiZSBmdXp6ZWQgdmlhIGl0cyBVU0IgaW50ZXJmYWNlIChgQ09ORklHX0FUSDZLTF9VU0JgKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJBVEg2S0xcIixcbiAgICBcIkFUSDZLTF9VU0JcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJhdGg2a2xfaWJzc19tYXBfZXBpZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgYXJyYXkgYWNjZXNzIGluIGBhdGg2a2xfaWJzc19tYXBfZXBpZGAgYnkgY29ycmVjdGluZyB0aGUgYm91bmRzIGNoZWNrIG9uIGBhci1cXHUwMDNlbm9kZV9udW1gIGJlZm9yZSBpbmNyZW1lbnRpbmcgaXQgYW5kIHVzaW5nIGl0IGFzIGFuIGluZGV4LiBUaGUgYGF0aDZrbGAgZHJpdmVyIGNhbiBiZSBmdXp6ZWQgdmlhIGl0cyBVU0IgaW50ZXJmYWNlIChgQ09ORklHX0FUSDZLTF9VU0JgKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow52p72[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-23 03:55:07 +0000 UTC FinishedAt: 2026-07-23 04:07:43 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "90883c513ca01e77c56b8d94be7de11420c1dacf", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "ATH6KL", "ATH6KL_USB" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "90883c513ca01e77c56b8d94be7de11420c1dacf", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "ATH6KL", "ATH6KL_USB" ], "series_id": "f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ath6kl_ibss_map_epid" ], "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+CgkJCTx0ZD4yMDI2LzA3LzIzIDA0OjA3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0FUSDZLTCYjMzQ7LAogICAgJiMzNDtBVEg2S0xfVVNCJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YXRoNmtsX2lic3NfbWFwX2VwaWQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyBhcnJheSBhY2Nlc3MgaW4gYGF0aDZrbF9pYnNzX21hcF9lcGlkYCBieSBjb3JyZWN0aW5nIHRoZSBib3VuZHMgY2hlY2sgb24gYGFyLVx1MDAzZW5vZGVfbnVtYCBiZWZvcmUgaW5jcmVtZW50aW5nIGl0IGFuZCB1c2luZyBpdCBhcyBhbiBpbmRleC4gVGhlIGBhdGg2a2xgIGRyaXZlciBjYW4gYmUgZnV6emVkIHZpYSBpdHMgVVNCIGludGVyZmFjZSAoYENPTkZJR19BVEg2S0xfVVNCYCkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDQ6MDc8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBjNTFmNjEwYzk4ZDkxNzMzNjU1MDkwNTA3ZGZiYjBlMGI4YWQ3MDFkXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMjMgMDQ6MDc6MDQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguY1xuaW5kZXggOTdmZGFjNzIzN2UyNmUuLjNiMDAzMzQzMWIyOTg3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jXG5AQCAtNjcsMTAgJiM0Mzs2Nyw5IEBAIHN0YXRpYyB1OCBhdGg2a2xfaWJzc19tYXBfZXBpZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFx0fVxuIFxuIFx0aWYgKGVwX21hcCA9PSAtMSkge1xuLVx0XHRlcF9tYXAgPSBhci1cdTAwM2Vub2RlX251bTtcbi1cdFx0YXItXHUwMDNlbm9kZV9udW0mIzQzOyYjNDM7O1xuLVx0XHRpZiAoYXItXHUwMDNlbm9kZV9udW0gXHUwMDNlIE1BWF9OT0RFX05VTSlcbiYjNDM7XHRcdGlmIChhci1cdTAwM2Vub2RlX251bSBcdTAwM2U9IE1BWF9OT0RFX05VTSlcbiBcdFx0XHRyZXR1cm4gRU5EUE9JTlRfVU5VU0VEO1xuJiM0MztcdFx0ZXBfbWFwID0gYXItXHUwMDNlbm9kZV9udW0mIzQzOyYjNDM7O1xuIFx0fVxuIFxuIFx0bWVtY3B5KGFyLVx1MDAzZW5vZGVfbWFwW2VwX21hcF0ubWFjX2FkZHIsIGV0aF9oZHItXHUwMDNlaF9kZXN0LCBFVEhfQUxFTik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDQ6MDc8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0FUSDZLTCYjMzQ7LAogICAgJiMzNDtBVEg2S0xfVVNCJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YXRoNmtsX2lic3NfbWFwX2VwaWQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyBhcnJheSBhY2Nlc3MgaW4gYGF0aDZrbF9pYnNzX21hcF9lcGlkYCBieSBjb3JyZWN0aW5nIHRoZSBib3VuZHMgY2hlY2sgb24gYGFyLVx1MDAzZW5vZGVfbnVtYCBiZWZvcmUgaW5jcmVtZW50aW5nIGl0IGFuZCB1c2luZyBpdCBhcyBhbiBpbmRleC4gVGhlIGBhdGg2a2xgIGRyaXZlciBjYW4gYmUgZnV6emVkIHZpYSBpdHMgVVNCIGludGVyZmFjZSAoYENPTkZJR19BVEg2S0xfVVNCYCkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGM1MWY2MTBjOThkOTE3MzM2NTUwOTA1MDdkZmJiMGUwYjhhZDcwMWQKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEp1bCAyMyAwNDowNzowNCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMKaW5kZXggOTdmZGFjNzIzN2UyNmUuLjNiMDAzMzQzMWIyOTg3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYwpAQCAtNjcsMTAgJiM0Mzs2Nyw5IEBAIHN0YXRpYyB1OCBhdGg2a2xfaWJzc19tYXBfZXBpZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCX0KIAogCWlmIChlcF9tYXAgPT0gLTEpIHsKLQkJZXBfbWFwID0gYXItJmd0O25vZGVfbnVtOwotCQlhci0mZ3Q7bm9kZV9udW0mIzQzOyYjNDM7OwotCQlpZiAoYXItJmd0O25vZGVfbnVtICZndDsgTUFYX05PREVfTlVNKQomIzQzOwkJaWYgKGFyLSZndDtub2RlX251bSAmZ3Q7PSBNQVhfTk9ERV9OVU0pCiAJCQlyZXR1cm4gRU5EUE9JTlRfVU5VU0VEOwomIzQzOwkJZXBfbWFwID0gYXItJmd0O25vZGVfbnVtJiM0MzsmIzQzOzsKIAl9CiAKIAltZW1jcHkoYXItJmd0O25vZGVfbWFwW2VwX21hcF0ubWFjX2FkZHIsIGV0aF9oZHItJmd0O2hfZGVzdCwgRVRIX0FMRU4pOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwNDowNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTgyCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogNDE1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIERyaXZlciBQYXRjaDogUG90ZW50aWFsIFZ1bG5lcmFiaWxpdHkgYW5kIEZ1enppbmcgRmVhc2liaWxpdHkqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBhdGg2a2xfaWJzc19tYXBfZXBpZGAgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jYC4gSXQgc2VlbXMgbGlrZSB0aGV5JiMzOTtyZSBmaXhpbmcgYSBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyBhcnJheSBhY2Nlc3MsIHdoaWNoIGlzIGFsd2F5cyBzb21ldGhpbmcgdG8gcGF5IGF0dGVudGlvbiB0by4gVGhlIG9yaWdpbmFsIGNvZGUgd2FzIGEgbGl0dGxlIGNsdW5reTogaXQgZmlyc3QgYXNzaWduZWQgYGVwX21hcGAgYW5kICp0aGVuKiBpbmNyZW1lbnRlZCBgYXItJmd0O25vZGVfbnVtYC4gVGhlIGRhbmdlciB3YXMgdGhhdCBpZiBgYXItJmd0O25vZGVfbnVtYCB3YXMgYWxyZWFkeSBhdCBgTUFYX05PREVfTlVNYCwgYGVwX21hcGAgd291bGQgZ2V0IGFzc2lnbmVkIHRoYXQgdmFsdWUgKmJlZm9yZSogdGhlIGNoZWNrLiBUaGlzIG1lYW50IGFjY2Vzc2luZyBgYXItJmd0O25vZGVfbWFwW2VwX21hcF1gIHdvdWxkIGdvIG91dCBvZiBib3VuZHMuIFRoZSBuZXcgY29kZSBzbWFydGx5IGluY3JlbWVudHMgKmFmdGVyKiB0aGUgYXNzaWdubWVudC4gVGhhdCYjMzk7cyBhIGdvb2QsIGNsZWFuIGZpeC4KCkJ1dCBub3csIG15IGV4cGVydCBpbnN0aW5jdHMga2ljayBpbi4gSSBzdGFydCB0aGlua2luZywgJiMzNDtDYW4gd2UgKmV4cGxvaXQqIHRoaXMgaW4gYW55IG1lYW5pbmdmdWwgd2F5PyBBbmQgY2FuIHdlIGV2ZW4gKnJlYWNoKiB0aGlzIGNvZGUgaW4gYSB3YXkgdGhhdOKAmXMgZnV6emFibGU/JiMzNDsgYGF0aDZrbGAuLi4gdGhhdOKAmXMgYW4gQXRoZXJvcyBBUjYwMDMvQVI2MDA0IGRyaXZlciwgcmlnaHQ/IFRoaXMgaXMgaGFyZHdhcmUtc3BlY2lmaWMsIHNvIGl04oCZcyBsaWtlbHkgcnVubmluZyBhdCBhIGxvdyBsZXZlbC4gVGhlIGJpZyBxdWVzdGlvbiBpcyB3aGV0aGVyIGl0JiMzOTtzIGFjY2Vzc2libGUgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gVGhhdCYjMzk7cyBteSBtYWluIGNvbmNlcm4uIFdpdGhvdXQgaGFyZHdhcmUgZW11bGF0aW9uIGxpa2UgYG1hYzgwMjExX2h3c2ltYCwgaXTigJlzIGdvaW5nIHRvIGJlIHRvdWdoIHVubGVzcyB0aGVyZeKAmXMgYSBkaXJlY3QgaW50ZXJmYWNlLgoKTXkgZmlyc3QgdGhvdWdodCBpcyBhbHdheXMsIGFyZSB0aGVyZSBVU0Igb3IgU0RJTyBpbnRlcmZhY2VzPyBDb3VsZCB3ZSBmdXp6IHRoaXMgd2l0aCBhIGR1bW15IEhDRCBvciBzb21ldGhpbmcgc2ltaWxhcj8gTGV04oCZcyBmaW5kIG91dC4gSSBuYXZpZ2F0ZSB0aGUgZGlyZWN0b3J5IHN0cnVjdHVyZS4gSSBzZWUgYHVzYi5jYCBhbmQgYHNkaW8uY2AgaW4gdGhlIGBhdGg2a2xgIGRpcmVjdG9yeS4gQWxyaWdodCwgdGhpcyBpcyBwcm9taXNpbmchIFRoZSBmYWN0IHRoYXQgaXQgaGFzIHRoZXNlIGludGVyZmFjZXMgbWVhbnMgdGhlcmUmIzM5O3MgYSBnb29kIGNoYW5jZSB3ZSBjYW4gcmVhY2ggaXQuIE5vdywgdGhlIHJlYWwgd29yayBiZWdpbnMuIEkmIzM5O2xsIG5lZWQgdG8gZGlnIGludG8gYHVzYi5jYCBhbmQgc2VlIGlmIHdlIGNhbiBjcmFmdCBzb21lIGlucHV0cyB0byB0cmlnZ2VyIHRoaXMgYGF0aDZrbF9pYnNzX21hcF9lcGlkYCBmdW5jdGlvbiBhbmQgZXhwbG9yZSBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0eSBwYXRocy4gSSYjMzk7bSBub3cgdGhpbmtpbmcgYWJvdXQgaG93IHRvIGJ1aWxkIGEgZnV6emVyIGZvciB0aGlzLi4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDQ6MDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YXRoNmtsX3VzYiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZz0yNT1jb25maWcgQVRINktMX1VTQlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZy0zMi1cdCAgVVNCLiBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGl0IGFzIGEgbW9kdWxlLCBpdCB3aWxsIGJlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL0tjb25maWc6MzM6XHQgIGNhbGxlZCBhdGg2a2xfdXNiLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnLTM0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvTWFrZWZpbGU9NDM9YXRoNmtsX3NkaW8teSAmIzQzOz0gc2Rpby5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL01ha2VmaWxlLTQ0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9NYWtlZmlsZTo0NTpvYmotJChDT05GSUdfQVRINktMX1VTQikgJiM0Mzs9IGF0aDZrbF91c2Iub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9NYWtlZmlsZTo0NjphdGg2a2xfdXNiLXkgJiM0Mzs9IHVzYi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL01ha2VmaWxlLTQ3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvaHRjX3BpcGUuYz05NDE9c3RhdGljIGludCBhdGg2a2xfaHRjX3BpcGVfcnhfY29tcGxldGUoc3RydWN0IGF0aDZrbCAqYXIsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9odGNfcGlwZS5jLTk1OS1cdCAqIFRodXMgdGhlIHBvc3NpYmlsaXR5IG9mIGFyLVx1MDAzZWh0Y190YXJnZXQgYmVpbmcgTlVMTFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9odGNfcGlwZS5jOjk2MDpcdCAqIHZpYSBhdGg2a2xfcmVjdl9jb21wbGV0ZSAtXHUwMDNlIGF0aDZrbF91c2JfaW9fY29tcF93b3JrLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9odGNfcGlwZS5jLTk2MS1cdCAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM9MzA9ZW51bSBBVEg2S0xfVVNCX1BJUEVfSUQge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjQ0OnN0cnVjdCBhdGg2a2xfdXNiX3BpcGUge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy00NS1cdHN0cnVjdCBsaXN0X2hlYWQgdXJiX2xpc3RfaGVhZDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTUzLVx0dTggbG9naWNhbF9waXBlX251bTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NTQ6XHRzdHJ1Y3QgYXRoNmtsX3VzYiAqYXJfdXNiO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01NS1cdHUxNiBtYXhfcGFja2V0X3NpemU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02My0vKiB1c2IgZGV2aWNlIG9iamVjdCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo2NDpzdHJ1Y3QgYXRoNmtsX3VzYiB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTY1LVx0LyogcHJvdGVjdHMgcGlwZS1cdTAwM2V1cmJfbGlzdF9oZWFkIGFuZCAgcGlwZS1cdTAwM2V1cmJfY250ICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02OS1cdHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2U7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjcwOlx0c3RydWN0IGF0aDZrbF91c2JfcGlwZSBwaXBlc1tBVEg2S0xfVVNCX1BJUEVfTUFYXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNzEtXHR1OCAqZGlhZ19jbWRfYnVmZmVyO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM9Nzg9c3RydWN0IGF0aDZrbF91cmJfY29udGV4dCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTc5LVx0c3RydWN0IGxpc3RfaGVhZCBsaW5rO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo4MDpcdHN0cnVjdCBhdGg2a2xfdXNiX3BpcGUgKnBpcGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTgxLVx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTA1OnN0cnVjdCBhdGg2a2xfdXNiX2N0cmxfZGlhZ19jbWRfd3JpdGUge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDYtXHRfX2xlMzIgY21kO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTExLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTI6c3RydWN0IGF0aDZrbF91c2JfY3RybF9kaWFnX2NtZF9yZWFkIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTEzLVx0X19sZTMyIGNtZDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTE3OnN0cnVjdCBhdGg2a2xfdXNiX2N0cmxfZGlhZ19yZXNwX3JlYWQge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTgtXHRfX2xlMzIgdmFsdWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMjEtLyogZnVuY3Rpb24gZGVjbGFyYXRpb25zICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEyMjpzdGF0aWMgdm9pZCBhdGg2a2xfdXNiX3JlY3ZfY29tcGxldGUoc3RydWN0IHVyYiAqdXJiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTIzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM9MTMwPXN0YXRpYyBzdHJ1Y3QgYXRoNmtsX3VyYl9jb250ZXh0ICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTMxOmF0aDZrbF91c2JfYWxsb2NfdXJiX2Zyb21fcGlwZShzdHJ1Y3QgYXRoNmtsX3VzYl9waXBlICpwaXBlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMzIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTUyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxNTM6c3RhdGljIHZvaWQgYXRoNmtsX3VzYl9mcmVlX3VyYl90b19waXBlKHN0cnVjdCBhdGg2a2xfdXNiX3BpcGUgKnBpcGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTE1NC1cdFx0XHRcdFx0c3RydWN0IGF0aDZrbF91cmJfY29udGV4dCAqdXJiX2NvbnRleHQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xNjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjE2OTpzdGF0aWMgdm9pZCBhdGg2a2xfdXNiX2NsZWFudXBfcmVjdl91cmIoc3RydWN0IGF0aDZrbF91cmJfY29udGV4dCAqdXJiX2NvbnRleHQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTE3MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xNzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjE3NDpcdGF0aDZrbF91c2JfZnJlZV91cmJfdG9fcGlwZSh1cmJfY29udGV4dC1cdTAwM2VwaXBlLCB1cmJfY29udGV4dCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTE3NS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTE3Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTc3OnN0YXRpYyBpbmxpbmUgc3RydWN0IGF0aDZrbF91c2IgKmF0aDZrbF91c2JfcHJpdihzdHJ1Y3QgYXRoNmtsICphcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTc4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTE4Mi0vKiBwaXBlIHJlc291cmNlIGFsbG9jYXRpb24vY2xlYW51cCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxODM6c3RhdGljIGludCBhdGg2a2xfdXNiX2FsbG9jX3BpcGVfcmVzb3VyY2VzKHN0cnVjdCBhdGg2a2xfdXNiX3BpcGUgKnBpcGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTE4NC1cdFx0XHRcdFx0ICAgaW50IHVyYl9jbnQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0yMDUtXHRcdHBpcGUtXHUwMDNldXJiX2FsbG9jJiM0MzsmIzQzOztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MjA2Olx0XHRhdGg2a2xfdXNiX2ZyZWVfdXJiX3RvX3BpcGUocGlwZSwgdXJiX2NvbnRleHQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0yMDctXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0yMTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjIxODpzdGF0aWMgdm9pZCBhdGg2a2xfdXNiX2ZyZWVfcGlwZV9yZXNvdXJjZXMoc3RydWN0IGF0aDZrbF91c2JfcGlwZSAqcGlwZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMjE5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTI0MS1cdHdoaWxlICh0cnVlKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjI0MjpcdFx0dXJiX2NvbnRleHQgPSBhdGg2a2xfdXNiX2FsbG9jX3VyYl9mcm9tX3BpcGUocGlwZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTI0My1cdFx0aWYgKHVyYl9jb250ZXh0ID09IE5VTEwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0yNDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjI0OTpzdGF0aWMgdm9pZCBhdGg2a2xfdXNiX2NsZWFudXBfcGlwZV9yZXNvdXJjZXMoc3RydWN0IGF0aDZrbF91c2IgKmFyX3VzYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMjUwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTI1My1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFUSDZLTF9VU0JfUElQRV9NQVg7IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoyNTQ6XHRcdGF0aDZrbF91c2JfZnJlZV9waXBlX3Jlc291cmNlcyhcdTAwMjZhcl91c2ItXHUwMDNlcGlwZXNbaV0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0yNTUtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0yNTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjI1NzpzdGF0aWMgdTggYXRoNmtsX3VzYl9nZXRfbG9naWNhbF9waXBlX251bShzdHJ1Y3QgYXRoNmtsX3VzYiAqYXJfdXNiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0yNTgtXHRcdFx0XHRcdCAgdTggZXBfYWRkcmVzcywgaW50ICp1cmJfY291bnQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0zMDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjMwMzpzdGF0aWMgaW50IGF0aDZrbF91c2Jfc2V0dXBfcGlwZV9yZXNvdXJjZXMoc3RydWN0IGF0aDZrbF91c2IgKmFyX3VzYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMzA0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTMwNy1cdHN0cnVjdCB1c2JfZW5kcG9pbnRfZGVzY3JpcHRvciAqZW5kcG9pbnQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjMwODpcdHN0cnVjdCBhdGg2a2xfdXNiX3BpcGUgKnBpcGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTMwOS1cdGludCBpLCB1cmJjb3VudCwgc3RhdHVzID0gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTM1MC1cdFx0cGlwZV9udW0gPVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzozNTE6XHRcdCAgICBhdGg2a2xfdXNiX2dldF9sb2dpY2FsX3BpcGVfbnVtKGFyX3VzYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMzUyLVx0XHRcdFx0XHRcdCAgICBlbmRwb2ludC1cdTAwM2ViRW5kcG9pbnRBZGRyZXNzLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNDA1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo0MDY6XHRcdHN0YXR1cyA9IGF0aDZrbF91c2JfYWxsb2NfcGlwZV9yZXNvdXJjZXMocGlwZSwgdXJiY291bnQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy00MDctXHRcdGlmIChzdGF0dXMgIT0gMClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQxNC0vKiBwaXBlIG9wZXJhdGlvbnMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NDE1OnN0YXRpYyB2b2lkIGF0aDZrbF91c2JfcG9zdF9yZWN2X3RyYW5zZmVycyhzdHJ1Y3QgYXRoNmtsX3VzYl9waXBlICpyZWN2X3BpcGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQxNi1cdFx0XHRcdFx0ICAgaW50IGJ1ZmZlcl9sZW5ndGgpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy00MjItXHR3aGlsZSAodHJ1ZSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo0MjM6XHRcdHVyYl9jb250ZXh0ID0gYXRoNmtsX3VzYl9hbGxvY191cmJfZnJvbV9waXBlKHJlY3ZfcGlwZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQyNC1cdFx0aWYgKHVyYl9jb250ZXh0ID09IE5VTEwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy00MzktXHRcdFx0XHQgIGJ1ZmZlcl9sZW5ndGgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjQ0MDpcdFx0XHRcdCAgYXRoNmtsX3VzYl9yZWN2X2NvbXBsZXRlLCB1cmJfY29udGV4dCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQ0MS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQ2My1lcnJfY2xlYW51cF91cmI6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjQ2NDpcdGF0aDZrbF91c2JfY2xlYW51cF9yZWN2X3VyYih1cmJfY29udGV4dCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQ2NS1cdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQ2Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NDY4OnN0YXRpYyB2b2lkIGF0aDZrbF91c2JfZmx1c2hfYWxsKHN0cnVjdCBhdGg2a2xfdXNiICphcl91c2IpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQ2OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy00ODMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjQ4NDpzdGF0aWMgdm9pZCBhdGg2a2xfdXNiX3N0YXJ0X3JlY3ZfcGlwZXMoc3RydWN0IGF0aDZrbF91c2IgKmFyX3VzYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNDg1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQ4OS1cdCAqICAgICAgYXJfdXNiLVx1MDAzZXBpcGVzW0FUSDZLTF9VU0JfUElQRV9SWF9DVFJMXS51cmJfYWxsb2MvMjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NDkwOlx0ICogYXRoNmtsX3VzYl9wb3N0X3JlY3ZfdHJhbnNmZXJzKFx1MDAyNmFyX3VzYi1cdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNDkxLVx0ICpcdFx0cGlwZXNbQVRINktMX1VTQl9QSVBFX1JYX0NUUkxdLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNDk2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo0OTc6XHRhdGg2a2xfdXNiX3Bvc3RfcmVjdl90cmFuc2ZlcnMoXHUwMDI2YXJfdXNiLVx1MDAzZXBpcGVzW0FUSDZLTF9VU0JfUElQRV9SWF9EQVRBXSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNDk4LVx0XHRcdFx0ICAgICAgIEFUSDZLTF9VU0JfUlhfQlVGRkVSX1NJWkUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNTAxLS8qIGhpZiB1c2IgcngvdHggY29tcGxldGlvbiBmdW5jdGlvbnMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NTAyOnN0YXRpYyB2b2lkIGF0aDZrbF91c2JfcmVjdl9jb21wbGV0ZShzdHJ1Y3QgdXJiICp1cmIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTUwMy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTUwNC1cdHN0cnVjdCBhdGg2a2xfdXJiX2NvbnRleHQgKnVyYl9jb250ZXh0ID0gdXJiLVx1MDAzZWNvbnRleHQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjUwNTpcdHN0cnVjdCBhdGg2a2xfdXNiX3BpcGUgKnBpcGUgPSB1cmJfY29udGV4dC1cdTAwM2VwaXBlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01MDYtXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiID0gTlVMTDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTU0OS1jbGVhbnVwX3JlY3ZfdXJiOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo1NTA6XHRhdGg2a2xfdXNiX2NsZWFudXBfcmVjdl91cmIodXJiX2NvbnRleHQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01NTEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01NTQtXHRcdC8qIG91ciBmcmVlIHVyYnMgYXJlIHBpbGluZyB1cCwgcG9zdCBtb3JlIHRyYW5zZmVycyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo1NTU6XHRcdGF0aDZrbF91c2JfcG9zdF9yZWN2X3RyYW5zZmVycyhwaXBlLCBBVEg2S0xfVVNCX1JYX0JVRkZFUl9TSVpFKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNTU2LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNTU4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo1NTk6c3RhdGljIHZvaWQgYXRoNmtsX3VzYl91c2JfdHJhbnNtaXRfY29tcGxldGUoc3RydWN0IHVyYiAqdXJiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01NjAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01NjEtXHRzdHJ1Y3QgYXRoNmtsX3VyYl9jb250ZXh0ICp1cmJfY29udGV4dCA9IHVyYi1cdTAwM2Vjb250ZXh0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo1NjI6XHRzdHJ1Y3QgYXRoNmtsX3VzYl9waXBlICpwaXBlID0gdXJiX2NvbnRleHQtXHUwMDNlcGlwZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNTYzLVx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTU3Ny1cdHVyYl9jb250ZXh0LVx1MDAzZXNrYiA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjU3ODpcdGF0aDZrbF91c2JfZnJlZV91cmJfdG9fcGlwZSh1cmJfY29udGV4dC1cdTAwM2VwaXBlLCB1cmJfY29udGV4dCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTU3OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTU4NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NTg1OnN0YXRpYyB2b2lkIGF0aDZrbF91c2JfaW9fY29tcF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNTg2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NTg3Olx0c3RydWN0IGF0aDZrbF91c2JfcGlwZSAqcGlwZSA9IGNvbnRhaW5lcl9vZih3b3JrLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo1ODg6XHRcdFx0XHRcdFx0ICAgIHN0cnVjdCBhdGg2a2xfdXNiX3BpcGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTU4OS1cdFx0XHRcdFx0XHQgICAgaW9fY29tcGxldGVfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjU5MDpcdHN0cnVjdCBhdGg2a2xfdXNiICphcl91c2I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTU5MS1cdHN0cnVjdCBza19idWZmICpza2I7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02MDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjYwOTojZGVmaW5lIEFUSDZLTF9VU0JfTUFYX0RJQUdfQ01EIChzaXplb2Yoc3RydWN0IGF0aDZrbF91c2JfY3RybF9kaWFnX2NtZF93cml0ZSkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjYxMDojZGVmaW5lIEFUSDZLTF9VU0JfTUFYX0RJQUdfUkVTUCAoc2l6ZW9mKHN0cnVjdCBhdGg2a2xfdXNiX2N0cmxfZGlhZ19yZXNwX3JlYWQpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02MTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjYxMjpzdGF0aWMgdm9pZCBhdGg2a2xfdXNiX2Rlc3Ryb3koc3RydWN0IGF0aDZrbF91c2IgKmFyX3VzYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjEzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NjE0Olx0YXRoNmtsX3VzYl9mbHVzaF9hbGwoYXJfdXNiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo2MTY6XHRhdGg2a2xfdXNiX2NsZWFudXBfcGlwZV9yZXNvdXJjZXMoYXJfdXNiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjE3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo2Mjc6c3RhdGljIHN0cnVjdCBhdGg2a2xfdXNiICphdGg2a2xfdXNiX2NyZWF0ZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02Mjgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02MjktXHRzdHJ1Y3QgdXNiX2RldmljZSAqZGV2ID0gaW50ZXJmYWNlX3RvX3VzYmRldihpbnRlcmZhY2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo2MzA6XHRzdHJ1Y3QgYXRoNmtsX3VzYiAqYXJfdXNiO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo2MzE6XHRzdHJ1Y3QgYXRoNmtsX3VzYl9waXBlICpwaXBlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02MzItXHRpbnQgc3RhdHVzID0gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTYzNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NjM1Olx0LyogYXRoNmtsX3VzYl9kZXN0cm95KCkgbmVlZHMgYXJfdXNiICE9IE5VTEwgXHUwMDI2XHUwMDI2IGFyX3VzYi1cdTAwM2V3cSAhPSBOVUxMLiAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo2MzY6XHRhcl91c2IgPSBremFsbG9jX29iaihzdHJ1Y3QgYXRoNmtsX3VzYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTYzNy1cdGlmIChhcl91c2IgPT0gTlVMTClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTY1Mi1cdFx0SU5JVF9XT1JLKFx1MDAyNnBpcGUtXHUwMDNlaW9fY29tcGxldGVfd29yayxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NjUzOlx0XHRcdCAgYXRoNmtsX3VzYl9pb19jb21wX3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02NTQtXHRcdHNrYl9xdWV1ZV9oZWFkX2luaXQoXHUwMDI2cGlwZS1cdTAwM2Vpb19jb21wX3F1ZXVlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTY1OS1cdFx0c3RhdHVzID0gLUVOT01FTTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NjYwOlx0XHRnb3RvIGZhaWxfYXRoNmtsX3VzYl9jcmVhdGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTY2MS1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTY2Ni1cdFx0c3RhdHVzID0gLUVOT01FTTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NjY3Olx0XHRnb3RvIGZhaWxfYXRoNmtsX3VzYl9jcmVhdGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTY2OC1cdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjY5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo2NzA6XHRzdGF0dXMgPSBhdGg2a2xfdXNiX3NldHVwX3BpcGVfcmVzb3VyY2VzKGFyX3VzYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTY3MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NjcyOmZhaWxfYXRoNmtsX3VzYl9jcmVhdGU6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTY3My1cdGlmIChzdGF0dXMgIT0gMCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo2NzQ6XHRcdGF0aDZrbF91c2JfZGVzdHJveShhcl91c2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02NzUtXHRcdGFyX3VzYiA9IE5VTEw7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02NzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjY4MDpzdGF0aWMgdm9pZCBhdGg2a2xfdXNiX2RldmljZV9kZXRhY2hlZChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02ODEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo2ODI6XHRzdHJ1Y3QgYXRoNmtsX3VzYiAqYXJfdXNiO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02ODMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02OTItXHRhdGg2a2xfY29yZV9jbGVhbnVwKGFyX3VzYi1cdTAwM2Vhcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjY5MzpcdGF0aDZrbF91c2JfZGVzdHJveShhcl91c2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02OTQtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM9Njk3PXN0YXRpYyB2b2lkIGhpZl9zdGFydChzdHJ1Y3QgYXRoNmtsICphcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjk4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6Njk5Olx0c3RydWN0IGF0aDZrbF91c2IgKmRldmljZSA9IGF0aDZrbF91c2JfcHJpdihhcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTcwMC1cdGludCBpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03MDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjcwMjpcdGF0aDZrbF91c2Jfc3RhcnRfcmVjdl9waXBlcyhkZXZpY2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03MDMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03MTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjcxMjpzdGF0aWMgaW50IGF0aDZrbF91c2Jfc2VuZChzdHJ1Y3QgYXRoNmtsICphciwgdTggUGlwZUlELFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03MTMtXHRcdFx0ICAgc3RydWN0IHNrX2J1ZmYgKmhkcl9za2IsIHN0cnVjdCBza19idWZmICpza2IpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTcxNC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjcxNTpcdHN0cnVjdCBhdGg2a2xfdXNiICpkZXZpY2UgPSBhdGg2a2xfdXNiX3ByaXYoYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo3MTY6XHRzdHJ1Y3QgYXRoNmtsX3VzYl9waXBlICpwaXBlID0gXHUwMDI2ZGV2aWNlLVx1MDAzZXBpcGVzW1BpcGVJRF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTcxNy1cdHN0cnVjdCBhdGg2a2xfdXJiX2NvbnRleHQgKnVyYl9jb250ZXh0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNzI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo3MjY6XHR1cmJfY29udGV4dCA9IGF0aDZrbF91c2JfYWxsb2NfdXJiX2Zyb21fcGlwZShwaXBlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNzI3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNzQ3LVx0XHRzdGF0dXMgPSAtRU5PTUVNO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo3NDg6XHRcdGF0aDZrbF91c2JfZnJlZV91cmJfdG9fcGlwZSh1cmJfY29udGV4dC1cdTAwM2VwaXBlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03NDktXHRcdFx0XHRcdCAgICB1cmJfY29udGV4dCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03NTctXHRcdFx0ICBsZW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjc1ODpcdFx0XHQgIGF0aDZrbF91c2JfdXNiX3RyYW5zbWl0X2NvbXBsZXRlLCB1cmJfY29udGV4dCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTc1OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTc3Ny1cdFx0dXNiX3VuYW5jaG9yX3VyYih1cmIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo3Nzg6XHRcdGF0aDZrbF91c2JfZnJlZV91cmJfdG9fcGlwZSh1cmJfY29udGV4dC1cdTAwM2VwaXBlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03NzktXHRcdFx0XHRcdCAgICB1cmJfY29udGV4dCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYz03ODg9c3RhdGljIHZvaWQgaGlmX3N0b3Aoc3RydWN0IGF0aDZrbCAqYXIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTc4OS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjc5MDpcdHN0cnVjdCBhdGg2a2xfdXNiICpkZXZpY2UgPSBhdGg2a2xfdXNiX3ByaXYoYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03OTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjc5MjpcdGF0aDZrbF91c2JfZmx1c2hfYWxsKGRldmljZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTc5My19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTc5NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6Nzk1OnN0YXRpYyB2b2lkIGF0aDZrbF91c2JfZ2V0X2RlZmF1bHRfcGlwZShzdHJ1Y3QgYXRoNmtsICphcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNzk2LVx0XHRcdFx0XHR1OCAqdWxfcGlwZSwgdTggKmRsX3BpcGUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy04MDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjgwMjpzdGF0aWMgaW50IGF0aDZrbF91c2JfbWFwX3NlcnZpY2VfcGlwZShzdHJ1Y3QgYXRoNmtsICphciwgdTE2IHN2Y19pZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtODAzLVx0XHRcdFx0ICAgICAgIHU4ICp1bF9waXBlLCB1OCAqZGxfcGlwZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTg1Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6ODU3OnN0YXRpYyB1MTYgYXRoNmtsX3VzYl9nZXRfZnJlZV9xdWV1ZV9udW1iZXIoc3RydWN0IGF0aDZrbCAqYXIsIHU4IHBpcGVfaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTg1OC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjg1OTpcdHN0cnVjdCBhdGg2a2xfdXNiICpkZXZpY2UgPSBhdGg2a2xfdXNiX3ByaXYoYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy04NjAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYz04NjQ9c3RhdGljIHZvaWQgaGlmX2RldGFjaF9odGMoc3RydWN0IGF0aDZrbCAqYXIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTg2NS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjg2NjpcdHN0cnVjdCBhdGg2a2xfdXNiICpkZXZpY2UgPSBhdGg2a2xfdXNiX3ByaXYoYXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy04NjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjg2ODpcdGF0aDZrbF91c2JfZmx1c2hfYWxsKGRldmljZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTg2OS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTg3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6ODcxOnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9zdWJtaXRfY3RybF9vdXQoc3RydWN0IGF0aDZrbF91c2IgKmFyX3VzYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtODcyLVx0XHRcdFx0ICAgdTggcmVxLCB1MTYgdmFsdWUsIHUxNiBpbmRleCwgdm9pZCAqZGF0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTkwMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6OTAzOnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9zdWJtaXRfY3RybF9pbihzdHJ1Y3QgYXRoNmtsX3VzYiAqYXJfdXNiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05MDQtXHRcdFx0XHQgIHU4IHJlcSwgdTE2IHZhbHVlLCB1MTYgaW5kZXgsIHZvaWQgKmRhdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05MzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjkzNzpzdGF0aWMgaW50IGF0aDZrbF91c2JfY3RybF9tc2dfZXhjaGFuZ2Uoc3RydWN0IGF0aDZrbF91c2IgKmFyX3VzYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTM4LVx0XHRcdFx0ICAgICB1OCByZXFfdmFsLCB1OCAqcmVxX2J1ZiwgdTMyIHJlcV9sZW4sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05NDMtXHQvKiBzZW5kIGNvbW1hbmQgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6OTQ0Olx0cmV0ID0gYXRoNmtsX3VzYl9zdWJtaXRfY3RybF9vdXQoYXJfdXNiLCByZXFfdmFsLCAwLCAwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05NDUtXHRcdFx0XHRcdCByZXFfYnVmLCByZXFfbGVuKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTk1NS1cdC8qIGdldCByZXNwb25zZSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo5NTY6XHRyZXQgPSBhdGg2a2xfdXNiX3N1Ym1pdF9jdHJsX2luKGFyX3VzYiwgcmVzcF92YWwsIDAsIDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTk1Ny1cdFx0XHRcdFx0cmVzcF9idWYsICpyZXNwX2xlbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05NjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjk2MjpzdGF0aWMgaW50IGF0aDZrbF91c2JfZGlhZ19yZWFkMzIoc3RydWN0IGF0aDZrbCAqYXIsIHUzMiBhZGRyZXNzLCB1MzIgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTk2My17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjk2NDpcdHN0cnVjdCBhdGg2a2xfdXNiICphcl91c2IgPSBhci1cdTAwM2VoaWZfcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6OTY1Olx0c3RydWN0IGF0aDZrbF91c2JfY3RybF9kaWFnX3Jlc3BfcmVhZCAqcmVzcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6OTY2Olx0c3RydWN0IGF0aDZrbF91c2JfY3RybF9kaWFnX2NtZF9yZWFkICpjbWQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTk2Ny1cdHUzMiByZXNwX2xlbjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTk2OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6OTcwOlx0Y21kID0gKHN0cnVjdCBhdGg2a2xfdXNiX2N0cmxfZGlhZ19jbWRfcmVhZCAqKSBhcl91c2ItXHUwMDNlZGlhZ19jbWRfYnVmZmVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05NzEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05NzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjk3NzpcdHJldCA9IGF0aDZrbF91c2JfY3RybF9tc2dfZXhjaGFuZ2UoYXJfdXNiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05NzgtXHRcdFx0XHRBVEg2S0xfVVNCX0NPTlRST0xfUkVRX0RJQUdfQ01ELFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05NzktXHRcdFx0XHQodTggKikgY21kLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo5ODA6XHRcdFx0XHRzaXplb2Yoc3RydWN0IGF0aDZrbF91c2JfY3RybF9kaWFnX2NtZF93cml0ZSksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTk4MS1cdFx0XHRcdEFUSDZLTF9VU0JfQ09OVFJPTF9SRVFfRElBR19SRVNQLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTg4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo5ODk6XHRyZXNwID0gKHN0cnVjdCBhdGg2a2xfdXNiX2N0cmxfZGlhZ19yZXNwX3JlYWQgKilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTkwLVx0XHRhcl91c2ItXHUwMDNlZGlhZ19yZXNwX2J1ZmZlcjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTk5Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6OTk3OnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9kaWFnX3dyaXRlMzIoc3RydWN0IGF0aDZrbCAqYXIsIHUzMiBhZGRyZXNzLCBfX2xlMzIgZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTk4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6OTk5Olx0c3RydWN0IGF0aDZrbF91c2IgKmFyX3VzYiA9IGFyLVx1MDAzZWhpZl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMDAwOlx0c3RydWN0IGF0aDZrbF91c2JfY3RybF9kaWFnX2NtZF93cml0ZSAqY21kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDAxLVx0aW50IHJldDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTAwMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTAwMzpcdGNtZCA9IChzdHJ1Y3QgYXRoNmtsX3VzYl9jdHJsX2RpYWdfY21kX3dyaXRlICopIGFyX3VzYi1cdTAwM2VkaWFnX2NtZF9idWZmZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwMDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEwMDU6XHRtZW1zZXQoY21kLCAwLCBzaXplb2Yoc3RydWN0IGF0aDZrbF91c2JfY3RybF9kaWFnX2NtZF93cml0ZSkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDA2LVx0Y21kLVx1MDAzZWNtZCA9IGNwdV90b19sZTMyKEFUSDZLTF9VU0JfQ1RSTF9ESUFHX0NDX1dSSVRFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwMDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEwMTA6XHRyZXQgPSBhdGg2a2xfdXNiX2N0cmxfbXNnX2V4Y2hhbmdlKGFyX3VzYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTAxMS1cdFx0XHRcdFx0ICAgQVRINktMX1VTQl9DT05UUk9MX1JFUV9ESUFHX0NNRCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEwMjM6c3RhdGljIGludCBhdGg2a2xfdXNiX2JtaV9yZWFkKHN0cnVjdCBhdGg2a2wgKmFyLCB1OCAqYnVmLCB1MzIgbGVuKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDI0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTAyNTpcdHN0cnVjdCBhdGg2a2xfdXNiICphcl91c2IgPSBhci1cdTAwM2VoaWZfcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTAyNi1cdGludCByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDI4LVx0LyogZ2V0IHJlc3BvbnNlICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEwMjk6XHRyZXQgPSBhdGg2a2xfdXNiX3N1Ym1pdF9jdHJsX2luKGFyX3VzYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTAzMC1cdFx0XHRcdFx0QVRINktMX1VTQl9DT05UUk9MX1JFUV9SRUNWX0JNSV9SRVNQLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTA0MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTA0MTpzdGF0aWMgaW50IGF0aDZrbF91c2JfYm1pX3dyaXRlKHN0cnVjdCBhdGg2a2wgKmFyLCB1OCAqYnVmLCB1MzIgbGVuKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDQyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTA0MzpcdHN0cnVjdCBhdGg2a2xfdXNiICphcl91c2IgPSBhci1cdTAwM2VoaWZfcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTA0NC1cdGludCByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDQ2LVx0Lyogc2VuZCBjb21tYW5kICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEwNDc6XHRyZXQgPSBhdGg2a2xfdXNiX3N1Ym1pdF9jdHJsX291dChhcl91c2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwNDgtXHRcdFx0XHRcdCBBVEg2S0xfVVNCX0NPTlRST0xfUkVRX1NFTkRfQk1JX0NNRCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwNTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEwNTk6c3RhdGljIGludCBhdGg2a2xfdXNiX3Bvd2VyX29uKHN0cnVjdCBhdGg2a2wgKmFyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDYwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwNjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEwNjU6c3RhdGljIGludCBhdGg2a2xfdXNiX3Bvd2VyX29mZihzdHJ1Y3QgYXRoNmtsICphcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTA2Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMDcxOnN0YXRpYyB2b2lkIGF0aDZrbF91c2Jfc3RvcChzdHJ1Y3QgYXRoNmtsICphcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTA3Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDc1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMDc2OnN0YXRpYyB2b2lkIGF0aDZrbF91c2JfY2xlYW51cF9zY2F0dGVyKHN0cnVjdCBhdGg2a2wgKmFyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDc3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwODMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEwODQ6c3RhdGljIGludCBhdGg2a2xfdXNiX3N1c3BlbmQoc3RydWN0IGF0aDZrbCAqYXIsIHN0cnVjdCBjZmc4MDIxMV93b3dsYW4gKndvdylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTA4NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDkxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMDkyOnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9yZXN1bWUoc3RydWN0IGF0aDZrbCAqYXIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwOTMte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTA5OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTEwMDpzdGF0aWMgY29uc3Qgc3RydWN0IGF0aDZrbF9oaWZfb3BzIGF0aDZrbF91c2Jfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTAxOlx0LmRpYWdfcmVhZDMyID0gYXRoNmtsX3VzYl9kaWFnX3JlYWQzMixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTEwMjpcdC5kaWFnX3dyaXRlMzIgPSBhdGg2a2xfdXNiX2RpYWdfd3JpdGUzMixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTEwMzpcdC5ibWlfcmVhZCA9IGF0aDZrbF91c2JfYm1pX3JlYWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExMDQ6XHQuYm1pX3dyaXRlID0gYXRoNmtsX3VzYl9ibWlfd3JpdGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExMDU6XHQucG93ZXJfb24gPSBhdGg2a2xfdXNiX3Bvd2VyX29uLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTA2Olx0LnBvd2VyX29mZiA9IGF0aDZrbF91c2JfcG93ZXJfb2ZmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTA3Olx0LnN0b3AgPSBhdGg2a2xfdXNiX3N0b3AsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExMDg6XHQucGlwZV9zZW5kID0gYXRoNmtsX3VzYl9zZW5kLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTA5Olx0LnBpcGVfZ2V0X2RlZmF1bHQgPSBhdGg2a2xfdXNiX2dldF9kZWZhdWx0X3BpcGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExMTA6XHQucGlwZV9tYXBfc2VydmljZSA9IGF0aDZrbF91c2JfbWFwX3NlcnZpY2VfcGlwZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTExMTpcdC5waXBlX2dldF9mcmVlX3F1ZXVlX251bWJlciA9IGF0aDZrbF91c2JfZ2V0X2ZyZWVfcXVldWVfbnVtYmVyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTEyOlx0LmNsZWFudXBfc2NhdHRlciA9IGF0aDZrbF91c2JfY2xlYW51cF9zY2F0dGVyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTEzOlx0LnN1c3BlbmQgPSBhdGg2a2xfdXNiX3N1c3BlbmQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExMTQ6XHQucmVzdW1lID0gYXRoNmtsX3VzYl9yZXN1bWUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExMTUtfTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExMTctLyogYXRoNmtsIHVzYiBkcml2ZXIgcmVnaXN0ZXJlZCBmdW5jdGlvbnMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTExODpzdGF0aWMgaW50IGF0aDZrbF91c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTExOS1cdFx0XHQgICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTEyMi1cdHN0cnVjdCBhdGg2a2wgKmFyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTIzOlx0c3RydWN0IGF0aDZrbF91c2IgKmFyX3VzYiA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExMjQtXHRpbnQgdmVuZG9yX2lkLCBwcm9kdWN0X2lkO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTE0Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTE0MzpcdGFyX3VzYiA9IGF0aDZrbF91c2JfY3JlYXRlKGludGVyZmFjZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExNDQtXHRpZiAoYXJfdXNiID09IE5VTEwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTU1LVx0YXItXHUwMDNlaGlmX3R5cGUgPSBBVEg2S0xfSElGX1RZUEVfVVNCO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTU2Olx0YXItXHUwMDNlaGlmX29wcyA9IFx1MDAyNmF0aDZrbF91c2Jfb3BzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTU3LVx0YXItXHUwMDNlbWJveF9pbmZvLmJsb2NrX3NpemUgPSAxNjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExNzItZXJyX3VzYl9kZXN0cm95OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTczOlx0YXRoNmtsX3VzYl9kZXN0cm95KGFyX3VzYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExNzQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTc4OnN0YXRpYyB2b2lkIGF0aDZrbF91c2JfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTc5LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTE4MDpcdGF0aDZrbF91c2JfZGV2aWNlX2RldGFjaGVkKGludGVyZmFjZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExODEtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTE4NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTE4NTpzdGF0aWMgaW50IGF0aDZrbF91c2JfcG1fc3VzcGVuZChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTg2LVx0XHRcdCAgICAgIHBtX21lc3NhZ2VfdCBtZXNzYWdlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTg3LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTE4ODpcdHN0cnVjdCBhdGg2a2xfdXNiICpkZXZpY2U7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExODktXHRkZXZpY2UgPSB1c2JfZ2V0X2ludGZkYXRhKGludGVyZmFjZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExOTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExOTE6XHRhdGg2a2xfdXNiX2ZsdXNoX2FsbChkZXZpY2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTkyLVx0cmV0dXJuIDA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTk0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTk1OnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9wbV9yZXN1bWUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTE5Ni17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExOTc6XHRzdHJ1Y3QgYXRoNmtsX3VzYiAqZGV2aWNlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTk4LVx0ZGV2aWNlID0gdXNiX2dldF9pbnRmZGF0YShpbnRlcmZhY2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTk5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMjAwOlx0YXRoNmtsX3VzYl9wb3N0X3JlY3ZfdHJhbnNmZXJzKFx1MDAyNmRldmljZS1cdTAwM2VwaXBlc1tBVEg2S0xfVVNCX1BJUEVfUlhfREFUQV0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEyMDEtXHRcdFx0XHQgICAgICAgQVRINktMX1VTQl9SWF9CVUZGRVJfU0laRSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEyMDI6XHRhdGg2a2xfdXNiX3Bvc3RfcmVjdl90cmFuc2ZlcnMoXHUwMDI2ZGV2aWNlLVx1MDAzZXBpcGVzW0FUSDZLTF9VU0JfUElQRV9SWF9EQVRBMl0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEyMDMtXHRcdFx0XHQgICAgICAgQVRINktMX1VTQl9SWF9CVUZGRVJfU0laRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMjA5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMjEwOiNkZWZpbmUgYXRoNmtsX3VzYl9wbV9zdXNwZW5kIE5VTExcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTIxMTojZGVmaW5lIGF0aDZrbF91c2JfcG1fcmVzdW1lIE5VTExcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTIxMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEyMTUtLyogdGFibGUgb2YgZGV2aWNlcyB0aGF0IHdvcmsgd2l0aCB0aGlzIGRyaXZlciAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMjE2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBhdGg2a2xfdXNiX2lkc1tdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMjE3LVx0e1VTQl9ERVZJQ0UoMHgwY2YzLCAweDkzNzUpfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEyMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEyMjM6TU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIGF0aDZrbF91c2JfaWRzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTIyNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTIyNTpzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgYXRoNmtsX3VzYl9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEyMjY6XHQubmFtZSA9IFwmIzM0O2F0aDZrbF91c2JcJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEyMjc6XHQucHJvYmUgPSBhdGg2a2xfdXNiX3Byb2JlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMjI4Olx0LnN1c3BlbmQgPSBhdGg2a2xfdXNiX3BtX3N1c3BlbmQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEyMjk6XHQucmVzdW1lID0gYXRoNmtsX3VzYl9wbV9yZXN1bWUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEyMzA6XHQuZGlzY29ubmVjdCA9IGF0aDZrbF91c2JfZGlzY29ubmVjdCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTIzMTpcdC5pZF90YWJsZSA9IGF0aDZrbF91c2JfaWRzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMjMyLVx0LnN1cHBvcnRzX2F1dG9zdXNwZW5kID0gdHJ1ZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEyMzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEyMzY6bW9kdWxlX3VzYl9kcml2ZXIoYXRoNmtsX3VzYl9kcml2ZXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMjM3LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDA0OjA3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE1Nzg3CgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogOTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW5pdGlhbCBBc3Nlc3NtZW50ICZhbXA7IFN0cmF0ZWd5KioKCk9rYXksIHNvIHRoZSBgYXRoNmtsYCBkcml2ZXIgaGFzIGEgVVNCIGNvbXBvbmVudCDigJMgdGhhdCYjMzk7cyBwb3RlbnRpYWxseSB2ZXJ5IGludGVyZXN0aW5nIGZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlISBUaGUgZmFjdCB0aGF0IGl0JiMzOTtzIFVTQi1lbmFibGVkIG1lYW5zIHdlIG1pZ2h0IGJlIGFibGUgdG8gbGV2ZXJhZ2UgdGhlIFVTQiBkdW1teSBIQ0QsIGxpa2UgdGhlIG9uZSB1c2VkIGJ5IHN5emthbGxlciwgZm9yIHNvbWUgZWZmZWN0aXZlIGZ1enppbmcuIEl0IGZlZWxzIGxpa2UgdGhpcyBjb3VsZCBiZSBhIGdyZWF0IHZlY3RvciBmb3IgZmluZGluZyBzb21lIGludGVyZXN0aW5nIGJ1Z3MuIE5vdywgdGhlIHBhdGNoIGZvY3VzZXMgb24gbW9kaWZ5aW5nIGBhdGg2a2xfaWJzc19tYXBfZXBpZGAgd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguY2AuIE15IGZpcnN0IG1vdmUgaGVyZSBpcyBnb2luZyB0byBiZSB0byB1bmRlcnN0YW5kIHRoZSBjYWxsaW5nIGNvbnRleHRzIG9mIHRoYXQgc3BlY2lmaWMgZnVuY3Rpb24uIEtub3dpbmcgaXRzIHVzYWdlIHdpbGwgYWxsb3cgbWUgdG8gYXNzZXNzIHRoZSBwb3RlbnRpYWwgaW1wYWN0IG9mIHRoZSBwYXRjaCBhbmQgaG93IGVmZmVjdGl2ZWx5IHdlIGNhbiBmdXp6IGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDA0OjA3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2F0aDZrbF9pYnNzX21hcF9lcGlkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM9Mzc9c3RhdGljIGlubGluZSB1OCBhdGg2a2xfZ2V0X2FpZCh1OCB0aWRfbXV4KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTQxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM6NDI6c3RhdGljIHU4IGF0aDZrbF9pYnNzX21hcF9lcGlkKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy00My1cdFx0XHQgICAgICAgdTMyICptYXBfbm8pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM9MzU1PW5ldGRldl90eF90IGF0aDZrbF9kYXRhX3R4KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtNDU0LVx0aWYgKGNoa19hZGhvY19wc19tYXBwaW5nKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM6NDU1Olx0XHRlaWQgPSBhdGg2a2xfaWJzc19tYXBfZXBpZChza2IsIGRldiwgXHUwMDI2bWFwX25vKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTQ1Ni1cdGVsc2VcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwNDowNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNjQwNAoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDU2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246CgoqKkFuYWx5emluZyB0aGUgTmV0d29yayBUcmFuc21pc3Npb24gUGF0aCoqCgpSaWdodCwgc28gSSYjMzk7bSBkaXZpbmcgaW50byB0aGlzIGBhdGg2a2xfZGF0YV90eGAgZnVuY3Rpb24uIFRoZSBrZXkgaGVyZSBpcyB0aGF0IGl0JiMzOTtzIGJlaW5nIGNhbGxlZCBmcm9tIGBuZG9fc3RhcnRfeG1pdGAsIHdoaWNoLCBpZiBJIHJlY2FsbCBjb3JyZWN0bHksIGlzIHRoZSBrZXJuZWwmIzM5O3MgbmV0d29yayBkZXZpY2UmIzM5O3MgdHJhbnNtaXQgZnVuY3Rpb24uIEkgbmVlZCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4gdGhhdCBteSB1bmRlcnN0YW5kaW5nIGlzIGNvcnJlY3Q7IEkgbmVlZCB0byB2ZXJpZnkgdGhhdCBgYXRoNmtsX2RhdGFfdHhgICppcyogYWN0dWFsbHkgd2hhdCB3ZSYjMzk7dmUgaG9va2VkIHVwIHRvIGBuZG9fc3RhcnRfeG1pdGAuIFRoYXQmIzM5O3MgdGhlIGNydWNpYWwgZmlyc3Qgc3RlcC4gV2UgbmVlZCB0byB2YWxpZGF0ZSB0aGF0IGFzc3VtcHRpb24gYmVmb3JlIHByb2NlZWRpbmcgd2l0aCBhbnkgaW4tZGVwdGggYW5hbHlzaXMgb2YgdGhlIGRhdGEgcGF0aC4gVGhpcyBpcyBhIGZvdW5kYXRpb25hbCBwaWVjZSBvZiB0aGUgcHV6emxlLCBhbmQgYSBtaXN1bmRlcnN0YW5kaW5nIGhlcmUgd291bGQgdGhyb3cgZXZlcnl0aGluZyBlbHNlIG9mZi4gTGV0IG1lIGRvdWJsZS1jaGVjayB0aGF0IHF1aWNrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDA0OjA3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2F0aDZrbF9kYXRhX3R4JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9jb3JlLmg9OTE2PXZvaWQgYXRoNmtsX2ZyZWVfY29va2llKHN0cnVjdCBhdGg2a2wgKmFyLCBzdHJ1Y3QgYXRoNmtsX2Nvb2tpZSAqY29va2llKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvY29yZS5oOjkxNzpuZXRkZXZfdHhfdCBhdGg2a2xfZGF0YV90eChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvY29yZS5oLTkxOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL21haW4uYz04Njg9dm9pZCBhdGg2a2xfcHNwb2xsX2V2ZW50KHN0cnVjdCBhdGg2a2xfdmlmICp2aWYsIHU4IGFpZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL21haW4uYy05MTEtXHRcdGNvbm4tXHUwMDNlc3RhX2ZsYWdzIHw9IFNUQV9QU19QT0xMRUQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL21haW4uYzo5MTI6XHRcdGF0aDZrbF9kYXRhX3R4KHNrYiwgdmlmLVx1MDAzZW5kZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9tYWluLmMtOTEzLVx0XHRjb25uLVx1MDAzZXN0YV9mbGFncyBcdTAwMjY9IH5TVEFfUFNfUE9MTEVEO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvbWFpbi5jPTkyND12b2lkIGF0aDZrbF9kdGltZXhwaXJ5X2V2ZW50KHN0cnVjdCBhdGg2a2xfdmlmICp2aWYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9tYWluLmMtOTU1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9tYWluLmM6OTU2Olx0XHRhdGg2a2xfZGF0YV90eChza2IsIHZpZi1cdTAwM2VuZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvbWFpbi5jLTk1Ny1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL21haW4uYz0xMjgzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgYXRoNmtsX25ldGRldl9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9tYWluLmMtMTI4NS1cdC5uZG9fc3RvcCAgICAgICAgICAgICAgID0gYXRoNmtsX2Nsb3NlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9tYWluLmM6MTI4NjpcdC5uZG9fc3RhcnRfeG1pdCAgICAgICAgID0gYXRoNmtsX2RhdGFfdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL21haW4uYy0xMjg3LVx0Lm5kb19zZXRfZmVhdHVyZXMgICAgICAgPSBhdGg2a2xfc2V0X2ZlYXR1cmVzLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jPTI4NT1pbnQgYXRoNmtsX2NvbnRyb2xfdHgodm9pZCAqZGV2dCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy0zNTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYzozNTU6bmV0ZGV2X3R4X3QgYXRoNmtsX2RhdGFfdHgoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTM1Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM9MTIzMT1zdGF0aWMgdm9pZCBhdGg2a2xfdWFwc2RfdHJpZ2dlcl9mcmFtZV9yeChzdHJ1Y3QgYXRoNmtsX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTEyODAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYzoxMjgxOlx0XHRhdGg2a2xfZGF0YV90eChza2IsIHZpZi1cdTAwM2VuZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTEyODItXHRcdGNvbm4tXHUwMDNlc3RhX2ZsYWdzIFx1MDAyNj0gfihTVEFfUFNfQVBTRF9UUklHR0VSKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYz0xMzAwPXZvaWQgYXRoNmtsX3J4KHN0cnVjdCBodGNfdGFyZ2V0ICp0YXJnZXQsIHN0cnVjdCBodGNfcGFja2V0ICpwYWNrZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtMTQ4NS1cdFx0XHRcdFx0c3Bpbl91bmxvY2tfYmgoXHUwMDI2Y29ubi1cdTAwM2Vwc3FfbG9jayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYzoxNDg2Olx0XHRcdFx0XHRhdGg2a2xfZGF0YV90eChza2J1ZmYsIHZpZi1cdTAwM2VuZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTE0ODctXHRcdFx0XHRcdHNwaW5fbG9ja19iaChcdTAwMjZjb25uLVx1MDAzZXBzcV9sb2NrKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy0xNDkyLVx0XHRcdFx0XHRzcGluX3VubG9ja19iaChcdTAwMjZjb25uLVx1MDAzZXBzcV9sb2NrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jOjE0OTM6XHRcdFx0XHRcdGF0aDZrbF9kYXRhX3R4KHNrYnVmZiwgdmlmLVx1MDAzZW5kZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtMTQ5NC1cdFx0XHRcdFx0c3Bpbl9sb2NrX2JoKFx1MDAyNmNvbm4tXHUwMDNlcHNxX2xvY2spO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTE1ODktXHRcdGlmIChza2IxKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM6MTU5MDpcdFx0XHRhdGg2a2xfZGF0YV90eChza2IxLCB2aWYtXHUwMDNlbmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy0xNTkxLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDA0OjA3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE3OTMyCgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMTI2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFdpcmVsZXNzIERyaXZlciBWdWxuZXJhYmlsaXR5KioKCk9rYXksIHNvIGBhdGg2a2xfZGF0YV90eGAgaXMgZGVmaW5pdGl2ZWx5IHRoZSBgbmRvX3N0YXJ0X3htaXRgIGZ1bmN0aW9uIC0gZ290IGl0LiBUaGF0IG1lYW5zIGl0JiMzOTtzIHRoZSBlbnRyeSBwb2ludCBmb3IgbmV0d29yayBwYWNrZXQgdHJhbnNtaXNzaW9uLCB3aGljaCwgYXMgZXZlcnlvbmUga25vd3MsIG1ha2VzIGl0IGEgcHJpbWUgdGFyZ2V0IGZvciBmdXp6aW5nLiBUaGUgcGF0Y2ggSSYjMzk7bSBsb29raW5nIGF0IGFkZHJlc3NlcyBhbiBvdXQtb2YtYm91bmRzIGFjY2VzcyB3aXRoaW4gYGF0aDZrbF9pYnNzX21hcF9lcGlkYC4gVGhlIHF1ZXN0aW9uIGlzLCBjYW4gd2UgYWN0dWFsbHkgKnJlYWNoKiB0aGF0IGZ1bmN0aW9uPwoKTGV0JiMzOTtzIHNlZS4uLiBgYXRoNmtsX2lic3NfbWFwX2VwaWRgIGlzIGNhbGxlZCB3aXRoaW4gYGF0aDZrbF9kYXRhX3R4YCwgYnV0IG9ubHkgdW5kZXIgdGhlIGNvbmRpdGlvbiB0aGF0IGBjaGtfYWRob2NfcHNfbWFwcGluZ2AgaXMgdHJ1ZS4gUmlnaHQuIFNvLCB0aGF0JiMzOTtzIHRoZSBrZXkuIFdlIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZGl0aW9ucyB1bmRlciB3aGljaCBgY2hrX2FkaG9jX3BzX21hcHBpbmdgIGV2YWx1YXRlcyB0byB0cnVlIHRvIGZpZ3VyZSBvdXQgaWYgd2UgY2FuIGV2ZW4gdHJpZ2dlciB0aGlzIHZ1bG5lcmFiaWxpdHkuIFRpbWUgdG8gZGlnIGRlZXBlciBpbnRvIHRoZSBjb2RlIGFuZCBzZWUgd2hhdCBtYWtlcyB0aGF0IHZhcmlhYmxlIHRpY2suCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDA0OjA3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2Noa19hZGhvY19wc19tYXBwaW5nJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM9MzU1PW5ldGRldl90eF90IGF0aDZrbF9kYXRhX3R4KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtMzYzLVx0dTggYWMgPSA5OTsgLyogaW5pdGlhbGl6ZSB0byB1bm1hcHBlZCBhYyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM6MzY0Olx0Ym9vbCBjaGtfYWRob2NfcHNfbWFwcGluZyA9IGZhbHNlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtMzY1LVx0aW50IHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy00MzgtXHRcdCAgICBhci1cdTAwM2VpYnNzX3BzX2VuYWJsZSBcdTAwMjZcdTAwMjYgdGVzdF9iaXQoQ09OTkVDVEVELCBcdTAwMjZ2aWYtXHUwMDNlZmxhZ3MpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM6NDM5Olx0XHRcdGNoa19hZGhvY19wc19tYXBwaW5nID0gdHJ1ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTQ0MC1cdFx0ZWxzZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtNDUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM6NDU0Olx0aWYgKGNoa19hZGhvY19wc19tYXBwaW5nKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtNDU1LVx0XHRlaWQgPSBhdGg2a2xfaWJzc19tYXBfZXBpZChza2IsIGRldiwgXHUwMDI2bWFwX25vKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDQ6MDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTg2ODYKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAxNDUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgQnVnIEZpeCBhbmQgRnV6emluZyBTdHJhdGVneSoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBwaW5wb2ludGVkIHRoZSBjb25kaXRpb246IHRoaXMgdmFyaWFibGUgaXMgc2V0IHRvIHRydWUgd2hlbiB0aGUgV2ktRmkgaW50ZXJmYWNlIHR5cGUgaXMgYWQtaG9jLCBJQlNTIHBvd2VyLXNhdmUgaXMgZW5hYmxlZCwgYW5kIHRoZSBpbnRlcmZhY2UgaXMgY29ubmVjdGVkLiBTZWVtcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIOKAkyBkZWZpbml0ZWx5IGEgcmVhY2hhYmxlIGNvZGUgcGF0aC4gVGhlIHBhdGNoIGNsYWltcyB0byBmaXggYW4gb3V0LW9mLWJvdW5kcyBhY2Nlc3MuIEdpdmVuIHRoZSBwb3RlbnRpYWwgc2V2ZXJpdHkgb2YgT09CIGlzc3VlcywgYW5kIHRoZSByZWxhdGl2ZWx5IGNsZWFyIHRyaWdnZXIgY29uZGl0aW9uLCB0aGlzIGlzICphYnNvbHV0ZWx5KiB3b3J0aCBmdXp6aW5nLgoKTm93LCBsZXQmIzM5O3MgbmFpbCBkb3duIHRoZSBjb25maWd1cmF0aW9uIHJlcXVpcmVtZW50cyBmb3Igc3VjY2Vzc2Z1bCBmdXp6aW5nLiBJJiMzOTttIHRoaW5raW5nIHdlJiMzOTtsbCBuZWVkIGBDT05GSUdfQVRINktMYCBhbmQgZWl0aGVyIGBDT05GSUdfQVRINktMX1VTQmAgb3IgYENPTkZJR19BVEg2S0xfU0RJT2AuIFVTQiB3aWxsIHByb2JhYmx5IGJlIGVhc2llciB0byB3b3JrIHdpdGggZnJvbSBhIGZ1enppbmcgcGVyc3BlY3RpdmUsIGJ1dCBsZXQmIzM5O3MgcXVpY2tseSBkb3VibGUtY2hlY2sgdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL0tjb25maWdgIGZpbGUgdG8gY29uZmlybSB0aG9zZSBjb25maWcgbmFtZXMgYXJlIGV4YWN0bHkgY29ycmVjdCBhbmQgdGhlcmUgYXJlbiYjMzk7dCBhbnkgc3VidGxlIGRlcGVuZGVuY2llcyBJJiMzOTttIG1pc3NpbmcuIEdldHRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gcmlnaHQgdXBmcm9udCBzYXZlcyB0aW1lIGFuZCBmcnVzdHJhdGlvbiBsYXRlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDQ6MDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEFUSDZLTCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IElTQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnOjI6Y29uZmlnIEFUSDZLTFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtBdGhlcm9zIG1vYmlsZSBjaGlwc2V0cyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnLTEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnOjE0OmNvbmZpZyBBVEg2S0xfU0RJT1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnLTE1LVx0dHJpc3RhdGUgXCYjMzQ7QXRoZXJvcyBhdGg2a2wgU0RJTyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnLTI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnOjI1OmNvbmZpZyBBVEg2S0xfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL0tjb25maWctMjYtXHR0cmlzdGF0ZSBcJiMzNDtBdGhlcm9zIGF0aDZrbCBVU0Igc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZy0zNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZzozNTpjb25maWcgQVRINktMX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL0tjb25maWctMzYtXHRib29sIFwmIzM0O0F0aGVyb3MgYXRoNmtsIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZy00NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZzo0NTpjb25maWcgQVRINktMX1RSQUNJTkdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZy00Ni1cdGJvb2wgXCYjMzQ7QXRoZXJvcyBhdGg2a2wgdHJhY2luZyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnLTU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnOjU3OmNvbmZpZyBBVEg2S0xfUkVHRE9NQUlOXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL0tjb25maWctNTgtXHRib29sIFwmIzM0O0F0aGVyb3MgYXRoNmtsIHJlZ2RvbWFpbiBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDA0OjA3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5NTgxCgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMjczCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZvY3VzaW5nIG9uIFNwZWNpZmljIEZ1bmN0aW9ucyBmb3IgQW5hbHlzaXMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoZSBgQVRINktMYCBhbmQgYEFUSDZLTF9VU0JgIGNvbmZpZ3VyYXRpb25zLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZmlndXJlIG91dCB0aGUga2V5IGZ1bmN0aW9ucyB0byBleGFtaW5lLiBSaWdodCBub3csIEkmIzM5O20ga2V5ZWQgaW4gb24gYGF0aDZrbF9pYnNzX21hcF9lcGlkYCBiZWNhdXNlIGl0JiMzOTtzIHRoZSBtb2RpZmllZCBvbmUuIEl0IGFwcGVhcnMgdGhhdCBgYXRoNmtsX2RhdGFfdHhgIGlzIHRoZSBjYWxsZXIuIEkgc2hvdWxkIHByb2JhYmx5IGNoZWNrIGZvciBhbnkgb3RoZXIgcmVsYXRlZCBmdW5jdGlvbnMuCgpSaWdodCwgYGF0aDZrbF9pYnNzX21hcF9lcGlkYCBpcyBhIHN0YXRpYyBmdW5jdGlvbiBsb2NhdGVkIHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmNgLiBJIHdhcyBnb2luZyB0byBhZGQgYm90aCBgYXRoNmtsX2lic3NfbWFwX2VwaWRgIGFuZCBgYXRoNmtsX2RhdGFfdHhgIHRvIG15IGBGb2N1c1N5bWJvbHNgIGxpc3QuIEhvd2V2ZXIsIEkgbmVlZCB0byBwYXVzZSBmb3IgYSBzZWNvbmQuIGBhdGg2a2xfZGF0YV90eGAgaXMgYSBob3QtcGF0aCBmdW5jdGlvbiwgc3BlY2lmaWNhbGx5IHRoZSBgbmRvX3N0YXJ0X3htaXRgIGVudHJ5IHBvaW50LiBUaGUgaW5zdHJ1Y3Rpb25zIGFkdmlzZSBhdm9pZGluZyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gYXZvaWQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KCkV2ZW4gdGhvdWdoIGBhdGg2a2xfZGF0YV90eGAgaXMgc3BlY2lmaWMgdG8gdGhlIGBhdGg2a2xgIGRyaXZlciwgaXQmIzM5O3MgYWxzbyB0aGUgcHJpbWFyeSBUWCBwYXRoIGZvciBpdC4gVGhhdCBtYWtlcyBpdCBtb3JlIGdlbmVyaWMgdGhhbiBpdCBzaG91bGQgYmUuIFRodXMsIEkmIzM5O2xsIHN0aWNrIHRvIGBhdGg2a2xfaWJzc19tYXBfZXBpZGAg4oCTIGl0JiMzOTtzIG1vcmUgc3BlY2lmaWMgdG8gdGhlIG1vZGlmaWNhdGlvbiBhbmQgc2hvdWxkIHByb3ZpZGUgYSBjbGVhcmVyIHNpZ25hbC4gSSYjMzk7bGwgY29udGludWUgc2VhcmNoaW5nIGZvciBhbnkgb3RoZXIgcG90ZW50aWFsbHkgcmVsZXZhbnQgZnVuY3Rpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwNDowNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGg2a2xfaWJzc19tYXBfZXBpZCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jPTM3PXN0YXRpYyBpbmxpbmUgdTggYXRoNmtsX2dldF9haWQodTggdGlkX211eClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy00MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jOjQyOnN0YXRpYyB1OCBhdGg2a2xfaWJzc19tYXBfZXBpZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtNDMtXHRcdFx0ICAgICAgIHUzMiAqbWFwX25vKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jPTM1NT1uZXRkZXZfdHhfdCBhdGg2a2xfZGF0YV90eChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTQ1NC1cdGlmIChjaGtfYWRob2NfcHNfbWFwcGluZylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jOjQ1NTpcdFx0ZWlkID0gYXRoNmtsX2lic3NfbWFwX2VwaWQoc2tiLCBkZXYsIFx1MDAyNm1hcF9ubyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy00NTYtXHRlbHNlXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDA0OjA3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwNTMyCgkJCQkJCQlvdXRwdXQ6IDEyOQoJCQkJCQkJdGhvdWdodHM6IDM4MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQb3RlbnRpYWwgT3V0LW9mLUJvdW5kcyBJc3N1ZSBpbiBgYXRoNmtsX2lic3NfbWFwX2VwaWRgKioKCk9rYXksIHNvIEkgc2VlIHRoYXQgdGhlIGRpZmYgKm9ubHkqIHRvdWNoZXMgYGF0aDZrbF9pYnNzX21hcF9lcGlkYC4gTGV0JiMzOTtzIGNvbmZpcm0gdGhhdCYjMzk7cyB0aGUgc29sZSBmdW5jdGlvbiBtb2RpZmllZCDigJMgeXVwLCBqdXN0IHRoYXQgb25lLiBUaGlzIGltbWVkaWF0ZWx5IGZvY3VzZXMgbXkgYXR0ZW50aW9uLiBUaGUgY2hhbmdlIHNlZW1zIHRvIGJlIGNvcnJlY3RpbmcgYW4gb3V0LW9mLWJvdW5kcyBhcnJheSBhY2Nlc3Mgd2l0aGluIHRoaXMgZnVuY3Rpb24uIEl0IGxvb2tzIGxpa2UgdGhlIHByaW9yIGxvZ2ljIGhhZCBhIGZsYXcgaW4gaG93IGl0IGhhbmRsZWQgYGFyLSZndDtub2RlX251bWAgYmVmb3JlIHVzaW5nIGl0IGFzIGFuIGluZGV4LgoKU3BlY2lmaWNhbGx5LCBpdCBzZWVtcyB0aGUgYm91bmRzIGNoZWNrIHdhc24mIzM5O3QgcXVpdGUgcmlnaHQuIEl0IGNoZWNrZWQgaWYgYGFyLSZndDtub2RlX251bWAgKmV4Y2VlZGVkKiBgTUFYX05PREVfTlVNYCBidXQgdGhlbiBpbmNyZW1lbnRlZCBpdCBiZWZvcmUgdXNpbmcgaXQgYXMgYW4gaW5kZXguIE5vdyBpdCBjaGVja3MgaWYgYGFyLSZndDtub2RlX251bWAgaXMgKmdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byogYE1BWF9OT0RFX05VTWAgYmVmb3JlIGluY3JlbWVudGluZy4gVGhpcyBpcyBhIGNsYXNzaWMgb2ZmLWJ5LW9uZSBlcnJvciBmaXguIFRoZSB1cGRhdGVkIGNvZGUsIGluIGVzc2VuY2UsIGVuc3VyZXMgdGhhdCBgYXItJmd0O25vZGVfbnVtYCBpcyB3aXRoaW4gYm91bmRzIGJlZm9yZSBpdCYjMzk7cyB1c2VkIHRvIGluZGV4IGludG8gYGFyLSZndDtub2RlX21hcGAuCgpHaXZlbiB0aGF0IHRoaXMgaXMgYW4gYGF0aDZrbGAgZHJpdmVyIGFuZCB0aGUgY29udGV4dCBtZW50aW9ucyB0aGUgVVNCIGludGVyZmFjZSwgSSBzaG91bGQgZG91YmxlLWNoZWNrIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIExvb2tzIGxpa2UgYEFUSDZLTGAgYW5kIGBBVEg2S0xfVVNCYCBhcmUgdGhlIG9uZXMgdG8gYmUgYXdhcmUgb2YuIFRoZSBmYWN0IHRoYXQgdGhlIGRyaXZlciBoYXMgYSBVU0IgaW50ZXJmYWNlIHN1Z2dlc3RzIGl0IGNvdWxkIGJlIGZ1enphYmxlLCB3aGljaCBpcyBnb29kIHRvIGtlZXAgaW4gbWluZC4gQmFzZWQgb24gdGhpcyBhbmFseXNpcywgSSYjMzk7ZCBzYXkgdGhhdCBgYXRoNmtsX2lic3NfbWFwX2VwaWRgIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbiBJIHdhbnQgdG8gdGFyZ2V0IGZvciBmdXp6aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwNDowNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QVRINktMJiMzNDssCiAgICAmIzM0O0FUSDZLTF9VU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthdGg2a2xfaWJzc19tYXBfZXBpZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhbiBvdXQtb2YtYm91bmRzIGFycmF5IGFjY2VzcyBpbiBgYXRoNmtsX2lic3NfbWFwX2VwaWRgIGJ5IGNvcnJlY3RpbmcgdGhlIGJvdW5kcyBjaGVjayBvbiBgYXItXHUwMDNlbm9kZV9udW1gIGJlZm9yZSBpbmNyZW1lbnRpbmcgaXQgYW5kIHVzaW5nIGl0IGFzIGFuIGluZGV4LiBUaGUgYGF0aDZrbGAgZHJpdmVyIGNhbiBiZSBmdXp6ZWQgdmlhIGl0cyBVU0IgaW50ZXJmYWNlIChgQ09ORklHX0FUSDZLTF9VU0JgKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QVRINktMJiMzNDssCiAgICAmIzM0O0FUSDZLTF9VU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthdGg2a2xfaWJzc19tYXBfZXBpZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhbiBvdXQtb2YtYm91bmRzIGFycmF5IGFjY2VzcyBpbiBgYXRoNmtsX2lic3NfbWFwX2VwaWRgIGJ5IGNvcnJlY3RpbmcgdGhlIGJvdW5kcyBjaGVjayBvbiBgYXItXHUwMDNlbm9kZV9udW1gIGJlZm9yZSBpbmNyZW1lbnRpbmcgaXQgYW5kIHVzaW5nIGl0IGFzIGFuIGluZGV4LiBUaGUgYGF0aDZrbGAgZHJpdmVyIGNhbiBiZSBmdXp6ZWQgdmlhIGl0cyBVU0IgaW50ZXJmYWNlIChgQ09ORklHX0FUSDZLTF9VU0JgKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDA0OjA3OjA1LjQwODc5Mjk0NVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM2MDU2OTEzODE1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkFUSDZLTFwiLFxuICAgIFwiQVRINktMX1VTQlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImF0aDZrbF9pYnNzX21hcF9lcGlkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyBhcnJheSBhY2Nlc3MgaW4gYGF0aDZrbF9pYnNzX21hcF9lcGlkYCBieSBjb3JyZWN0aW5nIHRoZSBib3VuZHMgY2hlY2sgb24gYGFyLVxcdTAwM2Vub2RlX251bWAgYmVmb3JlIGluY3JlbWVudGluZyBpdCBhbmQgdXNpbmcgaXQgYXMgYW4gaW5kZXguIFRoZSBgYXRoNmtsYCBkcml2ZXIgY2FuIGJlIGZ1enplZCB2aWEgaXRzIFVTQiBpbnRlcmZhY2UgKGBDT05GSUdfQVRINktMX1VTQmApLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwNDowNzowNS40MDg3OTkwMzVaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMzNDMxNjcyNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGM1MWY2MTBjOThkOTE3MzM2NTUwOTA1MDdkZmJiMGUwYjhhZDcwMWRcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgMjMgMDQ6MDc6MDQgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguY1xcbmluZGV4IDk3ZmRhYzcyMzdlMjZlLi4zYjAwMzM0MzFiMjk4NyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jXFxuQEAgLTY3LDEwICs2Nyw5IEBAIHN0YXRpYyB1OCBhdGg2a2xfaWJzc19tYXBfZXBpZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbiBcXHR9XFxuIFxcbiBcXHRpZiAoZXBfbWFwID09IC0xKSB7XFxuLVxcdFxcdGVwX21hcCA9IGFyLVxcdTAwM2Vub2RlX251bTtcXG4tXFx0XFx0YXItXFx1MDAzZW5vZGVfbnVtKys7XFxuLVxcdFxcdGlmIChhci1cXHUwMDNlbm9kZV9udW0gXFx1MDAzZSBNQVhfTk9ERV9OVU0pXFxuK1xcdFxcdGlmIChhci1cXHUwMDNlbm9kZV9udW0gXFx1MDAzZT0gTUFYX05PREVfTlVNKVxcbiBcXHRcXHRcXHRyZXR1cm4gRU5EUE9JTlRfVU5VU0VEO1xcbitcXHRcXHRlcF9tYXAgPSBhci1cXHUwMDNlbm9kZV9udW0rKztcXG4gXFx0fVxcbiBcXG4gXFx0bWVtY3B5KGFyLVxcdTAwM2Vub2RlX21hcFtlcF9tYXBdLm1hY19hZGRyLCBldGhfaGRyLVxcdTAwM2VoX2Rlc3QsIEVUSF9BTEVOKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDQ6MDc6MDUuNzQzNzQwNDIxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MzU3MjE5NTc4MzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQVRINktMXCIsXG4gICAgXCJBVEg2S0xfVVNCXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYXRoNmtsX2lic3NfbWFwX2VwaWRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhbiBvdXQtb2YtYm91bmRzIGFycmF5IGFjY2VzcyBpbiBgYXRoNmtsX2lic3NfbWFwX2VwaWRgIGJ5IGNvcnJlY3RpbmcgdGhlIGJvdW5kcyBjaGVjayBvbiBgYXItXFx1MDAzZW5vZGVfbnVtYCBiZWZvcmUgaW5jcmVtZW50aW5nIGl0IGFuZCB1c2luZyBpdCBhcyBhbiBpbmRleC4gVGhlIGBhdGg2a2xgIGRyaXZlciBjYW4gYmUgZnV6emVkIHZpYSBpdHMgVVNCIGludGVyZmFjZSAoYENPTkZJR19BVEg2S0xfVVNCYCkuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYzUxZjYxMGM5OGQ5MTczMzY1NTA5MDUwN2RmYmIwZTBiOGFkNzAxZFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDIzIDA0OjA3OjA0IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguY1xuaW5kZXggOTdmZGFjNzIzN2UyNmUuLjNiMDAzMzQzMWIyOTg3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jXG5AQCAtNjcsMTAgKzY3LDkgQEAgc3RhdGljIHU4IGF0aDZrbF9pYnNzX21hcF9lcGlkKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXHR9XG4gXG4gXHRpZiAoZXBfbWFwID09IC0xKSB7XG4tXHRcdGVwX21hcCA9IGFyLVx1MDAzZW5vZGVfbnVtO1xuLVx0XHRhci1cdTAwM2Vub2RlX251bSsrO1xuLVx0XHRpZiAoYXItXHUwMDNlbm9kZV9udW0gXHUwMDNlIE1BWF9OT0RFX05VTSlcbitcdFx0aWYgKGFyLVx1MDAzZW5vZGVfbnVtIFx1MDAzZT0gTUFYX05PREVfTlVNKVxuIFx0XHRcdHJldHVybiBFTkRQT0lOVF9VTlVTRUQ7XG4rXHRcdGVwX21hcCA9IGFyLVx1MDAzZW5vZGVfbnVtKys7XG4gXHR9XG4gXG4gXHRtZW1jcHkoYXItXHUwMDNlbm9kZV9tYXBbZXBfbWFwXS5tYWNfYWRkciwgZXRoX2hkci1cdTAwM2VoX2Rlc3QsIEVUSF9BTEVOKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDA0OjA3OjA1Ljc0Mzc0MTg3MVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY4ODQ0NTIzNjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgRHJpdmVyIFBhdGNoOiBQb3RlbnRpYWwgVnVsbmVyYWJpbGl0eSBhbmQgRnV6emluZyBGZWFzaWJpbGl0eSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBhdGg2a2xfaWJzc19tYXBfZXBpZGAgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jYC4gSXQgc2VlbXMgbGlrZSB0aGV5J3JlIGZpeGluZyBhIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIGFycmF5IGFjY2Vzcywgd2hpY2ggaXMgYWx3YXlzIHNvbWV0aGluZyB0byBwYXkgYXR0ZW50aW9uIHRvLiBUaGUgb3JpZ2luYWwgY29kZSB3YXMgYSBsaXR0bGUgY2x1bmt5OiBpdCBmaXJzdCBhc3NpZ25lZCBgZXBfbWFwYCBhbmQgKnRoZW4qIGluY3JlbWVudGVkIGBhci1cdTAwM2Vub2RlX251bWAuIFRoZSBkYW5nZXIgd2FzIHRoYXQgaWYgYGFyLVx1MDAzZW5vZGVfbnVtYCB3YXMgYWxyZWFkeSBhdCBgTUFYX05PREVfTlVNYCwgYGVwX21hcGAgd291bGQgZ2V0IGFzc2lnbmVkIHRoYXQgdmFsdWUgKmJlZm9yZSogdGhlIGNoZWNrLiBUaGlzIG1lYW50IGFjY2Vzc2luZyBgYXItXHUwMDNlbm9kZV9tYXBbZXBfbWFwXWAgd291bGQgZ28gb3V0IG9mIGJvdW5kcy4gVGhlIG5ldyBjb2RlIHNtYXJ0bHkgaW5jcmVtZW50cyAqYWZ0ZXIqIHRoZSBhc3NpZ25tZW50LiBUaGF0J3MgYSBnb29kLCBjbGVhbiBmaXguXG5cbkJ1dCBub3csIG15IGV4cGVydCBpbnN0aW5jdHMga2ljayBpbi4gSSBzdGFydCB0aGlua2luZywgXCJDYW4gd2UgKmV4cGxvaXQqIHRoaXMgaW4gYW55IG1lYW5pbmdmdWwgd2F5PyBBbmQgY2FuIHdlIGV2ZW4gKnJlYWNoKiB0aGlzIGNvZGUgaW4gYSB3YXkgdGhhdOKAmXMgZnV6emFibGU/XCIgYGF0aDZrbGAuLi4gdGhhdOKAmXMgYW4gQXRoZXJvcyBBUjYwMDMvQVI2MDA0IGRyaXZlciwgcmlnaHQ/IFRoaXMgaXMgaGFyZHdhcmUtc3BlY2lmaWMsIHNvIGl04oCZcyBsaWtlbHkgcnVubmluZyBhdCBhIGxvdyBsZXZlbC4gVGhlIGJpZyBxdWVzdGlvbiBpcyB3aGV0aGVyIGl0J3MgYWNjZXNzaWJsZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBUaGF0J3MgbXkgbWFpbiBjb25jZXJuLiBXaXRob3V0IGhhcmR3YXJlIGVtdWxhdGlvbiBsaWtlIGBtYWM4MDIxMV9od3NpbWAsIGl04oCZcyBnb2luZyB0byBiZSB0b3VnaCB1bmxlc3MgdGhlcmXigJlzIGEgZGlyZWN0IGludGVyZmFjZS5cblxuTXkgZmlyc3QgdGhvdWdodCBpcyBhbHdheXMsIGFyZSB0aGVyZSBVU0Igb3IgU0RJTyBpbnRlcmZhY2VzPyBDb3VsZCB3ZSBmdXp6IHRoaXMgd2l0aCBhIGR1bW15IEhDRCBvciBzb21ldGhpbmcgc2ltaWxhcj8gTGV04oCZcyBmaW5kIG91dC4gSSBuYXZpZ2F0ZSB0aGUgZGlyZWN0b3J5IHN0cnVjdHVyZS4gSSBzZWUgYHVzYi5jYCBhbmQgYHNkaW8uY2AgaW4gdGhlIGBhdGg2a2xgIGRpcmVjdG9yeS4gQWxyaWdodCwgdGhpcyBpcyBwcm9taXNpbmchIFRoZSBmYWN0IHRoYXQgaXQgaGFzIHRoZXNlIGludGVyZmFjZXMgbWVhbnMgdGhlcmUncyBhIGdvb2QgY2hhbmNlIHdlIGNhbiByZWFjaCBpdC4gTm93LCB0aGUgcmVhbCB3b3JrIGJlZ2lucy4gSSdsbCBuZWVkIHRvIGRpZyBpbnRvIGB1c2IuY2AgYW5kIHNlZSBpZiB3ZSBjYW4gY3JhZnQgc29tZSBpbnB1dHMgdG8gdHJpZ2dlciB0aGlzIGBhdGg2a2xfaWJzc19tYXBfZXBpZGAgZnVuY3Rpb24gYW5kIGV4cGxvcmUgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdHkgcGF0aHMuIEknbSBub3cgdGhpbmtpbmcgYWJvdXQgaG93IHRvIGJ1aWxkIGEgZnV6emVyIGZvciB0aGlzLi4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5ODIsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MTUsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwNDowNzoxMi42MjgxOTYzNjhaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTU5NzAwNjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoNmtsX3VzYlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL0tjb25maWc9MjU9Y29uZmlnIEFUSDZLTF9VU0JcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZy0zMi1cXHQgIFVTQi4gSWYgeW91IGNob29zZSB0byBidWlsZCBpdCBhcyBhIG1vZHVsZSwgaXQgd2lsbCBiZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZzozMzpcXHQgIGNhbGxlZCBhdGg2a2xfdXNiLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZy0zNC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvTWFrZWZpbGU9NDM9YXRoNmtsX3NkaW8teSArPSBzZGlvLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL01ha2VmaWxlLTQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvTWFrZWZpbGU6NDU6b2JqLSQoQ09ORklHX0FUSDZLTF9VU0IpICs9IGF0aDZrbF91c2Iub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvTWFrZWZpbGU6NDY6YXRoNmtsX3VzYi15ICs9IHVzYi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9NYWtlZmlsZS00Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvaHRjX3BpcGUuYz05NDE9c3RhdGljIGludCBhdGg2a2xfaHRjX3BpcGVfcnhfY29tcGxldGUoc3RydWN0IGF0aDZrbCAqYXIsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL2h0Y19waXBlLmMtOTU5LVxcdCAqIFRodXMgdGhlIHBvc3NpYmlsaXR5IG9mIGFyLVxcdTAwM2VodGNfdGFyZ2V0IGJlaW5nIE5VTExcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL2h0Y19waXBlLmM6OTYwOlxcdCAqIHZpYSBhdGg2a2xfcmVjdl9jb21wbGV0ZSAtXFx1MDAzZSBhdGg2a2xfdXNiX2lvX2NvbXBfd29yay5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL2h0Y19waXBlLmMtOTYxLVxcdCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYz0zMD1lbnVtIEFUSDZLTF9VU0JfUElQRV9JRCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NDQ6c3RydWN0IGF0aDZrbF91c2JfcGlwZSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy00NS1cXHRzdHJ1Y3QgbGlzdF9oZWFkIHVyYl9saXN0X2hlYWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTUzLVxcdHU4IGxvZ2ljYWxfcGlwZV9udW07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo1NDpcXHRzdHJ1Y3QgYXRoNmtsX3VzYiAqYXJfdXNiO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNTUtXFx0dTE2IG1heF9wYWNrZXRfc2l6ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjMtLyogdXNiIGRldmljZSBvYmplY3QgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjY0OnN0cnVjdCBhdGg2a2xfdXNiIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTY1LVxcdC8qIHByb3RlY3RzIHBpcGUtXFx1MDAzZXVyYl9saXN0X2hlYWQgYW5kICBwaXBlLVxcdTAwM2V1cmJfY250ICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTY5LVxcdHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2U7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo3MDpcXHRzdHJ1Y3QgYXRoNmtsX3VzYl9waXBlIHBpcGVzW0FUSDZLTF9VU0JfUElQRV9NQVhdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNzEtXFx0dTggKmRpYWdfY21kX2J1ZmZlcjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM9Nzg9c3RydWN0IGF0aDZrbF91cmJfY29udGV4dCB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03OS1cXHRzdHJ1Y3QgbGlzdF9oZWFkIGxpbms7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo4MDpcXHRzdHJ1Y3QgYXRoNmtsX3VzYl9waXBlICpwaXBlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtODEtXFx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTA0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTA1OnN0cnVjdCBhdGg2a2xfdXNiX2N0cmxfZGlhZ19jbWRfd3JpdGUge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTA2LVxcdF9fbGUzMiBjbWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExMjpzdHJ1Y3QgYXRoNmtsX3VzYl9jdHJsX2RpYWdfY21kX3JlYWQge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTEzLVxcdF9fbGUzMiBjbWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExNzpzdHJ1Y3QgYXRoNmtsX3VzYl9jdHJsX2RpYWdfcmVzcF9yZWFkIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExOC1cXHRfX2xlMzIgdmFsdWU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEyMS0vKiBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEyMjpzdGF0aWMgdm9pZCBhdGg2a2xfdXNiX3JlY3ZfY29tcGxldGUoc3RydWN0IHVyYiAqdXJiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEyMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM9MTMwPXN0YXRpYyBzdHJ1Y3QgYXRoNmtsX3VyYl9jb250ZXh0ICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEzMTphdGg2a2xfdXNiX2FsbG9jX3VyYl9mcm9tX3BpcGUoc3RydWN0IGF0aDZrbF91c2JfcGlwZSAqcGlwZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEzMi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTE1Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjE1MzpzdGF0aWMgdm9pZCBhdGg2a2xfdXNiX2ZyZWVfdXJiX3RvX3BpcGUoc3RydWN0IGF0aDZrbF91c2JfcGlwZSAqcGlwZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTE1NC1cXHRcXHRcXHRcXHRcXHRzdHJ1Y3QgYXRoNmtsX3VyYl9jb250ZXh0ICp1cmJfY29udGV4dClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTY4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTY5OnN0YXRpYyB2b2lkIGF0aDZrbF91c2JfY2xlYW51cF9yZWN2X3VyYihzdHJ1Y3QgYXRoNmtsX3VyYl9jb250ZXh0ICp1cmJfY29udGV4dClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTE3MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTE3My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjE3NDpcXHRhdGg2a2xfdXNiX2ZyZWVfdXJiX3RvX3BpcGUodXJiX2NvbnRleHQtXFx1MDAzZXBpcGUsIHVyYl9jb250ZXh0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTE3NS19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xNzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxNzc6c3RhdGljIGlubGluZSBzdHJ1Y3QgYXRoNmtsX3VzYiAqYXRoNmtsX3VzYl9wcml2KHN0cnVjdCBhdGg2a2wgKmFyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTc4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTgyLS8qIHBpcGUgcmVzb3VyY2UgYWxsb2NhdGlvbi9jbGVhbnVwICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxODM6c3RhdGljIGludCBhdGg2a2xfdXNiX2FsbG9jX3BpcGVfcmVzb3VyY2VzKHN0cnVjdCBhdGg2a2xfdXNiX3BpcGUgKnBpcGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xODQtXFx0XFx0XFx0XFx0XFx0ICAgaW50IHVyYl9jbnQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTIwNS1cXHRcXHRwaXBlLVxcdTAwM2V1cmJfYWxsb2MrKztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjIwNjpcXHRcXHRhdGg2a2xfdXNiX2ZyZWVfdXJiX3RvX3BpcGUocGlwZSwgdXJiX2NvbnRleHQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMjA3LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMjE3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MjE4OnN0YXRpYyB2b2lkIGF0aDZrbF91c2JfZnJlZV9waXBlX3Jlc291cmNlcyhzdHJ1Y3QgYXRoNmtsX3VzYl9waXBlICpwaXBlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMjE5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMjQxLVxcdHdoaWxlICh0cnVlKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoyNDI6XFx0XFx0dXJiX2NvbnRleHQgPSBhdGg2a2xfdXNiX2FsbG9jX3VyYl9mcm9tX3BpcGUocGlwZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0yNDMtXFx0XFx0aWYgKHVyYl9jb250ZXh0ID09IE5VTEwpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTI0OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjI0OTpzdGF0aWMgdm9pZCBhdGg2a2xfdXNiX2NsZWFudXBfcGlwZV9yZXNvdXJjZXMoc3RydWN0IGF0aDZrbF91c2IgKmFyX3VzYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTI1MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTI1My1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRINktMX1VTQl9QSVBFX01BWDsgaSsrKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MjU0OlxcdFxcdGF0aDZrbF91c2JfZnJlZV9waXBlX3Jlc291cmNlcyhcXHUwMDI2YXJfdXNiLVxcdTAwM2VwaXBlc1tpXSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0yNTUtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMjU2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MjU3OnN0YXRpYyB1OCBhdGg2a2xfdXNiX2dldF9sb2dpY2FsX3BpcGVfbnVtKHN0cnVjdCBhdGg2a2xfdXNiICphcl91c2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0yNTgtXFx0XFx0XFx0XFx0XFx0ICB1OCBlcF9hZGRyZXNzLCBpbnQgKnVyYl9jb3VudClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMzAyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MzAzOnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9zZXR1cF9waXBlX3Jlc291cmNlcyhzdHJ1Y3QgYXRoNmtsX3VzYiAqYXJfdXNiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMzA0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMzA3LVxcdHN0cnVjdCB1c2JfZW5kcG9pbnRfZGVzY3JpcHRvciAqZW5kcG9pbnQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzozMDg6XFx0c3RydWN0IGF0aDZrbF91c2JfcGlwZSAqcGlwZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTMwOS1cXHRpbnQgaSwgdXJiY291bnQsIHN0YXR1cyA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTM1MC1cXHRcXHRwaXBlX251bSA9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzozNTE6XFx0XFx0ICAgIGF0aDZrbF91c2JfZ2V0X2xvZ2ljYWxfcGlwZV9udW0oYXJfdXNiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMzUyLVxcdFxcdFxcdFxcdFxcdFxcdCAgICBlbmRwb2ludC1cXHUwMDNlYkVuZHBvaW50QWRkcmVzcyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNDA1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NDA2OlxcdFxcdHN0YXR1cyA9IGF0aDZrbF91c2JfYWxsb2NfcGlwZV9yZXNvdXJjZXMocGlwZSwgdXJiY291bnQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNDA3LVxcdFxcdGlmIChzdGF0dXMgIT0gMClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNDE0LS8qIHBpcGUgb3BlcmF0aW9ucyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NDE1OnN0YXRpYyB2b2lkIGF0aDZrbF91c2JfcG9zdF9yZWN2X3RyYW5zZmVycyhzdHJ1Y3QgYXRoNmtsX3VzYl9waXBlICpyZWN2X3BpcGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy00MTYtXFx0XFx0XFx0XFx0XFx0ICAgaW50IGJ1ZmZlcl9sZW5ndGgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQyMi1cXHR3aGlsZSAodHJ1ZSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NDIzOlxcdFxcdHVyYl9jb250ZXh0ID0gYXRoNmtsX3VzYl9hbGxvY191cmJfZnJvbV9waXBlKHJlY3ZfcGlwZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy00MjQtXFx0XFx0aWYgKHVyYl9jb250ZXh0ID09IE5VTEwpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQzOS1cXHRcXHRcXHRcXHQgIGJ1ZmZlcl9sZW5ndGgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo0NDA6XFx0XFx0XFx0XFx0ICBhdGg2a2xfdXNiX3JlY3ZfY29tcGxldGUsIHVyYl9jb250ZXh0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQ0MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNDYzLWVycl9jbGVhbnVwX3VyYjpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjQ2NDpcXHRhdGg2a2xfdXNiX2NsZWFudXBfcmVjdl91cmIodXJiX2NvbnRleHQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNDY1LVxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNDY3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NDY4OnN0YXRpYyB2b2lkIGF0aDZrbF91c2JfZmx1c2hfYWxsKHN0cnVjdCBhdGg2a2xfdXNiICphcl91c2IpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy00Njkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy00ODMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo0ODQ6c3RhdGljIHZvaWQgYXRoNmtsX3VzYl9zdGFydF9yZWN2X3BpcGVzKHN0cnVjdCBhdGg2a2xfdXNiICphcl91c2IpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy00ODUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy00ODktXFx0ICogICAgICBhcl91c2ItXFx1MDAzZXBpcGVzW0FUSDZLTF9VU0JfUElQRV9SWF9DVFJMXS51cmJfYWxsb2MvMjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjQ5MDpcXHQgKiBhdGg2a2xfdXNiX3Bvc3RfcmVjdl90cmFuc2ZlcnMoXFx1MDAyNmFyX3VzYi1cXHUwMDNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy00OTEtXFx0ICpcXHRcXHRwaXBlc1tBVEg2S0xfVVNCX1BJUEVfUlhfQ1RSTF0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTQ5Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjQ5NzpcXHRhdGg2a2xfdXNiX3Bvc3RfcmVjdl90cmFuc2ZlcnMoXFx1MDAyNmFyX3VzYi1cXHUwMDNlcGlwZXNbQVRINktMX1VTQl9QSVBFX1JYX0RBVEFdLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNDk4LVxcdFxcdFxcdFxcdCAgICAgICBBVEg2S0xfVVNCX1JYX0JVRkZFUl9TSVpFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNTAxLS8qIGhpZiB1c2IgcngvdHggY29tcGxldGlvbiBmdW5jdGlvbnMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjUwMjpzdGF0aWMgdm9pZCBhdGg2a2xfdXNiX3JlY3ZfY29tcGxldGUoc3RydWN0IHVyYiAqdXJiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNTAzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTUwNC1cXHRzdHJ1Y3QgYXRoNmtsX3VyYl9jb250ZXh0ICp1cmJfY29udGV4dCA9IHVyYi1cXHUwMDNlY29udGV4dDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjUwNTpcXHRzdHJ1Y3QgYXRoNmtsX3VzYl9waXBlICpwaXBlID0gdXJiX2NvbnRleHQtXFx1MDAzZXBpcGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01MDYtXFx0c3RydWN0IHNrX2J1ZmYgKnNrYiA9IE5VTEw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTU0OS1jbGVhbnVwX3JlY3ZfdXJiOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NTUwOlxcdGF0aDZrbF91c2JfY2xlYW51cF9yZWN2X3VyYih1cmJfY29udGV4dCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01NTEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTU1NC1cXHRcXHQvKiBvdXIgZnJlZSB1cmJzIGFyZSBwaWxpbmcgdXAsIHBvc3QgbW9yZSB0cmFuc2ZlcnMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjU1NTpcXHRcXHRhdGg2a2xfdXNiX3Bvc3RfcmVjdl90cmFuc2ZlcnMocGlwZSwgQVRINktMX1VTQl9SWF9CVUZGRVJfU0laRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01NTYtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01NTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo1NTk6c3RhdGljIHZvaWQgYXRoNmtsX3VzYl91c2JfdHJhbnNtaXRfY29tcGxldGUoc3RydWN0IHVyYiAqdXJiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNTYwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTU2MS1cXHRzdHJ1Y3QgYXRoNmtsX3VyYl9jb250ZXh0ICp1cmJfY29udGV4dCA9IHVyYi1cXHUwMDNlY29udGV4dDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjU2MjpcXHRzdHJ1Y3QgYXRoNmtsX3VzYl9waXBlICpwaXBlID0gdXJiX2NvbnRleHQtXFx1MDAzZXBpcGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01NjMtXFx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNTc3LVxcdHVyYl9jb250ZXh0LVxcdTAwM2Vza2IgPSBOVUxMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NTc4OlxcdGF0aDZrbF91c2JfZnJlZV91cmJfdG9fcGlwZSh1cmJfY29udGV4dC1cXHUwMDNlcGlwZSwgdXJiX2NvbnRleHQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNTc5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01ODQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo1ODU6c3RhdGljIHZvaWQgYXRoNmtsX3VzYl9pb19jb21wX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNTg2LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjU4NzpcXHRzdHJ1Y3QgYXRoNmtsX3VzYl9waXBlICpwaXBlID0gY29udGFpbmVyX29mKHdvcmssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo1ODg6XFx0XFx0XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBhdGg2a2xfdXNiX3BpcGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01ODktXFx0XFx0XFx0XFx0XFx0XFx0ICAgIGlvX2NvbXBsZXRlX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NTkwOlxcdHN0cnVjdCBhdGg2a2xfdXNiICphcl91c2I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy01OTEtXFx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjA4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NjA5OiNkZWZpbmUgQVRINktMX1VTQl9NQVhfRElBR19DTUQgKHNpemVvZihzdHJ1Y3QgYXRoNmtsX3VzYl9jdHJsX2RpYWdfY21kX3dyaXRlKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjYxMDojZGVmaW5lIEFUSDZLTF9VU0JfTUFYX0RJQUdfUkVTUCAoc2l6ZW9mKHN0cnVjdCBhdGg2a2xfdXNiX2N0cmxfZGlhZ19yZXNwX3JlYWQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NjEyOnN0YXRpYyB2b2lkIGF0aDZrbF91c2JfZGVzdHJveShzdHJ1Y3QgYXRoNmtsX3VzYiAqYXJfdXNiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjEzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjYxNDpcXHRhdGg2a2xfdXNiX2ZsdXNoX2FsbChhcl91c2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjE1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NjE2OlxcdGF0aDZrbF91c2JfY2xlYW51cF9waXBlX3Jlc291cmNlcyhhcl91c2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjE3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02MjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo2Mjc6c3RhdGljIHN0cnVjdCBhdGg2a2xfdXNiICphdGg2a2xfdXNiX2NyZWF0ZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjI4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTYyOS1cXHRzdHJ1Y3QgdXNiX2RldmljZSAqZGV2ID0gaW50ZXJmYWNlX3RvX3VzYmRldihpbnRlcmZhY2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NjMwOlxcdHN0cnVjdCBhdGg2a2xfdXNiICphcl91c2I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo2MzE6XFx0c3RydWN0IGF0aDZrbF91c2JfcGlwZSAqcGlwZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTYzMi1cXHRpbnQgc3RhdHVzID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjM0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NjM1OlxcdC8qIGF0aDZrbF91c2JfZGVzdHJveSgpIG5lZWRzIGFyX3VzYiAhPSBOVUxMIFxcdTAwMjZcXHUwMDI2IGFyX3VzYi1cXHUwMDNld3EgIT0gTlVMTC4gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjYzNjpcXHRhcl91c2IgPSBremFsbG9jX29iaihzdHJ1Y3QgYXRoNmtsX3VzYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02MzctXFx0aWYgKGFyX3VzYiA9PSBOVUxMKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02NTItXFx0XFx0SU5JVF9XT1JLKFxcdTAwMjZwaXBlLVxcdTAwM2Vpb19jb21wbGV0ZV93b3JrLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NjUzOlxcdFxcdFxcdCAgYXRoNmtsX3VzYl9pb19jb21wX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjU0LVxcdFxcdHNrYl9xdWV1ZV9oZWFkX2luaXQoXFx1MDAyNnBpcGUtXFx1MDAzZWlvX2NvbXBfcXVldWUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02NTktXFx0XFx0c3RhdHVzID0gLUVOT01FTTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjY2MDpcXHRcXHRnb3RvIGZhaWxfYXRoNmtsX3VzYl9jcmVhdGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02NjEtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02NjYtXFx0XFx0c3RhdHVzID0gLUVOT01FTTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjY2NzpcXHRcXHRnb3RvIGZhaWxfYXRoNmtsX3VzYl9jcmVhdGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02NjgtXFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjY5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NjcwOlxcdHN0YXR1cyA9IGF0aDZrbF91c2Jfc2V0dXBfcGlwZV9yZXNvdXJjZXMoYXJfdXNiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTY3MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjY3MjpmYWlsX2F0aDZrbF91c2JfY3JlYXRlOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjczLVxcdGlmIChzdGF0dXMgIT0gMCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6Njc0OlxcdFxcdGF0aDZrbF91c2JfZGVzdHJveShhcl91c2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjc1LVxcdFxcdGFyX3VzYiA9IE5VTEw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTY3OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjY4MDpzdGF0aWMgdm9pZCBhdGg2a2xfdXNiX2RldmljZV9kZXRhY2hlZChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjgxLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjY4MjpcXHRzdHJ1Y3QgYXRoNmtsX3VzYiAqYXJfdXNiO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNjgzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02OTItXFx0YXRoNmtsX2NvcmVfY2xlYW51cChhcl91c2ItXFx1MDAzZWFyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjY5MzpcXHRhdGg2a2xfdXNiX2Rlc3Ryb3koYXJfdXNiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTY5NC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jPTY5Nz1zdGF0aWMgdm9pZCBoaWZfc3RhcnQoc3RydWN0IGF0aDZrbCAqYXIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy02OTgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6Njk5OlxcdHN0cnVjdCBhdGg2a2xfdXNiICpkZXZpY2UgPSBhdGg2a2xfdXNiX3ByaXYoYXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNzAwLVxcdGludCBpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNzAxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6NzAyOlxcdGF0aDZrbF91c2Jfc3RhcnRfcmVjdl9waXBlcyhkZXZpY2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNzAzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03MTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo3MTI6c3RhdGljIGludCBhdGg2a2xfdXNiX3NlbmQoc3RydWN0IGF0aDZrbCAqYXIsIHU4IFBpcGVJRCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTcxMy1cXHRcXHRcXHQgICBzdHJ1Y3Qgc2tfYnVmZiAqaGRyX3NrYiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTcxNC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo3MTU6XFx0c3RydWN0IGF0aDZrbF91c2IgKmRldmljZSA9IGF0aDZrbF91c2JfcHJpdihhcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo3MTY6XFx0c3RydWN0IGF0aDZrbF91c2JfcGlwZSAqcGlwZSA9IFxcdTAwMjZkZXZpY2UtXFx1MDAzZXBpcGVzW1BpcGVJRF07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03MTctXFx0c3RydWN0IGF0aDZrbF91cmJfY29udGV4dCAqdXJiX2NvbnRleHQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTcyNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjcyNjpcXHR1cmJfY29udGV4dCA9IGF0aDZrbF91c2JfYWxsb2NfdXJiX2Zyb21fcGlwZShwaXBlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTcyNy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNzQ3LVxcdFxcdHN0YXR1cyA9IC1FTk9NRU07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo3NDg6XFx0XFx0YXRoNmtsX3VzYl9mcmVlX3VyYl90b19waXBlKHVyYl9jb250ZXh0LVxcdTAwM2VwaXBlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNzQ5LVxcdFxcdFxcdFxcdFxcdCAgICB1cmJfY29udGV4dCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTc1Ny1cXHRcXHRcXHQgIGxlbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjc1ODpcXHRcXHRcXHQgIGF0aDZrbF91c2JfdXNiX3RyYW5zbWl0X2NvbXBsZXRlLCB1cmJfY29udGV4dCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03NTktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTc3Ny1cXHRcXHR1c2JfdW5hbmNob3JfdXJiKHVyYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo3Nzg6XFx0XFx0YXRoNmtsX3VzYl9mcmVlX3VyYl90b19waXBlKHVyYl9jb250ZXh0LVxcdTAwM2VwaXBlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNzc5LVxcdFxcdFxcdFxcdFxcdCAgICB1cmJfY29udGV4dCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jPTc4OD1zdGF0aWMgdm9pZCBoaWZfc3RvcChzdHJ1Y3QgYXRoNmtsICphcilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTc4OS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo3OTA6XFx0c3RydWN0IGF0aDZrbF91c2IgKmRldmljZSA9IGF0aDZrbF91c2JfcHJpdihhcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03OTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo3OTI6XFx0YXRoNmtsX3VzYl9mbHVzaF9hbGwoZGV2aWNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTc5My19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy03OTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo3OTU6c3RhdGljIHZvaWQgYXRoNmtsX3VzYl9nZXRfZGVmYXVsdF9waXBlKHN0cnVjdCBhdGg2a2wgKmFyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtNzk2LVxcdFxcdFxcdFxcdFxcdHU4ICp1bF9waXBlLCB1OCAqZGxfcGlwZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtODAxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6ODAyOnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9tYXBfc2VydmljZV9waXBlKHN0cnVjdCBhdGg2a2wgKmFyLCB1MTYgc3ZjX2lkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtODAzLVxcdFxcdFxcdFxcdCAgICAgICB1OCAqdWxfcGlwZSwgdTggKmRsX3BpcGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTg1Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjg1NzpzdGF0aWMgdTE2IGF0aDZrbF91c2JfZ2V0X2ZyZWVfcXVldWVfbnVtYmVyKHN0cnVjdCBhdGg2a2wgKmFyLCB1OCBwaXBlX2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtODU4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjg1OTpcXHRzdHJ1Y3QgYXRoNmtsX3VzYiAqZGV2aWNlID0gYXRoNmtsX3VzYl9wcml2KGFyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTg2MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM9ODY0PXN0YXRpYyB2b2lkIGhpZl9kZXRhY2hfaHRjKHN0cnVjdCBhdGg2a2wgKmFyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtODY1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjg2NjpcXHRzdHJ1Y3QgYXRoNmtsX3VzYiAqZGV2aWNlID0gYXRoNmtsX3VzYl9wcml2KGFyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTg2Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjg2ODpcXHRhdGg2a2xfdXNiX2ZsdXNoX2FsbChkZXZpY2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtODY5LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTg3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjg3MTpzdGF0aWMgaW50IGF0aDZrbF91c2Jfc3VibWl0X2N0cmxfb3V0KHN0cnVjdCBhdGg2a2xfdXNiICphcl91c2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy04NzItXFx0XFx0XFx0XFx0ICAgdTggcmVxLCB1MTYgdmFsdWUsIHUxNiBpbmRleCwgdm9pZCAqZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTAyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6OTAzOnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9zdWJtaXRfY3RybF9pbihzdHJ1Y3QgYXRoNmtsX3VzYiAqYXJfdXNiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTA0LVxcdFxcdFxcdFxcdCAgdTggcmVxLCB1MTYgdmFsdWUsIHUxNiBpbmRleCwgdm9pZCAqZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTM2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6OTM3OnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9jdHJsX21zZ19leGNoYW5nZShzdHJ1Y3QgYXRoNmtsX3VzYiAqYXJfdXNiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTM4LVxcdFxcdFxcdFxcdCAgICAgdTggcmVxX3ZhbCwgdTggKnJlcV9idWYsIHUzMiByZXFfbGVuLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05NDMtXFx0Lyogc2VuZCBjb21tYW5kICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo5NDQ6XFx0cmV0ID0gYXRoNmtsX3VzYl9zdWJtaXRfY3RybF9vdXQoYXJfdXNiLCByZXFfdmFsLCAwLCAwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTQ1LVxcdFxcdFxcdFxcdFxcdCByZXFfYnVmLCByZXFfbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTU1LVxcdC8qIGdldCByZXNwb25zZSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6OTU2OlxcdHJldCA9IGF0aDZrbF91c2Jfc3VibWl0X2N0cmxfaW4oYXJfdXNiLCByZXNwX3ZhbCwgMCwgMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTk1Ny1cXHRcXHRcXHRcXHRcXHRyZXNwX2J1ZiwgKnJlc3BfbGVuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTYxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6OTYyOnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9kaWFnX3JlYWQzMihzdHJ1Y3QgYXRoNmtsICphciwgdTMyIGFkZHJlc3MsIHUzMiAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTk2My17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo5NjQ6XFx0c3RydWN0IGF0aDZrbF91c2IgKmFyX3VzYiA9IGFyLVxcdTAwM2VoaWZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjk2NTpcXHRzdHJ1Y3QgYXRoNmtsX3VzYl9jdHJsX2RpYWdfcmVzcF9yZWFkICpyZXNwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6OTY2OlxcdHN0cnVjdCBhdGg2a2xfdXNiX2N0cmxfZGlhZ19jbWRfcmVhZCAqY21kO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTY3LVxcdHUzMiByZXNwX2xlbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTY5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6OTcwOlxcdGNtZCA9IChzdHJ1Y3QgYXRoNmtsX3VzYl9jdHJsX2RpYWdfY21kX3JlYWQgKikgYXJfdXNiLVxcdTAwM2VkaWFnX2NtZF9idWZmZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05NzEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTk3Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjk3NzpcXHRyZXQgPSBhdGg2a2xfdXNiX2N0cmxfbXNnX2V4Y2hhbmdlKGFyX3VzYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTk3OC1cXHRcXHRcXHRcXHRBVEg2S0xfVVNCX0NPTlRST0xfUkVRX0RJQUdfQ01ELFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTc5LVxcdFxcdFxcdFxcdCh1OCAqKSBjbWQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo5ODA6XFx0XFx0XFx0XFx0c2l6ZW9mKHN0cnVjdCBhdGg2a2xfdXNiX2N0cmxfZGlhZ19jbWRfd3JpdGUpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTgxLVxcdFxcdFxcdFxcdEFUSDZLTF9VU0JfQ09OVFJPTF9SRVFfRElBR19SRVNQLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05ODgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo5ODk6XFx0cmVzcCA9IChzdHJ1Y3QgYXRoNmtsX3VzYl9jdHJsX2RpYWdfcmVzcF9yZWFkICopXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05OTAtXFx0XFx0YXJfdXNiLVxcdTAwM2VkaWFnX3Jlc3BfYnVmZmVyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy05OTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzo5OTc6c3RhdGljIGludCBhdGg2a2xfdXNiX2RpYWdfd3JpdGUzMihzdHJ1Y3QgYXRoNmtsICphciwgdTMyIGFkZHJlc3MsIF9fbGUzMiBkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtOTk4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjk5OTpcXHRzdHJ1Y3QgYXRoNmtsX3VzYiAqYXJfdXNiID0gYXItXFx1MDAzZWhpZl9wcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTAwMDpcXHRzdHJ1Y3QgYXRoNmtsX3VzYl9jdHJsX2RpYWdfY21kX3dyaXRlICpjbWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDAxLVxcdGludCByZXQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDAyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTAwMzpcXHRjbWQgPSAoc3RydWN0IGF0aDZrbF91c2JfY3RybF9kaWFnX2NtZF93cml0ZSAqKSBhcl91c2ItXFx1MDAzZWRpYWdfY21kX2J1ZmZlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwMDQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMDA1OlxcdG1lbXNldChjbWQsIDAsIHNpemVvZihzdHJ1Y3QgYXRoNmtsX3VzYl9jdHJsX2RpYWdfY21kX3dyaXRlKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDA2LVxcdGNtZC1cXHUwMDNlY21kID0gY3B1X3RvX2xlMzIoQVRINktMX1VTQl9DVFJMX0RJQUdfQ0NfV1JJVEUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDA5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTAxMDpcXHRyZXQgPSBhdGg2a2xfdXNiX2N0cmxfbXNnX2V4Y2hhbmdlKGFyX3VzYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwMTEtXFx0XFx0XFx0XFx0XFx0ICAgQVRINktMX1VTQl9DT05UUk9MX1JFUV9ESUFHX0NNRCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTAyMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEwMjM6c3RhdGljIGludCBhdGg2a2xfdXNiX2JtaV9yZWFkKHN0cnVjdCBhdGg2a2wgKmFyLCB1OCAqYnVmLCB1MzIgbGVuKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTAyNC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMDI1OlxcdHN0cnVjdCBhdGg2a2xfdXNiICphcl91c2IgPSBhci1cXHUwMDNlaGlmX3ByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDI2LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwMjgtXFx0LyogZ2V0IHJlc3BvbnNlICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMDI5OlxcdHJldCA9IGF0aDZrbF91c2Jfc3VibWl0X2N0cmxfaW4oYXJfdXNiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTAzMC1cXHRcXHRcXHRcXHRcXHRBVEg2S0xfVVNCX0NPTlRST0xfUkVRX1JFQ1ZfQk1JX1JFU1AsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwNDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMDQxOnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9ibWlfd3JpdGUoc3RydWN0IGF0aDZrbCAqYXIsIHU4ICpidWYsIHUzMiBsZW4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDQyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEwNDM6XFx0c3RydWN0IGF0aDZrbF91c2IgKmFyX3VzYiA9IGFyLVxcdTAwM2VoaWZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwNDQtXFx0aW50IHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTA0Ni1cXHQvKiBzZW5kIGNvbW1hbmQgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEwNDc6XFx0cmV0ID0gYXRoNmtsX3VzYl9zdWJtaXRfY3RybF9vdXQoYXJfdXNiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTA0OC1cXHRcXHRcXHRcXHRcXHQgQVRINktMX1VTQl9DT05UUk9MX1JFUV9TRU5EX0JNSV9DTUQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwNTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMDU5OnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9wb3dlcl9vbihzdHJ1Y3QgYXRoNmtsICphcilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwNjAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTA2NTpzdGF0aWMgaW50IGF0aDZrbF91c2JfcG93ZXJfb2ZmKHN0cnVjdCBhdGg2a2wgKmFyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTA2Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwNzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMDcxOnN0YXRpYyB2b2lkIGF0aDZrbF91c2Jfc3RvcChzdHJ1Y3QgYXRoNmtsICphcilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwNzIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDc1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTA3NjpzdGF0aWMgdm9pZCBhdGg2a2xfdXNiX2NsZWFudXBfc2NhdHRlcihzdHJ1Y3QgYXRoNmtsICphcilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwNzcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDgzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTA4NDpzdGF0aWMgaW50IGF0aDZrbF91c2Jfc3VzcGVuZChzdHJ1Y3QgYXRoNmtsICphciwgc3RydWN0IGNmZzgwMjExX3dvd2xhbiAqd293KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTA4NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEwOTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMDkyOnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9yZXN1bWUoc3RydWN0IGF0aDZrbCAqYXIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMDkzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTA5OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExMDA6c3RhdGljIGNvbnN0IHN0cnVjdCBhdGg2a2xfaGlmX29wcyBhdGg2a2xfdXNiX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExMDE6XFx0LmRpYWdfcmVhZDMyID0gYXRoNmtsX3VzYl9kaWFnX3JlYWQzMixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExMDI6XFx0LmRpYWdfd3JpdGUzMiA9IGF0aDZrbF91c2JfZGlhZ193cml0ZTMyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTEwMzpcXHQuYm1pX3JlYWQgPSBhdGg2a2xfdXNiX2JtaV9yZWFkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTEwNDpcXHQuYm1pX3dyaXRlID0gYXRoNmtsX3VzYl9ibWlfd3JpdGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTA1OlxcdC5wb3dlcl9vbiA9IGF0aDZrbF91c2JfcG93ZXJfb24sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTA2OlxcdC5wb3dlcl9vZmYgPSBhdGg2a2xfdXNiX3Bvd2VyX29mZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExMDc6XFx0LnN0b3AgPSBhdGg2a2xfdXNiX3N0b3AsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTA4OlxcdC5waXBlX3NlbmQgPSBhdGg2a2xfdXNiX3NlbmQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTA5OlxcdC5waXBlX2dldF9kZWZhdWx0ID0gYXRoNmtsX3VzYl9nZXRfZGVmYXVsdF9waXBlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTExMDpcXHQucGlwZV9tYXBfc2VydmljZSA9IGF0aDZrbF91c2JfbWFwX3NlcnZpY2VfcGlwZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExMTE6XFx0LnBpcGVfZ2V0X2ZyZWVfcXVldWVfbnVtYmVyID0gYXRoNmtsX3VzYl9nZXRfZnJlZV9xdWV1ZV9udW1iZXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTEyOlxcdC5jbGVhbnVwX3NjYXR0ZXIgPSBhdGg2a2xfdXNiX2NsZWFudXBfc2NhdHRlcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExMTM6XFx0LnN1c3BlbmQgPSBhdGg2a2xfdXNiX3N1c3BlbmQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTE0OlxcdC5yZXN1bWUgPSBhdGg2a2xfdXNiX3Jlc3VtZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExMTUtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTExNy0vKiBhdGg2a2wgdXNiIGRyaXZlciByZWdpc3RlcmVkIGZ1bmN0aW9ucyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTExODpzdGF0aWMgaW50IGF0aDZrbF91c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExMTktXFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTEyMi1cXHRzdHJ1Y3QgYXRoNmtsICphcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExMjM6XFx0c3RydWN0IGF0aDZrbF91c2IgKmFyX3VzYiA9IE5VTEw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTI0LVxcdGludCB2ZW5kb3JfaWQsIHByb2R1Y3RfaWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExNDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTQzOlxcdGFyX3VzYiA9IGF0aDZrbF91c2JfY3JlYXRlKGludGVyZmFjZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTQ0LVxcdGlmIChhcl91c2IgPT0gTlVMTClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTE1NS1cXHRhci1cXHUwMDNlaGlmX3R5cGUgPSBBVEg2S0xfSElGX1RZUEVfVVNCO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTE1NjpcXHRhci1cXHUwMDNlaGlmX29wcyA9IFxcdTAwMjZhdGg2a2xfdXNiX29wcztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExNTctXFx0YXItXFx1MDAzZW1ib3hfaW5mby5ibG9ja19zaXplID0gMTY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExNzItZXJyX3VzYl9kZXN0cm95OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTE3MzpcXHRhdGg2a2xfdXNiX2Rlc3Ryb3koYXJfdXNiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExNzQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExNzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTc4OnN0YXRpYyB2b2lkIGF0aDZrbF91c2JfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTE3OS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTgwOlxcdGF0aDZrbF91c2JfZGV2aWNlX2RldGFjaGVkKGludGVyZmFjZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTgxLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTE4NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExODU6c3RhdGljIGludCBhdGg2a2xfdXNiX3BtX3N1c3BlbmQoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExODYtXFx0XFx0XFx0ICAgICAgcG1fbWVzc2FnZV90IG1lc3NhZ2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTg3LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExODg6XFx0c3RydWN0IGF0aDZrbF91c2IgKmRldmljZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExODktXFx0ZGV2aWNlID0gdXNiX2dldF9pbnRmZGF0YShpbnRlcmZhY2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTE5MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjExOTE6XFx0YXRoNmtsX3VzYl9mbHVzaF9hbGwoZGV2aWNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExOTItXFx0cmV0dXJuIDA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExOTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMTk1OnN0YXRpYyBpbnQgYXRoNmtsX3VzYl9wbV9yZXN1bWUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTExOTYte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTE5NzpcXHRzdHJ1Y3QgYXRoNmtsX3VzYiAqZGV2aWNlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTE5OC1cXHRkZXZpY2UgPSB1c2JfZ2V0X2ludGZkYXRhKGludGVyZmFjZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMTk5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTIwMDpcXHRhdGg2a2xfdXNiX3Bvc3RfcmVjdl90cmFuc2ZlcnMoXFx1MDAyNmRldmljZS1cXHUwMDNlcGlwZXNbQVRINktMX1VTQl9QSVBFX1JYX0RBVEFdLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTIwMS1cXHRcXHRcXHRcXHQgICAgICAgQVRINktMX1VTQl9SWF9CVUZGRVJfU0laRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMjAyOlxcdGF0aDZrbF91c2JfcG9zdF9yZWN2X3RyYW5zZmVycyhcXHUwMDI2ZGV2aWNlLVxcdTAwM2VwaXBlc1tBVEg2S0xfVVNCX1BJUEVfUlhfREFUQTJdLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmMtMTIwMy1cXHRcXHRcXHRcXHQgICAgICAgQVRINktMX1VTQl9SWF9CVUZGRVJfU0laRSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEyMDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMjEwOiNkZWZpbmUgYXRoNmtsX3VzYl9wbV9zdXNwZW5kIE5VTExcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEyMTE6I2RlZmluZSBhdGg2a2xfdXNiX3BtX3Jlc3VtZSBOVUxMXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMjEyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMjE1LS8qIHRhYmxlIG9mIGRldmljZXMgdGhhdCB3b3JrIHdpdGggdGhpcyBkcml2ZXIgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEyMTY6c3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIGF0aDZrbF91c2JfaWRzW10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMjE3LVxcdHtVU0JfREVWSUNFKDB4MGNmMywgMHg5Mzc1KX0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEyMjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMjIzOk1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBhdGg2a2xfdXNiX2lkcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMjI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTIyNTpzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgYXRoNmtsX3VzYl9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMjI2OlxcdC5uYW1lID0gXFxcImF0aDZrbF91c2JcXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTIyNzpcXHQucHJvYmUgPSBhdGg2a2xfdXNiX3Byb2JlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTIyODpcXHQuc3VzcGVuZCA9IGF0aDZrbF91c2JfcG1fc3VzcGVuZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEyMjk6XFx0LnJlc3VtZSA9IGF0aDZrbF91c2JfcG1fcmVzdW1lLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdXNiLmM6MTIzMDpcXHQuZGlzY29ubmVjdCA9IGF0aDZrbF91c2JfZGlzY29ubmVjdCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jOjEyMzE6XFx0LmlkX3RhYmxlID0gYXRoNmtsX3VzYl9pZHMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYy0xMjMyLVxcdC5zdXBwb3J0c19hdXRvc3VzcGVuZCA9IHRydWUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEyMzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC91c2IuYzoxMjM2Om1vZHVsZV91c2JfZHJpdmVyKGF0aDZrbF91c2JfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3VzYi5jLTEyMzctXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDA0OjA3OjEyLjY4NDE3MDQ2NFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0ODY4Mjg2NDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW5pdGlhbCBBc3Nlc3NtZW50IFx1MDAyNiBTdHJhdGVneSoqXG5cbk9rYXksIHNvIHRoZSBgYXRoNmtsYCBkcml2ZXIgaGFzIGEgVVNCIGNvbXBvbmVudCDigJMgdGhhdCdzIHBvdGVudGlhbGx5IHZlcnkgaW50ZXJlc3RpbmcgZnJvbSBhIGZ1enppbmcgcGVyc3BlY3RpdmUhIFRoZSBmYWN0IHRoYXQgaXQncyBVU0ItZW5hYmxlZCBtZWFucyB3ZSBtaWdodCBiZSBhYmxlIHRvIGxldmVyYWdlIHRoZSBVU0IgZHVtbXkgSENELCBsaWtlIHRoZSBvbmUgdXNlZCBieSBzeXprYWxsZXIsIGZvciBzb21lIGVmZmVjdGl2ZSBmdXp6aW5nLiBJdCBmZWVscyBsaWtlIHRoaXMgY291bGQgYmUgYSBncmVhdCB2ZWN0b3IgZm9yIGZpbmRpbmcgc29tZSBpbnRlcmVzdGluZyBidWdzLiBOb3csIHRoZSBwYXRjaCBmb2N1c2VzIG9uIG1vZGlmeWluZyBgYXRoNmtsX2lic3NfbWFwX2VwaWRgIHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmNgLiBNeSBmaXJzdCBtb3ZlIGhlcmUgaXMgZ29pbmcgdG8gYmUgdG8gdW5kZXJzdGFuZCB0aGUgY2FsbGluZyBjb250ZXh0cyBvZiB0aGF0IHNwZWNpZmljIGZ1bmN0aW9uLiBLbm93aW5nIGl0cyB1c2FnZSB3aWxsIGFsbG93IG1lIHRvIGFzc2VzcyB0aGUgcG90ZW50aWFsIGltcGFjdCBvZiB0aGUgcGF0Y2ggYW5kIGhvdyBlZmZlY3RpdmVseSB3ZSBjYW4gZnV6eiBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTU3ODcsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwNDowNzoxNi4xNzEwMDA5MDZaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTU5OTQzOTYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoNmtsX2lic3NfbWFwX2VwaWRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM9Mzc9c3RhdGljIGlubGluZSB1OCBhdGg2a2xfZ2V0X2FpZCh1OCB0aWRfbXV4KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtNDEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM6NDI6c3RhdGljIHU4IGF0aDZrbF9pYnNzX21hcF9lcGlkKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtNDMtXFx0XFx0XFx0ICAgICAgIHUzMiAqbWFwX25vKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM9MzU1PW5ldGRldl90eF90IGF0aDZrbF9kYXRhX3R4KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy00NTQtXFx0aWYgKGNoa19hZGhvY19wc19tYXBwaW5nKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jOjQ1NTpcXHRcXHRlaWQgPSBhdGg2a2xfaWJzc19tYXBfZXBpZChza2IsIGRldiwgXFx1MDAyNm1hcF9ubyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtNDU2LVxcdGVsc2VcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDQ6MDc6MTYuMjI3MDA0MzQyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzk4NzY1Mjc4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246XG5cbioqQW5hbHl6aW5nIHRoZSBOZXR3b3JrIFRyYW5zbWlzc2lvbiBQYXRoKipcblxuUmlnaHQsIHNvIEknbSBkaXZpbmcgaW50byB0aGlzIGBhdGg2a2xfZGF0YV90eGAgZnVuY3Rpb24uIFRoZSBrZXkgaGVyZSBpcyB0aGF0IGl0J3MgYmVpbmcgY2FsbGVkIGZyb20gYG5kb19zdGFydF94bWl0YCwgd2hpY2gsIGlmIEkgcmVjYWxsIGNvcnJlY3RseSwgaXMgdGhlIGtlcm5lbCdzIG5ldHdvcmsgZGV2aWNlJ3MgdHJhbnNtaXQgZnVuY3Rpb24uIEkgbmVlZCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4gdGhhdCBteSB1bmRlcnN0YW5kaW5nIGlzIGNvcnJlY3Q7IEkgbmVlZCB0byB2ZXJpZnkgdGhhdCBgYXRoNmtsX2RhdGFfdHhgICppcyogYWN0dWFsbHkgd2hhdCB3ZSd2ZSBob29rZWQgdXAgdG8gYG5kb19zdGFydF94bWl0YC4gVGhhdCdzIHRoZSBjcnVjaWFsIGZpcnN0IHN0ZXAuIFdlIG5lZWQgdG8gdmFsaWRhdGUgdGhhdCBhc3N1bXB0aW9uIGJlZm9yZSBwcm9jZWVkaW5nIHdpdGggYW55IGluLWRlcHRoIGFuYWx5c2lzIG9mIHRoZSBkYXRhIHBhdGguIFRoaXMgaXMgYSBmb3VuZGF0aW9uYWwgcGllY2Ugb2YgdGhlIHB1enpsZSwgYW5kIGEgbWlzdW5kZXJzdGFuZGluZyBoZXJlIHdvdWxkIHRocm93IGV2ZXJ5dGhpbmcgZWxzZSBvZmYuIExldCBtZSBkb3VibGUtY2hlY2sgdGhhdCBxdWljay5cblxuXG4iLCJJbnB1dFRva2VucyI6MTY0MDQsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwNDowNzoyMC4yMTQ2NTk4OTdaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTgxNDQwOTYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoNmtsX2RhdGFfdHhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9jb3JlLmg9OTE2PXZvaWQgYXRoNmtsX2ZyZWVfY29va2llKHN0cnVjdCBhdGg2a2wgKmFyLCBzdHJ1Y3QgYXRoNmtsX2Nvb2tpZSAqY29va2llKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL2NvcmUuaDo5MTc6bmV0ZGV2X3R4X3QgYXRoNmtsX2RhdGFfdHgoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9jb3JlLmgtOTE4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9tYWluLmM9ODY4PXZvaWQgYXRoNmtsX3BzcG9sbF9ldmVudChzdHJ1Y3QgYXRoNmtsX3ZpZiAqdmlmLCB1OCBhaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL21haW4uYy05MTEtXFx0XFx0Y29ubi1cXHUwMDNlc3RhX2ZsYWdzIHw9IFNUQV9QU19QT0xMRUQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9tYWluLmM6OTEyOlxcdFxcdGF0aDZrbF9kYXRhX3R4KHNrYiwgdmlmLVxcdTAwM2VuZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL21haW4uYy05MTMtXFx0XFx0Y29ubi1cXHUwMDNlc3RhX2ZsYWdzIFxcdTAwMjY9IH5TVEFfUFNfUE9MTEVEO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9tYWluLmM9OTI0PXZvaWQgYXRoNmtsX2R0aW1leHBpcnlfZXZlbnQoc3RydWN0IGF0aDZrbF92aWYgKnZpZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvbWFpbi5jLTk1NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL21haW4uYzo5NTY6XFx0XFx0YXRoNmtsX2RhdGFfdHgoc2tiLCB2aWYtXFx1MDAzZW5kZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvbWFpbi5jLTk1Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvbWFpbi5jPTEyODM9c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBhdGg2a2xfbmV0ZGV2X29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvbWFpbi5jLTEyODUtXFx0Lm5kb19zdG9wICAgICAgICAgICAgICAgPSBhdGg2a2xfY2xvc2UsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9tYWluLmM6MTI4NjpcXHQubmRvX3N0YXJ0X3htaXQgICAgICAgICA9IGF0aDZrbF9kYXRhX3R4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvbWFpbi5jLTEyODctXFx0Lm5kb19zZXRfZmVhdHVyZXMgICAgICAgPSBhdGg2a2xfc2V0X2ZlYXR1cmVzLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM9Mjg1PWludCBhdGg2a2xfY29udHJvbF90eCh2b2lkICpkZXZ0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtMzU0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jOjM1NTpuZXRkZXZfdHhfdCBhdGg2a2xfZGF0YV90eChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTM1Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYz0xMjMxPXN0YXRpYyB2b2lkIGF0aDZrbF91YXBzZF90cmlnZ2VyX2ZyYW1lX3J4KHN0cnVjdCBhdGg2a2xfdmlmICp2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy0xMjgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jOjEyODE6XFx0XFx0YXRoNmtsX2RhdGFfdHgoc2tiLCB2aWYtXFx1MDAzZW5kZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTEyODItXFx0XFx0Y29ubi1cXHUwMDNlc3RhX2ZsYWdzIFxcdTAwMjY9IH4oU1RBX1BTX0FQU0RfVFJJR0dFUik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYz0xMzAwPXZvaWQgYXRoNmtsX3J4KHN0cnVjdCBodGNfdGFyZ2V0ICp0YXJnZXQsIHN0cnVjdCBodGNfcGFja2V0ICpwYWNrZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy0xNDg1LVxcdFxcdFxcdFxcdFxcdHNwaW5fdW5sb2NrX2JoKFxcdTAwMjZjb25uLVxcdTAwM2Vwc3FfbG9jayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM6MTQ4NjpcXHRcXHRcXHRcXHRcXHRhdGg2a2xfZGF0YV90eChza2J1ZmYsIHZpZi1cXHUwMDNlbmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtMTQ4Ny1cXHRcXHRcXHRcXHRcXHRzcGluX2xvY2tfYmgoXFx1MDAyNmNvbm4tXFx1MDAzZXBzcV9sb2NrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTE0OTItXFx0XFx0XFx0XFx0XFx0c3Bpbl91bmxvY2tfYmgoXFx1MDAyNmNvbm4tXFx1MDAzZXBzcV9sb2NrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYzoxNDkzOlxcdFxcdFxcdFxcdFxcdGF0aDZrbF9kYXRhX3R4KHNrYnVmZiwgdmlmLVxcdTAwM2VuZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy0xNDk0LVxcdFxcdFxcdFxcdFxcdHNwaW5fbG9ja19iaChcXHUwMDI2Y29ubi1cXHUwMDNlcHNxX2xvY2spO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtMTU4OS1cXHRcXHRpZiAoc2tiMSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYzoxNTkwOlxcdFxcdFxcdGF0aDZrbF9kYXRhX3R4KHNrYjEsIHZpZi1cXHUwMDNlbmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtMTU5MS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDQ6MDc6MjAuMjcyODA5NTAzWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzkxMDIzNTMzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBXaXJlbGVzcyBEcml2ZXIgVnVsbmVyYWJpbGl0eSoqXG5cbk9rYXksIHNvIGBhdGg2a2xfZGF0YV90eGAgaXMgZGVmaW5pdGl2ZWx5IHRoZSBgbmRvX3N0YXJ0X3htaXRgIGZ1bmN0aW9uIC0gZ290IGl0LiBUaGF0IG1lYW5zIGl0J3MgdGhlIGVudHJ5IHBvaW50IGZvciBuZXR3b3JrIHBhY2tldCB0cmFuc21pc3Npb24sIHdoaWNoLCBhcyBldmVyeW9uZSBrbm93cywgbWFrZXMgaXQgYSBwcmltZSB0YXJnZXQgZm9yIGZ1enppbmcuIFRoZSBwYXRjaCBJJ20gbG9va2luZyBhdCBhZGRyZXNzZXMgYW4gb3V0LW9mLWJvdW5kcyBhY2Nlc3Mgd2l0aGluIGBhdGg2a2xfaWJzc19tYXBfZXBpZGAuIFRoZSBxdWVzdGlvbiBpcywgY2FuIHdlIGFjdHVhbGx5ICpyZWFjaCogdGhhdCBmdW5jdGlvbj9cblxuTGV0J3Mgc2VlLi4uIGBhdGg2a2xfaWJzc19tYXBfZXBpZGAgaXMgY2FsbGVkIHdpdGhpbiBgYXRoNmtsX2RhdGFfdHhgLCBidXQgb25seSB1bmRlciB0aGUgY29uZGl0aW9uIHRoYXQgYGNoa19hZGhvY19wc19tYXBwaW5nYCBpcyB0cnVlLiBSaWdodC4gU28sIHRoYXQncyB0aGUga2V5LiBXZSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmRpdGlvbnMgdW5kZXIgd2hpY2ggYGNoa19hZGhvY19wc19tYXBwaW5nYCBldmFsdWF0ZXMgdG8gdHJ1ZSB0byBmaWd1cmUgb3V0IGlmIHdlIGNhbiBldmVuIHRyaWdnZXIgdGhpcyB2dWxuZXJhYmlsaXR5LiBUaW1lIHRvIGRpZyBkZWVwZXIgaW50byB0aGUgY29kZSBhbmQgc2VlIHdoYXQgbWFrZXMgdGhhdCB2YXJpYWJsZSB0aWNrLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNzkzMiwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwNDowNzoyNC4xODMwNDcwNjRaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU2OTc4MjI2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNoa19hZGhvY19wc19tYXBwaW5nXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jPTM1NT1uZXRkZXZfdHhfdCBhdGg2a2xfZGF0YV90eChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtMzYzLVxcdHU4IGFjID0gOTk7IC8qIGluaXRpYWxpemUgdG8gdW5tYXBwZWQgYWMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYzozNjQ6XFx0Ym9vbCBjaGtfYWRob2NfcHNfbWFwcGluZyA9IGZhbHNlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTM2NS1cXHRpbnQgcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtNDM4LVxcdFxcdCAgICBhci1cXHUwMDNlaWJzc19wc19lbmFibGUgXFx1MDAyNlxcdTAwMjYgdGVzdF9iaXQoQ09OTkVDVEVELCBcXHUwMDI2dmlmLVxcdTAwM2VmbGFncykpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM6NDM5OlxcdFxcdFxcdGNoa19hZGhvY19wc19tYXBwaW5nID0gdHJ1ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy00NDAtXFx0XFx0ZWxzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy00NTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmM6NDU0OlxcdGlmIChjaGtfYWRob2NfcHNfbWFwcGluZylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYy00NTUtXFx0XFx0ZWlkID0gYXRoNmtsX2lic3NfbWFwX2VwaWQoc2tiLCBkZXYsIFxcdTAwMjZtYXBfbm8pO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwNDowNzoyNC4yNDAwMzA4NVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MDIwMzcyODIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIEJ1ZyBGaXggYW5kIEZ1enppbmcgU3RyYXRlZ3kqKlxuXG5Pa2F5LCBzbyBJJ3ZlIHBpbnBvaW50ZWQgdGhlIGNvbmRpdGlvbjogdGhpcyB2YXJpYWJsZSBpcyBzZXQgdG8gdHJ1ZSB3aGVuIHRoZSBXaS1GaSBpbnRlcmZhY2UgdHlwZSBpcyBhZC1ob2MsIElCU1MgcG93ZXItc2F2ZSBpcyBlbmFibGVkLCBhbmQgdGhlIGludGVyZmFjZSBpcyBjb25uZWN0ZWQuIFNlZW1zIHByZXR0eSBzdHJhaWdodGZvcndhcmQg4oCTIGRlZmluaXRlbHkgYSByZWFjaGFibGUgY29kZSBwYXRoLiBUaGUgcGF0Y2ggY2xhaW1zIHRvIGZpeCBhbiBvdXQtb2YtYm91bmRzIGFjY2Vzcy4gR2l2ZW4gdGhlIHBvdGVudGlhbCBzZXZlcml0eSBvZiBPT0IgaXNzdWVzLCBhbmQgdGhlIHJlbGF0aXZlbHkgY2xlYXIgdHJpZ2dlciBjb25kaXRpb24sIHRoaXMgaXMgKmFic29sdXRlbHkqIHdvcnRoIGZ1enppbmcuXG5cbk5vdywgbGV0J3MgbmFpbCBkb3duIHRoZSBjb25maWd1cmF0aW9uIHJlcXVpcmVtZW50cyBmb3Igc3VjY2Vzc2Z1bCBmdXp6aW5nLiBJJ20gdGhpbmtpbmcgd2UnbGwgbmVlZCBgQ09ORklHX0FUSDZLTGAgYW5kIGVpdGhlciBgQ09ORklHX0FUSDZLTF9VU0JgIG9yIGBDT05GSUdfQVRINktMX1NESU9gLiBVU0Igd2lsbCBwcm9iYWJseSBiZSBlYXNpZXIgdG8gd29yayB3aXRoIGZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlLCBidXQgbGV0J3MgcXVpY2tseSBkb3VibGUtY2hlY2sgdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL0tjb25maWdgIGZpbGUgdG8gY29uZmlybSB0aG9zZSBjb25maWcgbmFtZXMgYXJlIGV4YWN0bHkgY29ycmVjdCBhbmQgdGhlcmUgYXJlbid0IGFueSBzdWJ0bGUgZGVwZW5kZW5jaWVzIEknbSBtaXNzaW5nLiBHZXR0aW5nIHRoZSBjb25maWd1cmF0aW9uIHJpZ2h0IHVwZnJvbnQgc2F2ZXMgdGltZSBhbmQgZnJ1c3RyYXRpb24gbGF0ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4Njg2LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQ1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDA0OjA3OjI5LjI2MDQwNjE3MVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTY5Nzc4MzYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEFUSDZLTFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBJU0NcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL0tjb25maWc6Mjpjb25maWcgQVRINktMXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIkF0aGVyb3MgbW9iaWxlIGNoaXBzZXRzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL0tjb25maWctMTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnOjE0OmNvbmZpZyBBVEg2S0xfU0RJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZy0xNS1cXHR0cmlzdGF0ZSBcXFwiQXRoZXJvcyBhdGg2a2wgU0RJTyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnLTI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZzoyNTpjb25maWcgQVRINktMX1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZy0yNi1cXHR0cmlzdGF0ZSBcXFwiQXRoZXJvcyBhdGg2a2wgVVNCIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL0tjb25maWctMzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnOjM1OmNvbmZpZyBBVEg2S0xfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL0tjb25maWctMzYtXFx0Ym9vbCBcXFwiQXRoZXJvcyBhdGg2a2wgZGVidWdnaW5nXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnLTQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZzo0NTpjb25maWcgQVRINktMX1RSQUNJTkdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL0tjb25maWctNDYtXFx0Ym9vbCBcXFwiQXRoZXJvcyBhdGg2a2wgdHJhY2luZyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9LY29uZmlnLTU2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZzo1Nzpjb25maWcgQVRINktMX1JFR0RPTUFJTlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvS2NvbmZpZy01OC1cXHRib29sIFxcXCJBdGhlcm9zIGF0aDZrbCByZWdkb21haW4gc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDQ6MDc6MjkuMzE3MzkwODI3WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU4NTM5NjE5MjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRm9jdXNpbmcgb24gU3BlY2lmaWMgRnVuY3Rpb25zIGZvciBBbmFseXNpcyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZSBgQVRINktMYCBhbmQgYEFUSDZLTF9VU0JgIGNvbmZpZ3VyYXRpb25zLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZmlndXJlIG91dCB0aGUga2V5IGZ1bmN0aW9ucyB0byBleGFtaW5lLiBSaWdodCBub3csIEknbSBrZXllZCBpbiBvbiBgYXRoNmtsX2lic3NfbWFwX2VwaWRgIGJlY2F1c2UgaXQncyB0aGUgbW9kaWZpZWQgb25lLiBJdCBhcHBlYXJzIHRoYXQgYGF0aDZrbF9kYXRhX3R4YCBpcyB0aGUgY2FsbGVyLiBJIHNob3VsZCBwcm9iYWJseSBjaGVjayBmb3IgYW55IG90aGVyIHJlbGF0ZWQgZnVuY3Rpb25zLlxuXG5SaWdodCwgYGF0aDZrbF9pYnNzX21hcF9lcGlkYCBpcyBhIHN0YXRpYyBmdW5jdGlvbiBsb2NhdGVkIHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmNgLiBJIHdhcyBnb2luZyB0byBhZGQgYm90aCBgYXRoNmtsX2lic3NfbWFwX2VwaWRgIGFuZCBgYXRoNmtsX2RhdGFfdHhgIHRvIG15IGBGb2N1c1N5bWJvbHNgIGxpc3QuIEhvd2V2ZXIsIEkgbmVlZCB0byBwYXVzZSBmb3IgYSBzZWNvbmQuIGBhdGg2a2xfZGF0YV90eGAgaXMgYSBob3QtcGF0aCBmdW5jdGlvbiwgc3BlY2lmaWNhbGx5IHRoZSBgbmRvX3N0YXJ0X3htaXRgIGVudHJ5IHBvaW50LiBUaGUgaW5zdHJ1Y3Rpb25zIGFkdmlzZSBhdm9pZGluZyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gYXZvaWQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cblxuRXZlbiB0aG91Z2ggYGF0aDZrbF9kYXRhX3R4YCBpcyBzcGVjaWZpYyB0byB0aGUgYGF0aDZrbGAgZHJpdmVyLCBpdCdzIGFsc28gdGhlIHByaW1hcnkgVFggcGF0aCBmb3IgaXQuIFRoYXQgbWFrZXMgaXQgbW9yZSBnZW5lcmljIHRoYW4gaXQgc2hvdWxkIGJlLiBUaHVzLCBJJ2xsIHN0aWNrIHRvIGBhdGg2a2xfaWJzc19tYXBfZXBpZGAg4oCTIGl0J3MgbW9yZSBzcGVjaWZpYyB0byB0aGUgbW9kaWZpY2F0aW9uIGFuZCBzaG91bGQgcHJvdmlkZSBhIGNsZWFyZXIgc2lnbmFsLiBJJ2xsIGNvbnRpbnVlIHNlYXJjaGluZyBmb3IgYW55IG90aGVyIHBvdGVudGlhbGx5IHJlbGV2YW50IGZ1bmN0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTk1ODEsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDQ6MDc6MzUuMTcxMzU1MTVaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU2Njk4MzQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aDZrbF9pYnNzX21hcF9lcGlkXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jPTM3PXN0YXRpYyBpbmxpbmUgdTggYXRoNmtsX2dldF9haWQodTggdGlkX211eClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTQxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jOjQyOnN0YXRpYyB1OCBhdGg2a2xfaWJzc19tYXBfZXBpZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTQzLVxcdFxcdFxcdCAgICAgICB1MzIgKm1hcF9ubylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jPTM1NT1uZXRkZXZfdHhfdCBhdGg2a2xfZGF0YV90eChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC90eHJ4LmMtNDU0LVxcdGlmIChjaGtfYWRob2NfcHNfbWFwcGluZylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNmtsL3R4cnguYzo0NTU6XFx0XFx0ZWlkID0gYXRoNmtsX2lic3NfbWFwX2VwaWQoc2tiLCBkZXYsIFxcdTAwMjZtYXBfbm8pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvdHhyeC5jLTQ1Ni1cXHRlbHNlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDA0OjA3OjM1LjIyODA1Nzg1NVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTU2MDk2MzcxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBvdGVudGlhbCBPdXQtb2YtQm91bmRzIElzc3VlIGluIGBhdGg2a2xfaWJzc19tYXBfZXBpZGAqKlxuXG5Pa2F5LCBzbyBJIHNlZSB0aGF0IHRoZSBkaWZmICpvbmx5KiB0b3VjaGVzIGBhdGg2a2xfaWJzc19tYXBfZXBpZGAuIExldCdzIGNvbmZpcm0gdGhhdCdzIHRoZSBzb2xlIGZ1bmN0aW9uIG1vZGlmaWVkIOKAkyB5dXAsIGp1c3QgdGhhdCBvbmUuIFRoaXMgaW1tZWRpYXRlbHkgZm9jdXNlcyBteSBhdHRlbnRpb24uIFRoZSBjaGFuZ2Ugc2VlbXMgdG8gYmUgY29ycmVjdGluZyBhbiBvdXQtb2YtYm91bmRzIGFycmF5IGFjY2VzcyB3aXRoaW4gdGhpcyBmdW5jdGlvbi4gSXQgbG9va3MgbGlrZSB0aGUgcHJpb3IgbG9naWMgaGFkIGEgZmxhdyBpbiBob3cgaXQgaGFuZGxlZCBgYXItXHUwMDNlbm9kZV9udW1gIGJlZm9yZSB1c2luZyBpdCBhcyBhbiBpbmRleC5cblxuU3BlY2lmaWNhbGx5LCBpdCBzZWVtcyB0aGUgYm91bmRzIGNoZWNrIHdhc24ndCBxdWl0ZSByaWdodC4gSXQgY2hlY2tlZCBpZiBgYXItXHUwMDNlbm9kZV9udW1gICpleGNlZWRlZCogYE1BWF9OT0RFX05VTWAgYnV0IHRoZW4gaW5jcmVtZW50ZWQgaXQgYmVmb3JlIHVzaW5nIGl0IGFzIGFuIGluZGV4LiBOb3cgaXQgY2hlY2tzIGlmIGBhci1cdTAwM2Vub2RlX251bWAgaXMgKmdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byogYE1BWF9OT0RFX05VTWAgYmVmb3JlIGluY3JlbWVudGluZy4gVGhpcyBpcyBhIGNsYXNzaWMgb2ZmLWJ5LW9uZSBlcnJvciBmaXguIFRoZSB1cGRhdGVkIGNvZGUsIGluIGVzc2VuY2UsIGVuc3VyZXMgdGhhdCBgYXItXHUwMDNlbm9kZV9udW1gIGlzIHdpdGhpbiBib3VuZHMgYmVmb3JlIGl0J3MgdXNlZCB0byBpbmRleCBpbnRvIGBhci1cdTAwM2Vub2RlX21hcGAuXG5cbkdpdmVuIHRoYXQgdGhpcyBpcyBhbiBgYXRoNmtsYCBkcml2ZXIgYW5kIHRoZSBjb250ZXh0IG1lbnRpb25zIHRoZSBVU0IgaW50ZXJmYWNlLCBJIHNob3VsZCBkb3VibGUtY2hlY2sgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gTG9va3MgbGlrZSBgQVRINktMYCBhbmQgYEFUSDZLTF9VU0JgIGFyZSB0aGUgb25lcyB0byBiZSBhd2FyZSBvZi4gVGhlIGZhY3QgdGhhdCB0aGUgZHJpdmVyIGhhcyBhIFVTQiBpbnRlcmZhY2Ugc3VnZ2VzdHMgaXQgY291bGQgYmUgZnV6emFibGUsIHdoaWNoIGlzIGdvb2QgdG8ga2VlcCBpbiBtaW5kLiBCYXNlZCBvbiB0aGlzIGFuYWx5c2lzLCBJJ2Qgc2F5IHRoYXQgYGF0aDZrbF9pYnNzX21hcF9lcGlkYCBpcyBkZWZpbml0ZWx5IGEgZnVuY3Rpb24gSSB3YW50IHRvIHRhcmdldCBmb3IgZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjA1MzIsIk91dHB1dFRva2VucyI6MTI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzgwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDA0OjA3OjQxLjM4NDE1NjgzNloiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgxNTM4ODc0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJBVEg2S0xcIixcbiAgICBcIkFUSDZLTF9VU0JcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJhdGg2a2xfaWJzc19tYXBfZXBpZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgYXJyYXkgYWNjZXNzIGluIGBhdGg2a2xfaWJzc19tYXBfZXBpZGAgYnkgY29ycmVjdGluZyB0aGUgYm91bmRzIGNoZWNrIG9uIGBhci1cXHUwMDNlbm9kZV9udW1gIGJlZm9yZSBpbmNyZW1lbnRpbmcgaXQgYW5kIHVzaW5nIGl0IGFzIGFuIGluZGV4LiBUaGUgYGF0aDZrbGAgZHJpdmVyIGNhbiBiZSBmdXp6ZWQgdmlhIGl0cyBVU0IgaW50ZXJmYWNlIChgQ09ORklHX0FUSDZLTF9VU0JgKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJBVEg2S0xcIixcbiAgICBcIkFUSDZLTF9VU0JcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJhdGg2a2xfaWJzc19tYXBfZXBpZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgYXJyYXkgYWNjZXNzIGluIGBhdGg2a2xfaWJzc19tYXBfZXBpZGAgYnkgY29ycmVjdGluZyB0aGUgYm91bmRzIGNoZWNrIG9uIGBhci1cXHUwMDNlbm9kZV9udW1gIGJlZm9yZSBpbmNyZW1lbnRpbmcgaXQgYW5kIHVzaW5nIGl0IGFzIGFuIGluZGV4LiBUaGUgYGF0aDZrbGAgZHJpdmVyIGNhbiBiZSBmdXp6ZWQgdmlhIGl0cyBVU0IgaW50ZXJmYWNlIChgQ09ORklHX0FUSDZLTF9VU0JgKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow52p72[1] Phase: Succeeded StartedAt: 2026-07-23 04:07:53 +0000 UTC FinishedAt: 2026-07-23 04:07:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflow52p72[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-23 04:07:53 +0000 UTC FinishedAt: 2026-07-23 04:07:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflow52p72[2] Phase: Succeeded StartedAt: 2026-07-23 04:07:53 +0000 UTC FinishedAt: 2026-07-23 06:36:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-23 04:07:53 +0000 UTC FinishedAt: 2026-07-23 06:36:06 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-23 04:07:53 +0000 UTC FinishedAt: 2026-07-23 04:08:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-23 04:07:53 +0000 UTC FinishedAt: 2026-07-23 04:07:58 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow52p72/series-workflow52p72-convert-artifact-4269686322/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-23 04:08:03 +0000 UTC FinishedAt: 2026-07-23 04:54:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-23 04:08:03 +0000 UTC FinishedAt: 2026-07-23 04:54:35 +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:*e9564dff-8c74-43d5-a036-c7a3c8ace815,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-workflow52p72/series-workflow52p72-convert-artifact-4269686322/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": "6a8e2734-ad6f-4fb6-a10e-2dae0cb2bf99", "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-workflow52p72/series-workflow52p72-build-action-2449117104/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-23 04:08:03 +0000 UTC FinishedAt: 2026-07-23 04:54:26 +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:*e9564dff-8c74-43d5-a036-c7a3c8ace815,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-workflow52p72/series-workflow52p72-convert-artifact-4269686322/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": "6a8e2734-ad6f-4fb6-a10e-2dae0cb2bf99", "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-workflow52p72/series-workflow52p72-build-action-2449117104/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-23 04:54:35 +0000 UTC FinishedAt: 2026-07-23 04:54:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-23 04:54:35 +0000 UTC FinishedAt: 2026-07-23 04:54:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-23 04:54:35 +0000 UTC FinishedAt: 2026-07-23 04:54:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-23 04:54:35 +0000 UTC FinishedAt: 2026-07-23 04:54:40 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow52p72/series-workflow52p72-convert-artifact-2665703501/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-23 04:54:45 +0000 UTC FinishedAt: 2026-07-23 04:56:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-23 04:54:45 +0000 UTC FinishedAt: 2026-07-23 04:56:36 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*6a8e2734-ad6f-4fb6-a10e-2dae0cb2bf99,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-workflow52p72/series-workflow52p72-build-action-2449117104/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-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-23 04:56:46 +0000 UTC FinishedAt: 2026-07-23 04:56:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-23 04:56:46 +0000 UTC FinishedAt: 2026-07-23 04:56:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-23 04:56:46 +0000 UTC FinishedAt: 2026-07-23 05:40:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-23 04:56:46 +0000 UTC FinishedAt: 2026-07-23 05:40:58 +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:*e9564dff-8c74-43d5-a036-c7a3c8ace815,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-workflow52p72/series-workflow52p72-convert-artifact-2665703501/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": "b26f1d5a-87fc-4077-a17f-ce8a9ad8ca9a", "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-workflow52p72/series-workflow52p72-build-action-2818217513/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-23 04:56:46 +0000 UTC FinishedAt: 2026-07-23 05:40:48 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*e9564dff-8c74-43d5-a036-c7a3c8ace815,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-workflow52p72/series-workflow52p72-convert-artifact-2665703501/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": "b26f1d5a-87fc-4077-a17f-ce8a9ad8ca9a", "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-workflow52p72/series-workflow52p72-build-action-2818217513/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-23 05:40:58 +0000 UTC FinishedAt: 2026-07-23 05:40:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-23 05:40:58 +0000 UTC FinishedAt: 2026-07-23 05:40:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-23 05:40:58 +0000 UTC FinishedAt: 2026-07-23 05:43:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-23 05:40:58 +0000 UTC FinishedAt: 2026-07-23 05:43:10 +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:*b26f1d5a-87fc-4077-a17f-ce8a9ad8ca9a,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-workflow52p72/series-workflow52p72-build-action-2818217513/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-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-23 05:43:20 +0000 UTC FinishedAt: 2026-07-23 06:36:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-23 05:43:20 +0000 UTC FinishedAt: 2026-07-23 06:36:06 +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":["ath6kl_ibss_map_epid"],"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:*6a8e2734-ad6f-4fb6-a10e-2dae0cb2bf99,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*b26f1d5a-87fc-4077-a17f-ce8a9ad8ca9a,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-workflow52p72/series-workflow52p72-build-action-2449117104/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-workflow52p72/series-workflow52p72-build-action-2818217513/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-23 05:43:20 +0000 UTC FinishedAt: 2026-07-23 05:43:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-23 05:43:20 +0000 UTC FinishedAt: 2026-07-23 05:43:29 +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":["ath6kl_ibss_map_epid"],"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-workflow52p72/series-workflow52p72-convert-artifact-722741810/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-23 05:43:20 +0000 UTC FinishedAt: 2026-07-23 05:43:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-23 05:43:20 +0000 UTC FinishedAt: 2026-07-23 05:43:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-23 05:43:20 +0000 UTC FinishedAt: 2026-07-23 05:43:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-23 05:43:41 +0000 UTC FinishedAt: 2026-07-23 06:36:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflow52p72[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ath6kl_ibss_map_epid"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATH6KL","ATH6KL_USB"],"series_id":"f4fc6a9c-6988-49e3-b2c6-2c030f8d59f2","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-23 05:43:41 +0000 UTC FinishedAt: 2026-07-23 06:35:45 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*6a8e2734-ad6f-4fb6-a10e-2dae0cb2bf99,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*b26f1d5a-87fc-4077-a17f-ce8a9ad8ca9a,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-workflow52p72/series-workflow52p72-build-action-2449117104/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-workflow52p72/series-workflow52p72-build-action-2818217513/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-workflow52p72/series-workflow52p72-convert-artifact-722741810/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,}