Name: series-workflowb4lql Phase: Running StartedAt: 2026-06-29 08:50:25 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowb4lql[0] Phase: Running StartedAt: 2026-06-29 08:50:25 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowb4lql[0].run-triage Phase: Running StartedAt: 2026-06-29 08:50:25 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowb4lql[0].run-triage(0) Phase: Running StartedAt: 2026-06-29 08:50:25 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "dc59e4fea9d83f03bad6bddf3fa2e52491777482", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT7921U" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "dc59e4fea9d83f03bad6bddf3fa2e52491777482", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT7921U" ], "series_id": "4262e115-eee1-484c-a59a-15e477bcc3b6" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "__mt7921_mcu_regd_update", "mt7921_mcu_regd_update", "mt7921_regd_set_6ghz_power_type" ], "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+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjAwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+N208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01UNzkyMVUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtfX210NzkyMV9tY3VfcmVnZF91cGRhdGUmIzM0OywKICAgICYjMzQ7bXQ3OTIxX21jdV9yZWdkX3VwZGF0ZSYjMzQ7LAogICAgJiMzNDttdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgZGVhZGxvY2sgaW4gdGhlIE1UNzkyMSB3aXJlbGVzcyBkcml2ZXIuIGBtdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlYCBpcyBjYWxsZWQgZnJvbSBgbXQ3OTIxX21hY19zdGFfYWRkYCBhbmQgYG10NzkyMV9tYWNfc3RhX3JlbW92ZWAsIHdoaWNoIGFyZSBpbnZva2VkIGJ5IG1hYzgwMjExIHdpdGggdGhlIGBkZXYtXHUwMDNlbXV0ZXhgIGFscmVhZHkgaGVsZC4gUHJldmlvdXNseSwgaXQgY2FsbGVkIGBtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCwgd2hpY2ggYXR0ZW1wdGVkIHRvIGFjcXVpcmUgdGhlIHNhbWUgbXV0ZXgsIGxlYWRpbmcgdG8gYSBkZWFkbG9jay4gVGhlIHBhdGNoIGludHJvZHVjZXMgYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAgdG8gYmUgY2FsbGVkIHdoZW4gdGhlIG11dGV4IGlzIGFscmVhZHkgaGVsZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgZml4IGZvciBhIGRlYWRsb2NrIGluIHJlYWNoYWJsZSBkcml2ZXIgY29kZS4gVGhlIGRyaXZlciBjYW4gYmUgcmVhY2hlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIHRoZSBVU0IgaW50ZXJmYWNlIChgQ09ORklHX01UNzkyMVVgKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowMDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDY1NjQ4MzQxOWVmNmNlODg2OGJkMDFkOTBlMmYzYjRjNjA5NmZiNDlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1biAyOSAwOTowMDoxMCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmNcbmluZGV4IDM0ODAyMDVkNWZiOTFiLi42OGEwNTk1MDRlODM4MiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jXG5AQCAtODAyLDcgJiM0Mzs4MDIsNyBAQCBtdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlKHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsIGJvb2wgaXNfYWRkKVxuIFxuIG91dDpcbiBcdGlmICh2aWYtXHUwMDNlYnNzX2NvbmYuY2hhbnJlcS5vcGVyLmNoYW4tXHUwMDNlYmFuZCA9PSBOTDgwMjExX0JBTkRfNkdIWilcbi1cdFx0bXQ3OTIxX21jdV9yZWdkX3VwZGF0ZShkZXYsIGRldi1cdTAwM2VtdDc2LmFscGhhMiwgZGV2LVx1MDAzZWNvdW50cnlfaWVfZW52KTtcbiYjNDM7XHRcdF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZShkZXYsIGRldi1cdTAwM2VtdDc2LmFscGhhMiwgZGV2LVx1MDAzZWNvdW50cnlfaWVfZW52KTtcbiB9XG4gXG4gaW50IG10NzkyMV9tYWNfc3RhX2FkZChzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jXG5pbmRleCBjMGUyYjQ4YTUwYmYwOS4uNDcyMjAwN2FiYWZkNWMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuY1xuQEAgLTcxLDM2ICYjNDM7NzEsNDQgQEAgbXQ3OTIxX3JlZ2RfY2hhbm5lbF91cGRhdGUoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IG10NzkyeF9kZXYgKmRldilcbiBcdH1cbiB9XG4gXG4taW50IG10NzkyMV9tY3VfcmVnZF91cGRhdGUoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdTggKmFscGhhMixcbi1cdFx0XHQgICBlbnVtIGVudmlyb25tZW50X2NhcCBjb3VudHJ5X2llX2VudilcbiYjNDM7LyogSW50ZXJuYWwgdmVyc2lvbiB0aGF0IGFzc3VtZXMgbXV0ZXggaXMgYWxyZWFkeSBoZWxkIGJ5IGNhbGxlciAqL1xuJiM0MztpbnQgX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHU4ICphbHBoYTIsXG4mIzQzO1x0XHRcdCAgICAgZW51bSBlbnZpcm9ubWVudF9jYXAgY291bnRyeV9pZV9lbnYpXG4ge1xuIFx0c3RydWN0IG10NzZfZGV2ICptZGV2ID0gXHUwMDI2ZGV2LVx1MDAzZW10NzY7XG4gXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyA9IG1kZXYtXHUwMDNlaHc7XG4gXHRzdHJ1Y3Qgd2lwaHkgKndpcGh5ID0gaHctXHUwMDNld2lwaHk7XG4gXHRpbnQgcmV0ID0gMDtcbiBcbi1cdGRldi1cdTAwM2VyZWdkX2luX3Byb2dyZXNzID0gdHJ1ZTtcbi1cbi1cdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG4gXHRpZiAoIWRldi1cdTAwM2VyZWdkX2NoYW5nZSlcbi1cdFx0Z290byBlcnI7XG4mIzQzO1x0XHRyZXR1cm4gMDtcbiBcbiBcdHJldCA9IG10NzkyMV9tY3Vfc2V0X2NsYyhkZXYsIGFscGhhMiwgY291bnRyeV9pZV9lbnYpO1xuIFx0aWYgKHJldCBcdTAwM2MgMClcbi1cdFx0Z290byBlcnI7XG4mIzQzO1x0XHRyZXR1cm4gcmV0O1xuIFxuIFx0bXQ3OTIxX3JlZ2RfY2hhbm5lbF91cGRhdGUod2lwaHksIGRldik7XG4gXG4gXHRyZXQgPSBtdDc2X2Nvbm5hY19tY3Vfc2V0X2NoYW5uZWxfZG9tYWluKGh3LVx1MDAzZXByaXYpO1xuIFx0aWYgKHJldCBcdTAwM2MgMClcbi1cdFx0Z290byBlcnI7XG4mIzQzO1x0XHRyZXR1cm4gcmV0O1xuIFxuIFx0cmV0ID0gbXQ3OTIxX3NldF90eF9zYXJfcHdyKGh3LCBOVUxMKTtcbi1cdGlmIChyZXQgXHUwMDNjIDApXG4tXHRcdGdvdG8gZXJyO1xuIFxuLWVycjpcbiYjNDM7XHRyZXR1cm4gcmV0O1xuJiM0Mzt9XG4mIzQzO1xuJiM0MztpbnQgbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB1OCAqYWxwaGEyLFxuJiM0MztcdFx0XHQgICBlbnVtIGVudmlyb25tZW50X2NhcCBjb3VudHJ5X2llX2VudilcbiYjNDM7e1xuJiM0MztcdGludCByZXQgPSAwO1xuJiM0MztcbiYjNDM7XHRkZXYtXHUwMDNlcmVnZF9pbl9wcm9ncmVzcyA9IHRydWU7XG4mIzQzO1xuJiM0MztcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG4mIzQzO1x0cmV0ID0gX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlKGRldiwgYWxwaGEyLCBjb3VudHJ5X2llX2Vudik7XG4gXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xuJiM0MztcbiBcdGRldi1cdTAwM2VyZWdkX2NoYW5nZSA9IGZhbHNlO1xuIFx0ZGV2LVx1MDAzZXJlZ2RfaW5fcHJvZ3Jlc3MgPSBmYWxzZTtcbiBcdHdha2VfdXAoXHUwMDI2ZGV2LVx1MDAzZXdhaXQpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuaFxuaW5kZXggNTcxZjMxNjI5ZTllMDEuLjViMjRkMDkwMmMzNjljIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5oXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmhcbkBAIC0xMCw2ICYjNDM7MTAsOCBAQCBzdHJ1Y3QgcmVndWxhdG9yeV9yZXF1ZXN0O1xuIFxuIGludCBtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHU4ICphbHBoYTIsXG4gXHRcdFx0ICAgZW51bSBlbnZpcm9ubWVudF9jYXAgY291bnRyeV9pZV9lbnYpO1xuJiM0MztpbnQgX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHU4ICphbHBoYTIsXG4mIzQzO1x0XHRcdCAgICAgZW51bSBlbnZpcm9ubWVudF9jYXAgY291bnRyeV9pZV9lbnYpO1xuIHZvaWQgbXQ3OTIxX3JlZ2Rfbm90aWZpZXIoc3RydWN0IHdpcGh5ICp3aXBoeSxcbiBcdFx0XHQgIHN0cnVjdCByZWd1bGF0b3J5X3JlcXVlc3QgKnJlcXVlc3QpO1xuIGJvb2wgbXQ3OTIxX3JlZ2RfY2xjX3N1cHBvcnRlZChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowMDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT43bTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNVDc5MjFVJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7X19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlJiMzNDssCiAgICAmIzM0O210NzkyMV9tY3VfcmVnZF91cGRhdGUmIzM0OywKICAgICYjMzQ7bXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGRlYWRsb2NrIGluIHRoZSBNVDc5MjEgd2lyZWxlc3MgZHJpdmVyLiBgbXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZWAgaXMgY2FsbGVkIGZyb20gYG10NzkyMV9tYWNfc3RhX2FkZGAgYW5kIGBtdDc5MjFfbWFjX3N0YV9yZW1vdmVgLCB3aGljaCBhcmUgaW52b2tlZCBieSBtYWM4MDIxMSB3aXRoIHRoZSBgZGV2LVx1MDAzZW11dGV4YCBhbHJlYWR5IGhlbGQuIFByZXZpb3VzbHksIGl0IGNhbGxlZCBgbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAsIHdoaWNoIGF0dGVtcHRlZCB0byBhY3F1aXJlIHRoZSBzYW1lIG11dGV4LCBsZWFkaW5nIHRvIGEgZGVhZGxvY2suIFRoZSBwYXRjaCBpbnRyb2R1Y2VzIGBfX210NzkyMV9tY3VfcmVnZF91cGRhdGVgIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBtdXRleCBpcyBhbHJlYWR5IGhlbGQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGZpeCBmb3IgYSBkZWFkbG9jayBpbiByZWFjaGFibGUgZHJpdmVyIGNvZGUuIFRoZSBkcml2ZXIgY2FuIGJlIHJlYWNoZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSB0aGUgVVNCIGludGVyZmFjZSAoYENPTkZJR19NVDc5MjFVYCkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDY1NjQ4MzQxOWVmNmNlODg2OGJkMDFkOTBlMmYzYjRjNjA5NmZiNDkKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEp1biAyOSAwOTowMDoxMCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYwppbmRleCAzNDgwMjA1ZDVmYjkxYi4uNjhhMDU5NTA0ZTgzODIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMKQEAgLTgwMiw3ICYjNDM7ODAyLDcgQEAgbXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZShzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLCBib29sIGlzX2FkZCkKIAogb3V0OgogCWlmICh2aWYtJmd0O2Jzc19jb25mLmNoYW5yZXEub3Blci5jaGFuLSZndDtiYW5kID09IE5MODAyMTFfQkFORF82R0haKQotCQltdDc5MjFfbWN1X3JlZ2RfdXBkYXRlKGRldiwgZGV2LSZndDttdDc2LmFscGhhMiwgZGV2LSZndDtjb3VudHJ5X2llX2Vudik7CiYjNDM7CQlfX210NzkyMV9tY3VfcmVnZF91cGRhdGUoZGV2LCBkZXYtJmd0O210NzYuYWxwaGEyLCBkZXYtJmd0O2NvdW50cnlfaWVfZW52KTsKIH0KIAogaW50IG10NzkyMV9tYWNfc3RhX2FkZChzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmMKaW5kZXggYzBlMmI0OGE1MGJmMDkuLjQ3MjIwMDdhYmFmZDVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jCkBAIC03MSwzNiAmIzQzOzcxLDQ0IEBAIG10NzkyMV9yZWdkX2NoYW5uZWxfdXBkYXRlKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpCiAJfQogfQogCi1pbnQgbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB1OCAqYWxwaGEyLAotCQkJICAgZW51bSBlbnZpcm9ubWVudF9jYXAgY291bnRyeV9pZV9lbnYpCiYjNDM7LyogSW50ZXJuYWwgdmVyc2lvbiB0aGF0IGFzc3VtZXMgbXV0ZXggaXMgYWxyZWFkeSBoZWxkIGJ5IGNhbGxlciAqLwomIzQzO2ludCBfX210NzkyMV9tY3VfcmVnZF91cGRhdGUoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdTggKmFscGhhMiwKJiM0MzsJCQkgICAgIGVudW0gZW52aXJvbm1lbnRfY2FwIGNvdW50cnlfaWVfZW52KQogewogCXN0cnVjdCBtdDc2X2RldiAqbWRldiA9ICZhbXA7ZGV2LSZndDttdDc2OwogCXN0cnVjdCBpZWVlODAyMTFfaHcgKmh3ID0gbWRldi0mZ3Q7aHc7CiAJc3RydWN0IHdpcGh5ICp3aXBoeSA9IGh3LSZndDt3aXBoeTsKIAlpbnQgcmV0ID0gMDsKIAotCWRldi0mZ3Q7cmVnZF9pbl9wcm9ncmVzcyA9IHRydWU7Ci0KLQltdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpOwogCWlmICghZGV2LSZndDtyZWdkX2NoYW5nZSkKLQkJZ290byBlcnI7CiYjNDM7CQlyZXR1cm4gMDsKIAogCXJldCA9IG10NzkyMV9tY3Vfc2V0X2NsYyhkZXYsIGFscGhhMiwgY291bnRyeV9pZV9lbnYpOwogCWlmIChyZXQgJmx0OyAwKQotCQlnb3RvIGVycjsKJiM0MzsJCXJldHVybiByZXQ7CiAKIAltdDc5MjFfcmVnZF9jaGFubmVsX3VwZGF0ZSh3aXBoeSwgZGV2KTsKIAogCXJldCA9IG10NzZfY29ubmFjX21jdV9zZXRfY2hhbm5lbF9kb21haW4oaHctJmd0O3ByaXYpOwogCWlmIChyZXQgJmx0OyAwKQotCQlnb3RvIGVycjsKJiM0MzsJCXJldHVybiByZXQ7CiAKIAlyZXQgPSBtdDc5MjFfc2V0X3R4X3Nhcl9wd3IoaHcsIE5VTEwpOwotCWlmIChyZXQgJmx0OyAwKQotCQlnb3RvIGVycjsKIAotZXJyOgomIzQzOwlyZXR1cm4gcmV0OwomIzQzO30KJiM0MzsKJiM0MztpbnQgbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB1OCAqYWxwaGEyLAomIzQzOwkJCSAgIGVudW0gZW52aXJvbm1lbnRfY2FwIGNvdW50cnlfaWVfZW52KQomIzQzO3sKJiM0MzsJaW50IHJldCA9IDA7CiYjNDM7CiYjNDM7CWRldi0mZ3Q7cmVnZF9pbl9wcm9ncmVzcyA9IHRydWU7CiYjNDM7CiYjNDM7CW10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7CiYjNDM7CXJldCA9IF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZShkZXYsIGFscGhhMiwgY291bnRyeV9pZV9lbnYpOwogCW10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7CiYjNDM7CiAJZGV2LSZndDtyZWdkX2NoYW5nZSA9IGZhbHNlOwogCWRldi0mZ3Q7cmVnZF9pbl9wcm9ncmVzcyA9IGZhbHNlOwogCXdha2VfdXAoJmFtcDtkZXYtJmd0O3dhaXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5oCmluZGV4IDU3MWYzMTYyOWU5ZTAxLi41YjI0ZDA5MDJjMzY5YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuaApAQCAtMTAsNiAmIzQzOzEwLDggQEAgc3RydWN0IHJlZ3VsYXRvcnlfcmVxdWVzdDsKIAogaW50IG10NzkyMV9tY3VfcmVnZF91cGRhdGUoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdTggKmFscGhhMiwKIAkJCSAgIGVudW0gZW52aXJvbm1lbnRfY2FwIGNvdW50cnlfaWVfZW52KTsKJiM0MztpbnQgX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHU4ICphbHBoYTIsCiYjNDM7CQkJICAgICBlbnVtIGVudmlyb25tZW50X2NhcCBjb3VudHJ5X2llX2Vudik7CiB2b2lkIG10NzkyMV9yZWdkX25vdGlmaWVyKHN0cnVjdCB3aXBoeSAqd2lwaHksCiAJCQkgIHN0cnVjdCByZWd1bGF0b3J5X3JlcXVlc3QgKnJlcXVlc3QpOwogYm9vbCBtdDc5MjFfcmVnZF9jbGNfc3VwcG9ydGVkKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMDg5CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMjg1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFdpLUZpIERyaXZlciBQYXRjaDogTVQ3OTIxIGFuZCBQb3RlbnRpYWwgTG9jayBJc3N1ZXMqKgoKT2theSwgc28gdGhpcyBwYXRjaCB0YXJnZXRzIHRoZSBNZWRpYXRlayBNVDc5MjEgd2lyZWxlc3MgZHJpdmVyLiBNeSBpbml0aWFsIHJlYWQgdGVsbHMgbWUgaXQmIzM5O3MgbW9kaWZ5aW5nIHRoZSBgbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAgZnVuY3Rpb24sIGNyZWF0aW5nIGFuIGludGVybmFsIHZlcnNpb24sIGBfX210NzkyMV9tY3VfcmVnZF91cGRhdGVgLCB3aGljaCAqYXNzdW1lcyogdGhlIG11dGV4IGlzIGFscmVhZHkgaGVsZC4gVGhlIGltcG9ydGFudCBjaGFuZ2UgaXMgdGhlIGNhbGwgdG8gdGhpcyBpbnRlcm5hbCB2ZXJzaW9uIGZyb20gYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgIGluc3RlYWQgb2YgdGhlIG9yaWdpbmFsIGZ1bmN0aW9uLiBUaGUgbGlrZWx5IGludGVudCBpcyB0byByZXNvbHZlIHNvbWUgbG9ja2luZyBpc3N1ZSwgcGVyaGFwcyBhIGRlYWRsb2NrIHNjZW5hcmlvIG9yIGluY29ycmVjdCBtdXRleCB1c2FnZS4gU291bmRzIHByZXR0eSBzdGFuZGFyZC4KCk5vdywgYSBxdWVzdGlvbiBpcyAtIGhvdyByZWFjaGFibGUgaXMgdGhpcyBjb2RlPyBNVDc5MjEgaXMgdHlwaWNhbGx5IGEgUENJZSwgVVNCLCBvciBTRElPIFdpLUZpIGRyaXZlciwgcmlnaHQ/IEluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIHRoZXNlIGhhcmR3YXJlIGRyaXZlcnMgY2FuIGJlIHRyaWNreS4gVW5sZXNzIHRoZXJlIGlzIHNvZnR3YXJlIGVtdWxhdGlvbiBsaWtlIG1hYzgwMjExX2h3c2ltIChidXQgdGhhdCBpcyBhIHNlcGFyYXRlIGRyaXZlciBhbmQgdGhpcyBpcyBhIHNwZWNpZmljIG9uZSkgcmVhY2hpbmcgaXQgY2FuIGJlIGRpZmZpY3VsdC4KCldhaXQuLi4gY291bGQgYSBVU0IgZHJpdmVyIGxpa2UgdGhpcyBiZSBmdXp6ZWQgdXNpbmcgYSBkdW1teSBIQ0Qgb3Igc29tZXRoaW5nIHNpbWlsYXI/IEkga25vdyBTeXprYWxsZXIgaGFzIFVTQiBmdXp6aW5nIGNhcGFiaWxpdGllcyB3aXRoIGl0cyBgZHVtbXlfaGNkYCBhbmQgYHJhdy1nYWRnZXRgIG9wdGlvbnMuIFRoYXQmIzM5O3MgYSBnb29kIGF2ZW51ZSB0byBleHBsb3JlLiBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIGlmIE1UNzkyMSBldmVuICpoYXMqIGEgVVNCIGNvbXBvbmVudC4gTGV0JiMzOTtzIHNlZS4uLiBhIHF1aWNrIGNoZWNrIHNob3dzIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuY2AgZXhpc3RpbmcuIEJpbmdvISBUaGF0IGNvdWxkIGJlIGEgd2F5IHRvIGV4cG9zZSB0aGlzIGZpeCBhbmQgdGVzdCBpdCB0aG9yb3VnaGx5LiBJJiMzOTtsbCBuZWVkIHRvIGRpZyBkZWVwZXIgaW50byB0aGF0IFVTQiBjb2RlIHBhdGggdG8gZGV0ZXJtaW5lIGlmIGl0JiMzOTtzIHRoZSByaWdodCBlbnRyeSBwb2ludCBmb3IgZnV6emluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc5MjEmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDIzNDUgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL01ha2VmaWxlLTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9NYWtlZmlsZTozOm9iai0kKENPTkZJR19NVDc5MjFfQ09NTU9OKSAmIzQzOz0gbXQ3OTIxLWNvbW1vbi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9NYWtlZmlsZTo0Om9iai0kKENPTkZJR19NVDc5MjFFKSAmIzQzOz0gbXQ3OTIxZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9NYWtlZmlsZTo1Om9iai0kKENPTkZJR19NVDc5MjFTKSAmIzQzOz0gbXQ3OTIxcy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19NVDc5MjFVKSAmIzQzOz0gbXQ3OTIxdS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9NYWtlZmlsZS03LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvTWFrZWZpbGU6ODptdDc5MjEtY29tbW9uLXkgOj0gbWFjLm8gbWN1Lm8gcmVnZC5vIG1haW4ubyBpbml0Lm8gZGVidWdmcy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9NYWtlZmlsZTo5Om10NzkyMS1jb21tb24tJChDT05GSUdfTkw4MDIxMV9URVNUTU9ERSkgJiM0Mzs9IHRlc3Rtb2RlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL01ha2VmaWxlOjEwOm10NzkyMWUteSA6PSBwY2kubyBwY2lfbWFjLm8gcGNpX21jdS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9NYWtlZmlsZToxMTptdDc5MjFzLXkgOj0gc2Rpby5vIHNkaW9fbWFjLm8gc2Rpb19tY3Uub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvTWFrZWZpbGU6MTI6bXQ3OTIxdS15IDo9IHVzYi5vXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6NDojaW5jbHVkZSBcJiMzNDttdDc5MjEuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9Nj1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6NzptdDc5MjFfcmVnX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz0xOD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MTk6bXQ3OTIxX3JlZ19nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzozMDpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19yZWd2YWwsIG10NzkyMV9yZWdfZ2V0LCBtdDc5MjFfcmVnX3NldCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0zMS1cdFx0XHQgXCYjMzQ7MHglMDhsbHhcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTMyPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzozMzptdDc5MjFfZndfZGVidWdfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMzQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0zOS1cdGRldi1cdTAwM2Vmd19kZWJ1ZyA9ICh1OCl2YWw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6NDA6XHRtdDc5MjFfbWN1X2Z3X2xvZ18yX2hvc3QoZGV2LCBkZXYtXHUwMDNlZndfZGVidWcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTQxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz00Nz1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6NDg6bXQ3OTIxX2Z3X2RlYnVnX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy00OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjU3OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX2Z3X2RlYnVnLCBtdDc5MjFfZndfZGVidWdfZ2V0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjU4Olx0XHRcdCBtdDc5MjFfZndfZGVidWdfc2V0LCBcJiMzNDslbGxkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy01OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9NjI9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzo2MzptdDc5MjFfc2VxX3B1dHNfYXJyYXkoc3RydWN0IHNlcV9maWxlICpmaWxlLCBjb25zdCBjaGFyICpzdHIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtNjQtXHRcdCAgICAgIHM4ICp2YWwsIGludCBsZW4pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTc2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjc3OiNkZWZpbmUgbXQ3OTIxX3ByaW50X3R4cHdyX2VudHJ5KHByZWZpeCwgcmF0ZSlcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtNzgtKHtcdFx0XHRcdFx0XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjc5Olx0bXQ3OTIxX3NlcV9wdXRzX2FycmF5KHMsICNwcmVmaXggXCYjMzQ7ICh1c2VyKVwmIzM0OyxcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTgwLVx0XHRcdCAgICAgIHR4cHdyLmRhdGFbVFhQV1JfVVNFUl0ucmF0ZSxcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy04MS1cdFx0XHQgICAgICBBUlJBWV9TSVpFKHR4cHdyLmRhdGFbVFhQV1JfVVNFUl0ucmF0ZSkpOyBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjgyOlx0bXQ3OTIxX3NlcV9wdXRzX2FycmF5KHMsICNwcmVmaXggXCYjMzQ7IChlZXByb20pXCYjMzQ7LFx0XHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtODMtXHRcdFx0ICAgICAgdHhwd3IuZGF0YVtUWFBXUl9FRVBST01dLnJhdGUsXHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtODQtXHRcdFx0ICAgICAgQVJSQVlfU0laRSh0eHB3ci5kYXRhW1RYUFdSX0VFUFJPTV0ucmF0ZSkpOyBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjg1Olx0bXQ3OTIxX3NlcV9wdXRzX2FycmF5KHMsICNwcmVmaXggXCYjMzQ7ICh0bWFjKVwmIzM0OyxcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTg2LVx0XHRcdCAgICAgIHR4cHdyLmRhdGFbVFhQV1JfTUFDXS5yYXRlLFx0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz05MD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6OTE6bXQ3OTIxX3R4cHdyKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy05Mi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtOTMtXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gZGV2X2dldF9kcnZkYXRhKHMtXHUwMDNlcHJpdmF0ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6OTQ6XHRzdHJ1Y3QgbXQ3OTIxX3R4cHdyIHR4cHdyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTk1LVx0aW50IHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtOTctXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjk4Olx0cmV0ID0gbXQ3OTIxX2dldF90eHB3cl9pbmZvKGRldiwgXHUwMDI2dHhwd3IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTk5LVx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTA2LVx0XHQgICBcJiMzNDsgXCYjMzQ7LCBcJiMzNDsxbVwmIzM0OywgXCYjMzQ7Mm1cJiMzNDssIFwmIzM0OzVtXCYjMzQ7LCBcJiMzNDsxMW1cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjEwNzpcdG10NzkyMV9wcmludF90eHB3cl9lbnRyeShDQ0ssIGNjayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTA4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xMTEtXHRcdCAgIFwmIzM0OzQ4bVwmIzM0OywgXCYjMzQ7NTRtXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxMTI6XHRtdDc5MjFfcHJpbnRfdHhwd3JfZW50cnkoT0ZETSwgb2ZkbSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTEzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xMTYtXHRcdCAgIFwmIzM0O21jczZcJiMzNDssIFwmIzM0O21jczdcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjExNzpcdG10NzkyMV9wcmludF90eHB3cl9lbnRyeShIVDIwLCBodDIwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xMTgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTEyMS1cdFx0ICAgXCYjMzQ7bWNzNlwmIzM0OywgXCYjMzQ7bWNzN1wmIzM0OywgXCYjMzQ7bWNzMzJcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjEyMjpcdG10NzkyMV9wcmludF90eHB3cl9lbnRyeShIVDQwLCBodDQwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xMjMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTEyNi1cdFx0ICAgXCYjMzQ7bWNzNlwmIzM0OywgXCYjMzQ7bWNzN1wmIzM0OywgXCYjMzQ7bWNzOFwmIzM0OywgXCYjMzQ7bWNzOVwmIzM0OywgXCYjMzQ7bWNzMTBcJiMzNDssIFwmIzM0O21jczExXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxMjc6XHRtdDc5MjFfcHJpbnRfdHhwd3JfZW50cnkoVkhUMjAsIHZodDIwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxMjg6XHRtdDc5MjFfcHJpbnRfdHhwd3JfZW50cnkoVkhUNDAsIHZodDQwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxMjk6XHRtdDc5MjFfcHJpbnRfdHhwd3JfZW50cnkoVkhUODAsIHZodDgwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxMzA6XHRtdDc5MjFfcHJpbnRfdHhwd3JfZW50cnkoVkhUMTYwLCB2aHQxNjApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjEzMTpcdG10NzkyMV9wcmludF90eHB3cl9lbnRyeShIRTI2LCBoZTI2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxMzI6XHRtdDc5MjFfcHJpbnRfdHhwd3JfZW50cnkoSEU1MiwgaGU1Mik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MTMzOlx0bXQ3OTIxX3ByaW50X3R4cHdyX2VudHJ5KEhFMTA2LCBoZTEwNik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MTM0Olx0bXQ3OTIxX3ByaW50X3R4cHdyX2VudHJ5KEhFMjQyLCBoZTI0Mik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MTM1Olx0bXQ3OTIxX3ByaW50X3R4cHdyX2VudHJ5KEhFNDg0LCBoZTQ4NCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MTM2Olx0bXQ3OTIxX3ByaW50X3R4cHdyX2VudHJ5KEhFOTk2LCBoZTk5Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MTM3Olx0bXQ3OTIxX3ByaW50X3R4cHdyX2VudHJ5KEhFOTk2eDIsIGhlOTk2eDIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTEzOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MTQyPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxNDM6bXQ3OTIxX3BtX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTE0NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTE2Ni1cdHBtLVx1MDAzZWVuYWJsZV91c2VyID0gdmFsO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjE2NzpcdG10NzkyMV9zZXRfcnVudGltZV9wbShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTE2OC1cdG10NzZfY29ubmFjX3Bvd2VyX3NhdmVfc2NoZWQoXHUwMDI2ZGV2LVx1MDAzZW1waHksIHBtKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MTc1PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxNzY6bXQ3OTIxX3BtX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xNzcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xODQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MTg1OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3BtLCBtdDc5MjFfcG1fZ2V0LCBtdDc5MjFfcG1fc2V0LCBcJiMzNDslbGxkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xODYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MTg3PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxODg6bXQ3OTIxX2RlZXBfc2xlZXBfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTg5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MjExPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyMTI6bXQ3OTIxX2RlZXBfc2xlZXBfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIxMy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIyMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyMjE6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfZHMsIG10NzkyMV9kZWVwX3NsZWVwX2dldCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyMjI6XHRcdFx0IG10NzkyMV9kZWVwX3NsZWVwX3NldCwgXCYjMzQ7JWxsZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTIyND1ERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19wbV9pZGxlX3RpbWVvdXQsIG10NzkyeF9wbV9pZGxlX3RpbWVvdXRfZ2V0LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjI3OnN0YXRpYyBpbnQgbXQ3OTIxX2NoaXBfcmVzZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMjgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjQ4OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3Jlc2V0LCBOVUxMLCBtdDc5MjFfY2hpcF9yZXNldCwgXCYjMzQ7JWxsZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjQ5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTI1MD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjUxOm10NzkyMXNfc2NoZWRfcXVvdGFfcmVhZChzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjUyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjYzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjI2NDppbnQgbXQ3OTIxX2luaXRfZGVidWdmcyhzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI2NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI3OS1cdGRlYnVnZnNfY3JlYXRlX2Rldm1fc2VxZmlsZShkZXYtXHUwMDNlbXQ3Ni5kZXYsIFwmIzM0O3R4cG93ZXJfc2t1XCYjMzQ7LCBkaXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjgwOlx0XHRcdFx0ICAgIG10NzkyMV90eHB3cik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjgxLVx0ZGVidWdmc19jcmVhdGVfZmlsZShcJiMzNDt0eF9zdGF0c1wmIzM0OywgMDQwMCwgZGlyLCBkZXYsIFx1MDAyNm10NzkyeF90eF9zdGF0c19mb3BzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjkxLVx0XHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVx1MDAzZW10NzYuZGV2LCBcJiMzNDtzY2hlZC1xdW90YVwmIzM0OywgZGlyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjI5MjpcdFx0XHRcdFx0ICAgIG10NzkyMXNfc2NoZWRfcXVvdGFfcmVhZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjkzLVx0cmV0dXJuIDA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTgtI2luY2x1ZGUgXHUwMDNjbGludXgvZmlybXdhcmUuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjk6I2luY2x1ZGUgXCYjMzQ7bXQ3OTIxLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xMC0jaW5jbHVkZSBcJiMzNDsuLi9tdDc2X2Nvbm5hYzJfbWFjLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MTQ6c3RhdGljIHNzaXplX3QgbXQ3OTIxX3RoZXJtYWxfdGVtcF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xNS1cdFx0XHRcdFx0c3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTI0LVx0XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShtZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoyNTpcdFx0dGVtcGVyYXR1cmUgPSBtdDc5MjFfbWN1X2dldF90ZW1wZXJhdHVyZShwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTI2LVx0XHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShtZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMzYtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjM3OnN0YXRpYyBTRU5TT1JfREVWSUNFX0FUVFJfUk8odGVtcDFfaW5wdXQsIG10NzkyMV90aGVybWFsX3RlbXAsIDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjM5OnN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICptdDc5MjFfaHdtb25fYXR0cnNbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy00MC1cdFx1MDAyNnNlbnNvcl9kZXZfYXR0cl90ZW1wMV9pbnB1dC5kZXZfYXR0ci5hdHRyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy00Mi19O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjQzOkFUVFJJQlVURV9HUk9VUFMobXQ3OTIxX2h3bW9uKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy00NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzo0NTpzdGF0aWMgaW50IG10NzkyMV90aGVybWFsX2luaXQoc3RydWN0IG10NzkyeF9waHkgKnBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy00Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjU0Olx0bmFtZSA9IGRldm1fa2FzcHJpbnRmKFx1MDAyNndpcGh5LVx1MDAzZWRldiwgR0ZQX0tFUk5FTCwgXCYjMzQ7bXQ3OTIxXyVzXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTU1LVx0XHRcdCAgICAgIHdpcGh5X25hbWUod2lwaHkpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtNTktXHRod21vbiA9IGRldm1faHdtb25fZGV2aWNlX3JlZ2lzdGVyX3dpdGhfZ3JvdXBzKFx1MDAyNndpcGh5LVx1MDAzZWRldiwgbmFtZSwgcGh5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjYwOlx0XHRcdFx0XHRcdCAgICAgICBtdDc5MjFfaHdtb25fZ3JvdXBzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy02MS1cdHJldHVybiBQVFJfRVJSX09SX1pFUk8oaHdtb24pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy02My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzo2NDppbnQgbXQ3OTIxX21hY19pbml0KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtNjUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy03NC1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIE1UNzkyeF9XVEJMX1NJWkU7IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjc1Olx0XHRtdDc5MjFfbWFjX3d0YmxfdXBkYXRlKGRldiwgaSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy03Ni1cdFx0XHRcdCAgICAgICBNVF9XVEJMX1VQREFURV9BRE1fQ09VTlRfQ0xFQVIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy04MS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6ODI6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTIxX21hY19pbml0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy04My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzo4NDpzdGF0aWMgaW50IF9fbXQ3OTIxX2luaXRfaGFyZHdhcmUoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy04NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTk5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjEwMDpcdHJldCA9IG10NzkyMV9tY3Vfc2V0X2VlcHJvbShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTEwMS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTEwMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoxMDQ6XHRyZXQgPSBtdDc5MjFfbWFjX2luaXQoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xMDUtb3V0OlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xMDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MTA5OnN0YXRpYyBpbnQgbXQ3OTIxX2luaXRfaGFyZHdhcmUoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xMTAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xMTUtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBNVDc5MnhfTUNVX0lOSVRfUkVUUllfQ09VTlQ7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MTE2Olx0XHRyZXQgPSBfX210NzkyMV9pbml0X2hhcmR3YXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTE3LVx0XHRpZiAoIXJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjEzMTpzdGF0aWMgdm9pZCBtdDc5MjFfaW5pdF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xMzIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xMzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MTM3Olx0cmV0ID0gbXQ3OTIxX2luaXRfaGFyZHdhcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xMzgtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xNDEtXHRtdDc2X3NldF9zdHJlYW1fY2FwcyhcdTAwMjZkZXYtXHUwMDNlbXBoeSwgdHJ1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MTQyOlx0bXQ3OTIxX3NldF9zdHJlYW1faGVfY2FwcyhcdTAwMjZkZXYtXHUwMDNlcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xNDMtXHRtdDc5MnhfY29uZmlnX21hY19hZGRyX2xpc3QoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjE1MjpcdHJldCA9IG10NzkyMV9pbml0X2RlYnVnZnMoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xNTMtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTE1Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoxNTg6XHRyZXQgPSBtdDc5MjFfdGhlcm1hbF9pbml0KFx1MDAyNmRldi1cdTAwM2VwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTE1OS1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTY5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjE3MDppbnQgbXQ3OTIxX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTE3MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTE4OS1cdElOSVRfREVMQVlFRF9XT1JLKFx1MDAyNmRldi1cdTAwM2VtcGh5Lm1hY193b3JrLCBtdDc5MnhfbWFjX3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjE5MDpcdElOSVRfREVMQVlFRF9XT1JLKFx1MDAyNmRldi1cdTAwM2VwaHkuc2Nhbl93b3JrLCBtdDc5MjFfc2Nhbl93b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoxOTE6XHRJTklUX0RFTEFZRURfV09SSyhcdTAwMjZkZXYtXHUwMDNlY29yZWR1bXAud29yaywgbXQ3OTIxX2NvcmVkdW1wX3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTE5Mi0jaWYgSVNfRU5BQkxFRChDT05GSUdfSVBWNilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoxOTM6XHRJTklUX1dPUksoXHUwMDI2ZGV2LVx1MDAzZWlwdjZfbnNfd29yaywgbXQ3OTIxX3NldF9pcHY2X25zX3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTE5NC1cdHNrYl9xdWV1ZV9oZWFkX2luaXQoXHUwMDI2ZGV2LVx1MDAzZWlwdjZfbnNfbGlzdCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTE5OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoxOTk6XHRJTklUX1dPUksoXHUwMDI2ZGV2LVx1MDAzZXJlc2V0X3dvcmssIG10NzkyMV9tYWNfcmVzZXRfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MjAwOlx0SU5JVF9XT1JLKFx1MDAyNmRldi1cdTAwM2Vpbml0X3dvcmssIG10NzkyMV9pbml0X3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTIwMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoyMDI6XHRJTklUX1dPUksoXHUwMDI2ZGV2LVx1MDAzZXBoeS5yb2Nfd29yaywgbXQ3OTIxX3JvY193b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yMDMtXHR0aW1lcl9zZXR1cChcdTAwMjZkZXYtXHUwMDNlcGh5LnJvY190aW1lciwgbXQ3OTJ4X3JvY190aW1lciwgMCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTIzMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoyMzE6XHRody1cdTAwM2V3aXBoeS1cdTAwM2VyZWdfbm90aWZpZXIgPSBtdDc5MjFfcmVnZF9ub3RpZmllcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yMzItXHRkZXYtXHUwMDNlbXBoeS5zYmFuZF8yZy5zYmFuZC5odF9jYXAuY2FwIHw9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTI1NS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MjU2OkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyMV9yZWdpc3Rlcl9kZXZpY2UpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTYtI2luY2x1ZGUgXHUwMDNjbGludXgvdGltZWtlZXBpbmcuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NzojaW5jbHVkZSBcJiMzNDttdDc5MjEuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtOC0jaW5jbHVkZSBcJiMzNDsuLi9kbWEuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTE4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6MTk6Ym9vbCBtdDc5MjFfbWFjX3d0YmxfdXBkYXRlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIGludCBpZHgsIHUzMiBtYXNrKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMjAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6Mjg6c3RhdGljIHUzMiBtdDc5MjFfbWFjX3d0YmxfbG1hY19hZGRyKGludCBpZHgsIHU4IG9mZnNldClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTI5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0zMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjMzOnN0YXRpYyB2b2lkIG10NzkyMV9tYWNfc3RhX3BvbGwoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTM0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy03Mi1cdFx0aWR4ID0gbWxpbmstXHUwMDNld2NpZC5pZHg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo3MzpcdFx0YWRkciA9IG10NzkyMV9tYWNfd3RibF9sbWFjX2FkZHIoaWR4LCBNVF9XVEJMX0FDMF9DVFRfT0ZGU0VUKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTc0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTkxLVx0XHRpZiAoY2xlYXIpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjkyOlx0XHRcdG10NzkyMV9tYWNfd3RibF91cGRhdGUoZGV2LCBpZHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy05My1cdFx0XHRcdFx0ICAgICAgIE1UX1dUQkxfVVBEQVRFX0FETV9DT1VOVF9DTEVBUik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMTIwLVx0XHRyYXRlID0gXHUwMDI2bWxpbmstXHUwMDNld2NpZC5yYXRlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6MTIxOlx0XHRhZGRyID0gbXQ3OTIxX21hY193dGJsX2xtYWNfYWRkcihpZHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0xMjItXHRcdFx0XHRcdFx0IE1UX1dUQkxfVFhSWF9DQVBfUkFURV9PRkZTRVQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTE1Mi1cdFx0LyogZ2V0IHNpZ25hbCBzdHJlbmd0aCBvZiByZXNwIGZyYW1lcyAoQ1RTL0JBL0FDSykgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjE1MzpcdFx0YWRkciA9IG10NzkyMV9tYWNfd3RibF9sbWFjX2FkZHIoaWR4LCAzMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0xNTQtXHRcdHZhbCA9IG10NzZfcnIoZGV2LCBhZGRyKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYz0xNjg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6MTY5Om10NzkyMV9tYWNfZmlsbF9yeChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMTcwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy00NDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo0NDc6dm9pZCBtdDc5MjFfbWFjX2FkZF90eHMoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTQ0OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNDg0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NDg1OnN0YXRpYyB2b2lkIG10NzkyMV9tYWNfdHhfZnJlZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB2b2lkICpkYXRhLCBpbnQgbGVuKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNDg2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01NTUtXHRyY3VfcmVhZF9sb2NrKCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo1NTY6XHRtdDc5MjFfbWFjX3N0YV9wb2xsKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01NTctXHRyY3VfcmVhZF91bmxvY2soKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01NjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo1NjI6Ym9vbCBtdDc5MjFfcnhfY2hlY2soc3RydWN0IG10NzZfZGV2ICptZGV2LCB2b2lkICpkYXRhLCBpbnQgbGVuKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNTYzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01NzMtXHRcdC8qIFBLVF9UWVBFX1RYUlhfTk9USUZZIGNhbiBiZSByZWNlaXZlZCBvbmx5IGJ5IG1taW8gZGV2aWNlcyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NTc0Olx0XHRtdDc5MjFfbWFjX3R4X2ZyZWUoZGV2LCBkYXRhLCBsZW4pOyAvKiBtbWlvICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01NzUtXHRcdHJldHVybiBmYWxzZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01NzctXHRcdGZvciAocnhkICYjNDM7PSAyOyByeGQgJiM0MzsgOCBcdTAwM2M9IGVuZDsgcnhkICYjNDM7PSA4KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NTc4Olx0XHRcdG10NzkyMV9tYWNfYWRkX3R4cyhkZXYsIHJ4ZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01NzktXHRcdHJldHVybiBmYWxzZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01ODMtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NTg0OkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyMV9yeF9jaGVjayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01ODUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo1ODY6dm9pZCBtdDc5MjFfcXVldWVfcnhfc2tiKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgZW51bSBtdDc2X3J4cV9pZCBxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNTg3LVx0XHRcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgKmluZm8pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjAzLVx0XHQvKiBQS1RfVFlQRV9UWFJYX05PVElGWSBjYW4gYmUgcmVjZWl2ZWQgb25seSBieSBtbWlvIGRldmljZXMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjYwNDpcdFx0bXQ3OTIxX21hY190eF9mcmVlKGRldiwgc2tiLVx1MDAzZWRhdGEsIHNrYi1cdTAwM2VsZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjA1LVx0XHRuYXBpX2NvbnN1bWVfc2tiKHNrYiwgMSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjA3LVx0Y2FzZSBQS1RfVFlQRV9SWF9FVkVOVDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjYwODpcdFx0bXQ3OTIxX21jdV9yeF9ldmVudChkZXYsIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02MDktXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTYxMS1cdFx0Zm9yIChyeGQgJiM0Mzs9IDI7IHJ4ZCAmIzQzOyA4IFx1MDAzYz0gZW5kOyByeGQgJiM0Mzs9IDgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo2MTI6XHRcdFx0bXQ3OTIxX21hY19hZGRfdHhzKGRldiwgcnhkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTYxMy1cdFx0ZGV2X2tmcmVlX3NrYihza2IpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTYxNi1cdGNhc2UgUEtUX1RZUEVfTk9STUFMOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NjE3Olx0XHRpZiAoIW10NzkyMV9tYWNfZmlsbF9yeChkZXYsIHNrYikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTYxOC1cdFx0XHRtdDc2X3J4KFx1MDAyNmRldi1cdTAwM2VtdDc2LCBxLCBza2IpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTYyNi19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo2Mjc6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTIxX3F1ZXVlX3J4X3NrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02MjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYz02Mjk9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjYzMDptdDc5MjFfdmlmX2Nvbm5lY3RfaXRlcih2b2lkICpwcml2LCB1OCAqbWFjLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjMxLVx0XHRcdHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjQyLVx0XHRcdFx0ICAgIFx1MDAyNm12aWYtXHUwMDNlc3RhLmRlZmxpbmsud2NpZCwgdHJ1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo2NDM6XHRtdDc5MjFfbWN1X3NldF90eChkZXYsIHZpZik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02NDQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjQ3LVx0XHRcdFx0XHQgICAgdHJ1ZSwgTlVMTCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo2NDg6XHRcdG10NzkyMV9tY3Vfc3RhX3VwZGF0ZShkZXYsIE5VTEwsIHZpZiwgdHJ1ZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTY0OS1cdFx0XHRcdCAgICAgIE1UNzZfU1RBX0lORk9fU1RBVEVfTk9ORSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo2NTA6XHRcdG10NzkyMV9tY3VfdW5pX2FkZF9iZWFjb25fb2ZmbG9hZChkZXYsIGh3LCB2aWYsIHRydWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjUxLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTY1NC0vKiBzeXN0ZW0gZXJyb3IgcmVjb3ZlcnkgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjY1NTp2b2lkIG10NzkyMV9tYWNfcmVzZXRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02NTYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTcwMS1cdFx0XHRcdFx0ICAgIElFRUU4MDIxMV9JRkFDRV9JVEVSX1JFU1VNRV9BTEwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo3MDI6XHRcdFx0XHRcdCAgICBtdDc5MjFfdmlmX2Nvbm5lY3RfaXRlciwgTlVMTCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy03MDMtXHRtdDc2X2Nvbm5hY19wb3dlcl9zYXZlX3NjaGVkKFx1MDAyNmRldi1cdTAwM2VtdDc2LnBoeSwgcG0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNzA0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NzA1Olx0bXQ3OTIxX3JlZ2RfY2hhbmdlKFx1MDAyNmRldi1cdTAwM2VwaHksIFwmIzM0OzAwXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTcwNi19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy03MDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo3MDg6dm9pZCBtdDc5MjFfY29yZWR1bXBfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy03MDkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTc1Nj1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NzU3Om10NzkyMV91c2Jfc2Rpb193cml0ZV90eHdpKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3djaWQgKndjaWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy03NTgtXHRcdFx0ICAgZW51bSBtdDc2X3R4cV9pZCBxaWQsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNzY4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NzY5OmludCBtdDc5MjFfdXNiX3NkaW9fdHhfcHJlcGFyZV9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCB2b2lkICp0eHdpX3B0cixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTc3MC1cdFx0XHRcdCAgIGVudW0gbXQ3Nl90eHFfaWQgcWlkLCBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTc5OS1cdHBrdGlkID0gbXQ3Nl90eF9zdGF0dXNfc2tiX2FkZChcdTAwMjZkZXYtXHUwMDNlbXQ3Niwgd2NpZCwgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjgwMDpcdG10NzkyMV91c2Jfc2Rpb193cml0ZV90eHdpKGRldiwgd2NpZCwgcWlkLCBzdGEsIGtleSwgcGt0aWQsIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04MDEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODE0LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjgxNTpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjFfdXNiX3NkaW9fdHhfcHJlcGFyZV9za2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6ODE3OnZvaWQgbXQ3OTIxX3VzYl9zZGlvX3R4X2NvbXBsZXRlX3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04MTgtXHRcdFx0XHQgICAgIHN0cnVjdCBtdDc2X3F1ZXVlX2VudHJ5ICplKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTgzNS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo4MzY6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTIxX3VzYl9zZGlvX3R4X2NvbXBsZXRlX3NrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04MzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo4Mzg6Ym9vbCBtdDc5MjFfdXNiX3NkaW9fdHhfc3RhdHVzX2RhdGEoc3RydWN0IG10NzZfZGV2ICptZGV2LCB1OCAqdXBkYXRlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODM5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04NDItXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6ODQzOlx0bXQ3OTIxX21hY19zdGFfcG9sbChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODQ0LVx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04NDctfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6ODQ4OkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyMV91c2Jfc2Rpb190eF9zdGF0dXNfZGF0YSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04NDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04NTAtI2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo4NTE6dm9pZCBtdDc5MjFfc2V0X2lwdjZfbnNfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04NTIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy04LSNpbmNsdWRlIFx1MDAzY25ldC9pcHY2LmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo5OiNpbmNsdWRlIFwmIzM0O210NzkyMS5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTAtI2luY2x1ZGUgXCYjMzQ7cmVnZC5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTEzPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxNDptdDc5MjFfaW5pdF9oZV9jYXBzKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksIGVudW0gbmw4MDIxMV9iYW5kIGJhbmQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTUtXHRcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3NiYW5kX2lmdHlwZV9kYXRhICpkYXRhKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xOTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTk2OnZvaWQgbXQ3OTIxX3NldF9zdHJlYW1faGVfY2FwcyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTE5Ny17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTIwMy1cdFx0ZGF0YSA9IHBoeS1cdTAwM2VpZnR5cGVbTkw4MDIxMV9CQU5EXzJHSFpdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjIwNDpcdFx0biA9IG10NzkyMV9pbml0X2hlX2NhcHMocGh5LCBOTDgwMjExX0JBTkRfMkdIWiwgZGF0YSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjA1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yMTEtXHRcdGRhdGEgPSBwaHktXHUwMDNlaWZ0eXBlW05MODAyMTFfQkFORF81R0haXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyMTI6XHRcdG4gPSBtdDc5MjFfaW5pdF9oZV9jYXBzKHBoeSwgTkw4MDIxMV9CQU5EXzVHSFosIGRhdGEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTIxMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjE4LVx0XHRcdGRhdGEgPSBwaHktXHUwMDNlaWZ0eXBlW05MODAyMTFfQkFORF82R0haXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyMTk6XHRcdFx0biA9IG10NzkyMV9pbml0X2hlX2NhcHMocGh5LCBOTDgwMjExX0JBTkRfNkdIWiwgZGF0YSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjIwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yMjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MjI3OmludCBfX210NzkyMV9zdGFydChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTIyOC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTIzOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyNDA6XHRlcnIgPSBtdDc5MjFfbWN1X3NldF9jaGFuX2luZm8ocGh5LCBNQ1VfRVhUX0NNRChTRVRfUlhfUEFUSCkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI0MS1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI0My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyNDQ6XHRlcnIgPSBtdDc5MjFfc2V0X3R4X3Nhcl9wd3IobXBoeS1cdTAwM2VodywgTlVMTCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjQ1LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjUzLVx0aWYgKG10NzZfaXNfbW1pbyhtcGh5LVx1MDAzZWRldikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyNTQ6XHRcdGVyciA9IG10NzkyMV9tY3VfcmFkaW9fbGVkX2N0cmwocGh5LVx1MDAzZWRldiwgRVhUX0NNRF9SQURJT19MRURfQ1RSTF9FTkFCTEUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI1NS1cdFx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjI1ODpcdFx0ZXJyID0gbXQ3OTIxX21jdV9yYWRpb19sZWRfY3RybChwaHktXHUwMDNlZGV2LCBFWFRfQ01EX1JBRElPX09OX0xFRCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjU5LVx0XHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yNjMtXHRpZiAocGh5LVx1MDAzZWNoaXBfY2FwIFx1MDAyNiBNVDc5MnhfQ0hJUF9DQVBfV0ZfUkZfUElOX0NUUkxfRVZUX0VOKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MjY0Olx0XHRtdDc5MjFfbWN1X3dmX3JmX3Bpbl9jdHJsKHBoeSwgV0ZfUkZfUElOX0lOSVQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI2NS1cdFx0d2lwaHlfcmZraWxsX3N0YXJ0X3BvbGxpbmcobXBoeS1cdTAwM2Vody1cdTAwM2V3aXBoeSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI2OS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MjcwOkVYUE9SVF9TWU1CT0xfR1BMKF9fbXQ3OTIxX3N0YXJ0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yNzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MjcyOnN0YXRpYyBpbnQgbXQ3OTIxX3N0YXJ0KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI3My17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI3Ny1cdG10NzkyeF9tdXRleF9hY3F1aXJlKHBoeS1cdTAwM2VkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjI3ODpcdGVyciA9IF9fbXQ3OTIxX3N0YXJ0KHBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjc5LVx0bXQ3OTJ4X211dGV4X3JlbGVhc2UocGh5LVx1MDAzZWRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI4My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyODQ6c3RhdGljIHZvaWQgbXQ3OTIxX3N0b3Aoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGJvb2wgc3VzcGVuZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yODUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yOTAtXHRcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MjkxOlx0XHRlcnIgPSBtdDc5MjFfbWN1X3JhZGlvX2xlZF9jdHJsKGRldiwgRVhUX0NNRF9SQURJT19PRkZfTEVEKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yOTItXHRcdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTMwMD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MzAxOm10NzkyMV9hZGRfaW50ZXJmYWNlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTMwMi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTMzOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozMzk6XHRtdDc5MjFfbWFjX3d0YmxfdXBkYXRlKGRldiwgaWR4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM0MC1cdFx0XHQgICAgICAgTVRfV1RCTF9VUERBVEVfQURNX0NPVU5UX0NMRUFSKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjM1NDpcdElOSVRfV09SSyhcdTAwMjZtdmlmLVx1MDAzZWNzYV93b3JrLCBtdDc5MjFfY3NhX3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM1NS1cdHRpbWVyX3NldHVwKFx1MDAyNm12aWYtXHUwMDNlY3NhX3RpbWVyLCBtdDc5MnhfY3NhX3RpbWVyLCAwKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzYxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjM2MjpzdGF0aWMgdm9pZCBtdDc5MjFfcm9jX2l0ZXIodm9pZCAqcHJpdiwgdTggKm1hYyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zNjMtXHRcdFx0ICAgIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM2Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozNjg6XHRtdDc5MjFfbWN1X2Fib3J0X3JvYyhwaHksIG12aWYsIHBoeS1cdTAwM2Vyb2NfdG9rZW5faWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM2OS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjM3MTp2b2lkIG10NzkyMV9yb2NfYWJvcnRfc3luYyhzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM3Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM4Mi1cdFx0XHRcdCAgICAgSUVFRTgwMjExX0lGQUNFX0lURVJfUkVTVU1FX0FMTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozODM6XHRcdFx0XHQgICAgIG10NzkyMV9yb2NfaXRlciwgKHZvaWQgKilwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM4NC19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6Mzg1OkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyMV9yb2NfYWJvcnRfc3luYyk7XG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDI0MgoJCQkJCQkJb3V0cHV0OiA0NgoJCQkJCQkJdGhvdWdodHM6IDE5OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBNVDc5MjFVIFVTQiBEcml2ZXIqKgoKT2theSwgc28gdGhlIGJ1aWxkIG91dHB1dCBjbGVhcmx5IGluZGljYXRlcyB0aGF0IHRoZSBgbXQ3OTIxdWAgZHJpdmVyIGlzIGNvbXBpbGVkIHdoZW4gYENPTkZJR19NVDc5MjFVYCBpcyBlbmFibGVkLiBBbmQsIGl0JiMzOTtzIGRlZmluZWQgYXMgYHVzYi5vYCwgd2hpY2ggY29uZmlybXMgaXQmIzM5O3MgYSBVU0IgZHJpdmVyLiBFeGNlbGxlbnQuIFRoaXMgaXMgZ29vZCBiZWNhdXNlIHRoYXQgbWVhbnMgd2UgY2FuIHJlYWNoIGl0IHdpdGggZWl0aGVyIHN5emthbGxlciYjMzk7cyBgZHVtbXlfaGNkYCBvciB0aGUgYHJhdy1nYWRnZXRgIGludGVyZmFjZSwgb3BlbmluZyB1cCBhdmVudWVzIGZvciBmdXp6aW5nIGluIGEgdmlydHVhbGl6ZWQgc2V0dGluZywgd2hpY2ggaXMgcHJlY2lzZWx5IHdoYXQgSSB3YW50LgoKTm93LCBsZXQmIzM5O3MgZHJpbGwgZG93biBhbmQgZmlndXJlIG91dCB0aGUgZXhhY3QgY29uZmlndXJhdGlvbiByZXF1aXJlbWVudHMuIEkgYWxyZWFkeSBrbm93IGBDT05GSUdfTVQ3OTIxVWAgZW5hYmxlcyB0aGUgVVNCIGRyaXZlciwgYENPTkZJR19NVDc5MjFFYCBpcyBQQ0llLCBhbmQgYENPTkZJR19NVDc5MjFTYCBpcyBTRElPLiBBbmQsIGBDT05GSUdfTVQ3OTIxX0NPTU1PTmAgbG9va3MgbGlrZSB0aGUgc2hhcmVkLCBiYXNlIGNvZGUuCgpSaWdodCwgSSYjMzk7bSBnb2luZyB0byBwdWxsIHVwIHRoZSBLY29uZmlnIGZpbGUgZm9yIGBNVDc5MjFVYCBhbmQgc2VlIHdoYXQgZWxzZSBuZWVkcyB0byBiZSBmbGlwcGVkIG9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNVDc5MjFVJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc9MTc9Y29uZmlnIE1UNzkyMVNcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZzoyODpjb25maWcgTVQ3OTIxVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0yOS1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMVUgKFVTQikgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwODc4CgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6CgoqKkFzc2Vzc2luZyB0aGUgTGFuZHNjYXBlOiBNVDc5MjFVIERlcGVuZGVuY2llcyoqCgpPa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbi4gTXkgaW1tZWRpYXRlIGZvY3VzIGlzIG9uIHRoZSBgTVQ3OTIxVWAg4oCTIHRoYXQmIzM5O3Mgd2hlcmUgd2UgbmVlZCB0byBzdGFydC4gTXkgZXhwZXJ0IGV5ZSBpbW1lZGlhdGVseSBnb2VzIHRvIGRlcGVuZGVuY2llcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCB0aGlzIG1vZHVsZSByZWxpZXMgb24sIGFuZCB3aGF0IHJlbGllcyBvbiBpdC4gSSBuZWVkIGEgY2xlYXIgZGVwZW5kZW5jeSBncmFwaCwgYm90aCB1cHN0cmVhbSBhbmQgZG93bnN0cmVhbS4gVGhpcyBpc24mIzM5O3QganVzdCBhYm91dCBkaXJlY3QgaW5jbHVkZXMsIGVpdGhlci4gSSYjMzk7bSB0aGlua2luZyBhYm91dCBzaGFyZWQgbGlicmFyaWVzLCBrZXJuZWwgbW9kdWxlcywgZmlybXdhcmUsIHBvdGVudGlhbCBoYXJkd2FyZSByZXZpc2lvbnMsIGFuZCBhbnl0aGluZyBlbHNlIHRoaXMgY29tcG9uZW50IHRvdWNoZXMuIEFueXRoaW5nIHRoYXQgY291bGQgY2F1c2UgcmlwcGxlIGVmZmVjdHMgZG93biB0aGUgbGluZS4gSSBuZWVkIHRvIG1hcCBpdCBhbGwgb3V0IOKAkyBzeXN0ZW1hdGljYWxseSwgbWV0aG9kaWNhbGx5IOKAkyB0byB1bmRlcnN0YW5kIGl0cyB0cnVlIHJvbGUgYW5kIHBvdGVudGlhbCBpbXBhY3QuIFRoaXMgdW5kZXJzdGFuZGluZyBpcyB0aGUgZm91bmRhdGlvbiBmb3IgYW55IGRlZXBlciBpbnZlc3RpZ2F0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjAxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMTAwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbiAgIDI6XHRjb25maWcgTVQ3OTIxX0NPTU1PTlxuICAgMzpcdFx0dHJpc3RhdGVcbiAgIDQ6XHRcdHNlbGVjdCBNVDc5MnhfTElCXG4gICA1Olx0XHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcbiAgIDY6XHRcbiAgIDc6XHRjb25maWcgTVQ3OTIxRVxuICAgODpcdFx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3OTIxRSAoUENJZSkgc3VwcG9ydFwmIzM0O1xuICAgOTpcdFx0c2VsZWN0IE1UNzkyMV9DT01NT05cbiAgMTA6XHRcdGRlcGVuZHMgb24gTUFDODAyMTFcbiAgMTE6XHRcdGRlcGVuZHMgb24gUENJXG4gIDEyOlx0XHRoZWxwXG4gIDEzOlx0XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5MjFFIDgwMi4xMWF4IDJ4MjoyU1Mgd2lyZWxlc3MgZGV2aWNlcy5cbiAgMTQ6XHRcbiAgMTU6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cbiAgMTY6XHRcbiAgMTc6XHRjb25maWcgTVQ3OTIxU1xuICAxODpcdFx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3OTIxUyAoU0RJTykgc3VwcG9ydFwmIzM0O1xuICAxOTpcdFx0c2VsZWN0IE1UNzZfU0RJT1xuICAyMDpcdFx0c2VsZWN0IE1UNzkyMV9DT01NT05cbiAgMjE6XHRcdGRlcGVuZHMgb24gTUFDODAyMTFcbiAgMjI6XHRcdGRlcGVuZHMgb24gTU1DXG4gIDIzOlx0XHRoZWxwXG4gIDI0Olx0XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5MjFTIDgwMi4xMWF4IDJ4MjoyU1Mgd2lyZWxlc3MgZGV2aWNlcy5cbiAgMjU6XHRcbiAgMjY6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cbiAgMjc6XHRcbiAgMjg6XHRjb25maWcgTVQ3OTIxVVxuICAyOTpcdFx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3OTIxVSAoVVNCKSBzdXBwb3J0XCYjMzQ7XG4gIDMwOlx0XHRzZWxlY3QgTVQ3OTJ4X1VTQlxuICAzMTpcdFx0c2VsZWN0IE1UNzkyMV9DT01NT05cbiAgMzI6XHRcdGRlcGVuZHMgb24gTUFDODAyMTFcbiAgMzM6XHRcdGRlcGVuZHMgb24gVVNCXG4gIDM0Olx0XHRoZWxwXG4gIDM1Olx0XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5MjFVIDgwMi4xMWF4IDJ4MjoyU1Mgd2lyZWxlc3MgZGV2aWNlcy5cbiAgMzY6XHRcbiAgMzc6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTY1NwoJCQkJCQkJb3V0cHV0OiA1NwoJCQkJCQkJdGhvdWdodHM6IDExMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1UNzkyMVUgQ29uZmlndXJhdGlvbiBmb3IgUmVndWxhdG9yeSBVcGRhdGVzKioKCk9rYXksIHNvIEkgc2VlIHRoYXQgYE1UNzkyMVVgIGlzIHRoZSBrZXkgY29uZmlndXJhdGlvbiBvcHRpb24gd2UmIzM5O3JlIGVuYWJsaW5nIGhlcmUuIE5vdywgbGV0JiMzOTtzIGRpdmUgaW50byB0aGUgZGV0YWlscyBhbmQgcGlucG9pbnQgdGhlIGtleSBzeW1ib2xzIHdlIG5lZWQgdG8gZm9jdXMgb24gd2l0aGluIHRoaXMgcGF0Y2guIEZyb20gYSBxdWljayBzY2FuLCBpdCBsb29rcyBsaWtlIHRoaXMgdXBkYXRlIHByaW1hcmlseSBjb25jZXJucyBpdHNlbGYgd2l0aCByZWd1bGF0b3J5IHVwZGF0ZXMsIGFuZCBJJiMzOTttIHNlZWluZyBtb2RpZmljYXRpb25zIHRvdWNoaW5nIHNldmVyYWwgY3JpdGljYWwgZnVuY3Rpb25zOiBzcGVjaWZpY2FsbHkgYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAsIGBtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCwgYW5kIGBtdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlYC4gVGhlIG9idmlvdXMgbmV4dCBzdGVwIGlzIHRvIGRldGVybWluZSBob3cgYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgIGZpdHMgaW50byB0aGUgcHV6emxlLCBhbmQgdG8gZG8gdGhhdCwgSSYjMzk7bSBnb2luZyB0byBkZXRlcm1pbmUgaWYgdGhlIGZ1bmN0aW9uIGlzIHJlYWNoYWJsZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDk6MDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9NzY1PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NzY2Om10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGUoc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwgYm9vbCBpc19hZGQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNzY3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9ODA4PWludCBtdDc5MjFfbWFjX3N0YV9hZGQoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy04NDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6ODUwOlx0bXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZSh2aWYsIHRydWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTg1MS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9ODkxPXZvaWQgbXQ3OTIxX21hY19zdGFfcmVtb3ZlKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtOTIwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjkyMTpcdG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGUodmlmLCBmYWxzZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtOTIyLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjUxNwoJCQkJCQkJb3V0cHV0OiA1MgoJCQkJCQkJdGhvdWdodHM6IDE0MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFJlZ3VsYXRvcnkgRG9tYWluIFVwZGF0ZSBGdW5jdGlvbnMqKgoKT2theSwgc28gSSYjMzk7bSB0cmFjaW5nIHRoZSBjYWxscyB0byByZWd1bGF0b3J5IGRvbWFpbiB1cGRhdGUgZnVuY3Rpb25zIGluIHRoaXMgbXQ3OTIxIGRyaXZlci4gSSBzZWUgdGhhdCBgX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCBhbmQgYG10NzkyMV9tY3VfcmVnZF91cGRhdGVgIGFyZSBjbGVhcmx5IHJlYWNoYWJsZSDigJMgYXMgZXhwZWN0ZWQg4oCTIHRocm91Z2ggYG10NzkyMV9tYWNfc3RhX2FkZGAgYW5kIGBtdDc5MjFfbWFjX3N0YV9yZW1vdmVgLiBUaGlzIGNvbm5lY3Rpb24gY29uZmlybXMgbXkgaW5pdGlhbCBoeXBvdGhlc2lzOiB0aGVzZSBmdW5jdGlvbnMgd2lsbCBiZSBoaXQgd2hlbmV2ZXIgYSBzdGF0aW9uIGpvaW5zIG9yIGxlYXZlcyB0aGUgbmV0d29yaywgdHJpZ2dlcmVkIGJ5IG1hYzgwMjExIGV2ZW50cy4KClRoYXQgaGVscHMgbmFycm93IGRvd24gbXkgYXJlYSBvZiBmb2N1cy4gTXkga2V5IHN5bWJvbHMgdG8gZXhhbWluZSBhcmUgbm93OiBgX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCwgYG10NzkyMV9tY3VfcmVnZF91cGRhdGVgLCBhbmQgYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgLgoKSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHRob3JvdWdoLCBJJiMzOTttIGdvaW5nIHRvIGRvdWJsZS1jaGVjayB0aGF0IGBtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCBpc24mIzM5O3QgY2FsbGVkIGZyb20gYW55IG90aGVyIHBsYWNlLiBJdCYjMzk7cyBhbHdheXMgZ29vZCB0byBiZSBjZXJ0YWluIHRoZXJlIGFyZW4mIzM5O3QgYW55IHVuZXhwZWN0ZWQgZW50cnkgcG9pbnRzLCB3aGljaCBtaWdodCBpbmZsdWVuY2UgdGhlIG92ZXJhbGwgc3lzdGVtIGJlaGF2aW9yLiBHb3R0YSBnZXQgYSBmdWxsIHBpY3R1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjAxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzkyMV9tY3VfcmVnZF91cGRhdGUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTc2Nj1tdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlKHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsIGJvb2wgaXNfYWRkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy04MDQtXHRpZiAodmlmLVx1MDAzZWJzc19jb25mLmNoYW5yZXEub3Blci5jaGFuLVx1MDAzZWJhbmQgPT0gTkw4MDIxMV9CQU5EXzZHSFopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6ODA1Olx0XHRfX210NzkyMV9tY3VfcmVnZF91cGRhdGUoZGV2LCBkZXYtXHUwMDNlbXQ3Ni5hbHBoYTIsIGRldi1cdTAwM2Vjb3VudHJ5X2llX2Vudik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtODA2LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYz01NDU9c3RhdGljIGludCBtdDc5MjFfcGNpX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXZpY2UpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmMtNTkxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM6NTkyOlx0bXQ3OTIxX21jdV9yZWdkX3VwZGF0ZShkZXYsIG1kZXYtXHUwMDNlYWxwaGEyLCBkZXYtXHUwMDNlY291bnRyeV9pZV9lbnYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmMtNTkzLVx0ZXJyID0gbXQ3OTIxX21jdV9yYWRpb19sZWRfY3RybChkZXYsIEVYVF9DTURfUkFESU9fT05fTEVEKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmM9MjM9bXQ3OTIxX3JlZ2RfY2hhbm5lbF91cGRhdGUoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IG10NzkyeF9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmMtNzQtLyogSW50ZXJuYWwgdmVyc2lvbiB0aGF0IGFzc3VtZXMgbXV0ZXggaXMgYWxyZWFkeSBoZWxkIGJ5IGNhbGxlciAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jOjc1OmludCBfX210NzkyMV9tY3VfcmVnZF91cGRhdGUoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdTggKmFscGhhMixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYy03Ni1cdFx0XHQgICAgIGVudW0gZW52aXJvbm1lbnRfY2FwIGNvdW50cnlfaWVfZW52KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYy0xMDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmM6MTAxOmludCBtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHU4ICphbHBoYTIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmMtMTAyLVx0XHRcdCAgIGVudW0gZW52aXJvbm1lbnRfY2FwIGNvdW50cnlfaWVfZW52KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYy0xMDgtXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jOjEwOTpcdHJldCA9IF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZShkZXYsIGFscGhhMiwgY291bnRyeV9pZV9lbnYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jLTExMC1cdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jLTExNy19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmM6MTE4OkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyMV9tY3VfcmVnZF91cGRhdGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jLTExOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYz0xMjA9dm9pZCBtdDc5MjFfcmVnZF9ub3RpZmllcihzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYy0xNTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmM6MTUzOlx0bXQ3OTIxX21jdV9yZWdkX3VwZGF0ZShkZXYsIHJlcS1cdTAwM2VhbHBoYTIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmMtMTU0LVx0XHRcdCAgICAgICByZXEtXHUwMDNlY291bnRyeV9pZV9lbnYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuaD05PXN0cnVjdCByZWd1bGF0b3J5X3JlcXVlc3Q7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmgtMTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmg6MTE6aW50IG10NzkyMV9tY3VfcmVnZF91cGRhdGUoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdTggKmFscGhhMixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuaC0xMi1cdFx0XHQgICBlbnVtIGVudmlyb25tZW50X2NhcCBjb3VudHJ5X2llX2Vudik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmg6MTM6aW50IF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB1OCAqYWxwaGEyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5oLTE0LVx0XHRcdCAgICAgZW51bSBlbnZpcm9ubWVudF9jYXAgY291bnRyeV9pZV9lbnYpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNDQ0MAoJCQkJCQkJb3V0cHV0OiA1MAoJCQkJCQkJdGhvdWdodHM6IDI2MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE11dGV4IFVzYWdlIGluIHRoZSBtdDc5MjEgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBtdDc5MjFgIGRyaXZlciBjb2RlLCBhbmQgSSBzZWUgYG10NzkyMV9tY3VfcmVnZF91cGRhdGVgIGJlaW5nIGNhbGxlZCBmcm9tIGEgZmV3IHBsYWNlcy4gU3BlY2lmaWNhbGx5LCBgbXQ3OTIxX3BjaV9yZXN1bWVgIGFuZCBgbXQ3OTIxX3JlZ2Rfbm90aWZpZXJgIGNhbGwgaXQgZGlyZWN0bHkuIEkgYWxzbyBzZWUgdGhhdCBgX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCBpcyBjYWxsZWQgYnkgYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgIGFuZCwgeW91IGd1ZXNzZWQgaXQsIGBtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYC4gSG1tLCB0aGlzIGlzIHdoZXJlIGl0IGdldHMgaW50ZXJlc3RpbmcuLi4KClRoZSBwYXRjaCBpcyBhZGRyZXNzaW5nIGEgZGVhZGxvY2ssIGFuZCBpdCBzZWVtcyB0byBzdGVtIGZyb20gYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgIGNhbGxpbmcgYG10NzkyMV9tY3VfcmVnZF91cGRhdGVgLiBUaGUgcHJvYmxlbSBpcywgYG10NzkyMV9tY3VfcmVnZF91cGRhdGVgIGxpa2VseSBhY3F1aXJlcyBhIG11dGV4LiBCdXQgKmNydWNpYWxseSosIGBtdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlYCBpcyBjYWxsZWQgZnJvbSBgbXQ3OTIxX21hY19zdGFfYWRkYC4gVGhpcyBsb29rcyBsaWtlIGEgY2xhc3NpYyBtdXRleCBpbnZlcnNpb24gc2NlbmFyaW8uIElmIGBtdDc5MjFfbWFjX3N0YV9hZGRgICphbHJlYWR5KiBoYXMgdGhlIG11dGV4IHdoZW4gaXQgY2FsbHMgYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgLCB3aGljaCB0aGVuIHRyaWVzIHRvIGFjcXVpcmUgdGhlIHNhbWUgbXV0ZXgsIHdlJiMzOTt2ZSBnb3QgYSBkZWFkbG9jayBvbiBvdXIgaGFuZHMuCgpXYWl0IGEgc2Vjb25k4oCmIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgYG10NzkyMV9tYWNfc3RhX2FkZGAgKmlzKiBjYWxsZWQgd2l0aCB0aGUgbXV0ZXggYWxyZWFkeSBoZWxkLiBUaGlzIGlzIHRoZSBrZXkuIEkgbmVlZCB0byBkaXZlIGludG8gYG10NzkyMV9tYWNfc3RhX2FkZGAgYW5kIHNlZSBob3cgaXQmIzM5O3MgY2FsbGVkIGFuZCBpbiB3aGF0IGNvbnRleHQuIEdvdHRhIHRyYWNlIHRob3NlIGNhbGwgcGF0aHMuIFRoaXMgZmVlbHMgbGlrZSBpdCBtaWdodCBiZSBhbiBlYXN5IGZpeCwgYnV0IEkgbmVlZCB0byBtYWtlIHN1cmUgSSYjMzk7bSByaWdodCBhYm91dCB0aGUgbXV0ZXggY29udGVudGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDk6MDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTIxX21hY19zdGFfYWRkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz03NjY9bXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZShzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLCBib29sIGlzX2FkZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtODA3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjgwODppbnQgbXQ3OTIxX21hY19zdGFfYWRkKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy04MDktXHRcdCAgICAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy04NTUtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjg1NjpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjFfbWFjX3N0YV9hZGQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTg1Ny1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaD0yNjQ9Ym9vbCBtdDc5MjFfbWFjX3d0YmxfdXBkYXRlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIGludCBpZHgsIHUzMiBtYXNrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oOjI2NTppbnQgbXQ3OTIxX21hY19zdGFfYWRkKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oLTI2Ni1cdFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jPTI1OT1zdGF0aWMgaW50IG10NzkyMV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmMtMjc1LVx0XHQucnhfcG9sbF9jb21wbGV0ZSA9IG10NzkyeF9yeF9wb2xsX2NvbXBsZXRlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM6Mjc2Olx0XHQuc3RhX2FkZCA9IG10NzkyMV9tYWNfc3RhX2FkZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jLTI3Ny1cdFx0LnN0YV9ldmVudCA9IG10NzkyMV9tYWNfc3RhX2V2ZW50LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3NkaW8uYz05MD1zdGF0aWMgaW50IG10NzkyMXNfcHJvYmUoc3RydWN0IHNkaW9fZnVuYyAqZnVuYyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvLmMtMTAzLVx0XHQucnhfY2hlY2sgPSBtdDc5MjFfcnhfY2hlY2ssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvLmM6MTA0Olx0XHQuc3RhX2FkZCA9IG10NzkyMV9tYWNfc3RhX2FkZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3NkaW8uYy0xMDUtXHRcdC5zdGFfZXZlbnQgPSBtdDc5MjFfbWFjX3N0YV9ldmVudCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYz0xNTA9c3RhdGljIGludCBtdDc5MjF1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYy0xNjQtXHRcdC5yeF9jaGVjayA9IG10NzkyMV9yeF9jaGVjayxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jOjE2NTpcdFx0LnN0YV9hZGQgPSBtdDc5MjFfbWFjX3N0YV9hZGQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYy0xNjYtXHRcdC5zdGFfZXZlbnQgPSBtdDc5MjFfbWFjX3N0YV9ldmVudCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDk6MDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjYyODUKCQkJCQkJCW91dHB1dDogNTAKCQkJCQkJCXRob3VnaHRzOiAxMDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBgbXQ3OTIxX21hY19zdGFfYWRkYCBGdW5jdGlvbiBDYWxsKioKCkFscmlnaHQsIHNvIGBtdDc5MjFfbWFjX3N0YV9hZGRgIGlzIHRoZSBzdGF0aW9uIGFkZCBjYWxsYmFjayBmb3IgdGhlIG10NzYgZHJpdmVyLCBzcGVjaWZpY2FsbHkgdGhlIG10NzkyMS4gVGhhdCBtYWtlcyBzZW5zZSwgZ2l2ZW4gdGhlIG5hbWluZyBjb252ZW50aW9uLiBJdCYjMzk7cyBjYWxsZWQgYnkgbWFjODAyMTEsIHdoaWNoIGNvbmZpcm1zIGl0JiMzOTtzIHRoZSBjb3JyZWN0IGZ1bmN0aW9uIHRyaWdnZXJlZCB3aGVuIGEgbmV3IHN0YXRpb24gaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZXZpY2UuIE5vdywgdGhlIGNyaXRpY2FsIHF1ZXN0aW9uIGlzIGNvbmN1cnJlbmN5LiBJcyBhIG11dGV4IHByb3RlY3RpbmcgdGhpcyBzZWN0aW9uIG9mIGNvZGU/IEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSB3aGV0aGVyIHRoZSBjYWxsZXIgaW4gdGhlIG10NzYgZnJhbWV3b3JrLCBvciB0aGUgYG10NzkyMV9tYWNfc3RhX2FkZGAgZnVuY3Rpb24gaXRzZWxmLCBhY3F1aXJlcyBhIG11dGV4LiBNeSBuZXh0IHN0ZXAgaXMgdG8gZXhhbWluZSB0aGUgZnVuY3Rpb24mIzM5O3MgaW1wbGVtZW50YXRpb24gZGlyZWN0bHkgdG8gYXNjZXJ0YWluIGhvdyB0aGUgYWNjZXNzIHRvIHNoYXJlZCByZXNvdXJjZXMgaXMgaGFuZGxlZCB3aXRoaW4gdGhpcyByb3V0aW5lLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDgwOCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgODA4Olx0aW50IG10NzkyMV9tYWNfc3RhX2FkZChzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG4gODA5Olx0XHRcdCAgICAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKVxuIDgxMDpcdHtcbiA4MTE6XHRcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBjb250YWluZXJfb2YobWRldiwgc3RydWN0IG10NzkyeF9kZXYsIG10NzYpO1xuIDgxMjpcdFx0c3RydWN0IG10NzkyeF9zdGEgKm1zdGEgPSAoc3RydWN0IG10NzkyeF9zdGEgKilzdGEtXHUwMDNlZHJ2X3ByaXY7XG4gODEzOlx0XHRzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKXZpZi1cdTAwM2VkcnZfcHJpdjtcbiA4MTQ6XHRcdGludCByZXQsIGlkeDtcbiA4MTU6XHRcbiA4MTY6XHRcdGlmIChzdGEtXHUwMDNlYWlkIFx1MDAzZSBNVDc5MjFfTUFYX0FJRClcbiA4MTc6XHRcdFx0cmV0dXJuIC1FTk9FTlQ7XG4gODE4Olx0XG4gODE5Olx0XHRpZHggPSBtdDc2X3djaWRfYWxsb2MoZGV2LVx1MDAzZW10NzYud2NpZF9tYXNrLCBNVDc5MnhfV1RCTF9TVEEgLSAxKTtcbiA4MjA6XHRcdGlmIChpZHggXHUwMDNjIDApXG4gODIxOlx0XHRcdHJldHVybiAtRU5PU1BDO1xuIDgyMjpcdFxuIDgyMzpcdFx0SU5JVF9MSVNUX0hFQUQoXHUwMDI2bXN0YS1cdTAwM2VkZWZsaW5rLndjaWQucG9sbF9saXN0KTtcbiA4MjQ6XHRcdG1zdGEtXHUwMDNldmlmID0gbXZpZjtcbiA4MjU6XHRcdG1zdGEtXHUwMDNlZGVmbGluay53Y2lkLnN0YSA9IDE7XG4gODI2Olx0XHRtc3RhLVx1MDAzZWRlZmxpbmsud2NpZC5pZHggPSBpZHg7XG4gODI3Olx0XHRtc3RhLVx1MDAzZWRlZmxpbmsud2NpZC5waHlfaWR4ID0gbXZpZi1cdTAwM2Vic3NfY29uZi5tdDc2LmJhbmRfaWR4O1xuIDgyODpcdFx0bXN0YS1cdTAwM2VkZWZsaW5rLndjaWQudHhfaW5mbyB8PSBNVF9XQ0lEX1RYX0lORk9fU0VUO1xuIDgyOTpcdFx0bXN0YS1cdTAwM2VkZWZsaW5rLmxhc3RfdHhzID0gamlmZmllcztcbiA4MzA6XHRcdG1zdGEtXHUwMDNlZGVmbGluay5zdGEgPSBtc3RhO1xuIDgzMTpcdFxuIDgzMjpcdFx0aWYgKHN0YS1cdTAwM2V0ZGxzKVxuIDgzMzpcdFx0XHRzZXRfYml0KE1UX1dDSURfRkxBR19URExTX1BFRVIsIFx1MDAyNm1zdGEtXHUwMDNlZGVmbGluay53Y2lkLmZsYWdzKTtcbiA4MzQ6XHRcbiA4MzU6XHRcdHJldCA9IG10NzZfY29ubmFjX3BtX3dha2UoXHUwMDI2ZGV2LVx1MDAzZW1waHksIFx1MDAyNmRldi1cdTAwM2VwbSk7XG4gODM2Olx0XHRpZiAocmV0KVxuIDgzNzpcdFx0XHRyZXR1cm4gcmV0O1xuIDgzODpcdFxuIDgzOTpcdFx0aWYgKHZpZi1cdTAwM2V0eXBlID09IE5MODAyMTFfSUZUWVBFX1NUQVRJT04pXG4gODQwOlx0XHRcdG12aWYtXHUwMDNld2VwX3N0YSA9IG1zdGE7XG4gODQxOlx0XG4gODQyOlx0XHRtdDc5MjFfbWFjX3d0YmxfdXBkYXRlKGRldiwgaWR4LFxuIDg0MzpcdFx0XHRcdCAgICAgICBNVF9XVEJMX1VQREFURV9BRE1fQ09VTlRfQ0xFQVIpO1xuIDg0NDpcdFxuIDg0NTpcdFx0cmV0ID0gbXQ3OTIxX21jdV9zdGFfdXBkYXRlKGRldiwgc3RhLCB2aWYsIHRydWUsXG4gODQ2Olx0XHRcdFx0XHQgICAgTVQ3Nl9TVEFfSU5GT19TVEFURV9OT05FKTtcbiA4NDc6XHRcdGlmIChyZXQpXG4gODQ4Olx0XHRcdHJldHVybiByZXQ7XG4gODQ5Olx0XG4gODUwOlx0XHRtdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlKHZpZiwgdHJ1ZSk7XG4gODUxOlx0XG4gODUyOlx0XHRtdDc2X2Nvbm5hY19wb3dlcl9zYXZlX3NjaGVkKFx1MDAyNmRldi1cdTAwM2VtcGh5LCBcdTAwMjZkZXYtXHUwMDNlcG0pO1xuIDg1MzpcdFxuIDg1NDpcdFx0cmV0dXJuIDA7XG4gODU1Olx0fVxuIDg1NjpcdEVYUE9SVF9TWU1CT0xfR1BMKG10NzkyMV9tYWNfc3RhX2FkZCk7XG4gODU3Olx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjAxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3NTY4CgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogMzc3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBNdXRleCBVc2FnZSBpbiBtdDc5MjEgRHJpdmVyIGZvciA2IEdIeiBCYW5kIE9wZXJhdGlvbnMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYG10NzkyMV9tYWNfc3RhX2FkZGAgZnVuY3Rpb24gYW5kIHRyeWluZyB0byBmaWd1cmUgb3V0IHRoZSBtdXRleCBhY3F1aXNpdGlvbiBzdHJhdGVneS4gSXQgZG9lc24mIzM5O3Qgc2VlbSB0byBkaXJlY3RseSBjYWxsIGBtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpYCwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuIE15IGluaXRpYWwgdGhvdWdodCBpcyBtYXliZSB0aGUgY2FsbGluZyBmdW5jdGlvbiwgb3IgcGVyaGFwcyBhIGZ1bmN0aW9uICppdCogY2FsbHMsIGhvbGRzIHRoZSBtdXRleC4gTWF5YmUgYG10NzkyMV9tY3Vfc3RhX3VwZGF0ZWA/IEhtbSwgbGV0JiMzOTtzIHNlZS4KCldhaXQsIGxvb2tpbmcgYXQgdGhlIHBhdGNoLCBJIHNlZSB0aGV5JiMzOTt2ZSBjaGFuZ2VkIGBtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCB0byBgX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYC4gVGhhdCBpbnRlcm5hbCBmdW5jdGlvbiBuYW1lIHN1Z2dlc3RzIHRoZSBtdXRleCBpcyAqYWxyZWFkeSogaGVsZC4gVGhlIGNoYW5nZSBpbXBsaWVzIHRoYXQgdGhlIGZ1bmN0aW9uIGlzIG5vdyBiZWluZyBjYWxsZWQgaW4gYSBjb250ZXh0IHdoZXJlIHRoZSBtdXRleCBpcyBhc3N1bWVkIHRvIGJlIGFjcXVpcmVkLiBUaGVyZWZvcmUsIHRoZSBmdW5jdGlvbiBgbXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZWAgbXVzdCBiZSBjYWxsZWQgd2l0aCB0aGUgbXV0ZXggYWxyZWFkeSBoZWxkLgoKU28gdGhlIHF1ZXN0aW9uIGlzLCAqd2hlcmUqIGlzIHRoaXMgbXV0ZXggYWNxdWlyZWQ/IExldCYjMzk7cyBjaGVjayB0aGUgY2FsbGVycyBvZiBgbXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZWAuIEFscmlnaHQsIGl0JiMzOTtzIGNhbGxlZCBmcm9tIGJvdGggYG10NzkyMV9tYWNfc3RhX2FkZGAgYW5kIGBtdDc5MjFfbWFjX3N0YV9yZW1vdmVgLiBUaGUga2V5IHF1ZXN0aW9uIGlzIHdoZXRoZXIgYG10NzkyMV9tYWNfc3RhX2FkZGAgKml0c2VsZiogaG9sZHMgdGhlIG11dGV4LiBMZXQmIzM5O3Mgc2VlIGlmIHRoZXJlIGFyZSBhbnkgaGludHMgaW4gdGhlIGBtdDc2X2Nvbm5hY19wbV93YWtlYCBjb250ZXh0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc2X2Nvbm5hY19wbV93YWtlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jPTk2PW10NzYxNV9wbV9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmMtMTI1LVx0cG0tXHUwMDNlZW5hYmxlID0gZmFsc2U7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmM6MTI2Olx0bXQ3Nl9jb25uYWNfcG1fd2FrZShcdTAwMjZkZXYtXHUwMDNlbXBoeSwgcG0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jLTEyNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWMuYz0xOTQ1PXZvaWQgbXQ3NjE1X3VwZGF0ZV9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqbXBoeSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWMuYy0xOTQ4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFjLmM6MTk0OTpcdGlmIChtdDc2X2Nvbm5hY19wbV93YWtlKFx1MDAyNmRldi1cdTAwM2VtcGh5LCBcdTAwMjZkZXYtXHUwMDNlcG0pKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFjLmMtMTk1MC1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYz0yODQ9aW50IG10NzYxNV9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKm1waHkpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jLTI5MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYzoyOTE6XHRtdDc2X2Nvbm5hY19wbV93YWtlKG1waHksIFx1MDAyNmRldi1cdTAwM2VwbSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmMtMjkyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYz02MzQ9aW50IG10NzYxNV9tYWNfc3RhX2FkZChzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jLTY1My1cdHBoeSA9IG12aWYtXHUwMDNlbXQ3Ni5iYW5kX2lkeCA/IG10NzYxNV9leHRfcGh5KGRldikgOiBcdTAwMjZkZXYtXHUwMDNlcGh5O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jOjY1NDpcdGVyciA9IG10NzZfY29ubmFjX3BtX3dha2UocGh5LVx1MDAzZW10NzYsIFx1MDAyNmRldi1cdTAwM2VwbSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmMtNjU1LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmM9Njc2PXZvaWQgbXQ3NjE1X21hY19zdGFfcmVtb3ZlKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmMtNjg2LVx0cGh5ID0gbXZpZi1cdTAwM2VtdDc2LmJhbmRfaWR4ID8gbXQ3NjE1X2V4dF9waHkoZGV2KSA6IFx1MDAyNmRldi1cdTAwM2VwaHk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmM6Njg3Olx0bXQ3Nl9jb25uYWNfcG1fd2FrZShwaHktXHUwMDNlbXQ3NiwgXHUwMDI2ZGV2LVx1MDAzZXBtKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYy02ODgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvcGNpLmM9NzI9c3RhdGljIGludCBtdDc2MTVfcGNpX3N1c3BlbmQoc3RydWN0IHBjaV9kZXYgKnBkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9wY2kuYy03OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3BjaS5jOjc5Olx0ZXJyID0gbXQ3Nl9jb25uYWNfcG1fd2FrZShcdTAwMjZkZXYtXHUwMDNlbXBoeSwgXHUwMDI2ZGV2LVx1MDAzZXBtKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3BjaS5jLTgwLVx0aWYgKGVyciBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjLmg9MzU2PXN0YXRpYyBpbmxpbmUgdm9pZCBtdDc2X2Nvbm5hY19pcnFfZW5hYmxlKHN0cnVjdCBtdDc2X2RldiAqZGV2LCB1MzIgbWFzaylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjLmgtMzYxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hYy5oOjM2MjppbnQgbXQ3Nl9jb25uYWNfcG1fd2FrZShzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfY29ubmFjX3BtICpwbSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjLmgtMzYzLXZvaWQgbXQ3Nl9jb25uYWNfcG93ZXJfc2F2ZV9zY2hlZChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjLmg9NDIxPW10NzZfY29ubmFjX211dGV4X2FjcXVpcmUoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X2Nvbm5hY19wbSAqcG0pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hYy5oLTQyNC1cdG11dGV4X2xvY2soXHUwMDI2ZGV2LVx1MDAzZW11dGV4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWMuaDo0MjU6XHRtdDc2X2Nvbm5hY19wbV93YWtlKFx1MDAyNmRldi1cdTAwM2VwaHksIHBtKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWMuaC00MjYtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWFjLmM9MzQ9RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9jb25uYWNfZ2VuX3BwZV90aHJlc2gpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYy0zNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWFjLmM6MzY6aW50IG10NzZfY29ubmFjX3BtX3dha2Uoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBtdDc2X2Nvbm5hY19wbSAqcG0pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jLTM3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jLTU5LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWFjLmM6NjA6RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9jb25uYWNfcG1fd2FrZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jLTYxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz0xNDM9bXQ3OTIxX3BtX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xNjMtXHRwbS1cdTAwM2VlbmFibGUgPSBmYWxzZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxNjQ6XHRtdDc2X2Nvbm5hY19wbV93YWtlKFx1MDAyNmRldi1cdTAwM2VtcGh5LCBwbSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTY1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz00Nzc9aW50IG10NzkyMV9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKm1waHkpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQ4Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0ODM6XHRtdDc2X2Nvbm5hY19wbV93YWtlKG1waHksIFx1MDAyNmRldi1cdTAwM2VwbSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDg0LVx0cmV0ID0gbXQ3OTIxX21jdV9zZXRfY2hhbl9pbmZvKHBoeSwgTUNVX0VYVF9DTUQoQ0hBTk5FTF9TV0lUQ0gpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9ODA4PWludCBtdDc5MjFfbWFjX3N0YV9hZGQoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy04MzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6ODM1Olx0cmV0ID0gbXQ3Nl9jb25uYWNfcG1fd2FrZShcdTAwMjZkZXYtXHUwMDNlbXBoeSwgXHUwMDI2ZGV2LVx1MDAzZXBtKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy04MzYtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz04OTE9dm9pZCBtdDc5MjFfbWFjX3N0YV9yZW1vdmUoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy04OTgtXHRtdDc2X2Nvbm5hY19mcmVlX3BlbmRpbmdfdHhfc2ticyhcdTAwMjZkZXYtXHUwMDNlcG0sIFx1MDAyNm1zdGEtXHUwMDNlZGVmbGluay53Y2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo4OTk6XHRtdDc2X2Nvbm5hY19wbV93YWtlKFx1MDAyNmRldi1cdTAwM2VtcGh5LCBcdTAwMjZkZXYtXHUwMDNlcG0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTkwMC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MTgyPW10NzkyNV9wbV9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjAyLVx0cG0tXHUwMDNlZW5hYmxlID0gZmFsc2U7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MjAzOlx0bXQ3Nl9jb25uYWNfcG1fd2FrZShcdTAwMjZkZXYtXHUwMDNlbXBoeSwgcG0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTIwNC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9ODg3PXN0YXRpYyBpbnQgbXQ3OTI1X21hY19saW5rX3N0YV9hZGQoc3RydWN0IG10NzZfZGV2ICptZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy05MzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6OTMzOlx0cmV0ID0gbXQ3Nl9jb25uYWNfcG1fd2FrZShcdTAwMjZkZXYtXHUwMDNlbXBoeSwgXHUwMDI2ZGV2LVx1MDAzZXBtKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy05MzQtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0xMjM4PXN0YXRpYyB2b2lkIG10NzkyNV9tYWNfbGlua19zdGFfcmVtb3ZlKHN0cnVjdCBtdDc2X2RldiAqbWRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTI1MS1cdG10NzZfY29ubmFjX2ZyZWVfcGVuZGluZ190eF9za2JzKFx1MDAyNmRldi1cdTAwM2VwbSwgd2NpZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTI1MjpcdG10NzZfY29ubmFjX3BtX3dha2UoXHUwMDI2ZGV2LVx1MDAzZW1waHksIFx1MDAyNmRldi1cdTAwM2VwbSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTI1My1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9tYWMuYz0yNTM9dm9pZCBtdDc5MnhfdXBkYXRlX2NoYW5uZWwoc3RydWN0IG10NzZfcGh5ICptcGh5KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X21hYy5jLTI1Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X21hYy5jOjI1NzpcdGlmIChtdDc2X2Nvbm5hY19wbV93YWtlKG1waHksIFx1MDAyNmRldi1cdTAwM2VwbSkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9tYWMuYy0yNTgtXHRcdHJldHVybjtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDk6MDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE1MjYKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiA0OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhbmFseXNpcyBvZiB0aGF0IGNvZGUgc25pcHBldDoKCioqRGl2aW5nIGludG8gdGhlIE1UNzkyMSBNQUMgU1RBIEFkZGl0aW9uKioKCkFscmlnaHQsIHNvIGBtdDc5MjFfbWFjX3N0YV9hZGRgIGRvZXNuJiMzOTt0IHNlZW0gdG8gaGF2ZSBhIGRpcmVjdCBgbXV0ZXhfYWNxdWlyZWAgY2FsbCwgd2hpY2ggaXMgYSBiaXQgdW51c3VhbC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHRyYWNlIHRoZSBsb2NraW5nIGJlaGF2aW9yIGhlcmUuIE5vdywgaG9sZCBvbiwgYG10NzkyeF9tdXRleF9hY3F1aXJlYC4uLiB0aGF0JiMzOTtzIHByb2JhYmx5IGEgbWFjcm8gb3IgYSB3cmFwcGVyIGZ1bmN0aW9uLCBub3QgYSBiYXNpYyBtdXRleCBhY3F1aXNpdGlvbi4gSSBuZWVkIHRvIGludmVzdGlnYXRlIHRoYXQgbWFjcm8gb3IgZnVuY3Rpb24gZGVmaW5pdGlvbiB0byB1bmRlcnN0YW5kIHByZWNpc2VseSBob3cgdGhlIG11dGV4IGlzIGJlaW5nIGhhbmRsZWQgaW4gdGhpcyBjb250ZXh0LiBMZXQgbWUgZGlnIGludG8gdGhhdCByaWdodCBhd2F5IGFuZCBzZWUgd2hhdCBpdCByZXZlYWxzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc5MnhfbXV0ZXhfYWNxdWlyZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA1ODUgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz03PW10NzkyMV9yZWdfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjExOlx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xMi1cdG10NzZfd3IoZGV2LCBkZXYtXHUwMDNlbXQ3Ni5kZWJ1Z2ZzX3JlZywgdmFsKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MTk9bXQ3OTIxX3JlZ19nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjIzOlx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNC1cdCp2YWwgPSBtdDc2X3JyKGRldiwgZGV2LVx1MDAzZW10NzYuZGVidWdmc19yZWcpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz0zMz1tdDc5MjFfZndfZGVidWdfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjM3Olx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0zOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9OTE9bXQ3OTIxX3R4cHdyKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtOTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6OTc6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTk4LVx0cmV0ID0gbXQ3OTIxX2dldF90eHB3cl9pbmZvKGRldiwgXHUwMDI2dHhwd3IpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz0xODg9bXQ3OTIxX2RlZXBfc2xlZXBfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTE5Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxOTg6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTE5OS1cdGlmIChwbS1cdTAwM2Vkc19lbmFibGVfdXNlciA9PSBlbmFibGUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTIyNz1zdGF0aWMgaW50IG10NzkyMV9jaGlwX3Jlc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIzOC1cdFx0LyogQ29sbGVjdCB0aGUgY29yZSBkdW1wIGJlZm9yZSByZXNldCB3aWZpc3lzLiAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjIzOTpcdFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNDAtXHRcdHJldCA9IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jPTE0PXN0YXRpYyBzc2l6ZV90IG10NzkyMV90aGVybWFsX3RlbXBfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjI0Olx0XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShtZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yNS1cdFx0dGVtcGVyYXR1cmUgPSBtdDc5MjFfbWN1X2dldF90ZW1wZXJhdHVyZShwaHkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTgzOD1ib29sIG10NzkyMV91c2Jfc2Rpb190eF9zdGF0dXNfZGF0YShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHU4ICp1cGRhdGUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODQxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6ODQyOlx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTg0My1cdG10NzkyMV9tYWNfc3RhX3BvbGwoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYz04NTE9dm9pZCBtdDc5MjFfc2V0X2lwdjZfbnNfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODYzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6ODY0Olx0XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODY1LVx0XHRyZXQgPSBtdDc2X21jdV9za2Jfc2VuZF9tc2coXHUwMDI2ZGV2LVx1MDAzZW10NzYsIHNrYixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MjcyPXN0YXRpYyBpbnQgbXQ3OTIxX3N0YXJ0KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yNzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6Mjc3Olx0bXQ3OTJ4X211dGV4X2FjcXVpcmUocGh5LVx1MDAzZWRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjc4LVx0ZXJyID0gX19tdDc5MjFfc3RhcnQocGh5KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9Mjg0PXN0YXRpYyB2b2lkIG10NzkyMV9zdG9wKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBib29sIHN1c3BlbmQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI4OS1cdGlmIChtdDc2X2lzX21taW8oXHUwMDI2ZGV2LVx1MDAzZW10NzYpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MjkwOlx0XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI5MS1cdFx0ZXJyID0gbXQ3OTIxX21jdV9yYWRpb19sZWRfY3RybChkZXYsIEVYVF9DTURfUkFESU9fT0ZGX0xFRCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTMwMT1tdDc5MjFfYWRkX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzA4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjMwOTpcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzEwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0zODc9dm9pZCBtdDc5MjFfcm9jX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zOTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6Mzk0Olx0bXQ3OTJ4X211dGV4X2FjcXVpcmUocGh5LVx1MDAzZWRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzk1LVx0aWYgKCF0ZXN0X2FuZF9jbGVhcl9iaXQoTVQ3Nl9TVEFURV9ST0MsIFx1MDAyNnBoeS1cdTAwM2VtdDc2LVx1MDAzZXN0YXRlKSkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz00MDY9c3RhdGljIGludCBtdDc5MjFfYWJvcnRfcm9jKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksIHN0cnVjdCBtdDc5MnhfdmlmICp2aWYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQxMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0MTM6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShwaHktXHUwMDNlZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00MTQtXHRpZiAodGVzdF9hbmRfY2xlYXJfYml0KE1UNzZfU1RBVEVfUk9DLCBcdTAwMjZwaHktXHUwMDNlbXQ3Ni1cdTAwM2VzdGF0ZSkpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTQ1MT1zdGF0aWMgaW50IG10NzkyMV9yZW1haW5fb25fY2hhbm5lbChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDYwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjQ2MTpcdG10NzkyeF9tdXRleF9hY3F1aXJlKHBoeS1cdTAwM2VkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQ2Mi1cdGVyciA9IG10NzkyMV9zZXRfcm9jKHBoeSwgbXZpZiwgY2hhbiwgZHVyYXRpb24sIE1UNzkyMV9ST0NfUkVRX1JPQyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTUwMj1zdGF0aWMgaW50IG10NzkyMV9zZXRfa2V5KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBlbnVtIHNldF9rZXlfY21kIGNtZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNTQ1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjU0NjpcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNTQ3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz02MzQ9c3RhdGljIGludCBtdDc5MjFfY29uZmlnKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBpbnQgcmFkaW9faWR4LCB1MzIgY2hhbmdlZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNjQ1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjY0NjpcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNjQ3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz02NjY9c3RhdGljIHZvaWQgbXQ3OTIxX2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTY4Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo2ODg6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTY4OS1cdG10NzkyMV9tY3Vfc2V0X3J4ZmlsdGVyKGRldiwgZmxhZ3MsIDAsIDApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz02OTU9c3RhdGljIHZvaWQgbXQ3OTIxX2Jzc19pbmZvX2NoYW5nZWQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTcwMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo3MDM6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTcwNC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9ODU4PWludCBtdDc5MjFfbWFjX3N0YV9ldmVudChzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTg3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo4NzE6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTg3Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9OTI3PXN0YXRpYyBpbnQgbXQ3OTIxX3NldF9ydHNfdGhyZXNob2xkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBpbnQgcmFkaW9faWR4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy05MzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6OTMyOlx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy05MzMtXHRtdDc2X2Nvbm5hY19tY3Vfc2V0X3J0c190aHJlc2goXHUwMDI2ZGV2LVx1MDAzZW10NzYsIHZhbCwgMCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTk0MD1tdDc5MjFfYW1wZHVfYWN0aW9uKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy05NTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6OTU4Olx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy05NTktXHRzd2l0Y2ggKGFjdGlvbikge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz05OTY9c3RhdGljIGludCBtdDc5MjFfc3RhX3N0YXRlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMDA0LVx0aWYgKGRldi1cdTAwM2VwbS5kc19lbmFibGUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxMDA1Olx0XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTEwMDYtXHRcdG10NzZfY29ubmFjX3N0YV9zdGF0ZV9kcChcdTAwMjZkZXYtXHUwMDNlbXQ3Niwgb2xkX3N0YXRlLCBuZXdfc3RhdGUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMDU1PW10NzkyMV9od19zY2FuKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMDYxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjEwNjI6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTEwNjMtXHRlcnIgPSBtdDc2X2Nvbm5hY19tY3VfaHdfc2NhbihtcGh5LCB2aWYsIHJlcSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTEwNzA9bXQ3OTIxX2NhbmNlbF9od19zY2FuKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMDc0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjEwNzU6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTEwNzYtXHRtdDc2X2Nvbm5hY19tY3VfY2FuY2VsX2h3X3NjYW4obXBoeSwgdmlmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTA4MT1tdDc5MjFfc3RhcnRfc2NoZWRfc2NhbihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTA4OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxMDg5Olx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMDkwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMTAzPW10NzkyMV9zdG9wX3NjaGVkX3NjYW4oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTExMDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTEwOTpcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTExMC1cdGVyciA9IG10NzZfY29ubmFjX21jdV9zY2hlZF9zY2FuX2VuYWJsZShtcGh5LCB2aWYsIGZhbHNlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTExNz1tdDc5MjFfc2V0X2FudGVubmEoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGludCByYWRpb19pZHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTExMjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTEzMDpcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTEzMS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTE0ND1zdGF0aWMgaW50IG10NzkyMV9zdXNwZW5kKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMTU1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjExNTY6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTExNTctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTExNjk9c3RhdGljIGludCBtdDc5MjFfcmVzdW1lKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMTczLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjExNzQ6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTExNzUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTExOTA9c3RhdGljIHZvaWQgbXQ3OTIxX3NldF9yZWtleV9kYXRhKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMTk1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjExOTY6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTExOTctXHRtdDc2X2Nvbm5hY19tY3VfdXBkYXRlX2d0a19yZWtleShodywgdmlmLCBkYXRhKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTIwMj1zdGF0aWMgdm9pZCBtdDc5MjFfc3RhX3NldF9kZWNhcF9vZmZsb2FkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMjEyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjEyMTM6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTEyMTQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTEzMDI9c3RhdGljIGludCBtdDc5MjFfc2V0X3Nhcl9zcGVjcyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTMwNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxMzA4Olx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMzA5LVx0ZXJyID0gbXQ3OTIxX21jdV9zZXRfY2xjKGRldiwgZGV2LVx1MDAzZW10NzYuYWxwaGEyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMzIyPW10NzkyMV9jaGFubmVsX3N3aXRjaF9iZWFjb24oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTEzMjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTMyODpcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTMyOS1cdG10NzkyMV9tY3VfdW5pX2FkZF9iZWFjb25fb2ZmbG9hZChkZXYsIGh3LCB2aWYsIHRydWUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMzM0PW10NzkyMV9zdGFydF9hcChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTM0MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxMzQyOlx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMzQzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMzYyPW10NzkyMV9zdG9wX2FwKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMzY5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjEzNzA6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTEzNzEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTE0MDQ9bXQ3OTIxX2NoYW5nZV9jaGFuY3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xNDE4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjE0MTk6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShwaHktXHUwMDNlZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xNDIwLVx0aWYgKHZpZi1cdTAwM2V0eXBlID09IE5MODAyMTFfSUZUWVBFX01PTklUT1IpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTQyOT1zdGF0aWMgdm9pZCBtdDc5MjFfbWdkX3ByZXBhcmVfdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTE0MzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTQzODpcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTQzOS1cdG10NzkyMV9zZXRfcm9jKG12aWYtXHUwMDNlcGh5LCBtdmlmLCBtdmlmLVx1MDAzZWJzc19jb25mLm10NzYuY3R4LVx1MDAzZWRlZi5jaGFuLCBkdXJhdGlvbixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTQ2Mj12b2lkIG10NzkyMV9jc2Ffd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTE0NzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTQ3NDpcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTQ3NS1cdHJldCA9IG10NzZfY29ubmFjX21jdV91bmlfc2V0X2NoY3R4KG12aWYtXHUwMDNlcGh5LVx1MDAzZW10NzYsIFx1MDAyNm12aWYtXHUwMDNlYnNzX2NvbmYubXQ3Nixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTUzNj1zdGF0aWMgdm9pZCBtdDc5MjFfcmZraWxsX3BvbGwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTE1NDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTU0MTpcdG10NzkyeF9tdXRleF9hY3F1aXJlKHBoeS1cdTAwM2VkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTE1NDItXHRyZXQgPSBtdDc5MjFfbWN1X3dmX3JmX3Bpbl9jdHJsKHBoeSwgV0ZfUkZfUElOX1BPTEwpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYz0xMDE9aW50IG10NzkyMV9tY3VfcmVnZF91cGRhdGUoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdTggKmFscGhhMixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmMtMTA3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jOjEwODpcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmMtMTA5LVx0cmV0ID0gX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlKGRldiwgYWxwaGEyLCBjb3VudHJ5X2llX2Vudik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jPTg9bXQ3OTI1X3JlZ19zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTM6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE0LVx0bXQ3OTI1X21jdV9yZWd2YWwoZGV2LCBkZXYtXHUwMDNlbXQ3Ni5kZWJ1Z2ZzX3JlZywgXHUwMDI2cmVndmFsLCB0cnVlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MjE9bXQ3OTI1X3JlZ19nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjI3Olx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yOC1cdHJldCA9IG10NzkyNV9tY3VfcmVndmFsKGRldiwgZGV2LVx1MDAzZW10NzYuZGVidWdmc19yZWcsIFx1MDAyNnJlZ3ZhbCwgZmFsc2UpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz0zOT1tdDc5MjVfZndfZGVidWdfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTQyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjQzOlx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy00NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MTE4PW10NzkyNV90eHB3cihzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEyOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoxMzA6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEzMS1cdHJldCA9IG10NzkyNV9nZXRfdHhwd3JfaW5mbyhkZXYsIGJhbmRfaWR4LCB0eHB3cik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jPTIyNz1tdDc5MjVfZGVlcF9zbGVlcF9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjIzNzpcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjM4LVx0aWYgKHBtLVx1MDAzZWRzX2VuYWJsZV91c2VyID09IGVuYWJsZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MjY2PXN0YXRpYyBpbnQgbXQ3OTI1X2NoaXBfcmVzZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjc3LVx0XHQvKiBDb2xsZWN0IHRoZSBjb3JlIGR1bXAgYmVmb3JlIHJlc2V0IHdpZmlzeXMuICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6Mjc4Olx0XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTI3OS1cdFx0cmV0ID0gbXQ3OTI1X21jdV9jaGlwX2NvbmZpZyhkZXYsIFwmIzM0O2Fzc2VydFwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jPTE0PXN0YXRpYyBzc2l6ZV90IG10NzkyNV90aGVybWFsX3RlbXBfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jOjI0Olx0XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShtZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yNS1cdFx0dGVtcGVyYXR1cmUgPSBtdDc5MjVfbWN1X2dldF90ZW1wZXJhdHVyZShwaHkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jPTE0Nzc9Ym9vbCBtdDc5MjVfdXNiX3NkaW9fdHhfc3RhdHVzX2RhdGEoc3RydWN0IG10NzZfZGV2ICptZGV2LCB1OCAqdXBkYXRlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTE0ODAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxNDgxOlx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTE0ODItXHRtdDc5MjVfbWFjX3N0YV9wb2xsKGRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM9MTQ5MD12b2lkIG10NzkyNV9zZXRfaXB2Nl9uc193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYy0xNTAyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmM6MTUwMzpcdFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jLTE1MDQtXHRcdHJldCA9IG10NzZfbWN1X3NrYl9zZW5kX21zZyhcdTAwMjZkZXYtXHUwMDNlbXQ3Niwgc2tiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0zNjM9c3RhdGljIGludCBtdDc5MjVfc3RhcnQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTM2Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzozNjg6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShwaHktXHUwMDNlZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0zNjktXHRlcnIgPSBfX210NzkyNV9zdGFydChwaHkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz00NTE9bXQ3OTI1X2FkZF9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTQ1Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzo0NTg6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTQ1OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9NTA5PXZvaWQgbXQ3OTI1X3JvY193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNTE4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjUxOTpcdG10NzkyeF9tdXRleF9hY3F1aXJlKHBoeS1cdTAwM2VkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTUyMC1cdGllZWU4MDIxMV9pdGVyYXRlX2FjdGl2ZV9pbnRlcmZhY2VzKHBoeS1cdTAwM2VtdDc2LVx1MDAzZWh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz01Mjc9c3RhdGljIGludCBtdDc5MjVfYWJvcnRfcm9jKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTUzNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzo1MzU6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShwaHktXHUwMDNlZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy01MzYtXHRpZiAodGVzdF9hbmRfY2xlYXJfYml0KE1UNzZfU1RBVEVfUk9DLCBcdTAwMjZwaHktXHUwMDNlbXQ3Ni1cdTAwM2VzdGF0ZSkpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTYwMD1zdGF0aWMgaW50IG10NzkyNV9yZW1haW5fb25fY2hhbm5lbChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNjA5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjYxMDpcdG10NzkyeF9tdXRleF9hY3F1aXJlKHBoeS1cdTAwM2VkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTYxMS1cdGVyciA9IG10NzkyNV9zZXRfcm9jKHBoeSwgXHUwMDI2bXZpZi1cdTAwM2Vic3NfY29uZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9NzA1PXN0YXRpYyBpbnQgbXQ3OTI1X3NldF9rZXkoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGVudW0gc2V0X2tleV9jbWQgY21kLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy03MjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6NzI2Olx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy03MjctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTgwNT1zdGF0aWMgaW50IG10NzkyNV9jb25maWcoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGludCByYWRpb19pZHgsIHUzMiBjaGFuZ2VkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy04MDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6ODEwOlx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy04MTEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTgzMD1zdGF0aWMgdm9pZCBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtODUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjg1MTpcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtODUyLVx0bXQ3OTI1X21jdV9zZXRfcnhmaWx0ZXIoZGV2LCBmbGFncywgMCwgMCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTExNDU9bXQ3OTI1X21hY19zZXRfbGlua3Moc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xMTY2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjExNjc6XHRcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTE2OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTE3Nz1zdGF0aWMgdm9pZCBtdDc5MjVfbWFjX2xpbmtfc3RhX2Fzc29jKHN0cnVjdCBtdDc2X2RldiAqbWRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTE4NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxMTg2Olx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xMTg3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0xMzc3PXN0YXRpYyBpbnQgbXQ3OTI1X3NldF9ydHNfdGhyZXNob2xkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBpbnQgcmFkaW9faWR4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xMzgxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjEzODI6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTEzODMtXHRtdDc5MjVfbWN1X3NldF9ydHNfdGhyZXNoKFx1MDAyNmRldi1cdTAwM2VwaHksIHZhbCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTEzOTA9bXQ3OTI1X2FtcGR1X2FjdGlvbihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTQwNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxNDA4Olx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNDA5LVx0c3dpdGNoIChhY3Rpb24pIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTQ0Nz1tdDc5MjVfbWxvX3BtX2l0ZXIodm9pZCAqcHJpdiwgdTggKm1hYywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTQ1OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxNDU5Olx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNDYwLVx0Zm9yX2VhY2hfc2V0X2JpdChpLCBcdTAwMjZ2YWxpZCwgSUVFRTgwMjExX01MRF9NQVhfTlVNX0xJTktTKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTE1NDM9bXQ3OTI1X2h3X3NjYW4oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE1NDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTU1MDpcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTU1MS1cdGVyciA9IG10NzkyNV9tY3VfaHdfc2NhbihtcGh5LCB2aWYsIHJlcSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTE1NTg9bXQ3OTI1X2NhbmNlbF9od19zY2FuKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNTYyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjE1NjM6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE1NjQtXHRtdDc5MjVfbWN1X2NhbmNlbF9od19zY2FuKG1waHksIHZpZik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTE1Njk9bXQ3OTI1X3N0YXJ0X3NjaGVkX3NjYW4oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE1NzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTU3NzpcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTU3OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTU5MT1tdDc5MjVfc3RvcF9zY2hlZF9zY2FuKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNTk2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjE1OTc6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE1OTgtXHRlcnIgPSBtdDc5MjVfbWN1X3NjaGVkX3NjYW5fZW5hYmxlKG1waHksIHZpZiwgZmFsc2UpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0xNjA1PW10NzkyNV9zZXRfYW50ZW5uYShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgaW50IHJhZGlvX2lkeCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTYxNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxNjE4Olx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNjE5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0xNjMzPXN0YXRpYyBpbnQgbXQ3OTI1X3N1c3BlbmQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE2NDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTY0NTpcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTY0Ni1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTY1OD1zdGF0aWMgaW50IG10NzkyNV9yZXN1bWUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE2NjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTY2MzpcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTY2NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTY3OT1zdGF0aWMgdm9pZCBtdDc5MjVfc2V0X3Jla2V5X2RhdGEoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE2ODQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTY4NTpcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTY4Ni1cdG10NzZfY29ubmFjX21jdV91cGRhdGVfZ3RrX3Jla2V5KGh3LCB2aWYsIGRhdGEpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0xNjkxPXN0YXRpYyB2b2lkIG10NzkyNV9zdGFfc2V0X2RlY2FwX29mZmxvYWQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE3MDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTcwNTpcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTcwNi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTgyMD1zdGF0aWMgaW50IG10NzkyNV9zZXRfc2FyX3NwZWNzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xODI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjE4MjY6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE4MjctXHRlcnIgPSBtdDc5MjVfc2V0X3R4X3Nhcl9wd3IoaHcsIHNhcik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTE4MzQ9bXQ3OTI1X2NoYW5uZWxfc3dpdGNoX2JlYWNvbihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTgzOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxODQwOlx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xODQxLVx0bXQ3OTI1X21jdV91bmlfYWRkX2JlYWNvbl9vZmZsb2FkKGRldiwgaHcsIHZpZiwgdHJ1ZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTE4NjY9bXQ3OTI1X3N0YXJ0X2FwKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xODcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjE4NzM6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE4NzQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTE4OTQ9bXQ3OTI1X3N0b3BfYXAoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE5MDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTkwMTpcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTkwMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTkzNz1tdDc5MjVfY2hhbmdlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE5NTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTk1NDpcdG10NzkyeF9tdXRleF9hY3F1aXJlKHBoeS1cdTAwM2VkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE5NTUtXHRpZiAodmlmLVx1MDAzZXR5cGUgPT0gTkw4MDIxMV9JRlRZUEVfTU9OSVRPUikge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0xOTg5PXN0YXRpYyB2b2lkIG10NzkyNV9tZ2RfcHJlcGFyZV90eChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTk5Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxOTk4Olx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xOTk5LVx0bXQ3OTI1X3NldF9yb2MobXZpZi1cdTAwM2VwaHksIFx1MDAyNm12aWYtXHUwMDNlYnNzX2NvbmYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTIwMTQ9c3RhdGljIHZvaWQgbXQ3OTI1X3ZpZl9jZmdfY2hhbmdlZChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjAyNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoyMDI1Olx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yMDI2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0yMDY0PXN0YXRpYyB2b2lkIG10NzkyNV9saW5rX2luZm9fY2hhbmdlZChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjA3NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoyMDc2Olx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yMDc3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0yMTIzPW10NzkyNV9jaGFuZ2VfdmlmX2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yMTQwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjIxNDE6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTIxNDItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTIyMzI9bXQ3OTI1X2NoYW5nZV9zdGFfbGlua3Moc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTIyNDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MjI0MzpcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjI0NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MjM1ND1zdGF0aWMgdm9pZCBtdDc5MjVfcmZraWxsX3BvbGwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTIzNTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MjM1OTpcdG10NzkyeF9tdXRleF9hY3F1aXJlKHBoeS1cdTAwM2VkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTIzNjAtXHRyZXQgPSBtdDc5MjVfbWN1X3dmX3JmX3Bpbl9jdHJsKHBoeSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTIzNzU9dm9pZCBtdDc5MjVfY3NhX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjUwMgoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDEzMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgTXV0ZXggQWNxdWlzaXRpb24gYW5kIFBvd2VyIE1hbmFnZW1lbnQgaW4gdGhlIE1UNzYgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kLCByaWdodCBvZmYgdGhlIGJhdCwgYG10NzkyeF9tdXRleF9hY3F1aXJlYCDigJMgdGhhdCYjMzk7cyBhIG1hY3JvIG9yIGEgZnVuY3Rpb24sIG9idmlvdXNseS4gTmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgbXV0ZXggaXMgYmVpbmcgaGFuZGxlZCBhcm91bmQgcG93ZXIgbWFuYWdlbWVudC4gTGV0IG1lIGxvb2sgYXQgYG10NzZfY29ubmFjX3BtX3dha2VgLi4ubm9wZSwgaXQgZG9lc24mIzM5O3QgYXBwZWFyIHRvIGFjcXVpcmUgdGhlIG11dGV4IGl0c2VsZi4gSG1tLCBzbyB3aGVyZSYjMzk7cyB0aGUgbG9ja2luZyBoYXBwZW5pbmc/IEFoYSEgYG10NzZfY29ubmFjX211dGV4X2FjcXVpcmVgIOKAkyB0aGF0IG9uZSAqZG9lcyogYWNxdWlyZSB0aGUgbXV0ZXggYW5kIHRoZW4gY2FsbHMgdGhlIHBvd2VyIG1hbmFnZW1lbnQgd2FrZS11cCBmdW5jdGlvbiwgYG10NzZfY29ubmFjX3BtX3dha2VgLiBPa2F5LCB0aGF0IG1ha2VzIHNlbnNlLCB0aGV5JiMzOTtyZSBsaWtlbHkgY291cGxlZCB0byBhdm9pZCByYWNlIGNvbmRpdGlvbnMuCgpCdXQgaGVyZSYjMzk7cyBhIHdyaW5rbGU6IEkgc2VlIHRoYXQgYG10NzkyMV9tYWNfc3RhX2FkZGAgY2FsbHMgYG10NzZfY29ubmFjX3BtX3dha2VgIGRpcmVjdGx5LiBUaGF0JiMzOTtzIGEgYml0IG9kZC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2h5IGl0IGJ5cGFzc2VzIHRoZSBtdXRleCBhY3F1aXNpdGlvbiB0aGF0IGlzIHByZXNlbnQgaW4gdGhlIG5vcm1hbCBwb3dlciBtYW5hZ2VtZW50IGZsb3cuIElzIGl0IGFuIG9wdGltaXphdGlvbiwgb3IgaXMgaXQgYSBzaWduIG9mIHBvdGVudGlhbCBzeW5jaHJvbml6YXRpb24gaXNzdWVzPwoKT2theSwgbGV0IG1lIGJhY2t0cmFjayBhbmQgY2hlY2sgd2hlcmUgYG10NzkyeF9tdXRleF9hY3F1aXJlYCBpcyBkZWZpbmVkLiBBaGEsIGl0JiMzOTtzIGRlZmluZWQgaW4gYG10NzkyeC5oYC4gSSBuZWVkIHRvIHJldmlldyB0aGF0IGhlYWRlciBmaWxlIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQgYW5kIGhvdyB0aGUgbXV0ZXggaXMgZGVjbGFyZWQgYW5kIG1hbmFnZWQuIEkgbmVlZCB0byBiZSBzdXJlIHRoYXQgdGhlIG11dGV4IGlzIGJlaW5nIHVzZWQgY29ycmVjdGx5IGFjcm9zcyBhbGwgdGhlIGRpZmZlcmVudCBhY2Nlc3MgcGF0aHMuIFRoaXMgZGlyZWN0IGNhbGwgYnkgYG10NzkyMV9tYWNfc3RhX2FkZGAgbmVlZHMgdG8gYmUgaW52ZXN0aWdhdGVkIGZ1cnRoZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjAyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RlZmluZSBtdDc5MnhfbXV0ZXhfYWNxdWlyZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4Lmg9MzgxPXN0YXRpYyBpbmxpbmUgYm9vbCBtdDc5MnhfZG1hX25lZWRfcmVpbml0KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaC0zODUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oOjM4NjojZGVmaW5lIG10NzkyeF9tdXRleF9hY3F1aXJlKGRldilcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oLTM4Ny1cdG10NzZfY29ubmFjX211dGV4X2FjcXVpcmUoXHUwMDI2KGRldiktXHUwMDNlbXQ3NiwgXHUwMDI2KGRldiktXHUwMDNlcG0pXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjAyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ3MjE2CgkJCQkJCQlvdXRwdXQ6IDUwCgkJCQkJCQl0aG91Z2h0czogMjU5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk11dGV4IENvbnVuZHJ1bSBpbiBNVDc5MjEgRHJpdmVyKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdGhhdCBgbXQ3OTJ4X211dGV4X2FjcXVpcmVgIGNhbGxzIGBtdDc2X2Nvbm5hY19tdXRleF9hY3F1aXJlYCwgd2hpY2ggdWx0aW1hdGVseSBsb2NrcyB0aGUgZGV2aWNlIG11dGV4IChgZGV2LSZndDttdXRleGApLiBTbywgYXQgZmlyc3QgZ2xhbmNlLCBgbXQ3OTIxX21hY19zdGFfYWRkYCBkb2VzbiYjMzk7dCBkaXJlY3RseSBhY3F1aXJlIHRoYXQgZGV2aWNlIG11dGV4LiBUaGF0JiMzOTtzIGdvb2QuIEJ1dCB0aGVuIEkgcmVtZW1iZXJlZCB0aGF0IGBtdDc5MjFfbWFjX3N0YV9hZGRgIGlzIGNhbGxlZCBmcm9tIHdpdGhpbiBtYWM4MDIxMS4gQW5kIG1hYzgwMjExIGhhcyBpdHMgb3duIHNldCBvZiBtdXRleGVzLCBzbyBpdCB3b3VsZG4mIzM5O3QgYmUgaG9sZGluZyBgZGV2LSZndDttdXRleGAgZWl0aGVyLgoKTm93LCB0aGluZ3MgZ2V0IGludGVyZXN0aW5nLiBgbXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZWAgY2FsbHMgYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAsIGFuZCAqdGhhdCogZnVuY3Rpb24gc2VlbXMgdG8gYXNzdW1lIHRoYXQgdGhlIGRldmljZSBtdXRleCBpcyBhbHJlYWR5IGhlbGQuIEFsYXJtIGJlbGxzISBJZiBgbXQ3OTIxX21hY19zdGFfYWRkYCBkb2VzbiYjMzk7dCBob2xkIHRoZSBtdXRleCwgYW5kIGBtdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlYCBjYWxscyBgX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCwgdGhlbiB3ZSBoYXZlIGEgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uIGFuZCBhIG1pc3NpbmcgbXV0ZXggbG9jaywgcmlnaHQ/IEkgbmVlZCB0byBkb3VibGUtY2hlY2sgYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgIG1vcmUgY2xvc2VseS4gVGhpcyBuZWVkcyBmdXJ0aGVyIGludmVzdGlnYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjAzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNzY1LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQ1Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA3NjU6XHRzdGF0aWMgdm9pZFxuIDc2NjpcdG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGUoc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwgYm9vbCBpc19hZGQpXG4gNzY3Olx0e1xuIDc2ODpcdFx0c3RydWN0IG10NzkyeF92aWYgKm12aWYgPSAoc3RydWN0IG10NzkyeF92aWYgKil2aWYtXHUwMDNlZHJ2X3ByaXY7XG4gNzY5Olx0XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXZpZi1cdTAwM2VwaHk7XG4gNzcwOlx0XHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gcGh5LVx1MDAzZWRldjtcbiA3NzE6XHRcdHUzMiB2YWxpZF92aWZfbnVtID0gMDtcbiA3NzI6XHRcbiA3NzM6XHRcdGllZWU4MDIxMV9pdGVyYXRlX2FjdGl2ZV9pbnRlcmZhY2VzKG10NzZfaHcoZGV2KSxcbiA3NzQ6XHRcdFx0XHRcdFx0ICAgIElFRUU4MDIxMV9JRkFDRV9JVEVSX1JFU1VNRV9BTEwsXG4gNzc1Olx0XHRcdFx0XHRcdCAgICBtdDc5MjFfY2FsY192aWZfbnVtLCBcdTAwMjZ2YWxpZF92aWZfbnVtKTtcbiA3NzY6XHRcbiA3Nzc6XHRcdGlmICh2YWxpZF92aWZfbnVtIFx1MDAzZSAxKSB7XG4gNzc4Olx0XHRcdHBoeS1cdTAwM2Vwb3dlcl90eXBlID0gTVRfQVBfREVGQVVMVDtcbiA3Nzk6XHRcdFx0Z290byBvdXQ7XG4gNzgwOlx0XHR9XG4gNzgxOlx0XG4gNzgyOlx0XHRpZiAoIWlzX2FkZClcbiA3ODM6XHRcdFx0dmlmLVx1MDAzZWJzc19jb25mLnBvd2VyX3R5cGUgPSBJRUVFODAyMTFfUkVHX1VOU0VUX0FQO1xuIDc4NDpcdFxuIDc4NTpcdFx0c3dpdGNoICh2aWYtXHUwMDNlYnNzX2NvbmYucG93ZXJfdHlwZSkge1xuIDc4NjpcdFx0Y2FzZSBJRUVFODAyMTFfUkVHX1NQX0FQOlxuIDc4NzpcdFx0XHRwaHktXHUwMDNlcG93ZXJfdHlwZSA9IE1UX0FQX1NQO1xuIDc4ODpcdFx0XHRicmVhaztcbiA3ODk6XHRcdGNhc2UgSUVFRTgwMjExX1JFR19WTFBfQVA6XG4gNzkwOlx0XHRcdHBoeS1cdTAwM2Vwb3dlcl90eXBlID0gTVRfQVBfVkxQO1xuIDc5MTpcdFx0XHRicmVhaztcbiA3OTI6XHRcdGNhc2UgSUVFRTgwMjExX1JFR19MUElfQVA6XG4gNzkzOlx0XHRcdHBoeS1cdTAwM2Vwb3dlcl90eXBlID0gTVRfQVBfTFBJO1xuIDc5NDpcdFx0XHRicmVhaztcbiA3OTU6XHRcdGNhc2UgSUVFRTgwMjExX1JFR19VTlNFVF9BUDpcbiA3OTY6XHRcdFx0cGh5LVx1MDAzZXBvd2VyX3R5cGUgPSBNVF9BUF9VTlNFVDtcbiA3OTc6XHRcdFx0YnJlYWs7XG4gNzk4Olx0XHRkZWZhdWx0OlxuIDc5OTpcdFx0XHRwaHktXHUwMDNlcG93ZXJfdHlwZSA9IE1UX0FQX0RFRkFVTFQ7XG4gODAwOlx0XHRcdGJyZWFrO1xuIDgwMTpcdFx0fVxuIDgwMjpcdFxuIDgwMzpcdG91dDpcbiA4MDQ6XHRcdGlmICh2aWYtXHUwMDNlYnNzX2NvbmYuY2hhbnJlcS5vcGVyLmNoYW4tXHUwMDNlYmFuZCA9PSBOTDgwMjExX0JBTkRfNkdIWilcbiA4MDU6XHRcdFx0X19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlKGRldiwgZGV2LVx1MDAzZW10NzYuYWxwaGEyLCBkZXYtXHUwMDNlY291bnRyeV9pZV9lbnYpO1xuIDgwNjpcdH1cbiA4MDc6XHRcbiA4MDg6XHRpbnQgbXQ3OTIxX21hY19zdGFfYWRkKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbiA4MDk6XHRcdFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjAzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ4Njg3CgkJCQkJCQlvdXRwdXQ6IDUwCgkJCQkJCQl0aG91Z2h0czogNjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uCgoqKkludmVzdGlnYXRpbmcgdGhlIGBtdDc5MjFfbWFjX3N0YV9hZGRgIEZ1bmN0aW9uKioKCkhtbSwgc28gYG10NzkyMV9tYWNfc3RhX2FkZGAgaXMgKmRlZmluaXRlbHkqIGNhbGxlZCBieSBtYWM4MDIxMSwgd2hpY2ggaXMgZ29vZCB0byBrbm93LCBjb25maXJtaW5nIG15IGluaXRpYWwgaHVuY2guIEJ1dCBub3csIGEgY3J1Y2lhbCBxdWVzdGlvbiBhcmlzZXMuIERvZXMgdGhpcyBmdW5jdGlvbiwgYG10NzkyMV9tYWNfc3RhX2FkZGAsIGhhbmRsZSBpdHMgb3duIG11dGV4IGxvY2tpbmc/IFRoYXTigJlzIGdvaW5nIHRvIGJlIGtleSB0byB1bmRlcnN0YW5kaW5nIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbnMgYW5kIGNvbmN1cnJlbmN5IGlzc3VlcyBpZiBpdCBkb2VzbiYjMzk7dC4gSWYgbWFjODAyMTEgY2FsbHMgdGhpcyBmdW5jdGlvbiwgYW5kIGBtdDc5MjFfbWFjX3N0YV9hZGRgIGRvZXNuJiMzOTt0IHByb3RlY3QgaXRzZWxmIGludGVybmFsbHksIHdlIGhhdmUgYSBwcm9ibGVtLiBJIGJldHRlciBnbyBiYWNrIGFuZCBjaGVjayB0aGUgY29kZSBmb3IgYG10NzkyMV9tYWNfc3RhX2FkZGAgY2FyZWZ1bGx5LCBzcGVjaWZpY2FsbHkgbG9va2luZyBhdCBob3cgaXQgaGFuZGxlcyBsb2Nrcy4gVGhpcyBpcyB3aGVyZSB0aGUgZGV2aWwgaXMgaW4gdGhlIGRldGFpbHMuIEkgbmVlZCB0byBrbm93ICpleGFjdGx5KiB3aGF0IHRoaXMgZnVuY3Rpb24gZG9lcyBhbmQgaG93IGl0IGVuc3VyZXMgdGhyZWFkIHNhZmV0eS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDk6MDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA4MDgsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNTAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDgwODpcdGludCBtdDc5MjFfbWFjX3N0YV9hZGQoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuIDgwOTpcdFx0XHQgICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcbiA4MTA6XHR7XG4gODExOlx0XHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc5MnhfZGV2LCBtdDc2KTtcbiA4MTI6XHRcdHN0cnVjdCBtdDc5Mnhfc3RhICptc3RhID0gKHN0cnVjdCBtdDc5Mnhfc3RhICopc3RhLVx1MDAzZWRydl9wcml2O1xuIDgxMzpcdFx0c3RydWN0IG10NzkyeF92aWYgKm12aWYgPSAoc3RydWN0IG10NzkyeF92aWYgKil2aWYtXHUwMDNlZHJ2X3ByaXY7XG4gODE0Olx0XHRpbnQgcmV0LCBpZHg7XG4gODE1Olx0XG4gODE2Olx0XHRpZiAoc3RhLVx1MDAzZWFpZCBcdTAwM2UgTVQ3OTIxX01BWF9BSUQpXG4gODE3Olx0XHRcdHJldHVybiAtRU5PRU5UO1xuIDgxODpcdFxuIDgxOTpcdFx0aWR4ID0gbXQ3Nl93Y2lkX2FsbG9jKGRldi1cdTAwM2VtdDc2LndjaWRfbWFzaywgTVQ3OTJ4X1dUQkxfU1RBIC0gMSk7XG4gODIwOlx0XHRpZiAoaWR4IFx1MDAzYyAwKVxuIDgyMTpcdFx0XHRyZXR1cm4gLUVOT1NQQztcbiA4MjI6XHRcbiA4MjM6XHRcdElOSVRfTElTVF9IRUFEKFx1MDAyNm1zdGEtXHUwMDNlZGVmbGluay53Y2lkLnBvbGxfbGlzdCk7XG4gODI0Olx0XHRtc3RhLVx1MDAzZXZpZiA9IG12aWY7XG4gODI1Olx0XHRtc3RhLVx1MDAzZWRlZmxpbmsud2NpZC5zdGEgPSAxO1xuIDgyNjpcdFx0bXN0YS1cdTAwM2VkZWZsaW5rLndjaWQuaWR4ID0gaWR4O1xuIDgyNzpcdFx0bXN0YS1cdTAwM2VkZWZsaW5rLndjaWQucGh5X2lkeCA9IG12aWYtXHUwMDNlYnNzX2NvbmYubXQ3Ni5iYW5kX2lkeDtcbiA4Mjg6XHRcdG1zdGEtXHUwMDNlZGVmbGluay53Y2lkLnR4X2luZm8gfD0gTVRfV0NJRF9UWF9JTkZPX1NFVDtcbiA4Mjk6XHRcdG1zdGEtXHUwMDNlZGVmbGluay5sYXN0X3R4cyA9IGppZmZpZXM7XG4gODMwOlx0XHRtc3RhLVx1MDAzZWRlZmxpbmsuc3RhID0gbXN0YTtcbiA4MzE6XHRcbiA4MzI6XHRcdGlmIChzdGEtXHUwMDNldGRscylcbiA4MzM6XHRcdFx0c2V0X2JpdChNVF9XQ0lEX0ZMQUdfVERMU19QRUVSLCBcdTAwMjZtc3RhLVx1MDAzZWRlZmxpbmsud2NpZC5mbGFncyk7XG4gODM0Olx0XG4gODM1Olx0XHRyZXQgPSBtdDc2X2Nvbm5hY19wbV93YWtlKFx1MDAyNmRldi1cdTAwM2VtcGh5LCBcdTAwMjZkZXYtXHUwMDNlcG0pO1xuIDgzNjpcdFx0aWYgKHJldClcbiA4Mzc6XHRcdFx0cmV0dXJuIHJldDtcbiA4Mzg6XHRcbiA4Mzk6XHRcdGlmICh2aWYtXHUwMDNldHlwZSA9PSBOTDgwMjExX0lGVFlQRV9TVEFUSU9OKVxuIDg0MDpcdFx0XHRtdmlmLVx1MDAzZXdlcF9zdGEgPSBtc3RhO1xuIDg0MTpcdFxuIDg0MjpcdFx0bXQ3OTIxX21hY193dGJsX3VwZGF0ZShkZXYsIGlkeCxcbiA4NDM6XHRcdFx0XHQgICAgICAgTVRfV1RCTF9VUERBVEVfQURNX0NPVU5UX0NMRUFSKTtcbiA4NDQ6XHRcbiA4NDU6XHRcdHJldCA9IG10NzkyMV9tY3Vfc3RhX3VwZGF0ZShkZXYsIHN0YSwgdmlmLCB0cnVlLFxuIDg0NjpcdFx0XHRcdFx0ICAgIE1UNzZfU1RBX0lORk9fU1RBVEVfTk9ORSk7XG4gODQ3Olx0XHRpZiAocmV0KVxuIDg0ODpcdFx0XHRyZXR1cm4gcmV0O1xuIDg0OTpcdFxuIDg1MDpcdFx0bXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZSh2aWYsIHRydWUpO1xuIDg1MTpcdFxuIDg1MjpcdFx0bXQ3Nl9jb25uYWNfcG93ZXJfc2F2ZV9zY2hlZChcdTAwMjZkZXYtXHUwMDNlbXBoeSwgXHUwMDI2ZGV2LVx1MDAzZXBtKTtcbiA4NTM6XHRcbiA4NTQ6XHRcdHJldHVybiAwO1xuIDg1NTpcdH1cbiA4NTY6XHRFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjFfbWFjX3N0YV9hZGQpO1xuIDg1NzpcdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0OTk3OAoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDkzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgbXQ3OTIxIE1hYyBTdGF0aW9uIEFkZGl0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gZGlnZ2luZyBpbnRvIHRoaXMgYG10NzkyMV9tYWNfc3RhX2FkZGAgZnVuY3Rpb24gYW5kIGl0JiMzOTtzIGFzc2lnbmVkIHRvIHRoZSBgc3RhX2FkZGAgY2FsbGJhY2ssIHdoaWNoIG1ha2VzIHNlbnNlLiBNeSBpbW1lZGlhdGUgbmV4dCBzdGVwIGlzIHRvIHJlY2FsbCBob3cgdGhhdCBjYWxsYmFjayBpcyBpbnZva2VkIHdpdGhpbiB0aGUgYG10NzZgIGZyYW1ld29yay4gUmlnaHQsIHRoZSBgc3RhX2FkZGAgY2FsbGJhY2sgaXMgY2FsbGVkIGZyb20gYG10NzZfbWFjX3N0YV9hZGRgLiBOb3csIEkgbmVlZCB0byBjb25maXJtIHRoZSBpbXBsZW1lbnRhdGlvbiBhbmQgYW55IG51YW5jZXMsIHNvIEkmIzM5O20gaGVhZGluZyBzdHJhaWdodCB0byBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jYCB0byBleGFtaW5lIGBtdDc2X21hY19zdGFfYWRkYC4gSSBleHBlY3QgdG8gZmluZCB0aGUgYWN0dWFsIGNhbGwgdGhlcmUsIGFuZCBJJiMzOTtsbCBiZSBsb29raW5nIGZvciBhbnkgY29udGV4dC1kZXBlbmRlbnQgbG9naWMgb3IgcG90ZW50aWFsIGFyZWFzIG9mIGNvbmNlcm4gZHVyaW5nIHRoaXMgc3RhdGlvbiBhZGRpdGlvbiBwcm9jZXNzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzZfbWFjX3N0YV9hZGQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjAzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUwMzEzCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMzUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBpdCB3ZXJlIG15IG93bjoKCioqQ29ubmVjdGluZyB0aGUgRG90czogUHJvYmUgRnVuY3Rpb24gYW5kIERyaXZlciBPcGVyYXRpb25zKioKCk9rYXksIGxldCBtZSBzZWUuLi4gSSYjMzk7bSB0cmFjaW5nIHRoaXMgYG10NzkyMWAgZHJpdmVyIGluaXRpYWxpemF0aW9uLiBUaGUgYHN0YV9hZGRgIGZ1bmN0aW9uLi4uIHdoZXJlIGRvZXMgKnRoYXQqIGdldCBjYWxsZWQgZnJvbT8gUmlnaHQsIGl0JiMzOTtzIGJlaW5nIGFzc2lnbmVkIHRvIHRoZSBgc3RhX2FkZGAgZmllbGQgd2l0aGluIHRoZSBgbXQ3Nl9kcml2ZXJfb3BzYCBzdHJ1Y3R1cmUuIEFuZCB0aGF0IHN0cnVjdHVyZSwgYWhhLCB0aGF0JiMzOTtzIGJlaW5nIHVzZWQgd2l0aGluIHRoZSBgbXQ3OTIxX3BjaV9wcm9iZWAgZnVuY3Rpb24uIFNvLCB0aGUgUENJIHByb2JlIGZ1bmN0aW9uIGlzIGVzc2VudGlhbGx5IHRoZSBlbnRyeSBwb2ludCBmb3IgZGV0ZWN0aW5nIHRoZSBkZXZpY2UsIGFuZCB0aGVuIGl0JiMzOTtzIHVzaW5nIHRoZSBzdGFuZGFyZCBgbXQ3Nl9kcml2ZXJfb3BzYCBzdHJ1Y3R1cmUsIHdoaWNoIGhhcyB0aGUgYHN0YV9hZGRgIGZ1bmN0aW9uIGhvb2suIEdvdCBpdCwgc28gaXQmIzM5O3MgYWxsIHBhcnQgb2YgdGhlIHN0YW5kYXJkIGBtdDc2YCBmcmFtZXdvcmsuIFRoZSBwcm9iZSBmdW5jdGlvbiBzZXRzIHVwIHRoZSBkZXZpY2UsIHRoZW4gdGhlIGBtdDc2YCBmcmFtZXdvcmsgaGFuZGxlcyB0aGUgcmVzdC4gVGhpcyBjb25maXJtcyBteSB1bmRlcnN0YW5kaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdGFfYWRkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jPTE1NzU9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjE1NzY6bXQ3Nl9zdGFfYWRkKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTE1NzctXHQgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTE1ODYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM6MTU4NzpcdHJldCA9IGRldi1cdTAwM2VkcnYtXHUwMDNlc3RhX2FkZChkZXYsIHZpZiwgc3RhKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy0xNTg4LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM9MTY1MT1pbnQgbXQ3Nl9zdGFfc3RhdGUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTE2NjUtXHQgICAgbmV3X3N0YXRlID09IElFRUU4MDIxMV9TVEFfTk9ORSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYzoxNjY2Olx0XHRyZXR1cm4gbXQ3Nl9zdGFfYWRkKHBoeSwgdmlmLCBzdGEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTE2NjctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg9NTQzPXN0cnVjdCBtdDc2X2RyaXZlcl9vcHMge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTU3Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjU3ODpcdGludCAoKnN0YV9hZGQpKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtNTc5LVx0XHQgICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jPTg9Y29uc3Qgc3RydWN0IG10NzZfZHJpdmVyX29wcyBtdDc2MDNfZHJ2X29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMTYtXHQuc3RhX3BzID0gbXQ3NjAzX3N0YV9wcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzoxNzpcdC5zdGFfYWRkID0gbXQ3NjAzX3N0YV9hZGQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMTgtXHQuc3RhX2V2ZW50ID0gbXQ3NjAzX3N0YV9ldmVudCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tYWluLmM9MzI2PWludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jOjMyNzptdDc2MDNfc3RhX2FkZChzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tYWluLmMtMzI4LVx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbXQ3NjAzLmg9MjQ2PXZvaWQgbXQ3NjAzX3N0YV9wcyhzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsIGJvb2wgcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbXQ3NjAzLmg6MjQ3OmludCBtdDc2MDNfc3RhX2FkZChzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tdDc2MDMuaC0yNDgtXHRcdCAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYz0yNDY9c3RhdGljIHZvaWQgbXQ3NjE1X3JlbW92ZV9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jLTI1Ny1cdG10NzYxNV9tY3VfYWRkX2Jzc19pbmZvKHBoeSwgdmlmLCBOVUxMLCBmYWxzZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmM6MjU4Olx0bXQ3NjE1X21jdV9zdGFfYWRkKHBoeSwgdmlmLCBOVUxMLCBmYWxzZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmMtMjU5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYz01Njc9c3RhdGljIHZvaWQgbXQ3NjE1X2Jzc19pbmZvX2NoYW5nZWQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jLTU4Ny1cdFx0bXQ3NjE1X21jdV9hZGRfYnNzX2luZm8ocGh5LCB2aWYsIE5VTEwsIHRydWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jOjU4ODpcdFx0bXQ3NjE1X21jdV9zdGFfYWRkKHBoeSwgdmlmLCBOVUxMLCB0cnVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYy01ODktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jPTYyMz1tdDc2MTVfY2hhbm5lbF9zd2l0Y2hfYmVhY29uKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYy02MzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmM6NjM0OmludCBtdDc2MTVfbWFjX3N0YV9hZGQoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jLTYzNS1cdFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jLTY2NS1cdFx0XHQgICAgICAgTVRfV1RCTF9VUERBVEVfQURNX0NPVU5UX0NMRUFSKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYzo2NjY6XHRlcnIgPSBtdDc2MTVfbWN1X3N0YV9hZGQoXHUwMDI2ZGV2LVx1MDAzZXBoeSwgdmlmLCBzdGEsIHRydWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jLTY2Ny1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jLTY3My19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmM6Njc0OkVYUE9SVF9TWU1CT0xfR1BMKG10NzYxNV9tYWNfc3RhX2FkZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmMtNjc1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jPTY3Nj12b2lkIG10NzYxNV9tYWNfc3RhX3JlbW92ZShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jLTY4OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYzo2ODk6XHRtdDc2MTVfbWN1X3N0YV9hZGQoXHUwMDI2ZGV2LVx1MDAzZXBoeSwgdmlmLCBzdGEsIGZhbHNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYy02OTAtXHRtdDc2MTVfbWFjX3d0YmxfdXBkYXRlKGRldiwgbXN0YS1cdTAwM2V3Y2lkLmlkeCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmM9ODYyPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYzo4NjM6bXQ3NjE1X3N0YV9hZGQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmMtODY0LVx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jPTEzMTg9Y29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgbXQ3NjE1X29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmMtMTMzMS1cdC5ic3NfaW5mb19jaGFuZ2VkID0gbXQ3NjE1X2Jzc19pbmZvX2NoYW5nZWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmM6MTMzMjpcdC5zdGFfYWRkID0gbXQ3NjE1X3N0YV9hZGQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmMtMTMzMy1cdC5zdGFfcmVtb3ZlID0gbXQ3NjE1X3N0YV9yZW1vdmUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWN1LmM9ODM5PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21jdS5jOjg0MDptdDc2MTVfbWN1X3d0Ymxfc3RhX2FkZChzdHJ1Y3QgbXQ3NjE1X3BoeSAqcGh5LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWN1LmMtODQxLVx0XHRcdHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsIGJvb2wgZW5hYmxlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21jdS5jLTg2MS1cdGlmICghc3RhKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tY3UuYzo4NjI6XHRcdGlmIChtdmlmLVx1MDAzZXN0YV9hZGRlZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21jdS5jLTg2My1cdFx0XHRuZXdfZW50cnkgPSBmYWxzZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21jdS5jLTg2NC1cdFx0ZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWN1LmM6ODY1Olx0XHRcdG12aWYtXHUwMDNlc3RhX2FkZGVkID0gdHJ1ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21jdS5jLTg2Ni1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tY3UuYz05MTc9c3RhdGljIGNvbnN0IHN0cnVjdCBtdDc2MTVfbWN1X29wcyB3dGJsX3VwZGF0ZV9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWN1LmMtOTIzLVx0LmFkZF9yeF9iYSA9IG10NzYxNV9tY3Vfd3RibF9yeF9iYSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21jdS5jOjkyNDpcdC5zdGFfYWRkID0gbXQ3NjE1X21jdV93dGJsX3N0YV9hZGQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tY3UuYy05MjUtXHQuc2V0X2Rydl9jdHJsID0gbXQ3NjE1X21jdV9kcnZfcG1jdHJsLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21jdS5jPTEwMTc9c3RhdGljIGNvbnN0IHN0cnVjdCBtdDc2MTVfbWN1X29wcyBzdGFfdXBkYXRlX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tY3UuYy0xMDIzLVx0LmFkZF9yeF9iYSA9IG10NzYxNV9tY3Vfc3RhX3J4X2JhLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWN1LmM6MTAyNDpcdC5zdGFfYWRkID0gbXQ3NjE1X21jdV9hZGRfc3RhLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWN1LmMtMTAyNS1cdC5zZXRfZHJ2X2N0cmwgPSBtdDc2MTVfbWN1X2Rydl9wbWN0cmwsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWN1LmM9MTIwOD1zdGF0aWMgY29uc3Qgc3RydWN0IG10NzYxNV9tY3Vfb3BzIHVuaV91cGRhdGVfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21jdS5jLTEyMTQtXHQuYWRkX3J4X2JhID0gbXQ3NjE1X21jdV91bmlfcnhfYmEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tY3UuYzoxMjE1Olx0LnN0YV9hZGQgPSBtdDc2MTVfbWN1X3VuaV9hZGRfc3RhLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWN1LmMtMTIxNi1cdC5zZXRfZHJ2X2N0cmwgPSBtdDc2MTVfbWN1X2xwX2Rydl9wbWN0cmwsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbW1pby5jPTE2Nj1pbnQgbXQ3NjE1X21taW9fcHJvYmUoc3RydWN0IGRldmljZSAqcGRldiwgdm9pZCBfX2lvbWVtICptZW1fYmFzZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tbWlvLmMtMTgxLVx0XHQucnhfcG9sbF9jb21wbGV0ZSA9IG10NzYxNV9yeF9wb2xsX2NvbXBsZXRlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbW1pby5jOjE4MjpcdFx0LnN0YV9hZGQgPSBtdDc2MTVfbWFjX3N0YV9hZGQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tbWlvLmMtMTgzLVx0XHQuc3RhX3JlbW92ZSA9IG10NzYxNV9tYWNfc3RhX3JlbW92ZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaD0xNDI9c3RydWN0IG10NzYxNV92aWYge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oLTE0NC1cdHN0cnVjdCBtdDc2MTVfc3RhIHN0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oOjE0NTpcdGJvb2wgc3RhX2FkZGVkO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbXQ3NjE1LmgtMTQ2LX07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbXQ3NjE1Lmg9MTU3PXN0cnVjdCBtdDc2MTVfcGh5IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaC0yMDktI2RlZmluZSBtdDc2MTVfbWN1X2FkZF9yeF9iYShkZXYsIC4uLilcdChkZXYpLVx1MDAzZW1jdV9vcHMtXHUwMDNlYWRkX3J4X2JhKChkZXYpLCBfX1ZBX0FSR1NfXylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oOjIxMDojZGVmaW5lIG10NzYxNV9tY3Vfc3RhX2FkZChwaHksIC4uLilcdCgocGh5KS1cdTAwM2VkZXYpLVx1MDAzZW1jdV9vcHMtXHUwMDNlc3RhX2FkZCgocGh5KSwgIF9fVkFfQVJHU19fKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbXQ3NjE1LmgtMjExLSNkZWZpbmUgbXQ3NjE1X21jdV9hZGRfZGV2X2luZm8ocGh5LCAuLi4pICgocGh5KS1cdTAwM2VkZXYpLVx1MDAzZW1jdV9vcHMtXHUwMDNlYWRkX2Rldl9pbmZvKChwaHkpLCAgX19WQV9BUkdTX18pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbXQ3NjE1Lmg9MjE4PXN0cnVjdCBtdDc2MTVfbWN1X29wcyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbXQ3NjE1LmgtMjI0LVx0XHRcdCBib29sIGVuYWJsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaDoyMjU6XHRpbnQgKCpzdGFfYWRkKShzdHJ1Y3QgbXQ3NjE1X3BoeSAqcGh5LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbXQ3NjE1LmgtMjI2LVx0XHQgICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgYm9vbCBlbmFibGUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oPTUwNT12b2lkIG10NzYxNV9xdWV1ZV9yeF9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCBlbnVtIG10NzZfcnhxX2lkIHEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaC01MDYtXHRcdFx0IHN0cnVjdCBza19idWZmICpza2IsIHUzMiAqaW5mbyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaDo1MDc6aW50IG10NzYxNV9tYWNfc3RhX2FkZChzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaC01MDgtXHRcdCAgICAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmM9NzY9c3RhdGljIGludCBtdDc2NjNzX3Byb2JlKHN0cnVjdCBzZGlvX2Z1bmMgKmZ1bmMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jLTg2LVx0XHQucnhfY2hlY2sgPSBtdDc2MTVfcnhfY2hlY2ssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmM6ODc6XHRcdC5zdGFfYWRkID0gbXQ3NjE1X21hY19zdGFfYWRkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jLTg4LVx0XHQuc3RhX3JlbW92ZSA9IG10NzYxNV9tYWNfc3RhX3JlbW92ZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYz0xMTI9c3RhdGljIGludCBtdDc2NjN1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0xMjItXHRcdC5yeF9jaGVjayA9IG10NzYxNV9yeF9jaGVjayxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jOjEyMzpcdFx0LnN0YV9hZGQgPSBtdDc2MTVfbWFjX3N0YV9hZGQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0xMjQtXHRcdC5zdGFfcmVtb3ZlID0gbXQ3NjE1X21hY19zdGFfcmVtb3ZlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jPTE1ND1tdDc2eDBlX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmMtMTY4LVx0XHQuc3RhX3BzID0gbXQ3NngwMl9zdGFfcHMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYzoxNjk6XHRcdC5zdGFfYWRkID0gbXQ3NngwMl9zdGFfYWRkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmMtMTcwLVx0XHQuc3RhX3JlbW92ZSA9IG10NzZ4MDJfc3RhX3JlbW92ZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYz0yMTM9c3RhdGljIGludCBtdDc2eDB1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0yMjYtXHRcdC5zdGFfcHMgPSBtdDc2eDAyX3N0YV9wcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjIyNzpcdFx0LnN0YV9hZGQgPSBtdDc2eDAyX3N0YV9hZGQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0yMjgtXHRcdC5zdGFfcmVtb3ZlID0gbXQ3NngwMl9zdGFfcmVtb3ZlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMi5oPTE1Mj12b2lkIG10NzZ4MDJfY29uZmlndXJlX2ZpbHRlcihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDIuaC0xNTQtXHRcdFx0ICAgICAgdW5zaWduZWQgaW50ICp0b3RhbF9mbGFncywgdTY0IG11bHRpY2FzdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDIuaDoxNTU6aW50IG10NzZ4MDJfc3RhX2FkZChzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDIuaC0xNTYtXHRcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXRpbC5jPTIzNj1FWFBPUlRfU1lNQk9MX0dQTChtdDc2eDAyX2NvbmZpZ3VyZV9maWx0ZXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3V0aWwuYy0yMzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXRpbC5jOjIzODppbnQgbXQ3NngwMl9zdGFfYWRkKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmMtMjM5LVx0XHQgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXRpbC5jLTI2NC19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXRpbC5jOjI2NTpFWFBPUlRfU1lNQk9MX0dQTChtdDc2eDAyX3N0YV9hZGQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3V0aWwuYy0yNjYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM9MjA9bXQ3NngyZV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTM0LVx0XHQuc3RhX3BzID0gbXQ3NngwMl9zdGFfcHMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzozNTpcdFx0LnN0YV9hZGQgPSBtdDc2eDAyX3N0YV9hZGQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0zNi1cdFx0LnN0YV9yZW1vdmUgPSBtdDc2eDAyX3N0YV9yZW1vdmUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmM9MzI9c3RhdGljIGludCBtdDc2eDJ1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTQ1LVx0XHQuc3RhX3BzID0gbXQ3NngwMl9zdGFfcHMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYzo0NjpcdFx0LnN0YV9hZGQgPSBtdDc2eDAyX3N0YV9hZGQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy00Ny1cdFx0LnN0YV9yZW1vdmUgPSBtdDc2eDAyX3N0YV9yZW1vdmUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5jPTE0Nzc9REVGSU5FX1NIT1dfQVRUUklCVVRFKG10NzkxNV9xdWV1ZXMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5jLTE0NzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kZWJ1Z2ZzLmM6MTQ3OTp2b2lkIG10NzkxNV9zdGFfYWRkX2RlYnVnZnMoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kZWJ1Z2ZzLmMtMTQ4MC1cdFx0XHQgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgc3RydWN0IGRlbnRyeSAqZGlyKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYz03MzE9bXQ3OTE1X2NoYW5uZWxfc3dpdGNoX2JlYWNvbihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtNzQxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jOjc0MjppbnQgbXQ3OTE1X21hY19zdGFfYWRkKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy03NDMtXHRcdCAgICAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYz03NzU9c3RydWN0IGRyb3Bfc3RhX2l0ZXIge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy03NzgtXHRzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jOjc3OTpcdHU4IHN0YV9hZGRyW0VUSF9BTEVOXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy03ODAtfTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM9NzgzPV9fbXQ3OTE1X2Ryb3Bfc3RhKHZvaWQgKnB0ciwgdTggKm1hYywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtNzkxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jOjc5MjpcdHN0YSA9IGllZWU4MDIxMV9maW5kX3N0YV9ieV9pZmFkZHIoZGF0YS1cdTAwM2VodywgZGF0YS1cdTAwM2VzdGFfYWRkciwgbWFjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy03OTMtXHRpZiAoIXN0YSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM9ODAzPW10NzkxNV9kcm9wX290aGVyX3N0YShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy04MTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6ODE2Olx0bWVtY3B5KGRhdGEuc3RhX2FkZHIsIHN0YS1cdTAwM2VhZGRyLCBFVEhfQUxFTik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtODE3LVx0aWVlZTgwMjExX2l0ZXJhdGVfYWN0aXZlX2ludGVyZmFjZXMoZGF0YS5odywgMCwgX19tdDc5MTVfZHJvcF9zdGEsIFx1MDAyNmRhdGEpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYz0xNzY1PWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzkxNV9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTE4MTUtI2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6MTgxNjpcdC5zdGFfYWRkX2RlYnVnZnMgPSBtdDc5MTVfc3RhX2FkZF9kZWJ1Z2ZzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTE4MTctI2VuZGlmXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jPTkxNz1zdHJ1Y3QgbXQ3OTE1X2RldiAqbXQ3OTE1X21taW9fcHJvYmUoc3RydWN0IGRldmljZSAqcGRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtOTMzLVx0XHQucnhfcG9sbF9jb21wbGV0ZSA9IG10NzkxNV9yeF9wb2xsX2NvbXBsZXRlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jOjkzNDpcdFx0LnN0YV9hZGQgPSBtdDc5MTVfbWFjX3N0YV9hZGQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtOTM1LVx0XHQuc3RhX2V2ZW50ID0gbXQ3OTE1X21hY19zdGFfZXZlbnQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1Lmg9NTgxPXZvaWQgbXQ3OTE1X21hY19zZXRfdGltaW5nKHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1Lmg6NTgyOmludCBtdDc5MTVfbWFjX3N0YV9hZGQoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1LmgtNTgzLVx0XHQgICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1Lmg9NjE3PWJvb2wgbXQ3OTE1X2RlYnVnZnNfcnhfbG9nKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIGNvbnN0IHZvaWQgKmRhdGEsIGludCBsZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1LmgtNjE4LSNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1Lmg6NjE5OnZvaWQgbXQ3OTE1X3N0YV9hZGRfZGVidWdmcyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oLTYyMC1cdFx0XHQgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgc3RydWN0IGRlbnRyeSAqZGlyKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9NzY2PW10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGUoc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwgYm9vbCBpc19hZGQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTgwNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo4MDg6aW50IG10NzkyMV9tYWNfc3RhX2FkZChzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtODA5LVx0XHQgICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtODU1LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo4NTY6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTIxX21hY19zdGFfYWRkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy04NTctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg9MjY0PWJvb2wgbXQ3OTIxX21hY193dGJsX3VwZGF0ZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBpbnQgaWR4LCB1MzIgbWFzayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaDoyNjU6aW50IG10NzkyMV9tYWNfc3RhX2FkZChzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaC0yNjYtXHRcdCAgICAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYz0yNTk9c3RhdGljIGludCBtdDc5MjFfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jLTI3NS1cdFx0LnJ4X3BvbGxfY29tcGxldGUgPSBtdDc5MnhfcnhfcG9sbF9jb21wbGV0ZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jOjI3NjpcdFx0LnN0YV9hZGQgPSBtdDc5MjFfbWFjX3N0YV9hZGQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYy0yNzctXHRcdC5zdGFfZXZlbnQgPSBtdDc5MjFfbWFjX3N0YV9ldmVudCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvLmM9OTA9c3RhdGljIGludCBtdDc5MjFzX3Byb2JlKHN0cnVjdCBzZGlvX2Z1bmMgKmZ1bmMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jLTEwMy1cdFx0LnJ4X2NoZWNrID0gbXQ3OTIxX3J4X2NoZWNrLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jOjEwNDpcdFx0LnN0YV9hZGQgPSBtdDc5MjFfbWFjX3N0YV9hZGQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvLmMtMTA1LVx0XHQuc3RhX2V2ZW50ID0gbXQ3OTIxX21hY19zdGFfZXZlbnQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmM9MTUwPXN0YXRpYyBpbnQgbXQ3OTIxdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMTY0LVx0XHQucnhfY2hlY2sgPSBtdDc5MjFfcnhfY2hlY2ssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYzoxNjU6XHRcdC5zdGFfYWRkID0gbXQ3OTIxX21hY19zdGFfYWRkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMTY2LVx0XHQuc3RhX2V2ZW50ID0gbXQ3OTIxX21hY19zdGFfZXZlbnQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTg1OT1tdDc5MjVfZ2V0X3JhdGVzX3RhYmxlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy04ODYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6ODg3OnN0YXRpYyBpbnQgbXQ3OTI1X21hY19saW5rX3N0YV9hZGQoc3RydWN0IG10NzZfZGV2ICptZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTg4OC1cdFx0XHRcdCAgIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTEwMjctLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxMDI4OiAqIEhvc3Qtb25seSB1bndpbmQgZm9yIHN0YV9hZGRfbGlua3MoKSBmYWlsdXJlcy5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xMDI5LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTEwNjY9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjEwNjc6bXQ3OTI1X21hY19zdGFfYWRkX2xpbmtzKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTA2OC1cdFx0XHQgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgdW5zaWduZWQgbG9uZyBuZXdfbGlua3MpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTEwOTUtXHRcdGxpbmtfc3RhID0gbXQ3OTJ4X3N0YV90b19saW5rX3N0YSh2aWYsIHN0YSwgbGlua19pZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTA5NjpcdFx0ZXJyID0gbXQ3OTI1X21hY19saW5rX3N0YV9hZGQoXHUwMDI2ZGV2LVx1MDAzZW10NzYsIHZpZiwgbGlua19zdGEsIG1saW5rKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xMDk3LVx0XHRpZiAoZXJyKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTExMTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTExODppbnQgbXQ3OTI1X21hY19zdGFfYWRkKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xMTE5LVx0XHQgICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTEzMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxMTM0Olx0XHRlcnIgPSBtdDc5MjVfbWFjX3N0YV9hZGRfbGlua3MoZGV2LCB2aWYsIHN0YSwgc3RhLVx1MDAzZXZhbGlkX2xpbmtzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xMTM1LVx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxMTM2Olx0XHRlcnIgPSBtdDc5MjVfbWFjX2xpbmtfc3RhX2FkZChtZGV2LCB2aWYsIFx1MDAyNnN0YS1cdTAwM2VkZWZsaW5rLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTExMzctXHRcdFx0XHRcdCAgICAgIFx1MDAyNm1zdGEtXHUwMDNlZGVmbGluayk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTExNDEtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjExNDI6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTI1X21hY19zdGFfYWRkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xMTQzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0yMjMyPW10NzkyNV9jaGFuZ2Vfc3RhX2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yMjQ4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjIyNDk6XHRlcnIgPSBtdDc5MjVfbWFjX3N0YV9hZGRfbGlua3MoZGV2LCB2aWYsIHN0YSwgYWRkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yMjUwLVx0aWYgKGVyciBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tdDc5MjUuaD0yOTM9aW50IG10NzkyNV9tYWNfaW5pdChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L210NzkyNS5oOjI5NDppbnQgbXQ3OTI1X21hY19zdGFfYWRkKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L210NzkyNS5oLTI5NS1cdFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jPTMxMz1zdGF0aWMgaW50IG10NzkyNV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmMtMzI5LVx0XHQucnhfcG9sbF9jb21wbGV0ZSA9IG10NzkyeF9yeF9wb2xsX2NvbXBsZXRlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmM6MzMwOlx0XHQuc3RhX2FkZCA9IG10NzkyNV9tYWNfc3RhX2FkZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jLTMzMS1cdFx0LnN0YV9ldmVudCA9IG10NzkyNV9tYWNfc3RhX2V2ZW50LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jPTE0Mz1zdGF0aWMgaW50IG10NzkyNXVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jLTE1Ny1cdFx0LnJ4X2NoZWNrID0gbXQ3OTI1X3J4X2NoZWNrLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmM6MTU4Olx0XHQuc3RhX2FkZCA9IG10NzkyNV9tYWNfc3RhX2FkZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jLTE1OS1cdFx0LnN0YV9ldmVudCA9IG10NzkyNV9tYWNfc3RhX2V2ZW50LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz05ODM9REVGSU5FX1NIT1dfQVRUUklCVVRFKG10Nzk5Nl9xdWV1ZXMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTk4NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5ODU6dm9pZCBtdDc5OTZfc3RhX2FkZF9kZWJ1Z2ZzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTk4Ni1cdFx0XHQgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgc3RydWN0IGRlbnRyeSAqZGlyKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0xMDY0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGZvcHNfZml4ZWRfcmF0ZSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTA3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoxMDcxOnZvaWQgbXQ3OTk2X2xpbmtfc3RhX2FkZF9kZWJ1Z2ZzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEwNzItXHRcdFx0XHQgc3RydWN0IGllZWU4MDIxMV9saW5rX3N0YSAqbGlua19zdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jPTEyNTg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jOjEyNTk6bXQ3OTk2X21hY19zdGFfYWRkX2xpbmtzKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmMtMTI2MC1cdFx0XHQgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgdW5zaWduZWQgbG9uZyBuZXdfbGlua3MpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jPTEzMjA9bXQ3OTk2X21hY19zdGFfY2hhbmdlX2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYy0xMzMxLVx0bXQ3OTk2X21hY19zdGFfcmVtb3ZlX2xpbmtzKGRldiwgdmlmLCBzdGEsIHJlbSwgZmFsc2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jOjEzMzI6XHRyZXQgPSBtdDc5OTZfbWFjX3N0YV9hZGRfbGlua3MoZGV2LCB2aWYsIHN0YSwgYWRkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYy0xMzMzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYz0xMzM5PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYzoxMzQwOm10Nzk5Nl9tYWNfc3RhX2FkZChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jLTEzNDEtXHRcdCAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jLTEzNTItXHRtc3RhLVx1MDAzZXZpZiA9IG12aWY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM6MTM1MzpcdGVyciA9IG10Nzk5Nl9tYWNfc3RhX2FkZF9saW5rcyhkZXYsIHZpZiwgc3RhLCBsaW5rcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmMtMTM1NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM9MTQ2OD1tdDc5OTZfc3RhX3N0YXRlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYy0xNDc2LVx0ICAgIG5ld19zdGF0ZSA9PSBJRUVFODAyMTFfU1RBX05PTkUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM6MTQ3NzpcdFx0cmV0dXJuIG10Nzk5Nl9tYWNfc3RhX2FkZChkZXYsIHZpZiwgc3RhKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYy0xNDc4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYz0yNTEwPWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10Nzk5Nl9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jLTI1NTktI2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM6MjU2MDpcdC5zdGFfYWRkX2RlYnVnZnMgPSBtdDc5OTZfc3RhX2FkZF9kZWJ1Z2ZzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jOjI1NjE6XHQubGlua19zdGFfYWRkX2RlYnVnZnMgPSBtdDc5OTZfbGlua19zdGFfYWRkX2RlYnVnZnMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmMtMjU2Mi0jZW5kaWZcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaD05Mjk9aW50IG10Nzk5Nl9tY3Vfc2V0X2VtbHNyX21vZGUoc3RydWN0IG10Nzk5Nl9kZXYgKmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaC05MzMtI2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo5MzQ6dm9pZCBtdDc5OTZfc3RhX2FkZF9kZWJ1Z2ZzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtOTM1LVx0XHRcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLCBzdHJ1Y3QgZGVudHJ5ICpkaXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg6OTM2OnZvaWQgbXQ3OTk2X2xpbmtfc3RhX2FkZF9kZWJ1Z2ZzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtOTM3LVx0XHRcdFx0IHN0cnVjdCBpZWVlODAyMTFfbGlua19zdGEgKmxpbmtfc3RhLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MzE3MwoJCQkJCQkJb3V0cHV0OiA1MAoJCQkJCQkJdGhvdWdodHM6IDEwMjkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUG90ZW50aWFsIFJhY2UgQ29uZGl0aW9uIGluIHRoZSBNVDc5MjEgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gZGl2aW5nIGludG8gdGhpcyBNVDc5MjEgZHJpdmVyIGNvZGUsIHRyeWluZyB0byB1bmRlcnN0YW5kIHRoaXMgbG9naWMgYXJvdW5kIHN0YXRpb24gKFNUQSkgYWRkaXRpb24uIEl0IGxvb2tzIGxpa2UgYG10NzZfc3RhX2FkZGAgZXZlbnR1YWxseSBsZWFkcyB0byBhIGNhbGwgdG8gdGhlIGRyaXZlciYjMzk7cyBzcGVjaWZpYyBgc3RhX2FkZGAgZnVuY3Rpb24uICBUaGUgaW50ZXJlc3RpbmcgcGFydCBpcyB0aGF0IGBtdDc2X3N0YV9hZGRgIGlzIGNhbGxlZCBlaXRoZXIgZnJvbSBgbXQ3Nl9zdGFfc3RhdGVgIG9yIGBtdDc2X21hY19zdGFfYWRkYC4gYG10NzZfc3RhX3N0YXRlYCBpdHNlbGYgY2FsbHMgYG10NzZfc3RhX2FkZGAuIE15IGNvbmNlcm4gaXMgd2hldGhlciBhIG11dGV4IGlzIGNvcnJlY3RseSBoZWxkIGR1cmluZyB0aGVzZSBjYWxscywgYmVjYXVzZSBgbXQ3OTIxX21hY19zdGFfYWRkYCBkb2VzIG5vdCBhcHBlYXIgdG8gaG9sZCBgZGV2LSZndDttdXRleGAuCgpNeSBmaXJzdCB0aG91Z2h0IGlzLCBtYWM4MDIxMSBtaWdodCBiZSBkb2luZyBzb21ldGhpbmcsIGJ1dCBJIGNhbiBzZWUgdGhhdCBtYWM4MDIxMSBkb2VzbiYjMzk7dCBtYW5hZ2UgZHJpdmVyLXNwZWNpZmljIG11dGV4ZXMuICBTbywgIGBtdDc5MjFfbWFjX3N0YV9hZGRgIGdldHMgY2FsbGVkIGRpcmVjdGx5LiBIb3dldmVyLCB3aXRoaW4gYG10NzkyMV9tYWNfc3RhX2FkZGAsIGl0IGNhbGxzIGBtdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlYC4gVGhpcywgaW4gdHVybiwgY2FsbHMgYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAuICBUaGUgdGhpbmcgaXMsIGBfX210NzkyMV9tY3VfcmVnZF91cGRhdGVgICphc3N1bWVzKiB0aGUgbXV0ZXggaXMgaGVsZCEKCkFoYSEgV2UgaGF2ZSBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbi4gIGBtdDc5MjFfbWFjX3N0YV9hZGRgIGRvZXNuJiMzOTt0IGhvbGQgdGhlIG11dGV4LCBidXQgaXQgY2FsbHMgYSBmdW5jdGlvbiB0aGF0IGV4cGVjdHMgaXQhIExldCYjMzk7cyBleGFtaW5lIHRoZSBwYXRjaCB0aGF0IG1vZGlmaWVkIGBtdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlYC4gVGhlIGF1dGhvciBpcyBjaGFuZ2luZyB0aGUgZnVuY3Rpb24gY2FsbCB0byBgX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCwgd2hpY2ggc3VnZ2VzdHMgdGhlIG11dGV4IGlzICphbHJlYWR5KiBoZWxkIGF0IHRoYXQgcG9pbnQuCgpCdXQgd2hlcmU/IEJlZm9yZSB0aGUgcGF0Y2gsIGBtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCBoYWQgaXRzIG93biBtdXRleCBoYW5kbGluZy4gSXQgd2FzIG9yaWdpbmFsbHkgaW1wbGVtZW50ZWQgbGlrZSB0aGlzLCBzbyBpdCBjb3VsZCBoYW5kbGUgY2FsbHMgd2hlbiB0aGUgbXV0ZXggd2FzbiYjMzk7dCBoZWxkLiBCdXQgdGhlIGNoYW5nZSBtZWFucyB0aGF0IGlzbiYjMzk7dCB0aGUgY2FzZSBhbnkgbG9uZ2VyLiBOb3cgdGhlIGZ1bmN0aW9uIGV4cGVjdHMgdGhlIG11dGV4IHRvIGJlIGhlbGQuIFNvLCBpZiB3ZSBhcmUgY2FsbGluZyBgX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCBkaXJlY3RseSwgdGhlbiB3ZSAqbmVlZCogdG8gYWNxdWlyZSB0aGUgbXV0ZXggYmVmb3JlaGFuZC4KClNvLCBsZXQmIzM5O3MgbG9vayBhdCBgbXQ3OTIxX21hY19zdGFfYWRkYCBhZ2FpbiwgdG8gZmluZCB3aGVyZSB0aGUgbXV0ZXggaXMgYWNxdWlyZWQuIEkmIzM5O3ZlIGdvdCB0aGUgY29kZSB1cCwgYW5kIEkgY2FuIHNlZSB0aGF0IGBtdDc2X2Nvbm5hY19wbV93YWtlYCBpcyBjYWxsZWQgYmVmb3JlLCBidXQgSSBrbm93IHRoYXQgYG10NzZfY29ubmFjX211dGV4X2FjcXVpcmVgIGlzIGV4cGxpY2l0bHkgdXNlZCB3aXRoIGl0LCB3aGljaCBtZWFucyBgbXQ3Nl9jb25uYWNfcG1fd2FrZWAgZG9lcyAqbm90KiBhY3F1aXJlIHRoZSBtdXRleC4gIGBtdDc5MjFfbWN1X3N0YV91cGRhdGVgIGlzIGFsc28gY2FsbGVkLCBidXQgSSBjYW4gY29uZmlybSB0aGF0IGl0IGRvZXMgbm90IGFjcXVpcmUgdGhlIG11dGV4LgoKU28sIHdoZXJlIGVsc2UgaXMgYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgIGNhbGxlZD8gSSBzaG91bGQgYWxzbyBjaGVjayBgbXQ3OTIxX21hY19zdGFfcmVtb3ZlYC4gSXQmIzM5O3MgcG9zc2libGUgdGhlIG11dGV4IGlzIGhlbGQgdGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjAzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogODkxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA4OTE6XHR2b2lkIG10NzkyMV9tYWNfc3RhX3JlbW92ZShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG4gODkyOlx0XHRcdFx0ICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcbiA4OTM6XHR7XG4gODk0Olx0XHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc5MnhfZGV2LCBtdDc2KTtcbiA4OTU6XHRcdHN0cnVjdCBtdDc5Mnhfc3RhICptc3RhID0gKHN0cnVjdCBtdDc5Mnhfc3RhICopc3RhLVx1MDAzZWRydl9wcml2O1xuIDg5NjpcdFxuIDg5NzpcdFx0bXQ3OTIxX3JvY19hYm9ydF9zeW5jKGRldik7XG4gODk4Olx0XHRtdDc2X2Nvbm5hY19mcmVlX3BlbmRpbmdfdHhfc2ticyhcdTAwMjZkZXYtXHUwMDNlcG0sIFx1MDAyNm1zdGEtXHUwMDNlZGVmbGluay53Y2lkKTtcbiA4OTk6XHRcdG10NzZfY29ubmFjX3BtX3dha2UoXHUwMDI2ZGV2LVx1MDAzZW1waHksIFx1MDAyNmRldi1cdTAwM2VwbSk7XG4gOTAwOlx0XG4gOTAxOlx0XHRtdDc5MjFfbWN1X3N0YV91cGRhdGUoZGV2LCBzdGEsIHZpZiwgZmFsc2UsIE1UNzZfU1RBX0lORk9fU1RBVEVfTk9ORSk7XG4gOTAyOlx0XHRtdDc5MjFfbWFjX3d0YmxfdXBkYXRlKGRldiwgbXN0YS1cdTAwM2VkZWZsaW5rLndjaWQuaWR4LFxuIDkwMzpcdFx0XHRcdCAgICAgICBNVF9XVEJMX1VQREFURV9BRE1fQ09VTlRfQ0xFQVIpO1xuIDkwNDpcdFxuIDkwNTpcdFx0aWYgKHZpZi1cdTAwM2V0eXBlID09IE5MODAyMTFfSUZUWVBFX1NUQVRJT04pIHtcbiA5MDY6XHRcdFx0c3RydWN0IG10NzkyeF92aWYgKm12aWYgPSAoc3RydWN0IG10NzkyeF92aWYgKil2aWYtXHUwMDNlZHJ2X3ByaXY7XG4gOTA3Olx0XG4gOTA4Olx0XHRcdG12aWYtXHUwMDNld2VwX3N0YSA9IE5VTEw7XG4gOTA5Olx0XHRcdGV3bWFfcnNzaV9pbml0KFx1MDAyNm12aWYtXHUwMDNlYnNzX2NvbmYucnNzaSk7XG4gOTEwOlx0XHRcdGlmICghc3RhLVx1MDAzZXRkbHMpXG4gOTExOlx0XHRcdFx0bXQ3Nl9jb25uYWNfbWN1X3VuaV9hZGRfYnNzKFx1MDAyNmRldi1cdTAwM2VtcGh5LCB2aWYsXG4gOTEyOlx0XHRcdFx0XHRcdFx0ICAgIFx1MDAyNm12aWYtXHUwMDNlc3RhLmRlZmxpbmsud2NpZCwgZmFsc2UsXG4gOTEzOlx0XHRcdFx0XHRcdFx0ICAgIG12aWYtXHUwMDNlYnNzX2NvbmYubXQ3Ni5jdHgpO1xuIDkxNDpcdFx0fVxuIDkxNTpcdFxuIDkxNjpcdFx0c3Bpbl9sb2NrX2JoKFx1MDAyNmRldi1cdTAwM2VtdDc2LnN0YV9wb2xsX2xvY2spO1xuIDkxNzpcdFx0aWYgKCFsaXN0X2VtcHR5KFx1MDAyNm1zdGEtXHUwMDNlZGVmbGluay53Y2lkLnBvbGxfbGlzdCkpXG4gOTE4Olx0XHRcdGxpc3RfZGVsX2luaXQoXHUwMDI2bXN0YS1cdTAwM2VkZWZsaW5rLndjaWQucG9sbF9saXN0KTtcbiA5MTk6XHRcdHNwaW5fdW5sb2NrX2JoKFx1MDAyNmRldi1cdTAwM2VtdDc2LnN0YV9wb2xsX2xvY2spO1xuIDkyMDpcdFxuIDkyMTpcdFx0bXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZSh2aWYsIGZhbHNlKTtcbiA5MjI6XHRcbiA5MjM6XHRcdG10NzZfY29ubmFjX3Bvd2VyX3NhdmVfc2NoZWQoXHUwMDI2ZGV2LVx1MDAzZW1waHksIFx1MDAyNmRldi1cdTAwM2VwbSk7XG4gOTI0Olx0fVxuIDkyNTpcdEVYUE9SVF9TWU1CT0xfR1BMKG10NzkyMV9tYWNfc3RhX3JlbW92ZSk7XG4gOTI2Olx0XG4gOTI3Olx0c3RhdGljIGludCBtdDc5MjFfc2V0X3J0c190aHJlc2hvbGQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGludCByYWRpb19pZHgsXG4gOTI4Olx0XHRcdFx0XHQgICAgdTMyIHZhbClcbiA5Mjk6XHR7XG4gOTMwOlx0XHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gbXQ3OTJ4X2h3X2Rldihodyk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjAzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY1ODY0CgkJCQkJCQlvdXRwdXQ6IDUwCgkJCQkJCQl0aG91Z2h0czogMjE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBQb3RlbnRpYWwgRGVhZGxvY2sgaW4gTVQ3OTIxIERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBgbXQ3OTIxX21hY19zdGFfcmVtb3ZlYCBmdW5jdGlvbiBhbmQgcmVhbGl6aW5nIGl0ICphbHNvKiBkb2VzbiYjMzk7dCBzZWVtIHRvIGhvbGQgYGRldi0mZ3Q7bXV0ZXhgLiBUaGF0JiMzOTtzIGludGVyZXN0aW5nLCBidXQgbm90IHRoZSBmb2N1cyByaWdodCBub3cuIE15IG1haW4gY29uY2VybiBpcyB0aGF0IEkgc3VzcGVjdCBgbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAgbWlnaHQgYmUgZGVhZGxvY2tpbmcuIFRoZSBtb3JlIEkgdGhpbmsgYWJvdXQgaXQsIHRoZSBtb3JlIEkmIzM5O20gbGVhbmluZyB0b3dhcmRzIHRoZSBpZGVhIHRoYXQgdGhlIHByb2JsZW0gc3RlbXMgZnJvbSBgbXQ3OTIxX21hY19zdGFfYWRkYCBiZWluZyBjYWxsZWQgd2hpbGUgYW5vdGhlciBsb2NrIGlzIGFscmVhZHkgaGVsZC4gIEFuZCBzaW5jZSBgbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAgKmFsc28qIHRyaWVzIHRvIGFjcXVpcmUgYGRldi0mZ3Q7bXV0ZXhgLCB3ZSYjMzk7dmUgZ290IGEgY2xhc3NpYyBkZWFkbG9jayBzY2VuYXJpbyBicmV3aW5nLiAgSWYgYGRldi0mZ3Q7bXV0ZXhgIGlzIGFscmVhZHkgdGFrZW4sIGNhbGxpbmcgYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAgc2VlbXMgbGlrZSBhIHN0ZXAgaW4gdGhlIHJpZ2h0IGRpcmVjdGlvbi4gSXQgbWFrZXMgc2Vuc2UsIGluIHRoYXQgc2NlbmFyaW8uCgpCdXQgbm93IEkgbmVlZCB0byBmaW5kIHdoZXJlIGBkZXYtJmd0O211dGV4YCAqY291bGQqIGJlIGhlbGQgYXQgdGhlIHRpbWUgb2YgdGhlIGNhbGwuIEkgbmVlZCB0byB0cmFjZSB0aGlzIGJhY2suICBJbiBtYWM4MDIxMSwgYHN0YV9hZGRgIGlzIGFjdHVhbGx5IGNhbGxlZCBmcm9tIGBtYWM4MDIxMV9zdGFfYWRkYC4gVGhlbiBJIHJlbWVtYmVyLCBgbXQ3NmAgaGFzIGl0cyBvd24gd3JhcHBlciwgYG10NzZfc3RhX2FkZGAsIGFuZCB0aGF0IGlzIGNhbGxlZCBmcm9tIGBtdDc2X3N0YV9zdGF0ZWAuIFRoaXMgaXMgdGhlIG1vc3QgbGlrZWx5IHBsYWNlIHdoZXJlIHRoZSBsb2NrIGlzIHRha2VuIGJlZm9yZSBgbXQ3OTIxX21hY19zdGFfYWRkYCBpcyBjYWxsZWQuIFNvLCBJIG5lZWQgdG8gY2hlY2sgYG10NzZfc3RhX3N0YXRlYCB2ZXJ5IGNhcmVmdWxseSB0byB1bmRlcnN0YW5kIGV4YWN0bHkgd2hhdCYjMzk7cyBnb2luZyBvbiB0aGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDk6MDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxNjUxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzE2NTE6XHRpbnQgbXQ3Nl9zdGFfc3RhdGUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG4xNjUyOlx0XHRcdCAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXG4xNjUzOlx0XHRcdCAgIGVudW0gaWVlZTgwMjExX3N0YV9zdGF0ZSBvbGRfc3RhdGUsXG4xNjU0Olx0XHRcdCAgIGVudW0gaWVlZTgwMjExX3N0YV9zdGF0ZSBuZXdfc3RhdGUpXG4xNjU1Olx0e1xuMTY1NjpcdFx0c3RydWN0IG10NzZfcGh5ICpwaHkgPSBody1cdTAwM2Vwcml2O1xuMTY1NzpcdFx0c3RydWN0IG10NzZfZGV2ICpkZXYgPSBwaHktXHUwMDNlZGV2O1xuMTY1ODpcdFx0ZW51bSBtdDc2X3N0YV9ldmVudCBldjtcbjE2NTk6XHRcbjE2NjA6XHRcdHBoeSA9IG10NzZfdmlmX3BoeShodywgdmlmKTtcbjE2NjE6XHRcdGlmICghcGh5KVxuMTY2MjpcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbjE2NjM6XHRcbjE2NjQ6XHRcdGlmIChvbGRfc3RhdGUgPT0gSUVFRTgwMjExX1NUQV9OT1RFWElTVCBcdTAwMjZcdTAwMjZcbjE2NjU6XHRcdCAgICBuZXdfc3RhdGUgPT0gSUVFRTgwMjExX1NUQV9OT05FKVxuMTY2NjpcdFx0XHRyZXR1cm4gbXQ3Nl9zdGFfYWRkKHBoeSwgdmlmLCBzdGEpO1xuMTY2NzpcdFxuMTY2ODpcdFx0aWYgKG9sZF9zdGF0ZSA9PSBJRUVFODAyMTFfU1RBX05PTkUgXHUwMDI2XHUwMDI2XG4xNjY5Olx0XHQgICAgbmV3X3N0YXRlID09IElFRUU4MDIxMV9TVEFfTk9URVhJU1QpXG4xNjcwOlx0XHRcdG10NzZfc3RhX3JlbW92ZShwaHksIHZpZiwgc3RhKTtcbjE2NzE6XHRcbjE2NzI6XHRcdGlmICghZGV2LVx1MDAzZWRydi1cdTAwM2VzdGFfZXZlbnQpXG4xNjczOlx0XHRcdHJldHVybiAwO1xuMTY3NDpcdFxuMTY3NTpcdFx0aWYgKG9sZF9zdGF0ZSA9PSBJRUVFODAyMTFfU1RBX0FVVEggXHUwMDI2XHUwMDI2XG4xNjc2Olx0XHQgICAgbmV3X3N0YXRlID09IElFRUU4MDIxMV9TVEFfQVNTT0MpXG4xNjc3Olx0XHRcdGV2ID0gTVQ3Nl9TVEFfRVZFTlRfQVNTT0M7XG4xNjc4Olx0XHRlbHNlIGlmIChvbGRfc3RhdGUgPT0gSUVFRTgwMjExX1NUQV9BU1NPQyBcdTAwMjZcdTAwMjZcbjE2Nzk6XHRcdFx0IG5ld19zdGF0ZSA9PSBJRUVFODAyMTFfU1RBX0FVVEhPUklaRUQpXG4xNjgwOlx0XHRcdGV2ID0gTVQ3Nl9TVEFfRVZFTlRfQVVUSE9SSVpFO1xuMTY4MTpcdFx0ZWxzZSBpZiAob2xkX3N0YXRlID09IElFRUU4MDIxMV9TVEFfQVNTT0MgXHUwMDI2XHUwMDI2XG4xNjgyOlx0XHRcdCBuZXdfc3RhdGUgPT0gSUVFRTgwMjExX1NUQV9BVVRIKVxuMTY4MzpcdFx0XHRldiA9IE1UNzZfU1RBX0VWRU5UX0RJU0FTU09DO1xuMTY4NDpcdFx0ZWxzZVxuMTY4NTpcdFx0XHRyZXR1cm4gMDtcbjE2ODY6XHRcbjE2ODc6XHRcdHJldHVybiBkZXYtXHUwMDNlZHJ2LVx1MDAzZXN0YV9ldmVudChkZXYsIHZpZiwgc3RhLCBldik7XG4xNjg4Olx0fVxuMTY4OTpcdEVYUE9SVF9TWU1CT0xfR1BMKG10NzZfc3RhX3N0YXRlKTtcbjE2OTA6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDk6MDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjcyMzIKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAxMTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUG90ZW50aWFsIFJhY2UgQ29uZGl0aW9uIGluIHRoZSBNVDc2IERyaXZlcioqCgpPa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBJJiMzOTttIHRha2luZyBhIGNsb3NlciBsb29rIGF0IHRoaXMgYG10NzZfc3RhX3N0YXRlYCBmdW5jdGlvbi4gTXkgaW5pdGlhbCBpbXByZXNzaW9uIGlzIHRoYXQgaXQgZG9lc24mIzM5O3Qgc2VlbSB0byBhY3F1aXJlIHRoZSBgZGV2LSZndDttdXRleGAgZGlyZWN0bHksIHdoaWNoIGlzIGEgYml0IGNvbmNlcm5pbmcsIGNvbnNpZGVyaW5nIGl0cyBwb3RlbnRpYWwgaW50ZXJhY3Rpb24gd2l0aCBvdGhlciBwYXJ0cyBvZiB0aGUgZHJpdmVyLgoKU28sIHRoZSBuZXh0IHRoaW5nIEkgbmVlZCB0byBkbyBpcyBjb25maXJtIHRoYXQuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyBgbXQ3Nl9zdGFfc3RhdGVgIGlzIGFjdHVhbGx5ICpjYWxsZWQqLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byBrbm93IGlmIGl0JiMzOTtzIGJlaW5nIGludm9rZWQgd2l0aCB0aGUgYGRldi0mZ3Q7bXV0ZXhgIGFscmVhZHkgaGVsZC4gSXQgbG9va3MgbGlrZSBpdCBpcyBhbiBgaWVlZTgwMjExX29wc2AgY2FsbGJhY2ssIHdoaWNoIG1lYW5zIGl0JiMzOTtzIHBhcnQgb2YgdGhlIG1hYzgwMjExIHN0YWNrLgoKQWgsIHJpZ2h0LCBub3cgSSBzZWUsIHRoZSBtYWM4MDIxMSBsYXllciBjYW4gY2FsbCB0aGUgYHN0YV9zdGF0ZWAgd2l0aG91dCBleHBsaWNpdCBrbm93bGVkZ2Ugb2Ygb3VyIGBkZXYtJmd0O211dGV4YC4gVGhpcyBpcyBzdGFydGluZyB0byBsb29rIGxpa2UgYSBwb3NzaWJsZSByYWNlIGNvbmRpdGlvbiwgZXNwZWNpYWxseSBpZiBgbXQ3Nl9zdGFfc3RhdGVgIGlzIGFjY2Vzc2luZyBhbnkgc2hhcmVkIGRhdGEgdW5wcm90ZWN0ZWQuIAoKV2FpdCBhIG1pbnV0ZSwgbWF5YmUgSSYjMzk7bSBqdW1waW5nIHRvIGNvbmNsdXNpb25zLiBQZXJoYXBzIGBtdDc2X3N0YV9zdGF0ZWAgaXMgd3JhcHBlZCBieSBzb21ldGhpbmcuIExldCBtZSBjaGVjayB0aGUgYG10NzkyMV9vcHNgIHN0cnVjdHVyZS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgZnVuY3Rpb24gcG9pbnRlciBpcyBub3QgcG9pbnRpbmcgdG8gYW4gaW50ZXJtZWRpYXRlIHdyYXBwZXIgdGhhdCAqZG9lcyogdGFrZSBjYXJlIG9mIHRoZSBtdXRleC4gVGhpcyBpcyBhIGNyaXRpY2FsIHN0ZXAgdG8gY29uZmlybSBteSBzdXNwaWNpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjA2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N0YV9zdGF0ZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9OTQwPW10NzkyMV9hbXBkdV9hY3Rpb24oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTk5NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo5OTY6c3RhdGljIGludCBtdDc5MjFfc3RhX3N0YXRlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTk5Ny1cdFx0XHQgICAgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy05OTgtXHRcdFx0ICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6OTk5Olx0XHRcdCAgICBlbnVtIGllZWU4MDIxMV9zdGFfc3RhdGUgb2xkX3N0YXRlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjEwMDA6XHRcdFx0ICAgIGVudW0gaWVlZTgwMjExX3N0YV9zdGF0ZSBuZXdfc3RhdGUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTAwMS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTEwMDUtXHRcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTAwNjpcdFx0bXQ3Nl9jb25uYWNfc3RhX3N0YXRlX2RwKFx1MDAyNmRldi1cdTAwM2VtdDc2LCBvbGRfc3RhdGUsIG5ld19zdGF0ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTAwNy1cdFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTAwOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxMDEwOlx0cmV0dXJuIG10NzZfc3RhX3N0YXRlKGh3LCB2aWYsIHN0YSwgb2xkX3N0YXRlLCBuZXdfc3RhdGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTEwMTEtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xNTQ4PWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10NzkyMV9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTE1NTktXHQuc3RvcF9hcCA9IG10NzkyMV9zdG9wX2FwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjE1NjA6XHQuc3RhX3N0YXRlID0gbXQ3OTIxX3N0YV9zdGF0ZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xNTYxLVx0LnN0YV9wcmVfcmN1X3JlbW92ZSA9IG10NzZfc3RhX3ByZV9yY3VfcmVtb3ZlLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2ODUyNQoJCQkJCQkJb3V0cHV0OiA1MQoJCQkJCQkJdGhvdWdodHM6IDc3OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIENvbmN1cnJlbmN5IGluIHRoZSBNVDc5MjEgRHJpdmVyKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdGhhdCBgbXQ3OTIxX3N0YV9zdGF0ZWAgd2FzIG5vdCBhY3F1aXJpbmcgdGhlIGBkZXYtJmd0O211dGV4YCBiZWZvcmUgY2FsbGluZyBgbXQ3Nl9zdGFfc3RhdGVgLiBJIHNhdyB0aGUgY29uZGl0aW9uYWwgYmxvY2sgd2l0aCBgbXQ3OTJ4X211dGV4X2FjcXVpcmVgIGFuZCBgbXQ3OTJ4X211dGV4X3JlbGVhc2VgLCBidXQgaXQmIzM5O3Mgb25seSBleGVjdXRlZCBpZiBgZGV2LSZndDtwbS5kc19lbmFibGVgIGlzIHRydWUuIEluIHRoZSBvdGhlciBjYXNlIGBtdDc2X3N0YV9zdGF0ZWAgaXMgYmVpbmcgY2FsbGVkIHdpdGhvdXQgYGRldi0mZ3Q7bXV0ZXhgIGJlaW5nIGhlbGQuCgpUaGlzIGlzIHdoZXJlIGl0IGdldHMgaW50ZXJlc3RpbmcuIGBtdDc2X3N0YV9zdGF0ZWAgdGhlbiBjYWxscyBgbXQ3Nl9zdGFfYWRkYCwgd2hpY2ggc3Vic2VxdWVudGx5IGNhbGxzIGBtdDc5MjFfbWFjX3N0YV9hZGRgLiBBbmQgaXQgaXMgaGVyZSB0aGF0IGBtdDc5MjFfbWFjX3N0YV9hZGRgIGNhbGxzIGBtdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlYCwgd2hpY2ggaW4gdHVybiBjYWxscyBgX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYC4gVGhlIHByb2JsZW0gaXMgdGhhdCBgX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCAqYXNzdW1lcyogdGhlIG11dGV4IGlzIGhlbGQuIElmIHRoZSBtdXRleCBpc24mIzM5O3QgaGVsZCB3aGVuIGNhbGxpbmcgYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAsIHRoZW4gaXQgd29uJiMzOTt0IGJlIGFjcXVpcmVkLCBsZWFkaW5nIHRvIGEgcmFjZSBjb25kaXRpb24uIElzIHRoaXMgaW50ZW50aW9uYWw/IEkgbmVlZCB0byBrbm93IGlmIGBtdDc5MjFfbWFjX3N0YV9hZGRgIGlzIGhvbGRpbmcgdGhlIG11dGV4LgoKSSBsb29rZWQgYXQgdGhlIGNvZGUgZm9yIGBfX210NzkyMV9tY3VfcmVnZF91cGRhdGVgLiBJIHdhcyBhYmxlIHRvIHZlcmlmeSB0aGF0IHRoZSBmdW5jdGlvbiBoYXMgYSBjaGVjayBmb3IgYGRldi0mZ3Q7cmVnZF9jaGFuZ2VgIHRvIHJldHVybiwgYW5kIGl0IGNhbGxzIGBtdDc5MjFfbWN1X3NldF9jbGNgIGJ1dCB0aGF0IGRvZXNuJiMzOTt0IHRlbGwgbWUgYWJvdXQgdGhlIG11dGV4IGJlaW5nIGhlbGQuCgpTbywgSSB3ZW50IGJhY2sgdG8gYG10NzkyMV9tYWNfc3RhX2FkZGAuIEkgc2F3IHRoYXQgaXQgY2FsbHMgYG10NzZfY29ubmFjX3BtX3dha2VgLiBUaGVuIEkgc2F3IHRoYXQgYG10NzZfY29ubmFjX3BtX3dha2VgIGRvZXMgKm5vdCogYWNxdWlyZSB0aGUgbXV0ZXguIEJ1dCwgaG9sZCBvbiBhIHNlY29uZC4gYG10NzZfY29ubmFjX211dGV4X2FjcXVpcmVgICpkb2VzKiBhY3F1aXJlIHRoZSBtdXRleCBhbmQgdGhlbiBjYWxscyBgbXQ3Nl9jb25uYWNfcG1fd2FrZWAuIFRoaXMgbWVhbnMgdGhhdCBgbXQ3OTIxX21hY19zdGFfYWRkYCBkb2VzICpub3QqIGNhbGwgYG10NzZfY29ubmFjX211dGV4X2FjcXVpcmVgIGZpcnN0LCBpdCBjYWxscyBgbXQ3Nl9jb25uYWNfcG1fd2FrZWAgZGlyZWN0bHkuIEkgbmVlZCB0byBsb29rIGF0IGBtdDc5MjFfbWN1X3N0YV91cGRhdGVgIHNpbmNlIGl0IGlzIGFsc28gY2FsbGVkIGJlZm9yZSBgbXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZWAuCgpUaGlzIG1lYW5zIEkgbmVlZCB0byBjYXJlZnVsbHkgcmV2aWV3IHRoZSBjb25jdXJyZW5jeSBtb2RlbCBhcm91bmQgYG10NzkyMV9tYWNfc3RhX2FkZGAsIHNwZWNpZmljYWxseSBjb25jZXJuaW5nIHRoZSBgZGV2LSZndDttdXRleGAgYW5kIGl0cyBpbnRlcmFjdGlvbiB3aXRoIGBfX210NzkyMV9tY3VfcmVnZF91cGRhdGVgLiBJIHN1c3BlY3QgSSYjMzk7dmUgZm91bmQgYSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjA2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzkyMV9tY3Vfc3RhX3VwZGF0ZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYz02MzA9bXQ3OTIxX3ZpZl9jb25uZWN0X2l0ZXIodm9pZCAqcHJpdiwgdTggKm1hYyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02NDctXHRcdFx0XHRcdCAgICB0cnVlLCBOVUxMKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjY0ODpcdFx0bXQ3OTIxX21jdV9zdGFfdXBkYXRlKGRldiwgTlVMTCwgdmlmLCB0cnVlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjQ5LVx0XHRcdFx0ICAgICAgTVQ3Nl9TVEFfSU5GT19TVEFURV9OT05FKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9Njk1PXN0YXRpYyB2b2lkIG10NzkyMV9ic3NfaW5mb19jaGFuZ2VkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy03MjktXHRpZiAoY2hhbmdlZCBcdTAwMjYgQlNTX0NIQU5HRURfQVNTT0MpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo3MzA6XHRcdG10NzkyMV9tY3Vfc3RhX3VwZGF0ZShkZXYsIE5VTEwsIHZpZiwgdHJ1ZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy03MzEtXHRcdFx0XHQgICAgICBNVDc2X1NUQV9JTkZPX1NUQVRFX0FTU09DKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9ODA4PWludCBtdDc5MjFfbWFjX3N0YV9hZGQoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy04NDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6ODQ1Olx0cmV0ID0gbXQ3OTIxX21jdV9zdGFfdXBkYXRlKGRldiwgc3RhLCB2aWYsIHRydWUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtODQ2LVx0XHRcdFx0ICAgIE1UNzZfU1RBX0lORk9fU1RBVEVfTk9ORSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTg1OD1pbnQgbXQ3OTIxX21hY19zdGFfZXZlbnQoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy04ODItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6ODgzOlx0bXQ3OTIxX21jdV9zdGFfdXBkYXRlKGRldiwgc3RhLCB2aWYsIHRydWUsIE1UNzZfU1RBX0lORk9fU1RBVEVfQVNTT0MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTg4NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9ODkxPXZvaWQgbXQ3OTIxX21hY19zdGFfcmVtb3ZlKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtOTAwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjkwMTpcdG10NzkyMV9tY3Vfc3RhX3VwZGF0ZShkZXYsIHN0YSwgdmlmLCBmYWxzZSwgTVQ3Nl9TVEFfSU5GT19TVEFURV9OT05FKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy05MDItXHRtdDc5MjFfbWFjX3d0YmxfdXBkYXRlKGRldiwgbXN0YS1cdTAwM2VkZWZsaW5rLndjaWQuaWR4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMzM0PW10NzkyMV9zdGFydF9hcChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTM1Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxMzUzOlx0ZXJyID0gbXQ3OTIxX21jdV9zdGFfdXBkYXRlKGRldiwgTlVMTCwgdmlmLCB0cnVlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTEzNTQtXHRcdFx0XHQgICAgTVQ3Nl9TVEFfSU5GT19TVEFURV9OT05FKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYz0xMDEwPW10NzkyMV9tY3Vfc2V0X2Jzc19wbShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTEwNDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYzoxMDQ3OmludCBtdDc5MjFfbWN1X3N0YV91cGRhdGUoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTEwNDgtXHRcdFx0ICBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLCBib29sIGVuYWJsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaD0yMDk9aW50IG10NzkyMV9tY3Vfc2V0X2Jzc19wbShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjEwLVx0XHRcdCAgYm9vbCBlbmFibGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg6MjExOmludCBtdDc5MjFfbWN1X3N0YV91cGRhdGUoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oLTIxMi1cdFx0XHQgIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsIGJvb2wgZW5hYmxlLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3MTY1NgoJCQkJCQkJb3V0cHV0OiA1MgoJCQkJCQkJdGhvdWdodHM6IDIxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFRocmVhZCBTYWZldHkgb2YgdGhlIE1UNzkyMSBEcml2ZXImIzM5O3MgU3RhdGlvbiBIYW5kbGluZyoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBJJiMzOTttIGxvb2tpbmcgYXQgaG93IHN0YXRpb24gZXZlbnRzIGFyZSBoYW5kbGVkIGluIHRoaXMgYG10NzkyMWAgZHJpdmVyLiBJIHNlZSB0aGF0IHRoZSBgbXQ3OTIxX21hY19zdGFfZXZlbnRgIGZ1bmN0aW9uIGFjcXVpcmVzIHRoZSBtdXRleCB1c2luZyBgbXQ3OTJ4X211dGV4X2FjcXVpcmVgLiBTcGVjaWZpY2FsbHk6CgpgYGBjCgltdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpOwoJbXQ3OTIxX21jdV9zdGFfdXBkYXRlKGRldiwgc3RhLCB2aWYsIHRydWUsIE1UNzZfU1RBX0lORk9fU1RBVEVfQVNTT0MpOwoJbXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTsKYGBgCgpSaWdodCwgaXQgZ3JhYnMgdGhlIG11dGV4ICpiZWZvcmUqIGNhbGxpbmcgYG10NzkyMV9tY3Vfc3RhX3VwZGF0ZWAuIE1ha2VzIHNlbnNlLCBzdGFuZGFyZCBtdXRleCB1c2FnZSBmb3IgcHJvdGVjdGlvbi4gSSBzZWUgdGhhdCBhbmQgbXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgJiMzNDtBaCwgb2theSwgYG10NzkyMV9tYWNfc3RhX2V2ZW50YCBpcyBjb3JyZWN0bHkgaGFuZGxpbmcgbXV0ZXggYWNxdWlzaXRpb24mIzM0Oy4KCkJ1dCB0aGVuLi4uIEkgcmVhbGl6ZSB0aGF0IGBtdDc5MjFfbWFjX3N0YV9hZGRgICpkb2VzbiYjMzk7dCogYWNxdWlyZSB0aGUgbXV0ZXguIFRoYXQmIzM5O3MgYSBwb3RlbnRpYWwgaXNzdWUuCgpJZiBgbXQ3OTIxX21hY19zdGFfYWRkYCBkb2VzbiYjMzk7dCBhY3F1aXJlIHRoZSBtdXRleCwgdGhlbiB0aGUgY2FsbCB0byBgbXQ3OTIxX21jdV9zdGFfdXBkYXRlYCB3aXRoaW4gdGhhdCBmdW5jdGlvbiBpcyBnb2luZyB0byBoYXBwZW4gKndpdGhvdXQqIHRoZSBwcm90ZWN0aW9uIG9mIHRoZSBtdXRleC4gVGhhdCYjMzk7cyBhIHJlZCBmbGFnLiBUaGUga2V5IHF1ZXN0aW9uIGlzOiBpcyBgbXQ3OTIxX21jdV9zdGFfdXBkYXRlYCB0aHJlYWQtc2FmZT8gT3IgZG9lcyBpdCByZWx5IG9uIHRoZSBtdXRleCBiZWluZyBoZWxkPwoKSSYjMzk7bGwgbmVlZCB0byBnbyBhbmQgZXhhbWluZSB0aGUgaW1wbGVtZW50YXRpb24gb2YgYG10NzkyMV9tY3Vfc3RhX3VwZGF0ZWAgdG8gc2VlIGlmIGl0IG1ha2VzIGFzc3VtcHRpb25zIGFib3V0IG11dGV4IHByb3RlY3Rpb24uIFRoaXMgbmVlZHMgdG8gYmUgdW5kZXJzdG9vZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40MC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDk6MDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEwNDcsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MTA0NzpcdGludCBtdDc5MjFfbWN1X3N0YV91cGRhdGUoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcbjEwNDg6XHRcdFx0XHQgIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsIGJvb2wgZW5hYmxlLFxuMTA0OTpcdFx0XHRcdCAgZW51bSBtdDc2X3N0YV9pbmZvX3N0YXRlIHN0YXRlKVxuMTA1MDpcdHtcbjEwNTE6XHRcdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVx1MDAzZWRydl9wcml2O1xuMTA1MjpcdFx0aW50IHJzc2kgPSAtZXdtYV9yc3NpX3JlYWQoXHUwMDI2bXZpZi1cdTAwM2Vic3NfY29uZi5yc3NpKTtcbjEwNTM6XHRcdHN0cnVjdCBtdDc2X3N0YV9jbWRfaW5mbyBpbmZvID0ge1xuMTA1NDpcdFx0XHQuc3RhID0gc3RhLFxuMTA1NTpcdFx0XHQudmlmID0gdmlmLFxuMTA1NjpcdFx0XHQuZW5hYmxlID0gZW5hYmxlLFxuMTA1NzpcdFx0XHQuY21kID0gTUNVX1VOSV9DTUQoU1RBX1JFQ19VUERBVEUpLFxuMTA1ODpcdFx0XHQuc3RhdGUgPSBzdGF0ZSxcbjEwNTk6XHRcdFx0Lm9mZmxvYWRfZncgPSB0cnVlLFxuMTA2MDpcdFx0XHQucmNwaSA9IHRvX3JjcGkocnNzaSksXG4xMDYxOlx0XHR9O1xuMTA2MjpcdFx0c3RydWN0IG10NzkyeF9zdGEgKm1zdGE7XG4xMDYzOlx0XG4xMDY0Olx0XHRtc3RhID0gc3RhID8gKHN0cnVjdCBtdDc5Mnhfc3RhICopc3RhLVx1MDAzZWRydl9wcml2IDogTlVMTDtcbjEwNjU6XHRcdGluZm8ud2NpZCA9IG1zdGEgPyBcdTAwMjZtc3RhLVx1MDAzZWRlZmxpbmsud2NpZCA6IFx1MDAyNm12aWYtXHUwMDNlc3RhLmRlZmxpbmsud2NpZDtcbjEwNjY6XHRcdGluZm8ubmV3bHkgPSBtc3RhID8gc3RhdGUgIT0gTVQ3Nl9TVEFfSU5GT19TVEFURV9BU1NPQyA6IHRydWU7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjA2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDcyNzUzCgkJCQkJCQlvdXRwdXQ6IDUyCgkJCQkJCQl0aG91Z2h0czogNDEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkRpZ2dpbmcgaW50byB0aGUgRnVuY3Rpb24gQ2FsbCBIaWVyYXJjaHkqKgoKQWxyaWdodCwgdGhhdCYjMzk7cyBhIGJpdCB1bmV4cGVjdGVkLiBJIHdhcyBqdXN0IGxvb2tpbmcgYXQgYG10NzkyMV9tY3Vfc3RhX3VwZGF0ZWAsIGFuZCBub3cgSSBzZWUgdGhhdCBgbXQ3Nl9jb25uYWNfbWN1X3N0YV91cGRhdGVgIGlzIGNhbGxlZCAqd2l0aGluKiBpdD8gSW50cmlndWluZy4gVGhpcyBpc24mIzM5O3QgdGhlIG1vc3QgY29tbW9uIG5hbWluZyBjb252ZW50aW9uLCBhbmQgaXQgc3VnZ2VzdHMgYSBwb3NzaWJsZSBsYXllciBvZiBhYnN0cmFjdGlvbiBvciBtb2R1bGFyaXR5IHRoYXQgSSBuZWVkIHRvIHVuZGVyc3RhbmQuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gZGlnIGRlZXBlci4gSSB3YW50IHRvIGtub3cgd2h5IHRoaXMgc3BlY2lmaWMgZGVzaWduIGNob2ljZSB3YXMgbWFkZS4gQXJlIHRoZXkgaGFuZGxpbmcgZGlmZmVyZW50IGFzcGVjdHMgb2Ygc3RhdGlvbiB1cGRhdGVzLCBwZXJoYXBzIHJlbGF0aW5nIHRvIHRoZSBjb25uYWMgcGxhdGZvcm0/IElzIHRoZXJlIGNvZGUgcmV1c2UsIG9yIHBlcmhhcHMgYSBzcGVjaWZpYyBkaXZpc2lvbiBvZiBsYWJvciBmb3IgdGhlIGRpZmZlcmVudCBNQ1VzLCB0aGF0JiMzOTtzIGRyaXZpbmcgdGhpcz8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGxvZ2ljIGJlaGluZCB0aGlzIGludGVyYWN0aW9uIGFuZCB0aGUgcmF0aW9uYWxlIGZvciBzcGxpdHRpbmcgdGhlIHVwZGF0ZSBwcm9jZXNzIGluIHRoaXMgcGFydGljdWxhciB3YXkuIFRpbWUgdG8gZ28gc3BlbHVua2luZyBpbiB0aGUgc291cmNlIGNvZGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjA2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxMDY3LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzEwNjc6XHRcbjEwNjg6XHRcdHJldHVybiBtdDc2X2Nvbm5hY19tY3Vfc3RhX2NtZChcdTAwMjZkZXYtXHUwMDNlbXBoeSwgXHUwMDI2aW5mbyk7XG4xMDY5Olx0fVxuMTA3MDpcdFxuMTA3MTpcdGludCBtdDc5MjFfbWN1X3NldF9iZWFjb25fZmlsdGVyKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsXG4xMDcyOlx0XHRcdFx0XHQgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbjEwNzM6XHRcdFx0XHRcdCBib29sIGVuYWJsZSlcbjEwNzQ6XHR7XG4xMDc1Olx0I2RlZmluZSBNVDc5MjFfRklGX0JJVF9DTFJcdFx0QklUKDEpXG4xMDc2Olx0I2RlZmluZSBNVDc5MjFfRklGX0JJVF9TRVRcdFx0QklUKDApXG4xMDc3Olx0XHRpbnQgZXJyO1xuMTA3ODpcdFxuMTA3OTpcdFx0aWYgKGVuYWJsZSkge1xuMTA4MDpcdFx0XHRlcnIgPSBtdDc5MjFfbWN1X3VuaV9ic3NfYmNuZnQoZGV2LCB2aWYsIHRydWUpO1xuMTA4MTpcdFx0XHRpZiAoZXJyKVxuMTA4MjpcdFx0XHRcdHJldHVybiBlcnI7XG4xMDgzOlx0XG4xMDg0Olx0XHRcdGVyciA9IG10NzkyMV9tY3Vfc2V0X3J4ZmlsdGVyKGRldiwgMCxcbjEwODU6XHRcdFx0XHRcdFx0ICAgICAgTVQ3OTIxX0ZJRl9CSVRfU0VULFxuMTA4NjpcdFx0XHRcdFx0XHQgICAgICBNVF9XRl9SRkNSX0RST1BfT1RIRVJfQkVBQ09OKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40My8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDk6MDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzM0MTAKCQkJCQkJCW91dHB1dDogNTAKCQkJCQkJCXRob3VnaHRzOiAxMjk2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBNdXRleCBVc2FnZSBpbiB0aGUgTVQ3OTIxIERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTttIGRpZ2dpbmcgaW50byB0aGlzIGBtdDc2X2Nvbm5hY19tY3Vfc3RhX2NtZGAgZnVuY3Rpb24uIEl0IHNlZW1zIHByZXR0eSBnZW5lcmljLCBidXQgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgaXQmIzM5O3MgdGhyZWFkLXNhZmUuIE15IGZvY3VzIGlzIG9uIHRoZSBtdXRleCB1c2FnZS4gRmlyc3QsIEkmIzM5O20gdHJhY2luZyB0aGUgY2FsbCBzdGFjayBmcm9tIGBtdDc2X2Nvbm5hY19tY3Vfc3RhX2NtZGAgdG8gdGhlIGZ1bmN0aW9ucyBpdCBjYWxscywgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgTVQ3OTIxIGRyaXZlci4gSSYjMzk7bSB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiB0aGUgbXV0ZXggaXMgY29ycmVjdGx5IGhlbGQgd2hlbiBjcnVjaWFsIGhhcmR3YXJlIG9wZXJhdGlvbnMgYXJlIHBlcmZvcm1lZC4KCkkgc2VlIHRoYXQgYG10NzkyMV9tYWNfc3RhX2FkZGAgaXMgdGhlIGtleSBmdW5jdGlvbiBpbiB0aGUgY2hhaW4sIHNvIEkgd2FudCB0byBrbm93IGlmIGBkZXYtJmd0O211dGV4YCBpcyBoZWxkIGF0IHRoYXQgcG9pbnQuIEkga25vdyBpdCYjMzk7cyBhc3NpZ25lZCB0byBgc3RhX2FkZGAgd2l0aGluIGBtdDc2X2RyaXZlcl9vcHNgLiBUaGF0IGZ1bmN0aW9uIGdldHMgY2FsbGVkIGZyb20gYG10NzZfc3RhX2FkZGAsIHdoaWNoIGluIHR1cm4sIGlzIHRyaWdnZXJlZCBieSBgbXQ3Nl9zdGFfc3RhdGVgLiBIb3dldmVyLCBteSBpbml0aWFsIGh1bmNoIGlzIHRoYXQgYG10NzZfc3RhX3N0YXRlYCBkb2VzbiYjMzk7dCBob2xkIHRoZSBtdXRleCwgYmVjYXVzZSBpdCBpcyBjYWxsZWQgZnJvbSB0aGUgbWFjODAyMTEgY29yZSBhbmQgaXQmIzM5O3MgdW5saWtlbHkgdGhhdCB0aGUgbWFjODAyMTEgY29yZSBtYW5hZ2VzIHRoZSBkZXZpY2UgbXV0ZXguIEhvd2V2ZXIsIGluIHRoaXMgY2FzZSwgdGhlIGBzdGFfc3RhdGVgIGNhbGxiYWNrIGZvciBgbXQ3OTIxX29wc2AgaXMgYG10NzkyMV9zdGFfc3RhdGVgLiBOb3csIHRoaXMgaXMgaW50ZXJlc3RpbmcuIEkgc2VlIHRoYXQgYG10NzkyMV9zdGFfc3RhdGVgICpkb2VzKiBhY3F1aXJlIGFuZCByZWxlYXNlIHRoZSBtdXRleCwgYnV0IGBtdDc2X3N0YV9zdGF0ZWAgd2lsbCBiZSBjYWxsZWQgKmFmdGVyKiB0aGlzIGhhcHBlbnMuIFRoZXJlZm9yZSwgYG10NzkyMV9tYWNfc3RhX2FkZGAgaXMgY2FsbGVkIHdpdGhvdXQgdGhlIG11dGV4LgoKTm93LCBsZXQmIzM5O3Mga2VlcCBnb2luZy4gYG10NzkyMV9tYWNfc3RhX2FkZGAgdGhlbiBjYWxscyBgbXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZWAsIHdoaWNoIGluIHR1cm4gY2FsbHMgYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAuIEhlcmUmIzM5O3Mgd2hlcmUgaXQgZ2V0cyB3b3JyeWluZy4gVGhlIGxvd2VyIGZ1bmN0aW9uIGBfX210NzkyMV9tY3VfcmVnZF91cGRhdGVgIG1ha2VzIGFuIGFzc3VtcHRpb24gdGhhdCB0aGUgbXV0ZXggaXMgaGVsZC4gVGhpcyBmdW5jdGlvbiB3aWxsIGNhbGwgc2V2ZXJhbCBtb3JlIGZ1bmN0aW9uczogYG10NzkyMV9tY3Vfc2V0X2NsY2AsIGBtdDc5MjFfcmVnZF9jaGFubmVsX3VwZGF0ZWAsIGBtdDc2X2Nvbm5hY19tY3Vfc2V0X2NoYW5uZWxfZG9tYWluYCwgYW5kIGBtdDc5MjFfc2V0X3R4X3Nhcl9wd3JgLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGVzZSByZXF1aXJlIHRoZSBtdXRleC4KCkl0IHR1cm5zIG91dCB0aGF0IGBfX210NzkyMV9tY3VfcmVnZF91cGRhdGVgIGl0c2VsZiAqdXNlZCogdG8gYWNxdWlyZSB0aGUgbXV0ZXggZXhwbGljaXRseS4gTm93IEkgdW5kZXJzdGFuZCB3aGF0JiMzOTtzIGhhcHBlbmluZy4gVGhlIHBhdGNoIGNoYW5nZXMgYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgIHRvIGNhbGwgYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAgKmRpcmVjdGx5Kiwgd2hpY2ggbWVhbnMgdGhlIG11dGV4IGFjcXVpc2l0aW9uIGlzIGJlaW5nICpyZW1vdmVkKiBmcm9tIHRoZSBjYWxsIHBhdGghIFRoaXMgaXMgYSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb24gYW5kIGEgc2VyaW91cyBpc3N1ZS4gV2UgYXJlIGFjY2Vzc2luZyBoYXJkd2FyZSB3aXRob3V0IHRoZSBtdXRleCBwcm90ZWN0aW9uLiBUaGUgcGF0Y2ggaXMgcHJvYmFibHkgdHJ5aW5nIHRvIGZpeCBzb21ldGhpbmcsIGJ1dCB0aGV5IHByb2JhYmx5IGludHJvZHVjZWQgdGhpcyBzZXJpb3VzIHJhY2UgYnkgcmVtb3ZpbmcgdGhlIG11dGV4LgoKSSYjMzk7bSBkb3VibGUtY2hlY2tpbmcgdGhlIGNhbGwgc3RhY2suIFNpbmNlIGBtdDc5MjFfbWFjX3N0YV9hZGRgIGRvZXNuJiMzOTt0IGhvbGQgdGhlIG11dGV4LCB3aGljaCBtZWFucyBjaGFuZ2luZyB0byBgX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCAqcmVtb3ZlcyogdGhlIG11dGV4LiBMZXQgbWUgY2hlY2sgdGhlIGZ1bmN0aW9ucyB0byBzZWUgaWYgYW55IG90aGVyIGZ1bmN0aW9uIGhvbGRzIHRoZSBtdXRleC4gSSBjYW4gc2VlIHRoZSBjYWxscyB0byBgbXQ3Nl9jb25uYWNfcG1fd2FrZWAgYW5kIGBtdDc2X2Nvbm5hY19wb3dlcl9zYXZlX3NjaGVkYC4gVGhlc2UgZnVuY3Rpb25zIGRvbiYjMzk7dCBhY3F1aXJlIHRoZSBtdXRleC4gSG93ZXZlciwgSSBrbm93IHRoYXQgYG10NzZfY29ubmFjX3BtX3dha2VgIGlzIG9mdGVuIGNhbGxlZCAqd2l0aCogdGhlIG11dGV4IGhlbGQuIEkmIzM5O20gZ29pbmcgdG8gZG91YmxlLWNoZWNrIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgbXQ3Nl9jb25uYWNfcG1fd2FrZWAgdG8gY29uZmlybSB0aGlzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWFjLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAzNiwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyNQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgIDM2Olx0aW50IG10NzZfY29ubmFjX3BtX3dha2Uoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBtdDc2X2Nvbm5hY19wbSAqcG0pXG4gIDM3Olx0e1xuICAzODpcdFx0c3RydWN0IG10NzZfZGV2ICpkZXYgPSBwaHktXHUwMDNlZGV2O1xuICAzOTpcdFxuICA0MDpcdFx0aWYgKG10NzZfaXNfdXNiKGRldikpXG4gIDQxOlx0XHRcdHJldHVybiAwO1xuICA0MjpcdFxuICA0MzpcdFx0Y2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKFx1MDAyNnBtLVx1MDAzZXBzX3dvcmspO1xuICA0NDpcdFx0aWYgKCF0ZXN0X2JpdChNVDc2X1NUQVRFX1BNLCBcdTAwMjZwaHktXHUwMDNlc3RhdGUpKVxuICA0NTpcdFx0XHRyZXR1cm4gMDtcbiAgNDY6XHRcbiAgNDc6XHRcdGlmIChwbS1cdTAwM2VzdXNwZW5kZWQpXG4gIDQ4Olx0XHRcdHJldHVybiAwO1xuICA0OTpcdFxuICA1MDpcdFx0cXVldWVfd29yayhkZXYtXHUwMDNld3EsIFx1MDAyNnBtLVx1MDAzZXdha2Vfd29yayk7XG4gIDUxOlx0XHRpZiAoIXdhaXRfZXZlbnRfdGltZW91dChwbS1cdTAwM2V3YWl0LFxuICA1MjpcdFx0XHRcdFx0IXRlc3RfYml0KE1UNzZfU1RBVEVfUE0sIFx1MDAyNnBoeS1cdTAwM2VzdGF0ZSksXG4gIDUzOlx0XHRcdFx0XHQzICogSFopKSB7XG4gIDU0Olx0XHRcdGllZWU4MDIxMV93YWtlX3F1ZXVlcyhwaHktXHUwMDNlaHcpO1xuICA1NTpcdFx0XHRyZXR1cm4gLUVUSU1FRE9VVDtcbiAgNTY6XHRcdH1cbiAgNTc6XHRcbiAgNTg6XHRcdHJldHVybiAwO1xuICA1OTpcdH1cbiAgNjA6XHRFWFBPUlRfU1lNQk9MX0dQTChtdDc2X2Nvbm5hY19wbV93YWtlKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDk6MDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzYwMDIKCQkJCQkJCW91dHB1dDogNTAKCQkJCQkJCXRob3VnaHRzOiA0NTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgU3VzcGVjdGVkIE11dGV4IElzc3VlIGluIHRoZSBNVDc5MjEgRHJpdmVyKioKCk9rYXksIHNvIGBtdDc2X2Nvbm5hY19wbV93YWtlYCBpcyBkZXNpZ25lZCB0byB3YWl0IGZvciB0aGUgZGV2aWNlIHRvIHdha2UgdXAsIGFuZCBpdCBkb2VzbiYjMzk7dCBhY3F1aXJlIHRoZSBtdXRleCBpdHNlbGYsIHdoaWNoIGlzIHN0YW5kYXJkIHByYWN0aWNlLiBCdXQgbm93IEkmIzM5O20gc2VlaW5nIHNvbWV0aGluZyB0aGF0IG1ha2VzIG1lIHRoaW5rIHRoZXJlIG1pZ2h0IGJlIGEgc3VidGxlIG11dGV4LXJlbGF0ZWQgaXNzdWUgaW4gdGhpcyBkcml2ZXIuIFNwZWNpZmljYWxseSwgSSYjMzk7bSBxdWVzdGlvbmluZyB3aHkgYG10NzkyMV9tY3VfcmVnZF91cGRhdGVgIHdhcyBjaGFuZ2VkIHRvIGBfX210NzkyMV9tY3VfcmVnZF91cGRhdGVgLiBJZiBgbXQ3OTIxX21hY19zdGFfYWRkYCAqZG9lc24mIzM5O3QqIGhvbGQgdGhlIG11dGV4LCB0aGVuIHdoeSBtYWtlIHRoYXQgY2hhbmdlPyBJJiMzOTttIG1pc3NpbmcgYSBwaWVjZSBvZiBpbmZvcm1hdGlvbiBhbmQgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCYjMzk7cyBnb2luZyBvbi4KClNpbmNlIEkgZG9uJiMzOTt0IGhhdmUgdGhlIGNvbW1pdCBtZXNzYWdlIGhhbmR5LCBJIHdpbGwgY2hlY2sgdGhlIHBhdGNoIGl0c2VsZiB0byBzZWUgaWYgaXQgd2lsbCBjbGFyaWZ5IHRoZSBjaGFuZ2VzOgoKYGBgYwotCWlmICh2aWYtJmd0O2Jzc19jb25mLmNoYW5yZXEub3Blci5jaGFuLSZndDtiYW5kID09IE5MODAyMTFfQkFORF82R0haKQotCQltdDc5MjFfbWN1X3JlZ2RfdXBkYXRlKGRldiwgZGV2LSZndDttdDc2LmFscGhhMiwgZGV2LSZndDtjb3VudHJ5X2llX2Vudik7CiYjNDM7CWlmICh2aWYtJmd0O2Jzc19jb25mLmNoYW5yZXEub3Blci5jaGFuLSZndDtiYW5kID09IE5MODAyMTFfQkFORF82R0haKQomIzQzOwkJX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlKGRldiwgZGV2LSZndDttdDc2LmFscGhhMiwgZGV2LSZndDtjb3VudHJ5X2llX2Vudik7CmBgYAoKT2theSwgc28gaWYgdGhlIG9yaWdpbmFsIGBtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCAqZGlkKiBhY3F1aXJlIHRoZSBtdXRleCwgYW5kIHRoZSBuZXcgdmVyc2lvbiwgYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAsIGRvZXMgKm5vdCosIHRoaXMgaW1wbGllcyB0aGUgYXV0aG9yIGJlbGlldmVkIHRoZSBtdXRleCB3YXMgYWxyZWFkeSBoZWxkIHdoZW4gdGhpcyBmdW5jdGlvbiB3YXMgY2FsbGVkLiBUaGlzIG1ha2VzIHNlbnNlLiBXaGVyZSBpcyB0aGUgbXV0ZXggYWxyZWFkeSBiZWluZyBoZWxkPyBJIG5lZWQgdG8gdHJhY2sgdGhlIGNhbGxzIHRvIGBtdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlYCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgbXV0ZXggaXMgYmVpbmcgbWFuYWdlZC4gSXQgYXBwZWFycyB0aGF0IGl0IGlzIGNhbGxlZCBmcm9tIGJvdGggYG10NzkyMV9tYWNfc3RhX2FkZGAgYW5kIGBtdDc5MjFfbWFjX3N0YV9yZW1vdmVgLgoKTm93IEkmIzM5O20gdGhpbmtpbmcsIGhvbGQgb24gYSBzZWNvbmQuLi4gbWF5YmUgYG10NzkyMV9tYWNfc3RhX2FkZGAgKmlzKiBjYWxsZWQgd2l0aCB0aGUgbXV0ZXggaGVsZC4gSSBzaG91bGQgY2hlY2sgYG10NzZfc3RhX2FkZGAgd2hpY2ggaXMgaW4gYG1hYzgwMjExLmNgIGFuZCBjb25maXJtIHRoYXQgaXQgaXMgaW5kZWVkIGhvbGRpbmcgdGhlIG11dGV4LiBJIG5lZWQgdG8gdHJhY2UgdGhpcyBiYWNrIHRvIHRoZSBjYWxsZXIgdG8gY29uZmlybSBteSBoeXBvdGhlc2lzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDE1NzUsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MTU3NTpcdHN0YXRpYyBpbnRcbjE1NzY6XHRtdDc2X3N0YV9hZGQoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG4xNTc3Olx0XHQgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXG4xNTc4Olx0e1xuMTU3OTpcdFx0c3RydWN0IG10NzZfd2NpZCAqd2NpZCA9IChzdHJ1Y3QgbXQ3Nl93Y2lkICopc3RhLVx1MDAzZWRydl9wcml2O1xuMTU4MDpcdFx0c3RydWN0IG10NzZfZGV2ICpkZXYgPSBwaHktXHUwMDNlZGV2O1xuMTU4MTpcdFx0c3RydWN0IG10NzZfd2NpZCAqcHVibGlzaGVkO1xuMTU4MjpcdFx0aW50IHJldDtcbjE1ODM6XHRcdGludCBpO1xuMTU4NDpcdFxuMTU4NTpcdFx0bXV0ZXhfbG9jayhcdTAwMjZkZXYtXHUwMDNlbXV0ZXgpO1xuMTU4NjpcdFxuMTU4NzpcdFx0cmV0ID0gZGV2LVx1MDAzZWRydi1cdTAwM2VzdGFfYWRkKGRldiwgdmlmLCBzdGEpO1xuMTU4ODpcdFx0aWYgKHJldClcbjE1ODk6XHRcdFx0Z290byBvdXQ7XG4xNTkwOlx0XG4xNTkxOlx0XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKHN0YS1cdTAwM2V0eHEpOyBpJiM0MzsmIzQzOykge1xuMTU5MjpcdFx0XHRzdHJ1Y3QgbXQ3Nl90eHEgKm10eHE7XG4xNTkzOlx0XG4xNTk0Olx0XHRcdGlmICghc3RhLVx1MDAzZXR4cVtpXSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDk6MDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzc0MjAKCQkJCQkJCW91dHB1dDogNTAKCQkJCQkJCXRob3VnaHRzOiAxMDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBTdGF0aW9uIEFkZGl0aW9uIGFuZCBSZW1vdmFsIFByb2Nlc3NlcyoqCgpSaWdodCwgb2theSwgc28gSSYjMzk7dmUgYmVlbiBkaWdnaW5nIGludG8gdGhpcyBhbmQgaXQgbG9va3MgbGlrZSBJJiMzOTt2ZSBmb3VuZCBhIGtleSBwaWVjZS4gQWhhISBJdCYjMzk7cyBjb25maXJtZWQ6IHRoZSBgbXQ3Nl9zdGFfYWRkYCBmdW5jdGlvbiAqZG9lcyogaW5kZWVkIGFjcXVpcmUgYGRldi0mZ3Q7bXV0ZXhgISBJIGNhbiBzZWUgaXQgcmlnaHQgdGhlcmUgaW4gdGhlIGNvZGU6IGBtdXRleF9sb2NrKCZhbXA7ZGV2LSZndDttdXRleCk7YCBUaGlzIGlzIGNydWNpYWwuCgpOb3csIHNpbmNlIGBtdDc2X3N0YV9hZGRgIGxvY2tzIHRoYXQgbXV0ZXgsIHRoYXQgbWVhbnMgdGhlIGBkZXYtJmd0O2Rydi0mZ3Q7c3RhX2FkZGAgY2FsbGJhY2ssIHdoaWNoIGlzIGBtdDc5MjFfbWFjX3N0YV9hZGRgIGluIHRoaXMgY29udGV4dCwgaXMgZGVmaW5pdGVseSBiZWluZyBjYWxsZWQgd2l0aCB0aGUgYGRldi0mZ3Q7bXV0ZXhgIGhlbGQuIE9rYXksIHRoYXQgbWFrZXMgc2Vuc2Ugb2YgdGhlIGxvY2tpbmcgc2NoZW1lIHVzZWQuCgpCdXQgd2hhdCBhYm91dCB0aGUgcmVtb3ZhbCBzaWRlPyBXZSYjMzk7dmUgb25seSBjb25maXJtZWQgdGhlIGFkZCwgd2UgbmVlZCB0byBrbm93IHRoZSBzYW1lIGlzIHRydWUgZm9yIHJlbW92ZS4gTGV0IG1lIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoZSBgbXQ3Nl9zdGFfcmVtb3ZlYCBmdW5jdGlvbiB0byBiZSBzdXJlLiBUaGlzIGlzIGFuIGltcG9ydGFudCBwYXJ0IG9mIHRoZSBwdXp6bGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjA3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTYxNCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsxNjE0Olx0b3V0OlxuMTYxNTpcdFx0bXV0ZXhfdW5sb2NrKFx1MDAyNmRldi1cdTAwM2VtdXRleCk7XG4xNjE2Olx0XG4xNjE3Olx0XHRyZXR1cm4gcmV0O1xuMTYxODpcdH1cbjE2MTk6XHRcbjE2MjA6XHR2b2lkIF9fbXQ3Nl9zdGFfcmVtb3ZlKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuMTYyMTpcdFx0XHQgICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcbjE2MjI6XHR7XG4xNjIzOlx0XHRzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiA9IHBoeS1cdTAwM2VkZXY7XG4xNjI0Olx0XHRzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkID0gKHN0cnVjdCBtdDc2X3djaWQgKilzdGEtXHUwMDNlZHJ2X3ByaXY7XG4xNjI1Olx0XHRpbnQgaSwgaWR4ID0gd2NpZC1cdTAwM2VpZHg7XG4xNjI2Olx0XG4xNjI3Olx0XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKHdjaWQtXHUwMDNlYWdncik7IGkmIzQzOyYjNDM7KVxuMTYyODpcdFx0XHRtdDc2X3J4X2FnZ3Jfc3RvcChkZXYsIHdjaWQsIGkpO1xuMTYyOTpcdFxuMTYzMDpcdFx0aWYgKGRldi1cdTAwM2VkcnYtXHUwMDNlc3RhX3JlbW92ZSlcbjE2MzE6XHRcdFx0ZGV2LVx1MDAzZWRydi1cdTAwM2VzdGFfcmVtb3ZlKGRldiwgdmlmLCBzdGEpO1xuMTYzMjpcdFxuMTYzMzpcdFx0bXQ3Nl93Y2lkX2NsZWFudXAoZGV2LCB3Y2lkKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDk6MDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzgxMzgKCQkJCQkJCW91dHB1dDogNTAKCQkJCQkJCXRob3VnaHRzOiAzNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgZnJvbSBhbiBleHBlcnQmIzM5O3MgcGVyc3BlY3RpdmU6CgoqKkRpdmluZyBEZWVwIGludG8gU1RBIFJlbW92YWwgYW5kIExvY2tpbmcqKgoKV2FpdCBhIG1pbnV0ZS4uLiBJJiMzOTttIGxvb2tpbmcgYXQgYF9fbXQ3Nl9zdGFfcmVtb3ZlYCBhbmQgc29tZXRoaW5nJiMzOTtzIG5vdCBzaXR0aW5nIHF1aXRlIHJpZ2h0LiBJc24mIzM5O3QgdGhhdCBmdW5jdGlvbiBzdXBwb3NlZCB0byBiZSByZXNwb25zaWJsZSBmb3IgcmVtb3ZpbmcgYSBzdGF0aW9uJiMzOTtzIGVudHJ5IGZyb20gdGhlIGludGVybmFsIHN0cnVjdHVyZXM/IEFuZCBpdCYjMzk7cyBjYWxsaW5nICp3aXRob3V0KiBleHBsaWNpdGx5IGFjcXVpcmluZyB0aGUgYGRldi0mZ3Q7bXV0ZXhgIGJlZm9yZWhhbmQ/IFRoYXQgc2VlbXMgcG90ZW50aWFsbHkgdW5zYWZlLiBSYWNlIGNvbmRpdGlvbnMgYXJlIGEgbmlnaHRtYXJlLCBlc3BlY2lhbGx5IGluIGRyaXZlciBjb2RlLiBXZSBuZWVkIHRvIG1haW50YWluIHN0cmljdCBzeW5jaHJvbml6YXRpb24sIHRvIHByZXZlbnQgY29uY3VycmVudCBtb2RpZmljYXRpb24gb2Ygc2hhcmVkIGRhdGEgc3RydWN0dXJlcy4KCk9rYXksIGxldCYjMzk7cyBiYWNrIHVwIGFuZCBkb3VibGUtY2hlY2sgdGhlIGRlZmluaXRpb24gb2YgYG10NzZfc3RhX3JlbW92ZWAg4oCTIHRoZSAqYWN0dWFsKiByZW1vdmFsIGZ1bmN0aW9uLCB0aGUgb25lICp3ZSogc2hvdWxkIGJlIGludGVyZXN0ZWQgaW4gLSB0aGUgb25lIHRoYXQgcHJlc3VtYWJseSAqZG9lcyogaGFuZGxlIHRoZSBsb2NraW5nLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgZnVsbCBjYWxsIGdyYXBoIGFuZCBlbnN1cmUgdGhlIG11dGV4IGlzICphbHdheXMqIGhlbGQgd2hlbiBhY2Nlc3NpbmcgYW5kIG1vZGlmeWluZyBzdGF0aW9uLXJlbGF0ZWQgZGF0YS4gSWYgYF9fbXQ3Nl9zdGFfcmVtb3ZlYCBpcyBtZWFudCB0byBiZSBjYWxsZWQgZnJvbSBpbnNpZGUgYG10NzZfc3RhX3JlbW92ZWAsIHRoZW4gdGhlIGhpZ2hlciBsZXZlbCBmdW5jdGlvbiBzaG91bGQgYmUgdGhlIG9uZSB0byBkbyB0aGUgbG9ja2luZywgd2l0aCB0aGUgbG93ZXItbGV2ZWwgZnVuY3Rpb24gYXNzdW1pbmcgdGhlIGxvY2sgaXMgYWxyZWFkeSB0aGVyZS4gSSYjMzk7bGwgbmVlZCB0byBjb25maXJtIHRoYXQgdGhpcyBpcyB0cnVlIGhlcmUuIEdvdHRhIHJ1bGUgb3V0IGFueSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zIGludm9sdmluZyBzdGF0aW9uIGVudHJpZXMgYmVpbmcgYWRkZWQsIHJlbW92ZWQsIG9yIG1vZGlmaWVkIGNvbmN1cnJlbnRseSB3aXRoIG90aGVyIG9wZXJhdGlvbnMuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBjb2RlIGlzIHJvYnVzdCBhbmQgc2FmZSwgYW5kIHRoYXQgYW55IHBvdGVudGlhbCByaXNrcyBhcmUgYXZvaWRlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41MC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDk6MDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxNjM0LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzE2MzQ6XHRcbjE2MzU6XHRcdG10NzZfd2NpZF9tYXNrX2NsZWFyKGRldi1cdTAwM2V3Y2lkX21hc2ssIGlkeCk7XG4xNjM2Olx0XHRwaHktXHUwMDNlbnVtX3N0YS0tO1xuMTYzNzpcdH1cbjE2Mzg6XHRFWFBPUlRfU1lNQk9MX0dQTChfX210NzZfc3RhX3JlbW92ZSk7XG4xNjM5Olx0XG4xNjQwOlx0c3RhdGljIHZvaWRcbjE2NDE6XHRtdDc2X3N0YV9yZW1vdmUoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG4xNjQyOlx0XHRcdHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXG4xNjQzOlx0e1xuMTY0NDpcdFx0c3RydWN0IG10NzZfZGV2ICpkZXYgPSBwaHktXHUwMDNlZGV2O1xuMTY0NTpcdFxuMTY0NjpcdFx0bXV0ZXhfbG9jayhcdTAwMjZkZXYtXHUwMDNlbXV0ZXgpO1xuMTY0NzpcdFx0X19tdDc2X3N0YV9yZW1vdmUocGh5LCB2aWYsIHN0YSk7XG4xNjQ4Olx0XHRtdXRleF91bmxvY2soXHUwMDI2ZGV2LVx1MDAzZW11dGV4KTtcbjE2NDk6XHR9XG4xNjUwOlx0XG4xNjUxOlx0aW50IG10NzZfc3RhX3N0YXRlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuMTY1MjpcdFx0XHQgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxuMTY1MzpcdFx0XHQgICBlbnVtIGllZWU4MDIxMV9zdGFfc3RhdGUgb2xkX3N0YXRlLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3ODg5OAoJCQkJCQkJb3V0cHV0OiAyNzQKCQkJCQkJCXRob3VnaHRzOiAxNDIzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkRlYWRsb2NrIEZpeCBpbiBNVDc5MjEgRHJpdmVyKioKCk9rYXksIHNvIGhlcmUmIzM5O3MgdGhlIHNpdHVhdGlvbjogYG10NzZfc3RhX3JlbW92ZWAgKmRlZmluaXRlbHkqIGFjcXVpcmVzIGBkZXYtJmd0O211dGV4YC4gVGhpcyBtZWFucyB0aGF0IHdoZW4gYG10NzkyMV9tYWNfc3RhX2FkZGAgYW5kIGBtdDc5MjFfbWFjX3N0YV9yZW1vdmVgIGFyZSBjYWxsZWQsIGBkZXYtJmd0O211dGV4YCBpcyBhbHJlYWR5IGhlbGQuIFRoZSBjcml0aWNhbCBwYXJ0IGlzIHRoYXQgYG10NzkyMV9tYWNfc3RhX2FkZGAgY2FsbHMgYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgLCB3aGljaCBpbiB0dXJuIGNhbGxzIGBtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYC4gVGhhdCBmdW5jdGlvbiB0aGVuIGF0dGVtcHRzIHRvIGFjcXVpcmUgdGhlIHNhbWUgYGRldi0mZ3Q7bXV0ZXhgIHZpYSBhIG5lc3RlZCBzZXJpZXMgb2YgZnVuY3Rpb24gY2FsbHM6IGBtdDc5MnhfbXV0ZXhfYWNxdWlyZWAsIGBtdDc2X2Nvbm5hY19tdXRleF9hY3F1aXJlYCwgdWx0aW1hdGVseSBsZWFkaW5nIHRvIGBtdXRleF9sb2NrKCZhbXA7ZGV2LSZndDttdXRleClgLgoKQSB0ZXh0Ym9vayBkZWFkbG9jayEgYG10NzkyMV9tY3VfcmVnZF91cGRhdGVgIHRyaWVzIHRvIGdyYWIgYSBtdXRleCBpdCBhbHJlYWR5IG93bnMhIFRoZSBwYXRjaCBlbGVnYW50bHkgZml4ZXMgdGhpcyBieSBjYWxsaW5nIGBfX210NzkyMV9tY3VfcmVnZF91cGRhdGVgIGRpcmVjdGx5LCB3aGljaCBieXBhc3NlcyB0aGUgbXV0ZXggYWNxdWlzaXRpb24uCgpUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCByZXNvbHZlcyBhIGRlYWRsb2NrLiBUaGUgZ29vZCBuZXdzIGlzLCB0aGlzIGJ1ZyBpcyByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGJlY2F1c2UgdGhlIE1UNzkyMSBoYXMgYSBVU0IgZHJpdmVyIChgbXQ3OTIxdWApLCB3aGljaCBjYW4gYmUgZnV6emVkIHVzaW5nIHRvb2xzIGxpa2UgYGR1bW15X2hjZGAgb3IgYHJhdy1nYWRnZXRgLiBUaGUgZXNzZW50aWFsIGNvbmZpZyB0byBlbmFibGUgaGVyZSBpcyBgTVQ3OTIxVWAuCgpUaGUga2V5IHN5bWJvbHMgdG8gZm9jdXMgb24gYXJlOgoqICAgYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAKKiAgIGBtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYAoqICAgYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgCgpMZXQgbWUgY2hlY2sgZm9yIG90aGVyIHJlcXVpcmVkIGNvbmZpZ3M6IGBNVDc5MjFVYCBkZXBlbmRzIG9uIGBNQUM4MDIxMWAgYW5kIGBVU0JgLiBgTVQ3OTIxX0NPTU1PTmAgaXMgYWxzbyBzZWxlY3RlZCBieSBgTVQ3OTIxVWAuIFRoZXJlZm9yZSwgYE1UNzkyMVVgIGFsb25lIGlzIHN1ZmZpY2llbnQuCgpMZXQmIzM5O3MgcXVpY2tseSBjaGVjazogdGhlcmUgYXJlIGFsc28gYE1UNzkyMUVgIChQQ0llKSBhbmQgYE1UNzkyMVNgIChTRElPKSwgYW5kIHN5emthbGxlciBjYW4gZnV6eiBVU0IgYW5kIFBDSSAodGhvdWdoIFVTQiBpcyBtb3JlIGNvbW1vbikuIEZvciBjb21wbGV0ZW5lc3MsIHdlIHNob3VsZCBsaXN0IGJvdGggYE1UNzkyMVVgIGFuZCBgTVQ3OTIxRWAuCgpMZXQmIzM5O3MgY2hlY2sgYE1UNzkyMUVgIGRlcGVuZGVuY2llczogYE1UNzkyMUVgIGRlcGVuZHMgb24gYE1BQzgwMjExYCBhbmQgYFBDSWAuIEhvd2V2ZXIsIHdlIGNhbiBmb2N1cyBvbiBgTVQ3OTIxVWAgZ2l2ZW4gd2UgYXJlIHJlcG9ydGluZyBhIGRlYWRsb2NrLgoKTm93LCB3YWl0Li4uaXMgYE1UNzkyMV9DT01NT05gIGEgY29uZmlnPyBZZXMsIGJ1dCBpdCYjMzk7cyBhIGB0cmlzdGF0ZWAgd2l0aG91dCBhIHByb21wdCwgc28gaXQmIzM5O3MgKnNlbGVjdGVkKiBieSBgTVQ3OTIxVWAuIFNvLCB0byBiZSBjbGVhciwgYE1UNzkyMVVgIGlzIHdoYXQgd2Ugc2hvdWxkIGZvY3VzIG9uLgoKUmVjYXBwaW5nIHRoZSBmb2N1cyBzeW1ib2xzOgoqICAgYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAKKiAgIGBtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYAoqICAgYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgCgpBcmUgYW55IG90aGVyIGZ1bmN0aW9ucyBtb2RpZmllZD8gTm8sIHRoZXNlIHRocmVlIGFyZSB0aGUgb25seSBvbmVzLgoKT2theSwgbGV0JiMzOTtzIHZlcmlmeSByZWFjaGFiaWxpdHkgb2YgYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgIHZpYSBtYWM4MDIxMSBvcGVyYXRpb25zLiBZZXAuIFdoZW4gYSBzdGF0aW9uIGlzIGFkZGVkIG9yIHJlbW92ZWQsIG1hYzgwMjExIGNhbGxzIGBzdGFfYWRkYCBvciBgc3RhX3JlbW92ZWAsIHdoaWNoIGNhbGxzIGBtdDc2X3N0YV9hZGRgIG9yIGBtdDc2X3N0YV9yZW1vdmVgLCB3aGljaCBjYWxscyBgbXQ3OTIxX21hY19zdGFfYWRkYCBvciBgbXQ3OTIxX21hY19zdGFfcmVtb3ZlYCwgd2hpY2ggY2FsbHMgYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgLiBUaGlzICppcyogZGVmaW5pdGVseSByZWFjaGFibGUuCgpIZXJlJiMzOTtzIHRoZSByZWFzb25pbmc6IFRoZSBwYXRjaCBmaXhlcyBhIGRlYWRsb2NrIGluIHRoZSBNVDc5MjEgd2lyZWxlc3MgZHJpdmVyLiBgbXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZWAgaXMgY2FsbGVkIGZyb20gYG10NzkyMV9tYWNfc3RhX2FkZGAgYW5kIGBtdDc5MjFfbWFjX3N0YV9yZW1vdmVgLCB3aGljaCBhcmUgaW52b2tlZCBieSBtYWM4MDIxMSB3aXRoIGBkZXYtJmd0O211dGV4YCBhbHJlYWR5IGhlbGQuIFByZXZpb3VzbHksIGl0IGNhbGxlZCBgbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAsIHdoaWNoIGF0dGVtcHRlZCB0byBhY3F1aXJlIHRoZSBzYW1lCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41Mi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDk6MDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01UNzkyMVUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtfX210NzkyMV9tY3VfcmVnZF91cGRhdGUmIzM0OywKICAgICYjMzQ7bXQ3OTIxX21jdV9yZWdkX3VwZGF0ZSYjMzQ7LAogICAgJiMzNDttdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgZGVhZGxvY2sgaW4gdGhlIE1UNzkyMSB3aXJlbGVzcyBkcml2ZXIuIGBtdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlYCBpcyBjYWxsZWQgZnJvbSBgbXQ3OTIxX21hY19zdGFfYWRkYCBhbmQgYG10NzkyMV9tYWNfc3RhX3JlbW92ZWAsIHdoaWNoIGFyZSBpbnZva2VkIGJ5IG1hYzgwMjExIHdpdGggdGhlIGBkZXYtXHUwMDNlbXV0ZXhgIGFscmVhZHkgaGVsZC4gUHJldmlvdXNseSwgaXQgY2FsbGVkIGBtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCwgd2hpY2ggYXR0ZW1wdGVkIHRvIGFjcXVpcmUgdGhlIHNhbWUgbXV0ZXgsIGxlYWRpbmcgdG8gYSBkZWFkbG9jay4gVGhlIHBhdGNoIGludHJvZHVjZXMgYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAgdG8gYmUgY2FsbGVkIHdoZW4gdGhlIG11dGV4IGlzIGFscmVhZHkgaGVsZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgZml4IGZvciBhIGRlYWRsb2NrIGluIHJlYWNoYWJsZSBkcml2ZXIgY29kZS4gVGhlIGRyaXZlciBjYW4gYmUgcmVhY2hlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIHRoZSBVU0IgaW50ZXJmYWNlIChgQ09ORklHX01UNzkyMVVgKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TVQ3OTIxVSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O19fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZSYjMzQ7LAogICAgJiMzNDttdDc5MjFfbWN1X3JlZ2RfdXBkYXRlJiMzNDssCiAgICAmIzM0O210NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBkZWFkbG9jayBpbiB0aGUgTVQ3OTIxIHdpcmVsZXNzIGRyaXZlci4gYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgIGlzIGNhbGxlZCBmcm9tIGBtdDc5MjFfbWFjX3N0YV9hZGRgIGFuZCBgbXQ3OTIxX21hY19zdGFfcmVtb3ZlYCwgd2hpY2ggYXJlIGludm9rZWQgYnkgbWFjODAyMTEgd2l0aCB0aGUgYGRldi1cdTAwM2VtdXRleGAgYWxyZWFkeSBoZWxkLiBQcmV2aW91c2x5LCBpdCBjYWxsZWQgYG10NzkyMV9tY3VfcmVnZF91cGRhdGVgLCB3aGljaCBhdHRlbXB0ZWQgdG8gYWNxdWlyZSB0aGUgc2FtZSBtdXRleCwgbGVhZGluZyB0byBhIGRlYWRsb2NrLiBUaGUgcGF0Y2ggaW50cm9kdWNlcyBgX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCB0byBiZSBjYWxsZWQgd2hlbiB0aGUgbXV0ZXggaXMgYWxyZWFkeSBoZWxkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBmaXggZm9yIGEgZGVhZGxvY2sgaW4gcmVhY2hhYmxlIGRyaXZlciBjb2RlLiBUaGUgZHJpdmVyIGNhbiBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgdGhlIFVTQiBpbnRlcmZhY2UgKGBDT05GSUdfTVQ3OTIxVWApLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MDA6MTEuMjUwNDY2NTYxWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDY4OTQ0Mjc5ODUxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1UNzkyMVVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJfX210NzkyMV9tY3VfcmVnZF91cGRhdGVcIixcbiAgICBcIm10NzkyMV9tY3VfcmVnZF91cGRhdGVcIixcbiAgICBcIm10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIGRlYWRsb2NrIGluIHRoZSBNVDc5MjEgd2lyZWxlc3MgZHJpdmVyLiBgbXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZWAgaXMgY2FsbGVkIGZyb20gYG10NzkyMV9tYWNfc3RhX2FkZGAgYW5kIGBtdDc5MjFfbWFjX3N0YV9yZW1vdmVgLCB3aGljaCBhcmUgaW52b2tlZCBieSBtYWM4MDIxMSB3aXRoIHRoZSBgZGV2LVxcdTAwM2VtdXRleGAgYWxyZWFkeSBoZWxkLiBQcmV2aW91c2x5LCBpdCBjYWxsZWQgYG10NzkyMV9tY3VfcmVnZF91cGRhdGVgLCB3aGljaCBhdHRlbXB0ZWQgdG8gYWNxdWlyZSB0aGUgc2FtZSBtdXRleCwgbGVhZGluZyB0byBhIGRlYWRsb2NrLiBUaGUgcGF0Y2ggaW50cm9kdWNlcyBgX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCB0byBiZSBjYWxsZWQgd2hlbiB0aGUgbXV0ZXggaXMgYWxyZWFkeSBoZWxkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBmaXggZm9yIGEgZGVhZGxvY2sgaW4gcmVhY2hhYmxlIGRyaXZlciBjb2RlLiBUaGUgZHJpdmVyIGNhbiBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgdGhlIFVTQiBpbnRlcmZhY2UgKGBDT05GSUdfTVQ3OTIxVWApLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowMDoxMS4yNTA0NzEwMjFaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQxNDQwMzUzOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDY1NjQ4MzQxOWVmNmNlODg2OGJkMDFkOTBlMmYzYjRjNjA5NmZiNDlcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIE1vbiBKdW4gMjkgMDk6MDA6MTAgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jXFxuaW5kZXggMzQ4MDIwNWQ1ZmI5MWIuLjY4YTA1OTUwNGU4MzgyIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uY1xcbkBAIC04MDIsNyArODAyLDcgQEAgbXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZShzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLCBib29sIGlzX2FkZClcXG4gXFxuIG91dDpcXG4gXFx0aWYgKHZpZi1cXHUwMDNlYnNzX2NvbmYuY2hhbnJlcS5vcGVyLmNoYW4tXFx1MDAzZWJhbmQgPT0gTkw4MDIxMV9CQU5EXzZHSFopXFxuLVxcdFxcdG10NzkyMV9tY3VfcmVnZF91cGRhdGUoZGV2LCBkZXYtXFx1MDAzZW10NzYuYWxwaGEyLCBkZXYtXFx1MDAzZWNvdW50cnlfaWVfZW52KTtcXG4rXFx0XFx0X19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlKGRldiwgZGV2LVxcdTAwM2VtdDc2LmFscGhhMiwgZGV2LVxcdTAwM2Vjb3VudHJ5X2llX2Vudik7XFxuIH1cXG4gXFxuIGludCBtdDc5MjFfbWFjX3N0YV9hZGQoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmNcXG5pbmRleCBjMGUyYjQ4YTUwYmYwOS4uNDcyMjAwN2FiYWZkNWMgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jXFxuQEAgLTcxLDM2ICs3MSw0NCBAQCBtdDc5MjFfcmVnZF9jaGFubmVsX3VwZGF0ZShzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbiBcXHR9XFxuIH1cXG4gXFxuLWludCBtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHU4ICphbHBoYTIsXFxuLVxcdFxcdFxcdCAgIGVudW0gZW52aXJvbm1lbnRfY2FwIGNvdW50cnlfaWVfZW52KVxcbisvKiBJbnRlcm5hbCB2ZXJzaW9uIHRoYXQgYXNzdW1lcyBtdXRleCBpcyBhbHJlYWR5IGhlbGQgYnkgY2FsbGVyICovXFxuK2ludCBfX210NzkyMV9tY3VfcmVnZF91cGRhdGUoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdTggKmFscGhhMixcXG4rXFx0XFx0XFx0ICAgICBlbnVtIGVudmlyb25tZW50X2NhcCBjb3VudHJ5X2llX2VudilcXG4ge1xcbiBcXHRzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYgPSBcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2O1xcbiBcXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyA9IG1kZXYtXFx1MDAzZWh3O1xcbiBcXHRzdHJ1Y3Qgd2lwaHkgKndpcGh5ID0gaHctXFx1MDAzZXdpcGh5O1xcbiBcXHRpbnQgcmV0ID0gMDtcXG4gXFxuLVxcdGRldi1cXHUwMDNlcmVnZF9pbl9wcm9ncmVzcyA9IHRydWU7XFxuLVxcbi1cXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbiBcXHRpZiAoIWRldi1cXHUwMDNlcmVnZF9jaGFuZ2UpXFxuLVxcdFxcdGdvdG8gZXJyO1xcbitcXHRcXHRyZXR1cm4gMDtcXG4gXFxuIFxcdHJldCA9IG10NzkyMV9tY3Vfc2V0X2NsYyhkZXYsIGFscGhhMiwgY291bnRyeV9pZV9lbnYpO1xcbiBcXHRpZiAocmV0IFxcdTAwM2MgMClcXG4tXFx0XFx0Z290byBlcnI7XFxuK1xcdFxcdHJldHVybiByZXQ7XFxuIFxcbiBcXHRtdDc5MjFfcmVnZF9jaGFubmVsX3VwZGF0ZSh3aXBoeSwgZGV2KTtcXG4gXFxuIFxcdHJldCA9IG10NzZfY29ubmFjX21jdV9zZXRfY2hhbm5lbF9kb21haW4oaHctXFx1MDAzZXByaXYpO1xcbiBcXHRpZiAocmV0IFxcdTAwM2MgMClcXG4tXFx0XFx0Z290byBlcnI7XFxuK1xcdFxcdHJldHVybiByZXQ7XFxuIFxcbiBcXHRyZXQgPSBtdDc5MjFfc2V0X3R4X3Nhcl9wd3IoaHcsIE5VTEwpO1xcbi1cXHRpZiAocmV0IFxcdTAwM2MgMClcXG4tXFx0XFx0Z290byBlcnI7XFxuIFxcbi1lcnI6XFxuK1xcdHJldHVybiByZXQ7XFxuK31cXG4rXFxuK2ludCBtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHU4ICphbHBoYTIsXFxuK1xcdFxcdFxcdCAgIGVudW0gZW52aXJvbm1lbnRfY2FwIGNvdW50cnlfaWVfZW52KVxcbit7XFxuK1xcdGludCByZXQgPSAwO1xcbitcXG4rXFx0ZGV2LVxcdTAwM2VyZWdkX2luX3Byb2dyZXNzID0gdHJ1ZTtcXG4rXFxuK1xcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuK1xcdHJldCA9IF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZShkZXYsIGFscGhhMiwgY291bnRyeV9pZV9lbnYpO1xcbiBcXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xcbitcXG4gXFx0ZGV2LVxcdTAwM2VyZWdkX2NoYW5nZSA9IGZhbHNlO1xcbiBcXHRkZXYtXFx1MDAzZXJlZ2RfaW5fcHJvZ3Jlc3MgPSBmYWxzZTtcXG4gXFx0d2FrZV91cChcXHUwMDI2ZGV2LVxcdTAwM2V3YWl0KTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5oXFxuaW5kZXggNTcxZjMxNjI5ZTllMDEuLjViMjRkMDkwMmMzNjljIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuaFxcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuaFxcbkBAIC0xMCw2ICsxMCw4IEBAIHN0cnVjdCByZWd1bGF0b3J5X3JlcXVlc3Q7XFxuIFxcbiBpbnQgbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB1OCAqYWxwaGEyLFxcbiBcXHRcXHRcXHQgICBlbnVtIGVudmlyb25tZW50X2NhcCBjb3VudHJ5X2llX2Vudik7XFxuK2ludCBfX210NzkyMV9tY3VfcmVnZF91cGRhdGUoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdTggKmFscGhhMixcXG4rXFx0XFx0XFx0ICAgICBlbnVtIGVudmlyb25tZW50X2NhcCBjb3VudHJ5X2llX2Vudik7XFxuIHZvaWQgbXQ3OTIxX3JlZ2Rfbm90aWZpZXIoc3RydWN0IHdpcGh5ICp3aXBoeSxcXG4gXFx0XFx0XFx0ICBzdHJ1Y3QgcmVndWxhdG9yeV9yZXF1ZXN0ICpyZXF1ZXN0KTtcXG4gYm9vbCBtdDc5MjFfcmVnZF9jbGNfc3VwcG9ydGVkKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowMDoxMS42NjU0MjFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ2ODUyOTMxNjQ2MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNVDc5MjFVXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlXCIsXG4gICAgXCJtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlXCIsXG4gICAgXCJtdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBkZWFkbG9jayBpbiB0aGUgTVQ3OTIxIHdpcmVsZXNzIGRyaXZlci4gYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgIGlzIGNhbGxlZCBmcm9tIGBtdDc5MjFfbWFjX3N0YV9hZGRgIGFuZCBgbXQ3OTIxX21hY19zdGFfcmVtb3ZlYCwgd2hpY2ggYXJlIGludm9rZWQgYnkgbWFjODAyMTEgd2l0aCB0aGUgYGRldi1cXHUwMDNlbXV0ZXhgIGFscmVhZHkgaGVsZC4gUHJldmlvdXNseSwgaXQgY2FsbGVkIGBtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCwgd2hpY2ggYXR0ZW1wdGVkIHRvIGFjcXVpcmUgdGhlIHNhbWUgbXV0ZXgsIGxlYWRpbmcgdG8gYSBkZWFkbG9jay4gVGhlIHBhdGNoIGludHJvZHVjZXMgYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAgdG8gYmUgY2FsbGVkIHdoZW4gdGhlIG11dGV4IGlzIGFscmVhZHkgaGVsZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgZml4IGZvciBhIGRlYWRsb2NrIGluIHJlYWNoYWJsZSBkcml2ZXIgY29kZS4gVGhlIGRyaXZlciBjYW4gYmUgcmVhY2hlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIHRoZSBVU0IgaW50ZXJmYWNlIChgQ09ORklHX01UNzkyMVVgKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA2NTY0ODM0MTllZjZjZTg4NjhiZDAxZDkwZTJmM2I0YzYwOTZmYjQ5XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdW4gMjkgMDk6MDA6MTAgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmNcbmluZGV4IDM0ODAyMDVkNWZiOTFiLi42OGEwNTk1MDRlODM4MiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jXG5AQCAtODAyLDcgKzgwMiw3IEBAIG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGUoc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwgYm9vbCBpc19hZGQpXG4gXG4gb3V0OlxuIFx0aWYgKHZpZi1cdTAwM2Vic3NfY29uZi5jaGFucmVxLm9wZXIuY2hhbi1cdTAwM2ViYW5kID09IE5MODAyMTFfQkFORF82R0haKVxuLVx0XHRtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlKGRldiwgZGV2LVx1MDAzZW10NzYuYWxwaGEyLCBkZXYtXHUwMDNlY291bnRyeV9pZV9lbnYpO1xuK1x0XHRfX210NzkyMV9tY3VfcmVnZF91cGRhdGUoZGV2LCBkZXYtXHUwMDNlbXQ3Ni5hbHBoYTIsIGRldi1cdTAwM2Vjb3VudHJ5X2llX2Vudik7XG4gfVxuIFxuIGludCBtdDc5MjFfbWFjX3N0YV9hZGQoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuY1xuaW5kZXggYzBlMmI0OGE1MGJmMDkuLjQ3MjIwMDdhYmFmZDVjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmNcbkBAIC03MSwzNiArNzEsNDQgQEAgbXQ3OTIxX3JlZ2RfY2hhbm5lbF91cGRhdGUoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IG10NzkyeF9kZXYgKmRldilcbiBcdH1cbiB9XG4gXG4taW50IG10NzkyMV9tY3VfcmVnZF91cGRhdGUoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdTggKmFscGhhMixcbi1cdFx0XHQgICBlbnVtIGVudmlyb25tZW50X2NhcCBjb3VudHJ5X2llX2VudilcbisvKiBJbnRlcm5hbCB2ZXJzaW9uIHRoYXQgYXNzdW1lcyBtdXRleCBpcyBhbHJlYWR5IGhlbGQgYnkgY2FsbGVyICovXG4raW50IF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB1OCAqYWxwaGEyLFxuK1x0XHRcdCAgICAgZW51bSBlbnZpcm9ubWVudF9jYXAgY291bnRyeV9pZV9lbnYpXG4ge1xuIFx0c3RydWN0IG10NzZfZGV2ICptZGV2ID0gXHUwMDI2ZGV2LVx1MDAzZW10NzY7XG4gXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyA9IG1kZXYtXHUwMDNlaHc7XG4gXHRzdHJ1Y3Qgd2lwaHkgKndpcGh5ID0gaHctXHUwMDNld2lwaHk7XG4gXHRpbnQgcmV0ID0gMDtcbiBcbi1cdGRldi1cdTAwM2VyZWdkX2luX3Byb2dyZXNzID0gdHJ1ZTtcbi1cbi1cdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG4gXHRpZiAoIWRldi1cdTAwM2VyZWdkX2NoYW5nZSlcbi1cdFx0Z290byBlcnI7XG4rXHRcdHJldHVybiAwO1xuIFxuIFx0cmV0ID0gbXQ3OTIxX21jdV9zZXRfY2xjKGRldiwgYWxwaGEyLCBjb3VudHJ5X2llX2Vudik7XG4gXHRpZiAocmV0IFx1MDAzYyAwKVxuLVx0XHRnb3RvIGVycjtcbitcdFx0cmV0dXJuIHJldDtcbiBcbiBcdG10NzkyMV9yZWdkX2NoYW5uZWxfdXBkYXRlKHdpcGh5LCBkZXYpO1xuIFxuIFx0cmV0ID0gbXQ3Nl9jb25uYWNfbWN1X3NldF9jaGFubmVsX2RvbWFpbihody1cdTAwM2Vwcml2KTtcbiBcdGlmIChyZXQgXHUwMDNjIDApXG4tXHRcdGdvdG8gZXJyO1xuK1x0XHRyZXR1cm4gcmV0O1xuIFxuIFx0cmV0ID0gbXQ3OTIxX3NldF90eF9zYXJfcHdyKGh3LCBOVUxMKTtcbi1cdGlmIChyZXQgXHUwMDNjIDApXG4tXHRcdGdvdG8gZXJyO1xuIFxuLWVycjpcbitcdHJldHVybiByZXQ7XG4rfVxuK1xuK2ludCBtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHU4ICphbHBoYTIsXG4rXHRcdFx0ICAgZW51bSBlbnZpcm9ubWVudF9jYXAgY291bnRyeV9pZV9lbnYpXG4re1xuK1x0aW50IHJldCA9IDA7XG4rXG4rXHRkZXYtXHUwMDNlcmVnZF9pbl9wcm9ncmVzcyA9IHRydWU7XG4rXG4rXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuK1x0cmV0ID0gX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlKGRldiwgYWxwaGEyLCBjb3VudHJ5X2llX2Vudik7XG4gXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xuK1xuIFx0ZGV2LVx1MDAzZXJlZ2RfY2hhbmdlID0gZmFsc2U7XG4gXHRkZXYtXHUwMDNlcmVnZF9pbl9wcm9ncmVzcyA9IGZhbHNlO1xuIFx0d2FrZV91cChcdTAwMjZkZXYtXHUwMDNld2FpdCk7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5oXG5pbmRleCA1NzFmMzE2MjllOWUwMS4uNWIyNGQwOTAyYzM2OWMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmhcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuaFxuQEAgLTEwLDYgKzEwLDggQEAgc3RydWN0IHJlZ3VsYXRvcnlfcmVxdWVzdDtcbiBcbiBpbnQgbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB1OCAqYWxwaGEyLFxuIFx0XHRcdCAgIGVudW0gZW52aXJvbm1lbnRfY2FwIGNvdW50cnlfaWVfZW52KTtcbitpbnQgX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHU4ICphbHBoYTIsXG4rXHRcdFx0ICAgICBlbnVtIGVudmlyb25tZW50X2NhcCBjb3VudHJ5X2llX2Vudik7XG4gdm9pZCBtdDc5MjFfcmVnZF9ub3RpZmllcihzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxuIFx0XHRcdCAgc3RydWN0IHJlZ3VsYXRvcnlfcmVxdWVzdCAqcmVxdWVzdCk7XG4gYm9vbCBtdDc5MjFfcmVnZF9jbGNfc3VwcG9ydGVkKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MDA6MTEuNjY1NDIyNDlaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzk5MjQxODM4OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBXaS1GaSBEcml2ZXIgUGF0Y2g6IE1UNzkyMSBhbmQgUG90ZW50aWFsIExvY2sgSXNzdWVzKipcblxuT2theSwgc28gdGhpcyBwYXRjaCB0YXJnZXRzIHRoZSBNZWRpYXRlayBNVDc5MjEgd2lyZWxlc3MgZHJpdmVyLiBNeSBpbml0aWFsIHJlYWQgdGVsbHMgbWUgaXQncyBtb2RpZnlpbmcgdGhlIGBtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCBmdW5jdGlvbiwgY3JlYXRpbmcgYW4gaW50ZXJuYWwgdmVyc2lvbiwgYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAsIHdoaWNoICphc3N1bWVzKiB0aGUgbXV0ZXggaXMgYWxyZWFkeSBoZWxkLiBUaGUgaW1wb3J0YW50IGNoYW5nZSBpcyB0aGUgY2FsbCB0byB0aGlzIGludGVybmFsIHZlcnNpb24gZnJvbSBgbXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZWAgaW5zdGVhZCBvZiB0aGUgb3JpZ2luYWwgZnVuY3Rpb24uIFRoZSBsaWtlbHkgaW50ZW50IGlzIHRvIHJlc29sdmUgc29tZSBsb2NraW5nIGlzc3VlLCBwZXJoYXBzIGEgZGVhZGxvY2sgc2NlbmFyaW8gb3IgaW5jb3JyZWN0IG11dGV4IHVzYWdlLiBTb3VuZHMgcHJldHR5IHN0YW5kYXJkLlxuXG5Ob3csIGEgcXVlc3Rpb24gaXMgLSBob3cgcmVhY2hhYmxlIGlzIHRoaXMgY29kZT8gTVQ3OTIxIGlzIHR5cGljYWxseSBhIFBDSWUsIFVTQiwgb3IgU0RJTyBXaS1GaSBkcml2ZXIsIHJpZ2h0PyBJbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCB0aGVzZSBoYXJkd2FyZSBkcml2ZXJzIGNhbiBiZSB0cmlja3kuIFVubGVzcyB0aGVyZSBpcyBzb2Z0d2FyZSBlbXVsYXRpb24gbGlrZSBtYWM4MDIxMV9od3NpbSAoYnV0IHRoYXQgaXMgYSBzZXBhcmF0ZSBkcml2ZXIgYW5kIHRoaXMgaXMgYSBzcGVjaWZpYyBvbmUpIHJlYWNoaW5nIGl0IGNhbiBiZSBkaWZmaWN1bHQuXG5cbldhaXQuLi4gY291bGQgYSBVU0IgZHJpdmVyIGxpa2UgdGhpcyBiZSBmdXp6ZWQgdXNpbmcgYSBkdW1teSBIQ0Qgb3Igc29tZXRoaW5nIHNpbWlsYXI/IEkga25vdyBTeXprYWxsZXIgaGFzIFVTQiBmdXp6aW5nIGNhcGFiaWxpdGllcyB3aXRoIGl0cyBgZHVtbXlfaGNkYCBhbmQgYHJhdy1nYWRnZXRgIG9wdGlvbnMuIFRoYXQncyBhIGdvb2QgYXZlbnVlIHRvIGV4cGxvcmUuIEknbGwgbmVlZCB0byBjaGVjayBpZiBNVDc5MjEgZXZlbiAqaGFzKiBhIFVTQiBjb21wb25lbnQuIExldCdzIHNlZS4uLiBhIHF1aWNrIGNoZWNrIHNob3dzIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuY2AgZXhpc3RpbmcuIEJpbmdvISBUaGF0IGNvdWxkIGJlIGEgd2F5IHRvIGV4cG9zZSB0aGlzIGZpeCBhbmQgdGVzdCBpdCB0aG9yb3VnaGx5LiBJJ2xsIG5lZWQgdG8gZGlnIGRlZXBlciBpbnRvIHRoYXQgVVNCIGNvZGUgcGF0aCB0byBkZXRlcm1pbmUgaWYgaXQncyB0aGUgcmlnaHQgZW50cnkgcG9pbnQgZm9yIGZ1enppbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwODksIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyODUsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowMDoyNS42NTc4NDI4ODlaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjkyMTI2ODMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTIxXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDIzNDUgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL01ha2VmaWxlLTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfTVQ3OTIxX0NPTU1PTikgKz0gbXQ3OTIxLWNvbW1vbi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvTWFrZWZpbGU6NDpvYmotJChDT05GSUdfTVQ3OTIxRSkgKz0gbXQ3OTIxZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvTWFrZWZpbGU6NTpvYmotJChDT05GSUdfTVQ3OTIxUykgKz0gbXQ3OTIxcy5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvTWFrZWZpbGU6NjpvYmotJChDT05GSUdfTVQ3OTIxVSkgKz0gbXQ3OTIxdS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvTWFrZWZpbGUtNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9NYWtlZmlsZTo4Om10NzkyMS1jb21tb24teSA6PSBtYWMubyBtY3UubyByZWdkLm8gbWFpbi5vIGluaXQubyBkZWJ1Z2ZzLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9NYWtlZmlsZTo5Om10NzkyMS1jb21tb24tJChDT05GSUdfTkw4MDIxMV9URVNUTU9ERSkgKz0gdGVzdG1vZGUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL01ha2VmaWxlOjEwOm10NzkyMWUteSA6PSBwY2kubyBwY2lfbWFjLm8gcGNpX21jdS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvTWFrZWZpbGU6MTE6bXQ3OTIxcy15IDo9IHNkaW8ubyBzZGlvX21hYy5vIHNkaW9fbWN1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9NYWtlZmlsZToxMjptdDc5MjF1LXkgOj0gdXNiLm9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0zLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzo0OiNpbmNsdWRlIFxcXCJtdDc5MjEuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9Nj1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjc6bXQ3OTIxX3JlZ19zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtOC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MTg9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxOTptdDc5MjFfcmVnX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzozMDpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19yZWd2YWwsIG10NzkyMV9yZWdfZ2V0LCBtdDc5MjFfcmVnX3NldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMzEtXFx0XFx0XFx0IFxcXCIweCUwOGxseFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTMyPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MzM6bXQ3OTIxX2Z3X2RlYnVnX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0zNC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMzktXFx0ZGV2LVxcdTAwM2Vmd19kZWJ1ZyA9ICh1OCl2YWw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjQwOlxcdG10NzkyMV9tY3VfZndfbG9nXzJfaG9zdChkZXYsIGRldi1cXHUwMDNlZndfZGVidWcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy00MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz00Nz1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjQ4Om10NzkyMV9md19kZWJ1Z19nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTQ5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy01Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6NTc6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfZndfZGVidWcsIG10NzkyMV9md19kZWJ1Z19nZXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjU4OlxcdFxcdFxcdCBtdDc5MjFfZndfZGVidWdfc2V0LCBcXFwiJWxsZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTU5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTYyPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjYzOm10NzkyMV9zZXFfcHV0c19hcnJheShzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgKnN0cixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtNjQtXFx0XFx0ICAgICAgczggKnZhbCwgaW50IGxlbilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy03Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6Nzc6I2RlZmluZSBtdDc5MjFfcHJpbnRfdHhwd3JfZW50cnkocHJlZml4LCByYXRlKVxcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtNzgtKHtcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjc5OlxcdG10NzkyMV9zZXFfcHV0c19hcnJheShzLCAjcHJlZml4IFxcXCIgKHVzZXIpXFxcIixcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTgwLVxcdFxcdFxcdCAgICAgIHR4cHdyLmRhdGFbVFhQV1JfVVNFUl0ucmF0ZSxcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTgxLVxcdFxcdFxcdCAgICAgIEFSUkFZX1NJWkUodHhwd3IuZGF0YVtUWFBXUl9VU0VSXS5yYXRlKSk7IFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6ODI6XFx0bXQ3OTIxX3NlcV9wdXRzX2FycmF5KHMsICNwcmVmaXggXFxcIiAoZWVwcm9tKVxcXCIsXFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy04My1cXHRcXHRcXHQgICAgICB0eHB3ci5kYXRhW1RYUFdSX0VFUFJPTV0ucmF0ZSxcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTg0LVxcdFxcdFxcdCAgICAgIEFSUkFZX1NJWkUodHhwd3IuZGF0YVtUWFBXUl9FRVBST01dLnJhdGUpKTsgXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzo4NTpcXHRtdDc5MjFfc2VxX3B1dHNfYXJyYXkocywgI3ByZWZpeCBcXFwiICh0bWFjKVxcXCIsXFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy04Ni1cXHRcXHRcXHQgICAgICB0eHB3ci5kYXRhW1RYUFdSX01BQ10ucmF0ZSxcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9OTA9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzo5MTptdDc5MjFfdHhwd3Ioc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy05Mi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTkzLVxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEocy1cXHUwMDNlcHJpdmF0ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjk0OlxcdHN0cnVjdCBtdDc5MjFfdHhwd3IgdHhwd3I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTk1LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtOTctXFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6OTg6XFx0cmV0ID0gbXQ3OTIxX2dldF90eHB3cl9pbmZvKGRldiwgXFx1MDAyNnR4cHdyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtOTktXFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xMDYtXFx0XFx0ICAgXFxcIiBcXFwiLCBcXFwiMW1cXFwiLCBcXFwiMm1cXFwiLCBcXFwiNW1cXFwiLCBcXFwiMTFtXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjEwNzpcXHRtdDc5MjFfcHJpbnRfdHhwd3JfZW50cnkoQ0NLLCBjY2spO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xMDgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTExLVxcdFxcdCAgIFxcXCI0OG1cXFwiLCBcXFwiNTRtXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjExMjpcXHRtdDc5MjFfcHJpbnRfdHhwd3JfZW50cnkoT0ZETSwgb2ZkbSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTExMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xMTYtXFx0XFx0ICAgXFxcIm1jczZcXFwiLCBcXFwibWNzN1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxMTc6XFx0bXQ3OTIxX3ByaW50X3R4cHdyX2VudHJ5KEhUMjAsIGh0MjApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xMTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTIxLVxcdFxcdCAgIFxcXCJtY3M2XFxcIiwgXFxcIm1jczdcXFwiLCBcXFwibWNzMzJcXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MTIyOlxcdG10NzkyMV9wcmludF90eHB3cl9lbnRyeShIVDQwLCBodDQwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTIzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTEyNi1cXHRcXHQgICBcXFwibWNzNlxcXCIsIFxcXCJtY3M3XFxcIiwgXFxcIm1jczhcXFwiLCBcXFwibWNzOVxcXCIsIFxcXCJtY3MxMFxcXCIsIFxcXCJtY3MxMVxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxMjc6XFx0bXQ3OTIxX3ByaW50X3R4cHdyX2VudHJ5KFZIVDIwLCB2aHQyMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjEyODpcXHRtdDc5MjFfcHJpbnRfdHhwd3JfZW50cnkoVkhUNDAsIHZodDQwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MTI5OlxcdG10NzkyMV9wcmludF90eHB3cl9lbnRyeShWSFQ4MCwgdmh0ODApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxMzA6XFx0bXQ3OTIxX3ByaW50X3R4cHdyX2VudHJ5KFZIVDE2MCwgdmh0MTYwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MTMxOlxcdG10NzkyMV9wcmludF90eHB3cl9lbnRyeShIRTI2LCBoZTI2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MTMyOlxcdG10NzkyMV9wcmludF90eHB3cl9lbnRyeShIRTUyLCBoZTUyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MTMzOlxcdG10NzkyMV9wcmludF90eHB3cl9lbnRyeShIRTEwNiwgaGUxMDYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxMzQ6XFx0bXQ3OTIxX3ByaW50X3R4cHdyX2VudHJ5KEhFMjQyLCBoZTI0Mik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjEzNTpcXHRtdDc5MjFfcHJpbnRfdHhwd3JfZW50cnkoSEU0ODQsIGhlNDg0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MTM2OlxcdG10NzkyMV9wcmludF90eHB3cl9lbnRyeShIRTk5NiwgaGU5OTYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxMzc6XFx0bXQ3OTIxX3ByaW50X3R4cHdyX2VudHJ5KEhFOTk2eDIsIGhlOTk2eDIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xMzgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MTQyPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MTQzOm10NzkyMV9wbV9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTQ0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xNjYtXFx0cG0tXFx1MDAzZWVuYWJsZV91c2VyID0gdmFsO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxNjc6XFx0bXQ3OTIxX3NldF9ydW50aW1lX3BtKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTE2OC1cXHRtdDc2X2Nvbm5hY19wb3dlcl9zYXZlX3NjaGVkKFxcdTAwMjZkZXYtXFx1MDAzZW1waHksIHBtKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz0xNzU9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxNzY6bXQ3OTIxX3BtX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTc3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xODQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjE4NTpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19wbSwgbXQ3OTIxX3BtX2dldCwgbXQ3OTIxX3BtX3NldCwgXFxcIiVsbGRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xODYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTE4Nz1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjE4ODptdDc5MjFfZGVlcF9zbGVlcF9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTg5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz0yMTE9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyMTI6bXQ3OTIxX2RlZXBfc2xlZXBfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMTMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIyMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjIxOkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX2RzLCBtdDc5MjFfZGVlcF9zbGVlcF9nZXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjIyMjpcXHRcXHRcXHQgbXQ3OTIxX2RlZXBfc2xlZXBfc2V0LCBcXFwiJWxsZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MjI0PURFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3BtX2lkbGVfdGltZW91dCwgbXQ3OTJ4X3BtX2lkbGVfdGltZW91dF9nZXQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyMjc6c3RhdGljIGludCBtdDc5MjFfY2hpcF9yZXNldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMjgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI0Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjQ4OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3Jlc2V0LCBOVUxMLCBtdDc5MjFfY2hpcF9yZXNldCwgXFxcIiVsbGRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTI1MD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjI1MTptdDc5MjFzX3NjaGVkX3F1b3RhX3JlYWQoc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNTIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI2My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjY0OmludCBtdDc5MjFfaW5pdF9kZWJ1Z2ZzKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI2NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjc5LVxcdGRlYnVnZnNfY3JlYXRlX2Rldm1fc2VxZmlsZShkZXYtXFx1MDAzZW10NzYuZGV2LCBcXFwidHhwb3dlcl9za3VcXFwiLCBkaXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjI4MDpcXHRcXHRcXHRcXHQgICAgbXQ3OTIxX3R4cHdyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjgxLVxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXFxcInR4X3N0YXRzXFxcIiwgMDQwMCwgZGlyLCBkZXYsIFxcdTAwMjZtdDc5MnhfdHhfc3RhdHNfZm9wcyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjkxLVxcdFxcdGRlYnVnZnNfY3JlYXRlX2Rldm1fc2VxZmlsZShkZXYtXFx1MDAzZW10NzYuZGV2LCBcXFwic2NoZWQtcXVvdGFcXFwiLCBkaXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjI5MjpcXHRcXHRcXHRcXHRcXHQgICAgbXQ3OTIxc19zY2hlZF9xdW90YV9yZWFkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjkzLVxcdHJldHVybiAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTgtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2Zpcm13YXJlLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjk6I2luY2x1ZGUgXFxcIm10NzkyMS5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xMC0jaW5jbHVkZSBcXFwiLi4vbXQ3Nl9jb25uYWMyX21hYy5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoxNDpzdGF0aWMgc3NpemVfdCBtdDc5MjFfdGhlcm1hbF90ZW1wX3Nob3coc3RydWN0IGRldmljZSAqZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xNS1cXHRcXHRcXHRcXHRcXHRzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0cixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yNC1cXHRcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShtZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MjU6XFx0XFx0dGVtcGVyYXR1cmUgPSBtdDc5MjFfbWN1X2dldF90ZW1wZXJhdHVyZShwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yNi1cXHRcXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShtZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0zNi19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjM3OnN0YXRpYyBTRU5TT1JfREVWSUNFX0FUVFJfUk8odGVtcDFfaW5wdXQsIG10NzkyMV90aGVybWFsX3RlbXAsIDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0zOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6Mzk6c3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKm10NzkyMV9od21vbl9hdHRyc1tdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy00MC1cXHRcXHUwMDI2c2Vuc29yX2Rldl9hdHRyX3RlbXAxX2lucHV0LmRldl9hdHRyLmF0dHIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtNDItfTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6NDM6QVRUUklCVVRFX0dST1VQUyhtdDc5MjFfaHdtb24pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy00NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6NDU6c3RhdGljIGludCBtdDc5MjFfdGhlcm1hbF9pbml0KHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTQ2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy01My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6NTQ6XFx0bmFtZSA9IGRldm1fa2FzcHJpbnRmKFxcdTAwMjZ3aXBoeS1cXHUwMDNlZGV2LCBHRlBfS0VSTkVMLCBcXFwibXQ3OTIxXyVzXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtNTUtXFx0XFx0XFx0ICAgICAgd2lwaHlfbmFtZSh3aXBoeSkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTU5LVxcdGh3bW9uID0gZGV2bV9od21vbl9kZXZpY2VfcmVnaXN0ZXJfd2l0aF9ncm91cHMoXFx1MDAyNndpcGh5LVxcdTAwM2VkZXYsIG5hbWUsIHBoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6NjA6XFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgIG10NzkyMV9od21vbl9ncm91cHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy02MS1cXHRyZXR1cm4gUFRSX0VSUl9PUl9aRVJPKGh3bW9uKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy02My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6NjQ6aW50IG10NzkyMV9tYWNfaW5pdChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy02NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtNzQtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIE1UNzkyeF9XVEJMX1NJWkU7IGkrKylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6NzU6XFx0XFx0bXQ3OTIxX21hY193dGJsX3VwZGF0ZShkZXYsIGksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTc2LVxcdFxcdFxcdFxcdCAgICAgICBNVF9XVEJMX1VQREFURV9BRE1fQ09VTlRfQ0xFQVIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTgxLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6ODI6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTIxX21hY19pbml0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtODMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjg0OnN0YXRpYyBpbnQgX19tdDc5MjFfaW5pdF9oYXJkd2FyZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy04NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtOTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjEwMDpcXHRyZXQgPSBtdDc5MjFfbWN1X3NldF9lZXByb20oZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTAxLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTAzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoxMDQ6XFx0cmV0ID0gbXQ3OTIxX21hY19pbml0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTEwNS1vdXQ6XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTA4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoxMDk6c3RhdGljIGludCBtdDc5MjFfaW5pdF9oYXJkd2FyZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xMTAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTExNS1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgTVQ3OTJ4X01DVV9JTklUX1JFVFJZX0NPVU5UOyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MTE2OlxcdFxcdHJldCA9IF9fbXQ3OTIxX2luaXRfaGFyZHdhcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTE3LVxcdFxcdGlmICghcmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTEzMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MTMxOnN0YXRpYyB2b2lkIG10NzkyMV9pbml0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xMzIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTEzNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MTM3OlxcdHJldCA9IG10NzkyMV9pbml0X2hhcmR3YXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTEzOC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTE0MS1cXHRtdDc2X3NldF9zdHJlYW1fY2FwcyhcXHUwMDI2ZGV2LVxcdTAwM2VtcGh5LCB0cnVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MTQyOlxcdG10NzkyMV9zZXRfc3RyZWFtX2hlX2NhcHMoXFx1MDAyNmRldi1cXHUwMDNlcGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTQzLVxcdG10NzkyeF9jb25maWdfbWFjX2FkZHJfbGlzdChkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTE1MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MTUyOlxcdHJldCA9IG10NzkyMV9pbml0X2RlYnVnZnMoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTUzLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xNTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjE1ODpcXHRyZXQgPSBtdDc5MjFfdGhlcm1hbF9pbml0KFxcdTAwMjZkZXYtXFx1MDAzZXBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTE1OS1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTY5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoxNzA6aW50IG10NzkyMV9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkyeF9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTcxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xODktXFx0SU5JVF9ERUxBWUVEX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlbXBoeS5tYWNfd29yaywgbXQ3OTJ4X21hY193b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MTkwOlxcdElOSVRfREVMQVlFRF9XT1JLKFxcdTAwMjZkZXYtXFx1MDAzZXBoeS5zY2FuX3dvcmssIG10NzkyMV9zY2FuX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoxOTE6XFx0SU5JVF9ERUxBWUVEX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlY29yZWR1bXAud29yaywgbXQ3OTIxX2NvcmVkdW1wX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xOTItI2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjE5MzpcXHRJTklUX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlaXB2Nl9uc193b3JrLCBtdDc5MjFfc2V0X2lwdjZfbnNfd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTE5NC1cXHRza2JfcXVldWVfaGVhZF9pbml0KFxcdTAwMjZkZXYtXFx1MDAzZWlwdjZfbnNfbGlzdCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTk4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoxOTk6XFx0SU5JVF9XT1JLKFxcdTAwMjZkZXYtXFx1MDAzZXJlc2V0X3dvcmssIG10NzkyMV9tYWNfcmVzZXRfd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjIwMDpcXHRJTklUX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlaW5pdF93b3JrLCBtdDc5MjFfaW5pdF93b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMjAxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoyMDI6XFx0SU5JVF9XT1JLKFxcdTAwMjZkZXYtXFx1MDAzZXBoeS5yb2Nfd29yaywgbXQ3OTIxX3JvY193b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMjAzLVxcdHRpbWVyX3NldHVwKFxcdTAwMjZkZXYtXFx1MDAzZXBoeS5yb2NfdGltZXIsIG10NzkyeF9yb2NfdGltZXIsIDApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTIzMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MjMxOlxcdGh3LVxcdTAwM2V3aXBoeS1cXHUwMDNlcmVnX25vdGlmaWVyID0gbXQ3OTIxX3JlZ2Rfbm90aWZpZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTIzMi1cXHRkZXYtXFx1MDAzZW1waHkuc2JhbmRfMmcuc2JhbmQuaHRfY2FwLmNhcCB8PVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTI1NS19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjI1NjpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjFfcmVnaXN0ZXJfZGV2aWNlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTYtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3RpbWVrZWVwaW5nLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NzojaW5jbHVkZSBcXFwibXQ3OTIxLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtOC0jaW5jbHVkZSBcXFwiLi4vZG1hLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0xOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzoxOTpib29sIG10NzkyMV9tYWNfd3RibF91cGRhdGUoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgaW50IGlkeCwgdTMyIG1hc2spXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMjAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6Mjg6c3RhdGljIHUzMiBtdDc5MjFfbWFjX3d0YmxfbG1hY19hZGRyKGludCBpZHgsIHU4IG9mZnNldClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0yOS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0zMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzozMzpzdGF0aWMgdm9pZCBtdDc5MjFfbWFjX3N0YV9wb2xsKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMzQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNzItXFx0XFx0aWR4ID0gbWxpbmstXFx1MDAzZXdjaWQuaWR4O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjczOlxcdFxcdGFkZHIgPSBtdDc5MjFfbWFjX3d0YmxfbG1hY19hZGRyKGlkeCwgTVRfV1RCTF9BQzBfQ1RUX09GRlNFVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNzQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy05MS1cXHRcXHRpZiAoY2xlYXIpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo5MjpcXHRcXHRcXHRtdDc5MjFfbWFjX3d0YmxfdXBkYXRlKGRldiwgaWR4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTkzLVxcdFxcdFxcdFxcdFxcdCAgICAgICBNVF9XVEJMX1VQREFURV9BRE1fQ09VTlRfQ0xFQVIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMTIwLVxcdFxcdHJhdGUgPSBcXHUwMDI2bWxpbmstXFx1MDAzZXdjaWQucmF0ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzoxMjE6XFx0XFx0YWRkciA9IG10NzkyMV9tYWNfd3RibF9sbWFjX2FkZHIoaWR4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTEyMi1cXHRcXHRcXHRcXHRcXHRcXHQgTVRfV1RCTF9UWFJYX0NBUF9SQVRFX09GRlNFVCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0xNTItXFx0XFx0LyogZ2V0IHNpZ25hbCBzdHJlbmd0aCBvZiByZXNwIGZyYW1lcyAoQ1RTL0JBL0FDSykgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzoxNTM6XFx0XFx0YWRkciA9IG10NzkyMV9tYWNfd3RibF9sbWFjX2FkZHIoaWR4LCAzMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMTU0LVxcdFxcdHZhbCA9IG10NzZfcnIoZGV2LCBhZGRyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTE2OD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6MTY5Om10NzkyMV9tYWNfZmlsbF9yeChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTE3MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy00NDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NDQ3OnZvaWQgbXQ3OTIxX21hY19hZGRfdHhzKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNDQ4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTQ4NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo0ODU6c3RhdGljIHZvaWQgbXQ3OTIxX21hY190eF9mcmVlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHZvaWQgKmRhdGEsIGludCBsZW4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNDg2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTU1NS1cXHRyY3VfcmVhZF9sb2NrKCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NTU2OlxcdG10NzkyMV9tYWNfc3RhX3BvbGwoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01NTctXFx0cmN1X3JlYWRfdW5sb2NrKCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01NjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NTYyOmJvb2wgbXQ3OTIxX3J4X2NoZWNrKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdm9pZCAqZGF0YSwgaW50IGxlbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01NjMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNTczLVxcdFxcdC8qIFBLVF9UWVBFX1RYUlhfTk9USUZZIGNhbiBiZSByZWNlaXZlZCBvbmx5IGJ5IG1taW8gZGV2aWNlcyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjU3NDpcXHRcXHRtdDc5MjFfbWFjX3R4X2ZyZWUoZGV2LCBkYXRhLCBsZW4pOyAvKiBtbWlvICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNTc1LVxcdFxcdHJldHVybiBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTU3Ny1cXHRcXHRmb3IgKHJ4ZCArPSAyOyByeGQgKyA4IFxcdTAwM2M9IGVuZDsgcnhkICs9IDgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NTc4OlxcdFxcdFxcdG10NzkyMV9tYWNfYWRkX3R4cyhkZXYsIHJ4ZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNTc5LVxcdFxcdHJldHVybiBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTU4My19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NTg0OkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyMV9yeF9jaGVjayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNTg1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjU4Njp2b2lkIG10NzkyMV9xdWV1ZV9yeF9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCBlbnVtIG10NzZfcnhxX2lkIHEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNTg3LVxcdFxcdFxcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgKmluZm8pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02MDMtXFx0XFx0LyogUEtUX1RZUEVfVFhSWF9OT1RJRlkgY2FuIGJlIHJlY2VpdmVkIG9ubHkgYnkgbW1pbyBkZXZpY2VzICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NjA0OlxcdFxcdG10NzkyMV9tYWNfdHhfZnJlZShkZXYsIHNrYi1cXHUwMDNlZGF0YSwgc2tiLVxcdTAwM2VsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTYwNS1cXHRcXHRuYXBpX2NvbnN1bWVfc2tiKHNrYiwgMSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02MDctXFx0Y2FzZSBQS1RfVFlQRV9SWF9FVkVOVDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo2MDg6XFx0XFx0bXQ3OTIxX21jdV9yeF9ldmVudChkZXYsIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjA5LVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjExLVxcdFxcdGZvciAocnhkICs9IDI7IHJ4ZCArIDggXFx1MDAzYz0gZW5kOyByeGQgKz0gOClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo2MTI6XFx0XFx0XFx0bXQ3OTIxX21hY19hZGRfdHhzKGRldiwgcnhkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02MTMtXFx0XFx0ZGV2X2tmcmVlX3NrYihza2IpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjE2LVxcdGNhc2UgUEtUX1RZUEVfTk9STUFMOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjYxNzpcXHRcXHRpZiAoIW10NzkyMV9tYWNfZmlsbF9yeChkZXYsIHNrYikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02MTgtXFx0XFx0XFx0bXQ3Nl9yeChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LCBxLCBza2IpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjI2LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo2Mjc6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTIxX3F1ZXVlX3J4X3NrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTYyOT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjYzMDptdDc5MjFfdmlmX2Nvbm5lY3RfaXRlcih2b2lkICpwcml2LCB1OCAqbWFjLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTYzMS1cXHRcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjQyLVxcdFxcdFxcdFxcdCAgICBcXHUwMDI2bXZpZi1cXHUwMDNlc3RhLmRlZmxpbmsud2NpZCwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NjQzOlxcdG10NzkyMV9tY3Vfc2V0X3R4KGRldiwgdmlmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02NDQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02NDctXFx0XFx0XFx0XFx0XFx0ICAgIHRydWUsIE5VTEwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjY0ODpcXHRcXHRtdDc5MjFfbWN1X3N0YV91cGRhdGUoZGV2LCBOVUxMLCB2aWYsIHRydWUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjQ5LVxcdFxcdFxcdFxcdCAgICAgIE1UNzZfU1RBX0lORk9fU1RBVEVfTk9ORSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NjUwOlxcdFxcdG10NzkyMV9tY3VfdW5pX2FkZF9iZWFjb25fb2ZmbG9hZChkZXYsIGh3LCB2aWYsIHRydWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTY1MS1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02NTQtLyogc3lzdGVtIGVycm9yIHJlY292ZXJ5ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NjU1OnZvaWQgbXQ3OTIxX21hY19yZXNldF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02NTYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNzAxLVxcdFxcdFxcdFxcdFxcdCAgICBJRUVFODAyMTFfSUZBQ0VfSVRFUl9SRVNVTUVfQUxMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjcwMjpcXHRcXHRcXHRcXHRcXHQgICAgbXQ3OTIxX3ZpZl9jb25uZWN0X2l0ZXIsIE5VTEwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTcwMy1cXHRtdDc2X2Nvbm5hY19wb3dlcl9zYXZlX3NjaGVkKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYucGh5LCBwbSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNzA0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjcwNTpcXHRtdDc5MjFfcmVnZF9jaGFuZ2UoXFx1MDAyNmRldi1cXHUwMDNlcGh5LCBcXFwiMDBcXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy03MDYtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTcwNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo3MDg6dm9pZCBtdDc5MjFfY29yZWR1bXBfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNzA5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTc1Nj1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjc1NzptdDc5MjFfdXNiX3NkaW9fd3JpdGVfdHh3aShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTc1OC1cXHRcXHRcXHQgICBlbnVtIG10NzZfdHhxX2lkIHFpZCwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTc2OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo3Njk6aW50IG10NzkyMV91c2Jfc2Rpb190eF9wcmVwYXJlX3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHZvaWQgKnR4d2lfcHRyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTc3MC1cXHRcXHRcXHRcXHQgICBlbnVtIG10NzZfdHhxX2lkIHFpZCwgc3RydWN0IG10NzZfd2NpZCAqd2NpZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTc5OS1cXHRwa3RpZCA9IG10NzZfdHhfc3RhdHVzX3NrYl9hZGQoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Niwgd2NpZCwgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo4MDA6XFx0bXQ3OTIxX3VzYl9zZGlvX3dyaXRlX3R4d2koZGV2LCB3Y2lkLCBxaWQsIHN0YSwga2V5LCBwa3RpZCwgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04MDEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04MTQtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjgxNTpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjFfdXNiX3NkaW9fdHhfcHJlcGFyZV9za2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTgxNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo4MTc6dm9pZCBtdDc5MjFfdXNiX3NkaW9fdHhfY29tcGxldGVfc2tiKHN0cnVjdCBtdDc2X2RldiAqbWRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04MTgtXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgbXQ3Nl9xdWV1ZV9lbnRyeSAqZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTgzNS19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6ODM2OkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyMV91c2Jfc2Rpb190eF9jb21wbGV0ZV9za2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTgzNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo4Mzg6Ym9vbCBtdDc5MjFfdXNiX3NkaW9fdHhfc3RhdHVzX2RhdGEoc3RydWN0IG10NzZfZGV2ICptZGV2LCB1OCAqdXBkYXRlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTgzOS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04NDItXFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo4NDM6XFx0bXQ3OTIxX21hY19zdGFfcG9sbChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTg0NC1cXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODQ3LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo4NDg6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTIxX3VzYl9zZGlvX3R4X3N0YXR1c19kYXRhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04NDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODUwLSNpZiBJU19FTkFCTEVEKENPTkZJR19JUFY2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjg1MTp2b2lkIG10NzkyMV9zZXRfaXB2Nl9uc193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04NTIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTgtI2luY2x1ZGUgXFx1MDAzY25ldC9pcHY2LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjk6I2luY2x1ZGUgXFxcIm10NzkyMS5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMC0jaW5jbHVkZSBcXFwicmVnZC5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTEzPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTQ6bXQ3OTIxX2luaXRfaGVfY2FwcyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBlbnVtIG5sODAyMTFfYmFuZCBiYW5kLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xNS1cXHRcXHQgICAgc3RydWN0IGllZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSAqZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xOTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjE5Njp2b2lkIG10NzkyMV9zZXRfc3RyZWFtX2hlX2NhcHMoc3RydWN0IG10NzkyeF9waHkgKnBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTk3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yMDMtXFx0XFx0ZGF0YSA9IHBoeS1cXHUwMDNlaWZ0eXBlW05MODAyMTFfQkFORF8yR0haXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MjA0OlxcdFxcdG4gPSBtdDc5MjFfaW5pdF9oZV9jYXBzKHBoeSwgTkw4MDIxMV9CQU5EXzJHSFosIGRhdGEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yMDUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjExLVxcdFxcdGRhdGEgPSBwaHktXFx1MDAzZWlmdHlwZVtOTDgwMjExX0JBTkRfNUdIWl07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjIxMjpcXHRcXHRuID0gbXQ3OTIxX2luaXRfaGVfY2FwcyhwaHksIE5MODAyMTFfQkFORF81R0haLCBkYXRhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjEzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTIxOC1cXHRcXHRcXHRkYXRhID0gcGh5LVxcdTAwM2VpZnR5cGVbTkw4MDIxMV9CQU5EXzZHSFpdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyMTk6XFx0XFx0XFx0biA9IG10NzkyMV9pbml0X2hlX2NhcHMocGh5LCBOTDgwMjExX0JBTkRfNkdIWiwgZGF0YSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTIyMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yMjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjIyNzppbnQgX19tdDc5MjFfc3RhcnQoc3RydWN0IG10NzkyeF9waHkgKnBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjI4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yMzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjI0MDpcXHRlcnIgPSBtdDc5MjFfbWN1X3NldF9jaGFuX2luZm8ocGh5LCBNQ1VfRVhUX0NNRChTRVRfUlhfUEFUSCkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yNDEtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yNDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjI0NDpcXHRlcnIgPSBtdDc5MjFfc2V0X3R4X3Nhcl9wd3IobXBoeS1cXHUwMDNlaHcsIE5VTEwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yNDUtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yNTMtXFx0aWYgKG10NzZfaXNfbW1pbyhtcGh5LVxcdTAwM2VkZXYpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjI1NDpcXHRcXHRlcnIgPSBtdDc5MjFfbWN1X3JhZGlvX2xlZF9jdHJsKHBoeS1cXHUwMDNlZGV2LCBFWFRfQ01EX1JBRElPX0xFRF9DVFJMX0VOQUJMRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI1NS1cXHRcXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI1Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MjU4OlxcdFxcdGVyciA9IG10NzkyMV9tY3VfcmFkaW9fbGVkX2N0cmwocGh5LVxcdTAwM2VkZXYsIEVYVF9DTURfUkFESU9fT05fTEVEKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjU5LVxcdFxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjYzLVxcdGlmIChwaHktXFx1MDAzZWNoaXBfY2FwIFxcdTAwMjYgTVQ3OTJ4X0NISVBfQ0FQX1dGX1JGX1BJTl9DVFJMX0VWVF9FTikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyNjQ6XFx0XFx0bXQ3OTIxX21jdV93Zl9yZl9waW5fY3RybChwaHksIFdGX1JGX1BJTl9JTklUKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjY1LVxcdFxcdHdpcGh5X3Jma2lsbF9zdGFydF9wb2xsaW5nKG1waHktXFx1MDAzZWh3LVxcdTAwM2V3aXBoeSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjY5LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MjcwOkVYUE9SVF9TWU1CT0xfR1BMKF9fbXQ3OTIxX3N0YXJ0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjcxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyNzI6c3RhdGljIGludCBtdDc5MjFfc3RhcnQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI3My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjc3LVxcdG10NzkyeF9tdXRleF9hY3F1aXJlKHBoeS1cXHUwMDNlZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6Mjc4OlxcdGVyciA9IF9fbXQ3OTIxX3N0YXJ0KHBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI3OS1cXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShwaHktXFx1MDAzZWRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjgzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyODQ6c3RhdGljIHZvaWQgbXQ3OTIxX3N0b3Aoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGJvb2wgc3VzcGVuZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjg1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yOTAtXFx0XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MjkxOlxcdFxcdGVyciA9IG10NzkyMV9tY3VfcmFkaW9fbGVkX2N0cmwoZGV2LCBFWFRfQ01EX1JBRElPX09GRl9MRUQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yOTItXFx0XFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0zMDA9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozMDE6bXQ3OTIxX2FkZF9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTMwMi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozMzk6XFx0bXQ3OTIxX21hY193dGJsX3VwZGF0ZShkZXYsIGlkeCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzQwLVxcdFxcdFxcdCAgICAgICBNVF9XVEJMX1VQREFURV9BRE1fQ09VTlRfQ0xFQVIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM1My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MzU0OlxcdElOSVRfV09SSyhcXHUwMDI2bXZpZi1cXHUwMDNlY3NhX3dvcmssIG10NzkyMV9jc2Ffd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM1NS1cXHR0aW1lcl9zZXR1cChcXHUwMDI2bXZpZi1cXHUwMDNlY3NhX3RpbWVyLCBtdDc5MnhfY3NhX3RpbWVyLCAwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zNjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjM2MjpzdGF0aWMgdm9pZCBtdDc5MjFfcm9jX2l0ZXIodm9pZCAqcHJpdiwgdTggKm1hYyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzYzLVxcdFxcdFxcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM2Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MzY4OlxcdG10NzkyMV9tY3VfYWJvcnRfcm9jKHBoeSwgbXZpZiwgcGh5LVxcdTAwM2Vyb2NfdG9rZW5faWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zNjktfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zNzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjM3MTp2b2lkIG10NzkyMV9yb2NfYWJvcnRfc3luYyhzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zNzIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM4Mi1cXHRcXHRcXHRcXHQgICAgIElFRUU4MDIxMV9JRkFDRV9JVEVSX1JFU1VNRV9BTEwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjM4MzpcXHRcXHRcXHRcXHQgICAgIG10NzkyMV9yb2NfaXRlciwgKHZvaWQgKilwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zODQtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozODU6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTIxX3JvY19hYm9ydF9zeW5jKTtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MDA6MjUuNzI3MDU5OTEyWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjMyMTI4ODUwODIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyB0aGUgTVQ3OTIxVSBVU0IgRHJpdmVyKipcblxuT2theSwgc28gdGhlIGJ1aWxkIG91dHB1dCBjbGVhcmx5IGluZGljYXRlcyB0aGF0IHRoZSBgbXQ3OTIxdWAgZHJpdmVyIGlzIGNvbXBpbGVkIHdoZW4gYENPTkZJR19NVDc5MjFVYCBpcyBlbmFibGVkLiBBbmQsIGl0J3MgZGVmaW5lZCBhcyBgdXNiLm9gLCB3aGljaCBjb25maXJtcyBpdCdzIGEgVVNCIGRyaXZlci4gRXhjZWxsZW50LiBUaGlzIGlzIGdvb2QgYmVjYXVzZSB0aGF0IG1lYW5zIHdlIGNhbiByZWFjaCBpdCB3aXRoIGVpdGhlciBzeXprYWxsZXIncyBgZHVtbXlfaGNkYCBvciB0aGUgYHJhdy1nYWRnZXRgIGludGVyZmFjZSwgb3BlbmluZyB1cCBhdmVudWVzIGZvciBmdXp6aW5nIGluIGEgdmlydHVhbGl6ZWQgc2V0dGluZywgd2hpY2ggaXMgcHJlY2lzZWx5IHdoYXQgSSB3YW50LlxuXG5Ob3csIGxldCdzIGRyaWxsIGRvd24gYW5kIGZpZ3VyZSBvdXQgdGhlIGV4YWN0IGNvbmZpZ3VyYXRpb24gcmVxdWlyZW1lbnRzLiBJIGFscmVhZHkga25vdyBgQ09ORklHX01UNzkyMVVgIGVuYWJsZXMgdGhlIFVTQiBkcml2ZXIsIGBDT05GSUdfTVQ3OTIxRWAgaXMgUENJZSwgYW5kIGBDT05GSUdfTVQ3OTIxU2AgaXMgU0RJTy4gQW5kLCBgQ09ORklHX01UNzkyMV9DT01NT05gIGxvb2tzIGxpa2UgdGhlIHNoYXJlZCwgYmFzZSBjb2RlLlxuXG5SaWdodCwgSSdtIGdvaW5nIHRvIHB1bGwgdXAgdGhlIEtjb25maWcgZmlsZSBmb3IgYE1UNzkyMVVgIGFuZCBzZWUgd2hhdCBlbHNlIG5lZWRzIHRvIGJlIGZsaXBwZWQgb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwMjQyLCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTk4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjAwOjQ4LjkzOTk0NjY4NFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTM1NjA2NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTVQ3OTIxVVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZz0xNz1jb25maWcgTVQ3OTIxU1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0yNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnOjI4OmNvbmZpZyBNVDc5MjFVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0yOS1cXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTIxVSAoVVNCKSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowMDo0OC45OTkzMDczNDlaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNjYwMzcyODI5MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOlxuXG4qKkFzc2Vzc2luZyB0aGUgTGFuZHNjYXBlOiBNVDc5MjFVIERlcGVuZGVuY2llcyoqXG5cbk9rYXksIGxldCdzIGRpdmUgaW4uIE15IGltbWVkaWF0ZSBmb2N1cyBpcyBvbiB0aGUgYE1UNzkyMVVgIOKAkyB0aGF0J3Mgd2hlcmUgd2UgbmVlZCB0byBzdGFydC4gTXkgZXhwZXJ0IGV5ZSBpbW1lZGlhdGVseSBnb2VzIHRvIGRlcGVuZGVuY2llcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCB0aGlzIG1vZHVsZSByZWxpZXMgb24sIGFuZCB3aGF0IHJlbGllcyBvbiBpdC4gSSBuZWVkIGEgY2xlYXIgZGVwZW5kZW5jeSBncmFwaCwgYm90aCB1cHN0cmVhbSBhbmQgZG93bnN0cmVhbS4gVGhpcyBpc24ndCBqdXN0IGFib3V0IGRpcmVjdCBpbmNsdWRlcywgZWl0aGVyLiBJJ20gdGhpbmtpbmcgYWJvdXQgc2hhcmVkIGxpYnJhcmllcywga2VybmVsIG1vZHVsZXMsIGZpcm13YXJlLCBwb3RlbnRpYWwgaGFyZHdhcmUgcmV2aXNpb25zLCBhbmQgYW55dGhpbmcgZWxzZSB0aGlzIGNvbXBvbmVudCB0b3VjaGVzLiBBbnl0aGluZyB0aGF0IGNvdWxkIGNhdXNlIHJpcHBsZSBlZmZlY3RzIGRvd24gdGhlIGxpbmUuIEkgbmVlZCB0byBtYXAgaXQgYWxsIG91dCDigJMgc3lzdGVtYXRpY2FsbHksIG1ldGhvZGljYWxseSDigJMgdG8gdW5kZXJzdGFuZCBpdHMgdHJ1ZSByb2xlIGFuZCBwb3RlbnRpYWwgaW1wYWN0LiBUaGlzIHVuZGVyc3RhbmRpbmcgaXMgdGhlIGZvdW5kYXRpb24gZm9yIGFueSBkZWVwZXIgaW52ZXN0aWdhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjA4NzgsIk91dHB1dFRva2VucyI6NDgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowMTowNS42MDMwMzgwNDlaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3ODkxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDEwMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbiAgIDI6XFx0Y29uZmlnIE1UNzkyMV9DT01NT05cXG4gICAzOlxcdFxcdHRyaXN0YXRlXFxuICAgNDpcXHRcXHRzZWxlY3QgTVQ3OTJ4X0xJQlxcbiAgIDU6XFx0XFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXFxuICAgNjpcXHRcXG4gICA3OlxcdGNvbmZpZyBNVDc5MjFFXFxuICAgODpcXHRcXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTIxRSAoUENJZSkgc3VwcG9ydFxcXCJcXG4gICA5OlxcdFxcdHNlbGVjdCBNVDc5MjFfQ09NTU9OXFxuICAxMDpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuICAxMTpcXHRcXHRkZXBlbmRzIG9uIFBDSVxcbiAgMTI6XFx0XFx0aGVscFxcbiAgMTM6XFx0XFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTIxRSA4MDIuMTFheCAyeDI6MlNTIHdpcmVsZXNzIGRldmljZXMuXFxuICAxNDpcXHRcXG4gIDE1OlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cXG4gIDE2OlxcdFxcbiAgMTc6XFx0Y29uZmlnIE1UNzkyMVNcXG4gIDE4OlxcdFxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MjFTIChTRElPKSBzdXBwb3J0XFxcIlxcbiAgMTk6XFx0XFx0c2VsZWN0IE1UNzZfU0RJT1xcbiAgMjA6XFx0XFx0c2VsZWN0IE1UNzkyMV9DT01NT05cXG4gIDIxOlxcdFxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG4gIDIyOlxcdFxcdGRlcGVuZHMgb24gTU1DXFxuICAyMzpcXHRcXHRoZWxwXFxuICAyNDpcXHRcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5MjFTIDgwMi4xMWF4IDJ4MjoyU1Mgd2lyZWxlc3MgZGV2aWNlcy5cXG4gIDI1OlxcdFxcbiAgMjY6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxcbiAgMjc6XFx0XFxuICAyODpcXHRjb25maWcgTVQ3OTIxVVxcbiAgMjk6XFx0XFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzkyMVUgKFVTQikgc3VwcG9ydFxcXCJcXG4gIDMwOlxcdFxcdHNlbGVjdCBNVDc5MnhfVVNCXFxuICAzMTpcXHRcXHRzZWxlY3QgTVQ3OTIxX0NPTU1PTlxcbiAgMzI6XFx0XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxcbiAgMzM6XFx0XFx0ZGVwZW5kcyBvbiBVU0JcXG4gIDM0OlxcdFxcdGhlbHBcXG4gIDM1OlxcdFxcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzkyMVUgODAyLjExYXggMngyOjJTUyB3aXJlbGVzcyBkZXZpY2VzLlxcbiAgMzY6XFx0XFxuICAzNzpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjAxOjA1LjYwMzExODA1OVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE3MTgwODYzNDk0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTVQ3OTIxVSBDb25maWd1cmF0aW9uIGZvciBSZWd1bGF0b3J5IFVwZGF0ZXMqKlxuXG5Pa2F5LCBzbyBJIHNlZSB0aGF0IGBNVDc5MjFVYCBpcyB0aGUga2V5IGNvbmZpZ3VyYXRpb24gb3B0aW9uIHdlJ3JlIGVuYWJsaW5nIGhlcmUuIE5vdywgbGV0J3MgZGl2ZSBpbnRvIHRoZSBkZXRhaWxzIGFuZCBwaW5wb2ludCB0aGUga2V5IHN5bWJvbHMgd2UgbmVlZCB0byBmb2N1cyBvbiB3aXRoaW4gdGhpcyBwYXRjaC4gRnJvbSBhIHF1aWNrIHNjYW4sIGl0IGxvb2tzIGxpa2UgdGhpcyB1cGRhdGUgcHJpbWFyaWx5IGNvbmNlcm5zIGl0c2VsZiB3aXRoIHJlZ3VsYXRvcnkgdXBkYXRlcywgYW5kIEknbSBzZWVpbmcgbW9kaWZpY2F0aW9ucyB0b3VjaGluZyBzZXZlcmFsIGNyaXRpY2FsIGZ1bmN0aW9uczogc3BlY2lmaWNhbGx5IGBfX210NzkyMV9tY3VfcmVnZF91cGRhdGVgLCBgbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAsIGFuZCBgbXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZWAuIFRoZSBvYnZpb3VzIG5leHQgc3RlcCBpcyB0byBkZXRlcm1pbmUgaG93IGBtdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlYCBmaXRzIGludG8gdGhlIHB1enpsZSwgYW5kIHRvIGRvIHRoYXQsIEknbSBnb2luZyB0byBkZXRlcm1pbmUgaWYgdGhlIGZ1bmN0aW9uIGlzIHJlYWNoYWJsZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE2NTcsIk91dHB1dFRva2VucyI6NTcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTMsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowMToyMi43ODM5ODMxNzNaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5MTU0MTA2MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9NzY1PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjc2NjptdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlKHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsIGJvb2wgaXNfYWRkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy03Njcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTgwOD1pbnQgbXQ3OTIxX21hY19zdGFfYWRkKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy04NDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjg1MDpcXHRtdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlKHZpZiwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTg1MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz04OTE9dm9pZCBtdDc5MjFfbWFjX3N0YV9yZW1vdmUoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTkyMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6OTIxOlxcdG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGUodmlmLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTkyMi1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MDE6MjIuOTc1NTMzOTk0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1NzQwMTgyOTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSZWd1bGF0b3J5IERvbWFpbiBVcGRhdGUgRnVuY3Rpb25zKipcblxuT2theSwgc28gSSdtIHRyYWNpbmcgdGhlIGNhbGxzIHRvIHJlZ3VsYXRvcnkgZG9tYWluIHVwZGF0ZSBmdW5jdGlvbnMgaW4gdGhpcyBtdDc5MjEgZHJpdmVyLiBJIHNlZSB0aGF0IGBfX210NzkyMV9tY3VfcmVnZF91cGRhdGVgIGFuZCBgbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAgYXJlIGNsZWFybHkgcmVhY2hhYmxlIOKAkyBhcyBleHBlY3RlZCDigJMgdGhyb3VnaCBgbXQ3OTIxX21hY19zdGFfYWRkYCBhbmQgYG10NzkyMV9tYWNfc3RhX3JlbW92ZWAuIFRoaXMgY29ubmVjdGlvbiBjb25maXJtcyBteSBpbml0aWFsIGh5cG90aGVzaXM6IHRoZXNlIGZ1bmN0aW9ucyB3aWxsIGJlIGhpdCB3aGVuZXZlciBhIHN0YXRpb24gam9pbnMgb3IgbGVhdmVzIHRoZSBuZXR3b3JrLCB0cmlnZ2VyZWQgYnkgbWFjODAyMTEgZXZlbnRzLlxuXG5UaGF0IGhlbHBzIG5hcnJvdyBkb3duIG15IGFyZWEgb2YgZm9jdXMuIE15IGtleSBzeW1ib2xzIHRvIGV4YW1pbmUgYXJlIG5vdzogYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAsIGBtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCwgYW5kIGBtdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlYC5cblxuSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHRob3JvdWdoLCBJJ20gZ29pbmcgdG8gZG91YmxlLWNoZWNrIHRoYXQgYG10NzkyMV9tY3VfcmVnZF91cGRhdGVgIGlzbid0IGNhbGxlZCBmcm9tIGFueSBvdGhlciBwbGFjZS4gSXQncyBhbHdheXMgZ29vZCB0byBiZSBjZXJ0YWluIHRoZXJlIGFyZW4ndCBhbnkgdW5leHBlY3RlZCBlbnRyeSBwb2ludHMsIHdoaWNoIG1pZ2h0IGluZmx1ZW5jZSB0aGUgb3ZlcmFsbCBzeXN0ZW0gYmVoYXZpb3IuIEdvdHRhIGdldCBhIGZ1bGwgcGljdHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjI1MTcsIk91dHB1dFRva2VucyI6NTIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MDE6MjcuNTQ5NTU0NjY2WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzcxNzE4NzYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTIxX21jdV9yZWdkX3VwZGF0ZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTc2Nj1tdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlKHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsIGJvb2wgaXNfYWRkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTgwNC1cXHRpZiAodmlmLVxcdTAwM2Vic3NfY29uZi5jaGFucmVxLm9wZXIuY2hhbi1cXHUwMDNlYmFuZCA9PSBOTDgwMjExX0JBTkRfNkdIWilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6ODA1OlxcdFxcdF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZShkZXYsIGRldi1cXHUwMDNlbXQ3Ni5hbHBoYTIsIGRldi1cXHUwMDNlY291bnRyeV9pZV9lbnYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy04MDYtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM9NTQ1PXN0YXRpYyBpbnQgbXQ3OTIxX3BjaV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2aWNlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmMtNTkxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jOjU5MjpcXHRtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlKGRldiwgbWRldi1cXHUwMDNlYWxwaGEyLCBkZXYtXFx1MDAzZWNvdW50cnlfaWVfZW52KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYy01OTMtXFx0ZXJyID0gbXQ3OTIxX21jdV9yYWRpb19sZWRfY3RybChkZXYsIEVYVF9DTURfUkFESU9fT05fTEVEKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYz0yMz1tdDc5MjFfcmVnZF9jaGFubmVsX3VwZGF0ZShzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jLTc0LS8qIEludGVybmFsIHZlcnNpb24gdGhhdCBhc3N1bWVzIG11dGV4IGlzIGFscmVhZHkgaGVsZCBieSBjYWxsZXIgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmM6NzU6aW50IF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB1OCAqYWxwaGEyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYy03Ni1cXHRcXHRcXHQgICAgIGVudW0gZW52aXJvbm1lbnRfY2FwIGNvdW50cnlfaWVfZW52KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jLTEwMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmM6MTAxOmludCBtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHU4ICphbHBoYTIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jLTEwMi1cXHRcXHRcXHQgICBlbnVtIGVudmlyb25tZW50X2NhcCBjb3VudHJ5X2llX2VudilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYy0xMDgtXFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmM6MTA5OlxcdHJldCA9IF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZShkZXYsIGFscGhhMiwgY291bnRyeV9pZV9lbnYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYy0xMTAtXFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYy0xMTctfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYzoxMTg6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTIxX21jdV9yZWdkX3VwZGF0ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jLTExOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmM9MTIwPXZvaWQgbXQ3OTIxX3JlZ2Rfbm90aWZpZXIoc3RydWN0IHdpcGh5ICp3aXBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuYy0xNTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jOjE1MzpcXHRtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlKGRldiwgcmVxLVxcdTAwM2VhbHBoYTIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jLTE1NC1cXHRcXHRcXHQgICAgICAgcmVxLVxcdTAwM2Vjb3VudHJ5X2llX2Vudik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmg9OT1zdHJ1Y3QgcmVndWxhdG9yeV9yZXF1ZXN0O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuaC0xMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmg6MTE6aW50IG10NzkyMV9tY3VfcmVnZF91cGRhdGUoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdTggKmFscGhhMixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmgtMTItXFx0XFx0XFx0ICAgZW51bSBlbnZpcm9ubWVudF9jYXAgY291bnRyeV9pZV9lbnYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3JlZ2QuaDoxMzppbnQgX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHU4ICphbHBoYTIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5oLTE0LVxcdFxcdFxcdCAgICAgZW51bSBlbnZpcm9ubWVudF9jYXAgY291bnRyeV9pZV9lbnYpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowMToyNy42ODY3MzA4OTJaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTM3MjQ5NDk1MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE11dGV4IFVzYWdlIGluIHRoZSBtdDc5MjEgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBgbXQ3OTIxYCBkcml2ZXIgY29kZSwgYW5kIEkgc2VlIGBtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCBiZWluZyBjYWxsZWQgZnJvbSBhIGZldyBwbGFjZXMuIFNwZWNpZmljYWxseSwgYG10NzkyMV9wY2lfcmVzdW1lYCBhbmQgYG10NzkyMV9yZWdkX25vdGlmaWVyYCBjYWxsIGl0IGRpcmVjdGx5LiBJIGFsc28gc2VlIHRoYXQgYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAgaXMgY2FsbGVkIGJ5IGBtdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlYCBhbmQsIHlvdSBndWVzc2VkIGl0LCBgbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAuIEhtbSwgdGhpcyBpcyB3aGVyZSBpdCBnZXRzIGludGVyZXN0aW5nLi4uXG5cblRoZSBwYXRjaCBpcyBhZGRyZXNzaW5nIGEgZGVhZGxvY2ssIGFuZCBpdCBzZWVtcyB0byBzdGVtIGZyb20gYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgIGNhbGxpbmcgYG10NzkyMV9tY3VfcmVnZF91cGRhdGVgLiBUaGUgcHJvYmxlbSBpcywgYG10NzkyMV9tY3VfcmVnZF91cGRhdGVgIGxpa2VseSBhY3F1aXJlcyBhIG11dGV4LiBCdXQgKmNydWNpYWxseSosIGBtdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlYCBpcyBjYWxsZWQgZnJvbSBgbXQ3OTIxX21hY19zdGFfYWRkYC4gVGhpcyBsb29rcyBsaWtlIGEgY2xhc3NpYyBtdXRleCBpbnZlcnNpb24gc2NlbmFyaW8uIElmIGBtdDc5MjFfbWFjX3N0YV9hZGRgICphbHJlYWR5KiBoYXMgdGhlIG11dGV4IHdoZW4gaXQgY2FsbHMgYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgLCB3aGljaCB0aGVuIHRyaWVzIHRvIGFjcXVpcmUgdGhlIHNhbWUgbXV0ZXgsIHdlJ3ZlIGdvdCBhIGRlYWRsb2NrIG9uIG91ciBoYW5kcy5cblxuV2FpdCBhIHNlY29uZOKApiBJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIGBtdDc5MjFfbWFjX3N0YV9hZGRgICppcyogY2FsbGVkIHdpdGggdGhlIG11dGV4IGFscmVhZHkgaGVsZC4gVGhpcyBpcyB0aGUga2V5LiBJIG5lZWQgdG8gZGl2ZSBpbnRvIGBtdDc5MjFfbWFjX3N0YV9hZGRgIGFuZCBzZWUgaG93IGl0J3MgY2FsbGVkIGFuZCBpbiB3aGF0IGNvbnRleHQuIEdvdHRhIHRyYWNlIHRob3NlIGNhbGwgcGF0aHMuIFRoaXMgZmVlbHMgbGlrZSBpdCBtaWdodCBiZSBhbiBlYXN5IGZpeCwgYnV0IEkgbmVlZCB0byBtYWtlIHN1cmUgSSdtIHJpZ2h0IGFib3V0IHRoZSBtdXRleCBjb250ZW50aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDQ0MCwiT3V0cHV0VG9rZW5zIjo1MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowMTozMy4wNTkyMjc2MzVaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3MDk5NjA0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzkyMV9tYWNfc3RhX2FkZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTc2Nj1tdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlKHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsIGJvb2wgaXNfYWRkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTgwNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6ODA4OmludCBtdDc5MjFfbWFjX3N0YV9hZGQoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy04MDktXFx0XFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtODU1LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6ODU2OkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyMV9tYWNfc3RhX2FkZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTg1Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oPTI2ND1ib29sIG10NzkyMV9tYWNfd3RibF91cGRhdGUoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgaW50IGlkeCwgdTMyIG1hc2spO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oOjI2NTppbnQgbXQ3OTIxX21hY19zdGFfYWRkKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaC0yNjYtXFx0XFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM9MjU5PXN0YXRpYyBpbnQgbXQ3OTIxX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jLTI3NS1cXHRcXHQucnhfcG9sbF9jb21wbGV0ZSA9IG10NzkyeF9yeF9wb2xsX2NvbXBsZXRlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jOjI3NjpcXHRcXHQuc3RhX2FkZCA9IG10NzkyMV9tYWNfc3RhX2FkZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYy0yNzctXFx0XFx0LnN0YV9ldmVudCA9IG10NzkyMV9tYWNfc3RhX2V2ZW50LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jPTkwPXN0YXRpYyBpbnQgbXQ3OTIxc19wcm9iZShzdHJ1Y3Qgc2Rpb19mdW5jICpmdW5jLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jLTEwMy1cXHRcXHQucnhfY2hlY2sgPSBtdDc5MjFfcnhfY2hlY2ssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jOjEwNDpcXHRcXHQuc3RhX2FkZCA9IG10NzkyMV9tYWNfc3RhX2FkZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvLmMtMTA1LVxcdFxcdC5zdGFfZXZlbnQgPSBtdDc5MjFfbWFjX3N0YV9ldmVudCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jPTE1MD1zdGF0aWMgaW50IG10NzkyMXVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMTY0LVxcdFxcdC5yeF9jaGVjayA9IG10NzkyMV9yeF9jaGVjayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYzoxNjU6XFx0XFx0LnN0YV9hZGQgPSBtdDc5MjFfbWFjX3N0YV9hZGQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMTY2LVxcdFxcdC5zdGFfZXZlbnQgPSBtdDc5MjFfbWFjX3N0YV9ldmVudCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MDE6MzMuMTE2MzMxNDY5WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ0MTY1MzAwMzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBgbXQ3OTIxX21hY19zdGFfYWRkYCBGdW5jdGlvbiBDYWxsKipcblxuQWxyaWdodCwgc28gYG10NzkyMV9tYWNfc3RhX2FkZGAgaXMgdGhlIHN0YXRpb24gYWRkIGNhbGxiYWNrIGZvciB0aGUgbXQ3NiBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgbXQ3OTIxLiBUaGF0IG1ha2VzIHNlbnNlLCBnaXZlbiB0aGUgbmFtaW5nIGNvbnZlbnRpb24uIEl0J3MgY2FsbGVkIGJ5IG1hYzgwMjExLCB3aGljaCBjb25maXJtcyBpdCdzIHRoZSBjb3JyZWN0IGZ1bmN0aW9uIHRyaWdnZXJlZCB3aGVuIGEgbmV3IHN0YXRpb24gaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZXZpY2UuIE5vdywgdGhlIGNyaXRpY2FsIHF1ZXN0aW9uIGlzIGNvbmN1cnJlbmN5LiBJcyBhIG11dGV4IHByb3RlY3RpbmcgdGhpcyBzZWN0aW9uIG9mIGNvZGU/IEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSB3aGV0aGVyIHRoZSBjYWxsZXIgaW4gdGhlIG10NzYgZnJhbWV3b3JrLCBvciB0aGUgYG10NzkyMV9tYWNfc3RhX2FkZGAgZnVuY3Rpb24gaXRzZWxmLCBhY3F1aXJlcyBhIG11dGV4LiBNeSBuZXh0IHN0ZXAgaXMgdG8gZXhhbWluZSB0aGUgZnVuY3Rpb24ncyBpbXBsZW1lbnRhdGlvbiBkaXJlY3RseSB0byBhc2NlcnRhaW4gaG93IHRoZSBhY2Nlc3MgdG8gc2hhcmVkIHJlc291cmNlcyBpcyBoYW5kbGVkIHdpdGhpbiB0aGlzIHJvdXRpbmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2Mjg1LCJPdXRwdXRUb2tlbnMiOjUwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjAxOjM3LjUzMjg2MzY1NloiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDk1MjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDgwOCxcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDgwODpcXHRpbnQgbXQ3OTIxX21hY19zdGFfYWRkKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4gODA5OlxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKVxcbiA4MTA6XFx0e1xcbiA4MTE6XFx0XFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3OTJ4X2RldiwgbXQ3Nik7XFxuIDgxMjpcXHRcXHRzdHJ1Y3QgbXQ3OTJ4X3N0YSAqbXN0YSA9IChzdHJ1Y3QgbXQ3OTJ4X3N0YSAqKXN0YS1cXHUwMDNlZHJ2X3ByaXY7XFxuIDgxMzpcXHRcXHRzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKXZpZi1cXHUwMDNlZHJ2X3ByaXY7XFxuIDgxNDpcXHRcXHRpbnQgcmV0LCBpZHg7XFxuIDgxNTpcXHRcXG4gODE2OlxcdFxcdGlmIChzdGEtXFx1MDAzZWFpZCBcXHUwMDNlIE1UNzkyMV9NQVhfQUlEKVxcbiA4MTc6XFx0XFx0XFx0cmV0dXJuIC1FTk9FTlQ7XFxuIDgxODpcXHRcXG4gODE5OlxcdFxcdGlkeCA9IG10NzZfd2NpZF9hbGxvYyhkZXYtXFx1MDAzZW10NzYud2NpZF9tYXNrLCBNVDc5MnhfV1RCTF9TVEEgLSAxKTtcXG4gODIwOlxcdFxcdGlmIChpZHggXFx1MDAzYyAwKVxcbiA4MjE6XFx0XFx0XFx0cmV0dXJuIC1FTk9TUEM7XFxuIDgyMjpcXHRcXG4gODIzOlxcdFxcdElOSVRfTElTVF9IRUFEKFxcdTAwMjZtc3RhLVxcdTAwM2VkZWZsaW5rLndjaWQucG9sbF9saXN0KTtcXG4gODI0OlxcdFxcdG1zdGEtXFx1MDAzZXZpZiA9IG12aWY7XFxuIDgyNTpcXHRcXHRtc3RhLVxcdTAwM2VkZWZsaW5rLndjaWQuc3RhID0gMTtcXG4gODI2OlxcdFxcdG1zdGEtXFx1MDAzZWRlZmxpbmsud2NpZC5pZHggPSBpZHg7XFxuIDgyNzpcXHRcXHRtc3RhLVxcdTAwM2VkZWZsaW5rLndjaWQucGh5X2lkeCA9IG12aWYtXFx1MDAzZWJzc19jb25mLm10NzYuYmFuZF9pZHg7XFxuIDgyODpcXHRcXHRtc3RhLVxcdTAwM2VkZWZsaW5rLndjaWQudHhfaW5mbyB8PSBNVF9XQ0lEX1RYX0lORk9fU0VUO1xcbiA4Mjk6XFx0XFx0bXN0YS1cXHUwMDNlZGVmbGluay5sYXN0X3R4cyA9IGppZmZpZXM7XFxuIDgzMDpcXHRcXHRtc3RhLVxcdTAwM2VkZWZsaW5rLnN0YSA9IG1zdGE7XFxuIDgzMTpcXHRcXG4gODMyOlxcdFxcdGlmIChzdGEtXFx1MDAzZXRkbHMpXFxuIDgzMzpcXHRcXHRcXHRzZXRfYml0KE1UX1dDSURfRkxBR19URExTX1BFRVIsIFxcdTAwMjZtc3RhLVxcdTAwM2VkZWZsaW5rLndjaWQuZmxhZ3MpO1xcbiA4MzQ6XFx0XFxuIDgzNTpcXHRcXHRyZXQgPSBtdDc2X2Nvbm5hY19wbV93YWtlKFxcdTAwMjZkZXYtXFx1MDAzZW1waHksIFxcdTAwMjZkZXYtXFx1MDAzZXBtKTtcXG4gODM2OlxcdFxcdGlmIChyZXQpXFxuIDgzNzpcXHRcXHRcXHRyZXR1cm4gcmV0O1xcbiA4Mzg6XFx0XFxuIDgzOTpcXHRcXHRpZiAodmlmLVxcdTAwM2V0eXBlID09IE5MODAyMTFfSUZUWVBFX1NUQVRJT04pXFxuIDg0MDpcXHRcXHRcXHRtdmlmLVxcdTAwM2V3ZXBfc3RhID0gbXN0YTtcXG4gODQxOlxcdFxcbiA4NDI6XFx0XFx0bXQ3OTIxX21hY193dGJsX3VwZGF0ZShkZXYsIGlkeCxcXG4gODQzOlxcdFxcdFxcdFxcdCAgICAgICBNVF9XVEJMX1VQREFURV9BRE1fQ09VTlRfQ0xFQVIpO1xcbiA4NDQ6XFx0XFxuIDg0NTpcXHRcXHRyZXQgPSBtdDc5MjFfbWN1X3N0YV91cGRhdGUoZGV2LCBzdGEsIHZpZiwgdHJ1ZSxcXG4gODQ2OlxcdFxcdFxcdFxcdFxcdCAgICBNVDc2X1NUQV9JTkZPX1NUQVRFX05PTkUpO1xcbiA4NDc6XFx0XFx0aWYgKHJldClcXG4gODQ4OlxcdFxcdFxcdHJldHVybiByZXQ7XFxuIDg0OTpcXHRcXG4gODUwOlxcdFxcdG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGUodmlmLCB0cnVlKTtcXG4gODUxOlxcdFxcbiA4NTI6XFx0XFx0bXQ3Nl9jb25uYWNfcG93ZXJfc2F2ZV9zY2hlZChcXHUwMDI2ZGV2LVxcdTAwM2VtcGh5LCBcXHUwMDI2ZGV2LVxcdTAwM2VwbSk7XFxuIDg1MzpcXHRcXG4gODU0OlxcdFxcdHJldHVybiAwO1xcbiA4NTU6XFx0fVxcbiA4NTY6XFx0RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTIxX21hY19zdGFfYWRkKTtcXG4gODU3OlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowMTozNy41MzMwNzQ4NTZaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzY1MDQwNzMzOTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIE11dGV4IFVzYWdlIGluIG10NzkyMSBEcml2ZXIgZm9yIDYgR0h6IEJhbmQgT3BlcmF0aW9ucyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYG10NzkyMV9tYWNfc3RhX2FkZGAgZnVuY3Rpb24gYW5kIHRyeWluZyB0byBmaWd1cmUgb3V0IHRoZSBtdXRleCBhY3F1aXNpdGlvbiBzdHJhdGVneS4gSXQgZG9lc24ndCBzZWVtIHRvIGRpcmVjdGx5IGNhbGwgYG10NzkyeF9tdXRleF9hY3F1aXJlKGRldilgLCB3aGljaCBpcyBpbnRlcmVzdGluZy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIG1heWJlIHRoZSBjYWxsaW5nIGZ1bmN0aW9uLCBvciBwZXJoYXBzIGEgZnVuY3Rpb24gKml0KiBjYWxscywgaG9sZHMgdGhlIG11dGV4LiBNYXliZSBgbXQ3OTIxX21jdV9zdGFfdXBkYXRlYD8gSG1tLCBsZXQncyBzZWUuXG5cbldhaXQsIGxvb2tpbmcgYXQgdGhlIHBhdGNoLCBJIHNlZSB0aGV5J3ZlIGNoYW5nZWQgYG10NzkyMV9tY3VfcmVnZF91cGRhdGVgIHRvIGBfX210NzkyMV9tY3VfcmVnZF91cGRhdGVgLiBUaGF0IGludGVybmFsIGZ1bmN0aW9uIG5hbWUgc3VnZ2VzdHMgdGhlIG11dGV4IGlzICphbHJlYWR5KiBoZWxkLiBUaGUgY2hhbmdlIGltcGxpZXMgdGhhdCB0aGUgZnVuY3Rpb24gaXMgbm93IGJlaW5nIGNhbGxlZCBpbiBhIGNvbnRleHQgd2hlcmUgdGhlIG11dGV4IGlzIGFzc3VtZWQgdG8gYmUgYWNxdWlyZWQuIFRoZXJlZm9yZSwgdGhlIGZ1bmN0aW9uIGBtdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlYCBtdXN0IGJlIGNhbGxlZCB3aXRoIHRoZSBtdXRleCBhbHJlYWR5IGhlbGQuXG5cblNvIHRoZSBxdWVzdGlvbiBpcywgKndoZXJlKiBpcyB0aGlzIG11dGV4IGFjcXVpcmVkPyBMZXQncyBjaGVjayB0aGUgY2FsbGVycyBvZiBgbXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZWAuIEFscmlnaHQsIGl0J3MgY2FsbGVkIGZyb20gYm90aCBgbXQ3OTIxX21hY19zdGFfYWRkYCBhbmQgYG10NzkyMV9tYWNfc3RhX3JlbW92ZWAuIFRoZSBrZXkgcXVlc3Rpb24gaXMgd2hldGhlciBgbXQ3OTIxX21hY19zdGFfYWRkYCAqaXRzZWxmKiBob2xkcyB0aGUgbXV0ZXguIExldCdzIHNlZSBpZiB0aGVyZSBhcmUgYW55IGhpbnRzIGluIHRoZSBgbXQ3Nl9jb25uYWNfcG1fd2FrZWAgY29udGV4dC5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc1NjgsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNzcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowMjoxNC4wMzcxNTI3NzNaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzNzUzOTAwNjUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3Nl9jb25uYWNfcG1fd2FrZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmM9OTY9bXQ3NjE1X3BtX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jLTEyNS1cXHRwbS1cXHUwMDNlZW5hYmxlID0gZmFsc2U7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZGVidWdmcy5jOjEyNjpcXHRtdDc2X2Nvbm5hY19wbV93YWtlKFxcdTAwMjZkZXYtXFx1MDAzZW1waHksIHBtKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kZWJ1Z2ZzLmMtMTI3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFjLmM9MTk0NT12b2lkIG10NzYxNV91cGRhdGVfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKm1waHkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWMuYy0xOTQ4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21hYy5jOjE5NDk6XFx0aWYgKG10NzZfY29ubmFjX3BtX3dha2UoXFx1MDAyNmRldi1cXHUwMDNlbXBoeSwgXFx1MDAyNmRldi1cXHUwMDNlcG0pKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21hYy5jLTE5NTAtXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jPTI4ND1pbnQgbXQ3NjE1X3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqbXBoeSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYy0yOTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jOjI5MTpcXHRtdDc2X2Nvbm5hY19wbV93YWtlKG1waHksIFxcdTAwMjZkZXYtXFx1MDAzZXBtKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmMtMjkyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jPTYzND1pbnQgbXQ3NjE1X21hY19zdGFfYWRkKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYy02NTMtXFx0cGh5ID0gbXZpZi1cXHUwMDNlbXQ3Ni5iYW5kX2lkeCA/IG10NzYxNV9leHRfcGh5KGRldikgOiBcXHUwMDI2ZGV2LVxcdTAwM2VwaHk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jOjY1NDpcXHRlcnIgPSBtdDc2X2Nvbm5hY19wbV93YWtlKHBoeS1cXHUwMDNlbXQ3NiwgXFx1MDAyNmRldi1cXHUwMDNlcG0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYy02NTUtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYz02NzY9dm9pZCBtdDc2MTVfbWFjX3N0YV9yZW1vdmUoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jLTY4Ni1cXHRwaHkgPSBtdmlmLVxcdTAwM2VtdDc2LmJhbmRfaWR4ID8gbXQ3NjE1X2V4dF9waHkoZGV2KSA6IFxcdTAwMjZkZXYtXFx1MDAzZXBoeTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmM6Njg3OlxcdG10NzZfY29ubmFjX3BtX3dha2UocGh5LVxcdTAwM2VtdDc2LCBcXHUwMDI2ZGV2LVxcdTAwM2VwbSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jLTY4OC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3BjaS5jPTcyPXN0YXRpYyBpbnQgbXQ3NjE1X3BjaV9zdXNwZW5kKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9wY2kuYy03OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9wY2kuYzo3OTpcXHRlcnIgPSBtdDc2X2Nvbm5hY19wbV93YWtlKFxcdTAwMjZkZXYtXFx1MDAzZW1waHksIFxcdTAwMjZkZXYtXFx1MDAzZXBtKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9wY2kuYy04MC1cXHRpZiAoZXJyIFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWMuaD0zNTY9c3RhdGljIGlubGluZSB2b2lkIG10NzZfY29ubmFjX2lycV9lbmFibGUoc3RydWN0IG10NzZfZGV2ICpkZXYsIHUzMiBtYXNrKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hYy5oLTM2MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjLmg6MzYyOmludCBtdDc2X2Nvbm5hY19wbV93YWtlKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3Nl9jb25uYWNfcG0gKnBtKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjLmgtMzYzLXZvaWQgbXQ3Nl9jb25uYWNfcG93ZXJfc2F2ZV9zY2hlZChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWMuaD00MjE9bXQ3Nl9jb25uYWNfbXV0ZXhfYWNxdWlyZShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfY29ubmFjX3BtICpwbSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWMuaC00MjQtXFx0bXV0ZXhfbG9jayhcXHUwMDI2ZGV2LVxcdTAwM2VtdXRleCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hYy5oOjQyNTpcXHRtdDc2X2Nvbm5hY19wbV93YWtlKFxcdTAwMjZkZXYtXFx1MDAzZXBoeSwgcG0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWMuaC00MjYtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYz0zND1FWFBPUlRfU1lNQk9MX0dQTChtdDc2X2Nvbm5hY19nZW5fcHBlX3RocmVzaCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYy0zNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jOjM2OmludCBtdDc2X2Nvbm5hY19wbV93YWtlKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3Nl9jb25uYWNfcG0gKnBtKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWFjLmMtMzcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYy01OS19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuYzo2MDpFWFBPUlRfU1lNQk9MX0dQTChtdDc2X2Nvbm5hY19wbV93YWtlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21hYy5jLTYxLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTE0Mz1tdDc5MjFfcG1fc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTYzLVxcdHBtLVxcdTAwM2VlbmFibGUgPSBmYWxzZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MTY0OlxcdG10NzZfY29ubmFjX3BtX3dha2UoXFx1MDAyNmRldi1cXHUwMDNlbXBoeSwgcG0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xNjUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9NDc3PWludCBtdDc5MjFfc2V0X2NoYW5uZWwoc3RydWN0IG10NzZfcGh5ICptcGh5KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQ4Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDgzOlxcdG10NzZfY29ubmFjX3BtX3dha2UobXBoeSwgXFx1MDAyNmRldi1cXHUwMDNlcG0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00ODQtXFx0cmV0ID0gbXQ3OTIxX21jdV9zZXRfY2hhbl9pbmZvKHBoeSwgTUNVX0VYVF9DTUQoQ0hBTk5FTF9TV0lUQ0gpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz04MDg9aW50IG10NzkyMV9tYWNfc3RhX2FkZChzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtODM0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo4MzU6XFx0cmV0ID0gbXQ3Nl9jb25uYWNfcG1fd2FrZShcXHUwMDI2ZGV2LVxcdTAwM2VtcGh5LCBcXHUwMDI2ZGV2LVxcdTAwM2VwbSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTgzNi1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTg5MT12b2lkIG10NzkyMV9tYWNfc3RhX3JlbW92ZShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtODk4LVxcdG10NzZfY29ubmFjX2ZyZWVfcGVuZGluZ190eF9za2JzKFxcdTAwMjZkZXYtXFx1MDAzZXBtLCBcXHUwMDI2bXN0YS1cXHUwMDNlZGVmbGluay53Y2lkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6ODk5OlxcdG10NzZfY29ubmFjX3BtX3dha2UoXFx1MDAyNmRldi1cXHUwMDNlbXBoeSwgXFx1MDAyNmRldi1cXHUwMDNlcG0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy05MDAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MTgyPW10NzkyNV9wbV9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yMDItXFx0cG0tXFx1MDAzZWVuYWJsZSA9IGZhbHNlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyMDM6XFx0bXQ3Nl9jb25uYWNfcG1fd2FrZShcXHUwMDI2ZGV2LVxcdTAwM2VtcGh5LCBwbSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTIwNC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz04ODc9c3RhdGljIGludCBtdDc5MjVfbWFjX2xpbmtfc3RhX2FkZChzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtOTMyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzo5MzM6XFx0cmV0ID0gbXQ3Nl9jb25uYWNfcG1fd2FrZShcXHUwMDI2ZGV2LVxcdTAwM2VtcGh5LCBcXHUwMDI2ZGV2LVxcdTAwM2VwbSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTkzNC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTEyMzg9c3RhdGljIHZvaWQgbXQ3OTI1X21hY19saW5rX3N0YV9yZW1vdmUoc3RydWN0IG10NzZfZGV2ICptZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTEyNTEtXFx0bXQ3Nl9jb25uYWNfZnJlZV9wZW5kaW5nX3R4X3NrYnMoXFx1MDAyNmRldi1cXHUwMDNlcG0sIHdjaWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxMjUyOlxcdG10NzZfY29ubmFjX3BtX3dha2UoXFx1MDAyNmRldi1cXHUwMDNlbXBoeSwgXFx1MDAyNmRldi1cXHUwMDNlcG0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xMjUzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfbWFjLmM9MjUzPXZvaWQgbXQ3OTJ4X3VwZGF0ZV9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqbXBoeSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X21hYy5jLTI1Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9tYWMuYzoyNTc6XFx0aWYgKG10NzZfY29ubmFjX3BtX3dha2UobXBoeSwgXFx1MDAyNmRldi1cXHUwMDNlcG0pKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X21hYy5jLTI1OC1cXHRcXHRyZXR1cm47XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjAyOjE1LjQxMjU1MDU5OFoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyMTQ1Mzg0NTUxNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGFuYWx5c2lzIG9mIHRoYXQgY29kZSBzbmlwcGV0OlxuXG4qKkRpdmluZyBpbnRvIHRoZSBNVDc5MjEgTUFDIFNUQSBBZGRpdGlvbioqXG5cbkFscmlnaHQsIHNvIGBtdDc5MjFfbWFjX3N0YV9hZGRgIGRvZXNuJ3Qgc2VlbSB0byBoYXZlIGEgZGlyZWN0IGBtdXRleF9hY3F1aXJlYCBjYWxsLCB3aGljaCBpcyBhIGJpdCB1bnVzdWFsLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gdHJhY2UgdGhlIGxvY2tpbmcgYmVoYXZpb3IgaGVyZS4gTm93LCBob2xkIG9uLCBgbXQ3OTJ4X211dGV4X2FjcXVpcmVgLi4uIHRoYXQncyBwcm9iYWJseSBhIG1hY3JvIG9yIGEgd3JhcHBlciBmdW5jdGlvbiwgbm90IGEgYmFzaWMgbXV0ZXggYWNxdWlzaXRpb24uIEkgbmVlZCB0byBpbnZlc3RpZ2F0ZSB0aGF0IG1hY3JvIG9yIGZ1bmN0aW9uIGRlZmluaXRpb24gdG8gdW5kZXJzdGFuZCBwcmVjaXNlbHkgaG93IHRoZSBtdXRleCBpcyBiZWluZyBoYW5kbGVkIGluIHRoaXMgY29udGV4dC4gTGV0IG1lIGRpZyBpbnRvIHRoYXQgcmlnaHQgYXdheSBhbmQgc2VlIHdoYXQgaXQgcmV2ZWFscy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzE1MjYsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowMjozNi44NjYzOTk3NjNaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzOTkwMzA5NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5MnhfbXV0ZXhfYWNxdWlyZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDU4NSBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTc9bXQ3OTIxX3JlZ19zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MTE6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTItXFx0bXQ3Nl93cihkZXYsIGRldi1cXHUwMDNlbXQ3Ni5kZWJ1Z2ZzX3JlZywgdmFsKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz0xOT1tdDc5MjFfcmVnX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjM6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjQtXFx0KnZhbCA9IG10NzZfcnIoZGV2LCBkZXYtXFx1MDAzZW10NzYuZGVidWdmc19yZWcpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTMzPW10NzkyMV9md19kZWJ1Z19zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0zNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6Mzc6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMzgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9OTE9bXQ3OTIxX3R4cHdyKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy05Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6OTc6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtOTgtXFx0cmV0ID0gbXQ3OTIxX2dldF90eHB3cl9pbmZvKGRldiwgXFx1MDAyNnR4cHdyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz0xODg9bXQ3OTIxX2RlZXBfc2xlZXBfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTk3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxOTg6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTk5LVxcdGlmIChwbS1cXHUwMDNlZHNfZW5hYmxlX3VzZXIgPT0gZW5hYmxlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTIyNz1zdGF0aWMgaW50IG10NzkyMV9jaGlwX3Jlc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjM4LVxcdFxcdC8qIENvbGxlY3QgdGhlIGNvcmUgZHVtcCBiZWZvcmUgcmVzZXQgd2lmaXN5cy4gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjM5OlxcdFxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI0MC1cXHRcXHRyZXQgPSBtdDc2X2Nvbm5hY19tY3VfY2hpcF9jb25maWcoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM9MTQ9c3RhdGljIHNzaXplX3QgbXQ3OTIxX3RoZXJtYWxfdGVtcF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MjQ6XFx0XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUobWRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTI1LVxcdFxcdHRlbXBlcmF0dXJlID0gbXQ3OTIxX21jdV9nZXRfdGVtcGVyYXR1cmUocGh5KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTgzOD1ib29sIG10NzkyMV91c2Jfc2Rpb190eF9zdGF0dXNfZGF0YShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHU4ICp1cGRhdGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04NDEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6ODQyOlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODQzLVxcdG10NzkyMV9tYWNfc3RhX3BvbGwoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTg1MT12b2lkIG10NzkyMV9zZXRfaXB2Nl9uc193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTg2My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo4NjQ6XFx0XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04NjUtXFx0XFx0cmV0ID0gbXQ3Nl9tY3Vfc2tiX3NlbmRfbXNnKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYsIHNrYixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0yNzI9c3RhdGljIGludCBtdDc5MjFfc3RhcnQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjc2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyNzc6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUocGh5LVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yNzgtXFx0ZXJyID0gX19tdDc5MjFfc3RhcnQocGh5KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0yODQ9c3RhdGljIHZvaWQgbXQ3OTIxX3N0b3Aoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGJvb2wgc3VzcGVuZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yODktXFx0aWYgKG10NzZfaXNfbW1pbyhcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyOTA6XFx0XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjkxLVxcdFxcdGVyciA9IG10NzkyMV9tY3VfcmFkaW9fbGVkX2N0cmwoZGV2LCBFWFRfQ01EX1JBRElPX09GRl9MRUQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTMwMT1tdDc5MjFfYWRkX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zMDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjMwOTpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zMTAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9Mzg3PXZvaWQgbXQ3OTIxX3JvY193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zOTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjM5NDpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShwaHktXFx1MDAzZWRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM5NS1cXHRpZiAoIXRlc3RfYW5kX2NsZWFyX2JpdChNVDc2X1NUQVRFX1JPQywgXFx1MDAyNnBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlc3RhdGUpKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9NDA2PXN0YXRpYyBpbnQgbXQ3OTIxX2Fib3J0X3JvYyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqdmlmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQxMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDEzOlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKHBoeS1cXHUwMDNlZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDE0LVxcdGlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoTVQ3Nl9TVEFURV9ST0MsIFxcdTAwMjZwaHktXFx1MDAzZW10NzYtXFx1MDAzZXN0YXRlKSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz00NTE9c3RhdGljIGludCBtdDc5MjFfcmVtYWluX29uX2NoYW5uZWwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDYwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0NjE6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUocGh5LVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00NjItXFx0ZXJyID0gbXQ3OTIxX3NldF9yb2MocGh5LCBtdmlmLCBjaGFuLCBkdXJhdGlvbiwgTVQ3OTIxX1JPQ19SRVFfUk9DKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz01MDI9c3RhdGljIGludCBtdDc5MjFfc2V0X2tleShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgZW51bSBzZXRfa2V5X2NtZCBjbWQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNTQ1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo1NDY6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNTQ3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTYzND1zdGF0aWMgaW50IG10NzkyMV9jb25maWcoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGludCByYWRpb19pZHgsIHUzMiBjaGFuZ2VkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTY0NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NjQ2OlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTY0Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz02NjY9c3RhdGljIHZvaWQgbXQ3OTIxX2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNjg3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo2ODg6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNjg5LVxcdG10NzkyMV9tY3Vfc2V0X3J4ZmlsdGVyKGRldiwgZmxhZ3MsIDAsIDApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTY5NT1zdGF0aWMgdm9pZCBtdDc5MjFfYnNzX2luZm9fY2hhbmdlZChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy03MDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjcwMzpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy03MDQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9ODU4PWludCBtdDc5MjFfbWFjX3N0YV9ldmVudChzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtODcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo4NzE6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtODcyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTkyNz1zdGF0aWMgaW50IG10NzkyMV9zZXRfcnRzX3RocmVzaG9sZChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgaW50IHJhZGlvX2lkeCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy05MzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjkzMjpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy05MzMtXFx0bXQ3Nl9jb25uYWNfbWN1X3NldF9ydHNfdGhyZXNoKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYsIHZhbCwgMCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9OTQwPW10NzkyMV9hbXBkdV9hY3Rpb24oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtOTU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo5NTg6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtOTU5LVxcdHN3aXRjaCAoYWN0aW9uKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9OTk2PXN0YXRpYyBpbnQgbXQ3OTIxX3N0YV9zdGF0ZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMDA0LVxcdGlmIChkZXYtXFx1MDAzZXBtLmRzX2VuYWJsZSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxMDA1OlxcdFxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTEwMDYtXFx0XFx0bXQ3Nl9jb25uYWNfc3RhX3N0YXRlX2RwKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYsIG9sZF9zdGF0ZSwgbmV3X3N0YXRlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMDU1PW10NzkyMV9od19zY2FuKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTEwNjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjEwNjI6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTA2My1cXHRlcnIgPSBtdDc2X2Nvbm5hY19tY3VfaHdfc2NhbihtcGh5LCB2aWYsIHJlcSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTA3MD1tdDc5MjFfY2FuY2VsX2h3X3NjYW4oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTA3NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTA3NTpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMDc2LVxcdG10NzZfY29ubmFjX21jdV9jYW5jZWxfaHdfc2NhbihtcGh5LCB2aWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTEwODE9bXQ3OTIxX3N0YXJ0X3NjaGVkX3NjYW4oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTA4OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTA4OTpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMDkwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTExMDM9bXQ3OTIxX3N0b3Bfc2NoZWRfc2NhbihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMTA4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxMTA5OlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTExMTAtXFx0ZXJyID0gbXQ3Nl9jb25uYWNfbWN1X3NjaGVkX3NjYW5fZW5hYmxlKG1waHksIHZpZiwgZmFsc2UpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTExMTc9bXQ3OTIxX3NldF9hbnRlbm5hKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBpbnQgcmFkaW9faWR4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTExMjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjExMzA6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTEzMS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMTQ0PXN0YXRpYyBpbnQgbXQ3OTIxX3N1c3BlbmQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTE1NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTE1NjpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMTU3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTExNjk9c3RhdGljIGludCBtdDc5MjFfcmVzdW1lKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTExNzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjExNzQ6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTE3NS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMTkwPXN0YXRpYyB2b2lkIG10NzkyMV9zZXRfcmVrZXlfZGF0YShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMTk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxMTk2OlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTExOTctXFx0bXQ3Nl9jb25uYWNfbWN1X3VwZGF0ZV9ndGtfcmVrZXkoaHcsIHZpZiwgZGF0YSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTIwMj1zdGF0aWMgdm9pZCBtdDc5MjFfc3RhX3NldF9kZWNhcF9vZmZsb2FkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTEyMTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjEyMTM6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTIxNC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMzAyPXN0YXRpYyBpbnQgbXQ3OTIxX3NldF9zYXJfc3BlY3Moc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTMwNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTMwODpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMzA5LVxcdGVyciA9IG10NzkyMV9tY3Vfc2V0X2NsYyhkZXYsIGRldi1cXHUwMDNlbXQ3Ni5hbHBoYTIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTMyMj1tdDc5MjFfY2hhbm5lbF9zd2l0Y2hfYmVhY29uKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTEzMjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjEzMjg6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTMyOS1cXHRtdDc5MjFfbWN1X3VuaV9hZGRfYmVhY29uX29mZmxvYWQoZGV2LCBodywgdmlmLCB0cnVlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMzM0PW10NzkyMV9zdGFydF9hcChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMzQxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxMzQyOlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTEzNDMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTM2Mj1tdDc5MjFfc3RvcF9hcChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMzY5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxMzcwOlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTEzNzEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTQwND1tdDc5MjFfY2hhbmdlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTQxOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTQxOTpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShwaHktXFx1MDAzZWRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTE0MjAtXFx0aWYgKHZpZi1cXHUwMDNldHlwZSA9PSBOTDgwMjExX0lGVFlQRV9NT05JVE9SKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTQyOT1zdGF0aWMgdm9pZCBtdDc5MjFfbWdkX3ByZXBhcmVfdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTQzNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTQzODpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xNDM5LVxcdG10NzkyMV9zZXRfcm9jKG12aWYtXFx1MDAzZXBoeSwgbXZpZiwgbXZpZi1cXHUwMDNlYnNzX2NvbmYubXQ3Ni5jdHgtXFx1MDAzZWRlZi5jaGFuLCBkdXJhdGlvbixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xNDYyPXZvaWQgbXQ3OTIxX2NzYV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xNDczLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxNDc0OlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTE0NzUtXFx0cmV0ID0gbXQ3Nl9jb25uYWNfbWN1X3VuaV9zZXRfY2hjdHgobXZpZi1cXHUwMDNlcGh5LVxcdTAwM2VtdDc2LCBcXHUwMDI2bXZpZi1cXHUwMDNlYnNzX2NvbmYubXQ3NixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xNTM2PXN0YXRpYyB2b2lkIG10NzkyMV9yZmtpbGxfcG9sbChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xNTQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxNTQxOlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKHBoeS1cXHUwMDNlZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTU0Mi1cXHRyZXQgPSBtdDc5MjFfbWN1X3dmX3JmX3Bpbl9jdHJsKHBoeSwgV0ZfUkZfUElOX1BPTEwpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jPTEwMT1pbnQgbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB1OCAqYWxwaGEyLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jLTEwNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9yZWdkLmM6MTA4OlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcmVnZC5jLTEwOS1cXHRyZXQgPSBfX210NzkyMV9tY3VfcmVnZF91cGRhdGUoZGV2LCBhbHBoYTIsIGNvdW50cnlfaWVfZW52KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz04PW10NzkyNV9yZWdfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjEzOlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTE0LVxcdG10NzkyNV9tY3VfcmVndmFsKGRldiwgZGV2LVxcdTAwM2VtdDc2LmRlYnVnZnNfcmVnLCBcXHUwMDI2cmVndmFsLCB0cnVlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz0yMT1tdDc5MjVfcmVnX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6Mjc6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjgtXFx0cmV0ID0gbXQ3OTI1X21jdV9yZWd2YWwoZGV2LCBkZXYtXFx1MDAzZW10NzYuZGVidWdmc19yZWcsIFxcdTAwMjZyZWd2YWwsIGZhbHNlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYz0zOT1tdDc5MjVfZndfZGVidWdfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtNDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjQzOlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTQ0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jPTExOD1tdDc5MjVfdHhwd3Ioc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEyOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM6MTMwOlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jLTEzMS1cXHRyZXQgPSBtdDc5MjVfZ2V0X3R4cHdyX2luZm8oZGV2LCBiYW5kX2lkeCwgdHhwd3IpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jPTIyNz1tdDc5MjVfZGVlcF9zbGVlcF9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yMzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvZGVidWdmcy5jOjIzNzpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yMzgtXFx0aWYgKHBtLVxcdTAwM2Vkc19lbmFibGVfdXNlciA9PSBlbmFibGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmM9MjY2PXN0YXRpYyBpbnQgbXQ3OTI1X2NoaXBfcmVzZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYy0yNzctXFx0XFx0LyogQ29sbGVjdCB0aGUgY29yZSBkdW1wIGJlZm9yZSByZXNldCB3aWZpc3lzLiAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2RlYnVnZnMuYzoyNzg6XFx0XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9kZWJ1Z2ZzLmMtMjc5LVxcdFxcdHJldCA9IG10NzkyNV9tY3VfY2hpcF9jb25maWcoZGV2LCBcXFwiYXNzZXJ0XFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM9MTQ9c3RhdGljIHNzaXplX3QgbXQ3OTI1X3RoZXJtYWxfdGVtcF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjQ6XFx0XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUobWRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTI1LVxcdFxcdHRlbXBlcmF0dXJlID0gbXQ3OTI1X21jdV9nZXRfdGVtcGVyYXR1cmUocGh5KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21hYy5jPTE0Nzc9Ym9vbCBtdDc5MjVfdXNiX3NkaW9fdHhfc3RhdHVzX2RhdGEoc3RydWN0IG10NzZfZGV2ICptZGV2LCB1OCAqdXBkYXRlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTQ4MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxNDgxOlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTQ4Mi1cXHRtdDc5MjVfbWFjX3N0YV9wb2xsKGRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYz0xNDkwPXZvaWQgbXQ3OTI1X3NldF9pcHY2X25zX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTUwMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWMuYzoxNTAzOlxcdFxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFjLmMtMTUwNC1cXHRcXHRyZXQgPSBtdDc2X21jdV9za2Jfc2VuZF9tc2coXFx1MDAyNmRldi1cXHUwMDNlbXQ3Niwgc2tiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTM2Mz1zdGF0aWMgaW50IG10NzkyNV9zdGFydChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0zNjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjM2ODpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShwaHktXFx1MDAzZWRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTM2OS1cXHRlcnIgPSBfX210NzkyNV9zdGFydChwaHkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTQ1MT1tdDc5MjVfYWRkX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy00NTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjQ1ODpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy00NTktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9NTA5PXZvaWQgbXQ3OTI1X3JvY193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy01MTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjUxOTpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShwaHktXFx1MDAzZWRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTUyMC1cXHRpZWVlODAyMTFfaXRlcmF0ZV9hY3RpdmVfaW50ZXJmYWNlcyhwaHktXFx1MDAzZW10NzYtXFx1MDAzZWh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTUyNz1zdGF0aWMgaW50IG10NzkyNV9hYm9ydF9yb2Moc3RydWN0IG10NzkyeF9waHkgKnBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy01MzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjUzNTpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShwaHktXFx1MDAzZWRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTUzNi1cXHRpZiAodGVzdF9hbmRfY2xlYXJfYml0KE1UNzZfU1RBVEVfUk9DLCBcXHUwMDI2cGh5LVxcdTAwM2VtdDc2LVxcdTAwM2VzdGF0ZSkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9NjAwPXN0YXRpYyBpbnQgbXQ3OTI1X3JlbWFpbl9vbl9jaGFubmVsKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTYwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6NjEwOlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKHBoeS1cXHUwMDNlZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtNjExLVxcdGVyciA9IG10NzkyNV9zZXRfcm9jKHBoeSwgXFx1MDAyNm12aWYtXFx1MDAzZWJzc19jb25mLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTcwNT1zdGF0aWMgaW50IG10NzkyNV9zZXRfa2V5KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBlbnVtIHNldF9rZXlfY21kIGNtZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy03MjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjcyNjpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy03MjctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9ODA1PXN0YXRpYyBpbnQgbXQ3OTI1X2NvbmZpZyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgaW50IHJhZGlvX2lkeCwgdTMyIGNoYW5nZWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtODA5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzo4MTA6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtODExLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTgzMD1zdGF0aWMgdm9pZCBtdDc5MjVfY29uZmlndXJlX2ZpbHRlcihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy04NTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjg1MTpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy04NTItXFx0bXQ3OTI1X21jdV9zZXRfcnhmaWx0ZXIoZGV2LCBmbGFncywgMCwgMCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTE0NT1tdDc5MjVfbWFjX3NldF9saW5rcyhzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTE2Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTE2NzpcXHRcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xMTY4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTExNzc9c3RhdGljIHZvaWQgbXQ3OTI1X21hY19saW5rX3N0YV9hc3NvYyhzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTE4NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTE4NjpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xMTg3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTEzNzc9c3RhdGljIGludCBtdDc5MjVfc2V0X3J0c190aHJlc2hvbGQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGludCByYWRpb19pZHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTM4MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTM4MjpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xMzgzLVxcdG10NzkyNV9tY3Vfc2V0X3J0c190aHJlc2goXFx1MDAyNmRldi1cXHUwMDNlcGh5LCB2YWwpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTEzOTA9bXQ3OTI1X2FtcGR1X2FjdGlvbihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNDA3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxNDA4OlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE0MDktXFx0c3dpdGNoIChhY3Rpb24pIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0xNDQ3PW10NzkyNV9tbG9fcG1faXRlcih2b2lkICpwcml2LCB1OCAqbWFjLCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE0NTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjE0NTk6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTQ2MC1cXHRmb3JfZWFjaF9zZXRfYml0KGksIFxcdTAwMjZ2YWxpZCwgSUVFRTgwMjExX01MRF9NQVhfTlVNX0xJTktTKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTU0Mz1tdDc5MjVfaHdfc2NhbihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNTQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxNTUwOlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE1NTEtXFx0ZXJyID0gbXQ3OTI1X21jdV9od19zY2FuKG1waHksIHZpZiwgcmVxKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0xNTU4PW10NzkyNV9jYW5jZWxfaHdfc2NhbihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNTYyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxNTYzOlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE1NjQtXFx0bXQ3OTI1X21jdV9jYW5jZWxfaHdfc2NhbihtcGh5LCB2aWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTE1Njk9bXQ3OTI1X3N0YXJ0X3NjaGVkX3NjYW4oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTU3Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTU3NzpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNTc4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTE1OTE9bXQ3OTI1X3N0b3Bfc2NoZWRfc2NhbihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNTk2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxNTk3OlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE1OTgtXFx0ZXJyID0gbXQ3OTI1X21jdV9zY2hlZF9zY2FuX2VuYWJsZShtcGh5LCB2aWYsIGZhbHNlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0xNjA1PW10NzkyNV9zZXRfYW50ZW5uYShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgaW50IHJhZGlvX2lkeCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNjE3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxNjE4OlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE2MTktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTYzMz1zdGF0aWMgaW50IG10NzkyNV9zdXNwZW5kKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE2NDQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjE2NDU6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTY0Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0xNjU4PXN0YXRpYyBpbnQgbXQ3OTI1X3Jlc3VtZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNjYyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxNjYzOlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE2NjQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTY3OT1zdGF0aWMgdm9pZCBtdDc5MjVfc2V0X3Jla2V5X2RhdGEoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTY4NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTY4NTpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNjg2LVxcdG10NzZfY29ubmFjX21jdV91cGRhdGVfZ3RrX3Jla2V5KGh3LCB2aWYsIGRhdGEpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTE2OTE9c3RhdGljIHZvaWQgbXQ3OTI1X3N0YV9zZXRfZGVjYXBfb2ZmbG9hZChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xNzA0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxNzA1OlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE3MDYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTgyMD1zdGF0aWMgaW50IG10NzkyNV9zZXRfc2FyX3NwZWNzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE4MjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjE4MjY6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTgyNy1cXHRlcnIgPSBtdDc5MjVfc2V0X3R4X3Nhcl9wd3IoaHcsIHNhcik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTgzND1tdDc5MjVfY2hhbm5lbF9zd2l0Y2hfYmVhY29uKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE4MzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjE4NDA6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTg0MS1cXHRtdDc5MjVfbWN1X3VuaV9hZGRfYmVhY29uX29mZmxvYWQoZGV2LCBodywgdmlmLCB0cnVlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0xODY2PW10NzkyNV9zdGFydF9hcChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xODcyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxODczOlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE4NzQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTg5ND1tdDc5MjVfc3RvcF9hcChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xOTAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxOTAxOlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE5MDItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTkzNz1tdDc5MjVfY2hhbmdlX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTk1My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTk1NDpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShwaHktXFx1MDAzZWRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTE5NTUtXFx0aWYgKHZpZi1cXHUwMDNldHlwZSA9PSBOTDgwMjExX0lGVFlQRV9NT05JVE9SKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MTk4OT1zdGF0aWMgdm9pZCBtdDc5MjVfbWdkX3ByZXBhcmVfdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTk5Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTk5ODpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xOTk5LVxcdG10NzkyNV9zZXRfcm9jKG12aWYtXFx1MDAzZXBoeSwgXFx1MDAyNm12aWYtXFx1MDAzZWJzc19jb25mLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTIwMTQ9c3RhdGljIHZvaWQgbXQ3OTI1X3ZpZl9jZmdfY2hhbmdlZChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yMDI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoyMDI1OlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTIwMjYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM9MjA2ND1zdGF0aWMgdm9pZCBtdDc5MjVfbGlua19pbmZvX2NoYW5nZWQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjA3NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MjA3NjpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yMDc3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTIxMjM9bXQ3OTI1X2NoYW5nZV92aWZfbGlua3Moc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjE0MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MjE0MTpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yMTQyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTIyMzI9bXQ3OTI1X2NoYW5nZV9zdGFfbGlua3Moc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjI0Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MjI0MzpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yMjQ0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTIzNTQ9c3RhdGljIHZvaWQgbXQ3OTI1X3Jma2lsbF9wb2xsKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTIzNTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjIzNTk6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUocGh5LVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0yMzYwLVxcdHJldCA9IG10NzkyNV9tY3Vfd2ZfcmZfcGluX2N0cmwocGh5KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz0yMzc1PXZvaWQgbXQ3OTI1X2NzYV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowMjozNy4zMDYzMDg3MVoiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNTE4MzU2MTIzMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgTXV0ZXggQWNxdWlzaXRpb24gYW5kIFBvd2VyIE1hbmFnZW1lbnQgaW4gdGhlIE1UNzYgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBjb2RlIGFuZCwgcmlnaHQgb2ZmIHRoZSBiYXQsIGBtdDc5MnhfbXV0ZXhfYWNxdWlyZWAg4oCTIHRoYXQncyBhIG1hY3JvIG9yIGEgZnVuY3Rpb24sIG9idmlvdXNseS4gTmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgbXV0ZXggaXMgYmVpbmcgaGFuZGxlZCBhcm91bmQgcG93ZXIgbWFuYWdlbWVudC4gTGV0IG1lIGxvb2sgYXQgYG10NzZfY29ubmFjX3BtX3dha2VgLi4ubm9wZSwgaXQgZG9lc24ndCBhcHBlYXIgdG8gYWNxdWlyZSB0aGUgbXV0ZXggaXRzZWxmLiBIbW0sIHNvIHdoZXJlJ3MgdGhlIGxvY2tpbmcgaGFwcGVuaW5nPyBBaGEhIGBtdDc2X2Nvbm5hY19tdXRleF9hY3F1aXJlYCDigJMgdGhhdCBvbmUgKmRvZXMqIGFjcXVpcmUgdGhlIG11dGV4IGFuZCB0aGVuIGNhbGxzIHRoZSBwb3dlciBtYW5hZ2VtZW50IHdha2UtdXAgZnVuY3Rpb24sIGBtdDc2X2Nvbm5hY19wbV93YWtlYC4gT2theSwgdGhhdCBtYWtlcyBzZW5zZSwgdGhleSdyZSBsaWtlbHkgY291cGxlZCB0byBhdm9pZCByYWNlIGNvbmRpdGlvbnMuXG5cbkJ1dCBoZXJlJ3MgYSB3cmlua2xlOiBJIHNlZSB0aGF0IGBtdDc5MjFfbWFjX3N0YV9hZGRgIGNhbGxzIGBtdDc2X2Nvbm5hY19wbV93YWtlYCBkaXJlY3RseS4gVGhhdCdzIGEgYml0IG9kZC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2h5IGl0IGJ5cGFzc2VzIHRoZSBtdXRleCBhY3F1aXNpdGlvbiB0aGF0IGlzIHByZXNlbnQgaW4gdGhlIG5vcm1hbCBwb3dlciBtYW5hZ2VtZW50IGZsb3cuIElzIGl0IGFuIG9wdGltaXphdGlvbiwgb3IgaXMgaXQgYSBzaWduIG9mIHBvdGVudGlhbCBzeW5jaHJvbml6YXRpb24gaXNzdWVzP1xuXG5Pa2F5LCBsZXQgbWUgYmFja3RyYWNrIGFuZCBjaGVjayB3aGVyZSBgbXQ3OTJ4X211dGV4X2FjcXVpcmVgIGlzIGRlZmluZWQuIEFoYSwgaXQncyBkZWZpbmVkIGluIGBtdDc5MnguaGAuIEkgbmVlZCB0byByZXZpZXcgdGhhdCBoZWFkZXIgZmlsZSB0byB1bmRlcnN0YW5kIHRoZSBjb250ZXh0IGFuZCBob3cgdGhlIG11dGV4IGlzIGRlY2xhcmVkIGFuZCBtYW5hZ2VkLiBJIG5lZWQgdG8gYmUgc3VyZSB0aGF0IHRoZSBtdXRleCBpcyBiZWluZyB1c2VkIGNvcnJlY3RseSBhY3Jvc3MgYWxsIHRoZSBkaWZmZXJlbnQgYWNjZXNzIHBhdGhzLiBUaGlzIGRpcmVjdCBjYWxsIGJ5IGBtdDc5MjFfbWFjX3N0YV9hZGRgIG5lZWRzIHRvIGJlIGludmVzdGlnYXRlZCBmdXJ0aGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NjUwMiwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowMjo1Mi40ODk4NzI0M1oiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDE3ODIwNTA5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRlZmluZSBtdDc5MnhfbXV0ZXhfYWNxdWlyZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oPTM4MT1zdGF0aWMgaW5saW5lIGJvb2wgbXQ3OTJ4X2RtYV9uZWVkX3JlaW5pdChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaC0zODUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaDozODY6I2RlZmluZSBtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpXFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmgtMzg3LVxcdG10NzZfY29ubmFjX211dGV4X2FjcXVpcmUoXFx1MDAyNihkZXYpLVxcdTAwM2VtdDc2LCBcXHUwMDI2KGRldiktXFx1MDAzZXBtKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowMjo1Mi45MDc2OTcyMDlaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTQxNTM0NDk4OTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXV0ZXggQ29udW5kcnVtIGluIE1UNzkyMSBEcml2ZXIqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdGhhdCBgbXQ3OTJ4X211dGV4X2FjcXVpcmVgIGNhbGxzIGBtdDc2X2Nvbm5hY19tdXRleF9hY3F1aXJlYCwgd2hpY2ggdWx0aW1hdGVseSBsb2NrcyB0aGUgZGV2aWNlIG11dGV4IChgZGV2LVx1MDAzZW11dGV4YCkuIFNvLCBhdCBmaXJzdCBnbGFuY2UsIGBtdDc5MjFfbWFjX3N0YV9hZGRgIGRvZXNuJ3QgZGlyZWN0bHkgYWNxdWlyZSB0aGF0IGRldmljZSBtdXRleC4gVGhhdCdzIGdvb2QuIEJ1dCB0aGVuIEkgcmVtZW1iZXJlZCB0aGF0IGBtdDc5MjFfbWFjX3N0YV9hZGRgIGlzIGNhbGxlZCBmcm9tIHdpdGhpbiBtYWM4MDIxMS4gQW5kIG1hYzgwMjExIGhhcyBpdHMgb3duIHNldCBvZiBtdXRleGVzLCBzbyBpdCB3b3VsZG4ndCBiZSBob2xkaW5nIGBkZXYtXHUwMDNlbXV0ZXhgIGVpdGhlci5cblxuTm93LCB0aGluZ3MgZ2V0IGludGVyZXN0aW5nLiBgbXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZWAgY2FsbHMgYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAsIGFuZCAqdGhhdCogZnVuY3Rpb24gc2VlbXMgdG8gYXNzdW1lIHRoYXQgdGhlIGRldmljZSBtdXRleCBpcyBhbHJlYWR5IGhlbGQuIEFsYXJtIGJlbGxzISBJZiBgbXQ3OTIxX21hY19zdGFfYWRkYCBkb2Vzbid0IGhvbGQgdGhlIG11dGV4LCBhbmQgYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgIGNhbGxzIGBfX210NzkyMV9tY3VfcmVnZF91cGRhdGVgLCB0aGVuIHdlIGhhdmUgYSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb24gYW5kIGEgbWlzc2luZyBtdXRleCBsb2NrLCByaWdodD8gSSBuZWVkIHRvIGRvdWJsZS1jaGVjayBgbXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZWAgbW9yZSBjbG9zZWx5LiBUaGlzIG5lZWRzIGZ1cnRoZXIgaW52ZXN0aWdhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NDcyMTYsIk91dHB1dFRva2VucyI6NTAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MDM6MDcuMDYxMTUwMDlaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk0MTcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uY1wiLFxuICBcIkZpcnN0TGluZVwiOiA3NjUsXG4gIFwiTGluZUNvdW50XCI6IDQ1XG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiA3NjU6XFx0c3RhdGljIHZvaWRcXG4gNzY2OlxcdG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGUoc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwgYm9vbCBpc19hZGQpXFxuIDc2NzpcXHR7XFxuIDc2ODpcXHRcXHRzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKXZpZi1cXHUwMDNlZHJ2X3ByaXY7XFxuIDc2OTpcXHRcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXZpZi1cXHUwMDNlcGh5O1xcbiA3NzA6XFx0XFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IHBoeS1cXHUwMDNlZGV2O1xcbiA3NzE6XFx0XFx0dTMyIHZhbGlkX3ZpZl9udW0gPSAwO1xcbiA3NzI6XFx0XFxuIDc3MzpcXHRcXHRpZWVlODAyMTFfaXRlcmF0ZV9hY3RpdmVfaW50ZXJmYWNlcyhtdDc2X2h3KGRldiksXFxuIDc3NDpcXHRcXHRcXHRcXHRcXHRcXHQgICAgSUVFRTgwMjExX0lGQUNFX0lURVJfUkVTVU1FX0FMTCxcXG4gNzc1OlxcdFxcdFxcdFxcdFxcdFxcdCAgICBtdDc5MjFfY2FsY192aWZfbnVtLCBcXHUwMDI2dmFsaWRfdmlmX251bSk7XFxuIDc3NjpcXHRcXG4gNzc3OlxcdFxcdGlmICh2YWxpZF92aWZfbnVtIFxcdTAwM2UgMSkge1xcbiA3Nzg6XFx0XFx0XFx0cGh5LVxcdTAwM2Vwb3dlcl90eXBlID0gTVRfQVBfREVGQVVMVDtcXG4gNzc5OlxcdFxcdFxcdGdvdG8gb3V0O1xcbiA3ODA6XFx0XFx0fVxcbiA3ODE6XFx0XFxuIDc4MjpcXHRcXHRpZiAoIWlzX2FkZClcXG4gNzgzOlxcdFxcdFxcdHZpZi1cXHUwMDNlYnNzX2NvbmYucG93ZXJfdHlwZSA9IElFRUU4MDIxMV9SRUdfVU5TRVRfQVA7XFxuIDc4NDpcXHRcXG4gNzg1OlxcdFxcdHN3aXRjaCAodmlmLVxcdTAwM2Vic3NfY29uZi5wb3dlcl90eXBlKSB7XFxuIDc4NjpcXHRcXHRjYXNlIElFRUU4MDIxMV9SRUdfU1BfQVA6XFxuIDc4NzpcXHRcXHRcXHRwaHktXFx1MDAzZXBvd2VyX3R5cGUgPSBNVF9BUF9TUDtcXG4gNzg4OlxcdFxcdFxcdGJyZWFrO1xcbiA3ODk6XFx0XFx0Y2FzZSBJRUVFODAyMTFfUkVHX1ZMUF9BUDpcXG4gNzkwOlxcdFxcdFxcdHBoeS1cXHUwMDNlcG93ZXJfdHlwZSA9IE1UX0FQX1ZMUDtcXG4gNzkxOlxcdFxcdFxcdGJyZWFrO1xcbiA3OTI6XFx0XFx0Y2FzZSBJRUVFODAyMTFfUkVHX0xQSV9BUDpcXG4gNzkzOlxcdFxcdFxcdHBoeS1cXHUwMDNlcG93ZXJfdHlwZSA9IE1UX0FQX0xQSTtcXG4gNzk0OlxcdFxcdFxcdGJyZWFrO1xcbiA3OTU6XFx0XFx0Y2FzZSBJRUVFODAyMTFfUkVHX1VOU0VUX0FQOlxcbiA3OTY6XFx0XFx0XFx0cGh5LVxcdTAwM2Vwb3dlcl90eXBlID0gTVRfQVBfVU5TRVQ7XFxuIDc5NzpcXHRcXHRcXHRicmVhaztcXG4gNzk4OlxcdFxcdGRlZmF1bHQ6XFxuIDc5OTpcXHRcXHRcXHRwaHktXFx1MDAzZXBvd2VyX3R5cGUgPSBNVF9BUF9ERUZBVUxUO1xcbiA4MDA6XFx0XFx0XFx0YnJlYWs7XFxuIDgwMTpcXHRcXHR9XFxuIDgwMjpcXHRcXG4gODAzOlxcdG91dDpcXG4gODA0OlxcdFxcdGlmICh2aWYtXFx1MDAzZWJzc19jb25mLmNoYW5yZXEub3Blci5jaGFuLVxcdTAwM2ViYW5kID09IE5MODAyMTFfQkFORF82R0haKVxcbiA4MDU6XFx0XFx0XFx0X19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlKGRldiwgZGV2LVxcdTAwM2VtdDc2LmFscGhhMiwgZGV2LVxcdTAwM2Vjb3VudHJ5X2llX2Vudik7XFxuIDgwNjpcXHR9XFxuIDgwNzpcXHRcXG4gODA4OlxcdGludCBtdDc5MjFfbWFjX3N0YV9hZGQoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbiA4MDk6XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjAzOjA3LjA2MTM0NjI0WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUyOTY2ODIxNTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi5cblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBgbXQ3OTIxX21hY19zdGFfYWRkYCBGdW5jdGlvbioqXG5cbkhtbSwgc28gYG10NzkyMV9tYWNfc3RhX2FkZGAgaXMgKmRlZmluaXRlbHkqIGNhbGxlZCBieSBtYWM4MDIxMSwgd2hpY2ggaXMgZ29vZCB0byBrbm93LCBjb25maXJtaW5nIG15IGluaXRpYWwgaHVuY2guIEJ1dCBub3csIGEgY3J1Y2lhbCBxdWVzdGlvbiBhcmlzZXMuIERvZXMgdGhpcyBmdW5jdGlvbiwgYG10NzkyMV9tYWNfc3RhX2FkZGAsIGhhbmRsZSBpdHMgb3duIG11dGV4IGxvY2tpbmc/IFRoYXTigJlzIGdvaW5nIHRvIGJlIGtleSB0byB1bmRlcnN0YW5kaW5nIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbnMgYW5kIGNvbmN1cnJlbmN5IGlzc3VlcyBpZiBpdCBkb2Vzbid0LiBJZiBtYWM4MDIxMSBjYWxscyB0aGlzIGZ1bmN0aW9uLCBhbmQgYG10NzkyMV9tYWNfc3RhX2FkZGAgZG9lc24ndCBwcm90ZWN0IGl0c2VsZiBpbnRlcm5hbGx5LCB3ZSBoYXZlIGEgcHJvYmxlbS4gSSBiZXR0ZXIgZ28gYmFjayBhbmQgY2hlY2sgdGhlIGNvZGUgZm9yIGBtdDc5MjFfbWFjX3N0YV9hZGRgIGNhcmVmdWxseSwgc3BlY2lmaWNhbGx5IGxvb2tpbmcgYXQgaG93IGl0IGhhbmRsZXMgbG9ja3MuIFRoaXMgaXMgd2hlcmUgdGhlIGRldmlsIGlzIGluIHRoZSBkZXRhaWxzLiBJIG5lZWQgdG8ga25vdyAqZXhhY3RseSogd2hhdCB0aGlzIGZ1bmN0aW9uIGRvZXMgYW5kIGhvdyBpdCBlbnN1cmVzIHRocmVhZCBzYWZldHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ4Njg3LCJPdXRwdXRUb2tlbnMiOjUwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjQsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowMzoxMi4zNTgwMzE5WiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4OTQ2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmNcIixcbiAgXCJGaXJzdExpbmVcIjogODA4LFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgODA4OlxcdGludCBtdDc5MjFfbWFjX3N0YV9hZGQoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbiA4MDk6XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXFxuIDgxMDpcXHR7XFxuIDgxMTpcXHRcXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc5MnhfZGV2LCBtdDc2KTtcXG4gODEyOlxcdFxcdHN0cnVjdCBtdDc5Mnhfc3RhICptc3RhID0gKHN0cnVjdCBtdDc5Mnhfc3RhICopc3RhLVxcdTAwM2VkcnZfcHJpdjtcXG4gODEzOlxcdFxcdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVxcdTAwM2VkcnZfcHJpdjtcXG4gODE0OlxcdFxcdGludCByZXQsIGlkeDtcXG4gODE1OlxcdFxcbiA4MTY6XFx0XFx0aWYgKHN0YS1cXHUwMDNlYWlkIFxcdTAwM2UgTVQ3OTIxX01BWF9BSUQpXFxuIDgxNzpcXHRcXHRcXHRyZXR1cm4gLUVOT0VOVDtcXG4gODE4OlxcdFxcbiA4MTk6XFx0XFx0aWR4ID0gbXQ3Nl93Y2lkX2FsbG9jKGRldi1cXHUwMDNlbXQ3Ni53Y2lkX21hc2ssIE1UNzkyeF9XVEJMX1NUQSAtIDEpO1xcbiA4MjA6XFx0XFx0aWYgKGlkeCBcXHUwMDNjIDApXFxuIDgyMTpcXHRcXHRcXHRyZXR1cm4gLUVOT1NQQztcXG4gODIyOlxcdFxcbiA4MjM6XFx0XFx0SU5JVF9MSVNUX0hFQUQoXFx1MDAyNm1zdGEtXFx1MDAzZWRlZmxpbmsud2NpZC5wb2xsX2xpc3QpO1xcbiA4MjQ6XFx0XFx0bXN0YS1cXHUwMDNldmlmID0gbXZpZjtcXG4gODI1OlxcdFxcdG1zdGEtXFx1MDAzZWRlZmxpbmsud2NpZC5zdGEgPSAxO1xcbiA4MjY6XFx0XFx0bXN0YS1cXHUwMDNlZGVmbGluay53Y2lkLmlkeCA9IGlkeDtcXG4gODI3OlxcdFxcdG1zdGEtXFx1MDAzZWRlZmxpbmsud2NpZC5waHlfaWR4ID0gbXZpZi1cXHUwMDNlYnNzX2NvbmYubXQ3Ni5iYW5kX2lkeDtcXG4gODI4OlxcdFxcdG1zdGEtXFx1MDAzZWRlZmxpbmsud2NpZC50eF9pbmZvIHw9IE1UX1dDSURfVFhfSU5GT19TRVQ7XFxuIDgyOTpcXHRcXHRtc3RhLVxcdTAwM2VkZWZsaW5rLmxhc3RfdHhzID0gamlmZmllcztcXG4gODMwOlxcdFxcdG1zdGEtXFx1MDAzZWRlZmxpbmsuc3RhID0gbXN0YTtcXG4gODMxOlxcdFxcbiA4MzI6XFx0XFx0aWYgKHN0YS1cXHUwMDNldGRscylcXG4gODMzOlxcdFxcdFxcdHNldF9iaXQoTVRfV0NJRF9GTEFHX1RETFNfUEVFUiwgXFx1MDAyNm1zdGEtXFx1MDAzZWRlZmxpbmsud2NpZC5mbGFncyk7XFxuIDgzNDpcXHRcXG4gODM1OlxcdFxcdHJldCA9IG10NzZfY29ubmFjX3BtX3dha2UoXFx1MDAyNmRldi1cXHUwMDNlbXBoeSwgXFx1MDAyNmRldi1cXHUwMDNlcG0pO1xcbiA4MzY6XFx0XFx0aWYgKHJldClcXG4gODM3OlxcdFxcdFxcdHJldHVybiByZXQ7XFxuIDgzODpcXHRcXG4gODM5OlxcdFxcdGlmICh2aWYtXFx1MDAzZXR5cGUgPT0gTkw4MDIxMV9JRlRZUEVfU1RBVElPTilcXG4gODQwOlxcdFxcdFxcdG12aWYtXFx1MDAzZXdlcF9zdGEgPSBtc3RhO1xcbiA4NDE6XFx0XFxuIDg0MjpcXHRcXHRtdDc5MjFfbWFjX3d0YmxfdXBkYXRlKGRldiwgaWR4LFxcbiA4NDM6XFx0XFx0XFx0XFx0ICAgICAgIE1UX1dUQkxfVVBEQVRFX0FETV9DT1VOVF9DTEVBUik7XFxuIDg0NDpcXHRcXG4gODQ1OlxcdFxcdHJldCA9IG10NzkyMV9tY3Vfc3RhX3VwZGF0ZShkZXYsIHN0YSwgdmlmLCB0cnVlLFxcbiA4NDY6XFx0XFx0XFx0XFx0XFx0ICAgIE1UNzZfU1RBX0lORk9fU1RBVEVfTk9ORSk7XFxuIDg0NzpcXHRcXHRpZiAocmV0KVxcbiA4NDg6XFx0XFx0XFx0cmV0dXJuIHJldDtcXG4gODQ5OlxcdFxcbiA4NTA6XFx0XFx0bXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZSh2aWYsIHRydWUpO1xcbiA4NTE6XFx0XFxuIDg1MjpcXHRcXHRtdDc2X2Nvbm5hY19wb3dlcl9zYXZlX3NjaGVkKFxcdTAwMjZkZXYtXFx1MDAzZW1waHksIFxcdTAwMjZkZXYtXFx1MDAzZXBtKTtcXG4gODUzOlxcdFxcbiA4NTQ6XFx0XFx0cmV0dXJuIDA7XFxuIDg1NTpcXHR9XFxuIDg1NjpcXHRFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjFfbWFjX3N0YV9hZGQpO1xcbiA4NTc6XFx0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjAzOjEyLjM1ODIyMzU3WiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2MDkxMzU2MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBtdDc5MjEgTWFjIFN0YXRpb24gQWRkaXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gZGlnZ2luZyBpbnRvIHRoaXMgYG10NzkyMV9tYWNfc3RhX2FkZGAgZnVuY3Rpb24gYW5kIGl0J3MgYXNzaWduZWQgdG8gdGhlIGBzdGFfYWRkYCBjYWxsYmFjaywgd2hpY2ggbWFrZXMgc2Vuc2UuIE15IGltbWVkaWF0ZSBuZXh0IHN0ZXAgaXMgdG8gcmVjYWxsIGhvdyB0aGF0IGNhbGxiYWNrIGlzIGludm9rZWQgd2l0aGluIHRoZSBgbXQ3NmAgZnJhbWV3b3JrLiBSaWdodCwgdGhlIGBzdGFfYWRkYCBjYWxsYmFjayBpcyBjYWxsZWQgZnJvbSBgbXQ3Nl9tYWNfc3RhX2FkZGAuIE5vdywgSSBuZWVkIHRvIGNvbmZpcm0gdGhlIGltcGxlbWVudGF0aW9uIGFuZCBhbnkgbnVhbmNlcywgc28gSSdtIGhlYWRpbmcgc3RyYWlnaHQgdG8gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuY2AgdG8gZXhhbWluZSBgbXQ3Nl9tYWNfc3RhX2FkZGAuIEkgZXhwZWN0IHRvIGZpbmQgdGhlIGFjdHVhbCBjYWxsIHRoZXJlLCBhbmQgSSdsbCBiZSBsb29raW5nIGZvciBhbnkgY29udGV4dC1kZXBlbmRlbnQgbG9naWMgb3IgcG90ZW50aWFsIGFyZWFzIG9mIGNvbmNlcm4gZHVyaW5nIHRoaXMgc3RhdGlvbiBhZGRpdGlvbiBwcm9jZXNzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0OTk3OCwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjkzLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MDM6MTUuOTY3MzYyODk2WiIsIlNlcSI6MjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzYwNTUxNjcsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzZfbWFjX3N0YV9hZGRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjAzOjE2LjQwMzQyNTg4M1oiLCJTZXEiOjI5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxOTg2MTQ2Nzk0MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzcywgYXMgaWYgaXQgd2VyZSBteSBvd246XG5cbioqQ29ubmVjdGluZyB0aGUgRG90czogUHJvYmUgRnVuY3Rpb24gYW5kIERyaXZlciBPcGVyYXRpb25zKipcblxuT2theSwgbGV0IG1lIHNlZS4uLiBJJ20gdHJhY2luZyB0aGlzIGBtdDc5MjFgIGRyaXZlciBpbml0aWFsaXphdGlvbi4gVGhlIGBzdGFfYWRkYCBmdW5jdGlvbi4uLiB3aGVyZSBkb2VzICp0aGF0KiBnZXQgY2FsbGVkIGZyb20/IFJpZ2h0LCBpdCdzIGJlaW5nIGFzc2lnbmVkIHRvIHRoZSBgc3RhX2FkZGAgZmllbGQgd2l0aGluIHRoZSBgbXQ3Nl9kcml2ZXJfb3BzYCBzdHJ1Y3R1cmUuIEFuZCB0aGF0IHN0cnVjdHVyZSwgYWhhLCB0aGF0J3MgYmVpbmcgdXNlZCB3aXRoaW4gdGhlIGBtdDc5MjFfcGNpX3Byb2JlYCBmdW5jdGlvbi4gU28sIHRoZSBQQ0kgcHJvYmUgZnVuY3Rpb24gaXMgZXNzZW50aWFsbHkgdGhlIGVudHJ5IHBvaW50IGZvciBkZXRlY3RpbmcgdGhlIGRldmljZSwgYW5kIHRoZW4gaXQncyB1c2luZyB0aGUgc3RhbmRhcmQgYG10NzZfZHJpdmVyX29wc2Agc3RydWN0dXJlLCB3aGljaCBoYXMgdGhlIGBzdGFfYWRkYCBmdW5jdGlvbiBob29rLiBHb3QgaXQsIHNvIGl0J3MgYWxsIHBhcnQgb2YgdGhlIHN0YW5kYXJkIGBtdDc2YCBmcmFtZXdvcmsuIFRoZSBwcm9iZSBmdW5jdGlvbiBzZXRzIHVwIHRoZSBkZXZpY2UsIHRoZW4gdGhlIGBtdDc2YCBmcmFtZXdvcmsgaGFuZGxlcyB0aGUgcmVzdC4gVGhpcyBjb25maXJtcyBteSB1bmRlcnN0YW5kaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MDMxMywiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjAzOjM2LjI2NDg5NjYzNFoiLCJTZXEiOjMwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ5MjE1NjI1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0YV9hZGRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jPTE1NzU9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYzoxNTc2Om10NzZfc3RhX2FkZChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtMTU3Ny1cXHQgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtMTU4Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM6MTU4NzpcXHRyZXQgPSBkZXYtXFx1MDAzZWRydi1cXHUwMDNlc3RhX2FkZChkZXYsIHZpZiwgc3RhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtMTU4OC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jPTE2NTE9aW50IG10NzZfc3RhX3N0YXRlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTE2NjUtXFx0ICAgIG5ld19zdGF0ZSA9PSBJRUVFODAyMTFfU1RBX05PTkUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjE2NjY6XFx0XFx0cmV0dXJuIG10NzZfc3RhX2FkZChwaHksIHZpZiwgc3RhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtMTY2Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTU0Mz1zdHJ1Y3QgbXQ3Nl9kcml2ZXJfb3BzIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTU3Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDo1Nzg6XFx0aW50ICgqc3RhX2FkZCkoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtNTc5LVxcdFxcdCAgICAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYz04PWNvbnN0IHN0cnVjdCBtdDc2X2RyaXZlcl9vcHMgbXQ3NjAzX2Rydl9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMTYtXFx0LnN0YV9wcyA9IG10NzYwM19zdGFfcHMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjE3OlxcdC5zdGFfYWRkID0gbXQ3NjAzX3N0YV9hZGQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTE4LVxcdC5zdGFfZXZlbnQgPSBtdDc2MDNfc3RhX2V2ZW50LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jPTMyNj1pbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tYWluLmM6MzI3Om10NzYwM19zdGFfYWRkKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tYWluLmMtMzI4LVxcdCAgICAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbXQ3NjAzLmg9MjQ2PXZvaWQgbXQ3NjAzX3N0YV9wcyhzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsIGJvb2wgcHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL210NzYwMy5oOjI0NzppbnQgbXQ3NjAzX3N0YV9hZGQoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL210NzYwMy5oLTI0OC1cXHRcXHQgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYz0yNDY9c3RhdGljIHZvaWQgbXQ3NjE1X3JlbW92ZV9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmMtMjU3LVxcdG10NzYxNV9tY3VfYWRkX2Jzc19pbmZvKHBoeSwgdmlmLCBOVUxMLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jOjI1ODpcXHRtdDc2MTVfbWN1X3N0YV9hZGQocGh5LCB2aWYsIE5VTEwsIGZhbHNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmMtMjU5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jPTU2Nz1zdGF0aWMgdm9pZCBtdDc2MTVfYnNzX2luZm9fY2hhbmdlZChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYy01ODctXFx0XFx0bXQ3NjE1X21jdV9hZGRfYnNzX2luZm8ocGh5LCB2aWYsIE5VTEwsIHRydWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYzo1ODg6XFx0XFx0bXQ3NjE1X21jdV9zdGFfYWRkKHBoeSwgdmlmLCBOVUxMLCB0cnVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmMtNTg5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jPTYyMz1tdDc2MTVfY2hhbm5lbF9zd2l0Y2hfYmVhY29uKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jLTYzMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmM6NjM0OmludCBtdDc2MTVfbWFjX3N0YV9hZGQoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYy02MzUtXFx0XFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmMtNjY1LVxcdFxcdFxcdCAgICAgICBNVF9XVEJMX1VQREFURV9BRE1fQ09VTlRfQ0xFQVIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYzo2NjY6XFx0ZXJyID0gbXQ3NjE1X21jdV9zdGFfYWRkKFxcdTAwMjZkZXYtXFx1MDAzZXBoeSwgdmlmLCBzdGEsIHRydWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYy02NjctXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYy02NzMtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYzo2NzQ6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NjE1X21hY19zdGFfYWRkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmMtNjc1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYz02NzY9dm9pZCBtdDc2MTVfbWFjX3N0YV9yZW1vdmUoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jLTY4OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmM6Njg5OlxcdG10NzYxNV9tY3Vfc3RhX2FkZChcXHUwMDI2ZGV2LVxcdTAwM2VwaHksIHZpZiwgc3RhLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jLTY5MC1cXHRtdDc2MTVfbWFjX3d0YmxfdXBkYXRlKGRldiwgbXN0YS1cXHUwMDNld2NpZC5pZHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmM9ODYyPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmM6ODYzOm10NzYxNV9zdGFfYWRkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYy04NjQtXFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmM9MTMxOD1jb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc2MTVfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWFpbi5jLTEzMzEtXFx0LmJzc19pbmZvX2NoYW5nZWQgPSBtdDc2MTVfYnNzX2luZm9fY2hhbmdlZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tYWluLmM6MTMzMjpcXHQuc3RhX2FkZCA9IG10NzYxNV9zdGFfYWRkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21haW4uYy0xMzMzLVxcdC5zdGFfcmVtb3ZlID0gbXQ3NjE1X3N0YV9yZW1vdmUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tY3UuYz04Mzk9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21jdS5jOjg0MDptdDc2MTVfbWN1X3d0Ymxfc3RhX2FkZChzdHJ1Y3QgbXQ3NjE1X3BoeSAqcGh5LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21jdS5jLTg0MS1cXHRcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLCBib29sIGVuYWJsZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21jdS5jLTg2MS1cXHRpZiAoIXN0YSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21jdS5jOjg2MjpcXHRcXHRpZiAobXZpZi1cXHUwMDNlc3RhX2FkZGVkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21jdS5jLTg2My1cXHRcXHRcXHRuZXdfZW50cnkgPSBmYWxzZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tY3UuYy04NjQtXFx0XFx0ZWxzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21jdS5jOjg2NTpcXHRcXHRcXHRtdmlmLVxcdTAwM2VzdGFfYWRkZWQgPSB0cnVlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21jdS5jLTg2Ni1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tY3UuYz05MTc9c3RhdGljIGNvbnN0IHN0cnVjdCBtdDc2MTVfbWN1X29wcyB3dGJsX3VwZGF0ZV9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tY3UuYy05MjMtXFx0LmFkZF9yeF9iYSA9IG10NzYxNV9tY3Vfd3RibF9yeF9iYSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tY3UuYzo5MjQ6XFx0LnN0YV9hZGQgPSBtdDc2MTVfbWN1X3d0Ymxfc3RhX2FkZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tY3UuYy05MjUtXFx0LnNldF9kcnZfY3RybCA9IG10NzYxNV9tY3VfZHJ2X3BtY3RybCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21jdS5jPTEwMTc9c3RhdGljIGNvbnN0IHN0cnVjdCBtdDc2MTVfbWN1X29wcyBzdGFfdXBkYXRlX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21jdS5jLTEwMjMtXFx0LmFkZF9yeF9iYSA9IG10NzYxNV9tY3Vfc3RhX3J4X2JhLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21jdS5jOjEwMjQ6XFx0LnN0YV9hZGQgPSBtdDc2MTVfbWN1X2FkZF9zdGEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWN1LmMtMTAyNS1cXHQuc2V0X2Rydl9jdHJsID0gbXQ3NjE1X21jdV9kcnZfcG1jdHJsLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWN1LmM9MTIwOD1zdGF0aWMgY29uc3Qgc3RydWN0IG10NzYxNV9tY3Vfb3BzIHVuaV91cGRhdGVfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWN1LmMtMTIxNC1cXHQuYWRkX3J4X2JhID0gbXQ3NjE1X21jdV91bmlfcnhfYmEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWN1LmM6MTIxNTpcXHQuc3RhX2FkZCA9IG10NzYxNV9tY3VfdW5pX2FkZF9zdGEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbWN1LmMtMTIxNi1cXHQuc2V0X2Rydl9jdHJsID0gbXQ3NjE1X21jdV9scF9kcnZfcG1jdHJsLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbW1pby5jPTE2Nj1pbnQgbXQ3NjE1X21taW9fcHJvYmUoc3RydWN0IGRldmljZSAqcGRldiwgdm9pZCBfX2lvbWVtICptZW1fYmFzZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21taW8uYy0xODEtXFx0XFx0LnJ4X3BvbGxfY29tcGxldGUgPSBtdDc2MTVfcnhfcG9sbF9jb21wbGV0ZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tbWlvLmM6MTgyOlxcdFxcdC5zdGFfYWRkID0gbXQ3NjE1X21hY19zdGFfYWRkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21taW8uYy0xODMtXFx0XFx0LnN0YV9yZW1vdmUgPSBtdDc2MTVfbWFjX3N0YV9yZW1vdmUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaD0xNDI9c3RydWN0IG10NzYxNV92aWYge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbXQ3NjE1LmgtMTQ0LVxcdHN0cnVjdCBtdDc2MTVfc3RhIHN0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaDoxNDU6XFx0Ym9vbCBzdGFfYWRkZWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbXQ3NjE1LmgtMTQ2LX07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaD0xNTc9c3RydWN0IG10NzYxNV9waHkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbXQ3NjE1LmgtMjA5LSNkZWZpbmUgbXQ3NjE1X21jdV9hZGRfcnhfYmEoZGV2LCAuLi4pXFx0KGRldiktXFx1MDAzZW1jdV9vcHMtXFx1MDAzZWFkZF9yeF9iYSgoZGV2KSwgX19WQV9BUkdTX18pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbXQ3NjE1Lmg6MjEwOiNkZWZpbmUgbXQ3NjE1X21jdV9zdGFfYWRkKHBoeSwgLi4uKVxcdCgocGh5KS1cXHUwMDNlZGV2KS1cXHUwMDNlbWN1X29wcy1cXHUwMDNlc3RhX2FkZCgocGh5KSwgIF9fVkFfQVJHU19fKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oLTIxMS0jZGVmaW5lIG10NzYxNV9tY3VfYWRkX2Rldl9pbmZvKHBoeSwgLi4uKSAoKHBoeSktXFx1MDAzZWRldiktXFx1MDAzZW1jdV9vcHMtXFx1MDAzZWFkZF9kZXZfaW5mbygocGh5KSwgIF9fVkFfQVJHU19fKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbXQ3NjE1Lmg9MjE4PXN0cnVjdCBtdDc2MTVfbWN1X29wcyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaC0yMjQtXFx0XFx0XFx0IGJvb2wgZW5hYmxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaDoyMjU6XFx0aW50ICgqc3RhX2FkZCkoc3RydWN0IG10NzYxNV9waHkgKnBoeSwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaC0yMjYtXFx0XFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsIGJvb2wgZW5hYmxlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oPTUwNT12b2lkIG10NzYxNV9xdWV1ZV9yeF9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCBlbnVtIG10NzZfcnhxX2lkIHEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbXQ3NjE1LmgtNTA2LVxcdFxcdFxcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgKmluZm8pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oOjUwNzppbnQgbXQ3NjE1X21hY19zdGFfYWRkKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaC01MDgtXFx0XFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jPTc2PXN0YXRpYyBpbnQgbXQ3NjYzc19wcm9iZShzdHJ1Y3Qgc2Rpb19mdW5jICpmdW5jLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jLTg2LVxcdFxcdC5yeF9jaGVjayA9IG10NzYxNV9yeF9jaGVjayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmM6ODc6XFx0XFx0LnN0YV9hZGQgPSBtdDc2MTVfbWFjX3N0YV9hZGQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jLTg4LVxcdFxcdC5zdGFfcmVtb3ZlID0gbXQ3NjE1X21hY19zdGFfcmVtb3ZlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM9MTEyPXN0YXRpYyBpbnQgbXQ3NjYzdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0xMjItXFx0XFx0LnJ4X2NoZWNrID0gbXQ3NjE1X3J4X2NoZWNrLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jOjEyMzpcXHRcXHQuc3RhX2FkZCA9IG10NzYxNV9tYWNfc3RhX2FkZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0xMjQtXFx0XFx0LnN0YV9yZW1vdmUgPSBtdDc2MTVfbWFjX3N0YV9yZW1vdmUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYz0xNTQ9bXQ3NngwZV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmMtMTY4LVxcdFxcdC5zdGFfcHMgPSBtdDc2eDAyX3N0YV9wcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYzoxNjk6XFx0XFx0LnN0YV9hZGQgPSBtdDc2eDAyX3N0YV9hZGQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmMtMTcwLVxcdFxcdC5zdGFfcmVtb3ZlID0gbXQ3NngwMl9zdGFfcmVtb3ZlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM9MjEzPXN0YXRpYyBpbnQgbXQ3NngwdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0yMjYtXFx0XFx0LnN0YV9wcyA9IG10NzZ4MDJfc3RhX3BzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjIyNzpcXHRcXHQuc3RhX2FkZCA9IG10NzZ4MDJfc3RhX2FkZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0yMjgtXFx0XFx0LnN0YV9yZW1vdmUgPSBtdDc2eDAyX3N0YV9yZW1vdmUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDIuaD0xNTI9dm9pZCBtdDc2eDAyX2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDIuaC0xNTQtXFx0XFx0XFx0ICAgICAgdW5zaWduZWQgaW50ICp0b3RhbF9mbGFncywgdTY0IG11bHRpY2FzdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyLmg6MTU1OmludCBtdDc2eDAyX3N0YV9hZGQoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMi5oLTE1Ni1cXHRcXHQgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MDJfdXRpbC5jPTIzNj1FWFBPUlRfU1lNQk9MX0dQTChtdDc2eDAyX2NvbmZpZ3VyZV9maWx0ZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmMtMjM3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmM6MjM4OmludCBtdDc2eDAyX3N0YV9hZGQoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmMtMjM5LVxcdFxcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3V0aWwuYy0yNjQtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwMl91dGlsLmM6MjY1OkVYUE9SVF9TWU1CT0xfR1BMKG10NzZ4MDJfc3RhX2FkZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAyX3V0aWwuYy0yNjYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYz0yMD1tdDc2eDJlX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy0zNC1cXHRcXHQuc3RhX3BzID0gbXQ3NngwMl9zdGFfcHMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6MzU6XFx0XFx0LnN0YV9hZGQgPSBtdDc2eDAyX3N0YV9hZGQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMzYtXFx0XFx0LnN0YV9yZW1vdmUgPSBtdDc2eDAyX3N0YV9yZW1vdmUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYz0zMj1zdGF0aWMgaW50IG10NzZ4MnVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy00NS1cXHRcXHQuc3RhX3BzID0gbXQ3NngwMl9zdGFfcHMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmM6NDY6XFx0XFx0LnN0YV9hZGQgPSBtdDc2eDAyX3N0YV9hZGQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmMtNDctXFx0XFx0LnN0YV9yZW1vdmUgPSBtdDc2eDAyX3N0YV9yZW1vdmUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kZWJ1Z2ZzLmM9MTQ3Nz1ERUZJTkVfU0hPV19BVFRSSUJVVEUobXQ3OTE1X3F1ZXVlcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5jLTE0NzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZGVidWdmcy5jOjE0Nzk6dm9pZCBtdDc5MTVfc3RhX2FkZF9kZWJ1Z2ZzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RlYnVnZnMuYy0xNDgwLVxcdFxcdFxcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLCBzdHJ1Y3QgZGVudHJ5ICpkaXIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM9NzMxPW10NzkxNV9jaGFubmVsX3N3aXRjaF9iZWFjb24oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtNzQxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYzo3NDI6aW50IG10NzkxNV9tYWNfc3RhX2FkZChzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTc0My1cXHRcXHQgICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYz03NzU9c3RydWN0IGRyb3Bfc3RhX2l0ZXIge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTc3OC1cXHRzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYzo3Nzk6XFx0dTggc3RhX2FkZHJbRVRIX0FMRU5dO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy03ODAtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYz03ODM9X19tdDc5MTVfZHJvcF9zdGEodm9pZCAqcHRyLCB1OCAqbWFjLCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTc5MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6NzkyOlxcdHN0YSA9IGllZWU4MDIxMV9maW5kX3N0YV9ieV9pZmFkZHIoZGF0YS1cXHUwMDNlaHcsIGRhdGEtXFx1MDAzZXN0YV9hZGRyLCBtYWMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYy03OTMtXFx0aWYgKCFzdGEpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM9ODAzPW10NzkxNV9kcm9wX290aGVyX3N0YShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTgxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM6ODE2OlxcdG1lbWNweShkYXRhLnN0YV9hZGRyLCBzdGEtXFx1MDAzZWFkZHIsIEVUSF9BTEVOKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMtODE3LVxcdGllZWU4MDIxMV9pdGVyYXRlX2FjdGl2ZV9pbnRlcmZhY2VzKGRhdGEuaHcsIDAsIF9fbXQ3OTE1X2Ryb3Bfc3RhLCBcXHUwMDI2ZGF0YSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmM9MTc2NT1jb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc5MTVfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTE4MTUtI2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jOjE4MTY6XFx0LnN0YV9hZGRfZGVidWdmcyA9IG10NzkxNV9zdGFfYWRkX2RlYnVnZnMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFpbi5jLTE4MTctI2VuZGlmXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM9OTE3PXN0cnVjdCBtdDc5MTVfZGV2ICptdDc5MTVfbW1pb19wcm9iZShzdHJ1Y3QgZGV2aWNlICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTkzMy1cXHRcXHQucnhfcG9sbF9jb21wbGV0ZSA9IG10NzkxNV9yeF9wb2xsX2NvbXBsZXRlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYzo5MzQ6XFx0XFx0LnN0YV9hZGQgPSBtdDc5MTVfbWFjX3N0YV9hZGQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTkzNS1cXHRcXHQuc3RhX2V2ZW50ID0gbXQ3OTE1X21hY19zdGFfZXZlbnQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUuaD01ODE9dm9pZCBtdDc5MTVfbWFjX3NldF90aW1pbmcoc3RydWN0IG10NzkxNV9waHkgKnBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1Lmg6NTgyOmludCBtdDc5MTVfbWFjX3N0YV9hZGQoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oLTU4My1cXHRcXHQgICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUuaD02MTc9Ym9vbCBtdDc5MTVfZGVidWdmc19yeF9sb2coc3RydWN0IG10NzkxNV9kZXYgKmRldiwgY29uc3Qgdm9pZCAqZGF0YSwgaW50IGxlbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1LmgtNjE4LSNpZmRlZiBDT05GSUdfTUFDODAyMTFfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oOjYxOTp2b2lkIG10NzkxNV9zdGFfYWRkX2RlYnVnZnMoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1LmgtNjIwLVxcdFxcdFxcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLCBzdHJ1Y3QgZGVudHJ5ICpkaXIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTc2Nj1tdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlKHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsIGJvb2wgaXNfYWRkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTgwNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6ODA4OmludCBtdDc5MjFfbWFjX3N0YV9hZGQoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy04MDktXFx0XFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtODU1LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6ODU2OkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyMV9tYWNfc3RhX2FkZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTg1Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oPTI2ND1ib29sIG10NzkyMV9tYWNfd3RibF91cGRhdGUoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgaW50IGlkeCwgdTMyIG1hc2spO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oOjI2NTppbnQgbXQ3OTIxX21hY19zdGFfYWRkKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaC0yNjYtXFx0XFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM9MjU5PXN0YXRpYyBpbnQgbXQ3OTIxX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jLTI3NS1cXHRcXHQucnhfcG9sbF9jb21wbGV0ZSA9IG10NzkyeF9yeF9wb2xsX2NvbXBsZXRlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jOjI3NjpcXHRcXHQuc3RhX2FkZCA9IG10NzkyMV9tYWNfc3RhX2FkZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYy0yNzctXFx0XFx0LnN0YV9ldmVudCA9IG10NzkyMV9tYWNfc3RhX2V2ZW50LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jPTkwPXN0YXRpYyBpbnQgbXQ3OTIxc19wcm9iZShzdHJ1Y3Qgc2Rpb19mdW5jICpmdW5jLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jLTEwMy1cXHRcXHQucnhfY2hlY2sgPSBtdDc5MjFfcnhfY2hlY2ssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jOjEwNDpcXHRcXHQuc3RhX2FkZCA9IG10NzkyMV9tYWNfc3RhX2FkZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvLmMtMTA1LVxcdFxcdC5zdGFfZXZlbnQgPSBtdDc5MjFfbWFjX3N0YV9ldmVudCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jPTE1MD1zdGF0aWMgaW50IG10NzkyMXVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMTY0LVxcdFxcdC5yeF9jaGVjayA9IG10NzkyMV9yeF9jaGVjayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYzoxNjU6XFx0XFx0LnN0YV9hZGQgPSBtdDc5MjFfbWFjX3N0YV9hZGQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMTY2LVxcdFxcdC5zdGFfZXZlbnQgPSBtdDc5MjFfbWFjX3N0YV9ldmVudCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYz04NTk9bXQ3OTI1X2dldF9yYXRlc190YWJsZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy04ODYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjg4NzpzdGF0aWMgaW50IG10NzkyNV9tYWNfbGlua19zdGFfYWRkKHN0cnVjdCBtdDc2X2RldiAqbWRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtODg4LVxcdFxcdFxcdFxcdCAgIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTAyNy0vKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxMDI4OiAqIEhvc3Qtb25seSB1bndpbmQgZm9yIHN0YV9hZGRfbGlua3MoKSBmYWlsdXJlcy5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMTAyOS0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTEwNjY9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxMDY3Om10NzkyNV9tYWNfc3RhX2FkZF9saW5rcyhzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xMDY4LVxcdFxcdFxcdCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLCB1bnNpZ25lZCBsb25nIG5ld19saW5rcylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xMDk1LVxcdFxcdGxpbmtfc3RhID0gbXQ3OTJ4X3N0YV90b19saW5rX3N0YSh2aWYsIHN0YSwgbGlua19pZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjEwOTY6XFx0XFx0ZXJyID0gbXQ3OTI1X21hY19saW5rX3N0YV9hZGQoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NiwgdmlmLCBsaW5rX3N0YSwgbWxpbmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xMDk3LVxcdFxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xMTE3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYzoxMTE4OmludCBtdDc5MjVfbWFjX3N0YV9hZGQoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xMTE5LVxcdFxcdCAgICAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jLTExMzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjExMzQ6XFx0XFx0ZXJyID0gbXQ3OTI1X21hY19zdGFfYWRkX2xpbmtzKGRldiwgdmlmLCBzdGEsIHN0YS1cXHUwMDNldmFsaWRfbGlua3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xMTM1LVxcdH0gZWxzZSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jOjExMzY6XFx0XFx0ZXJyID0gbXQ3OTI1X21hY19saW5rX3N0YV9hZGQobWRldiwgdmlmLCBcXHUwMDI2c3RhLVxcdTAwM2VkZWZsaW5rLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xMTM3LVxcdFxcdFxcdFxcdFxcdCAgICAgIFxcdTAwMjZtc3RhLVxcdTAwM2VkZWZsaW5rKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xMTQxLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MTE0MjpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjVfbWFjX3N0YV9hZGQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L21haW4uYy0xMTQzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvbWFpbi5jPTIyMzI9bXQ3OTI1X2NoYW5nZV9zdGFfbGlua3Moc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjI0OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmM6MjI0OTpcXHRlcnIgPSBtdDc5MjVfbWFjX3N0YV9hZGRfbGlua3MoZGV2LCB2aWYsIHN0YSwgYWRkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tYWluLmMtMjI1MC1cXHRpZiAoZXJyIFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L210NzkyNS5oPTI5Mz1pbnQgbXQ3OTI1X21hY19pbml0KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L210NzkyNS5oOjI5NDppbnQgbXQ3OTI1X21hY19zdGFfYWRkKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9tdDc5MjUuaC0yOTUtXFx0XFx0ICAgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmM9MzEzPXN0YXRpYyBpbnQgbXQ3OTI1X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jLTMyOS1cXHRcXHQucnhfcG9sbF9jb21wbGV0ZSA9IG10NzkyeF9yeF9wb2xsX2NvbXBsZXRlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jOjMzMDpcXHRcXHQuc3RhX2FkZCA9IG10NzkyNV9tYWNfc3RhX2FkZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYy0zMzEtXFx0XFx0LnN0YV9ldmVudCA9IG10NzkyNV9tYWNfc3RhX2V2ZW50LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmM9MTQzPXN0YXRpYyBpbnQgbXQ3OTI1dV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYy0xNTctXFx0XFx0LnJ4X2NoZWNrID0gbXQ3OTI1X3J4X2NoZWNrLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jOjE1ODpcXHRcXHQuc3RhX2FkZCA9IG10NzkyNV9tYWNfc3RhX2FkZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYy0xNTktXFx0XFx0LnN0YV9ldmVudCA9IG10NzkyNV9tYWNfc3RhX2V2ZW50LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTk4Mz1ERUZJTkVfU0hPV19BVFRSSUJVVEUobXQ3OTk2X3F1ZXVlcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTk4NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6OTg1OnZvaWQgbXQ3OTk2X3N0YV9hZGRfZGVidWdmcyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTg2LVxcdFxcdFxcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLCBzdHJ1Y3QgZGVudHJ5ICpkaXIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MTA2ND1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBmb3BzX2ZpeGVkX3JhdGUgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTA3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTA3MTp2b2lkIG10Nzk5Nl9saW5rX3N0YV9hZGRfZGVidWdmcyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTA3Mi1cXHRcXHRcXHRcXHQgc3RydWN0IGllZWU4MDIxMV9saW5rX3N0YSAqbGlua19zdGEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM9MTI1OD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jOjEyNTk6bXQ3OTk2X21hY19zdGFfYWRkX2xpbmtzKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jLTEyNjAtXFx0XFx0XFx0IHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsIHVuc2lnbmVkIGxvbmcgbmV3X2xpbmtzKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jPTEzMjA9bXQ3OTk2X21hY19zdGFfY2hhbmdlX2xpbmtzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jLTEzMzEtXFx0bXQ3OTk2X21hY19zdGFfcmVtb3ZlX2xpbmtzKGRldiwgdmlmLCBzdGEsIHJlbSwgZmFsc2UpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYzoxMzMyOlxcdHJldCA9IG10Nzk5Nl9tYWNfc3RhX2FkZF9saW5rcyhkZXYsIHZpZiwgc3RhLCBhZGQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYy0xMzMzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jPTEzMzk9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYzoxMzQwOm10Nzk5Nl9tYWNfc3RhX2FkZChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYy0xMzQxLVxcdFxcdCAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmMtMTM1Mi1cXHRtc3RhLVxcdTAwM2V2aWYgPSBtdmlmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYzoxMzUzOlxcdGVyciA9IG10Nzk5Nl9tYWNfc3RhX2FkZF9saW5rcyhkZXYsIHZpZiwgc3RhLCBsaW5rcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jLTEzNTQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM9MTQ2OD1tdDc5OTZfc3RhX3N0YXRlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jLTE0NzYtXFx0ICAgIG5ld19zdGF0ZSA9PSBJRUVFODAyMTFfU1RBX05PTkUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jOjE0Nzc6XFx0XFx0cmV0dXJuIG10Nzk5Nl9tYWNfc3RhX2FkZChkZXYsIHZpZiwgc3RhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmMtMTQ3OC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYz0yNTEwPWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10Nzk5Nl9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmMtMjU1OS0jaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM6MjU2MDpcXHQuc3RhX2FkZF9kZWJ1Z2ZzID0gbXQ3OTk2X3N0YV9hZGRfZGVidWdmcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM6MjU2MTpcXHQubGlua19zdGFfYWRkX2RlYnVnZnMgPSBtdDc5OTZfbGlua19zdGFfYWRkX2RlYnVnZnMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jLTI1NjItI2VuZGlmXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaD05Mjk9aW50IG10Nzk5Nl9tY3Vfc2V0X2VtbHNyX21vZGUoc3RydWN0IG10Nzk5Nl9kZXYgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oLTkzMy0jaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo5MzQ6dm9pZCBtdDc5OTZfc3RhX2FkZF9kZWJ1Z2ZzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oLTkzNS1cXHRcXHRcXHQgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgc3RydWN0IGRlbnRyeSAqZGlyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo5MzY6dm9pZCBtdDc5OTZfbGlua19zdGFfYWRkX2RlYnVnZnMoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtOTM3LVxcdFxcdFxcdFxcdCBzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfc3RhICpsaW5rX3N0YSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MDM6MzYuNDE0MTE4ODU5WiIsIlNlcSI6MzEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEyMTE3NjcxOTIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBvdGVudGlhbCBSYWNlIENvbmRpdGlvbiBpbiB0aGUgTVQ3OTIxIERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBkaXZpbmcgaW50byB0aGlzIE1UNzkyMSBkcml2ZXIgY29kZSwgdHJ5aW5nIHRvIHVuZGVyc3RhbmQgdGhpcyBsb2dpYyBhcm91bmQgc3RhdGlvbiAoU1RBKSBhZGRpdGlvbi4gSXQgbG9va3MgbGlrZSBgbXQ3Nl9zdGFfYWRkYCBldmVudHVhbGx5IGxlYWRzIHRvIGEgY2FsbCB0byB0aGUgZHJpdmVyJ3Mgc3BlY2lmaWMgYHN0YV9hZGRgIGZ1bmN0aW9uLiAgVGhlIGludGVyZXN0aW5nIHBhcnQgaXMgdGhhdCBgbXQ3Nl9zdGFfYWRkYCBpcyBjYWxsZWQgZWl0aGVyIGZyb20gYG10NzZfc3RhX3N0YXRlYCBvciBgbXQ3Nl9tYWNfc3RhX2FkZGAuIGBtdDc2X3N0YV9zdGF0ZWAgaXRzZWxmIGNhbGxzIGBtdDc2X3N0YV9hZGRgLiBNeSBjb25jZXJuIGlzIHdoZXRoZXIgYSBtdXRleCBpcyBjb3JyZWN0bHkgaGVsZCBkdXJpbmcgdGhlc2UgY2FsbHMsIGJlY2F1c2UgYG10NzkyMV9tYWNfc3RhX2FkZGAgZG9lcyBub3QgYXBwZWFyIHRvIGhvbGQgYGRldi1cdTAwM2VtdXRleGAuXG5cbk15IGZpcnN0IHRob3VnaHQgaXMsIG1hYzgwMjExIG1pZ2h0IGJlIGRvaW5nIHNvbWV0aGluZywgYnV0IEkgY2FuIHNlZSB0aGF0IG1hYzgwMjExIGRvZXNuJ3QgbWFuYWdlIGRyaXZlci1zcGVjaWZpYyBtdXRleGVzLiAgU28sICBgbXQ3OTIxX21hY19zdGFfYWRkYCBnZXRzIGNhbGxlZCBkaXJlY3RseS4gSG93ZXZlciwgd2l0aGluIGBtdDc5MjFfbWFjX3N0YV9hZGRgLCBpdCBjYWxscyBgbXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZWAuIFRoaXMsIGluIHR1cm4sIGNhbGxzIGBfX210NzkyMV9tY3VfcmVnZF91cGRhdGVgLiAgVGhlIHRoaW5nIGlzLCBgX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCAqYXNzdW1lcyogdGhlIG11dGV4IGlzIGhlbGQhXG5cbkFoYSEgV2UgaGF2ZSBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbi4gIGBtdDc5MjFfbWFjX3N0YV9hZGRgIGRvZXNuJ3QgaG9sZCB0aGUgbXV0ZXgsIGJ1dCBpdCBjYWxscyBhIGZ1bmN0aW9uIHRoYXQgZXhwZWN0cyBpdCEgTGV0J3MgZXhhbWluZSB0aGUgcGF0Y2ggdGhhdCBtb2RpZmllZCBgbXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZWAuIFRoZSBhdXRob3IgaXMgY2hhbmdpbmcgdGhlIGZ1bmN0aW9uIGNhbGwgdG8gYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAsIHdoaWNoIHN1Z2dlc3RzIHRoZSBtdXRleCBpcyAqYWxyZWFkeSogaGVsZCBhdCB0aGF0IHBvaW50LlxuXG5CdXQgd2hlcmU/IEJlZm9yZSB0aGUgcGF0Y2gsIGBtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCBoYWQgaXRzIG93biBtdXRleCBoYW5kbGluZy4gSXQgd2FzIG9yaWdpbmFsbHkgaW1wbGVtZW50ZWQgbGlrZSB0aGlzLCBzbyBpdCBjb3VsZCBoYW5kbGUgY2FsbHMgd2hlbiB0aGUgbXV0ZXggd2Fzbid0IGhlbGQuIEJ1dCB0aGUgY2hhbmdlIG1lYW5zIHRoYXQgaXNuJ3QgdGhlIGNhc2UgYW55IGxvbmdlci4gTm93IHRoZSBmdW5jdGlvbiBleHBlY3RzIHRoZSBtdXRleCB0byBiZSBoZWxkLiBTbywgaWYgd2UgYXJlIGNhbGxpbmcgYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAgZGlyZWN0bHksIHRoZW4gd2UgKm5lZWQqIHRvIGFjcXVpcmUgdGhlIG11dGV4IGJlZm9yZWhhbmQuXG5cblNvLCBsZXQncyBsb29rIGF0IGBtdDc5MjFfbWFjX3N0YV9hZGRgIGFnYWluLCB0byBmaW5kIHdoZXJlIHRoZSBtdXRleCBpcyBhY3F1aXJlZC4gSSd2ZSBnb3QgdGhlIGNvZGUgdXAsIGFuZCBJIGNhbiBzZWUgdGhhdCBgbXQ3Nl9jb25uYWNfcG1fd2FrZWAgaXMgY2FsbGVkIGJlZm9yZSwgYnV0IEkga25vdyB0aGF0IGBtdDc2X2Nvbm5hY19tdXRleF9hY3F1aXJlYCBpcyBleHBsaWNpdGx5IHVzZWQgd2l0aCBpdCwgd2hpY2ggbWVhbnMgYG10NzZfY29ubmFjX3BtX3dha2VgIGRvZXMgKm5vdCogYWNxdWlyZSB0aGUgbXV0ZXguICBgbXQ3OTIxX21jdV9zdGFfdXBkYXRlYCBpcyBhbHNvIGNhbGxlZCwgYnV0IEkgY2FuIGNvbmZpcm0gdGhhdCBpdCBkb2VzIG5vdCBhY3F1aXJlIHRoZSBtdXRleC5cblxuU28sIHdoZXJlIGVsc2UgaXMgYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgIGNhbGxlZD8gSSBzaG91bGQgYWxzbyBjaGVjayBgbXQ3OTIxX21hY19zdGFfcmVtb3ZlYC4gSXQncyBwb3NzaWJsZSB0aGUgbXV0ZXggaXMgaGVsZCB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NjMxNzMsIk91dHB1dFRva2VucyI6NTAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDI5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjAzOjQ4LjUzMTc5NDI0WiIsIlNlcSI6MzIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NTM4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmNcIixcbiAgXCJGaXJzdExpbmVcIjogODkxLFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgODkxOlxcdHZvaWQgbXQ3OTIxX21hY19zdGFfcmVtb3ZlKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4gODkyOlxcdFxcdFxcdFxcdCAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXFxuIDg5MzpcXHR7XFxuIDg5NDpcXHRcXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc5MnhfZGV2LCBtdDc2KTtcXG4gODk1OlxcdFxcdHN0cnVjdCBtdDc5Mnhfc3RhICptc3RhID0gKHN0cnVjdCBtdDc5Mnhfc3RhICopc3RhLVxcdTAwM2VkcnZfcHJpdjtcXG4gODk2OlxcdFxcbiA4OTc6XFx0XFx0bXQ3OTIxX3JvY19hYm9ydF9zeW5jKGRldik7XFxuIDg5ODpcXHRcXHRtdDc2X2Nvbm5hY19mcmVlX3BlbmRpbmdfdHhfc2ticyhcXHUwMDI2ZGV2LVxcdTAwM2VwbSwgXFx1MDAyNm1zdGEtXFx1MDAzZWRlZmxpbmsud2NpZCk7XFxuIDg5OTpcXHRcXHRtdDc2X2Nvbm5hY19wbV93YWtlKFxcdTAwMjZkZXYtXFx1MDAzZW1waHksIFxcdTAwMjZkZXYtXFx1MDAzZXBtKTtcXG4gOTAwOlxcdFxcbiA5MDE6XFx0XFx0bXQ3OTIxX21jdV9zdGFfdXBkYXRlKGRldiwgc3RhLCB2aWYsIGZhbHNlLCBNVDc2X1NUQV9JTkZPX1NUQVRFX05PTkUpO1xcbiA5MDI6XFx0XFx0bXQ3OTIxX21hY193dGJsX3VwZGF0ZShkZXYsIG1zdGEtXFx1MDAzZWRlZmxpbmsud2NpZC5pZHgsXFxuIDkwMzpcXHRcXHRcXHRcXHQgICAgICAgTVRfV1RCTF9VUERBVEVfQURNX0NPVU5UX0NMRUFSKTtcXG4gOTA0OlxcdFxcbiA5MDU6XFx0XFx0aWYgKHZpZi1cXHUwMDNldHlwZSA9PSBOTDgwMjExX0lGVFlQRV9TVEFUSU9OKSB7XFxuIDkwNjpcXHRcXHRcXHRzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKXZpZi1cXHUwMDNlZHJ2X3ByaXY7XFxuIDkwNzpcXHRcXG4gOTA4OlxcdFxcdFxcdG12aWYtXFx1MDAzZXdlcF9zdGEgPSBOVUxMO1xcbiA5MDk6XFx0XFx0XFx0ZXdtYV9yc3NpX2luaXQoXFx1MDAyNm12aWYtXFx1MDAzZWJzc19jb25mLnJzc2kpO1xcbiA5MTA6XFx0XFx0XFx0aWYgKCFzdGEtXFx1MDAzZXRkbHMpXFxuIDkxMTpcXHRcXHRcXHRcXHRtdDc2X2Nvbm5hY19tY3VfdW5pX2FkZF9ic3MoXFx1MDAyNmRldi1cXHUwMDNlbXBoeSwgdmlmLFxcbiA5MTI6XFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgIFxcdTAwMjZtdmlmLVxcdTAwM2VzdGEuZGVmbGluay53Y2lkLCBmYWxzZSxcXG4gOTEzOlxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgICBtdmlmLVxcdTAwM2Vic3NfY29uZi5tdDc2LmN0eCk7XFxuIDkxNDpcXHRcXHR9XFxuIDkxNTpcXHRcXG4gOTE2OlxcdFxcdHNwaW5fbG9ja19iaChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LnN0YV9wb2xsX2xvY2spO1xcbiA5MTc6XFx0XFx0aWYgKCFsaXN0X2VtcHR5KFxcdTAwMjZtc3RhLVxcdTAwM2VkZWZsaW5rLndjaWQucG9sbF9saXN0KSlcXG4gOTE4OlxcdFxcdFxcdGxpc3RfZGVsX2luaXQoXFx1MDAyNm1zdGEtXFx1MDAzZWRlZmxpbmsud2NpZC5wb2xsX2xpc3QpO1xcbiA5MTk6XFx0XFx0c3Bpbl91bmxvY2tfYmgoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5zdGFfcG9sbF9sb2NrKTtcXG4gOTIwOlxcdFxcbiA5MjE6XFx0XFx0bXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZSh2aWYsIGZhbHNlKTtcXG4gOTIyOlxcdFxcbiA5MjM6XFx0XFx0bXQ3Nl9jb25uYWNfcG93ZXJfc2F2ZV9zY2hlZChcXHUwMDI2ZGV2LVxcdTAwM2VtcGh5LCBcXHUwMDI2ZGV2LVxcdTAwM2VwbSk7XFxuIDkyNDpcXHR9XFxuIDkyNTpcXHRFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjFfbWFjX3N0YV9yZW1vdmUpO1xcbiA5MjY6XFx0XFxuIDkyNzpcXHRzdGF0aWMgaW50IG10NzkyMV9zZXRfcnRzX3RocmVzaG9sZChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgaW50IHJhZGlvX2lkeCxcXG4gOTI4OlxcdFxcdFxcdFxcdFxcdCAgICB1MzIgdmFsKVxcbiA5Mjk6XFx0e1xcbiA5MzA6XFx0XFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IG10NzkyeF9od19kZXYoaHcpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowMzo0OC41MzE5NTE1OVoiLCJTZXEiOjMzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTQ4MjAzNTc5MjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFBvdGVudGlhbCBEZWFkbG9jayBpbiBNVDc5MjEgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBgbXQ3OTIxX21hY19zdGFfcmVtb3ZlYCBmdW5jdGlvbiBhbmQgcmVhbGl6aW5nIGl0ICphbHNvKiBkb2Vzbid0IHNlZW0gdG8gaG9sZCBgZGV2LVx1MDAzZW11dGV4YC4gVGhhdCdzIGludGVyZXN0aW5nLCBidXQgbm90IHRoZSBmb2N1cyByaWdodCBub3cuIE15IG1haW4gY29uY2VybiBpcyB0aGF0IEkgc3VzcGVjdCBgbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAgbWlnaHQgYmUgZGVhZGxvY2tpbmcuIFRoZSBtb3JlIEkgdGhpbmsgYWJvdXQgaXQsIHRoZSBtb3JlIEknbSBsZWFuaW5nIHRvd2FyZHMgdGhlIGlkZWEgdGhhdCB0aGUgcHJvYmxlbSBzdGVtcyBmcm9tIGBtdDc5MjFfbWFjX3N0YV9hZGRgIGJlaW5nIGNhbGxlZCB3aGlsZSBhbm90aGVyIGxvY2sgaXMgYWxyZWFkeSBoZWxkLiAgQW5kIHNpbmNlIGBtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCAqYWxzbyogdHJpZXMgdG8gYWNxdWlyZSBgZGV2LVx1MDAzZW11dGV4YCwgd2UndmUgZ290IGEgY2xhc3NpYyBkZWFkbG9jayBzY2VuYXJpbyBicmV3aW5nLiAgSWYgYGRldi1cdTAwM2VtdXRleGAgaXMgYWxyZWFkeSB0YWtlbiwgY2FsbGluZyBgX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCBzZWVtcyBsaWtlIGEgc3RlcCBpbiB0aGUgcmlnaHQgZGlyZWN0aW9uLiBJdCBtYWtlcyBzZW5zZSwgaW4gdGhhdCBzY2VuYXJpby5cblxuQnV0IG5vdyBJIG5lZWQgdG8gZmluZCB3aGVyZSBgZGV2LVx1MDAzZW11dGV4YCAqY291bGQqIGJlIGhlbGQgYXQgdGhlIHRpbWUgb2YgdGhlIGNhbGwuIEkgbmVlZCB0byB0cmFjZSB0aGlzIGJhY2suICBJbiBtYWM4MDIxMSwgYHN0YV9hZGRgIGlzIGFjdHVhbGx5IGNhbGxlZCBmcm9tIGBtYWM4MDIxMV9zdGFfYWRkYC4gVGhlbiBJIHJlbWVtYmVyLCBgbXQ3NmAgaGFzIGl0cyBvd24gd3JhcHBlciwgYG10NzZfc3RhX2FkZGAsIGFuZCB0aGF0IGlzIGNhbGxlZCBmcm9tIGBtdDc2X3N0YV9zdGF0ZWAuIFRoaXMgaXMgdGhlIG1vc3QgbGlrZWx5IHBsYWNlIHdoZXJlIHRoZSBsb2NrIGlzIHRha2VuIGJlZm9yZSBgbXQ3OTIxX21hY19zdGFfYWRkYCBpcyBjYWxsZWQuIFNvLCBJIG5lZWQgdG8gY2hlY2sgYG10NzZfc3RhX3N0YXRlYCB2ZXJ5IGNhcmVmdWxseSB0byB1bmRlcnN0YW5kIGV4YWN0bHkgd2hhdCdzIGdvaW5nIG9uIHRoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NTg2NCwiT3V0cHV0VG9rZW5zIjo1MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxOCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjA1OjQzLjM1MjMxMjYxNFoiLCJTZXEiOjM0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzc2NDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDE2NTEsXG4gIFwiTGluZUNvdW50XCI6IDQwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjE2NTE6XFx0aW50IG10NzZfc3RhX3N0YXRlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbjE2NTI6XFx0XFx0XFx0ICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4xNjUzOlxcdFxcdFxcdCAgIGVudW0gaWVlZTgwMjExX3N0YV9zdGF0ZSBvbGRfc3RhdGUsXFxuMTY1NDpcXHRcXHRcXHQgICBlbnVtIGllZWU4MDIxMV9zdGFfc3RhdGUgbmV3X3N0YXRlKVxcbjE2NTU6XFx0e1xcbjE2NTY6XFx0XFx0c3RydWN0IG10NzZfcGh5ICpwaHkgPSBody1cXHUwMDNlcHJpdjtcXG4xNjU3OlxcdFxcdHN0cnVjdCBtdDc2X2RldiAqZGV2ID0gcGh5LVxcdTAwM2VkZXY7XFxuMTY1ODpcXHRcXHRlbnVtIG10NzZfc3RhX2V2ZW50IGV2O1xcbjE2NTk6XFx0XFxuMTY2MDpcXHRcXHRwaHkgPSBtdDc2X3ZpZl9waHkoaHcsIHZpZik7XFxuMTY2MTpcXHRcXHRpZiAoIXBoeSlcXG4xNjYyOlxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbjE2NjM6XFx0XFxuMTY2NDpcXHRcXHRpZiAob2xkX3N0YXRlID09IElFRUU4MDIxMV9TVEFfTk9URVhJU1QgXFx1MDAyNlxcdTAwMjZcXG4xNjY1OlxcdFxcdCAgICBuZXdfc3RhdGUgPT0gSUVFRTgwMjExX1NUQV9OT05FKVxcbjE2NjY6XFx0XFx0XFx0cmV0dXJuIG10NzZfc3RhX2FkZChwaHksIHZpZiwgc3RhKTtcXG4xNjY3OlxcdFxcbjE2Njg6XFx0XFx0aWYgKG9sZF9zdGF0ZSA9PSBJRUVFODAyMTFfU1RBX05PTkUgXFx1MDAyNlxcdTAwMjZcXG4xNjY5OlxcdFxcdCAgICBuZXdfc3RhdGUgPT0gSUVFRTgwMjExX1NUQV9OT1RFWElTVClcXG4xNjcwOlxcdFxcdFxcdG10NzZfc3RhX3JlbW92ZShwaHksIHZpZiwgc3RhKTtcXG4xNjcxOlxcdFxcbjE2NzI6XFx0XFx0aWYgKCFkZXYtXFx1MDAzZWRydi1cXHUwMDNlc3RhX2V2ZW50KVxcbjE2NzM6XFx0XFx0XFx0cmV0dXJuIDA7XFxuMTY3NDpcXHRcXG4xNjc1OlxcdFxcdGlmIChvbGRfc3RhdGUgPT0gSUVFRTgwMjExX1NUQV9BVVRIIFxcdTAwMjZcXHUwMDI2XFxuMTY3NjpcXHRcXHQgICAgbmV3X3N0YXRlID09IElFRUU4MDIxMV9TVEFfQVNTT0MpXFxuMTY3NzpcXHRcXHRcXHRldiA9IE1UNzZfU1RBX0VWRU5UX0FTU09DO1xcbjE2Nzg6XFx0XFx0ZWxzZSBpZiAob2xkX3N0YXRlID09IElFRUU4MDIxMV9TVEFfQVNTT0MgXFx1MDAyNlxcdTAwMjZcXG4xNjc5OlxcdFxcdFxcdCBuZXdfc3RhdGUgPT0gSUVFRTgwMjExX1NUQV9BVVRIT1JJWkVEKVxcbjE2ODA6XFx0XFx0XFx0ZXYgPSBNVDc2X1NUQV9FVkVOVF9BVVRIT1JJWkU7XFxuMTY4MTpcXHRcXHRlbHNlIGlmIChvbGRfc3RhdGUgPT0gSUVFRTgwMjExX1NUQV9BU1NPQyBcXHUwMDI2XFx1MDAyNlxcbjE2ODI6XFx0XFx0XFx0IG5ld19zdGF0ZSA9PSBJRUVFODAyMTFfU1RBX0FVVEgpXFxuMTY4MzpcXHRcXHRcXHRldiA9IE1UNzZfU1RBX0VWRU5UX0RJU0FTU09DO1xcbjE2ODQ6XFx0XFx0ZWxzZVxcbjE2ODU6XFx0XFx0XFx0cmV0dXJuIDA7XFxuMTY4NjpcXHRcXG4xNjg3OlxcdFxcdHJldHVybiBkZXYtXFx1MDAzZWRydi1cXHUwMDNlc3RhX2V2ZW50KGRldiwgdmlmLCBzdGEsIGV2KTtcXG4xNjg4OlxcdH1cXG4xNjg5OlxcdEVYUE9SVF9TWU1CT0xfR1BMKG10NzZfc3RhX3N0YXRlKTtcXG4xNjkwOlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowNTo0My4zNTI0OTI2MDRaIiwiU2VxIjozNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTk3MTAxNTUzNzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgUG90ZW50aWFsIFJhY2UgQ29uZGl0aW9uIGluIHRoZSBNVDc2IERyaXZlcioqXG5cbk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEknbSB0YWtpbmcgYSBjbG9zZXIgbG9vayBhdCB0aGlzIGBtdDc2X3N0YV9zdGF0ZWAgZnVuY3Rpb24uIE15IGluaXRpYWwgaW1wcmVzc2lvbiBpcyB0aGF0IGl0IGRvZXNuJ3Qgc2VlbSB0byBhY3F1aXJlIHRoZSBgZGV2LVx1MDAzZW11dGV4YCBkaXJlY3RseSwgd2hpY2ggaXMgYSBiaXQgY29uY2VybmluZywgY29uc2lkZXJpbmcgaXRzIHBvdGVudGlhbCBpbnRlcmFjdGlvbiB3aXRoIG90aGVyIHBhcnRzIG9mIHRoZSBkcml2ZXIuXG5cblNvLCB0aGUgbmV4dCB0aGluZyBJIG5lZWQgdG8gZG8gaXMgY29uZmlybSB0aGF0LiBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgYG10NzZfc3RhX3N0YXRlYCBpcyBhY3R1YWxseSAqY2FsbGVkKi4gU3BlY2lmaWNhbGx5LCBJIG5lZWQgdG8ga25vdyBpZiBpdCdzIGJlaW5nIGludm9rZWQgd2l0aCB0aGUgYGRldi1cdTAwM2VtdXRleGAgYWxyZWFkeSBoZWxkLiBJdCBsb29rcyBsaWtlIGl0IGlzIGFuIGBpZWVlODAyMTFfb3BzYCBjYWxsYmFjaywgd2hpY2ggbWVhbnMgaXQncyBwYXJ0IG9mIHRoZSBtYWM4MDIxMSBzdGFjay5cblxuQWgsIHJpZ2h0LCBub3cgSSBzZWUsIHRoZSBtYWM4MDIxMSBsYXllciBjYW4gY2FsbCB0aGUgYHN0YV9zdGF0ZWAgd2l0aG91dCBleHBsaWNpdCBrbm93bGVkZ2Ugb2Ygb3VyIGBkZXYtXHUwMDNlbXV0ZXhgLiBUaGlzIGlzIHN0YXJ0aW5nIHRvIGxvb2sgbGlrZSBhIHBvc3NpYmxlIHJhY2UgY29uZGl0aW9uLCBlc3BlY2lhbGx5IGlmIGBtdDc2X3N0YV9zdGF0ZWAgaXMgYWNjZXNzaW5nIGFueSBzaGFyZWQgZGF0YSB1bnByb3RlY3RlZC4gXG5cbldhaXQgYSBtaW51dGUsIG1heWJlIEknbSBqdW1waW5nIHRvIGNvbmNsdXNpb25zLiBQZXJoYXBzIGBtdDc2X3N0YV9zdGF0ZWAgaXMgd3JhcHBlZCBieSBzb21ldGhpbmcuIExldCBtZSBjaGVjayB0aGUgYG10NzkyMV9vcHNgIHN0cnVjdHVyZS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgZnVuY3Rpb24gcG9pbnRlciBpcyBub3QgcG9pbnRpbmcgdG8gYW4gaW50ZXJtZWRpYXRlIHdyYXBwZXIgdGhhdCAqZG9lcyogdGFrZSBjYXJlIG9mIHRoZSBtdXRleC4gVGhpcyBpcyBhIGNyaXRpY2FsIHN0ZXAgdG8gY29uZmlybSBteSBzdXNwaWNpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY3MjMyLCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE0LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MDY6MDMuMDYyNjUwMTgyWiIsIlNlcSI6MzYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDQ0OTIzOTA4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0YV9zdGF0ZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTk0MD1tdDc5MjFfYW1wZHVfYWN0aW9uKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTk5NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6OTk2OnN0YXRpYyBpbnQgbXQ3OTIxX3N0YV9zdGF0ZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtOTk3LVxcdFxcdFxcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy05OTgtXFx0XFx0XFx0ICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjk5OTpcXHRcXHRcXHQgICAgZW51bSBpZWVlODAyMTFfc3RhX3N0YXRlIG9sZF9zdGF0ZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTAwMDpcXHRcXHRcXHQgICAgZW51bSBpZWVlODAyMTFfc3RhX3N0YXRlIG5ld19zdGF0ZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTAwMS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTAwNS1cXHRcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxMDA2OlxcdFxcdG10NzZfY29ubmFjX3N0YV9zdGF0ZV9kcChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LCBvbGRfc3RhdGUsIG5ld19zdGF0ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTEwMDctXFx0XFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMDA5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxMDEwOlxcdHJldHVybiBtdDc2X3N0YV9zdGF0ZShodywgdmlmLCBzdGEsIG9sZF9zdGF0ZSwgbmV3X3N0YXRlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTAxMS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MTU0OD1jb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc5MjFfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTE1NTktXFx0LnN0b3BfYXAgPSBtdDc5MjFfc3RvcF9hcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTU2MDpcXHQuc3RhX3N0YXRlID0gbXQ3OTIxX3N0YV9zdGF0ZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTU2MS1cXHQuc3RhX3ByZV9yY3VfcmVtb3ZlID0gbXQ3Nl9zdGFfcHJlX3JjdV9yZW1vdmUsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjA2OjA0LjUwNzU3ODM4WiIsIlNlcSI6MzcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE4NzAxNTAxMTU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQ29uY3VycmVuY3kgaW4gdGhlIE1UNzkyMSBEcml2ZXIqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdGhhdCBgbXQ3OTIxX3N0YV9zdGF0ZWAgd2FzIG5vdCBhY3F1aXJpbmcgdGhlIGBkZXYtXHUwMDNlbXV0ZXhgIGJlZm9yZSBjYWxsaW5nIGBtdDc2X3N0YV9zdGF0ZWAuIEkgc2F3IHRoZSBjb25kaXRpb25hbCBibG9jayB3aXRoIGBtdDc5MnhfbXV0ZXhfYWNxdWlyZWAgYW5kIGBtdDc5MnhfbXV0ZXhfcmVsZWFzZWAsIGJ1dCBpdCdzIG9ubHkgZXhlY3V0ZWQgaWYgYGRldi1cdTAwM2VwbS5kc19lbmFibGVgIGlzIHRydWUuIEluIHRoZSBvdGhlciBjYXNlIGBtdDc2X3N0YV9zdGF0ZWAgaXMgYmVpbmcgY2FsbGVkIHdpdGhvdXQgYGRldi1cdTAwM2VtdXRleGAgYmVpbmcgaGVsZC5cblxuVGhpcyBpcyB3aGVyZSBpdCBnZXRzIGludGVyZXN0aW5nLiBgbXQ3Nl9zdGFfc3RhdGVgIHRoZW4gY2FsbHMgYG10NzZfc3RhX2FkZGAsIHdoaWNoIHN1YnNlcXVlbnRseSBjYWxscyBgbXQ3OTIxX21hY19zdGFfYWRkYC4gQW5kIGl0IGlzIGhlcmUgdGhhdCBgbXQ3OTIxX21hY19zdGFfYWRkYCBjYWxscyBgbXQ3OTIxX3JlZ2Rfc2V0XzZnaHpfcG93ZXJfdHlwZWAsIHdoaWNoIGluIHR1cm4gY2FsbHMgYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAuIFRoZSBwcm9ibGVtIGlzIHRoYXQgYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAgKmFzc3VtZXMqIHRoZSBtdXRleCBpcyBoZWxkLiBJZiB0aGUgbXV0ZXggaXNuJ3QgaGVsZCB3aGVuIGNhbGxpbmcgYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAsIHRoZW4gaXQgd29uJ3QgYmUgYWNxdWlyZWQsIGxlYWRpbmcgdG8gYSByYWNlIGNvbmRpdGlvbi4gSXMgdGhpcyBpbnRlbnRpb25hbD8gSSBuZWVkIHRvIGtub3cgaWYgYG10NzkyMV9tYWNfc3RhX2FkZGAgaXMgaG9sZGluZyB0aGUgbXV0ZXguXG5cbkkgbG9va2VkIGF0IHRoZSBjb2RlIGZvciBgX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYC4gSSB3YXMgYWJsZSB0byB2ZXJpZnkgdGhhdCB0aGUgZnVuY3Rpb24gaGFzIGEgY2hlY2sgZm9yIGBkZXYtXHUwMDNlcmVnZF9jaGFuZ2VgIHRvIHJldHVybiwgYW5kIGl0IGNhbGxzIGBtdDc5MjFfbWN1X3NldF9jbGNgIGJ1dCB0aGF0IGRvZXNuJ3QgdGVsbCBtZSBhYm91dCB0aGUgbXV0ZXggYmVpbmcgaGVsZC5cblxuU28sIEkgd2VudCBiYWNrIHRvIGBtdDc5MjFfbWFjX3N0YV9hZGRgLiBJIHNhdyB0aGF0IGl0IGNhbGxzIGBtdDc2X2Nvbm5hY19wbV93YWtlYC4gVGhlbiBJIHNhdyB0aGF0IGBtdDc2X2Nvbm5hY19wbV93YWtlYCBkb2VzICpub3QqIGFjcXVpcmUgdGhlIG11dGV4LiBCdXQsIGhvbGQgb24gYSBzZWNvbmQuIGBtdDc2X2Nvbm5hY19tdXRleF9hY3F1aXJlYCAqZG9lcyogYWNxdWlyZSB0aGUgbXV0ZXggYW5kIHRoZW4gY2FsbHMgYG10NzZfY29ubmFjX3BtX3dha2VgLiBUaGlzIG1lYW5zIHRoYXQgYG10NzkyMV9tYWNfc3RhX2FkZGAgZG9lcyAqbm90KiBjYWxsIGBtdDc2X2Nvbm5hY19tdXRleF9hY3F1aXJlYCBmaXJzdCwgaXQgY2FsbHMgYG10NzZfY29ubmFjX3BtX3dha2VgIGRpcmVjdGx5LiBJIG5lZWQgdG8gbG9vayBhdCBgbXQ3OTIxX21jdV9zdGFfdXBkYXRlYCBzaW5jZSBpdCBpcyBhbHNvIGNhbGxlZCBiZWZvcmUgYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgLlxuXG5UaGlzIG1lYW5zIEkgbmVlZCB0byBjYXJlZnVsbHkgcmV2aWV3IHRoZSBjb25jdXJyZW5jeSBtb2RlbCBhcm91bmQgYG10NzkyMV9tYWNfc3RhX2FkZGAsIHNwZWNpZmljYWxseSBjb25jZXJuaW5nIHRoZSBgZGV2LVx1MDAzZW11dGV4YCBhbmQgaXRzIGludGVyYWN0aW9uIHdpdGggYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAuIEkgc3VzcGVjdCBJJ3ZlIGZvdW5kIGEgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2ODUyNSwiT3V0cHV0VG9rZW5zIjo1MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc3OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowNjoyMy4yMDkwODEyMDdaIiwiU2VxIjozOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwMDIzMzY5MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5MjFfbWN1X3N0YV91cGRhdGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTYzMD1tdDc5MjFfdmlmX2Nvbm5lY3RfaXRlcih2b2lkICpwcml2LCB1OCAqbWFjLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjQ3LVxcdFxcdFxcdFxcdFxcdCAgICB0cnVlLCBOVUxMKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo2NDg6XFx0XFx0bXQ3OTIxX21jdV9zdGFfdXBkYXRlKGRldiwgTlVMTCwgdmlmLCB0cnVlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTY0OS1cXHRcXHRcXHRcXHQgICAgICBNVDc2X1NUQV9JTkZPX1NUQVRFX05PTkUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTY5NT1zdGF0aWMgdm9pZCBtdDc5MjFfYnNzX2luZm9fY2hhbmdlZChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy03MjktXFx0aWYgKGNoYW5nZWQgXFx1MDAyNiBCU1NfQ0hBTkdFRF9BU1NPQykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo3MzA6XFx0XFx0bXQ3OTIxX21jdV9zdGFfdXBkYXRlKGRldiwgTlVMTCwgdmlmLCB0cnVlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy03MzEtXFx0XFx0XFx0XFx0ICAgICAgTVQ3Nl9TVEFfSU5GT19TVEFURV9BU1NPQyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9ODA4PWludCBtdDc5MjFfbWFjX3N0YV9hZGQoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTg0NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6ODQ1OlxcdHJldCA9IG10NzkyMV9tY3Vfc3RhX3VwZGF0ZShkZXYsIHN0YSwgdmlmLCB0cnVlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy04NDYtXFx0XFx0XFx0XFx0ICAgIE1UNzZfU1RBX0lORk9fU1RBVEVfTk9ORSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9ODU4PWludCBtdDc5MjFfbWFjX3N0YV9ldmVudChzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtODgyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo4ODM6XFx0bXQ3OTIxX21jdV9zdGFfdXBkYXRlKGRldiwgc3RhLCB2aWYsIHRydWUsIE1UNzZfU1RBX0lORk9fU1RBVEVfQVNTT0MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy04ODQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9ODkxPXZvaWQgbXQ3OTIxX21hY19zdGFfcmVtb3ZlKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy05MDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjkwMTpcXHRtdDc5MjFfbWN1X3N0YV91cGRhdGUoZGV2LCBzdGEsIHZpZiwgZmFsc2UsIE1UNzZfU1RBX0lORk9fU1RBVEVfTk9ORSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTkwMi1cXHRtdDc5MjFfbWFjX3d0YmxfdXBkYXRlKGRldiwgbXN0YS1cXHUwMDNlZGVmbGluay53Y2lkLmlkeCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMzM0PW10NzkyMV9zdGFydF9hcChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xMzUyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoxMzUzOlxcdGVyciA9IG10NzkyMV9tY3Vfc3RhX3VwZGF0ZShkZXYsIE5VTEwsIHZpZiwgdHJ1ZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTM1NC1cXHRcXHRcXHRcXHQgICAgTVQ3Nl9TVEFfSU5GT19TVEFURV9OT05FKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jPTEwMTA9bXQ3OTIxX21jdV9zZXRfYnNzX3BtKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYy0xMDQ2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jOjEwNDc6aW50IG10NzkyMV9tY3Vfc3RhX3VwZGF0ZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTEwNDgtXFx0XFx0XFx0ICBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLCBib29sIGVuYWJsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oPTIwOT1pbnQgbXQ3OTIxX21jdV9zZXRfYnNzX3BtKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjEwLVxcdFxcdFxcdCAgYm9vbCBlbmFibGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oOjIxMTppbnQgbXQ3OTIxX21jdV9zdGFfdXBkYXRlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjEyLVxcdFxcdFxcdCAgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwgYm9vbCBlbmFibGUsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjA2OjIzLjcwOTMxODk1OFoiLCJTZXEiOjM5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NTM5NjgxMTU5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgVGhyZWFkIFNhZmV0eSBvZiB0aGUgTVQ3OTIxIERyaXZlcidzIFN0YXRpb24gSGFuZGxpbmcqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEknbSBsb29raW5nIGF0IGhvdyBzdGF0aW9uIGV2ZW50cyBhcmUgaGFuZGxlZCBpbiB0aGlzIGBtdDc5MjFgIGRyaXZlci4gSSBzZWUgdGhhdCB0aGUgYG10NzkyMV9tYWNfc3RhX2V2ZW50YCBmdW5jdGlvbiBhY3F1aXJlcyB0aGUgbXV0ZXggdXNpbmcgYG10NzkyeF9tdXRleF9hY3F1aXJlYC4gU3BlY2lmaWNhbGx5OlxuXG5gYGBjXG5cdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5cdG10NzkyMV9tY3Vfc3RhX3VwZGF0ZShkZXYsIHN0YSwgdmlmLCB0cnVlLCBNVDc2X1NUQV9JTkZPX1NUQVRFX0FTU09DKTtcblx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcbmBgYFxuXG5SaWdodCwgaXQgZ3JhYnMgdGhlIG11dGV4ICpiZWZvcmUqIGNhbGxpbmcgYG10NzkyMV9tY3Vfc3RhX3VwZGF0ZWAuIE1ha2VzIHNlbnNlLCBzdGFuZGFyZCBtdXRleCB1c2FnZSBmb3IgcHJvdGVjdGlvbi4gSSBzZWUgdGhhdCBhbmQgbXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgXCJBaCwgb2theSwgYG10NzkyMV9tYWNfc3RhX2V2ZW50YCBpcyBjb3JyZWN0bHkgaGFuZGxpbmcgbXV0ZXggYWNxdWlzaXRpb25cIi5cblxuQnV0IHRoZW4uLi4gSSByZWFsaXplIHRoYXQgYG10NzkyMV9tYWNfc3RhX2FkZGAgKmRvZXNuJ3QqIGFjcXVpcmUgdGhlIG11dGV4LiBUaGF0J3MgYSBwb3RlbnRpYWwgaXNzdWUuXG5cbklmIGBtdDc5MjFfbWFjX3N0YV9hZGRgIGRvZXNuJ3QgYWNxdWlyZSB0aGUgbXV0ZXgsIHRoZW4gdGhlIGNhbGwgdG8gYG10NzkyMV9tY3Vfc3RhX3VwZGF0ZWAgd2l0aGluIHRoYXQgZnVuY3Rpb24gaXMgZ29pbmcgdG8gaGFwcGVuICp3aXRob3V0KiB0aGUgcHJvdGVjdGlvbiBvZiB0aGUgbXV0ZXguIFRoYXQncyBhIHJlZCBmbGFnLiBUaGUga2V5IHF1ZXN0aW9uIGlzOiBpcyBgbXQ3OTIxX21jdV9zdGFfdXBkYXRlYCB0aHJlYWQtc2FmZT8gT3IgZG9lcyBpdCByZWx5IG9uIHRoZSBtdXRleCBiZWluZyBoZWxkP1xuXG5JJ2xsIG5lZWQgdG8gZ28gYW5kIGV4YW1pbmUgdGhlIGltcGxlbWVudGF0aW9uIG9mIGBtdDc5MjFfbWN1X3N0YV91cGRhdGVgIHRvIHNlZSBpZiBpdCBtYWtlcyBhc3N1bXB0aW9ucyBhYm91dCBtdXRleCBwcm90ZWN0aW9uLiBUaGlzIG5lZWRzIHRvIGJlIHVuZGVyc3Rvb2QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjcxNjU2LCJPdXRwdXRUb2tlbnMiOjUyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjA2OjMwLjI0OTAwMzQ1N1oiLCJTZXEiOjQwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTc0MDQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEwNDcsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjEwNDc6XFx0aW50IG10NzkyMV9tY3Vfc3RhX3VwZGF0ZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxcbjEwNDg6XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLCBib29sIGVuYWJsZSxcXG4xMDQ5OlxcdFxcdFxcdFxcdCAgZW51bSBtdDc2X3N0YV9pbmZvX3N0YXRlIHN0YXRlKVxcbjEwNTA6XFx0e1xcbjEwNTE6XFx0XFx0c3RydWN0IG10NzkyeF92aWYgKm12aWYgPSAoc3RydWN0IG10NzkyeF92aWYgKil2aWYtXFx1MDAzZWRydl9wcml2O1xcbjEwNTI6XFx0XFx0aW50IHJzc2kgPSAtZXdtYV9yc3NpX3JlYWQoXFx1MDAyNm12aWYtXFx1MDAzZWJzc19jb25mLnJzc2kpO1xcbjEwNTM6XFx0XFx0c3RydWN0IG10NzZfc3RhX2NtZF9pbmZvIGluZm8gPSB7XFxuMTA1NDpcXHRcXHRcXHQuc3RhID0gc3RhLFxcbjEwNTU6XFx0XFx0XFx0LnZpZiA9IHZpZixcXG4xMDU2OlxcdFxcdFxcdC5lbmFibGUgPSBlbmFibGUsXFxuMTA1NzpcXHRcXHRcXHQuY21kID0gTUNVX1VOSV9DTUQoU1RBX1JFQ19VUERBVEUpLFxcbjEwNTg6XFx0XFx0XFx0LnN0YXRlID0gc3RhdGUsXFxuMTA1OTpcXHRcXHRcXHQub2ZmbG9hZF9mdyA9IHRydWUsXFxuMTA2MDpcXHRcXHRcXHQucmNwaSA9IHRvX3JjcGkocnNzaSksXFxuMTA2MTpcXHRcXHR9O1xcbjEwNjI6XFx0XFx0c3RydWN0IG10NzkyeF9zdGEgKm1zdGE7XFxuMTA2MzpcXHRcXG4xMDY0OlxcdFxcdG1zdGEgPSBzdGEgPyAoc3RydWN0IG10NzkyeF9zdGEgKilzdGEtXFx1MDAzZWRydl9wcml2IDogTlVMTDtcXG4xMDY1OlxcdFxcdGluZm8ud2NpZCA9IG1zdGEgPyBcXHUwMDI2bXN0YS1cXHUwMDNlZGVmbGluay53Y2lkIDogXFx1MDAyNm12aWYtXFx1MDAzZXN0YS5kZWZsaW5rLndjaWQ7XFxuMTA2NjpcXHRcXHRpbmZvLm5ld2x5ID0gbXN0YSA/IHN0YXRlICE9IE1UNzZfU1RBX0lORk9fU1RBVEVfQVNTT0MgOiB0cnVlO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowNjozMC4yNTAxNzk5ODdaIiwiU2VxIjo0MSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjEyODEwMTYwMjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipEaWdnaW5nIGludG8gdGhlIEZ1bmN0aW9uIENhbGwgSGllcmFyY2h5KipcblxuQWxyaWdodCwgdGhhdCdzIGEgYml0IHVuZXhwZWN0ZWQuIEkgd2FzIGp1c3QgbG9va2luZyBhdCBgbXQ3OTIxX21jdV9zdGFfdXBkYXRlYCwgYW5kIG5vdyBJIHNlZSB0aGF0IGBtdDc2X2Nvbm5hY19tY3Vfc3RhX3VwZGF0ZWAgaXMgY2FsbGVkICp3aXRoaW4qIGl0PyBJbnRyaWd1aW5nLiBUaGlzIGlzbid0IHRoZSBtb3N0IGNvbW1vbiBuYW1pbmcgY29udmVudGlvbiwgYW5kIGl0IHN1Z2dlc3RzIGEgcG9zc2libGUgbGF5ZXIgb2YgYWJzdHJhY3Rpb24gb3IgbW9kdWxhcml0eSB0aGF0IEkgbmVlZCB0byB1bmRlcnN0YW5kLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGRpZyBkZWVwZXIuIEkgd2FudCB0byBrbm93IHdoeSB0aGlzIHNwZWNpZmljIGRlc2lnbiBjaG9pY2Ugd2FzIG1hZGUuIEFyZSB0aGV5IGhhbmRsaW5nIGRpZmZlcmVudCBhc3BlY3RzIG9mIHN0YXRpb24gdXBkYXRlcywgcGVyaGFwcyByZWxhdGluZyB0byB0aGUgY29ubmFjIHBsYXRmb3JtPyBJcyB0aGVyZSBjb2RlIHJldXNlLCBvciBwZXJoYXBzIGEgc3BlY2lmaWMgZGl2aXNpb24gb2YgbGFib3IgZm9yIHRoZSBkaWZmZXJlbnQgTUNVcywgdGhhdCdzIGRyaXZpbmcgdGhpcz8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGxvZ2ljIGJlaGluZCB0aGlzIGludGVyYWN0aW9uIGFuZCB0aGUgcmF0aW9uYWxlIGZvciBzcGxpdHRpbmcgdGhlIHVwZGF0ZSBwcm9jZXNzIGluIHRoaXMgcGFydGljdWxhciB3YXkuIFRpbWUgdG8gZ28gc3BlbHVua2luZyBpbiB0aGUgc291cmNlIGNvZGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjcyNzUzLCJPdXRwdXRUb2tlbnMiOjUyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDEsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowNjo1MS41MzExOTgyMjFaIiwiU2VxIjo0MiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQzODQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEwNjcsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjEwNjc6XFx0XFxuMTA2ODpcXHRcXHRyZXR1cm4gbXQ3Nl9jb25uYWNfbWN1X3N0YV9jbWQoXFx1MDAyNmRldi1cXHUwMDNlbXBoeSwgXFx1MDAyNmluZm8pO1xcbjEwNjk6XFx0fVxcbjEwNzA6XFx0XFxuMTA3MTpcXHRpbnQgbXQ3OTIxX21jdV9zZXRfYmVhY29uX2ZpbHRlcihzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LFxcbjEwNzI6XFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuMTA3MzpcXHRcXHRcXHRcXHRcXHQgYm9vbCBlbmFibGUpXFxuMTA3NDpcXHR7XFxuMTA3NTpcXHQjZGVmaW5lIE1UNzkyMV9GSUZfQklUX0NMUlxcdFxcdEJJVCgxKVxcbjEwNzY6XFx0I2RlZmluZSBNVDc5MjFfRklGX0JJVF9TRVRcXHRcXHRCSVQoMClcXG4xMDc3OlxcdFxcdGludCBlcnI7XFxuMTA3ODpcXHRcXG4xMDc5OlxcdFxcdGlmIChlbmFibGUpIHtcXG4xMDgwOlxcdFxcdFxcdGVyciA9IG10NzkyMV9tY3VfdW5pX2Jzc19iY25mdChkZXYsIHZpZiwgdHJ1ZSk7XFxuMTA4MTpcXHRcXHRcXHRpZiAoZXJyKVxcbjEwODI6XFx0XFx0XFx0XFx0cmV0dXJuIGVycjtcXG4xMDgzOlxcdFxcbjEwODQ6XFx0XFx0XFx0ZXJyID0gbXQ3OTIxX21jdV9zZXRfcnhmaWx0ZXIoZGV2LCAwLFxcbjEwODU6XFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgTVQ3OTIxX0ZJRl9CSVRfU0VULFxcbjEwODY6XFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgTVRfV0ZfUkZDUl9EUk9QX09USEVSX0JFQUNPTik7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjA2OjUxLjUzMTM0NDA0MVoiLCJTZXEiOjQzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNTIwMzAwNjMwMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgTXV0ZXggVXNhZ2UgaW4gdGhlIE1UNzkyMSBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gZGlnZ2luZyBpbnRvIHRoaXMgYG10NzZfY29ubmFjX21jdV9zdGFfY21kYCBmdW5jdGlvbi4gSXQgc2VlbXMgcHJldHR5IGdlbmVyaWMsIGJ1dCBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiBpdCdzIHRocmVhZC1zYWZlLiBNeSBmb2N1cyBpcyBvbiB0aGUgbXV0ZXggdXNhZ2UuIEZpcnN0LCBJJ20gdHJhY2luZyB0aGUgY2FsbCBzdGFjayBmcm9tIGBtdDc2X2Nvbm5hY19tY3Vfc3RhX2NtZGAgdG8gdGhlIGZ1bmN0aW9ucyBpdCBjYWxscywgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgTVQ3OTIxIGRyaXZlci4gSSdtIHRyeWluZyB0byBmaWd1cmUgb3V0IGlmIHRoZSBtdXRleCBpcyBjb3JyZWN0bHkgaGVsZCB3aGVuIGNydWNpYWwgaGFyZHdhcmUgb3BlcmF0aW9ucyBhcmUgcGVyZm9ybWVkLlxuXG5JIHNlZSB0aGF0IGBtdDc5MjFfbWFjX3N0YV9hZGRgIGlzIHRoZSBrZXkgZnVuY3Rpb24gaW4gdGhlIGNoYWluLCBzbyBJIHdhbnQgdG8ga25vdyBpZiBgZGV2LVx1MDAzZW11dGV4YCBpcyBoZWxkIGF0IHRoYXQgcG9pbnQuIEkga25vdyBpdCdzIGFzc2lnbmVkIHRvIGBzdGFfYWRkYCB3aXRoaW4gYG10NzZfZHJpdmVyX29wc2AuIFRoYXQgZnVuY3Rpb24gZ2V0cyBjYWxsZWQgZnJvbSBgbXQ3Nl9zdGFfYWRkYCwgd2hpY2ggaW4gdHVybiwgaXMgdHJpZ2dlcmVkIGJ5IGBtdDc2X3N0YV9zdGF0ZWAuIEhvd2V2ZXIsIG15IGluaXRpYWwgaHVuY2ggaXMgdGhhdCBgbXQ3Nl9zdGFfc3RhdGVgIGRvZXNuJ3QgaG9sZCB0aGUgbXV0ZXgsIGJlY2F1c2UgaXQgaXMgY2FsbGVkIGZyb20gdGhlIG1hYzgwMjExIGNvcmUgYW5kIGl0J3MgdW5saWtlbHkgdGhhdCB0aGUgbWFjODAyMTEgY29yZSBtYW5hZ2VzIHRoZSBkZXZpY2UgbXV0ZXguIEhvd2V2ZXIsIGluIHRoaXMgY2FzZSwgdGhlIGBzdGFfc3RhdGVgIGNhbGxiYWNrIGZvciBgbXQ3OTIxX29wc2AgaXMgYG10NzkyMV9zdGFfc3RhdGVgLiBOb3csIHRoaXMgaXMgaW50ZXJlc3RpbmcuIEkgc2VlIHRoYXQgYG10NzkyMV9zdGFfc3RhdGVgICpkb2VzKiBhY3F1aXJlIGFuZCByZWxlYXNlIHRoZSBtdXRleCwgYnV0IGBtdDc2X3N0YV9zdGF0ZWAgd2lsbCBiZSBjYWxsZWQgKmFmdGVyKiB0aGlzIGhhcHBlbnMuIFRoZXJlZm9yZSwgYG10NzkyMV9tYWNfc3RhX2FkZGAgaXMgY2FsbGVkIHdpdGhvdXQgdGhlIG11dGV4LlxuXG5Ob3csIGxldCdzIGtlZXAgZ29pbmcuIGBtdDc5MjFfbWFjX3N0YV9hZGRgIHRoZW4gY2FsbHMgYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgLCB3aGljaCBpbiB0dXJuIGNhbGxzIGBfX210NzkyMV9tY3VfcmVnZF91cGRhdGVgLiBIZXJlJ3Mgd2hlcmUgaXQgZ2V0cyB3b3JyeWluZy4gVGhlIGxvd2VyIGZ1bmN0aW9uIGBfX210NzkyMV9tY3VfcmVnZF91cGRhdGVgIG1ha2VzIGFuIGFzc3VtcHRpb24gdGhhdCB0aGUgbXV0ZXggaXMgaGVsZC4gVGhpcyBmdW5jdGlvbiB3aWxsIGNhbGwgc2V2ZXJhbCBtb3JlIGZ1bmN0aW9uczogYG10NzkyMV9tY3Vfc2V0X2NsY2AsIGBtdDc5MjFfcmVnZF9jaGFubmVsX3VwZGF0ZWAsIGBtdDc2X2Nvbm5hY19tY3Vfc2V0X2NoYW5uZWxfZG9tYWluYCwgYW5kIGBtdDc5MjFfc2V0X3R4X3Nhcl9wd3JgLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGVzZSByZXF1aXJlIHRoZSBtdXRleC5cblxuSXQgdHVybnMgb3V0IHRoYXQgYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAgaXRzZWxmICp1c2VkKiB0byBhY3F1aXJlIHRoZSBtdXRleCBleHBsaWNpdGx5LiBOb3cgSSB1bmRlcnN0YW5kIHdoYXQncyBoYXBwZW5pbmcuIFRoZSBwYXRjaCBjaGFuZ2VzIGBtdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlYCB0byBjYWxsIGBfX210NzkyMV9tY3VfcmVnZF91cGRhdGVgICpkaXJlY3RseSosIHdoaWNoIG1lYW5zIHRoZSBtdXRleCBhY3F1aXNpdGlvbiBpcyBiZWluZyAqcmVtb3ZlZCogZnJvbSB0aGUgY2FsbCBwYXRoISBUaGlzIGlzIGEgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uIGFuZCBhIHNlcmlvdXMgaXNzdWUuIFdlIGFyZSBhY2Nlc3NpbmcgaGFyZHdhcmUgd2l0aG91dCB0aGUgbXV0ZXggcHJvdGVjdGlvbi4gVGhlIHBhdGNoIGlzIHByb2JhYmx5IHRyeWluZyB0byBmaXggc29tZXRoaW5nLCBidXQgdGhleSBwcm9iYWJseSBpbnRyb2R1Y2VkIHRoaXMgc2VyaW91cyByYWNlIGJ5IHJlbW92aW5nIHRoZSBtdXRleC5cblxuSSdtIGRvdWJsZS1jaGVja2luZyB0aGUgY2FsbCBzdGFjay4gU2luY2UgYG10NzkyMV9tYWNfc3RhX2FkZGAgZG9lc24ndCBob2xkIHRoZSBtdXRleCwgd2hpY2ggbWVhbnMgY2hhbmdpbmcgdG8gYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAgKnJlbW92ZXMqIHRoZSBtdXRleC4gTGV0IG1lIGNoZWNrIHRoZSBmdW5jdGlvbnMgdG8gc2VlIGlmIGFueSBvdGhlciBmdW5jdGlvbiBob2xkcyB0aGUgbXV0ZXguIEkgY2FuIHNlZSB0aGUgY2FsbHMgdG8gYG10NzZfY29ubmFjX3BtX3dha2VgIGFuZCBgbXQ3Nl9jb25uYWNfcG93ZXJfc2F2ZV9zY2hlZGAuIFRoZXNlIGZ1bmN0aW9ucyBkb24ndCBhY3F1aXJlIHRoZSBtdXRleC4gSG93ZXZlciwgSSBrbm93IHRoYXQgYG10NzZfY29ubmFjX3BtX3dha2VgIGlzIG9mdGVuIGNhbGxlZCAqd2l0aCogdGhlIG11dGV4IGhlbGQuIEknbSBnb2luZyB0byBkb3VibGUtY2hlY2sgdGhlIGltcGxlbWVudGF0aW9uIG9mIGBtdDc2X2Nvbm5hY19wbV93YWtlYCB0byBjb25maXJtIHRoaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjczNDEwLCJPdXRwdXRUb2tlbnMiOjUwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTI5NiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjA3OjA2LjczNDM1MjczMVoiLCJTZXEiOjQ0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDc2NjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tYWMuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAzNixcbiAgXCJMaW5lQ291bnRcIjogMjVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAzNjpcXHRpbnQgbXQ3Nl9jb25uYWNfcG1fd2FrZShzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfY29ubmFjX3BtICpwbSlcXG4gIDM3OlxcdHtcXG4gIDM4OlxcdFxcdHN0cnVjdCBtdDc2X2RldiAqZGV2ID0gcGh5LVxcdTAwM2VkZXY7XFxuICAzOTpcXHRcXG4gIDQwOlxcdFxcdGlmIChtdDc2X2lzX3VzYihkZXYpKVxcbiAgNDE6XFx0XFx0XFx0cmV0dXJuIDA7XFxuICA0MjpcXHRcXG4gIDQzOlxcdFxcdGNhbmNlbF9kZWxheWVkX3dvcmtfc3luYyhcXHUwMDI2cG0tXFx1MDAzZXBzX3dvcmspO1xcbiAgNDQ6XFx0XFx0aWYgKCF0ZXN0X2JpdChNVDc2X1NUQVRFX1BNLCBcXHUwMDI2cGh5LVxcdTAwM2VzdGF0ZSkpXFxuICA0NTpcXHRcXHRcXHRyZXR1cm4gMDtcXG4gIDQ2OlxcdFxcbiAgNDc6XFx0XFx0aWYgKHBtLVxcdTAwM2VzdXNwZW5kZWQpXFxuICA0ODpcXHRcXHRcXHRyZXR1cm4gMDtcXG4gIDQ5OlxcdFxcbiAgNTA6XFx0XFx0cXVldWVfd29yayhkZXYtXFx1MDAzZXdxLCBcXHUwMDI2cG0tXFx1MDAzZXdha2Vfd29yayk7XFxuICA1MTpcXHRcXHRpZiAoIXdhaXRfZXZlbnRfdGltZW91dChwbS1cXHUwMDNld2FpdCxcXG4gIDUyOlxcdFxcdFxcdFxcdFxcdCF0ZXN0X2JpdChNVDc2X1NUQVRFX1BNLCBcXHUwMDI2cGh5LVxcdTAwM2VzdGF0ZSksXFxuICA1MzpcXHRcXHRcXHRcXHRcXHQzICogSFopKSB7XFxuICA1NDpcXHRcXHRcXHRpZWVlODAyMTFfd2FrZV9xdWV1ZXMocGh5LVxcdTAwM2Vodyk7XFxuICA1NTpcXHRcXHRcXHRyZXR1cm4gLUVUSU1FRE9VVDtcXG4gIDU2OlxcdFxcdH1cXG4gIDU3OlxcdFxcbiAgNTg6XFx0XFx0cmV0dXJuIDA7XFxuICA1OTpcXHR9XFxuICA2MDpcXHRFWFBPUlRfU1lNQk9MX0dQTChtdDc2X2Nvbm5hY19wbV93YWtlKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MDc6MDYuNzM0NTAyMjUxWiIsIlNlcSI6NDUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwMTAxOTc5MzMwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFN1c3BlY3RlZCBNdXRleCBJc3N1ZSBpbiB0aGUgTVQ3OTIxIERyaXZlcioqXG5cbk9rYXksIHNvIGBtdDc2X2Nvbm5hY19wbV93YWtlYCBpcyBkZXNpZ25lZCB0byB3YWl0IGZvciB0aGUgZGV2aWNlIHRvIHdha2UgdXAsIGFuZCBpdCBkb2Vzbid0IGFjcXVpcmUgdGhlIG11dGV4IGl0c2VsZiwgd2hpY2ggaXMgc3RhbmRhcmQgcHJhY3RpY2UuIEJ1dCBub3cgSSdtIHNlZWluZyBzb21ldGhpbmcgdGhhdCBtYWtlcyBtZSB0aGluayB0aGVyZSBtaWdodCBiZSBhIHN1YnRsZSBtdXRleC1yZWxhdGVkIGlzc3VlIGluIHRoaXMgZHJpdmVyLiBTcGVjaWZpY2FsbHksIEknbSBxdWVzdGlvbmluZyB3aHkgYG10NzkyMV9tY3VfcmVnZF91cGRhdGVgIHdhcyBjaGFuZ2VkIHRvIGBfX210NzkyMV9tY3VfcmVnZF91cGRhdGVgLiBJZiBgbXQ3OTIxX21hY19zdGFfYWRkYCAqZG9lc24ndCogaG9sZCB0aGUgbXV0ZXgsIHRoZW4gd2h5IG1ha2UgdGhhdCBjaGFuZ2U/IEknbSBtaXNzaW5nIGEgcGllY2Ugb2YgaW5mb3JtYXRpb24gYW5kIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQncyBnb2luZyBvbi5cblxuU2luY2UgSSBkb24ndCBoYXZlIHRoZSBjb21taXQgbWVzc2FnZSBoYW5keSwgSSB3aWxsIGNoZWNrIHRoZSBwYXRjaCBpdHNlbGYgdG8gc2VlIGlmIGl0IHdpbGwgY2xhcmlmeSB0aGUgY2hhbmdlczpcblxuYGBgY1xuLVx0aWYgKHZpZi1cdTAwM2Vic3NfY29uZi5jaGFucmVxLm9wZXIuY2hhbi1cdTAwM2ViYW5kID09IE5MODAyMTFfQkFORF82R0haKVxuLVx0XHRtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlKGRldiwgZGV2LVx1MDAzZW10NzYuYWxwaGEyLCBkZXYtXHUwMDNlY291bnRyeV9pZV9lbnYpO1xuK1x0aWYgKHZpZi1cdTAwM2Vic3NfY29uZi5jaGFucmVxLm9wZXIuY2hhbi1cdTAwM2ViYW5kID09IE5MODAyMTFfQkFORF82R0haKVxuK1x0XHRfX210NzkyMV9tY3VfcmVnZF91cGRhdGUoZGV2LCBkZXYtXHUwMDNlbXQ3Ni5hbHBoYTIsIGRldi1cdTAwM2Vjb3VudHJ5X2llX2Vudik7XG5gYGBcblxuT2theSwgc28gaWYgdGhlIG9yaWdpbmFsIGBtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCAqZGlkKiBhY3F1aXJlIHRoZSBtdXRleCwgYW5kIHRoZSBuZXcgdmVyc2lvbiwgYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAsIGRvZXMgKm5vdCosIHRoaXMgaW1wbGllcyB0aGUgYXV0aG9yIGJlbGlldmVkIHRoZSBtdXRleCB3YXMgYWxyZWFkeSBoZWxkIHdoZW4gdGhpcyBmdW5jdGlvbiB3YXMgY2FsbGVkLiBUaGlzIG1ha2VzIHNlbnNlLiBXaGVyZSBpcyB0aGUgbXV0ZXggYWxyZWFkeSBiZWluZyBoZWxkPyBJIG5lZWQgdG8gdHJhY2sgdGhlIGNhbGxzIHRvIGBtdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlYCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgbXV0ZXggaXMgYmVpbmcgbWFuYWdlZC4gSXQgYXBwZWFycyB0aGF0IGl0IGlzIGNhbGxlZCBmcm9tIGJvdGggYG10NzkyMV9tYWNfc3RhX2FkZGAgYW5kIGBtdDc5MjFfbWFjX3N0YV9yZW1vdmVgLlxuXG5Ob3cgSSdtIHRoaW5raW5nLCBob2xkIG9uIGEgc2Vjb25kLi4uIG1heWJlIGBtdDc5MjFfbWFjX3N0YV9hZGRgICppcyogY2FsbGVkIHdpdGggdGhlIG11dGV4IGhlbGQuIEkgc2hvdWxkIGNoZWNrIGBtdDc2X3N0YV9hZGRgIHdoaWNoIGlzIGluIGBtYWM4MDIxMS5jYCBhbmQgY29uZmlybSB0aGF0IGl0IGlzIGluZGVlZCBob2xkaW5nIHRoZSBtdXRleC4gSSBuZWVkIHRvIHRyYWNlIHRoaXMgYmFjayB0byB0aGUgY2FsbGVyIHRvIGNvbmZpcm0gbXkgaHlwb3RoZXNpcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NzYwMDIsIk91dHB1dFRva2VucyI6NTAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NTUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowNzoxNi44MzY0ODUwNzFaIiwiU2VxIjo0NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk2NzEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAxNTc1LFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIxNTc1OlxcdHN0YXRpYyBpbnRcXG4xNTc2OlxcdG10NzZfc3RhX2FkZChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4xNTc3OlxcdFxcdCAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcXG4xNTc4OlxcdHtcXG4xNTc5OlxcdFxcdHN0cnVjdCBtdDc2X3djaWQgKndjaWQgPSAoc3RydWN0IG10NzZfd2NpZCAqKXN0YS1cXHUwMDNlZHJ2X3ByaXY7XFxuMTU4MDpcXHRcXHRzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiA9IHBoeS1cXHUwMDNlZGV2O1xcbjE1ODE6XFx0XFx0c3RydWN0IG10NzZfd2NpZCAqcHVibGlzaGVkO1xcbjE1ODI6XFx0XFx0aW50IHJldDtcXG4xNTgzOlxcdFxcdGludCBpO1xcbjE1ODQ6XFx0XFxuMTU4NTpcXHRcXHRtdXRleF9sb2NrKFxcdTAwMjZkZXYtXFx1MDAzZW11dGV4KTtcXG4xNTg2OlxcdFxcbjE1ODc6XFx0XFx0cmV0ID0gZGV2LVxcdTAwM2VkcnYtXFx1MDAzZXN0YV9hZGQoZGV2LCB2aWYsIHN0YSk7XFxuMTU4ODpcXHRcXHRpZiAocmV0KVxcbjE1ODk6XFx0XFx0XFx0Z290byBvdXQ7XFxuMTU5MDpcXHRcXG4xNTkxOlxcdFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBUlJBWV9TSVpFKHN0YS1cXHUwMDNldHhxKTsgaSsrKSB7XFxuMTU5MjpcXHRcXHRcXHRzdHJ1Y3QgbXQ3Nl90eHEgKm10eHE7XFxuMTU5MzpcXHRcXG4xNTk0OlxcdFxcdFxcdGlmICghc3RhLVxcdTAwM2V0eHFbaV0pXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjA3OjE2LjgzNjY4NDM0MVoiLCJTZXEiOjQ3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDA3ODU4Nzc3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgU3RhdGlvbiBBZGRpdGlvbiBhbmQgUmVtb3ZhbCBQcm9jZXNzZXMqKlxuXG5SaWdodCwgb2theSwgc28gSSd2ZSBiZWVuIGRpZ2dpbmcgaW50byB0aGlzIGFuZCBpdCBsb29rcyBsaWtlIEkndmUgZm91bmQgYSBrZXkgcGllY2UuIEFoYSEgSXQncyBjb25maXJtZWQ6IHRoZSBgbXQ3Nl9zdGFfYWRkYCBmdW5jdGlvbiAqZG9lcyogaW5kZWVkIGFjcXVpcmUgYGRldi1cdTAwM2VtdXRleGAhIEkgY2FuIHNlZSBpdCByaWdodCB0aGVyZSBpbiB0aGUgY29kZTogYG11dGV4X2xvY2soXHUwMDI2ZGV2LVx1MDAzZW11dGV4KTtgIFRoaXMgaXMgY3J1Y2lhbC5cblxuTm93LCBzaW5jZSBgbXQ3Nl9zdGFfYWRkYCBsb2NrcyB0aGF0IG11dGV4LCB0aGF0IG1lYW5zIHRoZSBgZGV2LVx1MDAzZWRydi1cdTAwM2VzdGFfYWRkYCBjYWxsYmFjaywgd2hpY2ggaXMgYG10NzkyMV9tYWNfc3RhX2FkZGAgaW4gdGhpcyBjb250ZXh0LCBpcyBkZWZpbml0ZWx5IGJlaW5nIGNhbGxlZCB3aXRoIHRoZSBgZGV2LVx1MDAzZW11dGV4YCBoZWxkLiBPa2F5LCB0aGF0IG1ha2VzIHNlbnNlIG9mIHRoZSBsb2NraW5nIHNjaGVtZSB1c2VkLlxuXG5CdXQgd2hhdCBhYm91dCB0aGUgcmVtb3ZhbCBzaWRlPyBXZSd2ZSBvbmx5IGNvbmZpcm1lZCB0aGUgYWRkLCB3ZSBuZWVkIHRvIGtub3cgdGhlIHNhbWUgaXMgdHJ1ZSBmb3IgcmVtb3ZlLiBMZXQgbWUgcXVpY2tseSBkb3VibGUtY2hlY2sgdGhlIGBtdDc2X3N0YV9yZW1vdmVgIGZ1bmN0aW9uIHRvIGJlIHN1cmUuIFRoaXMgaXMgYW4gaW1wb3J0YW50IHBhcnQgb2YgdGhlIHB1enpsZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Nzc0MjAsIk91dHB1dFRva2VucyI6NTAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowNzoyMC44NDQ1NDUwMThaIiwiU2VxIjo0OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTcwMDUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAxNjE0LFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIxNjE0OlxcdG91dDpcXG4xNjE1OlxcdFxcdG11dGV4X3VubG9jayhcXHUwMDI2ZGV2LVxcdTAwM2VtdXRleCk7XFxuMTYxNjpcXHRcXG4xNjE3OlxcdFxcdHJldHVybiByZXQ7XFxuMTYxODpcXHR9XFxuMTYxOTpcXHRcXG4xNjIwOlxcdHZvaWQgX19tdDc2X3N0YV9yZW1vdmUoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuMTYyMTpcXHRcXHRcXHQgICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcXG4xNjIyOlxcdHtcXG4xNjIzOlxcdFxcdHN0cnVjdCBtdDc2X2RldiAqZGV2ID0gcGh5LVxcdTAwM2VkZXY7XFxuMTYyNDpcXHRcXHRzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkID0gKHN0cnVjdCBtdDc2X3djaWQgKilzdGEtXFx1MDAzZWRydl9wcml2O1xcbjE2MjU6XFx0XFx0aW50IGksIGlkeCA9IHdjaWQtXFx1MDAzZWlkeDtcXG4xNjI2OlxcdFxcbjE2Mjc6XFx0XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUod2NpZC1cXHUwMDNlYWdncik7IGkrKylcXG4xNjI4OlxcdFxcdFxcdG10NzZfcnhfYWdncl9zdG9wKGRldiwgd2NpZCwgaSk7XFxuMTYyOTpcXHRcXG4xNjMwOlxcdFxcdGlmIChkZXYtXFx1MDAzZWRydi1cXHUwMDNlc3RhX3JlbW92ZSlcXG4xNjMxOlxcdFxcdFxcdGRldi1cXHUwMDNlZHJ2LVxcdTAwM2VzdGFfcmVtb3ZlKGRldiwgdmlmLCBzdGEpO1xcbjE2MzI6XFx0XFxuMTYzMzpcXHRcXHRtdDc2X3djaWRfY2xlYW51cChkZXYsIHdjaWQpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowNzoyMC44NDQ3MTcwMzhaIiwiU2VxIjo0OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDc4NzM0NjI5MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBmcm9tIGFuIGV4cGVydCdzIHBlcnNwZWN0aXZlOlxuXG4qKkRpdmluZyBEZWVwIGludG8gU1RBIFJlbW92YWwgYW5kIExvY2tpbmcqKlxuXG5XYWl0IGEgbWludXRlLi4uIEknbSBsb29raW5nIGF0IGBfX210NzZfc3RhX3JlbW92ZWAgYW5kIHNvbWV0aGluZydzIG5vdCBzaXR0aW5nIHF1aXRlIHJpZ2h0LiBJc24ndCB0aGF0IGZ1bmN0aW9uIHN1cHBvc2VkIHRvIGJlIHJlc3BvbnNpYmxlIGZvciByZW1vdmluZyBhIHN0YXRpb24ncyBlbnRyeSBmcm9tIHRoZSBpbnRlcm5hbCBzdHJ1Y3R1cmVzPyBBbmQgaXQncyBjYWxsaW5nICp3aXRob3V0KiBleHBsaWNpdGx5IGFjcXVpcmluZyB0aGUgYGRldi1cdTAwM2VtdXRleGAgYmVmb3JlaGFuZD8gVGhhdCBzZWVtcyBwb3RlbnRpYWxseSB1bnNhZmUuIFJhY2UgY29uZGl0aW9ucyBhcmUgYSBuaWdodG1hcmUsIGVzcGVjaWFsbHkgaW4gZHJpdmVyIGNvZGUuIFdlIG5lZWQgdG8gbWFpbnRhaW4gc3RyaWN0IHN5bmNocm9uaXphdGlvbiwgdG8gcHJldmVudCBjb25jdXJyZW50IG1vZGlmaWNhdGlvbiBvZiBzaGFyZWQgZGF0YSBzdHJ1Y3R1cmVzLlxuXG5Pa2F5LCBsZXQncyBiYWNrIHVwIGFuZCBkb3VibGUtY2hlY2sgdGhlIGRlZmluaXRpb24gb2YgYG10NzZfc3RhX3JlbW92ZWAg4oCTIHRoZSAqYWN0dWFsKiByZW1vdmFsIGZ1bmN0aW9uLCB0aGUgb25lICp3ZSogc2hvdWxkIGJlIGludGVyZXN0ZWQgaW4gLSB0aGUgb25lIHRoYXQgcHJlc3VtYWJseSAqZG9lcyogaGFuZGxlIHRoZSBsb2NraW5nLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgZnVsbCBjYWxsIGdyYXBoIGFuZCBlbnN1cmUgdGhlIG11dGV4IGlzICphbHdheXMqIGhlbGQgd2hlbiBhY2Nlc3NpbmcgYW5kIG1vZGlmeWluZyBzdGF0aW9uLXJlbGF0ZWQgZGF0YS4gSWYgYF9fbXQ3Nl9zdGFfcmVtb3ZlYCBpcyBtZWFudCB0byBiZSBjYWxsZWQgZnJvbSBpbnNpZGUgYG10NzZfc3RhX3JlbW92ZWAsIHRoZW4gdGhlIGhpZ2hlciBsZXZlbCBmdW5jdGlvbiBzaG91bGQgYmUgdGhlIG9uZSB0byBkbyB0aGUgbG9ja2luZywgd2l0aCB0aGUgbG93ZXItbGV2ZWwgZnVuY3Rpb24gYXNzdW1pbmcgdGhlIGxvY2sgaXMgYWxyZWFkeSB0aGVyZS4gSSdsbCBuZWVkIHRvIGNvbmZpcm0gdGhhdCB0aGlzIGlzIHRydWUgaGVyZS4gR290dGEgcnVsZSBvdXQgYW55IHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbnMgaW52b2x2aW5nIHN0YXRpb24gZW50cmllcyBiZWluZyBhZGRlZCwgcmVtb3ZlZCwgb3IgbW9kaWZpZWQgY29uY3VycmVudGx5IHdpdGggb3RoZXIgb3BlcmF0aW9ucy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIGNvZGUgaXMgcm9idXN0IGFuZCBzYWZlLCBhbmQgdGhhdCBhbnkgcG90ZW50aWFsIHJpc2tzIGFyZSBhdm9pZGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3ODEzOCwiT3V0cHV0VG9rZW5zIjo1MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MDc6MjUuNjMyMDY2MDc5WiIsIlNlcSI6NTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1ODY1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMTYzNCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMTYzNDpcXHRcXG4xNjM1OlxcdFxcdG10NzZfd2NpZF9tYXNrX2NsZWFyKGRldi1cXHUwMDNld2NpZF9tYXNrLCBpZHgpO1xcbjE2MzY6XFx0XFx0cGh5LVxcdTAwM2VudW1fc3RhLS07XFxuMTYzNzpcXHR9XFxuMTYzODpcXHRFWFBPUlRfU1lNQk9MX0dQTChfX210NzZfc3RhX3JlbW92ZSk7XFxuMTYzOTpcXHRcXG4xNjQwOlxcdHN0YXRpYyB2b2lkXFxuMTY0MTpcXHRtdDc2X3N0YV9yZW1vdmUoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuMTY0MjpcXHRcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKVxcbjE2NDM6XFx0e1xcbjE2NDQ6XFx0XFx0c3RydWN0IG10NzZfZGV2ICpkZXYgPSBwaHktXFx1MDAzZWRldjtcXG4xNjQ1OlxcdFxcbjE2NDY6XFx0XFx0bXV0ZXhfbG9jayhcXHUwMDI2ZGV2LVxcdTAwM2VtdXRleCk7XFxuMTY0NzpcXHRcXHRfX210NzZfc3RhX3JlbW92ZShwaHksIHZpZiwgc3RhKTtcXG4xNjQ4OlxcdFxcdG11dGV4X3VubG9jayhcXHUwMDI2ZGV2LVxcdTAwM2VtdXRleCk7XFxuMTY0OTpcXHR9XFxuMTY1MDpcXHRcXG4xNjUxOlxcdGludCBtdDc2X3N0YV9zdGF0ZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4xNjUyOlxcdFxcdFxcdCAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXFxuMTY1MzpcXHRcXHRcXHQgICBlbnVtIGllZWU4MDIxMV9zdGFfc3RhdGUgb2xkX3N0YXRlLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowNzoyNS42MzIzMjgxODlaIiwiU2VxIjo1MSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQ0MDA4NzgyMTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRGVhZGxvY2sgRml4IGluIE1UNzkyMSBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBoZXJlJ3MgdGhlIHNpdHVhdGlvbjogYG10NzZfc3RhX3JlbW92ZWAgKmRlZmluaXRlbHkqIGFjcXVpcmVzIGBkZXYtXHUwMDNlbXV0ZXhgLiBUaGlzIG1lYW5zIHRoYXQgd2hlbiBgbXQ3OTIxX21hY19zdGFfYWRkYCBhbmQgYG10NzkyMV9tYWNfc3RhX3JlbW92ZWAgYXJlIGNhbGxlZCwgYGRldi1cdTAwM2VtdXRleGAgaXMgYWxyZWFkeSBoZWxkLiBUaGUgY3JpdGljYWwgcGFydCBpcyB0aGF0IGBtdDc5MjFfbWFjX3N0YV9hZGRgIGNhbGxzIGBtdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlYCwgd2hpY2ggaW4gdHVybiBjYWxscyBgbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAuIFRoYXQgZnVuY3Rpb24gdGhlbiBhdHRlbXB0cyB0byBhY3F1aXJlIHRoZSBzYW1lIGBkZXYtXHUwMDNlbXV0ZXhgIHZpYSBhIG5lc3RlZCBzZXJpZXMgb2YgZnVuY3Rpb24gY2FsbHM6IGBtdDc5MnhfbXV0ZXhfYWNxdWlyZWAsIGBtdDc2X2Nvbm5hY19tdXRleF9hY3F1aXJlYCwgdWx0aW1hdGVseSBsZWFkaW5nIHRvIGBtdXRleF9sb2NrKFx1MDAyNmRldi1cdTAwM2VtdXRleClgLlxuXG5BIHRleHRib29rIGRlYWRsb2NrISBgbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAgdHJpZXMgdG8gZ3JhYiBhIG11dGV4IGl0IGFscmVhZHkgb3ducyEgVGhlIHBhdGNoIGVsZWdhbnRseSBmaXhlcyB0aGlzIGJ5IGNhbGxpbmcgYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAgZGlyZWN0bHksIHdoaWNoIGJ5cGFzc2VzIHRoZSBtdXRleCBhY3F1aXNpdGlvbi5cblxuVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcmVzb2x2ZXMgYSBkZWFkbG9jay4gVGhlIGdvb2QgbmV3cyBpcywgdGhpcyBidWcgaXMgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBiZWNhdXNlIHRoZSBNVDc5MjEgaGFzIGEgVVNCIGRyaXZlciAoYG10NzkyMXVgKSwgd2hpY2ggY2FuIGJlIGZ1enplZCB1c2luZyB0b29scyBsaWtlIGBkdW1teV9oY2RgIG9yIGByYXctZ2FkZ2V0YC4gVGhlIGVzc2VudGlhbCBjb25maWcgdG8gZW5hYmxlIGhlcmUgaXMgYE1UNzkyMVVgLlxuXG5UaGUga2V5IHN5bWJvbHMgdG8gZm9jdXMgb24gYXJlOlxuKiAgIGBfX210NzkyMV9tY3VfcmVnZF91cGRhdGVgXG4qICAgYG10NzkyMV9tY3VfcmVnZF91cGRhdGVgXG4qICAgYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgXG5cbkxldCBtZSBjaGVjayBmb3Igb3RoZXIgcmVxdWlyZWQgY29uZmlnczogYE1UNzkyMVVgIGRlcGVuZHMgb24gYE1BQzgwMjExYCBhbmQgYFVTQmAuIGBNVDc5MjFfQ09NTU9OYCBpcyBhbHNvIHNlbGVjdGVkIGJ5IGBNVDc5MjFVYC4gVGhlcmVmb3JlLCBgTVQ3OTIxVWAgYWxvbmUgaXMgc3VmZmljaWVudC5cblxuTGV0J3MgcXVpY2tseSBjaGVjazogdGhlcmUgYXJlIGFsc28gYE1UNzkyMUVgIChQQ0llKSBhbmQgYE1UNzkyMVNgIChTRElPKSwgYW5kIHN5emthbGxlciBjYW4gZnV6eiBVU0IgYW5kIFBDSSAodGhvdWdoIFVTQiBpcyBtb3JlIGNvbW1vbikuIEZvciBjb21wbGV0ZW5lc3MsIHdlIHNob3VsZCBsaXN0IGJvdGggYE1UNzkyMVVgIGFuZCBgTVQ3OTIxRWAuXG5cbkxldCdzIGNoZWNrIGBNVDc5MjFFYCBkZXBlbmRlbmNpZXM6IGBNVDc5MjFFYCBkZXBlbmRzIG9uIGBNQUM4MDIxMWAgYW5kIGBQQ0lgLiBIb3dldmVyLCB3ZSBjYW4gZm9jdXMgb24gYE1UNzkyMVVgIGdpdmVuIHdlIGFyZSByZXBvcnRpbmcgYSBkZWFkbG9jay5cblxuTm93LCB3YWl0Li4uaXMgYE1UNzkyMV9DT01NT05gIGEgY29uZmlnPyBZZXMsIGJ1dCBpdCdzIGEgYHRyaXN0YXRlYCB3aXRob3V0IGEgcHJvbXB0LCBzbyBpdCdzICpzZWxlY3RlZCogYnkgYE1UNzkyMVVgLiBTbywgdG8gYmUgY2xlYXIsIGBNVDc5MjFVYCBpcyB3aGF0IHdlIHNob3VsZCBmb2N1cyBvbi5cblxuUmVjYXBwaW5nIHRoZSBmb2N1cyBzeW1ib2xzOlxuKiAgIGBfX210NzkyMV9tY3VfcmVnZF91cGRhdGVgXG4qICAgYG10NzkyMV9tY3VfcmVnZF91cGRhdGVgXG4qICAgYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgXG5cbkFyZSBhbnkgb3RoZXIgZnVuY3Rpb25zIG1vZGlmaWVkPyBObywgdGhlc2UgdGhyZWUgYXJlIHRoZSBvbmx5IG9uZXMuXG5cbk9rYXksIGxldCdzIHZlcmlmeSByZWFjaGFiaWxpdHkgb2YgYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgIHZpYSBtYWM4MDIxMSBvcGVyYXRpb25zLiBZZXAuIFdoZW4gYSBzdGF0aW9uIGlzIGFkZGVkIG9yIHJlbW92ZWQsIG1hYzgwMjExIGNhbGxzIGBzdGFfYWRkYCBvciBgc3RhX3JlbW92ZWAsIHdoaWNoIGNhbGxzIGBtdDc2X3N0YV9hZGRgIG9yIGBtdDc2X3N0YV9yZW1vdmVgLCB3aGljaCBjYWxscyBgbXQ3OTIxX21hY19zdGFfYWRkYCBvciBgbXQ3OTIxX21hY19zdGFfcmVtb3ZlYCwgd2hpY2ggY2FsbHMgYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgLiBUaGlzICppcyogZGVmaW5pdGVseSByZWFjaGFibGUuXG5cbkhlcmUncyB0aGUgcmVhc29uaW5nOiBUaGUgcGF0Y2ggZml4ZXMgYSBkZWFkbG9jayBpbiB0aGUgTVQ3OTIxIHdpcmVsZXNzIGRyaXZlci4gYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgIGlzIGNhbGxlZCBmcm9tIGBtdDc5MjFfbWFjX3N0YV9hZGRgIGFuZCBgbXQ3OTIxX21hY19zdGFfcmVtb3ZlYCwgd2hpY2ggYXJlIGludm9rZWQgYnkgbWFjODAyMTEgd2l0aCBgZGV2LVx1MDAzZW11dGV4YCBhbHJlYWR5IGhlbGQuIFByZXZpb3VzbHksIGl0IGNhbGxlZCBgbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAsIHdoaWNoIGF0dGVtcHRlZCB0byBhY3F1aXJlIHRoZSBzYW1lXG5cbiIsIklucHV0VG9rZW5zIjo3ODg5OCwiT3V0cHV0VG9rZW5zIjoyNzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDIzLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MDg6MDAuMDMzMjExMTY3WiIsIlNlcSI6NTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTYxNTIyMDY1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNVDc5MjFVXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlXCIsXG4gICAgXCJtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlXCIsXG4gICAgXCJtdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBkZWFkbG9jayBpbiB0aGUgTVQ3OTIxIHdpcmVsZXNzIGRyaXZlci4gYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgIGlzIGNhbGxlZCBmcm9tIGBtdDc5MjFfbWFjX3N0YV9hZGRgIGFuZCBgbXQ3OTIxX21hY19zdGFfcmVtb3ZlYCwgd2hpY2ggYXJlIGludm9rZWQgYnkgbWFjODAyMTEgd2l0aCB0aGUgYGRldi1cXHUwMDNlbXV0ZXhgIGFscmVhZHkgaGVsZC4gUHJldmlvdXNseSwgaXQgY2FsbGVkIGBtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCwgd2hpY2ggYXR0ZW1wdGVkIHRvIGFjcXVpcmUgdGhlIHNhbWUgbXV0ZXgsIGxlYWRpbmcgdG8gYSBkZWFkbG9jay4gVGhlIHBhdGNoIGludHJvZHVjZXMgYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAgdG8gYmUgY2FsbGVkIHdoZW4gdGhlIG11dGV4IGlzIGFscmVhZHkgaGVsZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgZml4IGZvciBhIGRlYWRsb2NrIGluIHJlYWNoYWJsZSBkcml2ZXIgY29kZS4gVGhlIGRyaXZlciBjYW4gYmUgcmVhY2hlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIHRoZSBVU0IgaW50ZXJmYWNlIChgQ09ORklHX01UNzkyMVVgKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNVDc5MjFVXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiX19tdDc5MjFfbWN1X3JlZ2RfdXBkYXRlXCIsXG4gICAgXCJtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlXCIsXG4gICAgXCJtdDc5MjFfcmVnZF9zZXRfNmdoel9wb3dlcl90eXBlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBkZWFkbG9jayBpbiB0aGUgTVQ3OTIxIHdpcmVsZXNzIGRyaXZlci4gYG10NzkyMV9yZWdkX3NldF82Z2h6X3Bvd2VyX3R5cGVgIGlzIGNhbGxlZCBmcm9tIGBtdDc5MjFfbWFjX3N0YV9hZGRgIGFuZCBgbXQ3OTIxX21hY19zdGFfcmVtb3ZlYCwgd2hpY2ggYXJlIGludm9rZWQgYnkgbWFjODAyMTEgd2l0aCB0aGUgYGRldi1cXHUwMDNlbXV0ZXhgIGFscmVhZHkgaGVsZC4gUHJldmlvdXNseSwgaXQgY2FsbGVkIGBtdDc5MjFfbWN1X3JlZ2RfdXBkYXRlYCwgd2hpY2ggYXR0ZW1wdGVkIHRvIGFjcXVpcmUgdGhlIHNhbWUgbXV0ZXgsIGxlYWRpbmcgdG8gYSBkZWFkbG9jay4gVGhlIHBhdGNoIGludHJvZHVjZXMgYF9fbXQ3OTIxX21jdV9yZWdkX3VwZGF0ZWAgdG8gYmUgY2FsbGVkIHdoZW4gdGhlIG11dGV4IGlzIGFscmVhZHkgaGVsZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgZml4IGZvciBhIGRlYWRsb2NrIGluIHJlYWNoYWJsZSBkcml2ZXIgY29kZS4gVGhlIGRyaXZlciBjYW4gYmUgcmVhY2hlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIHRoZSBVU0IgaW50ZXJmYWNlIChgQ09ORklHX01UNzkyMVVgKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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:nil,}