Name: series-workflowhwd2m Phase: Failed StartedAt: 2026-09-15 16:28:28 +0000 UTC FinishedAt: 2026-09-15 16:31:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhwd2m[0] Phase: Succeeded StartedAt: 2026-09-15 16:28:28 +0000 UTC FinishedAt: 2026-09-15 16:31:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhwd2m[0].run-triage Phase: Succeeded StartedAt: 2026-09-15 16:28:28 +0000 UTC FinishedAt: 2026-09-15 16:31:27 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDE2OjI5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEludGVsIDEwR2JFIFBDSSBkcml2ZXIgKGl4Z2JlKSwgc3BlY2lmaWNhbGx5IHJlbW92aW5nIHRoZSBpeGdiZV9waW5nX2FsbF92ZnMoKSBmdW5jdGlvbiBhbmQgaXRzIGNhbGxzIGluIHRoZSBsaW5rIHdhdGNoZG9nIGhhbmRsZXJzLiBUaGUgaXhnYmUgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIEludGVsIDEwIEdpZ2FiaXQgRXRoZXJuZXQgaGFyZHdhcmUgKHN1Y2ggYXMgODI1OTgsIDgyNTk5LCBYNTQwLCBYNTUwKSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLiBBcyBzdWNoLCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIHN5emthbGxlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMTY6Mjk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBmYjM2MDE5NWRmYTk1NmFlN2YxM2ZlMWU4Y2YyOTE0MTlhZWE1ZDJkXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBTZXAgMTUgMTY6Mjk6NDMgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jXG5pbmRleCBmOTE4NTY0OThlYjJkLi4zNjVhY2Y4OTBiM2E3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmNcbkBAIC04MTgxLDkgJiM0Mzs4MTgxLDYgQEAgc3RhdGljIHZvaWQgaXhnYmVfd2F0Y2hkb2dfbGlua19pc191cChzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcilcbiBcbiBcdC8qIHVwZGF0ZSB0aGUgZGVmYXVsdCB1c2VyIHByaW9yaXR5IGZvciBWRnMgKi9cbiBcdGl4Z2JlX3VwZGF0ZV9kZWZhdWx0X3VwKGFkYXB0ZXIpO1xuLVxuLVx0LyogcGluZyBhbGwgdGhlIGFjdGl2ZSB2ZnMgdG8gbGV0IHRoZW0ga25vdyBsaW5rIGhhcyBjaGFuZ2VkICovXG4tXHRpeGdiZV9waW5nX2FsbF92ZnMoYWRhcHRlcik7XG4gfVxuIFxuIC8qKlxuQEAgLTgyMTQsOSAmIzQzOzgyMTEsNiBAQCBzdGF0aWMgdm9pZCBpeGdiZV93YXRjaGRvZ19saW5rX2lzX2Rvd24oc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIpXG4gXG4gXHRlX2luZm8oZHJ2LCBcJiMzNDtOSUMgTGluayBpcyBEb3duXFxuXCYjMzQ7KTtcbiBcdG5ldGlmX2NhcnJpZXJfb2ZmKG5ldGRldik7XG4tXG4tXHQvKiBwaW5nIGFsbCB0aGUgYWN0aXZlIHZmcyB0byBsZXQgdGhlbSBrbm93IGxpbmsgaGFzIGNoYW5nZWQgKi9cbi1cdGl4Z2JlX3BpbmdfYWxsX3ZmcyhhZGFwdGVyKTtcbiB9XG4gXG4gc3RhdGljIGJvb2wgaXhnYmVfcmluZ190eF9wZW5kaW5nKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3NyaW92LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9zcmlvdi5jXG5pbmRleCA0MzFkNzdkYTE1YTVmLi5kYTY0MWU5MTQ4MWI4IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfc3Jpb3YuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfc3Jpb3YuY1xuQEAgLTE1MTUsMjAgJiM0MzsxNTE1LDYgQEAgc3RhdGljIGlubGluZSB2b2lkIGl4Z2JlX3BpbmdfdmYoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIsIGludCB2ZilcbiBcdGl4Z2JlX3dyaXRlX21ieChodywgXHUwMDI2cGluZywgMSwgdmYpO1xuIH1cbiBcbi12b2lkIGl4Z2JlX3BpbmdfYWxsX3ZmcyhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcilcbi17XG4tXHRzdHJ1Y3QgaXhnYmVfaHcgKmh3ID0gXHUwMDI2YWRhcHRlci1cdTAwM2Vodztcbi1cdHUzMiBwaW5nO1xuLVx0aW50IGk7XG4tXG4tXHRmb3IgKGkgPSAwIDsgaSBcdTAwM2MgYWRhcHRlci1cdTAwM2VudW1fdmZzOyBpJiM0MzsmIzQzOykge1xuLVx0XHRwaW5nID0gSVhHQkVfUEZfQ09OVFJPTF9NU0c7XG4tXHRcdGlmIChhZGFwdGVyLVx1MDAzZXZmaW5mb1tpXS5jbGVhcl90b19zZW5kKVxuLVx0XHRcdHBpbmcgfD0gSVhHQkVfVlRfTVNHVFlQRV9DVFM7XG4tXHRcdGl4Z2JlX3dyaXRlX21ieChodywgXHUwMDI2cGluZywgMSwgaSk7XG4tXHR9XG4tfVxuLVxuIC8qKlxuICAqIGl4Z2JlX3NldF9hbGxfdmZzIC0gdXBkYXRlIHZmcyBxdWV1ZXNcbiAgKiBAYWRhcHRlcjogUG9pbnRlciB0byBhZGFwdGVyIHN0cnVjdFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3NyaW92LmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9zcmlvdi5oXG5pbmRleCBiYzRjYWI5NzZiZjk1Li5mNzU1YmZkODQ0ODBjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfc3Jpb3YuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfc3Jpb3YuaFxuQEAgLTE4LDcgJiM0MzsxOCw2IEBAIHZvaWQgaXhnYmVfcmVzdG9yZV92Zl9tdWx0aWNhc3RzKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKTtcbiBib29sIGl4Z2JlX2NoZWNrX21kZF9ldmVudChzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcik7XG4gdm9pZCBpeGdiZV9tc2dfdGFzayhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcik7XG4gaW50IGl4Z2JlX3ZmX2NvbmZpZ3VyYXRpb24oc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVkIGludCBldmVudF9tYXNrKTtcbi12b2lkIGl4Z2JlX3BpbmdfYWxsX3ZmcyhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcik7XG4gdm9pZCBpeGdiZV9zZXRfYWxsX3ZmcyhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcik7XG4gaW50IGl4Z2JlX25kb19zZXRfdmZfbWFjKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBxdWV1ZSwgdTggKm1hYyk7XG4gaW50IGl4Z2JlX25kb19zZXRfdmZfdmxhbihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBpbnQgcXVldWUsIHUxNiB2bGFuLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDE2OjI5PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBJbnRlbCAxMEdiRSBQQ0kgZHJpdmVyIChpeGdiZSksIHNwZWNpZmljYWxseSByZW1vdmluZyB0aGUgaXhnYmVfcGluZ19hbGxfdmZzKCkgZnVuY3Rpb24gYW5kIGl0cyBjYWxscyBpbiB0aGUgbGluayB3YXRjaGRvZyBoYW5kbGVycy4gVGhlIGl4Z2JlIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBJbnRlbCAxMCBHaWdhYml0IEV0aGVybmV0IGhhcmR3YXJlIChzdWNoIGFzIDgyNTk4LCA4MjU5OSwgWDU0MCwgWDU1MCkgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy4gQXMgc3VjaCwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBzeXprYWxsZXIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lciBhbmQgc2VjdXJpdHkgZW5naW5lZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3MKdG9vbHMgdG8gaW5zcGVjdCB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlLCBjYWxsZXJzLCBhbmQgc3Vycm91bmRpbmcgY29udGV4dC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjEuIENPUkUgVFJJQUdFIFBISUxPU09QSFkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncywKYW5kIG5ld2x5IHRyaWdnZXJlZCBhc3NlcnRpb25zIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIHNlcmllcy4KCi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6CiAgRnV6emluZyBjYW4gb25seSBkaXNjb3ZlciBidWdzIGluIGNvZGUgdGhhdCBjYW4gYWN0dWFsbHkgZXhlY3V0ZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZAogIGVudmlyb25tZW50cyAoR0NFIG9yIFFFTVUsIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBkZXZpY2VzIGxpa2UgVVNCIGdhZGdldHMsIG5ldGRldiwgdHVuL3RhcCkuCiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLAogIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBhZGRzIGFzc2VydGlvbnMgb3IgY29tcGxleCBsb2dpYy4KCi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgJiMzNDtOTyBGVU5DVElPTkFMIENIQU5HRSYjMzQ7IChORkNJKSBPUiAmIzM0O1JFRkFDVE9SSU5HJiMzNDsgQ0xBSU1TOgogIFBhdGNoIGF1dGhvcnMgcm91dGluZWx5IGxhYmVsIGNoYW5nZXMgYXMgJiMzNDtjbGVhbnVwcyYjMzQ7LCAmIzM0O3JlZmFjdG9yaW5ncyYjMzQ7LCBvciBzdGF0ZQogICYjMzQ7Tm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWQmIzM0Oy4gRG8gTk9UIHRha2UgdGhlc2UgY2xhaW1zIGF0IGZhY2UgdmFsdWUuCiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50CiAgaW4gY29yZSBzdWJzeXN0ZW1zIGZyZXF1ZW50bHkgaW50cm9kdWNlIHN1YnRsZSBzZW1hbnRpYyBzaGlmdHMgb3IgdW5jb3ZlciBsYXRlbnQga2VybmVsIGJ1Z3MuCiAgSWYgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSBpcyBtb2RpZmllZCBvciByZWZhY3RvcmVkLCBpdCBNVVNUIGJlIGZ1enplZC4KCi0gTkVXIE9SIE1PRElGSUVEIEFTU0VSVElPTlMgSU4gUkVBQ0hBQkxFIENPREUgTVVTVCBCRSBGVVpaRUQ6CiAgV2hlbiBhIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXMgcnVudGltZSBjaGVja3Mgb3IgYXNzZXJ0aW9ucyAoZS5nLiwgV0FSTl9PTiosIFZNX1dBUk5fT04qLAogIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLgogIEV2ZW4gaWYgdGhlIGF1dGhvciBiZWxpZXZlcyB0aGUgaW52YXJpYW50IGFsd2F5cyBob2xkcywgZnV6emluZyBpcyBlc3NlbnRpYWwgdG8gdmVyaWZ5IHdoZXRoZXIKICBhbiB1bnVzdWFsIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMgY2FuIHZpb2xhdGUgaXQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoyLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9ZmFsc2UgKE5FR0FUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIE9OTFkgSUYgYWxsIG1vZGlmaWVkIGNvZGUgZmFsbHMgc3RyaWN0bHkgaW50byBvbmUgb3IgbW9yZSBvZiB0aGVzZSBjYXRlZ29yaWVzOgoKLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOgogICogTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzLgogICogVXNlci1zcGFjZSBkaXJlY3Rvcmllcywgc2VsZi10ZXN0cywgc2FtcGxlcywgb3Igc2NyaXB0cyAoZS5nLiwgdG9vbHMvLCBzYW1wbGVzLywgc2NyaXB0cy8sIHVzci8pCiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuCiAgKiBQdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIChlLmcuLCBtZXNzYWdlIHN0cmluZ3MgaW4gcHJfZXJyLCBwcmludGssIGRldl9pbmZvKSBvciB0cmFjZXBvaW50cwogICAgdGhhdCBkbyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGRhdGEgc3RydWN0dXJlcy4KICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy4KLSBTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmU6CiAgKiBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIFVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRoczoKICAqIERyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKC5yZW1vdmUsIC5zaHV0ZG93biwgcGNpX3VucmVnaXN0ZXJfZHJpdmVyKSBleGVjdXRlZCBvbmx5IGR1cmluZwogICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuCiAgKiBDb2RlIHBhdGhzIGV4Y2x1c2l2ZSB0byBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQozLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9dHJ1ZSAoUE9TSVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6Ci0gQ29yZSBTdWJzeXN0ZW1zOgogICogQW55IGxvZ2ljIG1vZGlmaWNhdGlvbnMgaW4gbWVtb3J5IG1hbmFnZW1lbnQgKG1tLyksIHN5bmNocm9uaXphdGlvbi9sb2NraW5nIChrZXJuZWwvbG9ja2luZy8pLAogICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLgotIFJlZmFjdG9yaW5ncyBhbmQgQ29kZSBDbGVhbnVwczoKICAqIEFueSByZXN0cnVjdHVyaW5nIG9mIHJlYWNoYWJsZSBkYXRhIHN0cnVjdHVyZXMsIGhlbHBlciBhYnN0cmFjdGlvbnMsIG9yIGFsZ29yaXRobSBmbG93cy4KLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6CiAgKiBBbnkgaW50cm9kdWN0aW9uIG9yIGFsdGVyYXRpb24gb2YgYXNzZXJ0aW9ucyAoV0FSTl9PTiosIFZNX1dBUk5fT04qLCBCVUdfT04qLCBldGMuKSBpbiByZWFjaGFibGUgcGF0aHMuCi0gUmVhY2hhYmxlIERyaXZlcnMgYW5kIFByb3RvY29sczoKICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpXaGVuIFdvcnRoRnV6emluZz10cnVlLCB5b3UgbXVzdCBleHRyYWN0IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgaW50byBGb2N1c1N5bWJvbHMgdG8gZ3VpZGUgdGhlIGZ1enplcjoKCi0gQVZPSUQgVUJJUVVJVE9VUyBMSUZFQ1lDTEUgSE9ULVBBVEhTOgogIERvIE5PVCBsaXN0IGdlbmVyaWMsIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhbGxlZCBieSBhbG1vc3QgZXZlcnkgcHJvZ3JhbSBpbiB0aGUgY29ycHVzCiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHQKICBhbmQgdHJhcCBoYW5kbGVycywgb3IgY29yZSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlczsgdGhpcyBpcyBub3QgYW4gZXhoYXVzdGl2ZSBsaXN0KS4KICBMaXN0aW5nIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhdXNlcyB0aGUgZnV6emVyIHRvIGNsYXNzaWZ5IHRob3VzYW5kcyBvZiB1bnJlbGF0ZWQgdGVzdHMgYXMgJiMzNDtmb2N1c2VkJiMzNDssCiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLgoKLSBUQVJHRVQgU1BFQ0lGSUMgRkVBVFVSRSBMT0dJQyBBTkQgRU5UUllQT0lOVFM6CiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzCiAgZm9yIHRoZSBzdWJzeXN0ZW0gZmVhdHVyZSB1bmRlciByZXZpZXcuCgotIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKToKICBDb21waWxlci1pbmxpbmVkIHN0YXRpYyBmdW5jdGlvbnMgKHN1Y2ggYXMgc3RhdGljIGlubGluZXMgaW4gbW0vKi5oIG9yIGluY2x1ZGUvbGludXgvKi5oKSBsYWNrCiAgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyBpbiB2bWxpbnV4IGFuZCBjYW5ub3QgYmUgdGFyZ2V0ZWQgZGlyZWN0bHkgYnkgc3ltYm9sIGNvdmVyYWdlIGZpbHRlcnMuCiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyCiAgZnVuY3Rpb25zIGluIC5jIGZpbGVzIHRoYXQgZXhlcmNpc2UgdGhlbSAoYXZvaWRpbmcgdWJpcXVpdG91cyBsaWZlY3ljbGUgd3JhcHBlcnMpLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNS4gSURFTlRJRllJTkcgRW5hYmxlQ29uZmlncwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOgotIEluc3BlY3QgS2NvbmZpZyBmaWxlcyBhbmQgI2lmZGVmIGd1YXJkczsgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCi0gQ2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzIG5lZWRlZC4KLSBTdHJpcCBhbnkgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+VGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjQKCkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZmIzNjAxOTVkZmE5NTZhZTdmMTNmZTFlOGNmMjkxNDE5YWVhNWQyZApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUdWUgU2VwIDE1IDE2OjI5OjQzIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jCmluZGV4IGY5MTg1NjQ5OGViMmQuLjM2NWFjZjg5MGIzYTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMKQEAgLTgxODEsOSAmIzQzOzgxODEsNiBAQCBzdGF0aWMgdm9pZCBpeGdiZV93YXRjaGRvZ19saW5rX2lzX3VwKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKQogCiAJLyogdXBkYXRlIHRoZSBkZWZhdWx0IHVzZXIgcHJpb3JpdHkgZm9yIFZGcyAqLwogCWl4Z2JlX3VwZGF0ZV9kZWZhdWx0X3VwKGFkYXB0ZXIpOwotCi0JLyogcGluZyBhbGwgdGhlIGFjdGl2ZSB2ZnMgdG8gbGV0IHRoZW0ga25vdyBsaW5rIGhhcyBjaGFuZ2VkICovCi0JaXhnYmVfcGluZ19hbGxfdmZzKGFkYXB0ZXIpOwogfQogCiAvKioKQEAgLTgyMTQsOSAmIzQzOzgyMTEsNiBAQCBzdGF0aWMgdm9pZCBpeGdiZV93YXRjaGRvZ19saW5rX2lzX2Rvd24oc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIpCiAKIAllX2luZm8oZHJ2LCAmIzM0O05JQyBMaW5rIGlzIERvd25cbiYjMzQ7KTsKIAluZXRpZl9jYXJyaWVyX29mZihuZXRkZXYpOwotCi0JLyogcGluZyBhbGwgdGhlIGFjdGl2ZSB2ZnMgdG8gbGV0IHRoZW0ga25vdyBsaW5rIGhhcyBjaGFuZ2VkICovCi0JaXhnYmVfcGluZ19hbGxfdmZzKGFkYXB0ZXIpOwogfQogCiBzdGF0aWMgYm9vbCBpeGdiZV9yaW5nX3R4X3BlbmRpbmcoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIpCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9zcmlvdi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfc3Jpb3YuYwppbmRleCA0MzFkNzdkYTE1YTVmLi5kYTY0MWU5MTQ4MWI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9zcmlvdi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3NyaW92LmMKQEAgLTE1MTUsMjAgJiM0MzsxNTE1LDYgQEAgc3RhdGljIGlubGluZSB2b2lkIGl4Z2JlX3BpbmdfdmYoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIsIGludCB2ZikKIAlpeGdiZV93cml0ZV9tYngoaHcsICZhbXA7cGluZywgMSwgdmYpOwogfQogCi12b2lkIGl4Z2JlX3BpbmdfYWxsX3ZmcyhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcikKLXsKLQlzdHJ1Y3QgaXhnYmVfaHcgKmh3ID0gJmFtcDthZGFwdGVyLSZndDtodzsKLQl1MzIgcGluZzsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDAgOyBpICZsdDsgYWRhcHRlci0mZ3Q7bnVtX3ZmczsgaSYjNDM7JiM0MzspIHsKLQkJcGluZyA9IElYR0JFX1BGX0NPTlRST0xfTVNHOwotCQlpZiAoYWRhcHRlci0mZ3Q7dmZpbmZvW2ldLmNsZWFyX3RvX3NlbmQpCi0JCQlwaW5nIHw9IElYR0JFX1ZUX01TR1RZUEVfQ1RTOwotCQlpeGdiZV93cml0ZV9tYngoaHcsICZhbXA7cGluZywgMSwgaSk7Ci0JfQotfQotCiAvKioKICAqIGl4Z2JlX3NldF9hbGxfdmZzIC0gdXBkYXRlIHZmcyBxdWV1ZXMKICAqIEBhZGFwdGVyOiBQb2ludGVyIHRvIGFkYXB0ZXIgc3RydWN0CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9zcmlvdi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfc3Jpb3YuaAppbmRleCBiYzRjYWI5NzZiZjk1Li5mNzU1YmZkODQ0ODBjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9zcmlvdi5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3NyaW92LmgKQEAgLTE4LDcgJiM0MzsxOCw2IEBAIHZvaWQgaXhnYmVfcmVzdG9yZV92Zl9tdWx0aWNhc3RzKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKTsKIGJvb2wgaXhnYmVfY2hlY2tfbWRkX2V2ZW50KHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKTsKIHZvaWQgaXhnYmVfbXNnX3Rhc2soc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIpOwogaW50IGl4Z2JlX3ZmX2NvbmZpZ3VyYXRpb24oc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVkIGludCBldmVudF9tYXNrKTsKLXZvaWQgaXhnYmVfcGluZ19hbGxfdmZzKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKTsKIHZvaWQgaXhnYmVfc2V0X2FsbF92ZnMoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIpOwogaW50IGl4Z2JlX25kb19zZXRfdmZfbWFjKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBxdWV1ZSwgdTggKm1hYyk7CiBpbnQgaXhnYmVfbmRvX3NldF92Zl92bGFuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBxdWV1ZSwgdTE2IHZsYW4sCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDE2OjI5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM3NzMKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiA0ODUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBpeGdiZSBEcml2ZXIgUGF0Y2ggZm9yIFdvcnRoRnV6emluZyBDcml0ZXJpYSoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGFmZmVjdHMgdGhlIEludGVsIGl4Z2JlIGRyaXZlciwgc3BlY2lmaWNhbGx5IGluIGBpeGdiZV9tYWluLmNgLCBgaXhnYmVfc3Jpb3YuY2AsIGFuZCBgaXhnYmVfc3Jpb3YuaGAuIEl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgcmVtb3ZpbmcgY2FsbHMgdG8gYGl4Z2JlX3BpbmdfYWxsX3Zmc2AgYW5kIHRoZSBmdW5jdGlvbiBpdHNlbGYuIE5vdywgbXkgYnJhaW4gaW1tZWRpYXRlbHkganVtcHMgdG8gdGhlICYjMzQ7V29ydGhGdXp6aW5nJiMzNDsgcnVsZXMuICBTcGVjaWZpY2FsbHksIHRoZSBuZWdhdGl2ZSBjcml0ZXJpYTogJiMzNDtTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmUuJiMzNDsgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhpcyBwYXRjaCBmYWxscyBpbnRvIHRoYXQgY2F0ZWdvcnkuCgpUaGUga2V5IHF1ZXN0aW9uIGhlcmUgaXMgd2hldGhlciB0aGUgaXhnYmUgZHJpdmVyLCB3aGljaCBoYW5kbGVzIHRob3NlIEludGVsIDgyNTk5IGFuZCBzaW1pbGFyIDEwIEdpZ2FiaXQgRXRoZXJuZXQgY29udHJvbGxlcnMsIGlzICplbXVsYXRlZCogaW4gc3RhbmRhcmQgUUVNVS4gIFRoZSBkb2N1bWVudGF0aW9uIGxpc3RzIHNldmVyYWwgZW11bGF0ZWQgTklDcyBsaWtlIGUxMDAwLCBlMTAwMGUsIGlnYiAoaW4gc29tZSB2ZXJzaW9ucyksIHZteG5ldDMsIGFuZCB2aXJ0aW8tbmV0LCBldGMuLCBidXQgKmRvZXMqIGl0IGV4cGxpY2l0bHkgbWVudGlvbiBpeGdiZT8gTXkgaW5pdGlhbCB0aG91Z2h0IGlzICpubyosIGJ1dCBJIG5lZWQgdG8gYmUgY2VydGFpbi4KCkxldCYjMzk7cyBkbyBzb21lIHF1aWNrIHJlc2VhcmNoIG9uIFFFTVUmIzM5O3MgZGV2aWNlIG1vZGVscy4gSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IGxvb2sgYW5kIHNlZSBpZiBJIGNhbiBldmVuIGluc3RhbnRpYXRlIGFuIGl4Z2JlIGRldmljZSBpbiBRRU1VLiAgTXkgcXVpY2sgc2NhbiBvZiBRRU1VJiMzOTtzIGF2YWlsYWJsZSBuZXR3b3JrIGRldmljZSBtb2RlbHMgcmV2ZWFscyBubyBpeGdiZS4gSSBjYW4gc2VlIGUxMDAwLCBlMTAwMGUsIGlnYiwgYnV0IG5vdGhpbmcgZm9yIGl4Z2JlLCB3aGljaCBpcyBhIGJpZyByZWQgZmxhZy4KCkdpdmVuIHRoYXQgaXhnYmUgaXNuJiMzOTt0IGxpc3RlZCwgSSBuZWVkIHRvIGNvbmZpcm0gd2hldGhlciB0aGVyZSYjMzk7cyBzb21lIGtpbmQgb2YgdmlydHVhbCBvciBtb2NrIHN1cHBvcnQgZm9yIGl4Z2JlIHRoYXQgbWlnaHQgc3RpbGwgYWxsb3cgZm9yIHRlc3RpbmcgaW4gZW52aXJvbm1lbnRzIGxpa2UgU3l6a2FsbGVyIG9yIHN0YW5kYXJkIHZpcnR1YWxpemVkIHNldHVwcy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIGRyaXZlciBpcyB0ZXN0YWJsZSwgYnV0IEkmIzM5O20gbGVhbmluZyBoZWF2aWx5IHRvd2FyZHMgJiMzNDt1bnJlYWNoYWJsZSYjMzQ7IGlmIGl0JiMzOTtzIG5vdCBlbXVsYXRlZC4gSSYjMzk7bSBnb2luZyB0byBsb29rIGZvciBhbnkgbWVudGlvbiBvZiB2aXJ0dWFsIG9yIG1vY2sgaXhnYmUgc3VwcG9ydCBiZWZvcmUgcHJvY2VlZGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAxNjozMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpeGdiZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAyMTUyMCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvTWFrZWZpbGU9Nz1zdWJkaXItY2NmbGFncy15ICYjNDM7PSAtSSQoc3JjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvTWFrZWZpbGU6ODpvYmotJChDT05GSUdfSVhHQkUpICYjNDM7PSBpeGdiZS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9NYWtlZmlsZS05LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvTWFrZWZpbGU6MTA6aXhnYmUteSA6PSBpeGdiZV9tYWluLm8gaXhnYmVfY29tbW9uLm8gaXhnYmVfZXRodG9vbC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9NYWtlZmlsZToxMTogICAgICAgICAgIGl4Z2JlXzgyNTk5Lm8gaXhnYmVfODI1OTgubyBpeGdiZV9waHkubyBpeGdiZV9zcmlvdi5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9NYWtlZmlsZToxMjogICAgICAgICAgIGl4Z2JlX21ieC5vIGl4Z2JlX3g1NDAubyBpeGdiZV94NTUwLm8gaXhnYmVfbGliLm8gaXhnYmVfcHRwLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL01ha2VmaWxlOjEzOiAgICAgICAgICAgaXhnYmVfeHNrLm8gaXhnYmVfZTYxMC5vIGRldmxpbmsvZGV2bGluay5vIGl4Z2JlX2Z3X3VwZGF0ZS5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9NYWtlZmlsZS0xNC1cdCAgIGRldmxpbmsvcmVnaW9uLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL01ha2VmaWxlLTE1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvTWFrZWZpbGU6MTY6aXhnYmUtJChDT05GSUdfSVhHQkVfRENCKSAmIzQzOz0gIGl4Z2JlX2RjYi5vIGl4Z2JlX2RjYl84MjU5OC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9NYWtlZmlsZToxNzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpeGdiZV9kY2JfODI1OTkubyBpeGdiZV9kY2Jfbmwub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvTWFrZWZpbGUtMTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9NYWtlZmlsZToxOTppeGdiZS0kKENPTkZJR19JWEdCRV9IV01PTikgJiM0Mzs9IGl4Z2JlX3N5c2ZzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL01ha2VmaWxlOjIwOml4Z2JlLSQoQ09ORklHX0RFQlVHX0ZTKSAmIzQzOz0gaXhnYmVfZGVidWdmcy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9NYWtlZmlsZToyMTppeGdiZS0kKENPTkZJR19GQ09FOm09eSkgJiM0Mzs9IGl4Z2JlX2Zjb2Uub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvTWFrZWZpbGU6MjI6aXhnYmUtJChDT05GSUdfSVhHQkVfSVBTRUMpICYjNDM7PSBpeGdiZV9pcHNlYy5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQ6I2luY2x1ZGUgXCYjMzQ7aXhnYmUuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNS0jaW5jbHVkZSBcJiMzNDtkZXZsaW5rLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjY6I2luY2x1ZGUgXCYjMzQ7aXhnYmVfZndfdXBkYXRlLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo4OnN0cnVjdCBpeGdiZV9pbmZvX2N0eCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy05LVx0Y2hhciBidWZbMTI4XTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjEwOlx0c3RydWN0IGl4Z2JlX29yb21faW5mbyBwZW5kaW5nX29yb207XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMTpcdHN0cnVjdCBpeGdiZV9udm1faW5mbyBwZW5kaW5nX252bTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjEyOlx0c3RydWN0IGl4Z2JlX25ldGxpc3RfaW5mbyBwZW5kaW5nX25ldGxpc3Q7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMzpcdHN0cnVjdCBpeGdiZV9od19kZXZfY2FwcyBkZXZfY2FwcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTE0LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjE2OmVudW0gaXhnYmVfZGV2bGlua192ZXJzaW9uX3R5cGUge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTctXHRJWEdCRV9ETF9WRVJTSU9OX1JVTk5JTkcsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyMTpzdGF0aWMgdm9pZCBpeGdiZV9pbmZvX2dldF9kc24oc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyMjpcdFx0XHQgICAgICAgc3RydWN0IGl4Z2JlX2luZm9fY3R4ICpjdHgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yMy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozMjpzdGF0aWMgdm9pZCBpeGdiZV9pbmZvX29yb21fdmVyKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzM6XHRcdFx0XHRzdHJ1Y3QgaXhnYmVfaW5mb19jdHggKmN0eCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjM0Olx0XHRcdFx0ZW51bSBpeGdiZV9kZXZsaW5rX3ZlcnNpb25fdHlwZSB0eXBlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMzUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzY6XHRzdHJ1Y3QgaXhnYmVfaHcgKmh3ID0gXHUwMDI2YWRhcHRlci1cdTAwM2VodztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjM3Olx0c3RydWN0IGl4Z2JlX252bV92ZXJzaW9uIG52bV92ZXI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zOC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQxOlx0aWYgKGh3LVx1MDAzZW1hYy50eXBlID09IGl4Z2JlX21hY19lNjEwKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo0MjpcdFx0c3RydWN0IGl4Z2JlX29yb21faW5mbyAqb3JvbSA9IFx1MDAyNmFkYXB0ZXItXHUwMDNlaHcuZmxhc2gub3JvbTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTUyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NTM6XHRpeGdiZV9nZXRfb2VtX3Byb2RfdmVyc2lvbihodywgXHUwMDI2bnZtX3Zlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy01NC1cdGlmIChudm1fdmVyLm9lbV92YWxpZCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTYxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NjI6XHRpeGdiZV9nZXRfb3JvbV92ZXJzaW9uKGh3LCBcdTAwMjZudm1fdmVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTYzLVx0aWYgKG52bV92ZXIub3JfdmFsaWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNjctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo2ODpzdGF0aWMgdm9pZCBpeGdiZV9pbmZvX2VldHJhY2soc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo2OTpcdFx0XHQgICAgICAgc3RydWN0IGl4Z2JlX2luZm9fY3R4ICpjdHgsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo3MDpcdFx0XHQgICAgICAgZW51bSBpeGdiZV9kZXZsaW5rX3ZlcnNpb25fdHlwZSB0eXBlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNzEte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NzI6XHRzdHJ1Y3QgaXhnYmVfaHcgKmh3ID0gXHUwMDI2YWRhcHRlci1cdTAwM2VodztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjczOlx0c3RydWN0IGl4Z2JlX252bV92ZXJzaW9uIG52bV92ZXI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy03NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjc1Olx0aWYgKGh3LVx1MDAzZW1hYy50eXBlID09IGl4Z2JlX21hY19lNjEwKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy03Ni1cdFx0dTMyIGVldHJhY2sgPSBody1cdTAwM2VmbGFzaC5udm0uZWV0cmFjaztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy04NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjg2Olx0aXhnYmVfZ2V0X29lbV9wcm9kX3ZlcnNpb24oaHcsIFx1MDAyNm52bV92ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtODctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtOTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo5NDpcdGl4Z2JlX2dldF9ldGtfaWQoaHcsIFx1MDAyNm52bV92ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtOTUtXHRzbnByaW50ZihjdHgtXHUwMDNlYnVmLCBzaXplb2YoY3R4LVx1MDAzZWJ1ZiksIFwmIzM0OzB4JTA4eFwmIzM0OywgbnZtX3Zlci5ldGtfaWQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTk3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6OTg6c3RhdGljIHZvaWQgaXhnYmVfaW5mb19md19hcGkoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo5OTpcdFx0XHQgICAgICBzdHJ1Y3QgaXhnYmVfaW5mb19jdHggKmN0eClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTEwMC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMDE6XHRzdHJ1Y3QgaXhnYmVfaHcgKmh3ID0gXHUwMDI2YWRhcHRlci1cdTAwM2VodztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTEwMi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xMDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMDc6c3RhdGljIHZvaWQgaXhnYmVfaW5mb19md19idWlsZChzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjEwODpcdFx0XHRcdHN0cnVjdCBpeGdiZV9pbmZvX2N0eCAqY3R4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTA5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjExMDpcdHN0cnVjdCBpeGdiZV9odyAqaHcgPSBcdTAwMjZhZGFwdGVyLVx1MDAzZWh3O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTExLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTExNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjExNTpzdGF0aWMgdm9pZCBpeGdiZV9pbmZvX2Z3X3NyZXYoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMTY6XHRcdFx0ICAgICAgIHN0cnVjdCBpeGdiZV9pbmZvX2N0eCAqY3R4LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTE3Olx0XHRcdCAgICAgICBlbnVtIGl4Z2JlX2RldmxpbmtfdmVyc2lvbl90eXBlIHR5cGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xMTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTE5Olx0c3RydWN0IGl4Z2JlX252bV9pbmZvICpudm0gPSBcdTAwMjZhZGFwdGVyLVx1MDAzZWh3LmZsYXNoLm52bTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTEyMC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xMjctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMjg6c3RhdGljIHZvaWQgaXhnYmVfaW5mb19vcm9tX3NyZXYoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMjk6XHRcdFx0XHQgc3RydWN0IGl4Z2JlX2luZm9fY3R4ICpjdHgsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMzA6XHRcdFx0XHQgZW51bSBpeGdiZV9kZXZsaW5rX3ZlcnNpb25fdHlwZSB0eXBlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTMxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjEzMjpcdHN0cnVjdCBpeGdiZV9vcm9tX2luZm8gKm9yb20gPSBcdTAwMjZhZGFwdGVyLVx1MDAzZWh3LmZsYXNoLm9yb207XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xMzMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTQwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTQxOnN0YXRpYyB2b2lkIGl4Z2JlX2luZm9fbnZtX3ZlcihzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjE0MjpcdFx0XHQgICAgICAgc3RydWN0IGl4Z2JlX2luZm9fY3R4ICpjdHgsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxNDM6XHRcdFx0ICAgICAgIGVudW0gaXhnYmVfZGV2bGlua192ZXJzaW9uX3R5cGUgdHlwZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTE0NC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxNDU6XHRzdHJ1Y3QgaXhnYmVfbnZtX2luZm8gKm52bSA9IFx1MDAyNmFkYXB0ZXItXHUwMDNlaHcuZmxhc2gubnZtO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTQ2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTE1My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjE1NDpzdGF0aWMgdm9pZCBpeGdiZV9pbmZvX25ldGxpc3RfdmVyKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTU1Olx0XHRcdFx0ICAgc3RydWN0IGl4Z2JlX2luZm9fY3R4ICpjdHgsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxNTY6XHRcdFx0XHQgICBlbnVtIGl4Z2JlX2RldmxpbmtfdmVyc2lvbl90eXBlIHR5cGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xNTcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTU4Olx0c3RydWN0IGl4Z2JlX25ldGxpc3RfaW5mbyAqbmV0bGlzdCA9IFx1MDAyNmFkYXB0ZXItXHUwMDNlaHcuZmxhc2gubmV0bGlzdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTE1OS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xNzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxNzE6c3RhdGljIHZvaWQgaXhnYmVfaW5mb19uZXRsaXN0X2J1aWxkKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTcyOlx0XHRcdFx0ICAgICBzdHJ1Y3QgaXhnYmVfaW5mb19jdHggKmN0eCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjE3MzpcdFx0XHRcdCAgICAgZW51bSBpeGdiZV9kZXZsaW5rX3ZlcnNpb25fdHlwZSB0eXBlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTc0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjE3NTpcdHN0cnVjdCBpeGdiZV9uZXRsaXN0X2luZm8gKm5ldGxpc3QgPSBcdTAwMjZhZGFwdGVyLVx1MDAzZWh3LmZsYXNoLm5ldGxpc3Q7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xNzYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTgzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTg0OnN0YXRpYyBpbnQgaXhnYmVfc2V0X2N0eF9kZXZfY2FwcyhzdHJ1Y3QgaXhnYmVfaHcgKmh3LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTg1Olx0XHRcdFx0ICBzdHJ1Y3QgaXhnYmVfaW5mb19jdHggKmN0eCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTE4Ni1cdFx0XHRcdCAgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTE5MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjE5MTpcdGVyciA9IGl4Z2JlX2Rpc2NvdmVyX2Rldl9jYXBzKGh3LCBcdTAwMjZjdHgtXHUwMDNlZGV2X2NhcHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTkyLVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTIwMi1cdGlmICgqcGVuZGluZ19vcm9tKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyMDM6XHRcdGVyciA9IGl4Z2JlX2dldF9pbmFjdGl2ZV9vcm9tX3ZlcihodywgXHUwMDI2Y3R4LVx1MDAzZXBlbmRpbmdfb3JvbSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yMDQtXHRcdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjA4LVx0aWYgKCpwZW5kaW5nX252bSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MjA5Olx0XHRlcnIgPSBpeGdiZV9nZXRfaW5hY3RpdmVfbnZtX3ZlcihodywgXHUwMDI2Y3R4LVx1MDAzZXBlbmRpbmdfbnZtKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTIxMC1cdFx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yMTQtXHRpZiAoKnBlbmRpbmdfbmV0bGlzdCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MjE1Olx0XHRlcnIgPSBpeGdiZV9nZXRfaW5hY3RpdmVfbmV0bGlzdF92ZXIoaHcsIFx1MDAyNmN0eC1cdTAwM2VwZW5kaW5nX25ldGxpc3QpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjE2LVx0XHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTIyMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjIyMzpzdGF0aWMgaW50IGl4Z2JlX2RldmxpbmtfaW5mb19nZXRfZTYxMChzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTIyNC1cdFx0XHRcdCAgICAgICBzdHJ1Y3QgZGV2bGlua19pbmZvX3JlcSAqcmVxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MjI1Olx0XHRcdFx0ICAgICAgIHN0cnVjdCBpeGdiZV9pbmZvX2N0eCAqY3R4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjI2LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yMjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyMjk6XHRpeGdiZV9pbmZvX2Z3X2FwaShhZGFwdGVyLCBjdHgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjMwLVx0ZXJyID0gZGV2bGlua19pbmZvX3ZlcnNpb25fcnVubmluZ19wdXQocmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTIzNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjIzNjpcdGl4Z2JlX2luZm9fZndfYnVpbGQoYWRhcHRlciwgY3R4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTIzNy1cdGVyciA9IGRldmxpbmtfaW5mb192ZXJzaW9uX3J1bm5pbmdfcHV0KHJlcSwgXCYjMzQ7ZncubWdtdC5idWlsZFwmIzM0OywgY3R4LVx1MDAzZWJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjQwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MjQxOlx0aXhnYmVfaW5mb19md19zcmV2KGFkYXB0ZXIsIGN0eCwgSVhHQkVfRExfVkVSU0lPTl9SVU5OSU5HKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI0Mi1cdGVyciA9IGRldmxpbmtfaW5mb192ZXJzaW9uX3J1bm5pbmdfcHV0KHJlcSwgXCYjMzQ7ZncubWdtdC5zcmV2XCYjMzQ7LCBjdHgtXHUwMDNlYnVmKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yNDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyNDY6XHRpeGdiZV9pbmZvX29yb21fc3JldihhZGFwdGVyLCBjdHgsIElYR0JFX0RMX1ZFUlNJT05fUlVOTklORyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yNDctXHRlcnIgPSBkZXZsaW5rX2luZm9fdmVyc2lvbl9ydW5uaW5nX3B1dChyZXEsIFwmIzM0O2Z3LnVuZGkuc3JldlwmIzM0OywgY3R4LVx1MDAzZWJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjUwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MjUxOlx0aXhnYmVfaW5mb19udm1fdmVyKGFkYXB0ZXIsIGN0eCwgSVhHQkVfRExfVkVSU0lPTl9SVU5OSU5HKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI1Mi1cdGVyciA9IGRldmxpbmtfaW5mb192ZXJzaW9uX3J1bm5pbmdfcHV0KHJlcSwgXCYjMzQ7ZncucHNpZC5hcGlcJiMzNDssIGN0eC1cdTAwM2VidWYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI1NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjI1NjpcdGl4Z2JlX2luZm9fbmV0bGlzdF92ZXIoYWRhcHRlciwgY3R4LCBJWEdCRV9ETF9WRVJTSU9OX1JVTk5JTkcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjU3LVx0ZXJyID0gZGV2bGlua19pbmZvX3ZlcnNpb25fcnVubmluZ19wdXQocmVxLCBcJiMzNDtmdy5uZXRsaXN0XCYjMzQ7LCBjdHgtXHUwMDNlYnVmKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yNjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyNjE6XHRpeGdiZV9pbmZvX25ldGxpc3RfYnVpbGQoYWRhcHRlciwgY3R4LCBJWEdCRV9ETF9WRVJTSU9OX1JVTk5JTkcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjYyLVx0cmV0dXJuIGRldmxpbmtfaW5mb192ZXJzaW9uX3J1bm5pbmdfcHV0KHJlcSwgXCYjMzQ7ZncubmV0bGlzdC5idWlsZFwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYz0yNjY9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MjY3Oml4Z2JlX2RldmxpbmtfcGVuZGluZ19pbmZvX2dldF9lNjEwKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjY4LVx0XHRcdFx0ICAgIHN0cnVjdCBkZXZsaW5rX2luZm9fcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyNjk6XHRcdFx0XHQgICAgc3RydWN0IGl4Z2JlX2luZm9fY3R4ICpjdHgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yNzAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjI3MzpcdGl4Z2JlX2luZm9fb3JvbV92ZXIoYWRhcHRlciwgY3R4LCBJWEdCRV9ETF9WRVJTSU9OX1NUT1JFRCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yNzQtXHRlcnIgPSBkZXZsaW5rX2luZm9fdmVyc2lvbl9zdG9yZWRfcHV0KHJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yNzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyODA6XHRpeGdiZV9pbmZvX2VldHJhY2soYWRhcHRlciwgY3R4LCBJWEdCRV9ETF9WRVJTSU9OX1NUT1JFRCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yODEtXHRlcnIgPSBkZXZsaW5rX2luZm9fdmVyc2lvbl9zdG9yZWRfcHV0KHJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yODYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyODc6XHRpeGdiZV9pbmZvX2Z3X3NyZXYoYWRhcHRlciwgY3R4LCBJWEdCRV9ETF9WRVJTSU9OX1NUT1JFRCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yODgtXHRlcnIgPSBkZXZsaW5rX2luZm9fdmVyc2lvbl9zdG9yZWRfcHV0KHJlcSwgXCYjMzQ7ZncubWdtdC5zcmV2XCYjMzQ7LCBjdHgtXHUwMDNlYnVmKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yOTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyOTI6XHRpeGdiZV9pbmZvX29yb21fc3JldihhZGFwdGVyLCBjdHgsIElYR0JFX0RMX1ZFUlNJT05fU1RPUkVEKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI5My1cdGVyciA9IGRldmxpbmtfaW5mb192ZXJzaW9uX3N0b3JlZF9wdXQocmVxLCBcJiMzNDtmdy51bmRpLnNyZXZcJiMzNDssIGN0eC1cdTAwM2VidWYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI5Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjI5NzpcdGl4Z2JlX2luZm9fbnZtX3ZlcihhZGFwdGVyLCBjdHgsIElYR0JFX0RMX1ZFUlNJT05fU1RPUkVEKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI5OC1cdGVyciA9IGRldmxpbmtfaW5mb192ZXJzaW9uX3N0b3JlZF9wdXQocmVxLCBcJiMzNDtmdy5wc2lkLmFwaVwmIzM0OywgY3R4LVx1MDAzZWJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMzAxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzAyOlx0aXhnYmVfaW5mb19uZXRsaXN0X3ZlcihhZGFwdGVyLCBjdHgsIElYR0JFX0RMX1ZFUlNJT05fU1RPUkVEKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTMwMy1cdGVyciA9IGRldmxpbmtfaW5mb192ZXJzaW9uX3N0b3JlZF9wdXQocmVxLCBcJiMzNDtmdy5uZXRsaXN0XCYjMzQ7LCBjdHgtXHUwMDNlYnVmKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zMDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozMDc6XHRpeGdiZV9pbmZvX25ldGxpc3RfYnVpbGQoYWRhcHRlciwgY3R4LCBJWEdCRV9ETF9WRVJTSU9OX1NUT1JFRCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zMDgtXHRyZXR1cm4gZGV2bGlua19pbmZvX3ZlcnNpb25fc3RvcmVkX3B1dChyZXEsIFwmIzM0O2Z3Lm5ldGxpc3QuYnVpbGRcJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMzExLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzEyOnN0YXRpYyBpbnQgaXhnYmVfZGV2bGlua19pbmZvX2dldChzdHJ1Y3QgZGV2bGluayAqZGV2bGluayxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTMxMy1cdFx0XHRcdCAgc3RydWN0IGRldmxpbmtfaW5mb19yZXEgKnJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zMTUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzE2Olx0c3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIgPSBkZXZsaW5rX3ByaXYoZGV2bGluayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozMTc6XHRzdHJ1Y3QgaXhnYmVfaHcgKmh3ID0gXHUwMDI2YWRhcHRlci1cdTAwM2VodztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjMxODpcdHN0cnVjdCBpeGdiZV9pbmZvX2N0eCAqY3R4O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMzE5LVx0aW50IGVycjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zMjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozMjU6XHRpZiAoaHctXHUwMDNlbWFjLnR5cGUgPT0gaXhnYmVfbWFjX2U2MTApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozMjY6XHRcdGl4Z2JlX3JlZnJlc2hfZndfdmVyc2lvbihhZGFwdGVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTMyNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjMyODpcdGl4Z2JlX2luZm9fZ2V0X2RzbihhZGFwdGVyLCBjdHgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMzI5LVx0ZXJyID0gZGV2bGlua19pbmZvX3NlcmlhbF9udW1iZXJfcHV0KHJlcSwgY3R4LVx1MDAzZWJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMzQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzQzOlx0aXhnYmVfaW5mb19vcm9tX3ZlcihhZGFwdGVyLCBjdHgsIElYR0JFX0RMX1ZFUlNJT05fUlVOTklORyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNDQtXHRlcnIgPSBkZXZsaW5rX2luZm9fdmVyc2lvbl9ydW5uaW5nX3B1dChyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMzQ5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzUwOlx0aXhnYmVfaW5mb19lZXRyYWNrKGFkYXB0ZXIsIGN0eCwgSVhHQkVfRExfVkVSU0lPTl9SVU5OSU5HKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTM1MS1cdGVyciA9IGRldmxpbmtfaW5mb192ZXJzaW9uX3J1bm5pbmdfcHV0KHJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNTMtXHRcdFx0XHRcdCAgICAgICBjdHgtXHUwMDNlYnVmKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjM1NDpcdGlmIChlcnIgfHwgaHctXHUwMDNlbWFjLnR5cGUgIT0gaXhnYmVfbWFjX2U2MTApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNTUtXHRcdGdvdG8gZnJlZV9jdHg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozNTc6XHRlcnIgPSBpeGdiZV9zZXRfY3R4X2Rldl9jYXBzKGh3LCBjdHgsIGV4dGFjayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNTgtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTM2MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjM2MTpcdGVyciA9IGl4Z2JlX2RldmxpbmtfaW5mb19nZXRfZTYxMChhZGFwdGVyLCByZXEsIGN0eCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNjItXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTM2NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjM2NTpcdGVyciA9IGl4Z2JlX2RldmxpbmtfcGVuZGluZ19pbmZvX2dldF9lNjEwKGFkYXB0ZXIsIHJlcSwgY3R4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTM2Ni1mcmVlX2N0eDpcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNzEtLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozNzI6ICogaXhnYmVfZGV2bGlua19yZWxvYWRfZW1wcl9zdGFydCAtIFN0YXJ0IEVNUCByZXNldCB0byBhY3RpdmF0ZSBuZXcgZmlybXdhcmVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTM3My0gKiBAZGV2bGluazogcG9pbnRlciB0byB0aGUgZGV2bGluayBpbnN0YW5jZSB0byByZWxvYWRcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zODktICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozOTA6c3RhdGljIGludCBpeGdiZV9kZXZsaW5rX3JlbG9hZF9lbXByX3N0YXJ0KHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMzkxLVx0XHRcdFx0XHQgICBib29sIG5ldG5zX2NoYW5nZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zOTUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6Mzk2Olx0c3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIgPSBkZXZsaW5rX3ByaXYoZGV2bGluayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozOTc6XHRzdHJ1Y3QgaXhnYmVfaHcgKmh3ID0gXHUwMDI2YWRhcHRlci1cdTAwM2VodztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTM5OC1cdHU4IHBlbmRpbmc7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDAwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NDAxOlx0aWYgKGh3LVx1MDAzZW1hYy50eXBlICE9IGl4Z2JlX21hY19lNjEwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDAyLVx0XHRyZXR1cm4gLUVPUE5PVFNVUFA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00MDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo0MDQ6XHRlcnIgPSBpeGdiZV9nZXRfcGVuZGluZ191cGRhdGVzKGFkYXB0ZXIsIFx1MDAyNnBlbmRpbmcsIGV4dGFjayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00MDUtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQyMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQyNDpcdGVyciA9IGl4Z2JlX2FjaV9udm1fdXBkYXRlX2VtcHIoaHcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDI1LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00MzUtLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo0MzY6ICogaXhnYmVfZGV2bGlua19yZWxvYWRfZW1wcl9maW5pc2ggLSBmaW5pc2hlcyBFTVAgcmVzZXRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQzNy0gKiBAZGV2bGluazogcG9pbnRlciB0byB0aGUgZGV2bGluayBpbnN0YW5jZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQ0Ni0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQ0NzpzdGF0aWMgaW50IGl4Z2JlX2RldmxpbmtfcmVsb2FkX2VtcHJfZmluaXNoKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDQ4LVx0XHRcdFx0XHQgICAgZW51bSBkZXZsaW5rX3JlbG9hZF9hY3Rpb24gYWN0aW9uLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQ1Mi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo0NTM6XHRzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlciA9IGRldmxpbmtfcHJpdihkZXZsaW5rKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQ1NDpcdHN0cnVjdCBpeGdiZV9odyAqaHcgPSBcdTAwMjZhZGFwdGVyLVx1MDAzZWh3O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDU1LVx0aW50IGkgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQ3Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQ3NzpcdHJldHVybiBpeGdiZV9yZWZyZXNoX2Z3X3ZlcnNpb24oYWRhcHRlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00NzgtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDc5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NDgwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2bGlua19vcHMgaXhnYmVfZGV2bGlua19vcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo0ODE6XHQuaW5mb19nZXQgPSBpeGdiZV9kZXZsaW5rX2luZm9fZ2V0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDgyLVx0LnN1cHBvcnRlZF9mbGFzaF91cGRhdGVfcGFyYW1zID1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQ4My1cdFx0REVWTElOS19TVVBQT1JUX0ZMQVNIX1VQREFURV9PVkVSV1JJVEVfTUFTSyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQ4NDpcdC5mbGFzaF91cGRhdGUgPSBpeGdiZV9mbGFzaF9wbGRtX2ltYWdlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDg1LVx0LnJlbG9hZF9hY3Rpb25zID0gQklUKERFVkxJTktfUkVMT0FEX0FDVElPTl9GV19BQ1RJVkFURSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo0ODY6XHQucmVsb2FkX2Rvd24gPSBpeGdiZV9kZXZsaW5rX3JlbG9hZF9lbXByX3N0YXJ0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NDg3Olx0LnJlbG9hZF91cCA9IGl4Z2JlX2RldmxpbmtfcmVsb2FkX2VtcHJfZmluaXNoLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDg4LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDkwLS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NDkxOiAqIGl4Z2JlX2FsbG9jYXRlX2RldmxpbmsgLSBBbGxvY2F0ZSBkZXZsaW5rIGluc3RhbmNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00OTItICogQGRldjogZGV2aWNlIHRvIGFsbG9jYXRlIGRldmxpbmsgZm9yXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDk4LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NDk5OnN0cnVjdCBpeGdiZV9hZGFwdGVyICppeGdiZV9hbGxvY2F0ZV9kZXZsaW5rKHN0cnVjdCBkZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTUwMC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo1MDE6XHRzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTUwMi1cdHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNTAzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NTA0Olx0ZGV2bGluayA9IGRldmxpbmtfYWxsb2MoXHUwMDI2aXhnYmVfZGV2bGlua19vcHMsIHNpemVvZigqYWRhcHRlciksIGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy01MDUtXHRpZiAoIWRldmxpbmspXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNTE0LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NTE1OiAqIGl4Z2JlX2Rldmxpbmtfc2V0X3N3aXRjaF9pZCAtIFNldCB1bmlxdWUgc3dpdGNoIElEIGJhc2VkIG9uIFBDSSBEU05cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTUxNi0gKiBAYWRhcHRlcjogcG9pbnRlciB0byB0aGUgZGV2aWNlIGFkYXB0ZXIgc3RydWN0dXJlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNTE4LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NTE5OnN0YXRpYyB2b2lkIGl4Z2JlX2Rldmxpbmtfc2V0X3N3aXRjaF9pZChzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTUyMC1cdFx0XHRcdFx0c3RydWN0IG5ldGRldl9waHlzX2l0ZW1faWQgKnBwaWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNTI4LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NTI5OiAqIGl4Z2JlX2RldmxpbmtfcmVnaXN0ZXJfcG9ydCAtIFJlZ2lzdGVyIGRldmxpbmsgcG9ydFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNTMwLSAqIEBhZGFwdGVyOiBwb2ludGVyIHRvIHRoZSBkZXZpY2UgYWRhcHRlciBzdHJ1Y3R1cmVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy01MzUtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo1MzY6aW50IGl4Z2JlX2RldmxpbmtfcmVnaXN0ZXJfcG9ydChzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTUzNy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNTQ2LVx0YXR0cnMubm9fcGh5c19wb3J0X25hbWUgPSAxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NTQ3Olx0aXhnYmVfZGV2bGlua19zZXRfc3dpdGNoX2lkKGFkYXB0ZXIsIFx1MDAyNmF0dHJzLnN3aXRjaF9pZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy01NDgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmgtNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5oOjc6c3RydWN0IGl4Z2JlX2FkYXB0ZXIgKml4Z2JlX2FsbG9jYXRlX2Rldmxpbmsoc3RydWN0IGRldmljZSAqZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5oOjg6aW50IGl4Z2JlX2RldmxpbmtfcmVnaXN0ZXJfcG9ydChzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuaDo5OnZvaWQgaXhnYmVfZGV2bGlua19pbml0X3JlZ2lvbnMoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmg6MTA6dm9pZCBpeGdiZV9kZXZsaW5rX2Rlc3Ryb3lfcmVnaW9ucyhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuaC0xMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjQ6I2luY2x1ZGUgXCYjMzQ7aXhnYmUuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy01LSNpbmNsdWRlIFwmIzM0O2RldmxpbmsuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6OTpzdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfcmVnaW9uX29wcyBpeGdiZV9udm1fcmVnaW9uX29wcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MTA6c3RhdGljIGNvbnN0IHN0cnVjdCBkZXZsaW5rX3JlZ2lvbl9vcHMgaXhnYmVfc3JhbV9yZWdpb25fb3BzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MTI6c3RhdGljIGludCBpeGdiZV9kZXZsaW5rX3BhcnNlX3JlZ2lvbihzdHJ1Y3QgaXhnYmVfaHcgKmh3LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xMy1cdFx0XHRcdCAgICAgIGNvbnN0IHN0cnVjdCBkZXZsaW5rX3JlZ2lvbl9vcHMgKm9wcyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTE1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MTY6XHRpZiAob3BzID09IFx1MDAyNml4Z2JlX252bV9yZWdpb25fb3BzKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTE3LVx0XHQqcmVhZF9zaGFkb3dfcmFtID0gZmFsc2U7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTE4LVx0XHQqbnZtX3NpemUgPSBody1cdTAwM2VmbGFzaC5mbGFzaF9zaXplO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxOTpcdH0gZWxzZSBpZiAob3BzID09IFx1MDAyNml4Z2JlX3NyYW1fcmVnaW9uX29wcykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0yMC1cdFx0KnJlYWRfc2hhZG93X3JhbSA9IHRydWU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0yOS0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MzA6ICogaXhnYmVfZGV2bGlua19udm1fc25hcHNob3QgLSBDYXB0dXJlIGEgc25hcHNob3Qgb2YgdGhlIE5WTSBjb250ZW50XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTMxLSAqIEBkZXZsaW5rOiB0aGUgZGV2bGluayBpbnN0YW5jZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtNDUtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjQ2OnN0YXRpYyBpbnQgaXhnYmVfZGV2bGlua19udm1fc25hcHNob3Qoc3RydWN0IGRldmxpbmsgKmRldmxpbmssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTQ3LVx0XHRcdFx0ICAgICAgY29uc3Qgc3RydWN0IGRldmxpbmtfcmVnaW9uX29wcyAqb3BzLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtNDkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzo1MDpcdHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyID0gZGV2bGlua19wcml2KGRldmxpbmspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzo1MTpcdHN0cnVjdCBpeGdiZV9odyAqaHcgPSBcdTAwMjZhZGFwdGVyLVx1MDAzZWh3O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy01Mi1cdGJvb2wgcmVhZF9zaGFkb3dfcmFtO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtNTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjU4Olx0ZXJyID0gaXhnYmVfZGV2bGlua19wYXJzZV9yZWdpb24oaHcsIG9wcywgXHUwMDI2cmVhZF9zaGFkb3dfcmFtLCBcdTAwMjZudm1fc2l6ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTU5LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTc2LVx0XHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6Nzc6XHRcdGVyciA9IGl4Z2JlX2FjcXVpcmVfbnZtKGh3LCBMSUJJRV9BUUNfUkVTX0FDQ0VTU19SRUFEKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtNzgtXHRcdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTg0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzo4NTpcdFx0ZXJyID0gaXhnYmVfcmVhZF9mbGF0X252bShodywgaSAqIElYR0JFX0RFVkxJTktfUkVBRF9CTEtfU0laRSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtODYtXHRcdFx0XHRcdCAgXHUwMDI2cmVhZF9zeiwgYnVmLCByZWFkX3NoYWRvd19yYW0pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtODktXHRcdFx0XHRcdCAgIFwmIzM0O0ZhaWxlZCB0byByZWFkIFJBTSBjb250ZW50XCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6OTA6XHRcdFx0aXhnYmVfcmVsZWFzZV9udm0oaHcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy05MS1cdFx0XHRrdmZyZWUobnZtX2RhdGEpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtOTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjk1Olx0XHRpeGdiZV9yZWxlYXNlX252bShodyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTk2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTA1LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxMDY6ICogaXhnYmVfZGV2bGlua19kZXZjYXBzX3NuYXBzaG90IC0gQ2FwdHVyZSBhIHNuYXBzaG90IG9mIGRldmljZSBjYXBhYmlsaXRpZXNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTA3LSAqIEBkZXZsaW5rOiB0aGUgZGV2bGluayBpbnN0YW5jZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTIxLSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxMjI6c3RhdGljIGludCBpeGdiZV9kZXZsaW5rX2RldmNhcHNfc25hcHNob3Qoc3RydWN0IGRldmxpbmsgKmRldmxpbmssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTEyMy1cdFx0XHRcdFx0ICBjb25zdCBzdHJ1Y3QgZGV2bGlua19yZWdpb25fb3BzICpvcHMsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xMjYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxMjc6XHRzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlciA9IGRldmxpbmtfcHJpdihkZXZsaW5rKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MTI4Olx0c3RydWN0IGl4Z2JlX2FjaV9jbWRfbGlzdF9jYXBzX2VsZW0gKmNhcHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjEyOTpcdHN0cnVjdCBpeGdiZV9odyAqaHcgPSBcdTAwMjZhZGFwdGVyLVx1MDAzZWh3O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xMzAtXHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTM1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxMzY6XHRlcnIgPSBpeGdiZV9hY2lfbGlzdF9jYXBzKGh3LCBjYXBzLCBJWEdCRV9BQ0lfTUFYX0JVRkZFUl9TSVpFLCBOVUxMLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxMzc6XHRcdFx0XHQgIGl4Z2JlX2FjaV9vcGNfbGlzdF9kZXZfY2Fwcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTEzOC1cdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTE0OS0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MTUwOiAqIGl4Z2JlX2RldmxpbmtfbnZtX3JlYWQgLSBSZWFkIGEgcG9ydGlvbiBvZiBOVk0gZmxhc2ggY29udGVudFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xNTEtICogQGRldmxpbms6IHRoZSBkZXZsaW5rIGluc3RhbmNlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xNjYtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjE2NzpzdGF0aWMgaW50IGl4Z2JlX2RldmxpbmtfbnZtX3JlYWQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTE2OC1cdFx0XHRcdCAgY29uc3Qgc3RydWN0IGRldmxpbmtfcmVnaW9uX29wcyAqb3BzLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTcxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MTcyOlx0c3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIgPSBkZXZsaW5rX3ByaXYoZGV2bGluayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjE3MzpcdHN0cnVjdCBpeGdiZV9odyAqaHcgPSBcdTAwMjZhZGFwdGVyLVx1MDAzZWh3O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xNzQtXHRib29sIHJlYWRfc2hhZG93X3JhbTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTE3Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MTc4Olx0ZXJyID0gaXhnYmVfZGV2bGlua19wYXJzZV9yZWdpb24oaHcsIG9wcywgXHUwMDI2cmVhZF9zaGFkb3dfcmFtLCBcdTAwMjZudm1fc2l6ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTE3OS1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xODYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjE4NzpcdGVyciA9IGl4Z2JlX2FjcXVpcmVfbnZtKGh3LCBMSUJJRV9BUUNfUkVTX0FDQ0VTU19SRUFEKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTg4LVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTkyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxOTM6XHRlcnIgPSBpeGdiZV9yZWFkX2ZsYXRfbnZtKGh3LCAodTMyKW9mZnNldCwgXHUwMDI2c2l6ZSwgZGF0YSwgcmVhZF9zaGFkb3dfcmFtKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTk0LVx0aWYgKGVycikge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xOTUtXHRcdE5MX1NFVF9FUlJfTVNHX01PRChleHRhY2ssIFwmIzM0O0ZhaWxlZCB0byByZWFkIE5WTSBjb250ZW50c1wmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjE5NjpcdFx0aXhnYmVfcmVsZWFzZV9udm0oaHcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xOTctXHRcdHJldHVybiAtRUlPO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTk5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoyMDA6XHRpeGdiZV9yZWxlYXNlX252bShodyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIwMS1cdHJldHVybiAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjAzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoyMDQ6c3RhdGljIGNvbnN0IHN0cnVjdCBkZXZsaW5rX3JlZ2lvbl9vcHMgaXhnYmVfbnZtX3JlZ2lvbl9vcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIwNS1cdC5uYW1lID0gXCYjMzQ7bnZtLWZsYXNoXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0yMDYtXHQuZGVzdHJ1Y3RvciA9IGt2ZnJlZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MjA3Olx0LnNuYXBzaG90ID0gaXhnYmVfZGV2bGlua19udm1fc25hcHNob3QsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjIwODpcdC5yZWFkID0gaXhnYmVfZGV2bGlua19udm1fcmVhZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjA5LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIxMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MjExOnN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2bGlua19yZWdpb25fb3BzIGl4Z2JlX3NyYW1fcmVnaW9uX29wcyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjEyLVx0Lm5hbWUgPSBcJiMzNDtzaGFkb3ctcmFtXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0yMTMtXHQuZGVzdHJ1Y3RvciA9IGt2ZnJlZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MjE0Olx0LnNuYXBzaG90ID0gaXhnYmVfZGV2bGlua19udm1fc25hcHNob3QsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjIxNTpcdC5yZWFkID0gaXhnYmVfZGV2bGlua19udm1fcmVhZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjE2LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIxNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MjE4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2bGlua19yZWdpb25fb3BzIGl4Z2JlX2RldmNhcHNfcmVnaW9uX29wcyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjE5LVx0Lm5hbWUgPSBcJiMzNDtkZXZpY2UtY2Fwc1wmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjIwLVx0LmRlc3RydWN0b3IgPSBrdmZyZWUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjIyMTpcdC5zbmFwc2hvdCA9IGl4Z2JlX2RldmxpbmtfZGV2Y2Fwc19zbmFwc2hvdCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjIyLX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0yMjQtLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjIyNTogKiBpeGdiZV9kZXZsaW5rX2luaXRfcmVnaW9ucyAtIEluaXRpYWxpemUgZGV2bGluayByZWdpb25zXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIyNi0gKiBAYWRhcHRlcjogYWRhcHRlciBpbnN0YW5jZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjMwLSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoyMzE6dm9pZCBpeGdiZV9kZXZsaW5rX2luaXRfcmVnaW9ucyhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjMyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIzNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MjM3Olx0aWYgKGFkYXB0ZXItXHUwMDNlaHcubWFjLnR5cGUgIT0gaXhnYmVfbWFjX2U2MTApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIzOC1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjQwLVx0bnZtX3NpemUgPSBhZGFwdGVyLVx1MDAzZWh3LmZsYXNoLmZsYXNoX3NpemU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjI0MTpcdGFkYXB0ZXItXHUwMDNlbnZtX3JlZ2lvbiA9IGRldmxfcmVnaW9uX2NyZWF0ZShkZXZsaW5rLCBcdTAwMjZpeGdiZV9udm1fcmVnaW9uX29wcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjQyLVx0XHRcdFx0XHRcdCAxLCBudm1fc2l6ZSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0yNTAtXHRzcmFtX3NpemUgPSBhZGFwdGVyLVx1MDAzZWh3LmZsYXNoLnNyX3dvcmRzICogMnU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjI1MTpcdGFkYXB0ZXItXHUwMDNlc3JhbV9yZWdpb24gPSBkZXZsX3JlZ2lvbl9jcmVhdGUoZGV2bGluaywgXHUwMDI2aXhnYmVfc3JhbV9yZWdpb25fb3BzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0yNTItXHRcdFx0XHRcdFx0ICAxLCBzcmFtX3NpemUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjYwLVx0YWRhcHRlci1cdTAwM2VkZXZjYXBzX3JlZ2lvbiA9IGRldmxfcmVnaW9uX2NyZWF0ZShkZXZsaW5rLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoyNjE6XHRcdFx0XHRcdFx0ICAgICBcdTAwMjZpeGdiZV9kZXZjYXBzX3JlZ2lvbl9vcHMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTI2Mi1cdFx0XHRcdFx0XHQgICAgIDEwLCBJWEdCRV9BQ0lfTUFYX0JVRkZFUl9TSVpFKTtcbi0tXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAxNjozMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDAwNwoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDU4NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCYjMzk7cyBXb3J0aGluZXNzIGZvciBGdXp6aW5nKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGBpeGdiZWAgKmlzKiDigJMgcmlnaHQsIGl0JiMzOTtzIHRoZSBJbnRlbCAxMCBHaWdhYml0IFBDSSBFeHByZXNzIE5ldHdvcmsgRHJpdmVyLiBUaGluayA4MjU5OCwgODI1OTksIHRob3NlIHNvcnRzIG9mIGNhcmRzLiBOb3csIHRoZSBjcml0aWNhbCBxdWVzdGlvbjogZG9lcyBRRU1VIGV2ZW4gKmVtdWxhdGUqIGBpeGdiZWA/IEkgbmVlZCB0byBrbm93IFFFTVUmIzM5O3Mgc3VwcG9ydGVkIG5ldHdvcmsgYWRhcHRlcnMuLi4gbGV0IG1lIHNlZS4uLiBlMTAwMCwgZTEwMDBlLCBpZ2IsIGFuZCBhIGJ1bmNoIG9mIG90aGVycy4uLiBidXQgKm5vKiBgaXhnYmVgLgoKSG9sZCBvbi4uLiBJICp0aG91Z2h0KiBRRU1VIGRpZG4mIzM5O3QgaGF2ZSBpdCwgYnV0IEkmIzM5O2QgYmV0dGVyIGJlIHN1cmUuIExldCBtZSBkb3VibGUgY2hlY2sgdGhvc2UgbmVnYXRpdmUgY3JpdGVyaWEgZnJvbSBzZWN0aW9uIDIgb2YgdGhlIGluc3RydWN0aW9ucy4gQWhhLCBpdCBzYXlzICYjMzQ7U3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOiAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSYjMzQ7LiBUaGF0IHNvdW5kcyBsaWtlIGEgbWF0Y2guCgpSaWdodCwgc28gbGV0JiMzOTtzIHNlZSB3aGF0ICpleGFjdGx5KiB0aGlzIHBhdGNoIGhhcyBtb2RpZmllZC4gR29pbmcgdGhyb3VnaCB0aGUgZGlmZnMsIGl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uY2AsIGBpeGdiZV9zcmlvdi5jYCwgYW5kIGBpeGdiZV9zcmlvdi5oYC4gU3BlY2lmaWNhbGx5LCB0aGV5JiMzOTt2ZSByZW1vdmVkIGNhbGxzIHRvIGFuZCBkZWZpbml0aW9ucyBvZiBhIGZ1bmN0aW9uIGNhbGxlZCBgaXhnYmVfcGluZ19hbGxfdmZzYC4KClRoZSBrZXkgaGVyZSBpcyB0aGF0IGBpeGdiZWAgKmlzKiBhIGRyaXZlciBmb3IgcGh5c2ljYWwgSW50ZWwoUikgMTBHYkUgbmV0d29yayBoYXJkd2FyZS4gR2l2ZW4gdGhhdCwgY2FuIHRoZSBwcm9iZSBmdW5jdGlvbiwgYGl4Z2JlX3Byb2JlYCwgYmUgdHJpZ2dlcmVkIHdpdGhvdXQgcGh5c2ljYWwgaGFyZHdhcmUgYmVpbmcgcHJlc2VudD8gVGhhdCBpcyB0aGUgZGVmaW5pbmcgcXVlc3Rpb24sIGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMTY6MzE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aXhnYmVfcHJvYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmM9MTE0OTI9c3RhdGljIGludCBpeGdiZV9yZWNvdmVyeV9wcm9iZShzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMtMTE1MzItLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmM6MTE1MzM6ICogaXhnYmVfcHJvYmUgLSBEZXZpY2UgSW5pdGlhbGl6YXRpb24gUm91dGluZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jLTExNTM0LSAqIEBwZGV2OiBQQ0kgZGV2aWNlIGluZm9ybWF0aW9uIHN0cnVjdFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYy0xMTUzOC0gKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jOjExNTM5OiAqIGl4Z2JlX3Byb2JlIGluaXRpYWxpemVzIGFuIGFkYXB0ZXIgaWRlbnRpZmllZCBieSBhIHBjaV9kZXYgc3RydWN0dXJlLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jLTExNTQwLSAqIFRoZSBPUyBpbml0aWFsaXphdGlvbiwgY29uZmlndXJpbmcgb2YgdGhlIGFkYXB0ZXIgcHJpdmF0ZSBzdHJ1Y3R1cmUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jLTExNTQyLSAqKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYzoxMTU0MzpzdGF0aWMgaW50IGl4Z2JlX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jLTExNTQ0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmM9MTIzNzI9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGl4Z2JlX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMtMTIzNzQtXHQuaWRfdGFibGUgID0gaXhnYmVfcGNpX3RibCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYzoxMjM3NTpcdC5wcm9iZSAgICAgPSBpeGdiZV9wcm9iZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYy0xMjM3Ni1cdC5yZW1vdmUgICAgPSBpeGdiZV9yZW1vdmUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfcGh5LmM9MTY2PWludCBpeGdiZV93cml0ZV9pMmNfY29tYmluZWRfZ2VuZXJpY19pbnQoc3RydWN0IGl4Z2JlX2h3ICpodywgdTggYWRkcixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYy0yMjEtLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYzoyMjI6ICogIGl4Z2JlX3Byb2JlX3BoeSAtIFByb2JlIGEgc2luZ2xlIGFkZHJlc3MgZm9yIGEgUEhZXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYy0yMjMtICogIEBodzogcG9pbnRlciB0byBoYXJkd2FyZSBzdHJ1Y3R1cmVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYy0yMjctICoqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfcGh5LmM6MjI4OnN0YXRpYyBib29sIGl4Z2JlX3Byb2JlX3BoeShzdHJ1Y3QgaXhnYmVfaHcgKmh3LCB1MTYgcGh5X2FkZHIpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYy0yMjkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3BoeS5jPTI2Mz1pbnQgaXhnYmVfaWRlbnRpZnlfcGh5X2dlbmVyaWMoc3RydWN0IGl4Z2JlX2h3ICpodylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYy0yODAtXHRcdFx0XHQgICAgIGh3LVx1MDAzZXBoeS5ud19tbmdfaWZfc2VsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3BoeS5jOjI4MTpcdFx0aWYgKGl4Z2JlX3Byb2JlX3BoeShodywgcGh5X2FkZHIpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfcGh5LmMtMjgyLVx0XHRcdHJldHVybiAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3BoeS5jLTI4Ny1cdGZvciAocGh5X2FkZHIgPSAwOyBwaHlfYWRkciBcdTAwM2MgSVhHQkVfTUFYX1BIWV9BRERSOyBwaHlfYWRkciYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3BoeS5jOjI4ODpcdFx0aWYgKGl4Z2JlX3Byb2JlX3BoeShodywgcGh5X2FkZHIpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYy0yODktXHRcdFx0c3RhdHVzID0gMDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYz0xMDI2PWludCBpeGdiZV9taWlfYnVzX2luaXQoc3RydWN0IGl4Z2JlX2h3ICpodylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYy0xMDgxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfcGh5LmM6MTA4MjpcdC8qIFN1cHBvcnQgY2xhdXNlIDIyLzQ1IG5hdGl2ZWx5LiAgaXhnYmVfcHJvYmUoKSBzZXRzIE1ESU9fRU1VTEFURV9DMjJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3BoeS5jLTEwODMtXHQgKiB1bmZvcnR1bmF0ZWx5IHRoYXQgY2F1c2VzIHNvbWUgY2xhdXNlIDIyIGZyYW1lcyB0byBiZSBzZW50IHdpdGhcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAxNjozMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjM1NwoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDIxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3M6CgoqKkRpdmluZyBpbnRvIERldmljZSBNYXRjaGluZyoqCgpBbHJpZ2h0LCB0aW1lIHRvIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyBkcml2ZXIgaXMgaWRlbnRpZnlpbmcgYW5kIHdvcmtpbmcgd2l0aCBzcGVjaWZpYyBoYXJkd2FyZS4gVGhlIGZpcnN0IHBsYWNlIEkmIzM5O20gZ29pbmcgdG8gbG9vayBpcyB0aGUgYGl4Z2JlX3BjaV90YmxgLiBJIGV4cGVjdCB0aGlzIHRvIGJlIHRoZSBwcmltYXJ5IGxvb2t1cCB0YWJsZSwgdGhlIGRlZmluaXRpdmUgbGlzdCB0aGF0IG1hcHMgUENJIGRldmljZSBJRHMgdG8gdGhpcyBwYXJ0aWN1bGFyIGl4Z2JlIGRyaXZlci4gVGhpcyB0YWJsZSBpcyB0aGUgY29ybmVyc3RvbmU7IGl0IHNob3VsZCByZXZlYWwgdGhlIGV4YWN0IGRldmljZXMgdGhpcyBtb2R1bGUgaXMgZGVzaWduZWQgdG8gc3VwcG9ydCwgYW5kIGhvdyBpdCBkaWZmZXJlbnRpYXRlcyB0aGVtLiBMZXQmIzM5O3Mgc2VlIHdoYXQgZGV2aWNlcyBhcmUgbGlzdGVkLCBhbmQgaG93IHRoZSBkcml2ZXIgZGV0ZXJtaW5lcyBhIG1hdGNoLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDE2OjMxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2l4Z2JlX3BjaV90YmwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmM9NzA9c3RhdGljIGNvbnN0IHN0cnVjdCBpeGdiZV9pbmZvICppeGdiZV9pbmZvX3RibFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYy04MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYzo4MjovKiBpeGdiZV9wY2lfdGJsIC0gUENJIERldmljZSBJRCBUYWJsZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jLTgzLSAqXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jLTg5LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jOjkwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBpeGdiZV9wY2lfdGJsW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMtOTEtXHR7IFBDSV9WREVWSUNFKElOVEVMLCBJWEdCRV9ERVZfSURfODI1OTgpLCAuZHJpdmVyX2RhdGEgPSBib2FyZF84MjU5OCB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYy0xNDUtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYzoxNDY6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIGl4Z2JlX3BjaV90YmwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jLTE0Ny1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmM9MTE0OTI9c3RhdGljIGludCBpeGdiZV9yZWNvdmVyeV9wcm9iZShzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMtMTE1MzQtICogQHBkZXY6IFBDSSBkZXZpY2UgaW5mb3JtYXRpb24gc3RydWN0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmM6MTE1MzU6ICogQGVudDogZW50cnkgaW4gaXhnYmVfcGNpX3RibFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jLTExNTM2LSAqXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jPTEyMzcyPXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBpeGdiZV9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMtMTIzNzMtXHQubmFtZSAgICAgID0gaXhnYmVfZHJpdmVyX25hbWUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmM6MTIzNzQ6XHQuaWRfdGFibGUgID0gaXhnYmVfcGNpX3RibCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYy0xMjM3NS1cdC5wcm9iZSAgICAgPSBpeGdiZV9wcm9iZSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAxNjozMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzI2MQoJCQkJCQkJb3V0cHV0OiAxNDQKCQkJCQkJCXRob3VnaHRzOiA5MDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nIEV2YWx1YXRpb246IGl4Z2JlIERyaXZlciBNb2RpZmljYXRpb25zKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIFdlJiMzOTtyZSBsb29raW5nIGF0IGNoYW5nZXMgdG8gdGhlIGBpeGdiZWAgZHJpdmVyLCBzcGVjaWZpY2FsbHkgYGl4Z2JlX3dhdGNoZG9nX2xpbmtfaXNfdXBgLCBgaXhnYmVfd2F0Y2hkb2dfbGlua19pc19kb3duYCwgYW5kIGBpeGdiZV9waW5nX2FsbF92ZnNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsICYjMzQ7aXhnYmUuLi4gSW50ZWwgMTBHYkUgbmV0d29yayBjYXJkcy4mIzM0OyBSaWdodCBhd2F5LCBJIGtub3cgdGhpcyBpcyBhIFBDSSBkcml2ZXIuIFRoZSBxdWVzdGlvbiB0aGVuIGJlY29tZXMsIGFyZSB0aGVzZSBkZXZpY2VzIGVtdWxhdGVkIGluIGEgdHlwaWNhbCBmdXp6aW5nIGVudmlyb25tZW50IGxpa2UgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmUgKEdDRSk/IFRoZSBhbnN3ZXIgaXMgYSBkZWZpbml0aXZlICYjMzQ7bm8uJiMzNDsgU3RhbmRhcmQgUUVNVSBkb2VzbiYjMzk7dCBlbXVsYXRlIGl4Z2JlIE5JQ3MuIEl0IGVtdWxhdGVzIGUxMDAwLCBlMTAwMGUsIGFuZCBpZ2IsIGJ1dCBub3QgaXhnYmUuIFRoZXkgYXJlbiYjMzk7dCBwcmVzZW50IGluIHN0YW5kYXJkIHN5emthbGxlciBlbnZpcm9ubWVudHMuCgpXZSBuZWVkIHRvIGNvbnNpZGVyIHRoZSBuZWdhdGl2ZSBjcml0ZXJpYSBmb3IgV29ydGhGdXp6aW5nOiAmIzM0O1N0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZS4uLiByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiYjMzQ7IFRoaXMgYWJzb2x1dGVseSBhcHBsaWVzIGhlcmUuIFRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZmluZCBjcmFzaGVzIGluICpyZWFjaGFibGUqIGNvZGUuIFNpbmNlIHRoZSBtb2RpZmllZCBjb2RlIHdpdGhpbiBgaXhnYmVgIGRlcGVuZHMgb24gcGh5c2ljYWwgMTBHYkUgaGFyZHdhcmUsIHdoaWNoIGlzICpub3QqIGVtdWxhdGVkLCBpdCYjMzk7cyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuCgpOb3csIGNvdWxkIHRoZXJlIGJlIHNvbWUgb3RoZXIgd2F5IHRvIGluc3RhbnRpYXRlIGBpeGdiZWAgdmlydHVhbGx5PyBNYXliZSBTUi1JT1Y/IEFoLCB5ZXMsIHRoZXJlIGlzIHRoZSBgaXhnYmV2ZmAgZHJpdmVyIGZvciBWaXJ0dWFsIEZ1bmN0aW9ucy4gSG93ZXZlciwgYGl4Z2JldmZgIHN0aWxsIHJlbGllcyBvbiBlaXRoZXIgYSBwaHlzaWNhbCBmdW5jdGlvbiBvciB0aGUgZW11bGF0ZWQgU1ItSU9WIFZGIGhhcmR3YXJlLCB3aGljaCBRRU1VIGFsc28gZG9lc24mIzM5O3QgcHJvdmlkZSBmb3IgaXhnYmUuCgpUaGVyZWZvcmUsIHRoZSBtb2RpZmljYXRpb25zIGFyZSB3aXRoaW4gYGl4Z2JlYCwgYSBQQ0kgZHJpdmVyIGZvciBwaHlzaWNhbCBJbnRlbCAxMEdiRSBhZGFwdGVycy4gVGhpcyBjb25maXJtcyBteSBhc3Nlc3NtZW50OiB0aGUgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuIFRoZXJlJiMzOTtzIG5vIHdheSBzeXprYWxsZXIgY2FuIHRyaWdnZXIgdGhlc2UgY29kZSBwYXRocyB3aXRob3V0IHRoYXQgcGh5c2ljYWwgaGFyZHdhcmUuCgpTbywgbGV0JiMzOTtzIGNoZWNrIGZvciBhbnkgY29uZmlncyBvciBmb2N1cyBzeW1ib2xzIHdlIG5lZWQgdG8gY29uc2lkZXIuIE5vcGUsIG5vdGhpbmcuIFdoZW4gV29ydGhGdXp6aW5nIGlzIGZhbHNlLCB3ZSBzaG91bGQgaGF2ZSBlbXB0eSBhcnJheXMgZm9yIGBFbmFibGVDb25maWdzYCBhbmQgYEZvY3VzU3ltYm9sc2AsIGFuZCBhIGNsZWFyIGV4cGxhbmF0aW9uLgoKVGhlIHJlYXNvbmluZyBpcyBzdHJhaWdodGZvcndhcmQ6IFRoZSBjaGFuZ2VzIGFyZSB0byB0aGUgSW50ZWwgMTBHYkUgbmV0d29yayBkcml2ZXIgKGBpeGdiZWApLiBUaGV5IGFyZSByZWxhdGVkIHRvIHdhdGNoZG9nIGxpbmsgc3RhdGUgaGFuZGxlcnMgYW5kIFNSLUlPViBzdXBwb3J0LiBIb3dldmVyLCBgaXhnYmVgIGRyaXZlcyAqcGh5c2ljYWwqIFBDSSBkZXZpY2VzICg4MjU5OCwgODI1OTksIFg1NDAsIFg1NTAsIEU2MTApLCB3aGljaCBhcmUgbm90IGVtdWxhdGVkIGluIFFFTVUgb3IgR0NFLiBUaGlzIG1lYW5zIHRoZSBjb2RlIGlzIHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLgoKQWxyaWdodCwgdGhhdCYjMzk7cyBzb2xpZC4gVGltZSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDE2OjMxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEludGVsIDEwR2JFIFBDSSBkcml2ZXIgKGl4Z2JlKSwgc3BlY2lmaWNhbGx5IHJlbW92aW5nIHRoZSBpeGdiZV9waW5nX2FsbF92ZnMoKSBmdW5jdGlvbiBhbmQgaXRzIGNhbGxzIGluIHRoZSBsaW5rIHdhdGNoZG9nIGhhbmRsZXJzLiBUaGUgaXhnYmUgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIEludGVsIDEwIEdpZ2FiaXQgRXRoZXJuZXQgaGFyZHdhcmUgKHN1Y2ggYXMgODI1OTgsIDgyNTk5LCBYNTQwLCBYNTUwKSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLiBBcyBzdWNoLCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIHN5emthbGxlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBJbnRlbCAxMEdiRSBQQ0kgZHJpdmVyIChpeGdiZSksIHNwZWNpZmljYWxseSByZW1vdmluZyB0aGUgaXhnYmVfcGluZ19hbGxfdmZzKCkgZnVuY3Rpb24gYW5kIGl0cyBjYWxscyBpbiB0aGUgbGluayB3YXRjaGRvZyBoYW5kbGVycy4gVGhlIGl4Z2JlIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBJbnRlbCAxMCBHaWdhYml0IEV0aGVybmV0IGhhcmR3YXJlIChzdWNoIGFzIDgyNTk4LCA4MjU5OSwgWDU0MCwgWDU1MCkgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy4gQXMgc3VjaCwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBzeXprYWxsZXIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAxNjozMTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDktMTVUMTY6Mjk6NDQuNDU2MTQxOTE0WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTEzNzc2NzQ1NDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgSW50ZWwgMTBHYkUgUENJIGRyaXZlciAoaXhnYmUpLCBzcGVjaWZpY2FsbHkgcmVtb3ZpbmcgdGhlIGl4Z2JlX3BpbmdfYWxsX3ZmcygpIGZ1bmN0aW9uIGFuZCBpdHMgY2FsbHMgaW4gdGhlIGxpbmsgd2F0Y2hkb2cgaGFuZGxlcnMuIFRoZSBpeGdiZSBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgSW50ZWwgMTAgR2lnYWJpdCBFdGhlcm5ldCBoYXJkd2FyZSAoc3VjaCBhcyA4MjU5OCwgODI1OTksIFg1NDAsIFg1NTApIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuIEFzIHN1Y2gsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3Igc3l6a2FsbGVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMTY6Mjk6NDQuNDU2MTQ2NjE0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0OTc5MjIyMzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBmYjM2MDE5NWRmYTk1NmFlN2YxM2ZlMWU4Y2YyOTE0MTlhZWE1ZDJkXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgU2VwIDE1IDE2OjI5OjQzIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uY1xcbmluZGV4IGY5MTg1NjQ5OGViMmQuLjM2NWFjZjg5MGIzYTcgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jXFxuQEAgLTgxODEsOSArODE4MSw2IEBAIHN0YXRpYyB2b2lkIGl4Z2JlX3dhdGNoZG9nX2xpbmtfaXNfdXAoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIpXFxuIFxcbiBcXHQvKiB1cGRhdGUgdGhlIGRlZmF1bHQgdXNlciBwcmlvcml0eSBmb3IgVkZzICovXFxuIFxcdGl4Z2JlX3VwZGF0ZV9kZWZhdWx0X3VwKGFkYXB0ZXIpO1xcbi1cXG4tXFx0LyogcGluZyBhbGwgdGhlIGFjdGl2ZSB2ZnMgdG8gbGV0IHRoZW0ga25vdyBsaW5rIGhhcyBjaGFuZ2VkICovXFxuLVxcdGl4Z2JlX3BpbmdfYWxsX3ZmcyhhZGFwdGVyKTtcXG4gfVxcbiBcXG4gLyoqXFxuQEAgLTgyMTQsOSArODIxMSw2IEBAIHN0YXRpYyB2b2lkIGl4Z2JlX3dhdGNoZG9nX2xpbmtfaXNfZG93bihzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcilcXG4gXFxuIFxcdGVfaW5mbyhkcnYsIFxcXCJOSUMgTGluayBpcyBEb3duXFxcXG5cXFwiKTtcXG4gXFx0bmV0aWZfY2Fycmllcl9vZmYobmV0ZGV2KTtcXG4tXFxuLVxcdC8qIHBpbmcgYWxsIHRoZSBhY3RpdmUgdmZzIHRvIGxldCB0aGVtIGtub3cgbGluayBoYXMgY2hhbmdlZCAqL1xcbi1cXHRpeGdiZV9waW5nX2FsbF92ZnMoYWRhcHRlcik7XFxuIH1cXG4gXFxuIHN0YXRpYyBib29sIGl4Z2JlX3JpbmdfdHhfcGVuZGluZyhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcilcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfc3Jpb3YuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3NyaW92LmNcXG5pbmRleCA0MzFkNzdkYTE1YTVmLi5kYTY0MWU5MTQ4MWI4IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3NyaW92LmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9zcmlvdi5jXFxuQEAgLTE1MTUsMjAgKzE1MTUsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaXhnYmVfcGluZ192ZihzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlciwgaW50IHZmKVxcbiBcXHRpeGdiZV93cml0ZV9tYngoaHcsIFxcdTAwMjZwaW5nLCAxLCB2Zik7XFxuIH1cXG4gXFxuLXZvaWQgaXhnYmVfcGluZ19hbGxfdmZzKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKVxcbi17XFxuLVxcdHN0cnVjdCBpeGdiZV9odyAqaHcgPSBcXHUwMDI2YWRhcHRlci1cXHUwMDNlaHc7XFxuLVxcdHUzMiBwaW5nO1xcbi1cXHRpbnQgaTtcXG4tXFxuLVxcdGZvciAoaSA9IDAgOyBpIFxcdTAwM2MgYWRhcHRlci1cXHUwMDNlbnVtX3ZmczsgaSsrKSB7XFxuLVxcdFxcdHBpbmcgPSBJWEdCRV9QRl9DT05UUk9MX01TRztcXG4tXFx0XFx0aWYgKGFkYXB0ZXItXFx1MDAzZXZmaW5mb1tpXS5jbGVhcl90b19zZW5kKVxcbi1cXHRcXHRcXHRwaW5nIHw9IElYR0JFX1ZUX01TR1RZUEVfQ1RTO1xcbi1cXHRcXHRpeGdiZV93cml0ZV9tYngoaHcsIFxcdTAwMjZwaW5nLCAxLCBpKTtcXG4tXFx0fVxcbi19XFxuLVxcbiAvKipcXG4gICogaXhnYmVfc2V0X2FsbF92ZnMgLSB1cGRhdGUgdmZzIHF1ZXVlc1xcbiAgKiBAYWRhcHRlcjogUG9pbnRlciB0byBhZGFwdGVyIHN0cnVjdFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9zcmlvdi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfc3Jpb3YuaFxcbmluZGV4IGJjNGNhYjk3NmJmOTUuLmY3NTViZmQ4NDQ4MGMgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfc3Jpb3YuaFxcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3NyaW92LmhcXG5AQCAtMTgsNyArMTgsNiBAQCB2b2lkIGl4Z2JlX3Jlc3RvcmVfdmZfbXVsdGljYXN0cyhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcik7XFxuIGJvb2wgaXhnYmVfY2hlY2tfbWRkX2V2ZW50KHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKTtcXG4gdm9pZCBpeGdiZV9tc2dfdGFzayhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcik7XFxuIGludCBpeGdiZV92Zl9jb25maWd1cmF0aW9uKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1bnNpZ25lZCBpbnQgZXZlbnRfbWFzayk7XFxuLXZvaWQgaXhnYmVfcGluZ19hbGxfdmZzKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKTtcXG4gdm9pZCBpeGdiZV9zZXRfYWxsX3ZmcyhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcik7XFxuIGludCBpeGdiZV9uZG9fc2V0X3ZmX21hYyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBpbnQgcXVldWUsIHU4ICptYWMpO1xcbiBpbnQgaXhnYmVfbmRvX3NldF92Zl92bGFuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBxdWV1ZSwgdTE2IHZsYW4sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE1VDE2OjI5OjQ0Ljk1NTMxMTkwNloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImNvcmUiLCJEdXJhdGlvbiI6OTA4Nzg0ODUxMDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBJbnRlbCAxMEdiRSBQQ0kgZHJpdmVyIChpeGdiZSksIHNwZWNpZmljYWxseSByZW1vdmluZyB0aGUgaXhnYmVfcGluZ19hbGxfdmZzKCkgZnVuY3Rpb24gYW5kIGl0cyBjYWxscyBpbiB0aGUgbGluayB3YXRjaGRvZyBoYW5kbGVycy4gVGhlIGl4Z2JlIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBJbnRlbCAxMCBHaWdhYml0IEV0aGVybmV0IGhhcmR3YXJlIChzdWNoIGFzIDgyNTk4LCA4MjU5OSwgWDU0MCwgWDU1MCkgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy4gQXMgc3VjaCwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBzeXprYWxsZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lciBhbmQgc2VjdXJpdHkgZW5naW5lZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzXG50b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsXG5hbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLlxuXG4tIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOlxuICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkXG4gIGVudmlyb25tZW50cyAoR0NFIG9yIFFFTVUsIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBkZXZpY2VzIGxpa2UgVVNCIGdhZGdldHMsIG5ldGRldiwgdHVuL3RhcCkuXG4gIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCxcbiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLlxuXG4tIERPIE5PVCBCTElORExZIFRSVVNUIFwiTk8gRlVOQ1RJT05BTCBDSEFOR0VcIiAoTkZDSSkgT1IgXCJSRUZBQ1RPUklOR1wiIENMQUlNUzpcbiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyBcImNsZWFudXBzXCIsIFwicmVmYWN0b3JpbmdzXCIsIG9yIHN0YXRlXG4gIFwiTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWRcIi4gRG8gTk9UIHRha2UgdGhlc2UgY2xhaW1zIGF0IGZhY2UgdmFsdWUuXG4gIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudFxuICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy5cbiAgSWYgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSBpcyBtb2RpZmllZCBvciByZWZhY3RvcmVkLCBpdCBNVVNUIGJlIGZ1enplZC5cblxuLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDpcbiAgV2hlbiBhIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXMgcnVudGltZSBjaGVja3Mgb3IgYXNzZXJ0aW9ucyAoZS5nLiwgV0FSTl9PTiosIFZNX1dBUk5fT04qLFxuICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy5cbiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlclxuICBhbiB1bnVzdWFsIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMgY2FuIHZpb2xhdGUgaXQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4yLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9ZmFsc2UgKE5FR0FUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6XG5cbi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczpcbiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuXG4gICogVXNlci1zcGFjZSBkaXJlY3Rvcmllcywgc2VsZi10ZXN0cywgc2FtcGxlcywgb3Igc2NyaXB0cyAoZS5nLiwgdG9vbHMvLCBzYW1wbGVzLywgc2NyaXB0cy8sIHVzci8pXG4gICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLlxuICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzXG4gICAgdGhhdCBkbyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGRhdGEgc3RydWN0dXJlcy5cbiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuXG4tIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZTpcbiAgKiBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOlxuICAqIERyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKC5yZW1vdmUsIC5zaHV0ZG93biwgcGNpX3VucmVnaXN0ZXJfZHJpdmVyKSBleGVjdXRlZCBvbmx5IGR1cmluZ1xuICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLlxuICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOlxuLSBDb3JlIFN1YnN5c3RlbXM6XG4gICogQW55IGxvZ2ljIG1vZGlmaWNhdGlvbnMgaW4gbWVtb3J5IG1hbmFnZW1lbnQgKG1tLyksIHN5bmNocm9uaXphdGlvbi9sb2NraW5nIChrZXJuZWwvbG9ja2luZy8pLFxuICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy5cbi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOlxuICAqIEFueSByZXN0cnVjdHVyaW5nIG9mIHJlYWNoYWJsZSBkYXRhIHN0cnVjdHVyZXMsIGhlbHBlciBhYnN0cmFjdGlvbnMsIG9yIGFsZ29yaXRobSBmbG93cy5cbi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOlxuICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy5cbi0gUmVhY2hhYmxlIERyaXZlcnMgYW5kIFByb3RvY29sczpcbiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG40LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTilcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5XaGVuIFdvcnRoRnV6emluZz10cnVlLCB5b3UgbXVzdCBleHRyYWN0IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgaW50byBGb2N1c1N5bWJvbHMgdG8gZ3VpZGUgdGhlIGZ1enplcjpcblxuLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6XG4gIERvIE5PVCBsaXN0IGdlbmVyaWMsIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhbGxlZCBieSBhbG1vc3QgZXZlcnkgcHJvZ3JhbSBpbiB0aGUgY29ycHVzXG4gIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0XG4gIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLlxuICBMaXN0aW5nIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhdXNlcyB0aGUgZnV6emVyIHRvIGNsYXNzaWZ5IHRob3VzYW5kcyBvZiB1bnJlbGF0ZWQgdGVzdHMgYXMgXCJmb2N1c2VkXCIsXG4gIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy5cblxuLSBUQVJHRVQgU1BFQ0lGSUMgRkVBVFVSRSBMT0dJQyBBTkQgRU5UUllQT0lOVFM6XG4gIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50c1xuICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy5cblxuLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6XG4gIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2tcbiAgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyBpbiB2bWxpbnV4IGFuZCBjYW5ub3QgYmUgdGFyZ2V0ZWQgZGlyZWN0bHkgYnkgc3ltYm9sIGNvdmVyYWdlIGZpbHRlcnMuXG4gIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlclxuICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG41LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZTpcbi0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbi0gQ2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzIG5lZWRlZC5cbi0gU3RyaXAgYW55ICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0XG5cbkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGZiMzYwMTk1ZGZhOTU2YWU3ZjEzZmUxZThjZjI5MTQxOWFlYTVkMmRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIFNlcCAxNSAxNjoyOTo0MyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uY1xuaW5kZXggZjkxODU2NDk4ZWIyZC4uMzY1YWNmODkwYjNhNyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jXG5AQCAtODE4MSw5ICs4MTgxLDYgQEAgc3RhdGljIHZvaWQgaXhnYmVfd2F0Y2hkb2dfbGlua19pc191cChzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcilcbiBcbiBcdC8qIHVwZGF0ZSB0aGUgZGVmYXVsdCB1c2VyIHByaW9yaXR5IGZvciBWRnMgKi9cbiBcdGl4Z2JlX3VwZGF0ZV9kZWZhdWx0X3VwKGFkYXB0ZXIpO1xuLVxuLVx0LyogcGluZyBhbGwgdGhlIGFjdGl2ZSB2ZnMgdG8gbGV0IHRoZW0ga25vdyBsaW5rIGhhcyBjaGFuZ2VkICovXG4tXHRpeGdiZV9waW5nX2FsbF92ZnMoYWRhcHRlcik7XG4gfVxuIFxuIC8qKlxuQEAgLTgyMTQsOSArODIxMSw2IEBAIHN0YXRpYyB2b2lkIGl4Z2JlX3dhdGNoZG9nX2xpbmtfaXNfZG93bihzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcilcbiBcbiBcdGVfaW5mbyhkcnYsIFwiTklDIExpbmsgaXMgRG93blxcblwiKTtcbiBcdG5ldGlmX2NhcnJpZXJfb2ZmKG5ldGRldik7XG4tXG4tXHQvKiBwaW5nIGFsbCB0aGUgYWN0aXZlIHZmcyB0byBsZXQgdGhlbSBrbm93IGxpbmsgaGFzIGNoYW5nZWQgKi9cbi1cdGl4Z2JlX3BpbmdfYWxsX3ZmcyhhZGFwdGVyKTtcbiB9XG4gXG4gc3RhdGljIGJvb2wgaXhnYmVfcmluZ190eF9wZW5kaW5nKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3NyaW92LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9zcmlvdi5jXG5pbmRleCA0MzFkNzdkYTE1YTVmLi5kYTY0MWU5MTQ4MWI4IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfc3Jpb3YuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfc3Jpb3YuY1xuQEAgLTE1MTUsMjAgKzE1MTUsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaXhnYmVfcGluZ192ZihzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlciwgaW50IHZmKVxuIFx0aXhnYmVfd3JpdGVfbWJ4KGh3LCBcdTAwMjZwaW5nLCAxLCB2Zik7XG4gfVxuIFxuLXZvaWQgaXhnYmVfcGluZ19hbGxfdmZzKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKVxuLXtcbi1cdHN0cnVjdCBpeGdiZV9odyAqaHcgPSBcdTAwMjZhZGFwdGVyLVx1MDAzZWh3O1xuLVx0dTMyIHBpbmc7XG4tXHRpbnQgaTtcbi1cbi1cdGZvciAoaSA9IDAgOyBpIFx1MDAzYyBhZGFwdGVyLVx1MDAzZW51bV92ZnM7IGkrKykge1xuLVx0XHRwaW5nID0gSVhHQkVfUEZfQ09OVFJPTF9NU0c7XG4tXHRcdGlmIChhZGFwdGVyLVx1MDAzZXZmaW5mb1tpXS5jbGVhcl90b19zZW5kKVxuLVx0XHRcdHBpbmcgfD0gSVhHQkVfVlRfTVNHVFlQRV9DVFM7XG4tXHRcdGl4Z2JlX3dyaXRlX21ieChodywgXHUwMDI2cGluZywgMSwgaSk7XG4tXHR9XG4tfVxuLVxuIC8qKlxuICAqIGl4Z2JlX3NldF9hbGxfdmZzIC0gdXBkYXRlIHZmcyBxdWV1ZXNcbiAgKiBAYWRhcHRlcjogUG9pbnRlciB0byBhZGFwdGVyIHN0cnVjdFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3NyaW92LmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9zcmlvdi5oXG5pbmRleCBiYzRjYWI5NzZiZjk1Li5mNzU1YmZkODQ0ODBjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfc3Jpb3YuaFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfc3Jpb3YuaFxuQEAgLTE4LDcgKzE4LDYgQEAgdm9pZCBpeGdiZV9yZXN0b3JlX3ZmX211bHRpY2FzdHMoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIpO1xuIGJvb2wgaXhnYmVfY2hlY2tfbWRkX2V2ZW50KHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKTtcbiB2b2lkIGl4Z2JlX21zZ190YXNrKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKTtcbiBpbnQgaXhnYmVfdmZfY29uZmlndXJhdGlvbihzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdW5zaWduZWQgaW50IGV2ZW50X21hc2spO1xuLXZvaWQgaXhnYmVfcGluZ19hbGxfdmZzKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKTtcbiB2b2lkIGl4Z2JlX3NldF9hbGxfdmZzKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKTtcbiBpbnQgaXhnYmVfbmRvX3NldF92Zl9tYWMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgaW50IHF1ZXVlLCB1OCAqbWFjKTtcbiBpbnQgaXhnYmVfbmRvX3NldF92Zl92bGFuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBxdWV1ZSwgdTE2IHZsYW4sXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQxNjoyOTo0NC45NTU5NDk4NzZaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuOC1mbGFzaCIsIkR1cmF0aW9uIjo2ODM2NDY5MDIyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIGl4Z2JlIERyaXZlciBQYXRjaCBmb3IgV29ydGhGdXp6aW5nIENyaXRlcmlhKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBhZmZlY3RzIHRoZSBJbnRlbCBpeGdiZSBkcml2ZXIsIHNwZWNpZmljYWxseSBpbiBgaXhnYmVfbWFpbi5jYCwgYGl4Z2JlX3NyaW92LmNgLCBhbmQgYGl4Z2JlX3NyaW92LmhgLiBJdCBsb29rcyBsaWtlIGl0J3MgcmVtb3ZpbmcgY2FsbHMgdG8gYGl4Z2JlX3BpbmdfYWxsX3Zmc2AgYW5kIHRoZSBmdW5jdGlvbiBpdHNlbGYuIE5vdywgbXkgYnJhaW4gaW1tZWRpYXRlbHkganVtcHMgdG8gdGhlIFwiV29ydGhGdXp6aW5nXCIgcnVsZXMuICBTcGVjaWZpY2FsbHksIHRoZSBuZWdhdGl2ZSBjcml0ZXJpYTogXCJTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmUuXCIgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhpcyBwYXRjaCBmYWxscyBpbnRvIHRoYXQgY2F0ZWdvcnkuXG5cblRoZSBrZXkgcXVlc3Rpb24gaGVyZSBpcyB3aGV0aGVyIHRoZSBpeGdiZSBkcml2ZXIsIHdoaWNoIGhhbmRsZXMgdGhvc2UgSW50ZWwgODI1OTkgYW5kIHNpbWlsYXIgMTAgR2lnYWJpdCBFdGhlcm5ldCBjb250cm9sbGVycywgaXMgKmVtdWxhdGVkKiBpbiBzdGFuZGFyZCBRRU1VLiAgVGhlIGRvY3VtZW50YXRpb24gbGlzdHMgc2V2ZXJhbCBlbXVsYXRlZCBOSUNzIGxpa2UgZTEwMDAsIGUxMDAwZSwgaWdiIChpbiBzb21lIHZlcnNpb25zKSwgdm14bmV0MywgYW5kIHZpcnRpby1uZXQsIGV0Yy4sIGJ1dCAqZG9lcyogaXQgZXhwbGljaXRseSBtZW50aW9uIGl4Z2JlPyBNeSBpbml0aWFsIHRob3VnaHQgaXMgKm5vKiwgYnV0IEkgbmVlZCB0byBiZSBjZXJ0YWluLlxuXG5MZXQncyBkbyBzb21lIHF1aWNrIHJlc2VhcmNoIG9uIFFFTVUncyBkZXZpY2UgbW9kZWxzLiBJJ20gZ29pbmcgdG8gcXVpY2tseSBsb29rIGFuZCBzZWUgaWYgSSBjYW4gZXZlbiBpbnN0YW50aWF0ZSBhbiBpeGdiZSBkZXZpY2UgaW4gUUVNVS4gIE15IHF1aWNrIHNjYW4gb2YgUUVNVSdzIGF2YWlsYWJsZSBuZXR3b3JrIGRldmljZSBtb2RlbHMgcmV2ZWFscyBubyBpeGdiZS4gSSBjYW4gc2VlIGUxMDAwLCBlMTAwMGUsIGlnYiwgYnV0IG5vdGhpbmcgZm9yIGl4Z2JlLCB3aGljaCBpcyBhIGJpZyByZWQgZmxhZy5cblxuR2l2ZW4gdGhhdCBpeGdiZSBpc24ndCBsaXN0ZWQsIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgdGhlcmUncyBzb21lIGtpbmQgb2YgdmlydHVhbCBvciBtb2NrIHN1cHBvcnQgZm9yIGl4Z2JlIHRoYXQgbWlnaHQgc3RpbGwgYWxsb3cgZm9yIHRlc3RpbmcgaW4gZW52aXJvbm1lbnRzIGxpa2UgU3l6a2FsbGVyIG9yIHN0YW5kYXJkIHZpcnR1YWxpemVkIHNldHVwcy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIGRyaXZlciBpcyB0ZXN0YWJsZSwgYnV0IEknbSBsZWFuaW5nIGhlYXZpbHkgdG93YXJkcyBcInVucmVhY2hhYmxlXCIgaWYgaXQncyBub3QgZW11bGF0ZWQuIEknbSBnb2luZyB0byBsb29rIGZvciBhbnkgbWVudGlvbiBvZiB2aXJ0dWFsIG9yIG1vY2sgaXhnYmUgc3VwcG9ydCBiZWZvcmUgcHJvY2VlZGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzc3MywiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ4NSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE1VDE2OjMwOjUzLjMyMDY0MzI4M1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjU5NzE5OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJpeGdiZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDIxNTIwIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9NYWtlZmlsZT03PXN1YmRpci1jY2ZsYWdzLXkgKz0gLUkkKHNyYylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9NYWtlZmlsZTo4Om9iai0kKENPTkZJR19JWEdCRSkgKz0gaXhnYmUub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL01ha2VmaWxlLTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvTWFrZWZpbGU6MTA6aXhnYmUteSA6PSBpeGdiZV9tYWluLm8gaXhnYmVfY29tbW9uLm8gaXhnYmVfZXRodG9vbC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9NYWtlZmlsZToxMTogICAgICAgICAgIGl4Z2JlXzgyNTk5Lm8gaXhnYmVfODI1OTgubyBpeGdiZV9waHkubyBpeGdiZV9zcmlvdi5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9NYWtlZmlsZToxMjogICAgICAgICAgIGl4Z2JlX21ieC5vIGl4Z2JlX3g1NDAubyBpeGdiZV94NTUwLm8gaXhnYmVfbGliLm8gaXhnYmVfcHRwLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL01ha2VmaWxlOjEzOiAgICAgICAgICAgaXhnYmVfeHNrLm8gaXhnYmVfZTYxMC5vIGRldmxpbmsvZGV2bGluay5vIGl4Z2JlX2Z3X3VwZGF0ZS5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9NYWtlZmlsZS0xNC1cXHQgICBkZXZsaW5rL3JlZ2lvbi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvTWFrZWZpbGUtMTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvTWFrZWZpbGU6MTY6aXhnYmUtJChDT05GSUdfSVhHQkVfRENCKSArPSAgaXhnYmVfZGNiLm8gaXhnYmVfZGNiXzgyNTk4Lm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL01ha2VmaWxlOjE3OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl4Z2JlX2RjYl84MjU5OS5vIGl4Z2JlX2RjYl9ubC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvTWFrZWZpbGUtMTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvTWFrZWZpbGU6MTk6aXhnYmUtJChDT05GSUdfSVhHQkVfSFdNT04pICs9IGl4Z2JlX3N5c2ZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9NYWtlZmlsZToyMDppeGdiZS0kKENPTkZJR19ERUJVR19GUykgKz0gaXhnYmVfZGVidWdmcy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvTWFrZWZpbGU6MjE6aXhnYmUtJChDT05GSUdfRkNPRTptPXkpICs9IGl4Z2JlX2Zjb2Uub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL01ha2VmaWxlOjIyOml4Z2JlLSQoQ09ORklHX0lYR0JFX0lQU0VDKSArPSBpeGdiZV9pcHNlYy5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQ6I2luY2x1ZGUgXFxcIml4Z2JlLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNS0jaW5jbHVkZSBcXFwiZGV2bGluay5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjY6I2luY2x1ZGUgXFxcIml4Z2JlX2Z3X3VwZGF0ZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6ODpzdHJ1Y3QgaXhnYmVfaW5mb19jdHgge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTktXFx0Y2hhciBidWZbMTI4XTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMDpcXHRzdHJ1Y3QgaXhnYmVfb3JvbV9pbmZvIHBlbmRpbmdfb3JvbTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMTpcXHRzdHJ1Y3QgaXhnYmVfbnZtX2luZm8gcGVuZGluZ19udm07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTI6XFx0c3RydWN0IGl4Z2JlX25ldGxpc3RfaW5mbyBwZW5kaW5nX25ldGxpc3Q7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTM6XFx0c3RydWN0IGl4Z2JlX2h3X2Rldl9jYXBzIGRldl9jYXBzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTE0LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTY6ZW51bSBpeGdiZV9kZXZsaW5rX3ZlcnNpb25fdHlwZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTctXFx0SVhHQkVfRExfVkVSU0lPTl9SVU5OSU5HLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MjE6c3RhdGljIHZvaWQgaXhnYmVfaW5mb19nZXRfZHNuKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjIyOlxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgaXhnYmVfaW5mb19jdHggKmN0eClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozMjpzdGF0aWMgdm9pZCBpeGdiZV9pbmZvX29yb21fdmVyKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjMzOlxcdFxcdFxcdFxcdHN0cnVjdCBpeGdiZV9pbmZvX2N0eCAqY3R4LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjM0OlxcdFxcdFxcdFxcdGVudW0gaXhnYmVfZGV2bGlua192ZXJzaW9uX3R5cGUgdHlwZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzY6XFx0c3RydWN0IGl4Z2JlX2h3ICpodyA9IFxcdTAwMjZhZGFwdGVyLVxcdTAwM2VodztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozNzpcXHRzdHJ1Y3QgaXhnYmVfbnZtX3ZlcnNpb24gbnZtX3ZlcjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQxOlxcdGlmIChody1cXHUwMDNlbWFjLnR5cGUgPT0gaXhnYmVfbWFjX2U2MTApIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo0MjpcXHRcXHRzdHJ1Y3QgaXhnYmVfb3JvbV9pbmZvICpvcm9tID0gXFx1MDAyNmFkYXB0ZXItXFx1MDAzZWh3LmZsYXNoLm9yb207XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy01Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo1MzpcXHRpeGdiZV9nZXRfb2VtX3Byb2RfdmVyc2lvbihodywgXFx1MDAyNm52bV92ZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTU0LVxcdGlmIChudm1fdmVyLm9lbV92YWxpZCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NjI6XFx0aXhnYmVfZ2V0X29yb21fdmVyc2lvbihodywgXFx1MDAyNm52bV92ZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTYzLVxcdGlmIChudm1fdmVyLm9yX3ZhbGlkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6Njg6c3RhdGljIHZvaWQgaXhnYmVfaW5mb19lZXRyYWNrKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjY5OlxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgaXhnYmVfaW5mb19jdHggKmN0eCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo3MDpcXHRcXHRcXHQgICAgICAgZW51bSBpeGdiZV9kZXZsaW5rX3ZlcnNpb25fdHlwZSB0eXBlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTcxLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo3MjpcXHRzdHJ1Y3QgaXhnYmVfaHcgKmh3ID0gXFx1MDAyNmFkYXB0ZXItXFx1MDAzZWh3O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjczOlxcdHN0cnVjdCBpeGdiZV9udm1fdmVyc2lvbiBudm1fdmVyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTc0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjc1OlxcdGlmIChody1cXHUwMDNlbWFjLnR5cGUgPT0gaXhnYmVfbWFjX2U2MTApIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy03Ni1cXHRcXHR1MzIgZWV0cmFjayA9IGh3LVxcdTAwM2VmbGFzaC5udm0uZWV0cmFjaztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjg2OlxcdGl4Z2JlX2dldF9vZW1fcHJvZF92ZXJzaW9uKGh3LCBcXHUwMDI2bnZtX3Zlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtODctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy05My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo5NDpcXHRpeGdiZV9nZXRfZXRrX2lkKGh3LCBcXHUwMDI2bnZtX3Zlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtOTUtXFx0c25wcmludGYoY3R4LVxcdTAwM2VidWYsIHNpemVvZihjdHgtXFx1MDAzZWJ1ZiksIFxcXCIweCUwOHhcXFwiLCBudm1fdmVyLmV0a19pZCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy05Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo5ODpzdGF0aWMgdm9pZCBpeGdiZV9pbmZvX2Z3X2FwaShzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo5OTpcXHRcXHRcXHQgICAgICBzdHJ1Y3QgaXhnYmVfaW5mb19jdHggKmN0eClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xMDAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjEwMTpcXHRzdHJ1Y3QgaXhnYmVfaHcgKmh3ID0gXFx1MDAyNmFkYXB0ZXItXFx1MDAzZWh3O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTEwMi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTEwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMDc6c3RhdGljIHZvaWQgaXhnYmVfaW5mb19md19idWlsZChzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMDg6XFx0XFx0XFx0XFx0c3RydWN0IGl4Z2JlX2luZm9fY3R4ICpjdHgpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTA5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMTA6XFx0c3RydWN0IGl4Z2JlX2h3ICpodyA9IFxcdTAwMjZhZGFwdGVyLVxcdTAwM2VodztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xMTEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xMTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTE1OnN0YXRpYyB2b2lkIGl4Z2JlX2luZm9fZndfc3JldihzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMTY6XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBpeGdiZV9pbmZvX2N0eCAqY3R4LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjExNzpcXHRcXHRcXHQgICAgICAgZW51bSBpeGdiZV9kZXZsaW5rX3ZlcnNpb25fdHlwZSB0eXBlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTExOC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTE5OlxcdHN0cnVjdCBpeGdiZV9udm1faW5mbyAqbnZtID0gXFx1MDAyNmFkYXB0ZXItXFx1MDAzZWh3LmZsYXNoLm52bTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xMjAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xMjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTI4OnN0YXRpYyB2b2lkIGl4Z2JlX2luZm9fb3JvbV9zcmV2KHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjEyOTpcXHRcXHRcXHRcXHQgc3RydWN0IGl4Z2JlX2luZm9fY3R4ICpjdHgsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTMwOlxcdFxcdFxcdFxcdCBlbnVtIGl4Z2JlX2RldmxpbmtfdmVyc2lvbl90eXBlIHR5cGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTMxLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMzI6XFx0c3RydWN0IGl4Z2JlX29yb21faW5mbyAqb3JvbSA9IFxcdTAwMjZhZGFwdGVyLVxcdTAwM2Vody5mbGFzaC5vcm9tO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTEzMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTE0MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxNDE6c3RhdGljIHZvaWQgaXhnYmVfaW5mb19udm1fdmVyKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjE0MjpcXHRcXHRcXHQgICAgICAgc3RydWN0IGl4Z2JlX2luZm9fY3R4ICpjdHgsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTQzOlxcdFxcdFxcdCAgICAgICBlbnVtIGl4Z2JlX2RldmxpbmtfdmVyc2lvbl90eXBlIHR5cGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTQ0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxNDU6XFx0c3RydWN0IGl4Z2JlX252bV9pbmZvICpudm0gPSBcXHUwMDI2YWRhcHRlci1cXHUwMDNlaHcuZmxhc2gubnZtO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTE0Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTE1My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxNTQ6c3RhdGljIHZvaWQgaXhnYmVfaW5mb19uZXRsaXN0X3ZlcihzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxNTU6XFx0XFx0XFx0XFx0ICAgc3RydWN0IGl4Z2JlX2luZm9fY3R4ICpjdHgsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTU2OlxcdFxcdFxcdFxcdCAgIGVudW0gaXhnYmVfZGV2bGlua192ZXJzaW9uX3R5cGUgdHlwZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xNTcte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjE1ODpcXHRzdHJ1Y3QgaXhnYmVfbmV0bGlzdF9pbmZvICpuZXRsaXN0ID0gXFx1MDAyNmFkYXB0ZXItXFx1MDAzZWh3LmZsYXNoLm5ldGxpc3Q7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTU5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTcwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjE3MTpzdGF0aWMgdm9pZCBpeGdiZV9pbmZvX25ldGxpc3RfYnVpbGQoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTcyOlxcdFxcdFxcdFxcdCAgICAgc3RydWN0IGl4Z2JlX2luZm9fY3R4ICpjdHgsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTczOlxcdFxcdFxcdFxcdCAgICAgZW51bSBpeGdiZV9kZXZsaW5rX3ZlcnNpb25fdHlwZSB0eXBlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTE3NC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTc1OlxcdHN0cnVjdCBpeGdiZV9uZXRsaXN0X2luZm8gKm5ldGxpc3QgPSBcXHUwMDI2YWRhcHRlci1cXHUwMDNlaHcuZmxhc2gubmV0bGlzdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xNzYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xODMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTg0OnN0YXRpYyBpbnQgaXhnYmVfc2V0X2N0eF9kZXZfY2FwcyhzdHJ1Y3QgaXhnYmVfaHcgKmh3LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjE4NTpcXHRcXHRcXHRcXHQgIHN0cnVjdCBpeGdiZV9pbmZvX2N0eCAqY3R4LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTE4Ni1cXHRcXHRcXHRcXHQgIHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTE5MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxOTE6XFx0ZXJyID0gaXhnYmVfZGlzY292ZXJfZGV2X2NhcHMoaHcsIFxcdTAwMjZjdHgtXFx1MDAzZWRldl9jYXBzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xOTItXFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjAyLVxcdGlmICgqcGVuZGluZ19vcm9tKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MjAzOlxcdFxcdGVyciA9IGl4Z2JlX2dldF9pbmFjdGl2ZV9vcm9tX3ZlcihodywgXFx1MDAyNmN0eC1cXHUwMDNlcGVuZGluZ19vcm9tKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yMDQtXFx0XFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTIwOC1cXHRpZiAoKnBlbmRpbmdfbnZtKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MjA5OlxcdFxcdGVyciA9IGl4Z2JlX2dldF9pbmFjdGl2ZV9udm1fdmVyKGh3LCBcXHUwMDI2Y3R4LVxcdTAwM2VwZW5kaW5nX252bSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjEwLVxcdFxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yMTQtXFx0aWYgKCpwZW5kaW5nX25ldGxpc3QpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyMTU6XFx0XFx0ZXJyID0gaXhnYmVfZ2V0X2luYWN0aXZlX25ldGxpc3RfdmVyKGh3LCBcXHUwMDI2Y3R4LVxcdTAwM2VwZW5kaW5nX25ldGxpc3QpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTIxNi1cXHRcXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjIyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjIyMzpzdGF0aWMgaW50IGl4Z2JlX2RldmxpbmtfaW5mb19nZXRfZTYxMChzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yMjQtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBkZXZsaW5rX2luZm9fcmVxICpyZXEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MjI1OlxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgaXhnYmVfaW5mb19jdHggKmN0eClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yMjYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjI4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjIyOTpcXHRpeGdiZV9pbmZvX2Z3X2FwaShhZGFwdGVyLCBjdHgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTIzMC1cXHRlcnIgPSBkZXZsaW5rX2luZm9fdmVyc2lvbl9ydW5uaW5nX3B1dChyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yMzUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MjM2OlxcdGl4Z2JlX2luZm9fZndfYnVpbGQoYWRhcHRlciwgY3R4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yMzctXFx0ZXJyID0gZGV2bGlua19pbmZvX3ZlcnNpb25fcnVubmluZ19wdXQocmVxLCBcXFwiZncubWdtdC5idWlsZFxcXCIsIGN0eC1cXHUwMDNlYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI0MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyNDE6XFx0aXhnYmVfaW5mb19md19zcmV2KGFkYXB0ZXIsIGN0eCwgSVhHQkVfRExfVkVSU0lPTl9SVU5OSU5HKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yNDItXFx0ZXJyID0gZGV2bGlua19pbmZvX3ZlcnNpb25fcnVubmluZ19wdXQocmVxLCBcXFwiZncubWdtdC5zcmV2XFxcIiwgY3R4LVxcdTAwM2VidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjQ1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjI0NjpcXHRpeGdiZV9pbmZvX29yb21fc3JldihhZGFwdGVyLCBjdHgsIElYR0JFX0RMX1ZFUlNJT05fUlVOTklORyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjQ3LVxcdGVyciA9IGRldmxpbmtfaW5mb192ZXJzaW9uX3J1bm5pbmdfcHV0KHJlcSwgXFxcImZ3LnVuZGkuc3JldlxcXCIsIGN0eC1cXHUwMDNlYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI1MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyNTE6XFx0aXhnYmVfaW5mb19udm1fdmVyKGFkYXB0ZXIsIGN0eCwgSVhHQkVfRExfVkVSU0lPTl9SVU5OSU5HKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yNTItXFx0ZXJyID0gZGV2bGlua19pbmZvX3ZlcnNpb25fcnVubmluZ19wdXQocmVxLCBcXFwiZncucHNpZC5hcGlcXFwiLCBjdHgtXFx1MDAzZWJ1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yNTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MjU2OlxcdGl4Z2JlX2luZm9fbmV0bGlzdF92ZXIoYWRhcHRlciwgY3R4LCBJWEdCRV9ETF9WRVJTSU9OX1JVTk5JTkcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI1Ny1cXHRlcnIgPSBkZXZsaW5rX2luZm9fdmVyc2lvbl9ydW5uaW5nX3B1dChyZXEsIFxcXCJmdy5uZXRsaXN0XFxcIiwgY3R4LVxcdTAwM2VidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjYwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjI2MTpcXHRpeGdiZV9pbmZvX25ldGxpc3RfYnVpbGQoYWRhcHRlciwgY3R4LCBJWEdCRV9ETF9WRVJTSU9OX1JVTk5JTkcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI2Mi1cXHRyZXR1cm4gZGV2bGlua19pbmZvX3ZlcnNpb25fcnVubmluZ19wdXQocmVxLCBcXFwiZncubmV0bGlzdC5idWlsZFxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYz0yNjY9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjI2NzppeGdiZV9kZXZsaW5rX3BlbmRpbmdfaW5mb19nZXRfZTYxMChzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yNjgtXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBkZXZsaW5rX2luZm9fcmVxICpyZXEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MjY5OlxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgaXhnYmVfaW5mb19jdHggKmN0eClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yNzAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjcyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjI3MzpcXHRpeGdiZV9pbmZvX29yb21fdmVyKGFkYXB0ZXIsIGN0eCwgSVhHQkVfRExfVkVSU0lPTl9TVE9SRUQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI3NC1cXHRlcnIgPSBkZXZsaW5rX2luZm9fdmVyc2lvbl9zdG9yZWRfcHV0KHJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI3OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyODA6XFx0aXhnYmVfaW5mb19lZXRyYWNrKGFkYXB0ZXIsIGN0eCwgSVhHQkVfRExfVkVSU0lPTl9TVE9SRUQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI4MS1cXHRlcnIgPSBkZXZsaW5rX2luZm9fdmVyc2lvbl9zdG9yZWRfcHV0KHJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI4Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyODc6XFx0aXhnYmVfaW5mb19md19zcmV2KGFkYXB0ZXIsIGN0eCwgSVhHQkVfRExfVkVSU0lPTl9TVE9SRUQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI4OC1cXHRlcnIgPSBkZXZsaW5rX2luZm9fdmVyc2lvbl9zdG9yZWRfcHV0KHJlcSwgXFxcImZ3Lm1nbXQuc3JldlxcXCIsIGN0eC1cXHUwMDNlYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI5MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyOTI6XFx0aXhnYmVfaW5mb19vcm9tX3NyZXYoYWRhcHRlciwgY3R4LCBJWEdCRV9ETF9WRVJTSU9OX1NUT1JFRCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjkzLVxcdGVyciA9IGRldmxpbmtfaW5mb192ZXJzaW9uX3N0b3JlZF9wdXQocmVxLCBcXFwiZncudW5kaS5zcmV2XFxcIiwgY3R4LVxcdTAwM2VidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjk2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjI5NzpcXHRpeGdiZV9pbmZvX252bV92ZXIoYWRhcHRlciwgY3R4LCBJWEdCRV9ETF9WRVJTSU9OX1NUT1JFRCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjk4LVxcdGVyciA9IGRldmxpbmtfaW5mb192ZXJzaW9uX3N0b3JlZF9wdXQocmVxLCBcXFwiZncucHNpZC5hcGlcXFwiLCBjdHgtXFx1MDAzZWJ1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zMDEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzAyOlxcdGl4Z2JlX2luZm9fbmV0bGlzdF92ZXIoYWRhcHRlciwgY3R4LCBJWEdCRV9ETF9WRVJTSU9OX1NUT1JFRCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMzAzLVxcdGVyciA9IGRldmxpbmtfaW5mb192ZXJzaW9uX3N0b3JlZF9wdXQocmVxLCBcXFwiZncubmV0bGlzdFxcXCIsIGN0eC1cXHUwMDNlYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTMwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozMDc6XFx0aXhnYmVfaW5mb19uZXRsaXN0X2J1aWxkKGFkYXB0ZXIsIGN0eCwgSVhHQkVfRExfVkVSU0lPTl9TVE9SRUQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTMwOC1cXHRyZXR1cm4gZGV2bGlua19pbmZvX3ZlcnNpb25fc3RvcmVkX3B1dChyZXEsIFxcXCJmdy5uZXRsaXN0LmJ1aWxkXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTMxMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozMTI6c3RhdGljIGludCBpeGdiZV9kZXZsaW5rX2luZm9fZ2V0KHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTMxMy1cXHRcXHRcXHRcXHQgIHN0cnVjdCBkZXZsaW5rX2luZm9fcmVxICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zMTUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjMxNjpcXHRzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlciA9IGRldmxpbmtfcHJpdihkZXZsaW5rKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozMTc6XFx0c3RydWN0IGl4Z2JlX2h3ICpodyA9IFxcdTAwMjZhZGFwdGVyLVxcdTAwM2VodztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozMTg6XFx0c3RydWN0IGl4Z2JlX2luZm9fY3R4ICpjdHg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMzE5LVxcdGludCBlcnI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zMjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzI1OlxcdGlmIChody1cXHUwMDNlbWFjLnR5cGUgPT0gaXhnYmVfbWFjX2U2MTApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzI2OlxcdFxcdGl4Z2JlX3JlZnJlc2hfZndfdmVyc2lvbihhZGFwdGVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zMjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzI4OlxcdGl4Z2JlX2luZm9fZ2V0X2RzbihhZGFwdGVyLCBjdHgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTMyOS1cXHRlcnIgPSBkZXZsaW5rX2luZm9fc2VyaWFsX251bWJlcl9wdXQocmVxLCBjdHgtXFx1MDAzZWJ1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzQzOlxcdGl4Z2JlX2luZm9fb3JvbV92ZXIoYWRhcHRlciwgY3R4LCBJWEdCRV9ETF9WRVJTSU9OX1JVTk5JTkcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTM0NC1cXHRlcnIgPSBkZXZsaW5rX2luZm9fdmVyc2lvbl9ydW5uaW5nX3B1dChyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzUwOlxcdGl4Z2JlX2luZm9fZWV0cmFjayhhZGFwdGVyLCBjdHgsIElYR0JFX0RMX1ZFUlNJT05fUlVOTklORyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMzUxLVxcdGVyciA9IGRldmxpbmtfaW5mb192ZXJzaW9uX3J1bm5pbmdfcHV0KHJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTM1My1cXHRcXHRcXHRcXHRcXHQgICAgICAgY3R4LVxcdTAwM2VidWYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjM1NDpcXHRpZiAoZXJyIHx8IGh3LVxcdTAwM2VtYWMudHlwZSAhPSBpeGdiZV9tYWNfZTYxMClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNTUtXFx0XFx0Z290byBmcmVlX2N0eDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzU3OlxcdGVyciA9IGl4Z2JlX3NldF9jdHhfZGV2X2NhcHMoaHcsIGN0eCwgZXh0YWNrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNTgtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTM2MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozNjE6XFx0ZXJyID0gaXhnYmVfZGV2bGlua19pbmZvX2dldF9lNjEwKGFkYXB0ZXIsIHJlcSwgY3R4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNjItXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTM2NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozNjU6XFx0ZXJyID0gaXhnYmVfZGV2bGlua19wZW5kaW5nX2luZm9fZ2V0X2U2MTAoYWRhcHRlciwgcmVxLCBjdHgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTM2Ni1mcmVlX2N0eDpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTM3MS0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozNzI6ICogaXhnYmVfZGV2bGlua19yZWxvYWRfZW1wcl9zdGFydCAtIFN0YXJ0IEVNUCByZXNldCB0byBhY3RpdmF0ZSBuZXcgZmlybXdhcmVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNzMtICogQGRldmxpbms6IHBvaW50ZXIgdG8gdGhlIGRldmxpbmsgaW5zdGFuY2UgdG8gcmVsb2FkXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zODktICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzkwOnN0YXRpYyBpbnQgaXhnYmVfZGV2bGlua19yZWxvYWRfZW1wcl9zdGFydChzdHJ1Y3QgZGV2bGluayAqZGV2bGluayxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zOTEtXFx0XFx0XFx0XFx0XFx0ICAgYm9vbCBuZXRuc19jaGFuZ2UsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zOTUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjM5NjpcXHRzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlciA9IGRldmxpbmtfcHJpdihkZXZsaW5rKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozOTc6XFx0c3RydWN0IGl4Z2JlX2h3ICpodyA9IFxcdTAwMjZhZGFwdGVyLVxcdTAwM2VodztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zOTgtXFx0dTggcGVuZGluZztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQwMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo0MDE6XFx0aWYgKGh3LVxcdTAwM2VtYWMudHlwZSAhPSBpeGdiZV9tYWNfZTYxMClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00MDItXFx0XFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQwMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo0MDQ6XFx0ZXJyID0gaXhnYmVfZ2V0X3BlbmRpbmdfdXBkYXRlcyhhZGFwdGVyLCBcXHUwMDI2cGVuZGluZywgZXh0YWNrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00MDUtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQyMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo0MjQ6XFx0ZXJyID0gaXhnYmVfYWNpX252bV91cGRhdGVfZW1wcihodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDI1LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00MzUtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NDM2OiAqIGl4Z2JlX2RldmxpbmtfcmVsb2FkX2VtcHJfZmluaXNoIC0gZmluaXNoZXMgRU1QIHJlc2V0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDM3LSAqIEBkZXZsaW5rOiBwb2ludGVyIHRvIHRoZSBkZXZsaW5rIGluc3RhbmNlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00NDYtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NDQ3OnN0YXRpYyBpbnQgaXhnYmVfZGV2bGlua19yZWxvYWRfZW1wcl9maW5pc2goc3RydWN0IGRldmxpbmsgKmRldmxpbmssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDQ4LVxcdFxcdFxcdFxcdFxcdCAgICBlbnVtIGRldmxpbmtfcmVsb2FkX2FjdGlvbiBhY3Rpb24sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00NTIte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQ1MzpcXHRzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlciA9IGRldmxpbmtfcHJpdihkZXZsaW5rKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo0NTQ6XFx0c3RydWN0IGl4Z2JlX2h3ICpodyA9IFxcdTAwMjZhZGFwdGVyLVxcdTAwM2VodztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00NTUtXFx0aW50IGkgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDc2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQ3NzpcXHRyZXR1cm4gaXhnYmVfcmVmcmVzaF9md192ZXJzaW9uKGFkYXB0ZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQ3OC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDc5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQ4MDpzdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfb3BzIGl4Z2JlX2Rldmxpbmtfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQ4MTpcXHQuaW5mb19nZXQgPSBpeGdiZV9kZXZsaW5rX2luZm9fZ2V0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQ4Mi1cXHQuc3VwcG9ydGVkX2ZsYXNoX3VwZGF0ZV9wYXJhbXMgPVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQ4My1cXHRcXHRERVZMSU5LX1NVUFBPUlRfRkxBU0hfVVBEQVRFX09WRVJXUklURV9NQVNLLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQ4NDpcXHQuZmxhc2hfdXBkYXRlID0gaXhnYmVfZmxhc2hfcGxkbV9pbWFnZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00ODUtXFx0LnJlbG9hZF9hY3Rpb25zID0gQklUKERFVkxJTktfUkVMT0FEX0FDVElPTl9GV19BQ1RJVkFURSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NDg2OlxcdC5yZWxvYWRfZG93biA9IGl4Z2JlX2RldmxpbmtfcmVsb2FkX2VtcHJfc3RhcnQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NDg3OlxcdC5yZWxvYWRfdXAgPSBpeGdiZV9kZXZsaW5rX3JlbG9hZF9lbXByX2ZpbmlzaCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00ODgtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQ5MC0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo0OTE6ICogaXhnYmVfYWxsb2NhdGVfZGV2bGluayAtIEFsbG9jYXRlIGRldmxpbmsgaW5zdGFuY2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00OTItICogQGRldjogZGV2aWNlIHRvIGFsbG9jYXRlIGRldmxpbmsgZm9yXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00OTgtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NDk5OnN0cnVjdCBpeGdiZV9hZGFwdGVyICppeGdiZV9hbGxvY2F0ZV9kZXZsaW5rKHN0cnVjdCBkZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy01MDAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjUwMTpcXHRzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy01MDItXFx0c3RydWN0IGRldmxpbmsgKmRldmxpbms7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNTAzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjUwNDpcXHRkZXZsaW5rID0gZGV2bGlua19hbGxvYyhcXHUwMDI2aXhnYmVfZGV2bGlua19vcHMsIHNpemVvZigqYWRhcHRlciksIGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNTA1LVxcdGlmICghZGV2bGluaylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTUxNC0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo1MTU6ICogaXhnYmVfZGV2bGlua19zZXRfc3dpdGNoX2lkIC0gU2V0IHVuaXF1ZSBzd2l0Y2ggSUQgYmFzZWQgb24gUENJIERTTlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTUxNi0gKiBAYWRhcHRlcjogcG9pbnRlciB0byB0aGUgZGV2aWNlIGFkYXB0ZXIgc3RydWN0dXJlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy01MTgtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NTE5OnN0YXRpYyB2b2lkIGl4Z2JlX2Rldmxpbmtfc2V0X3N3aXRjaF9pZChzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy01MjAtXFx0XFx0XFx0XFx0XFx0c3RydWN0IG5ldGRldl9waHlzX2l0ZW1faWQgKnBwaWQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy01MjgtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NTI5OiAqIGl4Z2JlX2RldmxpbmtfcmVnaXN0ZXJfcG9ydCAtIFJlZ2lzdGVyIGRldmxpbmsgcG9ydFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTUzMC0gKiBAYWRhcHRlcjogcG9pbnRlciB0byB0aGUgZGV2aWNlIGFkYXB0ZXIgc3RydWN0dXJlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy01MzUtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NTM2OmludCBpeGdiZV9kZXZsaW5rX3JlZ2lzdGVyX3BvcnQoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNTM3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTU0Ni1cXHRhdHRycy5ub19waHlzX3BvcnRfbmFtZSA9IDE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NTQ3OlxcdGl4Z2JlX2Rldmxpbmtfc2V0X3N3aXRjaF9pZChhZGFwdGVyLCBcXHUwMDI2YXR0cnMuc3dpdGNoX2lkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy01NDgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuaC02LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5oOjc6c3RydWN0IGl4Z2JlX2FkYXB0ZXIgKml4Z2JlX2FsbG9jYXRlX2Rldmxpbmsoc3RydWN0IGRldmljZSAqZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuaDo4OmludCBpeGdiZV9kZXZsaW5rX3JlZ2lzdGVyX3BvcnQoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5oOjk6dm9pZCBpeGdiZV9kZXZsaW5rX2luaXRfcmVnaW9ucyhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmg6MTA6dm9pZCBpeGdiZV9kZXZsaW5rX2Rlc3Ryb3lfcmVnaW9ucyhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmgtMTEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzo0OiNpbmNsdWRlIFxcXCJpeGdiZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtNS0jaW5jbHVkZSBcXFwiZGV2bGluay5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy04LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6OTpzdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfcmVnaW9uX29wcyBpeGdiZV9udm1fcmVnaW9uX29wcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjEwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2bGlua19yZWdpb25fb3BzIGl4Z2JlX3NyYW1fcmVnaW9uX29wcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MTI6c3RhdGljIGludCBpeGdiZV9kZXZsaW5rX3BhcnNlX3JlZ2lvbihzdHJ1Y3QgaXhnYmVfaHcgKmh3LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTMtXFx0XFx0XFx0XFx0ICAgICAgY29uc3Qgc3RydWN0IGRldmxpbmtfcmVnaW9uX29wcyAqb3BzLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xNS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxNjpcXHRpZiAob3BzID09IFxcdTAwMjZpeGdiZV9udm1fcmVnaW9uX29wcykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTctXFx0XFx0KnJlYWRfc2hhZG93X3JhbSA9IGZhbHNlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTgtXFx0XFx0Km52bV9zaXplID0gaHctXFx1MDAzZWZsYXNoLmZsYXNoX3NpemU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxOTpcXHR9IGVsc2UgaWYgKG9wcyA9PSBcXHUwMDI2aXhnYmVfc3JhbV9yZWdpb25fb3BzKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0yMC1cXHRcXHQqcmVhZF9zaGFkb3dfcmFtID0gdHJ1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjktLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzozMDogKiBpeGdiZV9kZXZsaW5rX252bV9zbmFwc2hvdCAtIENhcHR1cmUgYSBzbmFwc2hvdCBvZiB0aGUgTlZNIGNvbnRlbnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTMxLSAqIEBkZXZsaW5rOiB0aGUgZGV2bGluayBpbnN0YW5jZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy00NS0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjQ2OnN0YXRpYyBpbnQgaXhnYmVfZGV2bGlua19udm1fc25hcHNob3Qoc3RydWN0IGRldmxpbmsgKmRldmxpbmssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy00Ny1cXHRcXHRcXHRcXHQgICAgICBjb25zdCBzdHJ1Y3QgZGV2bGlua19yZWdpb25fb3BzICpvcHMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTQ5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjUwOlxcdHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyID0gZGV2bGlua19wcml2KGRldmxpbmspO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6NTE6XFx0c3RydWN0IGl4Z2JlX2h3ICpodyA9IFxcdTAwMjZhZGFwdGVyLVxcdTAwM2VodztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTUyLVxcdGJvb2wgcmVhZF9zaGFkb3dfcmFtO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy01Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjU4OlxcdGVyciA9IGl4Z2JlX2RldmxpbmtfcGFyc2VfcmVnaW9uKGh3LCBvcHMsIFxcdTAwMjZyZWFkX3NoYWRvd19yYW0sIFxcdTAwMjZudm1fc2l6ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy01OS1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy03Ni1cXHRcXHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjc3OlxcdFxcdGVyciA9IGl4Z2JlX2FjcXVpcmVfbnZtKGh3LCBMSUJJRV9BUUNfUkVTX0FDQ0VTU19SRUFEKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTc4LVxcdFxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtODQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzo4NTpcXHRcXHRlcnIgPSBpeGdiZV9yZWFkX2ZsYXRfbnZtKGh3LCBpICogSVhHQkVfREVWTElOS19SRUFEX0JMS19TSVpFLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtODYtXFx0XFx0XFx0XFx0XFx0ICBcXHUwMDI2cmVhZF9zeiwgYnVmLCByZWFkX3NoYWRvd19yYW0pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy04OS1cXHRcXHRcXHRcXHRcXHQgICBcXFwiRmFpbGVkIHRvIHJlYWQgUkFNIGNvbnRlbnRcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjkwOlxcdFxcdFxcdGl4Z2JlX3JlbGVhc2VfbnZtKGh3KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTkxLVxcdFxcdFxcdGt2ZnJlZShudm1fZGF0YSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTk0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6OTU6XFx0XFx0aXhnYmVfcmVsZWFzZV9udm0oaHcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtOTYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTEwNS0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjEwNjogKiBpeGdiZV9kZXZsaW5rX2RldmNhcHNfc25hcHNob3QgLSBDYXB0dXJlIGEgc25hcHNob3Qgb2YgZGV2aWNlIGNhcGFiaWxpdGllc1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTA3LSAqIEBkZXZsaW5rOiB0aGUgZGV2bGluayBpbnN0YW5jZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xMjEtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxMjI6c3RhdGljIGludCBpeGdiZV9kZXZsaW5rX2RldmNhcHNfc25hcHNob3Qoc3RydWN0IGRldmxpbmsgKmRldmxpbmssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xMjMtXFx0XFx0XFx0XFx0XFx0ICBjb25zdCBzdHJ1Y3QgZGV2bGlua19yZWdpb25fb3BzICpvcHMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTEyNi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxMjc6XFx0c3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIgPSBkZXZsaW5rX3ByaXYoZGV2bGluayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxMjg6XFx0c3RydWN0IGl4Z2JlX2FjaV9jbWRfbGlzdF9jYXBzX2VsZW0gKmNhcHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxMjk6XFx0c3RydWN0IGl4Z2JlX2h3ICpodyA9IFxcdTAwMjZhZGFwdGVyLVxcdTAwM2VodztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTEzMC1cXHRpbnQgZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xMzUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxMzY6XFx0ZXJyID0gaXhnYmVfYWNpX2xpc3RfY2FwcyhodywgY2FwcywgSVhHQkVfQUNJX01BWF9CVUZGRVJfU0laRSwgTlVMTCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjEzNzpcXHRcXHRcXHRcXHQgIGl4Z2JlX2FjaV9vcGNfbGlzdF9kZXZfY2Fwcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xMzgtXFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xNDktLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxNTA6ICogaXhnYmVfZGV2bGlua19udm1fcmVhZCAtIFJlYWQgYSBwb3J0aW9uIG9mIE5WTSBmbGFzaCBjb250ZW50XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xNTEtICogQGRldmxpbms6IHRoZSBkZXZsaW5rIGluc3RhbmNlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTE2Ni0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjE2NzpzdGF0aWMgaW50IGl4Z2JlX2RldmxpbmtfbnZtX3JlYWQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xNjgtXFx0XFx0XFx0XFx0ICBjb25zdCBzdHJ1Y3QgZGV2bGlua19yZWdpb25fb3BzICpvcHMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTE3MS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxNzI6XFx0c3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIgPSBkZXZsaW5rX3ByaXYoZGV2bGluayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxNzM6XFx0c3RydWN0IGl4Z2JlX2h3ICpodyA9IFxcdTAwMjZhZGFwdGVyLVxcdTAwM2VodztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTE3NC1cXHRib29sIHJlYWRfc2hhZG93X3JhbTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTc3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MTc4OlxcdGVyciA9IGl4Z2JlX2RldmxpbmtfcGFyc2VfcmVnaW9uKGh3LCBvcHMsIFxcdTAwMjZyZWFkX3NoYWRvd19yYW0sIFxcdTAwMjZudm1fc2l6ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xNzktXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTg2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MTg3OlxcdGVyciA9IGl4Z2JlX2FjcXVpcmVfbnZtKGh3LCBMSUJJRV9BUUNfUkVTX0FDQ0VTU19SRUFEKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTE4OC1cXHRpZiAoZXJyKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTE5Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjE5MzpcXHRlcnIgPSBpeGdiZV9yZWFkX2ZsYXRfbnZtKGh3LCAodTMyKW9mZnNldCwgXFx1MDAyNnNpemUsIGRhdGEsIHJlYWRfc2hhZG93X3JhbSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xOTQtXFx0aWYgKGVycikge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTk1LVxcdFxcdE5MX1NFVF9FUlJfTVNHX01PRChleHRhY2ssIFxcXCJGYWlsZWQgdG8gcmVhZCBOVk0gY29udGVudHNcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjE5NjpcXHRcXHRpeGdiZV9yZWxlYXNlX252bShodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xOTctXFx0XFx0cmV0dXJuIC1FSU87XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTE5OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjIwMDpcXHRpeGdiZV9yZWxlYXNlX252bShodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0yMDEtXFx0cmV0dXJuIDA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIwMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjIwNDpzdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfcmVnaW9uX29wcyBpeGdiZV9udm1fcmVnaW9uX29wcyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIwNS1cXHQubmFtZSA9IFxcXCJudm0tZmxhc2hcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjA2LVxcdC5kZXN0cnVjdG9yID0ga3ZmcmVlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MjA3OlxcdC5zbmFwc2hvdCA9IGl4Z2JlX2RldmxpbmtfbnZtX3NuYXBzaG90LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MjA4OlxcdC5yZWFkID0gaXhnYmVfZGV2bGlua19udm1fcmVhZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIwOS19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MjExOnN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2bGlua19yZWdpb25fb3BzIGl4Z2JlX3NyYW1fcmVnaW9uX29wcyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIxMi1cXHQubmFtZSA9IFxcXCJzaGFkb3ctcmFtXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIxMy1cXHQuZGVzdHJ1Y3RvciA9IGt2ZnJlZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjIxNDpcXHQuc25hcHNob3QgPSBpeGdiZV9kZXZsaW5rX252bV9zbmFwc2hvdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjIxNTpcXHQucmVhZCA9IGl4Z2JlX2RldmxpbmtfbnZtX3JlYWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0yMTYtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIxNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjIxODpzdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfcmVnaW9uX29wcyBpeGdiZV9kZXZjYXBzX3JlZ2lvbl9vcHMgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0yMTktXFx0Lm5hbWUgPSBcXFwiZGV2aWNlLWNhcHNcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjIwLVxcdC5kZXN0cnVjdG9yID0ga3ZmcmVlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MjIxOlxcdC5zbmFwc2hvdCA9IGl4Z2JlX2RldmxpbmtfZGV2Y2Fwc19zbmFwc2hvdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIyMi19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0yMjQtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoyMjU6ICogaXhnYmVfZGV2bGlua19pbml0X3JlZ2lvbnMgLSBJbml0aWFsaXplIGRldmxpbmsgcmVnaW9uc1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjI2LSAqIEBhZGFwdGVyOiBhZGFwdGVyIGluc3RhbmNlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIzMC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjIzMTp2b2lkIGl4Z2JlX2RldmxpbmtfaW5pdF9yZWdpb25zKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjMyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjM2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MjM3OlxcdGlmIChhZGFwdGVyLVxcdTAwM2Vody5tYWMudHlwZSAhPSBpeGdiZV9tYWNfZTYxMClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIzOC1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTI0MC1cXHRudm1fc2l6ZSA9IGFkYXB0ZXItXFx1MDAzZWh3LmZsYXNoLmZsYXNoX3NpemU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoyNDE6XFx0YWRhcHRlci1cXHUwMDNlbnZtX3JlZ2lvbiA9IGRldmxfcmVnaW9uX2NyZWF0ZShkZXZsaW5rLCBcXHUwMDI2aXhnYmVfbnZtX3JlZ2lvbl9vcHMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0yNDItXFx0XFx0XFx0XFx0XFx0XFx0IDEsIG52bV9zaXplKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjUwLVxcdHNyYW1fc2l6ZSA9IGFkYXB0ZXItXFx1MDAzZWh3LmZsYXNoLnNyX3dvcmRzICogMnU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoyNTE6XFx0YWRhcHRlci1cXHUwMDNlc3JhbV9yZWdpb24gPSBkZXZsX3JlZ2lvbl9jcmVhdGUoZGV2bGluaywgXFx1MDAyNml4Z2JlX3NyYW1fcmVnaW9uX29wcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTI1Mi1cXHRcXHRcXHRcXHRcXHRcXHQgIDEsIHNyYW1fc2l6ZSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTI2MC1cXHRhZGFwdGVyLVxcdTAwM2VkZXZjYXBzX3JlZ2lvbiA9IGRldmxfcmVnaW9uX2NyZWF0ZShkZXZsaW5rLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MjYxOlxcdFxcdFxcdFxcdFxcdFxcdCAgICAgXFx1MDAyNml4Z2JlX2RldmNhcHNfcmVnaW9uX29wcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTI2Mi1cXHRcXHRcXHRcXHRcXHRcXHQgICAgIDEwLCBJWEdCRV9BQ0lfTUFYX0JVRkZFUl9TSVpFKTtcXG4tLVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQxNjozMDo1My4zNzcyNDQ3NjJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuOC1mbGFzaCIsIkR1cmF0aW9uIjoxMjM2NzgyOTgwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCdzIFdvcnRoaW5lc3MgZm9yIEZ1enppbmcqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGBpeGdiZWAgKmlzKiDigJMgcmlnaHQsIGl0J3MgdGhlIEludGVsIDEwIEdpZ2FiaXQgUENJIEV4cHJlc3MgTmV0d29yayBEcml2ZXIuIFRoaW5rIDgyNTk4LCA4MjU5OSwgdGhvc2Ugc29ydHMgb2YgY2FyZHMuIE5vdywgdGhlIGNyaXRpY2FsIHF1ZXN0aW9uOiBkb2VzIFFFTVUgZXZlbiAqZW11bGF0ZSogYGl4Z2JlYD8gSSBuZWVkIHRvIGtub3cgUUVNVSdzIHN1cHBvcnRlZCBuZXR3b3JrIGFkYXB0ZXJzLi4uIGxldCBtZSBzZWUuLi4gZTEwMDAsIGUxMDAwZSwgaWdiLCBhbmQgYSBidW5jaCBvZiBvdGhlcnMuLi4gYnV0ICpubyogYGl4Z2JlYC5cblxuSG9sZCBvbi4uLiBJICp0aG91Z2h0KiBRRU1VIGRpZG4ndCBoYXZlIGl0LCBidXQgSSdkIGJldHRlciBiZSBzdXJlLiBMZXQgbWUgZG91YmxlIGNoZWNrIHRob3NlIG5lZ2F0aXZlIGNyaXRlcmlhIGZyb20gc2VjdGlvbiAyIG9mIHRoZSBpbnN0cnVjdGlvbnMuIEFoYSwgaXQgc2F5cyBcIlN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZTogKiBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVVcIi4gVGhhdCBzb3VuZHMgbGlrZSBhIG1hdGNoLlxuXG5SaWdodCwgc28gbGV0J3Mgc2VlIHdoYXQgKmV4YWN0bHkqIHRoaXMgcGF0Y2ggaGFzIG1vZGlmaWVkLiBHb2luZyB0aHJvdWdoIHRoZSBkaWZmcywgaXQgbG9va3MgbGlrZSBpdCdzIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmNgLCBgaXhnYmVfc3Jpb3YuY2AsIGFuZCBgaXhnYmVfc3Jpb3YuaGAuIFNwZWNpZmljYWxseSwgdGhleSd2ZSByZW1vdmVkIGNhbGxzIHRvIGFuZCBkZWZpbml0aW9ucyBvZiBhIGZ1bmN0aW9uIGNhbGxlZCBgaXhnYmVfcGluZ19hbGxfdmZzYC5cblxuVGhlIGtleSBoZXJlIGlzIHRoYXQgYGl4Z2JlYCAqaXMqIGEgZHJpdmVyIGZvciBwaHlzaWNhbCBJbnRlbChSKSAxMEdiRSBuZXR3b3JrIGhhcmR3YXJlLiBHaXZlbiB0aGF0LCBjYW4gdGhlIHByb2JlIGZ1bmN0aW9uLCBgaXhnYmVfcHJvYmVgLCBiZSB0cmlnZ2VyZWQgd2l0aG91dCBwaHlzaWNhbCBoYXJkd2FyZSBiZWluZyBwcmVzZW50PyBUaGF0IGlzIHRoZSBkZWZpbmluZyBxdWVzdGlvbiwgaGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjAwMDcsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1ODUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMTY6MzE6MDUuNzQ1MDc3OTA5WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ3NzQ0MzkwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIml4Z2JlX3Byb2JlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYz0xMTQ5Mj1zdGF0aWMgaW50IGl4Z2JlX3JlY292ZXJ5X3Byb2JlKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jLTExNTMyLS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYzoxMTUzMzogKiBpeGdiZV9wcm9iZSAtIERldmljZSBJbml0aWFsaXphdGlvbiBSb3V0aW5lXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jLTExNTM0LSAqIEBwZGV2OiBQQ0kgZGV2aWNlIGluZm9ybWF0aW9uIHN0cnVjdFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jLTExNTM4LSAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jOjExNTM5OiAqIGl4Z2JlX3Byb2JlIGluaXRpYWxpemVzIGFuIGFkYXB0ZXIgaWRlbnRpZmllZCBieSBhIHBjaV9kZXYgc3RydWN0dXJlLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYy0xMTU0MC0gKiBUaGUgT1MgaW5pdGlhbGl6YXRpb24sIGNvbmZpZ3VyaW5nIG9mIHRoZSBhZGFwdGVyIHByaXZhdGUgc3RydWN0dXJlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jLTExNTQyLSAqKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmM6MTE1NDM6c3RhdGljIGludCBpeGdiZV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMtMTE1NDQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jPTEyMzcyPXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBpeGdiZV9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMtMTIzNzQtXFx0LmlkX3RhYmxlICA9IGl4Z2JlX3BjaV90YmwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jOjEyMzc1OlxcdC5wcm9iZSAgICAgPSBpeGdiZV9wcm9iZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMtMTIzNzYtXFx0LnJlbW92ZSAgICA9IGl4Z2JlX3JlbW92ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3BoeS5jPTE2Nj1pbnQgaXhnYmVfd3JpdGVfaTJjX2NvbWJpbmVkX2dlbmVyaWNfaW50KHN0cnVjdCBpeGdiZV9odyAqaHcsIHU4IGFkZHIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYy0yMjEtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfcGh5LmM6MjIyOiAqICBpeGdiZV9wcm9iZV9waHkgLSBQcm9iZSBhIHNpbmdsZSBhZGRyZXNzIGZvciBhIFBIWVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3BoeS5jLTIyMy0gKiAgQGh3OiBwb2ludGVyIHRvIGhhcmR3YXJlIHN0cnVjdHVyZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfcGh5LmMtMjI3LSAqKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYzoyMjg6c3RhdGljIGJvb2wgaXhnYmVfcHJvYmVfcGh5KHN0cnVjdCBpeGdiZV9odyAqaHcsIHUxNiBwaHlfYWRkcilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYy0yMjkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfcGh5LmM9MjYzPWludCBpeGdiZV9pZGVudGlmeV9waHlfZ2VuZXJpYyhzdHJ1Y3QgaXhnYmVfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfcGh5LmMtMjgwLVxcdFxcdFxcdFxcdCAgICAgaHctXFx1MDAzZXBoeS5ud19tbmdfaWZfc2VsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYzoyODE6XFx0XFx0aWYgKGl4Z2JlX3Byb2JlX3BoeShodywgcGh5X2FkZHIpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3BoeS5jLTI4Mi1cXHRcXHRcXHRyZXR1cm4gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3BoeS5jLTI4Ny1cXHRmb3IgKHBoeV9hZGRyID0gMDsgcGh5X2FkZHIgXFx1MDAzYyBJWEdCRV9NQVhfUEhZX0FERFI7IHBoeV9hZGRyKyspIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYzoyODg6XFx0XFx0aWYgKGl4Z2JlX3Byb2JlX3BoeShodywgcGh5X2FkZHIpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfcGh5LmMtMjg5LVxcdFxcdFxcdHN0YXR1cyA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYz0xMDI2PWludCBpeGdiZV9taWlfYnVzX2luaXQoc3RydWN0IGl4Z2JlX2h3ICpodylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3BoeS5jLTEwODEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfcGh5LmM6MTA4MjpcXHQvKiBTdXBwb3J0IGNsYXVzZSAyMi80NSBuYXRpdmVseS4gIGl4Z2JlX3Byb2JlKCkgc2V0cyBNRElPX0VNVUxBVEVfQzIyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfcGh5LmMtMTA4My1cXHQgKiB1bmZvcnR1bmF0ZWx5IHRoYXQgY2F1c2VzIHNvbWUgY2xhdXNlIDIyIGZyYW1lcyB0byBiZSBzZW50IHdpdGhcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMTY6MzE6MDUuNzkyODI3NDk4WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6MzU3ODY5MDUyMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3M6XG5cbioqRGl2aW5nIGludG8gRGV2aWNlIE1hdGNoaW5nKipcblxuQWxyaWdodCwgdGltZSB0byBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgZHJpdmVyIGlzIGlkZW50aWZ5aW5nIGFuZCB3b3JraW5nIHdpdGggc3BlY2lmaWMgaGFyZHdhcmUuIFRoZSBmaXJzdCBwbGFjZSBJJ20gZ29pbmcgdG8gbG9vayBpcyB0aGUgYGl4Z2JlX3BjaV90YmxgLiBJIGV4cGVjdCB0aGlzIHRvIGJlIHRoZSBwcmltYXJ5IGxvb2t1cCB0YWJsZSwgdGhlIGRlZmluaXRpdmUgbGlzdCB0aGF0IG1hcHMgUENJIGRldmljZSBJRHMgdG8gdGhpcyBwYXJ0aWN1bGFyIGl4Z2JlIGRyaXZlci4gVGhpcyB0YWJsZSBpcyB0aGUgY29ybmVyc3RvbmU7IGl0IHNob3VsZCByZXZlYWwgdGhlIGV4YWN0IGRldmljZXMgdGhpcyBtb2R1bGUgaXMgZGVzaWduZWQgdG8gc3VwcG9ydCwgYW5kIGhvdyBpdCBkaWZmZXJlbnRpYXRlcyB0aGVtLiBMZXQncyBzZWUgd2hhdCBkZXZpY2VzIGFyZSBsaXN0ZWQsIGFuZCBob3cgdGhlIGRyaXZlciBkZXRlcm1pbmVzIGEgbWF0Y2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyMzU3LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMTY6MzE6MDkuMzcxNTIxWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2NzAwODA5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIml4Z2JlX3BjaV90YmxcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jPTcwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaXhnYmVfaW5mbyAqaXhnYmVfaW5mb190YmxbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYy04MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmM6ODI6LyogaXhnYmVfcGNpX3RibCAtIFBDSSBEZXZpY2UgSUQgVGFibGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMtODMtICpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYy04OS0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmM6OTA6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGl4Z2JlX3BjaV90YmxbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMtOTEtXFx0eyBQQ0lfVkRFVklDRShJTlRFTCwgSVhHQkVfREVWX0lEXzgyNTk4KSwgLmRyaXZlcl9kYXRhID0gYm9hcmRfODI1OTggfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYy0xNDUtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmM6MTQ2Ok1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBpeGdiZV9wY2lfdGJsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMtMTQ3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jPTExNDkyPXN0YXRpYyBpbnQgaXhnYmVfcmVjb3ZlcnlfcHJvYmUoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMtMTE1MzQtICogQHBkZXY6IFBDSSBkZXZpY2UgaW5mb3JtYXRpb24gc3RydWN0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jOjExNTM1OiAqIEBlbnQ6IGVudHJ5IGluIGl4Z2JlX3BjaV90YmxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMtMTE1MzYtICpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYz0xMjM3Mj1zdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgaXhnYmVfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYy0xMjM3My1cXHQubmFtZSAgICAgID0gaXhnYmVfZHJpdmVyX25hbWUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jOjEyMzc0OlxcdC5pZF90YWJsZSAgPSBpeGdiZV9wY2lfdGJsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYy0xMjM3NS1cXHQucHJvYmUgICAgID0gaXhnYmVfcHJvYmUsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE1VDE2OjMxOjA5LjQxODIyNzg5OVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjY0MTU1MzY1NjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqV29ydGhGdXp6aW5nIEV2YWx1YXRpb246IGl4Z2JlIERyaXZlciBNb2RpZmljYXRpb25zKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBXZSdyZSBsb29raW5nIGF0IGNoYW5nZXMgdG8gdGhlIGBpeGdiZWAgZHJpdmVyLCBzcGVjaWZpY2FsbHkgYGl4Z2JlX3dhdGNoZG9nX2xpbmtfaXNfdXBgLCBgaXhnYmVfd2F0Y2hkb2dfbGlua19pc19kb3duYCwgYW5kIGBpeGdiZV9waW5nX2FsbF92ZnNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIFwiaXhnYmUuLi4gSW50ZWwgMTBHYkUgbmV0d29yayBjYXJkcy5cIiBSaWdodCBhd2F5LCBJIGtub3cgdGhpcyBpcyBhIFBDSSBkcml2ZXIuIFRoZSBxdWVzdGlvbiB0aGVuIGJlY29tZXMsIGFyZSB0aGVzZSBkZXZpY2VzIGVtdWxhdGVkIGluIGEgdHlwaWNhbCBmdXp6aW5nIGVudmlyb25tZW50IGxpa2UgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmUgKEdDRSk/IFRoZSBhbnN3ZXIgaXMgYSBkZWZpbml0aXZlIFwibm8uXCIgU3RhbmRhcmQgUUVNVSBkb2Vzbid0IGVtdWxhdGUgaXhnYmUgTklDcy4gSXQgZW11bGF0ZXMgZTEwMDAsIGUxMDAwZSwgYW5kIGlnYiwgYnV0IG5vdCBpeGdiZS4gVGhleSBhcmVuJ3QgcHJlc2VudCBpbiBzdGFuZGFyZCBzeXprYWxsZXIgZW52aXJvbm1lbnRzLlxuXG5XZSBuZWVkIHRvIGNvbnNpZGVyIHRoZSBuZWdhdGl2ZSBjcml0ZXJpYSBmb3IgV29ydGhGdXp6aW5nOiBcIlN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZS4uLiByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlwiIFRoaXMgYWJzb2x1dGVseSBhcHBsaWVzIGhlcmUuIFRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZmluZCBjcmFzaGVzIGluICpyZWFjaGFibGUqIGNvZGUuIFNpbmNlIHRoZSBtb2RpZmllZCBjb2RlIHdpdGhpbiBgaXhnYmVgIGRlcGVuZHMgb24gcGh5c2ljYWwgMTBHYkUgaGFyZHdhcmUsIHdoaWNoIGlzICpub3QqIGVtdWxhdGVkLCBpdCdzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cblxuTm93LCBjb3VsZCB0aGVyZSBiZSBzb21lIG90aGVyIHdheSB0byBpbnN0YW50aWF0ZSBgaXhnYmVgIHZpcnR1YWxseT8gTWF5YmUgU1ItSU9WPyBBaCwgeWVzLCB0aGVyZSBpcyB0aGUgYGl4Z2JldmZgIGRyaXZlciBmb3IgVmlydHVhbCBGdW5jdGlvbnMuIEhvd2V2ZXIsIGBpeGdiZXZmYCBzdGlsbCByZWxpZXMgb24gZWl0aGVyIGEgcGh5c2ljYWwgZnVuY3Rpb24gb3IgdGhlIGVtdWxhdGVkIFNSLUlPViBWRiBoYXJkd2FyZSwgd2hpY2ggUUVNVSBhbHNvIGRvZXNuJ3QgcHJvdmlkZSBmb3IgaXhnYmUuXG5cblRoZXJlZm9yZSwgdGhlIG1vZGlmaWNhdGlvbnMgYXJlIHdpdGhpbiBgaXhnYmVgLCBhIFBDSSBkcml2ZXIgZm9yIHBoeXNpY2FsIEludGVsIDEwR2JFIGFkYXB0ZXJzLiBUaGlzIGNvbmZpcm1zIG15IGFzc2Vzc21lbnQ6IHRoZSBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy4gVGhlcmUncyBubyB3YXkgc3l6a2FsbGVyIGNhbiB0cmlnZ2VyIHRoZXNlIGNvZGUgcGF0aHMgd2l0aG91dCB0aGF0IHBoeXNpY2FsIGhhcmR3YXJlLlxuXG5TbywgbGV0J3MgY2hlY2sgZm9yIGFueSBjb25maWdzIG9yIGZvY3VzIHN5bWJvbHMgd2UgbmVlZCB0byBjb25zaWRlci4gTm9wZSwgbm90aGluZy4gV2hlbiBXb3J0aEZ1enppbmcgaXMgZmFsc2UsIHdlIHNob3VsZCBoYXZlIGVtcHR5IGFycmF5cyBmb3IgYEVuYWJsZUNvbmZpZ3NgIGFuZCBgRm9jdXNTeW1ib2xzYCwgYW5kIGEgY2xlYXIgZXhwbGFuYXRpb24uXG5cblRoZSByZWFzb25pbmcgaXMgc3RyYWlnaHRmb3J3YXJkOiBUaGUgY2hhbmdlcyBhcmUgdG8gdGhlIEludGVsIDEwR2JFIG5ldHdvcmsgZHJpdmVyIChgaXhnYmVgKS4gVGhleSBhcmUgcmVsYXRlZCB0byB3YXRjaGRvZyBsaW5rIHN0YXRlIGhhbmRsZXJzIGFuZCBTUi1JT1Ygc3VwcG9ydC4gSG93ZXZlciwgYGl4Z2JlYCBkcml2ZXMgKnBoeXNpY2FsKiBQQ0kgZGV2aWNlcyAoODI1OTgsIDgyNTk5LCBYNTQwLCBYNTUwLCBFNjEwKSwgd2hpY2ggYXJlIG5vdCBlbXVsYXRlZCBpbiBRRU1VIG9yIEdDRS4gVGhpcyBtZWFucyB0aGUgY29kZSBpcyB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cblxuQWxyaWdodCwgdGhhdCdzIHNvbGlkLiBUaW1lIHRvIGNhbGwgYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjMyNjEsIk91dHB1dFRva2VucyI6MTQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTAwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE1VDE2OjMxOjE1LjgzMzc2NzcxNFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1MjUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBJbnRlbCAxMEdiRSBQQ0kgZHJpdmVyIChpeGdiZSksIHNwZWNpZmljYWxseSByZW1vdmluZyB0aGUgaXhnYmVfcGluZ19hbGxfdmZzKCkgZnVuY3Rpb24gYW5kIGl0cyBjYWxscyBpbiB0aGUgbGluayB3YXRjaGRvZyBoYW5kbGVycy4gVGhlIGl4Z2JlIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBJbnRlbCAxMCBHaWdhYml0IEV0aGVybmV0IGhhcmR3YXJlIChzdWNoIGFzIDgyNTk4LCA4MjU5OSwgWDU0MCwgWDU1MCkgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy4gQXMgc3VjaCwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBzeXprYWxsZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgSW50ZWwgMTBHYkUgUENJIGRyaXZlciAoaXhnYmUpLCBzcGVjaWZpY2FsbHkgcmVtb3ZpbmcgdGhlIGl4Z2JlX3BpbmdfYWxsX3ZmcygpIGZ1bmN0aW9uIGFuZCBpdHMgY2FsbHMgaW4gdGhlIGxpbmsgd2F0Y2hkb2cgaGFuZGxlcnMuIFRoZSBpeGdiZSBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgSW50ZWwgMTAgR2lnYWJpdCBFdGhlcm5ldCBoYXJkd2FyZSAoc3VjaCBhcyA4MjU5OCwgODI1OTksIFg1NDAsIFg1NTApIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuIEFzIHN1Y2gsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3Igc3l6a2FsbGVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMTY6MzE6MTUuODMzODA1MTM0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowhwd2m[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-15 16:28:28 +0000 UTC FinishedAt: 2026-09-15 16:31:18 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDE2OjI5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEludGVsIDEwR2JFIFBDSSBkcml2ZXIgKGl4Z2JlKSwgc3BlY2lmaWNhbGx5IHJlbW92aW5nIHRoZSBpeGdiZV9waW5nX2FsbF92ZnMoKSBmdW5jdGlvbiBhbmQgaXRzIGNhbGxzIGluIHRoZSBsaW5rIHdhdGNoZG9nIGhhbmRsZXJzLiBUaGUgaXhnYmUgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIEludGVsIDEwIEdpZ2FiaXQgRXRoZXJuZXQgaGFyZHdhcmUgKHN1Y2ggYXMgODI1OTgsIDgyNTk5LCBYNTQwLCBYNTUwKSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLiBBcyBzdWNoLCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIHN5emthbGxlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMTY6Mjk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBmYjM2MDE5NWRmYTk1NmFlN2YxM2ZlMWU4Y2YyOTE0MTlhZWE1ZDJkXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBTZXAgMTUgMTY6Mjk6NDMgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jXG5pbmRleCBmOTE4NTY0OThlYjJkLi4zNjVhY2Y4OTBiM2E3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmNcbkBAIC04MTgxLDkgJiM0Mzs4MTgxLDYgQEAgc3RhdGljIHZvaWQgaXhnYmVfd2F0Y2hkb2dfbGlua19pc191cChzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcilcbiBcbiBcdC8qIHVwZGF0ZSB0aGUgZGVmYXVsdCB1c2VyIHByaW9yaXR5IGZvciBWRnMgKi9cbiBcdGl4Z2JlX3VwZGF0ZV9kZWZhdWx0X3VwKGFkYXB0ZXIpO1xuLVxuLVx0LyogcGluZyBhbGwgdGhlIGFjdGl2ZSB2ZnMgdG8gbGV0IHRoZW0ga25vdyBsaW5rIGhhcyBjaGFuZ2VkICovXG4tXHRpeGdiZV9waW5nX2FsbF92ZnMoYWRhcHRlcik7XG4gfVxuIFxuIC8qKlxuQEAgLTgyMTQsOSAmIzQzOzgyMTEsNiBAQCBzdGF0aWMgdm9pZCBpeGdiZV93YXRjaGRvZ19saW5rX2lzX2Rvd24oc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIpXG4gXG4gXHRlX2luZm8oZHJ2LCBcJiMzNDtOSUMgTGluayBpcyBEb3duXFxuXCYjMzQ7KTtcbiBcdG5ldGlmX2NhcnJpZXJfb2ZmKG5ldGRldik7XG4tXG4tXHQvKiBwaW5nIGFsbCB0aGUgYWN0aXZlIHZmcyB0byBsZXQgdGhlbSBrbm93IGxpbmsgaGFzIGNoYW5nZWQgKi9cbi1cdGl4Z2JlX3BpbmdfYWxsX3ZmcyhhZGFwdGVyKTtcbiB9XG4gXG4gc3RhdGljIGJvb2wgaXhnYmVfcmluZ190eF9wZW5kaW5nKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3NyaW92LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9zcmlvdi5jXG5pbmRleCA0MzFkNzdkYTE1YTVmLi5kYTY0MWU5MTQ4MWI4IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfc3Jpb3YuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfc3Jpb3YuY1xuQEAgLTE1MTUsMjAgJiM0MzsxNTE1LDYgQEAgc3RhdGljIGlubGluZSB2b2lkIGl4Z2JlX3BpbmdfdmYoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIsIGludCB2ZilcbiBcdGl4Z2JlX3dyaXRlX21ieChodywgXHUwMDI2cGluZywgMSwgdmYpO1xuIH1cbiBcbi12b2lkIGl4Z2JlX3BpbmdfYWxsX3ZmcyhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcilcbi17XG4tXHRzdHJ1Y3QgaXhnYmVfaHcgKmh3ID0gXHUwMDI2YWRhcHRlci1cdTAwM2Vodztcbi1cdHUzMiBwaW5nO1xuLVx0aW50IGk7XG4tXG4tXHRmb3IgKGkgPSAwIDsgaSBcdTAwM2MgYWRhcHRlci1cdTAwM2VudW1fdmZzOyBpJiM0MzsmIzQzOykge1xuLVx0XHRwaW5nID0gSVhHQkVfUEZfQ09OVFJPTF9NU0c7XG4tXHRcdGlmIChhZGFwdGVyLVx1MDAzZXZmaW5mb1tpXS5jbGVhcl90b19zZW5kKVxuLVx0XHRcdHBpbmcgfD0gSVhHQkVfVlRfTVNHVFlQRV9DVFM7XG4tXHRcdGl4Z2JlX3dyaXRlX21ieChodywgXHUwMDI2cGluZywgMSwgaSk7XG4tXHR9XG4tfVxuLVxuIC8qKlxuICAqIGl4Z2JlX3NldF9hbGxfdmZzIC0gdXBkYXRlIHZmcyBxdWV1ZXNcbiAgKiBAYWRhcHRlcjogUG9pbnRlciB0byBhZGFwdGVyIHN0cnVjdFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3NyaW92LmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9zcmlvdi5oXG5pbmRleCBiYzRjYWI5NzZiZjk1Li5mNzU1YmZkODQ0ODBjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfc3Jpb3YuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfc3Jpb3YuaFxuQEAgLTE4LDcgJiM0MzsxOCw2IEBAIHZvaWQgaXhnYmVfcmVzdG9yZV92Zl9tdWx0aWNhc3RzKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKTtcbiBib29sIGl4Z2JlX2NoZWNrX21kZF9ldmVudChzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcik7XG4gdm9pZCBpeGdiZV9tc2dfdGFzayhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcik7XG4gaW50IGl4Z2JlX3ZmX2NvbmZpZ3VyYXRpb24oc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVkIGludCBldmVudF9tYXNrKTtcbi12b2lkIGl4Z2JlX3BpbmdfYWxsX3ZmcyhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcik7XG4gdm9pZCBpeGdiZV9zZXRfYWxsX3ZmcyhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcik7XG4gaW50IGl4Z2JlX25kb19zZXRfdmZfbWFjKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBxdWV1ZSwgdTggKm1hYyk7XG4gaW50IGl4Z2JlX25kb19zZXRfdmZfdmxhbihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBpbnQgcXVldWUsIHUxNiB2bGFuLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDE2OjI5PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBJbnRlbCAxMEdiRSBQQ0kgZHJpdmVyIChpeGdiZSksIHNwZWNpZmljYWxseSByZW1vdmluZyB0aGUgaXhnYmVfcGluZ19hbGxfdmZzKCkgZnVuY3Rpb24gYW5kIGl0cyBjYWxscyBpbiB0aGUgbGluayB3YXRjaGRvZyBoYW5kbGVycy4gVGhlIGl4Z2JlIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBJbnRlbCAxMCBHaWdhYml0IEV0aGVybmV0IGhhcmR3YXJlIChzdWNoIGFzIDgyNTk4LCA4MjU5OSwgWDU0MCwgWDU1MCkgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy4gQXMgc3VjaCwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBzeXprYWxsZXIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lciBhbmQgc2VjdXJpdHkgZW5naW5lZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3MKdG9vbHMgdG8gaW5zcGVjdCB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlLCBjYWxsZXJzLCBhbmQgc3Vycm91bmRpbmcgY29udGV4dC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjEuIENPUkUgVFJJQUdFIFBISUxPU09QSFkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncywKYW5kIG5ld2x5IHRyaWdnZXJlZCBhc3NlcnRpb25zIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIHNlcmllcy4KCi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6CiAgRnV6emluZyBjYW4gb25seSBkaXNjb3ZlciBidWdzIGluIGNvZGUgdGhhdCBjYW4gYWN0dWFsbHkgZXhlY3V0ZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZAogIGVudmlyb25tZW50cyAoR0NFIG9yIFFFTVUsIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBkZXZpY2VzIGxpa2UgVVNCIGdhZGdldHMsIG5ldGRldiwgdHVuL3RhcCkuCiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLAogIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBhZGRzIGFzc2VydGlvbnMgb3IgY29tcGxleCBsb2dpYy4KCi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgJiMzNDtOTyBGVU5DVElPTkFMIENIQU5HRSYjMzQ7IChORkNJKSBPUiAmIzM0O1JFRkFDVE9SSU5HJiMzNDsgQ0xBSU1TOgogIFBhdGNoIGF1dGhvcnMgcm91dGluZWx5IGxhYmVsIGNoYW5nZXMgYXMgJiMzNDtjbGVhbnVwcyYjMzQ7LCAmIzM0O3JlZmFjdG9yaW5ncyYjMzQ7LCBvciBzdGF0ZQogICYjMzQ7Tm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWQmIzM0Oy4gRG8gTk9UIHRha2UgdGhlc2UgY2xhaW1zIGF0IGZhY2UgdmFsdWUuCiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50CiAgaW4gY29yZSBzdWJzeXN0ZW1zIGZyZXF1ZW50bHkgaW50cm9kdWNlIHN1YnRsZSBzZW1hbnRpYyBzaGlmdHMgb3IgdW5jb3ZlciBsYXRlbnQga2VybmVsIGJ1Z3MuCiAgSWYgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSBpcyBtb2RpZmllZCBvciByZWZhY3RvcmVkLCBpdCBNVVNUIGJlIGZ1enplZC4KCi0gTkVXIE9SIE1PRElGSUVEIEFTU0VSVElPTlMgSU4gUkVBQ0hBQkxFIENPREUgTVVTVCBCRSBGVVpaRUQ6CiAgV2hlbiBhIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXMgcnVudGltZSBjaGVja3Mgb3IgYXNzZXJ0aW9ucyAoZS5nLiwgV0FSTl9PTiosIFZNX1dBUk5fT04qLAogIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLgogIEV2ZW4gaWYgdGhlIGF1dGhvciBiZWxpZXZlcyB0aGUgaW52YXJpYW50IGFsd2F5cyBob2xkcywgZnV6emluZyBpcyBlc3NlbnRpYWwgdG8gdmVyaWZ5IHdoZXRoZXIKICBhbiB1bnVzdWFsIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMgY2FuIHZpb2xhdGUgaXQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoyLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9ZmFsc2UgKE5FR0FUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIE9OTFkgSUYgYWxsIG1vZGlmaWVkIGNvZGUgZmFsbHMgc3RyaWN0bHkgaW50byBvbmUgb3IgbW9yZSBvZiB0aGVzZSBjYXRlZ29yaWVzOgoKLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOgogICogTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzLgogICogVXNlci1zcGFjZSBkaXJlY3Rvcmllcywgc2VsZi10ZXN0cywgc2FtcGxlcywgb3Igc2NyaXB0cyAoZS5nLiwgdG9vbHMvLCBzYW1wbGVzLywgc2NyaXB0cy8sIHVzci8pCiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuCiAgKiBQdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIChlLmcuLCBtZXNzYWdlIHN0cmluZ3MgaW4gcHJfZXJyLCBwcmludGssIGRldl9pbmZvKSBvciB0cmFjZXBvaW50cwogICAgdGhhdCBkbyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGRhdGEgc3RydWN0dXJlcy4KICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy4KLSBTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmU6CiAgKiBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIFVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRoczoKICAqIERyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKC5yZW1vdmUsIC5zaHV0ZG93biwgcGNpX3VucmVnaXN0ZXJfZHJpdmVyKSBleGVjdXRlZCBvbmx5IGR1cmluZwogICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuCiAgKiBDb2RlIHBhdGhzIGV4Y2x1c2l2ZSB0byBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQozLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9dHJ1ZSAoUE9TSVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6Ci0gQ29yZSBTdWJzeXN0ZW1zOgogICogQW55IGxvZ2ljIG1vZGlmaWNhdGlvbnMgaW4gbWVtb3J5IG1hbmFnZW1lbnQgKG1tLyksIHN5bmNocm9uaXphdGlvbi9sb2NraW5nIChrZXJuZWwvbG9ja2luZy8pLAogICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLgotIFJlZmFjdG9yaW5ncyBhbmQgQ29kZSBDbGVhbnVwczoKICAqIEFueSByZXN0cnVjdHVyaW5nIG9mIHJlYWNoYWJsZSBkYXRhIHN0cnVjdHVyZXMsIGhlbHBlciBhYnN0cmFjdGlvbnMsIG9yIGFsZ29yaXRobSBmbG93cy4KLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6CiAgKiBBbnkgaW50cm9kdWN0aW9uIG9yIGFsdGVyYXRpb24gb2YgYXNzZXJ0aW9ucyAoV0FSTl9PTiosIFZNX1dBUk5fT04qLCBCVUdfT04qLCBldGMuKSBpbiByZWFjaGFibGUgcGF0aHMuCi0gUmVhY2hhYmxlIERyaXZlcnMgYW5kIFByb3RvY29sczoKICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpXaGVuIFdvcnRoRnV6emluZz10cnVlLCB5b3UgbXVzdCBleHRyYWN0IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgaW50byBGb2N1c1N5bWJvbHMgdG8gZ3VpZGUgdGhlIGZ1enplcjoKCi0gQVZPSUQgVUJJUVVJVE9VUyBMSUZFQ1lDTEUgSE9ULVBBVEhTOgogIERvIE5PVCBsaXN0IGdlbmVyaWMsIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhbGxlZCBieSBhbG1vc3QgZXZlcnkgcHJvZ3JhbSBpbiB0aGUgY29ycHVzCiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHQKICBhbmQgdHJhcCBoYW5kbGVycywgb3IgY29yZSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlczsgdGhpcyBpcyBub3QgYW4gZXhoYXVzdGl2ZSBsaXN0KS4KICBMaXN0aW5nIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhdXNlcyB0aGUgZnV6emVyIHRvIGNsYXNzaWZ5IHRob3VzYW5kcyBvZiB1bnJlbGF0ZWQgdGVzdHMgYXMgJiMzNDtmb2N1c2VkJiMzNDssCiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLgoKLSBUQVJHRVQgU1BFQ0lGSUMgRkVBVFVSRSBMT0dJQyBBTkQgRU5UUllQT0lOVFM6CiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzCiAgZm9yIHRoZSBzdWJzeXN0ZW0gZmVhdHVyZSB1bmRlciByZXZpZXcuCgotIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKToKICBDb21waWxlci1pbmxpbmVkIHN0YXRpYyBmdW5jdGlvbnMgKHN1Y2ggYXMgc3RhdGljIGlubGluZXMgaW4gbW0vKi5oIG9yIGluY2x1ZGUvbGludXgvKi5oKSBsYWNrCiAgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyBpbiB2bWxpbnV4IGFuZCBjYW5ub3QgYmUgdGFyZ2V0ZWQgZGlyZWN0bHkgYnkgc3ltYm9sIGNvdmVyYWdlIGZpbHRlcnMuCiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyCiAgZnVuY3Rpb25zIGluIC5jIGZpbGVzIHRoYXQgZXhlcmNpc2UgdGhlbSAoYXZvaWRpbmcgdWJpcXVpdG91cyBsaWZlY3ljbGUgd3JhcHBlcnMpLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNS4gSURFTlRJRllJTkcgRW5hYmxlQ29uZmlncwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOgotIEluc3BlY3QgS2NvbmZpZyBmaWxlcyBhbmQgI2lmZGVmIGd1YXJkczsgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCi0gQ2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzIG5lZWRlZC4KLSBTdHJpcCBhbnkgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+VGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjQKCkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZmIzNjAxOTVkZmE5NTZhZTdmMTNmZTFlOGNmMjkxNDE5YWVhNWQyZApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUdWUgU2VwIDE1IDE2OjI5OjQzIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jCmluZGV4IGY5MTg1NjQ5OGViMmQuLjM2NWFjZjg5MGIzYTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMKQEAgLTgxODEsOSAmIzQzOzgxODEsNiBAQCBzdGF0aWMgdm9pZCBpeGdiZV93YXRjaGRvZ19saW5rX2lzX3VwKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKQogCiAJLyogdXBkYXRlIHRoZSBkZWZhdWx0IHVzZXIgcHJpb3JpdHkgZm9yIFZGcyAqLwogCWl4Z2JlX3VwZGF0ZV9kZWZhdWx0X3VwKGFkYXB0ZXIpOwotCi0JLyogcGluZyBhbGwgdGhlIGFjdGl2ZSB2ZnMgdG8gbGV0IHRoZW0ga25vdyBsaW5rIGhhcyBjaGFuZ2VkICovCi0JaXhnYmVfcGluZ19hbGxfdmZzKGFkYXB0ZXIpOwogfQogCiAvKioKQEAgLTgyMTQsOSAmIzQzOzgyMTEsNiBAQCBzdGF0aWMgdm9pZCBpeGdiZV93YXRjaGRvZ19saW5rX2lzX2Rvd24oc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIpCiAKIAllX2luZm8oZHJ2LCAmIzM0O05JQyBMaW5rIGlzIERvd25cbiYjMzQ7KTsKIAluZXRpZl9jYXJyaWVyX29mZihuZXRkZXYpOwotCi0JLyogcGluZyBhbGwgdGhlIGFjdGl2ZSB2ZnMgdG8gbGV0IHRoZW0ga25vdyBsaW5rIGhhcyBjaGFuZ2VkICovCi0JaXhnYmVfcGluZ19hbGxfdmZzKGFkYXB0ZXIpOwogfQogCiBzdGF0aWMgYm9vbCBpeGdiZV9yaW5nX3R4X3BlbmRpbmcoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIpCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9zcmlvdi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfc3Jpb3YuYwppbmRleCA0MzFkNzdkYTE1YTVmLi5kYTY0MWU5MTQ4MWI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9zcmlvdi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3NyaW92LmMKQEAgLTE1MTUsMjAgJiM0MzsxNTE1LDYgQEAgc3RhdGljIGlubGluZSB2b2lkIGl4Z2JlX3BpbmdfdmYoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIsIGludCB2ZikKIAlpeGdiZV93cml0ZV9tYngoaHcsICZhbXA7cGluZywgMSwgdmYpOwogfQogCi12b2lkIGl4Z2JlX3BpbmdfYWxsX3ZmcyhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcikKLXsKLQlzdHJ1Y3QgaXhnYmVfaHcgKmh3ID0gJmFtcDthZGFwdGVyLSZndDtodzsKLQl1MzIgcGluZzsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDAgOyBpICZsdDsgYWRhcHRlci0mZ3Q7bnVtX3ZmczsgaSYjNDM7JiM0MzspIHsKLQkJcGluZyA9IElYR0JFX1BGX0NPTlRST0xfTVNHOwotCQlpZiAoYWRhcHRlci0mZ3Q7dmZpbmZvW2ldLmNsZWFyX3RvX3NlbmQpCi0JCQlwaW5nIHw9IElYR0JFX1ZUX01TR1RZUEVfQ1RTOwotCQlpeGdiZV93cml0ZV9tYngoaHcsICZhbXA7cGluZywgMSwgaSk7Ci0JfQotfQotCiAvKioKICAqIGl4Z2JlX3NldF9hbGxfdmZzIC0gdXBkYXRlIHZmcyBxdWV1ZXMKICAqIEBhZGFwdGVyOiBQb2ludGVyIHRvIGFkYXB0ZXIgc3RydWN0CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9zcmlvdi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfc3Jpb3YuaAppbmRleCBiYzRjYWI5NzZiZjk1Li5mNzU1YmZkODQ0ODBjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9zcmlvdi5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3NyaW92LmgKQEAgLTE4LDcgJiM0MzsxOCw2IEBAIHZvaWQgaXhnYmVfcmVzdG9yZV92Zl9tdWx0aWNhc3RzKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKTsKIGJvb2wgaXhnYmVfY2hlY2tfbWRkX2V2ZW50KHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKTsKIHZvaWQgaXhnYmVfbXNnX3Rhc2soc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIpOwogaW50IGl4Z2JlX3ZmX2NvbmZpZ3VyYXRpb24oc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVkIGludCBldmVudF9tYXNrKTsKLXZvaWQgaXhnYmVfcGluZ19hbGxfdmZzKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKTsKIHZvaWQgaXhnYmVfc2V0X2FsbF92ZnMoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIpOwogaW50IGl4Z2JlX25kb19zZXRfdmZfbWFjKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBxdWV1ZSwgdTggKm1hYyk7CiBpbnQgaXhnYmVfbmRvX3NldF92Zl92bGFuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBxdWV1ZSwgdTE2IHZsYW4sCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDE2OjI5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM3NzMKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiA0ODUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBpeGdiZSBEcml2ZXIgUGF0Y2ggZm9yIFdvcnRoRnV6emluZyBDcml0ZXJpYSoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGFmZmVjdHMgdGhlIEludGVsIGl4Z2JlIGRyaXZlciwgc3BlY2lmaWNhbGx5IGluIGBpeGdiZV9tYWluLmNgLCBgaXhnYmVfc3Jpb3YuY2AsIGFuZCBgaXhnYmVfc3Jpb3YuaGAuIEl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgcmVtb3ZpbmcgY2FsbHMgdG8gYGl4Z2JlX3BpbmdfYWxsX3Zmc2AgYW5kIHRoZSBmdW5jdGlvbiBpdHNlbGYuIE5vdywgbXkgYnJhaW4gaW1tZWRpYXRlbHkganVtcHMgdG8gdGhlICYjMzQ7V29ydGhGdXp6aW5nJiMzNDsgcnVsZXMuICBTcGVjaWZpY2FsbHksIHRoZSBuZWdhdGl2ZSBjcml0ZXJpYTogJiMzNDtTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmUuJiMzNDsgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhpcyBwYXRjaCBmYWxscyBpbnRvIHRoYXQgY2F0ZWdvcnkuCgpUaGUga2V5IHF1ZXN0aW9uIGhlcmUgaXMgd2hldGhlciB0aGUgaXhnYmUgZHJpdmVyLCB3aGljaCBoYW5kbGVzIHRob3NlIEludGVsIDgyNTk5IGFuZCBzaW1pbGFyIDEwIEdpZ2FiaXQgRXRoZXJuZXQgY29udHJvbGxlcnMsIGlzICplbXVsYXRlZCogaW4gc3RhbmRhcmQgUUVNVS4gIFRoZSBkb2N1bWVudGF0aW9uIGxpc3RzIHNldmVyYWwgZW11bGF0ZWQgTklDcyBsaWtlIGUxMDAwLCBlMTAwMGUsIGlnYiAoaW4gc29tZSB2ZXJzaW9ucyksIHZteG5ldDMsIGFuZCB2aXJ0aW8tbmV0LCBldGMuLCBidXQgKmRvZXMqIGl0IGV4cGxpY2l0bHkgbWVudGlvbiBpeGdiZT8gTXkgaW5pdGlhbCB0aG91Z2h0IGlzICpubyosIGJ1dCBJIG5lZWQgdG8gYmUgY2VydGFpbi4KCkxldCYjMzk7cyBkbyBzb21lIHF1aWNrIHJlc2VhcmNoIG9uIFFFTVUmIzM5O3MgZGV2aWNlIG1vZGVscy4gSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IGxvb2sgYW5kIHNlZSBpZiBJIGNhbiBldmVuIGluc3RhbnRpYXRlIGFuIGl4Z2JlIGRldmljZSBpbiBRRU1VLiAgTXkgcXVpY2sgc2NhbiBvZiBRRU1VJiMzOTtzIGF2YWlsYWJsZSBuZXR3b3JrIGRldmljZSBtb2RlbHMgcmV2ZWFscyBubyBpeGdiZS4gSSBjYW4gc2VlIGUxMDAwLCBlMTAwMGUsIGlnYiwgYnV0IG5vdGhpbmcgZm9yIGl4Z2JlLCB3aGljaCBpcyBhIGJpZyByZWQgZmxhZy4KCkdpdmVuIHRoYXQgaXhnYmUgaXNuJiMzOTt0IGxpc3RlZCwgSSBuZWVkIHRvIGNvbmZpcm0gd2hldGhlciB0aGVyZSYjMzk7cyBzb21lIGtpbmQgb2YgdmlydHVhbCBvciBtb2NrIHN1cHBvcnQgZm9yIGl4Z2JlIHRoYXQgbWlnaHQgc3RpbGwgYWxsb3cgZm9yIHRlc3RpbmcgaW4gZW52aXJvbm1lbnRzIGxpa2UgU3l6a2FsbGVyIG9yIHN0YW5kYXJkIHZpcnR1YWxpemVkIHNldHVwcy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIGRyaXZlciBpcyB0ZXN0YWJsZSwgYnV0IEkmIzM5O20gbGVhbmluZyBoZWF2aWx5IHRvd2FyZHMgJiMzNDt1bnJlYWNoYWJsZSYjMzQ7IGlmIGl0JiMzOTtzIG5vdCBlbXVsYXRlZC4gSSYjMzk7bSBnb2luZyB0byBsb29rIGZvciBhbnkgbWVudGlvbiBvZiB2aXJ0dWFsIG9yIG1vY2sgaXhnYmUgc3VwcG9ydCBiZWZvcmUgcHJvY2VlZGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAxNjozMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpeGdiZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAyMTUyMCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvTWFrZWZpbGU9Nz1zdWJkaXItY2NmbGFncy15ICYjNDM7PSAtSSQoc3JjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvTWFrZWZpbGU6ODpvYmotJChDT05GSUdfSVhHQkUpICYjNDM7PSBpeGdiZS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9NYWtlZmlsZS05LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvTWFrZWZpbGU6MTA6aXhnYmUteSA6PSBpeGdiZV9tYWluLm8gaXhnYmVfY29tbW9uLm8gaXhnYmVfZXRodG9vbC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9NYWtlZmlsZToxMTogICAgICAgICAgIGl4Z2JlXzgyNTk5Lm8gaXhnYmVfODI1OTgubyBpeGdiZV9waHkubyBpeGdiZV9zcmlvdi5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9NYWtlZmlsZToxMjogICAgICAgICAgIGl4Z2JlX21ieC5vIGl4Z2JlX3g1NDAubyBpeGdiZV94NTUwLm8gaXhnYmVfbGliLm8gaXhnYmVfcHRwLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL01ha2VmaWxlOjEzOiAgICAgICAgICAgaXhnYmVfeHNrLm8gaXhnYmVfZTYxMC5vIGRldmxpbmsvZGV2bGluay5vIGl4Z2JlX2Z3X3VwZGF0ZS5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9NYWtlZmlsZS0xNC1cdCAgIGRldmxpbmsvcmVnaW9uLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL01ha2VmaWxlLTE1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvTWFrZWZpbGU6MTY6aXhnYmUtJChDT05GSUdfSVhHQkVfRENCKSAmIzQzOz0gIGl4Z2JlX2RjYi5vIGl4Z2JlX2RjYl84MjU5OC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9NYWtlZmlsZToxNzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpeGdiZV9kY2JfODI1OTkubyBpeGdiZV9kY2Jfbmwub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvTWFrZWZpbGUtMTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9NYWtlZmlsZToxOTppeGdiZS0kKENPTkZJR19JWEdCRV9IV01PTikgJiM0Mzs9IGl4Z2JlX3N5c2ZzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL01ha2VmaWxlOjIwOml4Z2JlLSQoQ09ORklHX0RFQlVHX0ZTKSAmIzQzOz0gaXhnYmVfZGVidWdmcy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9NYWtlZmlsZToyMTppeGdiZS0kKENPTkZJR19GQ09FOm09eSkgJiM0Mzs9IGl4Z2JlX2Zjb2Uub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvTWFrZWZpbGU6MjI6aXhnYmUtJChDT05GSUdfSVhHQkVfSVBTRUMpICYjNDM7PSBpeGdiZV9pcHNlYy5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQ6I2luY2x1ZGUgXCYjMzQ7aXhnYmUuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNS0jaW5jbHVkZSBcJiMzNDtkZXZsaW5rLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjY6I2luY2x1ZGUgXCYjMzQ7aXhnYmVfZndfdXBkYXRlLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo4OnN0cnVjdCBpeGdiZV9pbmZvX2N0eCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy05LVx0Y2hhciBidWZbMTI4XTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjEwOlx0c3RydWN0IGl4Z2JlX29yb21faW5mbyBwZW5kaW5nX29yb207XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMTpcdHN0cnVjdCBpeGdiZV9udm1faW5mbyBwZW5kaW5nX252bTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjEyOlx0c3RydWN0IGl4Z2JlX25ldGxpc3RfaW5mbyBwZW5kaW5nX25ldGxpc3Q7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMzpcdHN0cnVjdCBpeGdiZV9od19kZXZfY2FwcyBkZXZfY2FwcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTE0LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjE2OmVudW0gaXhnYmVfZGV2bGlua192ZXJzaW9uX3R5cGUge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTctXHRJWEdCRV9ETF9WRVJTSU9OX1JVTk5JTkcsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyMTpzdGF0aWMgdm9pZCBpeGdiZV9pbmZvX2dldF9kc24oc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyMjpcdFx0XHQgICAgICAgc3RydWN0IGl4Z2JlX2luZm9fY3R4ICpjdHgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yMy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozMjpzdGF0aWMgdm9pZCBpeGdiZV9pbmZvX29yb21fdmVyKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzM6XHRcdFx0XHRzdHJ1Y3QgaXhnYmVfaW5mb19jdHggKmN0eCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjM0Olx0XHRcdFx0ZW51bSBpeGdiZV9kZXZsaW5rX3ZlcnNpb25fdHlwZSB0eXBlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMzUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzY6XHRzdHJ1Y3QgaXhnYmVfaHcgKmh3ID0gXHUwMDI2YWRhcHRlci1cdTAwM2VodztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjM3Olx0c3RydWN0IGl4Z2JlX252bV92ZXJzaW9uIG52bV92ZXI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zOC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQxOlx0aWYgKGh3LVx1MDAzZW1hYy50eXBlID09IGl4Z2JlX21hY19lNjEwKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo0MjpcdFx0c3RydWN0IGl4Z2JlX29yb21faW5mbyAqb3JvbSA9IFx1MDAyNmFkYXB0ZXItXHUwMDNlaHcuZmxhc2gub3JvbTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTUyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NTM6XHRpeGdiZV9nZXRfb2VtX3Byb2RfdmVyc2lvbihodywgXHUwMDI2bnZtX3Zlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy01NC1cdGlmIChudm1fdmVyLm9lbV92YWxpZCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTYxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NjI6XHRpeGdiZV9nZXRfb3JvbV92ZXJzaW9uKGh3LCBcdTAwMjZudm1fdmVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTYzLVx0aWYgKG52bV92ZXIub3JfdmFsaWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNjctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo2ODpzdGF0aWMgdm9pZCBpeGdiZV9pbmZvX2VldHJhY2soc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo2OTpcdFx0XHQgICAgICAgc3RydWN0IGl4Z2JlX2luZm9fY3R4ICpjdHgsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo3MDpcdFx0XHQgICAgICAgZW51bSBpeGdiZV9kZXZsaW5rX3ZlcnNpb25fdHlwZSB0eXBlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNzEte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NzI6XHRzdHJ1Y3QgaXhnYmVfaHcgKmh3ID0gXHUwMDI2YWRhcHRlci1cdTAwM2VodztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjczOlx0c3RydWN0IGl4Z2JlX252bV92ZXJzaW9uIG52bV92ZXI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy03NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjc1Olx0aWYgKGh3LVx1MDAzZW1hYy50eXBlID09IGl4Z2JlX21hY19lNjEwKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy03Ni1cdFx0dTMyIGVldHJhY2sgPSBody1cdTAwM2VmbGFzaC5udm0uZWV0cmFjaztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy04NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjg2Olx0aXhnYmVfZ2V0X29lbV9wcm9kX3ZlcnNpb24oaHcsIFx1MDAyNm52bV92ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtODctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtOTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo5NDpcdGl4Z2JlX2dldF9ldGtfaWQoaHcsIFx1MDAyNm52bV92ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtOTUtXHRzbnByaW50ZihjdHgtXHUwMDNlYnVmLCBzaXplb2YoY3R4LVx1MDAzZWJ1ZiksIFwmIzM0OzB4JTA4eFwmIzM0OywgbnZtX3Zlci5ldGtfaWQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTk3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6OTg6c3RhdGljIHZvaWQgaXhnYmVfaW5mb19md19hcGkoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo5OTpcdFx0XHQgICAgICBzdHJ1Y3QgaXhnYmVfaW5mb19jdHggKmN0eClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTEwMC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMDE6XHRzdHJ1Y3QgaXhnYmVfaHcgKmh3ID0gXHUwMDI2YWRhcHRlci1cdTAwM2VodztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTEwMi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xMDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMDc6c3RhdGljIHZvaWQgaXhnYmVfaW5mb19md19idWlsZChzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjEwODpcdFx0XHRcdHN0cnVjdCBpeGdiZV9pbmZvX2N0eCAqY3R4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTA5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjExMDpcdHN0cnVjdCBpeGdiZV9odyAqaHcgPSBcdTAwMjZhZGFwdGVyLVx1MDAzZWh3O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTExLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTExNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjExNTpzdGF0aWMgdm9pZCBpeGdiZV9pbmZvX2Z3X3NyZXYoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMTY6XHRcdFx0ICAgICAgIHN0cnVjdCBpeGdiZV9pbmZvX2N0eCAqY3R4LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTE3Olx0XHRcdCAgICAgICBlbnVtIGl4Z2JlX2RldmxpbmtfdmVyc2lvbl90eXBlIHR5cGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xMTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTE5Olx0c3RydWN0IGl4Z2JlX252bV9pbmZvICpudm0gPSBcdTAwMjZhZGFwdGVyLVx1MDAzZWh3LmZsYXNoLm52bTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTEyMC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xMjctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMjg6c3RhdGljIHZvaWQgaXhnYmVfaW5mb19vcm9tX3NyZXYoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMjk6XHRcdFx0XHQgc3RydWN0IGl4Z2JlX2luZm9fY3R4ICpjdHgsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMzA6XHRcdFx0XHQgZW51bSBpeGdiZV9kZXZsaW5rX3ZlcnNpb25fdHlwZSB0eXBlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTMxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjEzMjpcdHN0cnVjdCBpeGdiZV9vcm9tX2luZm8gKm9yb20gPSBcdTAwMjZhZGFwdGVyLVx1MDAzZWh3LmZsYXNoLm9yb207XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xMzMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTQwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTQxOnN0YXRpYyB2b2lkIGl4Z2JlX2luZm9fbnZtX3ZlcihzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjE0MjpcdFx0XHQgICAgICAgc3RydWN0IGl4Z2JlX2luZm9fY3R4ICpjdHgsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxNDM6XHRcdFx0ICAgICAgIGVudW0gaXhnYmVfZGV2bGlua192ZXJzaW9uX3R5cGUgdHlwZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTE0NC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxNDU6XHRzdHJ1Y3QgaXhnYmVfbnZtX2luZm8gKm52bSA9IFx1MDAyNmFkYXB0ZXItXHUwMDNlaHcuZmxhc2gubnZtO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTQ2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTE1My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjE1NDpzdGF0aWMgdm9pZCBpeGdiZV9pbmZvX25ldGxpc3RfdmVyKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTU1Olx0XHRcdFx0ICAgc3RydWN0IGl4Z2JlX2luZm9fY3R4ICpjdHgsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxNTY6XHRcdFx0XHQgICBlbnVtIGl4Z2JlX2RldmxpbmtfdmVyc2lvbl90eXBlIHR5cGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xNTcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTU4Olx0c3RydWN0IGl4Z2JlX25ldGxpc3RfaW5mbyAqbmV0bGlzdCA9IFx1MDAyNmFkYXB0ZXItXHUwMDNlaHcuZmxhc2gubmV0bGlzdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTE1OS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xNzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxNzE6c3RhdGljIHZvaWQgaXhnYmVfaW5mb19uZXRsaXN0X2J1aWxkKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTcyOlx0XHRcdFx0ICAgICBzdHJ1Y3QgaXhnYmVfaW5mb19jdHggKmN0eCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjE3MzpcdFx0XHRcdCAgICAgZW51bSBpeGdiZV9kZXZsaW5rX3ZlcnNpb25fdHlwZSB0eXBlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTc0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjE3NTpcdHN0cnVjdCBpeGdiZV9uZXRsaXN0X2luZm8gKm5ldGxpc3QgPSBcdTAwMjZhZGFwdGVyLVx1MDAzZWh3LmZsYXNoLm5ldGxpc3Q7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xNzYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTgzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTg0OnN0YXRpYyBpbnQgaXhnYmVfc2V0X2N0eF9kZXZfY2FwcyhzdHJ1Y3QgaXhnYmVfaHcgKmh3LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTg1Olx0XHRcdFx0ICBzdHJ1Y3QgaXhnYmVfaW5mb19jdHggKmN0eCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTE4Ni1cdFx0XHRcdCAgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTE5MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjE5MTpcdGVyciA9IGl4Z2JlX2Rpc2NvdmVyX2Rldl9jYXBzKGh3LCBcdTAwMjZjdHgtXHUwMDNlZGV2X2NhcHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTkyLVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTIwMi1cdGlmICgqcGVuZGluZ19vcm9tKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyMDM6XHRcdGVyciA9IGl4Z2JlX2dldF9pbmFjdGl2ZV9vcm9tX3ZlcihodywgXHUwMDI2Y3R4LVx1MDAzZXBlbmRpbmdfb3JvbSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yMDQtXHRcdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjA4LVx0aWYgKCpwZW5kaW5nX252bSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MjA5Olx0XHRlcnIgPSBpeGdiZV9nZXRfaW5hY3RpdmVfbnZtX3ZlcihodywgXHUwMDI2Y3R4LVx1MDAzZXBlbmRpbmdfbnZtKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTIxMC1cdFx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yMTQtXHRpZiAoKnBlbmRpbmdfbmV0bGlzdCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MjE1Olx0XHRlcnIgPSBpeGdiZV9nZXRfaW5hY3RpdmVfbmV0bGlzdF92ZXIoaHcsIFx1MDAyNmN0eC1cdTAwM2VwZW5kaW5nX25ldGxpc3QpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjE2LVx0XHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTIyMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjIyMzpzdGF0aWMgaW50IGl4Z2JlX2RldmxpbmtfaW5mb19nZXRfZTYxMChzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTIyNC1cdFx0XHRcdCAgICAgICBzdHJ1Y3QgZGV2bGlua19pbmZvX3JlcSAqcmVxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MjI1Olx0XHRcdFx0ICAgICAgIHN0cnVjdCBpeGdiZV9pbmZvX2N0eCAqY3R4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjI2LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yMjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyMjk6XHRpeGdiZV9pbmZvX2Z3X2FwaShhZGFwdGVyLCBjdHgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjMwLVx0ZXJyID0gZGV2bGlua19pbmZvX3ZlcnNpb25fcnVubmluZ19wdXQocmVxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTIzNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjIzNjpcdGl4Z2JlX2luZm9fZndfYnVpbGQoYWRhcHRlciwgY3R4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTIzNy1cdGVyciA9IGRldmxpbmtfaW5mb192ZXJzaW9uX3J1bm5pbmdfcHV0KHJlcSwgXCYjMzQ7ZncubWdtdC5idWlsZFwmIzM0OywgY3R4LVx1MDAzZWJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjQwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MjQxOlx0aXhnYmVfaW5mb19md19zcmV2KGFkYXB0ZXIsIGN0eCwgSVhHQkVfRExfVkVSU0lPTl9SVU5OSU5HKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI0Mi1cdGVyciA9IGRldmxpbmtfaW5mb192ZXJzaW9uX3J1bm5pbmdfcHV0KHJlcSwgXCYjMzQ7ZncubWdtdC5zcmV2XCYjMzQ7LCBjdHgtXHUwMDNlYnVmKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yNDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyNDY6XHRpeGdiZV9pbmZvX29yb21fc3JldihhZGFwdGVyLCBjdHgsIElYR0JFX0RMX1ZFUlNJT05fUlVOTklORyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yNDctXHRlcnIgPSBkZXZsaW5rX2luZm9fdmVyc2lvbl9ydW5uaW5nX3B1dChyZXEsIFwmIzM0O2Z3LnVuZGkuc3JldlwmIzM0OywgY3R4LVx1MDAzZWJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjUwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MjUxOlx0aXhnYmVfaW5mb19udm1fdmVyKGFkYXB0ZXIsIGN0eCwgSVhHQkVfRExfVkVSU0lPTl9SVU5OSU5HKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI1Mi1cdGVyciA9IGRldmxpbmtfaW5mb192ZXJzaW9uX3J1bm5pbmdfcHV0KHJlcSwgXCYjMzQ7ZncucHNpZC5hcGlcJiMzNDssIGN0eC1cdTAwM2VidWYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI1NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjI1NjpcdGl4Z2JlX2luZm9fbmV0bGlzdF92ZXIoYWRhcHRlciwgY3R4LCBJWEdCRV9ETF9WRVJTSU9OX1JVTk5JTkcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjU3LVx0ZXJyID0gZGV2bGlua19pbmZvX3ZlcnNpb25fcnVubmluZ19wdXQocmVxLCBcJiMzNDtmdy5uZXRsaXN0XCYjMzQ7LCBjdHgtXHUwMDNlYnVmKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yNjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyNjE6XHRpeGdiZV9pbmZvX25ldGxpc3RfYnVpbGQoYWRhcHRlciwgY3R4LCBJWEdCRV9ETF9WRVJTSU9OX1JVTk5JTkcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjYyLVx0cmV0dXJuIGRldmxpbmtfaW5mb192ZXJzaW9uX3J1bm5pbmdfcHV0KHJlcSwgXCYjMzQ7ZncubmV0bGlzdC5idWlsZFwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYz0yNjY9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MjY3Oml4Z2JlX2RldmxpbmtfcGVuZGluZ19pbmZvX2dldF9lNjEwKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjY4LVx0XHRcdFx0ICAgIHN0cnVjdCBkZXZsaW5rX2luZm9fcmVxICpyZXEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyNjk6XHRcdFx0XHQgICAgc3RydWN0IGl4Z2JlX2luZm9fY3R4ICpjdHgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yNzAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjI3MzpcdGl4Z2JlX2luZm9fb3JvbV92ZXIoYWRhcHRlciwgY3R4LCBJWEdCRV9ETF9WRVJTSU9OX1NUT1JFRCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yNzQtXHRlcnIgPSBkZXZsaW5rX2luZm9fdmVyc2lvbl9zdG9yZWRfcHV0KHJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yNzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyODA6XHRpeGdiZV9pbmZvX2VldHJhY2soYWRhcHRlciwgY3R4LCBJWEdCRV9ETF9WRVJTSU9OX1NUT1JFRCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yODEtXHRlcnIgPSBkZXZsaW5rX2luZm9fdmVyc2lvbl9zdG9yZWRfcHV0KHJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yODYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyODc6XHRpeGdiZV9pbmZvX2Z3X3NyZXYoYWRhcHRlciwgY3R4LCBJWEdCRV9ETF9WRVJTSU9OX1NUT1JFRCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yODgtXHRlcnIgPSBkZXZsaW5rX2luZm9fdmVyc2lvbl9zdG9yZWRfcHV0KHJlcSwgXCYjMzQ7ZncubWdtdC5zcmV2XCYjMzQ7LCBjdHgtXHUwMDNlYnVmKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yOTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyOTI6XHRpeGdiZV9pbmZvX29yb21fc3JldihhZGFwdGVyLCBjdHgsIElYR0JFX0RMX1ZFUlNJT05fU1RPUkVEKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI5My1cdGVyciA9IGRldmxpbmtfaW5mb192ZXJzaW9uX3N0b3JlZF9wdXQocmVxLCBcJiMzNDtmdy51bmRpLnNyZXZcJiMzNDssIGN0eC1cdTAwM2VidWYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI5Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjI5NzpcdGl4Z2JlX2luZm9fbnZtX3ZlcihhZGFwdGVyLCBjdHgsIElYR0JFX0RMX1ZFUlNJT05fU1RPUkVEKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI5OC1cdGVyciA9IGRldmxpbmtfaW5mb192ZXJzaW9uX3N0b3JlZF9wdXQocmVxLCBcJiMzNDtmdy5wc2lkLmFwaVwmIzM0OywgY3R4LVx1MDAzZWJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMzAxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzAyOlx0aXhnYmVfaW5mb19uZXRsaXN0X3ZlcihhZGFwdGVyLCBjdHgsIElYR0JFX0RMX1ZFUlNJT05fU1RPUkVEKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTMwMy1cdGVyciA9IGRldmxpbmtfaW5mb192ZXJzaW9uX3N0b3JlZF9wdXQocmVxLCBcJiMzNDtmdy5uZXRsaXN0XCYjMzQ7LCBjdHgtXHUwMDNlYnVmKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zMDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozMDc6XHRpeGdiZV9pbmZvX25ldGxpc3RfYnVpbGQoYWRhcHRlciwgY3R4LCBJWEdCRV9ETF9WRVJTSU9OX1NUT1JFRCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zMDgtXHRyZXR1cm4gZGV2bGlua19pbmZvX3ZlcnNpb25fc3RvcmVkX3B1dChyZXEsIFwmIzM0O2Z3Lm5ldGxpc3QuYnVpbGRcJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMzExLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzEyOnN0YXRpYyBpbnQgaXhnYmVfZGV2bGlua19pbmZvX2dldChzdHJ1Y3QgZGV2bGluayAqZGV2bGluayxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTMxMy1cdFx0XHRcdCAgc3RydWN0IGRldmxpbmtfaW5mb19yZXEgKnJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zMTUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzE2Olx0c3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIgPSBkZXZsaW5rX3ByaXYoZGV2bGluayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozMTc6XHRzdHJ1Y3QgaXhnYmVfaHcgKmh3ID0gXHUwMDI2YWRhcHRlci1cdTAwM2VodztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjMxODpcdHN0cnVjdCBpeGdiZV9pbmZvX2N0eCAqY3R4O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMzE5LVx0aW50IGVycjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zMjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozMjU6XHRpZiAoaHctXHUwMDNlbWFjLnR5cGUgPT0gaXhnYmVfbWFjX2U2MTApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozMjY6XHRcdGl4Z2JlX3JlZnJlc2hfZndfdmVyc2lvbihhZGFwdGVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTMyNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjMyODpcdGl4Z2JlX2luZm9fZ2V0X2RzbihhZGFwdGVyLCBjdHgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMzI5LVx0ZXJyID0gZGV2bGlua19pbmZvX3NlcmlhbF9udW1iZXJfcHV0KHJlcSwgY3R4LVx1MDAzZWJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMzQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzQzOlx0aXhnYmVfaW5mb19vcm9tX3ZlcihhZGFwdGVyLCBjdHgsIElYR0JFX0RMX1ZFUlNJT05fUlVOTklORyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNDQtXHRlcnIgPSBkZXZsaW5rX2luZm9fdmVyc2lvbl9ydW5uaW5nX3B1dChyZXEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMzQ5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzUwOlx0aXhnYmVfaW5mb19lZXRyYWNrKGFkYXB0ZXIsIGN0eCwgSVhHQkVfRExfVkVSU0lPTl9SVU5OSU5HKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTM1MS1cdGVyciA9IGRldmxpbmtfaW5mb192ZXJzaW9uX3J1bm5pbmdfcHV0KHJlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNTMtXHRcdFx0XHRcdCAgICAgICBjdHgtXHUwMDNlYnVmKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjM1NDpcdGlmIChlcnIgfHwgaHctXHUwMDNlbWFjLnR5cGUgIT0gaXhnYmVfbWFjX2U2MTApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNTUtXHRcdGdvdG8gZnJlZV9jdHg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozNTc6XHRlcnIgPSBpeGdiZV9zZXRfY3R4X2Rldl9jYXBzKGh3LCBjdHgsIGV4dGFjayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNTgtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTM2MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjM2MTpcdGVyciA9IGl4Z2JlX2RldmxpbmtfaW5mb19nZXRfZTYxMChhZGFwdGVyLCByZXEsIGN0eCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNjItXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTM2NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjM2NTpcdGVyciA9IGl4Z2JlX2RldmxpbmtfcGVuZGluZ19pbmZvX2dldF9lNjEwKGFkYXB0ZXIsIHJlcSwgY3R4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTM2Ni1mcmVlX2N0eDpcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNzEtLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozNzI6ICogaXhnYmVfZGV2bGlua19yZWxvYWRfZW1wcl9zdGFydCAtIFN0YXJ0IEVNUCByZXNldCB0byBhY3RpdmF0ZSBuZXcgZmlybXdhcmVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTM3My0gKiBAZGV2bGluazogcG9pbnRlciB0byB0aGUgZGV2bGluayBpbnN0YW5jZSB0byByZWxvYWRcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zODktICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozOTA6c3RhdGljIGludCBpeGdiZV9kZXZsaW5rX3JlbG9hZF9lbXByX3N0YXJ0KHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMzkxLVx0XHRcdFx0XHQgICBib29sIG5ldG5zX2NoYW5nZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zOTUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6Mzk2Olx0c3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIgPSBkZXZsaW5rX3ByaXYoZGV2bGluayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozOTc6XHRzdHJ1Y3QgaXhnYmVfaHcgKmh3ID0gXHUwMDI2YWRhcHRlci1cdTAwM2VodztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTM5OC1cdHU4IHBlbmRpbmc7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDAwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NDAxOlx0aWYgKGh3LVx1MDAzZW1hYy50eXBlICE9IGl4Z2JlX21hY19lNjEwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDAyLVx0XHRyZXR1cm4gLUVPUE5PVFNVUFA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00MDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo0MDQ6XHRlcnIgPSBpeGdiZV9nZXRfcGVuZGluZ191cGRhdGVzKGFkYXB0ZXIsIFx1MDAyNnBlbmRpbmcsIGV4dGFjayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00MDUtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQyMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQyNDpcdGVyciA9IGl4Z2JlX2FjaV9udm1fdXBkYXRlX2VtcHIoaHcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDI1LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00MzUtLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo0MzY6ICogaXhnYmVfZGV2bGlua19yZWxvYWRfZW1wcl9maW5pc2ggLSBmaW5pc2hlcyBFTVAgcmVzZXRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQzNy0gKiBAZGV2bGluazogcG9pbnRlciB0byB0aGUgZGV2bGluayBpbnN0YW5jZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQ0Ni0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQ0NzpzdGF0aWMgaW50IGl4Z2JlX2RldmxpbmtfcmVsb2FkX2VtcHJfZmluaXNoKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDQ4LVx0XHRcdFx0XHQgICAgZW51bSBkZXZsaW5rX3JlbG9hZF9hY3Rpb24gYWN0aW9uLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQ1Mi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo0NTM6XHRzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlciA9IGRldmxpbmtfcHJpdihkZXZsaW5rKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQ1NDpcdHN0cnVjdCBpeGdiZV9odyAqaHcgPSBcdTAwMjZhZGFwdGVyLVx1MDAzZWh3O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDU1LVx0aW50IGkgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQ3Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQ3NzpcdHJldHVybiBpeGdiZV9yZWZyZXNoX2Z3X3ZlcnNpb24oYWRhcHRlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00NzgtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDc5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NDgwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2bGlua19vcHMgaXhnYmVfZGV2bGlua19vcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo0ODE6XHQuaW5mb19nZXQgPSBpeGdiZV9kZXZsaW5rX2luZm9fZ2V0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDgyLVx0LnN1cHBvcnRlZF9mbGFzaF91cGRhdGVfcGFyYW1zID1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQ4My1cdFx0REVWTElOS19TVVBQT1JUX0ZMQVNIX1VQREFURV9PVkVSV1JJVEVfTUFTSyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQ4NDpcdC5mbGFzaF91cGRhdGUgPSBpeGdiZV9mbGFzaF9wbGRtX2ltYWdlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDg1LVx0LnJlbG9hZF9hY3Rpb25zID0gQklUKERFVkxJTktfUkVMT0FEX0FDVElPTl9GV19BQ1RJVkFURSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo0ODY6XHQucmVsb2FkX2Rvd24gPSBpeGdiZV9kZXZsaW5rX3JlbG9hZF9lbXByX3N0YXJ0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NDg3Olx0LnJlbG9hZF91cCA9IGl4Z2JlX2RldmxpbmtfcmVsb2FkX2VtcHJfZmluaXNoLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDg4LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDkwLS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NDkxOiAqIGl4Z2JlX2FsbG9jYXRlX2RldmxpbmsgLSBBbGxvY2F0ZSBkZXZsaW5rIGluc3RhbmNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00OTItICogQGRldjogZGV2aWNlIHRvIGFsbG9jYXRlIGRldmxpbmsgZm9yXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDk4LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NDk5OnN0cnVjdCBpeGdiZV9hZGFwdGVyICppeGdiZV9hbGxvY2F0ZV9kZXZsaW5rKHN0cnVjdCBkZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTUwMC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo1MDE6XHRzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTUwMi1cdHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNTAzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NTA0Olx0ZGV2bGluayA9IGRldmxpbmtfYWxsb2MoXHUwMDI2aXhnYmVfZGV2bGlua19vcHMsIHNpemVvZigqYWRhcHRlciksIGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy01MDUtXHRpZiAoIWRldmxpbmspXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNTE0LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NTE1OiAqIGl4Z2JlX2Rldmxpbmtfc2V0X3N3aXRjaF9pZCAtIFNldCB1bmlxdWUgc3dpdGNoIElEIGJhc2VkIG9uIFBDSSBEU05cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTUxNi0gKiBAYWRhcHRlcjogcG9pbnRlciB0byB0aGUgZGV2aWNlIGFkYXB0ZXIgc3RydWN0dXJlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNTE4LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NTE5OnN0YXRpYyB2b2lkIGl4Z2JlX2Rldmxpbmtfc2V0X3N3aXRjaF9pZChzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTUyMC1cdFx0XHRcdFx0c3RydWN0IG5ldGRldl9waHlzX2l0ZW1faWQgKnBwaWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNTI4LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NTI5OiAqIGl4Z2JlX2RldmxpbmtfcmVnaXN0ZXJfcG9ydCAtIFJlZ2lzdGVyIGRldmxpbmsgcG9ydFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNTMwLSAqIEBhZGFwdGVyOiBwb2ludGVyIHRvIHRoZSBkZXZpY2UgYWRhcHRlciBzdHJ1Y3R1cmVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy01MzUtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo1MzY6aW50IGl4Z2JlX2RldmxpbmtfcmVnaXN0ZXJfcG9ydChzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTUzNy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNTQ2LVx0YXR0cnMubm9fcGh5c19wb3J0X25hbWUgPSAxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NTQ3Olx0aXhnYmVfZGV2bGlua19zZXRfc3dpdGNoX2lkKGFkYXB0ZXIsIFx1MDAyNmF0dHJzLnN3aXRjaF9pZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy01NDgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmgtNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5oOjc6c3RydWN0IGl4Z2JlX2FkYXB0ZXIgKml4Z2JlX2FsbG9jYXRlX2Rldmxpbmsoc3RydWN0IGRldmljZSAqZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5oOjg6aW50IGl4Z2JlX2RldmxpbmtfcmVnaXN0ZXJfcG9ydChzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuaDo5OnZvaWQgaXhnYmVfZGV2bGlua19pbml0X3JlZ2lvbnMoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmg6MTA6dm9pZCBpeGdiZV9kZXZsaW5rX2Rlc3Ryb3lfcmVnaW9ucyhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuaC0xMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjQ6I2luY2x1ZGUgXCYjMzQ7aXhnYmUuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy01LSNpbmNsdWRlIFwmIzM0O2RldmxpbmsuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6OTpzdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfcmVnaW9uX29wcyBpeGdiZV9udm1fcmVnaW9uX29wcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MTA6c3RhdGljIGNvbnN0IHN0cnVjdCBkZXZsaW5rX3JlZ2lvbl9vcHMgaXhnYmVfc3JhbV9yZWdpb25fb3BzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MTI6c3RhdGljIGludCBpeGdiZV9kZXZsaW5rX3BhcnNlX3JlZ2lvbihzdHJ1Y3QgaXhnYmVfaHcgKmh3LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xMy1cdFx0XHRcdCAgICAgIGNvbnN0IHN0cnVjdCBkZXZsaW5rX3JlZ2lvbl9vcHMgKm9wcyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTE1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MTY6XHRpZiAob3BzID09IFx1MDAyNml4Z2JlX252bV9yZWdpb25fb3BzKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTE3LVx0XHQqcmVhZF9zaGFkb3dfcmFtID0gZmFsc2U7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTE4LVx0XHQqbnZtX3NpemUgPSBody1cdTAwM2VmbGFzaC5mbGFzaF9zaXplO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxOTpcdH0gZWxzZSBpZiAob3BzID09IFx1MDAyNml4Z2JlX3NyYW1fcmVnaW9uX29wcykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0yMC1cdFx0KnJlYWRfc2hhZG93X3JhbSA9IHRydWU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0yOS0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MzA6ICogaXhnYmVfZGV2bGlua19udm1fc25hcHNob3QgLSBDYXB0dXJlIGEgc25hcHNob3Qgb2YgdGhlIE5WTSBjb250ZW50XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTMxLSAqIEBkZXZsaW5rOiB0aGUgZGV2bGluayBpbnN0YW5jZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtNDUtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjQ2OnN0YXRpYyBpbnQgaXhnYmVfZGV2bGlua19udm1fc25hcHNob3Qoc3RydWN0IGRldmxpbmsgKmRldmxpbmssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTQ3LVx0XHRcdFx0ICAgICAgY29uc3Qgc3RydWN0IGRldmxpbmtfcmVnaW9uX29wcyAqb3BzLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtNDkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzo1MDpcdHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyID0gZGV2bGlua19wcml2KGRldmxpbmspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzo1MTpcdHN0cnVjdCBpeGdiZV9odyAqaHcgPSBcdTAwMjZhZGFwdGVyLVx1MDAzZWh3O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy01Mi1cdGJvb2wgcmVhZF9zaGFkb3dfcmFtO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtNTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjU4Olx0ZXJyID0gaXhnYmVfZGV2bGlua19wYXJzZV9yZWdpb24oaHcsIG9wcywgXHUwMDI2cmVhZF9zaGFkb3dfcmFtLCBcdTAwMjZudm1fc2l6ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTU5LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTc2LVx0XHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6Nzc6XHRcdGVyciA9IGl4Z2JlX2FjcXVpcmVfbnZtKGh3LCBMSUJJRV9BUUNfUkVTX0FDQ0VTU19SRUFEKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtNzgtXHRcdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTg0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzo4NTpcdFx0ZXJyID0gaXhnYmVfcmVhZF9mbGF0X252bShodywgaSAqIElYR0JFX0RFVkxJTktfUkVBRF9CTEtfU0laRSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtODYtXHRcdFx0XHRcdCAgXHUwMDI2cmVhZF9zeiwgYnVmLCByZWFkX3NoYWRvd19yYW0pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtODktXHRcdFx0XHRcdCAgIFwmIzM0O0ZhaWxlZCB0byByZWFkIFJBTSBjb250ZW50XCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6OTA6XHRcdFx0aXhnYmVfcmVsZWFzZV9udm0oaHcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy05MS1cdFx0XHRrdmZyZWUobnZtX2RhdGEpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtOTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjk1Olx0XHRpeGdiZV9yZWxlYXNlX252bShodyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTk2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTA1LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxMDY6ICogaXhnYmVfZGV2bGlua19kZXZjYXBzX3NuYXBzaG90IC0gQ2FwdHVyZSBhIHNuYXBzaG90IG9mIGRldmljZSBjYXBhYmlsaXRpZXNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTA3LSAqIEBkZXZsaW5rOiB0aGUgZGV2bGluayBpbnN0YW5jZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTIxLSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxMjI6c3RhdGljIGludCBpeGdiZV9kZXZsaW5rX2RldmNhcHNfc25hcHNob3Qoc3RydWN0IGRldmxpbmsgKmRldmxpbmssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTEyMy1cdFx0XHRcdFx0ICBjb25zdCBzdHJ1Y3QgZGV2bGlua19yZWdpb25fb3BzICpvcHMsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xMjYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxMjc6XHRzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlciA9IGRldmxpbmtfcHJpdihkZXZsaW5rKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MTI4Olx0c3RydWN0IGl4Z2JlX2FjaV9jbWRfbGlzdF9jYXBzX2VsZW0gKmNhcHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjEyOTpcdHN0cnVjdCBpeGdiZV9odyAqaHcgPSBcdTAwMjZhZGFwdGVyLVx1MDAzZWh3O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xMzAtXHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTM1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxMzY6XHRlcnIgPSBpeGdiZV9hY2lfbGlzdF9jYXBzKGh3LCBjYXBzLCBJWEdCRV9BQ0lfTUFYX0JVRkZFUl9TSVpFLCBOVUxMLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxMzc6XHRcdFx0XHQgIGl4Z2JlX2FjaV9vcGNfbGlzdF9kZXZfY2Fwcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTEzOC1cdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTE0OS0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MTUwOiAqIGl4Z2JlX2RldmxpbmtfbnZtX3JlYWQgLSBSZWFkIGEgcG9ydGlvbiBvZiBOVk0gZmxhc2ggY29udGVudFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xNTEtICogQGRldmxpbms6IHRoZSBkZXZsaW5rIGluc3RhbmNlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xNjYtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjE2NzpzdGF0aWMgaW50IGl4Z2JlX2RldmxpbmtfbnZtX3JlYWQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTE2OC1cdFx0XHRcdCAgY29uc3Qgc3RydWN0IGRldmxpbmtfcmVnaW9uX29wcyAqb3BzLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTcxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MTcyOlx0c3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIgPSBkZXZsaW5rX3ByaXYoZGV2bGluayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjE3MzpcdHN0cnVjdCBpeGdiZV9odyAqaHcgPSBcdTAwMjZhZGFwdGVyLVx1MDAzZWh3O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xNzQtXHRib29sIHJlYWRfc2hhZG93X3JhbTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTE3Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MTc4Olx0ZXJyID0gaXhnYmVfZGV2bGlua19wYXJzZV9yZWdpb24oaHcsIG9wcywgXHUwMDI2cmVhZF9zaGFkb3dfcmFtLCBcdTAwMjZudm1fc2l6ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTE3OS1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xODYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjE4NzpcdGVyciA9IGl4Z2JlX2FjcXVpcmVfbnZtKGh3LCBMSUJJRV9BUUNfUkVTX0FDQ0VTU19SRUFEKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTg4LVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTkyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxOTM6XHRlcnIgPSBpeGdiZV9yZWFkX2ZsYXRfbnZtKGh3LCAodTMyKW9mZnNldCwgXHUwMDI2c2l6ZSwgZGF0YSwgcmVhZF9zaGFkb3dfcmFtKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTk0LVx0aWYgKGVycikge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xOTUtXHRcdE5MX1NFVF9FUlJfTVNHX01PRChleHRhY2ssIFwmIzM0O0ZhaWxlZCB0byByZWFkIE5WTSBjb250ZW50c1wmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjE5NjpcdFx0aXhnYmVfcmVsZWFzZV9udm0oaHcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xOTctXHRcdHJldHVybiAtRUlPO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTk5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoyMDA6XHRpeGdiZV9yZWxlYXNlX252bShodyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIwMS1cdHJldHVybiAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjAzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoyMDQ6c3RhdGljIGNvbnN0IHN0cnVjdCBkZXZsaW5rX3JlZ2lvbl9vcHMgaXhnYmVfbnZtX3JlZ2lvbl9vcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIwNS1cdC5uYW1lID0gXCYjMzQ7bnZtLWZsYXNoXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0yMDYtXHQuZGVzdHJ1Y3RvciA9IGt2ZnJlZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MjA3Olx0LnNuYXBzaG90ID0gaXhnYmVfZGV2bGlua19udm1fc25hcHNob3QsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjIwODpcdC5yZWFkID0gaXhnYmVfZGV2bGlua19udm1fcmVhZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjA5LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIxMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MjExOnN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2bGlua19yZWdpb25fb3BzIGl4Z2JlX3NyYW1fcmVnaW9uX29wcyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjEyLVx0Lm5hbWUgPSBcJiMzNDtzaGFkb3ctcmFtXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0yMTMtXHQuZGVzdHJ1Y3RvciA9IGt2ZnJlZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MjE0Olx0LnNuYXBzaG90ID0gaXhnYmVfZGV2bGlua19udm1fc25hcHNob3QsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjIxNTpcdC5yZWFkID0gaXhnYmVfZGV2bGlua19udm1fcmVhZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjE2LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIxNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MjE4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2bGlua19yZWdpb25fb3BzIGl4Z2JlX2RldmNhcHNfcmVnaW9uX29wcyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjE5LVx0Lm5hbWUgPSBcJiMzNDtkZXZpY2UtY2Fwc1wmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjIwLVx0LmRlc3RydWN0b3IgPSBrdmZyZWUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjIyMTpcdC5zbmFwc2hvdCA9IGl4Z2JlX2RldmxpbmtfZGV2Y2Fwc19zbmFwc2hvdCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjIyLX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0yMjQtLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjIyNTogKiBpeGdiZV9kZXZsaW5rX2luaXRfcmVnaW9ucyAtIEluaXRpYWxpemUgZGV2bGluayByZWdpb25zXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIyNi0gKiBAYWRhcHRlcjogYWRhcHRlciBpbnN0YW5jZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjMwLSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoyMzE6dm9pZCBpeGdiZV9kZXZsaW5rX2luaXRfcmVnaW9ucyhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjMyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIzNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MjM3Olx0aWYgKGFkYXB0ZXItXHUwMDNlaHcubWFjLnR5cGUgIT0gaXhnYmVfbWFjX2U2MTApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIzOC1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjQwLVx0bnZtX3NpemUgPSBhZGFwdGVyLVx1MDAzZWh3LmZsYXNoLmZsYXNoX3NpemU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjI0MTpcdGFkYXB0ZXItXHUwMDNlbnZtX3JlZ2lvbiA9IGRldmxfcmVnaW9uX2NyZWF0ZShkZXZsaW5rLCBcdTAwMjZpeGdiZV9udm1fcmVnaW9uX29wcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjQyLVx0XHRcdFx0XHRcdCAxLCBudm1fc2l6ZSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0yNTAtXHRzcmFtX3NpemUgPSBhZGFwdGVyLVx1MDAzZWh3LmZsYXNoLnNyX3dvcmRzICogMnU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjI1MTpcdGFkYXB0ZXItXHUwMDNlc3JhbV9yZWdpb24gPSBkZXZsX3JlZ2lvbl9jcmVhdGUoZGV2bGluaywgXHUwMDI2aXhnYmVfc3JhbV9yZWdpb25fb3BzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0yNTItXHRcdFx0XHRcdFx0ICAxLCBzcmFtX3NpemUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjYwLVx0YWRhcHRlci1cdTAwM2VkZXZjYXBzX3JlZ2lvbiA9IGRldmxfcmVnaW9uX2NyZWF0ZShkZXZsaW5rLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoyNjE6XHRcdFx0XHRcdFx0ICAgICBcdTAwMjZpeGdiZV9kZXZjYXBzX3JlZ2lvbl9vcHMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTI2Mi1cdFx0XHRcdFx0XHQgICAgIDEwLCBJWEdCRV9BQ0lfTUFYX0JVRkZFUl9TSVpFKTtcbi0tXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAxNjozMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDAwNwoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDU4NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCYjMzk7cyBXb3J0aGluZXNzIGZvciBGdXp6aW5nKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGBpeGdiZWAgKmlzKiDigJMgcmlnaHQsIGl0JiMzOTtzIHRoZSBJbnRlbCAxMCBHaWdhYml0IFBDSSBFeHByZXNzIE5ldHdvcmsgRHJpdmVyLiBUaGluayA4MjU5OCwgODI1OTksIHRob3NlIHNvcnRzIG9mIGNhcmRzLiBOb3csIHRoZSBjcml0aWNhbCBxdWVzdGlvbjogZG9lcyBRRU1VIGV2ZW4gKmVtdWxhdGUqIGBpeGdiZWA/IEkgbmVlZCB0byBrbm93IFFFTVUmIzM5O3Mgc3VwcG9ydGVkIG5ldHdvcmsgYWRhcHRlcnMuLi4gbGV0IG1lIHNlZS4uLiBlMTAwMCwgZTEwMDBlLCBpZ2IsIGFuZCBhIGJ1bmNoIG9mIG90aGVycy4uLiBidXQgKm5vKiBgaXhnYmVgLgoKSG9sZCBvbi4uLiBJICp0aG91Z2h0KiBRRU1VIGRpZG4mIzM5O3QgaGF2ZSBpdCwgYnV0IEkmIzM5O2QgYmV0dGVyIGJlIHN1cmUuIExldCBtZSBkb3VibGUgY2hlY2sgdGhvc2UgbmVnYXRpdmUgY3JpdGVyaWEgZnJvbSBzZWN0aW9uIDIgb2YgdGhlIGluc3RydWN0aW9ucy4gQWhhLCBpdCBzYXlzICYjMzQ7U3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOiAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSYjMzQ7LiBUaGF0IHNvdW5kcyBsaWtlIGEgbWF0Y2guCgpSaWdodCwgc28gbGV0JiMzOTtzIHNlZSB3aGF0ICpleGFjdGx5KiB0aGlzIHBhdGNoIGhhcyBtb2RpZmllZC4gR29pbmcgdGhyb3VnaCB0aGUgZGlmZnMsIGl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uY2AsIGBpeGdiZV9zcmlvdi5jYCwgYW5kIGBpeGdiZV9zcmlvdi5oYC4gU3BlY2lmaWNhbGx5LCB0aGV5JiMzOTt2ZSByZW1vdmVkIGNhbGxzIHRvIGFuZCBkZWZpbml0aW9ucyBvZiBhIGZ1bmN0aW9uIGNhbGxlZCBgaXhnYmVfcGluZ19hbGxfdmZzYC4KClRoZSBrZXkgaGVyZSBpcyB0aGF0IGBpeGdiZWAgKmlzKiBhIGRyaXZlciBmb3IgcGh5c2ljYWwgSW50ZWwoUikgMTBHYkUgbmV0d29yayBoYXJkd2FyZS4gR2l2ZW4gdGhhdCwgY2FuIHRoZSBwcm9iZSBmdW5jdGlvbiwgYGl4Z2JlX3Byb2JlYCwgYmUgdHJpZ2dlcmVkIHdpdGhvdXQgcGh5c2ljYWwgaGFyZHdhcmUgYmVpbmcgcHJlc2VudD8gVGhhdCBpcyB0aGUgZGVmaW5pbmcgcXVlc3Rpb24sIGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMTY6MzE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aXhnYmVfcHJvYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmM9MTE0OTI9c3RhdGljIGludCBpeGdiZV9yZWNvdmVyeV9wcm9iZShzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMtMTE1MzItLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmM6MTE1MzM6ICogaXhnYmVfcHJvYmUgLSBEZXZpY2UgSW5pdGlhbGl6YXRpb24gUm91dGluZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jLTExNTM0LSAqIEBwZGV2OiBQQ0kgZGV2aWNlIGluZm9ybWF0aW9uIHN0cnVjdFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYy0xMTUzOC0gKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jOjExNTM5OiAqIGl4Z2JlX3Byb2JlIGluaXRpYWxpemVzIGFuIGFkYXB0ZXIgaWRlbnRpZmllZCBieSBhIHBjaV9kZXYgc3RydWN0dXJlLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jLTExNTQwLSAqIFRoZSBPUyBpbml0aWFsaXphdGlvbiwgY29uZmlndXJpbmcgb2YgdGhlIGFkYXB0ZXIgcHJpdmF0ZSBzdHJ1Y3R1cmUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jLTExNTQyLSAqKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYzoxMTU0MzpzdGF0aWMgaW50IGl4Z2JlX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jLTExNTQ0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmM9MTIzNzI9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGl4Z2JlX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMtMTIzNzQtXHQuaWRfdGFibGUgID0gaXhnYmVfcGNpX3RibCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYzoxMjM3NTpcdC5wcm9iZSAgICAgPSBpeGdiZV9wcm9iZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYy0xMjM3Ni1cdC5yZW1vdmUgICAgPSBpeGdiZV9yZW1vdmUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfcGh5LmM9MTY2PWludCBpeGdiZV93cml0ZV9pMmNfY29tYmluZWRfZ2VuZXJpY19pbnQoc3RydWN0IGl4Z2JlX2h3ICpodywgdTggYWRkcixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYy0yMjEtLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYzoyMjI6ICogIGl4Z2JlX3Byb2JlX3BoeSAtIFByb2JlIGEgc2luZ2xlIGFkZHJlc3MgZm9yIGEgUEhZXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYy0yMjMtICogIEBodzogcG9pbnRlciB0byBoYXJkd2FyZSBzdHJ1Y3R1cmVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYy0yMjctICoqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfcGh5LmM6MjI4OnN0YXRpYyBib29sIGl4Z2JlX3Byb2JlX3BoeShzdHJ1Y3QgaXhnYmVfaHcgKmh3LCB1MTYgcGh5X2FkZHIpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYy0yMjkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3BoeS5jPTI2Mz1pbnQgaXhnYmVfaWRlbnRpZnlfcGh5X2dlbmVyaWMoc3RydWN0IGl4Z2JlX2h3ICpodylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYy0yODAtXHRcdFx0XHQgICAgIGh3LVx1MDAzZXBoeS5ud19tbmdfaWZfc2VsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3BoeS5jOjI4MTpcdFx0aWYgKGl4Z2JlX3Byb2JlX3BoeShodywgcGh5X2FkZHIpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfcGh5LmMtMjgyLVx0XHRcdHJldHVybiAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3BoeS5jLTI4Ny1cdGZvciAocGh5X2FkZHIgPSAwOyBwaHlfYWRkciBcdTAwM2MgSVhHQkVfTUFYX1BIWV9BRERSOyBwaHlfYWRkciYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3BoeS5jOjI4ODpcdFx0aWYgKGl4Z2JlX3Byb2JlX3BoeShodywgcGh5X2FkZHIpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYy0yODktXHRcdFx0c3RhdHVzID0gMDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYz0xMDI2PWludCBpeGdiZV9taWlfYnVzX2luaXQoc3RydWN0IGl4Z2JlX2h3ICpodylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYy0xMDgxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfcGh5LmM6MTA4MjpcdC8qIFN1cHBvcnQgY2xhdXNlIDIyLzQ1IG5hdGl2ZWx5LiAgaXhnYmVfcHJvYmUoKSBzZXRzIE1ESU9fRU1VTEFURV9DMjJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3BoeS5jLTEwODMtXHQgKiB1bmZvcnR1bmF0ZWx5IHRoYXQgY2F1c2VzIHNvbWUgY2xhdXNlIDIyIGZyYW1lcyB0byBiZSBzZW50IHdpdGhcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAxNjozMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjM1NwoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDIxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3M6CgoqKkRpdmluZyBpbnRvIERldmljZSBNYXRjaGluZyoqCgpBbHJpZ2h0LCB0aW1lIHRvIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyBkcml2ZXIgaXMgaWRlbnRpZnlpbmcgYW5kIHdvcmtpbmcgd2l0aCBzcGVjaWZpYyBoYXJkd2FyZS4gVGhlIGZpcnN0IHBsYWNlIEkmIzM5O20gZ29pbmcgdG8gbG9vayBpcyB0aGUgYGl4Z2JlX3BjaV90YmxgLiBJIGV4cGVjdCB0aGlzIHRvIGJlIHRoZSBwcmltYXJ5IGxvb2t1cCB0YWJsZSwgdGhlIGRlZmluaXRpdmUgbGlzdCB0aGF0IG1hcHMgUENJIGRldmljZSBJRHMgdG8gdGhpcyBwYXJ0aWN1bGFyIGl4Z2JlIGRyaXZlci4gVGhpcyB0YWJsZSBpcyB0aGUgY29ybmVyc3RvbmU7IGl0IHNob3VsZCByZXZlYWwgdGhlIGV4YWN0IGRldmljZXMgdGhpcyBtb2R1bGUgaXMgZGVzaWduZWQgdG8gc3VwcG9ydCwgYW5kIGhvdyBpdCBkaWZmZXJlbnRpYXRlcyB0aGVtLiBMZXQmIzM5O3Mgc2VlIHdoYXQgZGV2aWNlcyBhcmUgbGlzdGVkLCBhbmQgaG93IHRoZSBkcml2ZXIgZGV0ZXJtaW5lcyBhIG1hdGNoLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDE2OjMxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2l4Z2JlX3BjaV90YmwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmM9NzA9c3RhdGljIGNvbnN0IHN0cnVjdCBpeGdiZV9pbmZvICppeGdiZV9pbmZvX3RibFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYy04MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYzo4MjovKiBpeGdiZV9wY2lfdGJsIC0gUENJIERldmljZSBJRCBUYWJsZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jLTgzLSAqXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jLTg5LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jOjkwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBpeGdiZV9wY2lfdGJsW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMtOTEtXHR7IFBDSV9WREVWSUNFKElOVEVMLCBJWEdCRV9ERVZfSURfODI1OTgpLCAuZHJpdmVyX2RhdGEgPSBib2FyZF84MjU5OCB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYy0xNDUtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYzoxNDY6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIGl4Z2JlX3BjaV90YmwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jLTE0Ny1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmM9MTE0OTI9c3RhdGljIGludCBpeGdiZV9yZWNvdmVyeV9wcm9iZShzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMtMTE1MzQtICogQHBkZXY6IFBDSSBkZXZpY2UgaW5mb3JtYXRpb24gc3RydWN0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmM6MTE1MzU6ICogQGVudDogZW50cnkgaW4gaXhnYmVfcGNpX3RibFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jLTExNTM2LSAqXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jPTEyMzcyPXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBpeGdiZV9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMtMTIzNzMtXHQubmFtZSAgICAgID0gaXhnYmVfZHJpdmVyX25hbWUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmM6MTIzNzQ6XHQuaWRfdGFibGUgID0gaXhnYmVfcGNpX3RibCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYy0xMjM3NS1cdC5wcm9iZSAgICAgPSBpeGdiZV9wcm9iZSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAxNjozMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzI2MQoJCQkJCQkJb3V0cHV0OiAxNDQKCQkJCQkJCXRob3VnaHRzOiA5MDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nIEV2YWx1YXRpb246IGl4Z2JlIERyaXZlciBNb2RpZmljYXRpb25zKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIFdlJiMzOTtyZSBsb29raW5nIGF0IGNoYW5nZXMgdG8gdGhlIGBpeGdiZWAgZHJpdmVyLCBzcGVjaWZpY2FsbHkgYGl4Z2JlX3dhdGNoZG9nX2xpbmtfaXNfdXBgLCBgaXhnYmVfd2F0Y2hkb2dfbGlua19pc19kb3duYCwgYW5kIGBpeGdiZV9waW5nX2FsbF92ZnNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsICYjMzQ7aXhnYmUuLi4gSW50ZWwgMTBHYkUgbmV0d29yayBjYXJkcy4mIzM0OyBSaWdodCBhd2F5LCBJIGtub3cgdGhpcyBpcyBhIFBDSSBkcml2ZXIuIFRoZSBxdWVzdGlvbiB0aGVuIGJlY29tZXMsIGFyZSB0aGVzZSBkZXZpY2VzIGVtdWxhdGVkIGluIGEgdHlwaWNhbCBmdXp6aW5nIGVudmlyb25tZW50IGxpa2UgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmUgKEdDRSk/IFRoZSBhbnN3ZXIgaXMgYSBkZWZpbml0aXZlICYjMzQ7bm8uJiMzNDsgU3RhbmRhcmQgUUVNVSBkb2VzbiYjMzk7dCBlbXVsYXRlIGl4Z2JlIE5JQ3MuIEl0IGVtdWxhdGVzIGUxMDAwLCBlMTAwMGUsIGFuZCBpZ2IsIGJ1dCBub3QgaXhnYmUuIFRoZXkgYXJlbiYjMzk7dCBwcmVzZW50IGluIHN0YW5kYXJkIHN5emthbGxlciBlbnZpcm9ubWVudHMuCgpXZSBuZWVkIHRvIGNvbnNpZGVyIHRoZSBuZWdhdGl2ZSBjcml0ZXJpYSBmb3IgV29ydGhGdXp6aW5nOiAmIzM0O1N0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZS4uLiByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiYjMzQ7IFRoaXMgYWJzb2x1dGVseSBhcHBsaWVzIGhlcmUuIFRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZmluZCBjcmFzaGVzIGluICpyZWFjaGFibGUqIGNvZGUuIFNpbmNlIHRoZSBtb2RpZmllZCBjb2RlIHdpdGhpbiBgaXhnYmVgIGRlcGVuZHMgb24gcGh5c2ljYWwgMTBHYkUgaGFyZHdhcmUsIHdoaWNoIGlzICpub3QqIGVtdWxhdGVkLCBpdCYjMzk7cyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuCgpOb3csIGNvdWxkIHRoZXJlIGJlIHNvbWUgb3RoZXIgd2F5IHRvIGluc3RhbnRpYXRlIGBpeGdiZWAgdmlydHVhbGx5PyBNYXliZSBTUi1JT1Y/IEFoLCB5ZXMsIHRoZXJlIGlzIHRoZSBgaXhnYmV2ZmAgZHJpdmVyIGZvciBWaXJ0dWFsIEZ1bmN0aW9ucy4gSG93ZXZlciwgYGl4Z2JldmZgIHN0aWxsIHJlbGllcyBvbiBlaXRoZXIgYSBwaHlzaWNhbCBmdW5jdGlvbiBvciB0aGUgZW11bGF0ZWQgU1ItSU9WIFZGIGhhcmR3YXJlLCB3aGljaCBRRU1VIGFsc28gZG9lc24mIzM5O3QgcHJvdmlkZSBmb3IgaXhnYmUuCgpUaGVyZWZvcmUsIHRoZSBtb2RpZmljYXRpb25zIGFyZSB3aXRoaW4gYGl4Z2JlYCwgYSBQQ0kgZHJpdmVyIGZvciBwaHlzaWNhbCBJbnRlbCAxMEdiRSBhZGFwdGVycy4gVGhpcyBjb25maXJtcyBteSBhc3Nlc3NtZW50OiB0aGUgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuIFRoZXJlJiMzOTtzIG5vIHdheSBzeXprYWxsZXIgY2FuIHRyaWdnZXIgdGhlc2UgY29kZSBwYXRocyB3aXRob3V0IHRoYXQgcGh5c2ljYWwgaGFyZHdhcmUuCgpTbywgbGV0JiMzOTtzIGNoZWNrIGZvciBhbnkgY29uZmlncyBvciBmb2N1cyBzeW1ib2xzIHdlIG5lZWQgdG8gY29uc2lkZXIuIE5vcGUsIG5vdGhpbmcuIFdoZW4gV29ydGhGdXp6aW5nIGlzIGZhbHNlLCB3ZSBzaG91bGQgaGF2ZSBlbXB0eSBhcnJheXMgZm9yIGBFbmFibGVDb25maWdzYCBhbmQgYEZvY3VzU3ltYm9sc2AsIGFuZCBhIGNsZWFyIGV4cGxhbmF0aW9uLgoKVGhlIHJlYXNvbmluZyBpcyBzdHJhaWdodGZvcndhcmQ6IFRoZSBjaGFuZ2VzIGFyZSB0byB0aGUgSW50ZWwgMTBHYkUgbmV0d29yayBkcml2ZXIgKGBpeGdiZWApLiBUaGV5IGFyZSByZWxhdGVkIHRvIHdhdGNoZG9nIGxpbmsgc3RhdGUgaGFuZGxlcnMgYW5kIFNSLUlPViBzdXBwb3J0LiBIb3dldmVyLCBgaXhnYmVgIGRyaXZlcyAqcGh5c2ljYWwqIFBDSSBkZXZpY2VzICg4MjU5OCwgODI1OTksIFg1NDAsIFg1NTAsIEU2MTApLCB3aGljaCBhcmUgbm90IGVtdWxhdGVkIGluIFFFTVUgb3IgR0NFLiBUaGlzIG1lYW5zIHRoZSBjb2RlIGlzIHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLgoKQWxyaWdodCwgdGhhdCYjMzk7cyBzb2xpZC4gVGltZSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDE2OjMxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEludGVsIDEwR2JFIFBDSSBkcml2ZXIgKGl4Z2JlKSwgc3BlY2lmaWNhbGx5IHJlbW92aW5nIHRoZSBpeGdiZV9waW5nX2FsbF92ZnMoKSBmdW5jdGlvbiBhbmQgaXRzIGNhbGxzIGluIHRoZSBsaW5rIHdhdGNoZG9nIGhhbmRsZXJzLiBUaGUgaXhnYmUgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIEludGVsIDEwIEdpZ2FiaXQgRXRoZXJuZXQgaGFyZHdhcmUgKHN1Y2ggYXMgODI1OTgsIDgyNTk5LCBYNTQwLCBYNTUwKSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLiBBcyBzdWNoLCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIHN5emthbGxlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBJbnRlbCAxMEdiRSBQQ0kgZHJpdmVyIChpeGdiZSksIHNwZWNpZmljYWxseSByZW1vdmluZyB0aGUgaXhnYmVfcGluZ19hbGxfdmZzKCkgZnVuY3Rpb24gYW5kIGl0cyBjYWxscyBpbiB0aGUgbGluayB3YXRjaGRvZyBoYW5kbGVycy4gVGhlIGl4Z2JlIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBJbnRlbCAxMCBHaWdhYml0IEV0aGVybmV0IGhhcmR3YXJlIChzdWNoIGFzIDgyNTk4LCA4MjU5OSwgWDU0MCwgWDU1MCkgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy4gQXMgc3VjaCwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBzeXprYWxsZXIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAxNjozMTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDktMTVUMTY6Mjk6NDQuNDU2MTQxOTE0WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTEzNzc2NzQ1NDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgSW50ZWwgMTBHYkUgUENJIGRyaXZlciAoaXhnYmUpLCBzcGVjaWZpY2FsbHkgcmVtb3ZpbmcgdGhlIGl4Z2JlX3BpbmdfYWxsX3ZmcygpIGZ1bmN0aW9uIGFuZCBpdHMgY2FsbHMgaW4gdGhlIGxpbmsgd2F0Y2hkb2cgaGFuZGxlcnMuIFRoZSBpeGdiZSBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgSW50ZWwgMTAgR2lnYWJpdCBFdGhlcm5ldCBoYXJkd2FyZSAoc3VjaCBhcyA4MjU5OCwgODI1OTksIFg1NDAsIFg1NTApIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuIEFzIHN1Y2gsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3Igc3l6a2FsbGVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMTY6Mjk6NDQuNDU2MTQ2NjE0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0OTc5MjIyMzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBmYjM2MDE5NWRmYTk1NmFlN2YxM2ZlMWU4Y2YyOTE0MTlhZWE1ZDJkXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgU2VwIDE1IDE2OjI5OjQzIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uY1xcbmluZGV4IGY5MTg1NjQ5OGViMmQuLjM2NWFjZjg5MGIzYTcgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jXFxuQEAgLTgxODEsOSArODE4MSw2IEBAIHN0YXRpYyB2b2lkIGl4Z2JlX3dhdGNoZG9nX2xpbmtfaXNfdXAoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIpXFxuIFxcbiBcXHQvKiB1cGRhdGUgdGhlIGRlZmF1bHQgdXNlciBwcmlvcml0eSBmb3IgVkZzICovXFxuIFxcdGl4Z2JlX3VwZGF0ZV9kZWZhdWx0X3VwKGFkYXB0ZXIpO1xcbi1cXG4tXFx0LyogcGluZyBhbGwgdGhlIGFjdGl2ZSB2ZnMgdG8gbGV0IHRoZW0ga25vdyBsaW5rIGhhcyBjaGFuZ2VkICovXFxuLVxcdGl4Z2JlX3BpbmdfYWxsX3ZmcyhhZGFwdGVyKTtcXG4gfVxcbiBcXG4gLyoqXFxuQEAgLTgyMTQsOSArODIxMSw2IEBAIHN0YXRpYyB2b2lkIGl4Z2JlX3dhdGNoZG9nX2xpbmtfaXNfZG93bihzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcilcXG4gXFxuIFxcdGVfaW5mbyhkcnYsIFxcXCJOSUMgTGluayBpcyBEb3duXFxcXG5cXFwiKTtcXG4gXFx0bmV0aWZfY2Fycmllcl9vZmYobmV0ZGV2KTtcXG4tXFxuLVxcdC8qIHBpbmcgYWxsIHRoZSBhY3RpdmUgdmZzIHRvIGxldCB0aGVtIGtub3cgbGluayBoYXMgY2hhbmdlZCAqL1xcbi1cXHRpeGdiZV9waW5nX2FsbF92ZnMoYWRhcHRlcik7XFxuIH1cXG4gXFxuIHN0YXRpYyBib29sIGl4Z2JlX3JpbmdfdHhfcGVuZGluZyhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcilcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfc3Jpb3YuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3NyaW92LmNcXG5pbmRleCA0MzFkNzdkYTE1YTVmLi5kYTY0MWU5MTQ4MWI4IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3NyaW92LmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9zcmlvdi5jXFxuQEAgLTE1MTUsMjAgKzE1MTUsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaXhnYmVfcGluZ192ZihzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlciwgaW50IHZmKVxcbiBcXHRpeGdiZV93cml0ZV9tYngoaHcsIFxcdTAwMjZwaW5nLCAxLCB2Zik7XFxuIH1cXG4gXFxuLXZvaWQgaXhnYmVfcGluZ19hbGxfdmZzKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKVxcbi17XFxuLVxcdHN0cnVjdCBpeGdiZV9odyAqaHcgPSBcXHUwMDI2YWRhcHRlci1cXHUwMDNlaHc7XFxuLVxcdHUzMiBwaW5nO1xcbi1cXHRpbnQgaTtcXG4tXFxuLVxcdGZvciAoaSA9IDAgOyBpIFxcdTAwM2MgYWRhcHRlci1cXHUwMDNlbnVtX3ZmczsgaSsrKSB7XFxuLVxcdFxcdHBpbmcgPSBJWEdCRV9QRl9DT05UUk9MX01TRztcXG4tXFx0XFx0aWYgKGFkYXB0ZXItXFx1MDAzZXZmaW5mb1tpXS5jbGVhcl90b19zZW5kKVxcbi1cXHRcXHRcXHRwaW5nIHw9IElYR0JFX1ZUX01TR1RZUEVfQ1RTO1xcbi1cXHRcXHRpeGdiZV93cml0ZV9tYngoaHcsIFxcdTAwMjZwaW5nLCAxLCBpKTtcXG4tXFx0fVxcbi19XFxuLVxcbiAvKipcXG4gICogaXhnYmVfc2V0X2FsbF92ZnMgLSB1cGRhdGUgdmZzIHF1ZXVlc1xcbiAgKiBAYWRhcHRlcjogUG9pbnRlciB0byBhZGFwdGVyIHN0cnVjdFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9zcmlvdi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfc3Jpb3YuaFxcbmluZGV4IGJjNGNhYjk3NmJmOTUuLmY3NTViZmQ4NDQ4MGMgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfc3Jpb3YuaFxcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3NyaW92LmhcXG5AQCAtMTgsNyArMTgsNiBAQCB2b2lkIGl4Z2JlX3Jlc3RvcmVfdmZfbXVsdGljYXN0cyhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcik7XFxuIGJvb2wgaXhnYmVfY2hlY2tfbWRkX2V2ZW50KHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKTtcXG4gdm9pZCBpeGdiZV9tc2dfdGFzayhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcik7XFxuIGludCBpeGdiZV92Zl9jb25maWd1cmF0aW9uKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1bnNpZ25lZCBpbnQgZXZlbnRfbWFzayk7XFxuLXZvaWQgaXhnYmVfcGluZ19hbGxfdmZzKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKTtcXG4gdm9pZCBpeGdiZV9zZXRfYWxsX3ZmcyhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcik7XFxuIGludCBpeGdiZV9uZG9fc2V0X3ZmX21hYyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBpbnQgcXVldWUsIHU4ICptYWMpO1xcbiBpbnQgaXhnYmVfbmRvX3NldF92Zl92bGFuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBxdWV1ZSwgdTE2IHZsYW4sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE1VDE2OjI5OjQ0Ljk1NTMxMTkwNloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImNvcmUiLCJEdXJhdGlvbiI6OTA4Nzg0ODUxMDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBJbnRlbCAxMEdiRSBQQ0kgZHJpdmVyIChpeGdiZSksIHNwZWNpZmljYWxseSByZW1vdmluZyB0aGUgaXhnYmVfcGluZ19hbGxfdmZzKCkgZnVuY3Rpb24gYW5kIGl0cyBjYWxscyBpbiB0aGUgbGluayB3YXRjaGRvZyBoYW5kbGVycy4gVGhlIGl4Z2JlIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBJbnRlbCAxMCBHaWdhYml0IEV0aGVybmV0IGhhcmR3YXJlIChzdWNoIGFzIDgyNTk4LCA4MjU5OSwgWDU0MCwgWDU1MCkgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy4gQXMgc3VjaCwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBzeXprYWxsZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lciBhbmQgc2VjdXJpdHkgZW5naW5lZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzXG50b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsXG5hbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLlxuXG4tIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOlxuICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkXG4gIGVudmlyb25tZW50cyAoR0NFIG9yIFFFTVUsIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBkZXZpY2VzIGxpa2UgVVNCIGdhZGdldHMsIG5ldGRldiwgdHVuL3RhcCkuXG4gIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCxcbiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLlxuXG4tIERPIE5PVCBCTElORExZIFRSVVNUIFwiTk8gRlVOQ1RJT05BTCBDSEFOR0VcIiAoTkZDSSkgT1IgXCJSRUZBQ1RPUklOR1wiIENMQUlNUzpcbiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyBcImNsZWFudXBzXCIsIFwicmVmYWN0b3JpbmdzXCIsIG9yIHN0YXRlXG4gIFwiTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWRcIi4gRG8gTk9UIHRha2UgdGhlc2UgY2xhaW1zIGF0IGZhY2UgdmFsdWUuXG4gIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudFxuICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy5cbiAgSWYgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSBpcyBtb2RpZmllZCBvciByZWZhY3RvcmVkLCBpdCBNVVNUIGJlIGZ1enplZC5cblxuLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDpcbiAgV2hlbiBhIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXMgcnVudGltZSBjaGVja3Mgb3IgYXNzZXJ0aW9ucyAoZS5nLiwgV0FSTl9PTiosIFZNX1dBUk5fT04qLFxuICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy5cbiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlclxuICBhbiB1bnVzdWFsIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMgY2FuIHZpb2xhdGUgaXQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4yLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9ZmFsc2UgKE5FR0FUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6XG5cbi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczpcbiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuXG4gICogVXNlci1zcGFjZSBkaXJlY3Rvcmllcywgc2VsZi10ZXN0cywgc2FtcGxlcywgb3Igc2NyaXB0cyAoZS5nLiwgdG9vbHMvLCBzYW1wbGVzLywgc2NyaXB0cy8sIHVzci8pXG4gICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLlxuICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzXG4gICAgdGhhdCBkbyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGRhdGEgc3RydWN0dXJlcy5cbiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuXG4tIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZTpcbiAgKiBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOlxuICAqIERyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKC5yZW1vdmUsIC5zaHV0ZG93biwgcGNpX3VucmVnaXN0ZXJfZHJpdmVyKSBleGVjdXRlZCBvbmx5IGR1cmluZ1xuICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLlxuICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOlxuLSBDb3JlIFN1YnN5c3RlbXM6XG4gICogQW55IGxvZ2ljIG1vZGlmaWNhdGlvbnMgaW4gbWVtb3J5IG1hbmFnZW1lbnQgKG1tLyksIHN5bmNocm9uaXphdGlvbi9sb2NraW5nIChrZXJuZWwvbG9ja2luZy8pLFxuICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy5cbi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOlxuICAqIEFueSByZXN0cnVjdHVyaW5nIG9mIHJlYWNoYWJsZSBkYXRhIHN0cnVjdHVyZXMsIGhlbHBlciBhYnN0cmFjdGlvbnMsIG9yIGFsZ29yaXRobSBmbG93cy5cbi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOlxuICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy5cbi0gUmVhY2hhYmxlIERyaXZlcnMgYW5kIFByb3RvY29sczpcbiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG40LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTilcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5XaGVuIFdvcnRoRnV6emluZz10cnVlLCB5b3UgbXVzdCBleHRyYWN0IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgaW50byBGb2N1c1N5bWJvbHMgdG8gZ3VpZGUgdGhlIGZ1enplcjpcblxuLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6XG4gIERvIE5PVCBsaXN0IGdlbmVyaWMsIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhbGxlZCBieSBhbG1vc3QgZXZlcnkgcHJvZ3JhbSBpbiB0aGUgY29ycHVzXG4gIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0XG4gIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLlxuICBMaXN0aW5nIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhdXNlcyB0aGUgZnV6emVyIHRvIGNsYXNzaWZ5IHRob3VzYW5kcyBvZiB1bnJlbGF0ZWQgdGVzdHMgYXMgXCJmb2N1c2VkXCIsXG4gIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy5cblxuLSBUQVJHRVQgU1BFQ0lGSUMgRkVBVFVSRSBMT0dJQyBBTkQgRU5UUllQT0lOVFM6XG4gIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50c1xuICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy5cblxuLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6XG4gIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2tcbiAgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyBpbiB2bWxpbnV4IGFuZCBjYW5ub3QgYmUgdGFyZ2V0ZWQgZGlyZWN0bHkgYnkgc3ltYm9sIGNvdmVyYWdlIGZpbHRlcnMuXG4gIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlclxuICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG41LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZTpcbi0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbi0gQ2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzIG5lZWRlZC5cbi0gU3RyaXAgYW55ICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0XG5cbkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGZiMzYwMTk1ZGZhOTU2YWU3ZjEzZmUxZThjZjI5MTQxOWFlYTVkMmRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIFNlcCAxNSAxNjoyOTo0MyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uY1xuaW5kZXggZjkxODU2NDk4ZWIyZC4uMzY1YWNmODkwYjNhNyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jXG5AQCAtODE4MSw5ICs4MTgxLDYgQEAgc3RhdGljIHZvaWQgaXhnYmVfd2F0Y2hkb2dfbGlua19pc191cChzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcilcbiBcbiBcdC8qIHVwZGF0ZSB0aGUgZGVmYXVsdCB1c2VyIHByaW9yaXR5IGZvciBWRnMgKi9cbiBcdGl4Z2JlX3VwZGF0ZV9kZWZhdWx0X3VwKGFkYXB0ZXIpO1xuLVxuLVx0LyogcGluZyBhbGwgdGhlIGFjdGl2ZSB2ZnMgdG8gbGV0IHRoZW0ga25vdyBsaW5rIGhhcyBjaGFuZ2VkICovXG4tXHRpeGdiZV9waW5nX2FsbF92ZnMoYWRhcHRlcik7XG4gfVxuIFxuIC8qKlxuQEAgLTgyMTQsOSArODIxMSw2IEBAIHN0YXRpYyB2b2lkIGl4Z2JlX3dhdGNoZG9nX2xpbmtfaXNfZG93bihzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcilcbiBcbiBcdGVfaW5mbyhkcnYsIFwiTklDIExpbmsgaXMgRG93blxcblwiKTtcbiBcdG5ldGlmX2NhcnJpZXJfb2ZmKG5ldGRldik7XG4tXG4tXHQvKiBwaW5nIGFsbCB0aGUgYWN0aXZlIHZmcyB0byBsZXQgdGhlbSBrbm93IGxpbmsgaGFzIGNoYW5nZWQgKi9cbi1cdGl4Z2JlX3BpbmdfYWxsX3ZmcyhhZGFwdGVyKTtcbiB9XG4gXG4gc3RhdGljIGJvb2wgaXhnYmVfcmluZ190eF9wZW5kaW5nKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3NyaW92LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9zcmlvdi5jXG5pbmRleCA0MzFkNzdkYTE1YTVmLi5kYTY0MWU5MTQ4MWI4IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfc3Jpb3YuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfc3Jpb3YuY1xuQEAgLTE1MTUsMjAgKzE1MTUsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaXhnYmVfcGluZ192ZihzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlciwgaW50IHZmKVxuIFx0aXhnYmVfd3JpdGVfbWJ4KGh3LCBcdTAwMjZwaW5nLCAxLCB2Zik7XG4gfVxuIFxuLXZvaWQgaXhnYmVfcGluZ19hbGxfdmZzKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKVxuLXtcbi1cdHN0cnVjdCBpeGdiZV9odyAqaHcgPSBcdTAwMjZhZGFwdGVyLVx1MDAzZWh3O1xuLVx0dTMyIHBpbmc7XG4tXHRpbnQgaTtcbi1cbi1cdGZvciAoaSA9IDAgOyBpIFx1MDAzYyBhZGFwdGVyLVx1MDAzZW51bV92ZnM7IGkrKykge1xuLVx0XHRwaW5nID0gSVhHQkVfUEZfQ09OVFJPTF9NU0c7XG4tXHRcdGlmIChhZGFwdGVyLVx1MDAzZXZmaW5mb1tpXS5jbGVhcl90b19zZW5kKVxuLVx0XHRcdHBpbmcgfD0gSVhHQkVfVlRfTVNHVFlQRV9DVFM7XG4tXHRcdGl4Z2JlX3dyaXRlX21ieChodywgXHUwMDI2cGluZywgMSwgaSk7XG4tXHR9XG4tfVxuLVxuIC8qKlxuICAqIGl4Z2JlX3NldF9hbGxfdmZzIC0gdXBkYXRlIHZmcyBxdWV1ZXNcbiAgKiBAYWRhcHRlcjogUG9pbnRlciB0byBhZGFwdGVyIHN0cnVjdFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3NyaW92LmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9zcmlvdi5oXG5pbmRleCBiYzRjYWI5NzZiZjk1Li5mNzU1YmZkODQ0ODBjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfc3Jpb3YuaFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfc3Jpb3YuaFxuQEAgLTE4LDcgKzE4LDYgQEAgdm9pZCBpeGdiZV9yZXN0b3JlX3ZmX211bHRpY2FzdHMoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIpO1xuIGJvb2wgaXhnYmVfY2hlY2tfbWRkX2V2ZW50KHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKTtcbiB2b2lkIGl4Z2JlX21zZ190YXNrKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKTtcbiBpbnQgaXhnYmVfdmZfY29uZmlndXJhdGlvbihzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdW5zaWduZWQgaW50IGV2ZW50X21hc2spO1xuLXZvaWQgaXhnYmVfcGluZ19hbGxfdmZzKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKTtcbiB2b2lkIGl4Z2JlX3NldF9hbGxfdmZzKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKTtcbiBpbnQgaXhnYmVfbmRvX3NldF92Zl9tYWMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgaW50IHF1ZXVlLCB1OCAqbWFjKTtcbiBpbnQgaXhnYmVfbmRvX3NldF92Zl92bGFuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBxdWV1ZSwgdTE2IHZsYW4sXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQxNjoyOTo0NC45NTU5NDk4NzZaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuOC1mbGFzaCIsIkR1cmF0aW9uIjo2ODM2NDY5MDIyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIGl4Z2JlIERyaXZlciBQYXRjaCBmb3IgV29ydGhGdXp6aW5nIENyaXRlcmlhKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBhZmZlY3RzIHRoZSBJbnRlbCBpeGdiZSBkcml2ZXIsIHNwZWNpZmljYWxseSBpbiBgaXhnYmVfbWFpbi5jYCwgYGl4Z2JlX3NyaW92LmNgLCBhbmQgYGl4Z2JlX3NyaW92LmhgLiBJdCBsb29rcyBsaWtlIGl0J3MgcmVtb3ZpbmcgY2FsbHMgdG8gYGl4Z2JlX3BpbmdfYWxsX3Zmc2AgYW5kIHRoZSBmdW5jdGlvbiBpdHNlbGYuIE5vdywgbXkgYnJhaW4gaW1tZWRpYXRlbHkganVtcHMgdG8gdGhlIFwiV29ydGhGdXp6aW5nXCIgcnVsZXMuICBTcGVjaWZpY2FsbHksIHRoZSBuZWdhdGl2ZSBjcml0ZXJpYTogXCJTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmUuXCIgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhpcyBwYXRjaCBmYWxscyBpbnRvIHRoYXQgY2F0ZWdvcnkuXG5cblRoZSBrZXkgcXVlc3Rpb24gaGVyZSBpcyB3aGV0aGVyIHRoZSBpeGdiZSBkcml2ZXIsIHdoaWNoIGhhbmRsZXMgdGhvc2UgSW50ZWwgODI1OTkgYW5kIHNpbWlsYXIgMTAgR2lnYWJpdCBFdGhlcm5ldCBjb250cm9sbGVycywgaXMgKmVtdWxhdGVkKiBpbiBzdGFuZGFyZCBRRU1VLiAgVGhlIGRvY3VtZW50YXRpb24gbGlzdHMgc2V2ZXJhbCBlbXVsYXRlZCBOSUNzIGxpa2UgZTEwMDAsIGUxMDAwZSwgaWdiIChpbiBzb21lIHZlcnNpb25zKSwgdm14bmV0MywgYW5kIHZpcnRpby1uZXQsIGV0Yy4sIGJ1dCAqZG9lcyogaXQgZXhwbGljaXRseSBtZW50aW9uIGl4Z2JlPyBNeSBpbml0aWFsIHRob3VnaHQgaXMgKm5vKiwgYnV0IEkgbmVlZCB0byBiZSBjZXJ0YWluLlxuXG5MZXQncyBkbyBzb21lIHF1aWNrIHJlc2VhcmNoIG9uIFFFTVUncyBkZXZpY2UgbW9kZWxzLiBJJ20gZ29pbmcgdG8gcXVpY2tseSBsb29rIGFuZCBzZWUgaWYgSSBjYW4gZXZlbiBpbnN0YW50aWF0ZSBhbiBpeGdiZSBkZXZpY2UgaW4gUUVNVS4gIE15IHF1aWNrIHNjYW4gb2YgUUVNVSdzIGF2YWlsYWJsZSBuZXR3b3JrIGRldmljZSBtb2RlbHMgcmV2ZWFscyBubyBpeGdiZS4gSSBjYW4gc2VlIGUxMDAwLCBlMTAwMGUsIGlnYiwgYnV0IG5vdGhpbmcgZm9yIGl4Z2JlLCB3aGljaCBpcyBhIGJpZyByZWQgZmxhZy5cblxuR2l2ZW4gdGhhdCBpeGdiZSBpc24ndCBsaXN0ZWQsIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgdGhlcmUncyBzb21lIGtpbmQgb2YgdmlydHVhbCBvciBtb2NrIHN1cHBvcnQgZm9yIGl4Z2JlIHRoYXQgbWlnaHQgc3RpbGwgYWxsb3cgZm9yIHRlc3RpbmcgaW4gZW52aXJvbm1lbnRzIGxpa2UgU3l6a2FsbGVyIG9yIHN0YW5kYXJkIHZpcnR1YWxpemVkIHNldHVwcy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIGRyaXZlciBpcyB0ZXN0YWJsZSwgYnV0IEknbSBsZWFuaW5nIGhlYXZpbHkgdG93YXJkcyBcInVucmVhY2hhYmxlXCIgaWYgaXQncyBub3QgZW11bGF0ZWQuIEknbSBnb2luZyB0byBsb29rIGZvciBhbnkgbWVudGlvbiBvZiB2aXJ0dWFsIG9yIG1vY2sgaXhnYmUgc3VwcG9ydCBiZWZvcmUgcHJvY2VlZGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzc3MywiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ4NSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE1VDE2OjMwOjUzLjMyMDY0MzI4M1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjU5NzE5OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJpeGdiZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDIxNTIwIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9NYWtlZmlsZT03PXN1YmRpci1jY2ZsYWdzLXkgKz0gLUkkKHNyYylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9NYWtlZmlsZTo4Om9iai0kKENPTkZJR19JWEdCRSkgKz0gaXhnYmUub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL01ha2VmaWxlLTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvTWFrZWZpbGU6MTA6aXhnYmUteSA6PSBpeGdiZV9tYWluLm8gaXhnYmVfY29tbW9uLm8gaXhnYmVfZXRodG9vbC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9NYWtlZmlsZToxMTogICAgICAgICAgIGl4Z2JlXzgyNTk5Lm8gaXhnYmVfODI1OTgubyBpeGdiZV9waHkubyBpeGdiZV9zcmlvdi5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9NYWtlZmlsZToxMjogICAgICAgICAgIGl4Z2JlX21ieC5vIGl4Z2JlX3g1NDAubyBpeGdiZV94NTUwLm8gaXhnYmVfbGliLm8gaXhnYmVfcHRwLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL01ha2VmaWxlOjEzOiAgICAgICAgICAgaXhnYmVfeHNrLm8gaXhnYmVfZTYxMC5vIGRldmxpbmsvZGV2bGluay5vIGl4Z2JlX2Z3X3VwZGF0ZS5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9NYWtlZmlsZS0xNC1cXHQgICBkZXZsaW5rL3JlZ2lvbi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvTWFrZWZpbGUtMTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvTWFrZWZpbGU6MTY6aXhnYmUtJChDT05GSUdfSVhHQkVfRENCKSArPSAgaXhnYmVfZGNiLm8gaXhnYmVfZGNiXzgyNTk4Lm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL01ha2VmaWxlOjE3OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl4Z2JlX2RjYl84MjU5OS5vIGl4Z2JlX2RjYl9ubC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvTWFrZWZpbGUtMTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvTWFrZWZpbGU6MTk6aXhnYmUtJChDT05GSUdfSVhHQkVfSFdNT04pICs9IGl4Z2JlX3N5c2ZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9NYWtlZmlsZToyMDppeGdiZS0kKENPTkZJR19ERUJVR19GUykgKz0gaXhnYmVfZGVidWdmcy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvTWFrZWZpbGU6MjE6aXhnYmUtJChDT05GSUdfRkNPRTptPXkpICs9IGl4Z2JlX2Zjb2Uub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL01ha2VmaWxlOjIyOml4Z2JlLSQoQ09ORklHX0lYR0JFX0lQU0VDKSArPSBpeGdiZV9pcHNlYy5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQ6I2luY2x1ZGUgXFxcIml4Z2JlLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNS0jaW5jbHVkZSBcXFwiZGV2bGluay5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjY6I2luY2x1ZGUgXFxcIml4Z2JlX2Z3X3VwZGF0ZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6ODpzdHJ1Y3QgaXhnYmVfaW5mb19jdHgge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTktXFx0Y2hhciBidWZbMTI4XTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMDpcXHRzdHJ1Y3QgaXhnYmVfb3JvbV9pbmZvIHBlbmRpbmdfb3JvbTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMTpcXHRzdHJ1Y3QgaXhnYmVfbnZtX2luZm8gcGVuZGluZ19udm07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTI6XFx0c3RydWN0IGl4Z2JlX25ldGxpc3RfaW5mbyBwZW5kaW5nX25ldGxpc3Q7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTM6XFx0c3RydWN0IGl4Z2JlX2h3X2Rldl9jYXBzIGRldl9jYXBzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTE0LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTY6ZW51bSBpeGdiZV9kZXZsaW5rX3ZlcnNpb25fdHlwZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTctXFx0SVhHQkVfRExfVkVSU0lPTl9SVU5OSU5HLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MjE6c3RhdGljIHZvaWQgaXhnYmVfaW5mb19nZXRfZHNuKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjIyOlxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgaXhnYmVfaW5mb19jdHggKmN0eClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozMjpzdGF0aWMgdm9pZCBpeGdiZV9pbmZvX29yb21fdmVyKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjMzOlxcdFxcdFxcdFxcdHN0cnVjdCBpeGdiZV9pbmZvX2N0eCAqY3R4LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjM0OlxcdFxcdFxcdFxcdGVudW0gaXhnYmVfZGV2bGlua192ZXJzaW9uX3R5cGUgdHlwZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzY6XFx0c3RydWN0IGl4Z2JlX2h3ICpodyA9IFxcdTAwMjZhZGFwdGVyLVxcdTAwM2VodztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozNzpcXHRzdHJ1Y3QgaXhnYmVfbnZtX3ZlcnNpb24gbnZtX3ZlcjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQxOlxcdGlmIChody1cXHUwMDNlbWFjLnR5cGUgPT0gaXhnYmVfbWFjX2U2MTApIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo0MjpcXHRcXHRzdHJ1Y3QgaXhnYmVfb3JvbV9pbmZvICpvcm9tID0gXFx1MDAyNmFkYXB0ZXItXFx1MDAzZWh3LmZsYXNoLm9yb207XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy01Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo1MzpcXHRpeGdiZV9nZXRfb2VtX3Byb2RfdmVyc2lvbihodywgXFx1MDAyNm52bV92ZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTU0LVxcdGlmIChudm1fdmVyLm9lbV92YWxpZCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NjI6XFx0aXhnYmVfZ2V0X29yb21fdmVyc2lvbihodywgXFx1MDAyNm52bV92ZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTYzLVxcdGlmIChudm1fdmVyLm9yX3ZhbGlkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6Njg6c3RhdGljIHZvaWQgaXhnYmVfaW5mb19lZXRyYWNrKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjY5OlxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgaXhnYmVfaW5mb19jdHggKmN0eCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo3MDpcXHRcXHRcXHQgICAgICAgZW51bSBpeGdiZV9kZXZsaW5rX3ZlcnNpb25fdHlwZSB0eXBlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTcxLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo3MjpcXHRzdHJ1Y3QgaXhnYmVfaHcgKmh3ID0gXFx1MDAyNmFkYXB0ZXItXFx1MDAzZWh3O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjczOlxcdHN0cnVjdCBpeGdiZV9udm1fdmVyc2lvbiBudm1fdmVyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTc0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjc1OlxcdGlmIChody1cXHUwMDNlbWFjLnR5cGUgPT0gaXhnYmVfbWFjX2U2MTApIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy03Ni1cXHRcXHR1MzIgZWV0cmFjayA9IGh3LVxcdTAwM2VmbGFzaC5udm0uZWV0cmFjaztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjg2OlxcdGl4Z2JlX2dldF9vZW1fcHJvZF92ZXJzaW9uKGh3LCBcXHUwMDI2bnZtX3Zlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtODctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy05My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo5NDpcXHRpeGdiZV9nZXRfZXRrX2lkKGh3LCBcXHUwMDI2bnZtX3Zlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtOTUtXFx0c25wcmludGYoY3R4LVxcdTAwM2VidWYsIHNpemVvZihjdHgtXFx1MDAzZWJ1ZiksIFxcXCIweCUwOHhcXFwiLCBudm1fdmVyLmV0a19pZCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy05Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo5ODpzdGF0aWMgdm9pZCBpeGdiZV9pbmZvX2Z3X2FwaShzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo5OTpcXHRcXHRcXHQgICAgICBzdHJ1Y3QgaXhnYmVfaW5mb19jdHggKmN0eClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xMDAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjEwMTpcXHRzdHJ1Y3QgaXhnYmVfaHcgKmh3ID0gXFx1MDAyNmFkYXB0ZXItXFx1MDAzZWh3O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTEwMi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTEwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMDc6c3RhdGljIHZvaWQgaXhnYmVfaW5mb19md19idWlsZChzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMDg6XFx0XFx0XFx0XFx0c3RydWN0IGl4Z2JlX2luZm9fY3R4ICpjdHgpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTA5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMTA6XFx0c3RydWN0IGl4Z2JlX2h3ICpodyA9IFxcdTAwMjZhZGFwdGVyLVxcdTAwM2VodztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xMTEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xMTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTE1OnN0YXRpYyB2b2lkIGl4Z2JlX2luZm9fZndfc3JldihzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMTY6XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBpeGdiZV9pbmZvX2N0eCAqY3R4LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjExNzpcXHRcXHRcXHQgICAgICAgZW51bSBpeGdiZV9kZXZsaW5rX3ZlcnNpb25fdHlwZSB0eXBlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTExOC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTE5OlxcdHN0cnVjdCBpeGdiZV9udm1faW5mbyAqbnZtID0gXFx1MDAyNmFkYXB0ZXItXFx1MDAzZWh3LmZsYXNoLm52bTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xMjAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xMjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTI4OnN0YXRpYyB2b2lkIGl4Z2JlX2luZm9fb3JvbV9zcmV2KHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjEyOTpcXHRcXHRcXHRcXHQgc3RydWN0IGl4Z2JlX2luZm9fY3R4ICpjdHgsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTMwOlxcdFxcdFxcdFxcdCBlbnVtIGl4Z2JlX2RldmxpbmtfdmVyc2lvbl90eXBlIHR5cGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTMxLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxMzI6XFx0c3RydWN0IGl4Z2JlX29yb21faW5mbyAqb3JvbSA9IFxcdTAwMjZhZGFwdGVyLVxcdTAwM2Vody5mbGFzaC5vcm9tO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTEzMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTE0MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxNDE6c3RhdGljIHZvaWQgaXhnYmVfaW5mb19udm1fdmVyKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjE0MjpcXHRcXHRcXHQgICAgICAgc3RydWN0IGl4Z2JlX2luZm9fY3R4ICpjdHgsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTQzOlxcdFxcdFxcdCAgICAgICBlbnVtIGl4Z2JlX2RldmxpbmtfdmVyc2lvbl90eXBlIHR5cGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTQ0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxNDU6XFx0c3RydWN0IGl4Z2JlX252bV9pbmZvICpudm0gPSBcXHUwMDI2YWRhcHRlci1cXHUwMDNlaHcuZmxhc2gubnZtO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTE0Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTE1My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxNTQ6c3RhdGljIHZvaWQgaXhnYmVfaW5mb19uZXRsaXN0X3ZlcihzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxNTU6XFx0XFx0XFx0XFx0ICAgc3RydWN0IGl4Z2JlX2luZm9fY3R4ICpjdHgsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTU2OlxcdFxcdFxcdFxcdCAgIGVudW0gaXhnYmVfZGV2bGlua192ZXJzaW9uX3R5cGUgdHlwZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xNTcte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjE1ODpcXHRzdHJ1Y3QgaXhnYmVfbmV0bGlzdF9pbmZvICpuZXRsaXN0ID0gXFx1MDAyNmFkYXB0ZXItXFx1MDAzZWh3LmZsYXNoLm5ldGxpc3Q7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTU5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMTcwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjE3MTpzdGF0aWMgdm9pZCBpeGdiZV9pbmZvX25ldGxpc3RfYnVpbGQoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTcyOlxcdFxcdFxcdFxcdCAgICAgc3RydWN0IGl4Z2JlX2luZm9fY3R4ICpjdHgsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTczOlxcdFxcdFxcdFxcdCAgICAgZW51bSBpeGdiZV9kZXZsaW5rX3ZlcnNpb25fdHlwZSB0eXBlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTE3NC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTc1OlxcdHN0cnVjdCBpeGdiZV9uZXRsaXN0X2luZm8gKm5ldGxpc3QgPSBcXHUwMDI2YWRhcHRlci1cXHUwMDNlaHcuZmxhc2gubmV0bGlzdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xNzYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xODMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MTg0OnN0YXRpYyBpbnQgaXhnYmVfc2V0X2N0eF9kZXZfY2FwcyhzdHJ1Y3QgaXhnYmVfaHcgKmh3LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjE4NTpcXHRcXHRcXHRcXHQgIHN0cnVjdCBpeGdiZV9pbmZvX2N0eCAqY3R4LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTE4Ni1cXHRcXHRcXHRcXHQgIHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTE5MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoxOTE6XFx0ZXJyID0gaXhnYmVfZGlzY292ZXJfZGV2X2NhcHMoaHcsIFxcdTAwMjZjdHgtXFx1MDAzZWRldl9jYXBzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0xOTItXFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjAyLVxcdGlmICgqcGVuZGluZ19vcm9tKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MjAzOlxcdFxcdGVyciA9IGl4Z2JlX2dldF9pbmFjdGl2ZV9vcm9tX3ZlcihodywgXFx1MDAyNmN0eC1cXHUwMDNlcGVuZGluZ19vcm9tKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yMDQtXFx0XFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTIwOC1cXHRpZiAoKnBlbmRpbmdfbnZtKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MjA5OlxcdFxcdGVyciA9IGl4Z2JlX2dldF9pbmFjdGl2ZV9udm1fdmVyKGh3LCBcXHUwMDI2Y3R4LVxcdTAwM2VwZW5kaW5nX252bSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjEwLVxcdFxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yMTQtXFx0aWYgKCpwZW5kaW5nX25ldGxpc3QpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyMTU6XFx0XFx0ZXJyID0gaXhnYmVfZ2V0X2luYWN0aXZlX25ldGxpc3RfdmVyKGh3LCBcXHUwMDI2Y3R4LVxcdTAwM2VwZW5kaW5nX25ldGxpc3QpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTIxNi1cXHRcXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjIyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjIyMzpzdGF0aWMgaW50IGl4Z2JlX2RldmxpbmtfaW5mb19nZXRfZTYxMChzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yMjQtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBkZXZsaW5rX2luZm9fcmVxICpyZXEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MjI1OlxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgaXhnYmVfaW5mb19jdHggKmN0eClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yMjYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjI4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjIyOTpcXHRpeGdiZV9pbmZvX2Z3X2FwaShhZGFwdGVyLCBjdHgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTIzMC1cXHRlcnIgPSBkZXZsaW5rX2luZm9fdmVyc2lvbl9ydW5uaW5nX3B1dChyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yMzUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MjM2OlxcdGl4Z2JlX2luZm9fZndfYnVpbGQoYWRhcHRlciwgY3R4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yMzctXFx0ZXJyID0gZGV2bGlua19pbmZvX3ZlcnNpb25fcnVubmluZ19wdXQocmVxLCBcXFwiZncubWdtdC5idWlsZFxcXCIsIGN0eC1cXHUwMDNlYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI0MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyNDE6XFx0aXhnYmVfaW5mb19md19zcmV2KGFkYXB0ZXIsIGN0eCwgSVhHQkVfRExfVkVSU0lPTl9SVU5OSU5HKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yNDItXFx0ZXJyID0gZGV2bGlua19pbmZvX3ZlcnNpb25fcnVubmluZ19wdXQocmVxLCBcXFwiZncubWdtdC5zcmV2XFxcIiwgY3R4LVxcdTAwM2VidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjQ1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjI0NjpcXHRpeGdiZV9pbmZvX29yb21fc3JldihhZGFwdGVyLCBjdHgsIElYR0JFX0RMX1ZFUlNJT05fUlVOTklORyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjQ3LVxcdGVyciA9IGRldmxpbmtfaW5mb192ZXJzaW9uX3J1bm5pbmdfcHV0KHJlcSwgXFxcImZ3LnVuZGkuc3JldlxcXCIsIGN0eC1cXHUwMDNlYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI1MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyNTE6XFx0aXhnYmVfaW5mb19udm1fdmVyKGFkYXB0ZXIsIGN0eCwgSVhHQkVfRExfVkVSU0lPTl9SVU5OSU5HKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yNTItXFx0ZXJyID0gZGV2bGlua19pbmZvX3ZlcnNpb25fcnVubmluZ19wdXQocmVxLCBcXFwiZncucHNpZC5hcGlcXFwiLCBjdHgtXFx1MDAzZWJ1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yNTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MjU2OlxcdGl4Z2JlX2luZm9fbmV0bGlzdF92ZXIoYWRhcHRlciwgY3R4LCBJWEdCRV9ETF9WRVJTSU9OX1JVTk5JTkcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI1Ny1cXHRlcnIgPSBkZXZsaW5rX2luZm9fdmVyc2lvbl9ydW5uaW5nX3B1dChyZXEsIFxcXCJmdy5uZXRsaXN0XFxcIiwgY3R4LVxcdTAwM2VidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjYwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjI2MTpcXHRpeGdiZV9pbmZvX25ldGxpc3RfYnVpbGQoYWRhcHRlciwgY3R4LCBJWEdCRV9ETF9WRVJTSU9OX1JVTk5JTkcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI2Mi1cXHRyZXR1cm4gZGV2bGlua19pbmZvX3ZlcnNpb25fcnVubmluZ19wdXQocmVxLCBcXFwiZncubmV0bGlzdC5idWlsZFxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYz0yNjY9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjI2NzppeGdiZV9kZXZsaW5rX3BlbmRpbmdfaW5mb19nZXRfZTYxMChzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yNjgtXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBkZXZsaW5rX2luZm9fcmVxICpyZXEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MjY5OlxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgaXhnYmVfaW5mb19jdHggKmN0eClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0yNzAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjcyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjI3MzpcXHRpeGdiZV9pbmZvX29yb21fdmVyKGFkYXB0ZXIsIGN0eCwgSVhHQkVfRExfVkVSU0lPTl9TVE9SRUQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI3NC1cXHRlcnIgPSBkZXZsaW5rX2luZm9fdmVyc2lvbl9zdG9yZWRfcHV0KHJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI3OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyODA6XFx0aXhnYmVfaW5mb19lZXRyYWNrKGFkYXB0ZXIsIGN0eCwgSVhHQkVfRExfVkVSU0lPTl9TVE9SRUQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI4MS1cXHRlcnIgPSBkZXZsaW5rX2luZm9fdmVyc2lvbl9zdG9yZWRfcHV0KHJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI4Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyODc6XFx0aXhnYmVfaW5mb19md19zcmV2KGFkYXB0ZXIsIGN0eCwgSVhHQkVfRExfVkVSU0lPTl9TVE9SRUQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI4OC1cXHRlcnIgPSBkZXZsaW5rX2luZm9fdmVyc2lvbl9zdG9yZWRfcHV0KHJlcSwgXFxcImZ3Lm1nbXQuc3JldlxcXCIsIGN0eC1cXHUwMDNlYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTI5MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzoyOTI6XFx0aXhnYmVfaW5mb19vcm9tX3NyZXYoYWRhcHRlciwgY3R4LCBJWEdCRV9ETF9WRVJTSU9OX1NUT1JFRCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjkzLVxcdGVyciA9IGRldmxpbmtfaW5mb192ZXJzaW9uX3N0b3JlZF9wdXQocmVxLCBcXFwiZncudW5kaS5zcmV2XFxcIiwgY3R4LVxcdTAwM2VidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjk2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjI5NzpcXHRpeGdiZV9pbmZvX252bV92ZXIoYWRhcHRlciwgY3R4LCBJWEdCRV9ETF9WRVJTSU9OX1NUT1JFRCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMjk4LVxcdGVyciA9IGRldmxpbmtfaW5mb192ZXJzaW9uX3N0b3JlZF9wdXQocmVxLCBcXFwiZncucHNpZC5hcGlcXFwiLCBjdHgtXFx1MDAzZWJ1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zMDEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzAyOlxcdGl4Z2JlX2luZm9fbmV0bGlzdF92ZXIoYWRhcHRlciwgY3R4LCBJWEdCRV9ETF9WRVJTSU9OX1NUT1JFRCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMzAzLVxcdGVyciA9IGRldmxpbmtfaW5mb192ZXJzaW9uX3N0b3JlZF9wdXQocmVxLCBcXFwiZncubmV0bGlzdFxcXCIsIGN0eC1cXHUwMDNlYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTMwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozMDc6XFx0aXhnYmVfaW5mb19uZXRsaXN0X2J1aWxkKGFkYXB0ZXIsIGN0eCwgSVhHQkVfRExfVkVSU0lPTl9TVE9SRUQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTMwOC1cXHRyZXR1cm4gZGV2bGlua19pbmZvX3ZlcnNpb25fc3RvcmVkX3B1dChyZXEsIFxcXCJmdy5uZXRsaXN0LmJ1aWxkXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTMxMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozMTI6c3RhdGljIGludCBpeGdiZV9kZXZsaW5rX2luZm9fZ2V0KHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTMxMy1cXHRcXHRcXHRcXHQgIHN0cnVjdCBkZXZsaW5rX2luZm9fcmVxICpyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zMTUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjMxNjpcXHRzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlciA9IGRldmxpbmtfcHJpdihkZXZsaW5rKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozMTc6XFx0c3RydWN0IGl4Z2JlX2h3ICpodyA9IFxcdTAwMjZhZGFwdGVyLVxcdTAwM2VodztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozMTg6XFx0c3RydWN0IGl4Z2JlX2luZm9fY3R4ICpjdHg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMzE5LVxcdGludCBlcnI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zMjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzI1OlxcdGlmIChody1cXHUwMDNlbWFjLnR5cGUgPT0gaXhnYmVfbWFjX2U2MTApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzI2OlxcdFxcdGl4Z2JlX3JlZnJlc2hfZndfdmVyc2lvbihhZGFwdGVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zMjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzI4OlxcdGl4Z2JlX2luZm9fZ2V0X2RzbihhZGFwdGVyLCBjdHgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTMyOS1cXHRlcnIgPSBkZXZsaW5rX2luZm9fc2VyaWFsX251bWJlcl9wdXQocmVxLCBjdHgtXFx1MDAzZWJ1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzQzOlxcdGl4Z2JlX2luZm9fb3JvbV92ZXIoYWRhcHRlciwgY3R4LCBJWEdCRV9ETF9WRVJTSU9OX1JVTk5JTkcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTM0NC1cXHRlcnIgPSBkZXZsaW5rX2luZm9fdmVyc2lvbl9ydW5uaW5nX3B1dChyZXEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzUwOlxcdGl4Z2JlX2luZm9fZWV0cmFjayhhZGFwdGVyLCBjdHgsIElYR0JFX0RMX1ZFUlNJT05fUlVOTklORyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtMzUxLVxcdGVyciA9IGRldmxpbmtfaW5mb192ZXJzaW9uX3J1bm5pbmdfcHV0KHJlcSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTM1My1cXHRcXHRcXHRcXHRcXHQgICAgICAgY3R4LVxcdTAwM2VidWYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjM1NDpcXHRpZiAoZXJyIHx8IGh3LVxcdTAwM2VtYWMudHlwZSAhPSBpeGdiZV9tYWNfZTYxMClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNTUtXFx0XFx0Z290byBmcmVlX2N0eDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzU3OlxcdGVyciA9IGl4Z2JlX3NldF9jdHhfZGV2X2NhcHMoaHcsIGN0eCwgZXh0YWNrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNTgtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTM2MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozNjE6XFx0ZXJyID0gaXhnYmVfZGV2bGlua19pbmZvX2dldF9lNjEwKGFkYXB0ZXIsIHJlcSwgY3R4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNjItXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTM2NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozNjU6XFx0ZXJyID0gaXhnYmVfZGV2bGlua19wZW5kaW5nX2luZm9fZ2V0X2U2MTAoYWRhcHRlciwgcmVxLCBjdHgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTM2Ni1mcmVlX2N0eDpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTM3MS0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozNzI6ICogaXhnYmVfZGV2bGlua19yZWxvYWRfZW1wcl9zdGFydCAtIFN0YXJ0IEVNUCByZXNldCB0byBhY3RpdmF0ZSBuZXcgZmlybXdhcmVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zNzMtICogQGRldmxpbms6IHBvaW50ZXIgdG8gdGhlIGRldmxpbmsgaW5zdGFuY2UgdG8gcmVsb2FkXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zODktICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6MzkwOnN0YXRpYyBpbnQgaXhnYmVfZGV2bGlua19yZWxvYWRfZW1wcl9zdGFydChzdHJ1Y3QgZGV2bGluayAqZGV2bGluayxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zOTEtXFx0XFx0XFx0XFx0XFx0ICAgYm9vbCBuZXRuc19jaGFuZ2UsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zOTUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjM5NjpcXHRzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlciA9IGRldmxpbmtfcHJpdihkZXZsaW5rKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzozOTc6XFx0c3RydWN0IGl4Z2JlX2h3ICpodyA9IFxcdTAwMjZhZGFwdGVyLVxcdTAwM2VodztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy0zOTgtXFx0dTggcGVuZGluZztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQwMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo0MDE6XFx0aWYgKGh3LVxcdTAwM2VtYWMudHlwZSAhPSBpeGdiZV9tYWNfZTYxMClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00MDItXFx0XFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQwMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo0MDQ6XFx0ZXJyID0gaXhnYmVfZ2V0X3BlbmRpbmdfdXBkYXRlcyhhZGFwdGVyLCBcXHUwMDI2cGVuZGluZywgZXh0YWNrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00MDUtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQyMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo0MjQ6XFx0ZXJyID0gaXhnYmVfYWNpX252bV91cGRhdGVfZW1wcihodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDI1LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00MzUtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NDM2OiAqIGl4Z2JlX2RldmxpbmtfcmVsb2FkX2VtcHJfZmluaXNoIC0gZmluaXNoZXMgRU1QIHJlc2V0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDM3LSAqIEBkZXZsaW5rOiBwb2ludGVyIHRvIHRoZSBkZXZsaW5rIGluc3RhbmNlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00NDYtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NDQ3OnN0YXRpYyBpbnQgaXhnYmVfZGV2bGlua19yZWxvYWRfZW1wcl9maW5pc2goc3RydWN0IGRldmxpbmsgKmRldmxpbmssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDQ4LVxcdFxcdFxcdFxcdFxcdCAgICBlbnVtIGRldmxpbmtfcmVsb2FkX2FjdGlvbiBhY3Rpb24sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00NTIte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQ1MzpcXHRzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlciA9IGRldmxpbmtfcHJpdihkZXZsaW5rKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo0NTQ6XFx0c3RydWN0IGl4Z2JlX2h3ICpodyA9IFxcdTAwMjZhZGFwdGVyLVxcdTAwM2VodztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00NTUtXFx0aW50IGkgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDc2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQ3NzpcXHRyZXR1cm4gaXhnYmVfcmVmcmVzaF9md192ZXJzaW9uKGFkYXB0ZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQ3OC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNDc5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQ4MDpzdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfb3BzIGl4Z2JlX2Rldmxpbmtfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQ4MTpcXHQuaW5mb19nZXQgPSBpeGdiZV9kZXZsaW5rX2luZm9fZ2V0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQ4Mi1cXHQuc3VwcG9ydGVkX2ZsYXNoX3VwZGF0ZV9wYXJhbXMgPVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQ4My1cXHRcXHRERVZMSU5LX1NVUFBPUlRfRkxBU0hfVVBEQVRFX09WRVJXUklURV9NQVNLLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjQ4NDpcXHQuZmxhc2hfdXBkYXRlID0gaXhnYmVfZmxhc2hfcGxkbV9pbWFnZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00ODUtXFx0LnJlbG9hZF9hY3Rpb25zID0gQklUKERFVkxJTktfUkVMT0FEX0FDVElPTl9GV19BQ1RJVkFURSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NDg2OlxcdC5yZWxvYWRfZG93biA9IGl4Z2JlX2RldmxpbmtfcmVsb2FkX2VtcHJfc3RhcnQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NDg3OlxcdC5yZWxvYWRfdXAgPSBpeGdiZV9kZXZsaW5rX3JlbG9hZF9lbXByX2ZpbmlzaCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00ODgtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTQ5MC0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo0OTE6ICogaXhnYmVfYWxsb2NhdGVfZGV2bGluayAtIEFsbG9jYXRlIGRldmxpbmsgaW5zdGFuY2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00OTItICogQGRldjogZGV2aWNlIHRvIGFsbG9jYXRlIGRldmxpbmsgZm9yXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy00OTgtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NDk5OnN0cnVjdCBpeGdiZV9hZGFwdGVyICppeGdiZV9hbGxvY2F0ZV9kZXZsaW5rKHN0cnVjdCBkZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy01MDAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjUwMTpcXHRzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy01MDItXFx0c3RydWN0IGRldmxpbmsgKmRldmxpbms7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNTAzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jOjUwNDpcXHRkZXZsaW5rID0gZGV2bGlua19hbGxvYyhcXHUwMDI2aXhnYmVfZGV2bGlua19vcHMsIHNpemVvZigqYWRhcHRlciksIGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNTA1LVxcdGlmICghZGV2bGluaylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTUxNC0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYzo1MTU6ICogaXhnYmVfZGV2bGlua19zZXRfc3dpdGNoX2lkIC0gU2V0IHVuaXF1ZSBzd2l0Y2ggSUQgYmFzZWQgb24gUENJIERTTlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTUxNi0gKiBAYWRhcHRlcjogcG9pbnRlciB0byB0aGUgZGV2aWNlIGFkYXB0ZXIgc3RydWN0dXJlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy01MTgtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NTE5OnN0YXRpYyB2b2lkIGl4Z2JlX2Rldmxpbmtfc2V0X3N3aXRjaF9pZChzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy01MjAtXFx0XFx0XFx0XFx0XFx0c3RydWN0IG5ldGRldl9waHlzX2l0ZW1faWQgKnBwaWQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy01MjgtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NTI5OiAqIGl4Z2JlX2RldmxpbmtfcmVnaXN0ZXJfcG9ydCAtIFJlZ2lzdGVyIGRldmxpbmsgcG9ydFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTUzMC0gKiBAYWRhcHRlcjogcG9pbnRlciB0byB0aGUgZGV2aWNlIGFkYXB0ZXIgc3RydWN0dXJlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy01MzUtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NTM2OmludCBpeGdiZV9kZXZsaW5rX3JlZ2lzdGVyX3BvcnQoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmMtNTM3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5jLTU0Ni1cXHRhdHRycy5ub19waHlzX3BvcnRfbmFtZSA9IDE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmM6NTQ3OlxcdGl4Z2JlX2Rldmxpbmtfc2V0X3N3aXRjaF9pZChhZGFwdGVyLCBcXHUwMDI2YXR0cnMuc3dpdGNoX2lkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuYy01NDgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuaC02LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5oOjc6c3RydWN0IGl4Z2JlX2FkYXB0ZXIgKml4Z2JlX2FsbG9jYXRlX2Rldmxpbmsoc3RydWN0IGRldmljZSAqZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL2RldmxpbmsuaDo4OmludCBpeGdiZV9kZXZsaW5rX3JlZ2lzdGVyX3BvcnQoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvZGV2bGluay5oOjk6dm9pZCBpeGdiZV9kZXZsaW5rX2luaXRfcmVnaW9ucyhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmg6MTA6dm9pZCBpeGdiZV9kZXZsaW5rX2Rlc3Ryb3lfcmVnaW9ucyhzdHJ1Y3QgaXhnYmVfYWRhcHRlciAqYWRhcHRlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9kZXZsaW5rLmgtMTEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzo0OiNpbmNsdWRlIFxcXCJpeGdiZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtNS0jaW5jbHVkZSBcXFwiZGV2bGluay5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy04LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6OTpzdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfcmVnaW9uX29wcyBpeGdiZV9udm1fcmVnaW9uX29wcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjEwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2bGlua19yZWdpb25fb3BzIGl4Z2JlX3NyYW1fcmVnaW9uX29wcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MTI6c3RhdGljIGludCBpeGdiZV9kZXZsaW5rX3BhcnNlX3JlZ2lvbihzdHJ1Y3QgaXhnYmVfaHcgKmh3LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTMtXFx0XFx0XFx0XFx0ICAgICAgY29uc3Qgc3RydWN0IGRldmxpbmtfcmVnaW9uX29wcyAqb3BzLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xNS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxNjpcXHRpZiAob3BzID09IFxcdTAwMjZpeGdiZV9udm1fcmVnaW9uX29wcykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTctXFx0XFx0KnJlYWRfc2hhZG93X3JhbSA9IGZhbHNlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTgtXFx0XFx0Km52bV9zaXplID0gaHctXFx1MDAzZWZsYXNoLmZsYXNoX3NpemU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxOTpcXHR9IGVsc2UgaWYgKG9wcyA9PSBcXHUwMDI2aXhnYmVfc3JhbV9yZWdpb25fb3BzKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0yMC1cXHRcXHQqcmVhZF9zaGFkb3dfcmFtID0gdHJ1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjktLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzozMDogKiBpeGdiZV9kZXZsaW5rX252bV9zbmFwc2hvdCAtIENhcHR1cmUgYSBzbmFwc2hvdCBvZiB0aGUgTlZNIGNvbnRlbnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTMxLSAqIEBkZXZsaW5rOiB0aGUgZGV2bGluayBpbnN0YW5jZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy00NS0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjQ2OnN0YXRpYyBpbnQgaXhnYmVfZGV2bGlua19udm1fc25hcHNob3Qoc3RydWN0IGRldmxpbmsgKmRldmxpbmssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy00Ny1cXHRcXHRcXHRcXHQgICAgICBjb25zdCBzdHJ1Y3QgZGV2bGlua19yZWdpb25fb3BzICpvcHMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTQ5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjUwOlxcdHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyID0gZGV2bGlua19wcml2KGRldmxpbmspO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6NTE6XFx0c3RydWN0IGl4Z2JlX2h3ICpodyA9IFxcdTAwMjZhZGFwdGVyLVxcdTAwM2VodztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTUyLVxcdGJvb2wgcmVhZF9zaGFkb3dfcmFtO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy01Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjU4OlxcdGVyciA9IGl4Z2JlX2RldmxpbmtfcGFyc2VfcmVnaW9uKGh3LCBvcHMsIFxcdTAwMjZyZWFkX3NoYWRvd19yYW0sIFxcdTAwMjZudm1fc2l6ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy01OS1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy03Ni1cXHRcXHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjc3OlxcdFxcdGVyciA9IGl4Z2JlX2FjcXVpcmVfbnZtKGh3LCBMSUJJRV9BUUNfUkVTX0FDQ0VTU19SRUFEKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTc4LVxcdFxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtODQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzo4NTpcXHRcXHRlcnIgPSBpeGdiZV9yZWFkX2ZsYXRfbnZtKGh3LCBpICogSVhHQkVfREVWTElOS19SRUFEX0JMS19TSVpFLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtODYtXFx0XFx0XFx0XFx0XFx0ICBcXHUwMDI2cmVhZF9zeiwgYnVmLCByZWFkX3NoYWRvd19yYW0pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy04OS1cXHRcXHRcXHRcXHRcXHQgICBcXFwiRmFpbGVkIHRvIHJlYWQgUkFNIGNvbnRlbnRcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjkwOlxcdFxcdFxcdGl4Z2JlX3JlbGVhc2VfbnZtKGh3KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTkxLVxcdFxcdFxcdGt2ZnJlZShudm1fZGF0YSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTk0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6OTU6XFx0XFx0aXhnYmVfcmVsZWFzZV9udm0oaHcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtOTYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTEwNS0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjEwNjogKiBpeGdiZV9kZXZsaW5rX2RldmNhcHNfc25hcHNob3QgLSBDYXB0dXJlIGEgc25hcHNob3Qgb2YgZGV2aWNlIGNhcGFiaWxpdGllc1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTA3LSAqIEBkZXZsaW5rOiB0aGUgZGV2bGluayBpbnN0YW5jZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xMjEtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxMjI6c3RhdGljIGludCBpeGdiZV9kZXZsaW5rX2RldmNhcHNfc25hcHNob3Qoc3RydWN0IGRldmxpbmsgKmRldmxpbmssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xMjMtXFx0XFx0XFx0XFx0XFx0ICBjb25zdCBzdHJ1Y3QgZGV2bGlua19yZWdpb25fb3BzICpvcHMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTEyNi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxMjc6XFx0c3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIgPSBkZXZsaW5rX3ByaXYoZGV2bGluayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxMjg6XFx0c3RydWN0IGl4Z2JlX2FjaV9jbWRfbGlzdF9jYXBzX2VsZW0gKmNhcHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxMjk6XFx0c3RydWN0IGl4Z2JlX2h3ICpodyA9IFxcdTAwMjZhZGFwdGVyLVxcdTAwM2VodztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTEzMC1cXHRpbnQgZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xMzUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxMzY6XFx0ZXJyID0gaXhnYmVfYWNpX2xpc3RfY2FwcyhodywgY2FwcywgSVhHQkVfQUNJX01BWF9CVUZGRVJfU0laRSwgTlVMTCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjEzNzpcXHRcXHRcXHRcXHQgIGl4Z2JlX2FjaV9vcGNfbGlzdF9kZXZfY2Fwcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xMzgtXFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xNDktLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxNTA6ICogaXhnYmVfZGV2bGlua19udm1fcmVhZCAtIFJlYWQgYSBwb3J0aW9uIG9mIE5WTSBmbGFzaCBjb250ZW50XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xNTEtICogQGRldmxpbms6IHRoZSBkZXZsaW5rIGluc3RhbmNlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTE2Ni0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjE2NzpzdGF0aWMgaW50IGl4Z2JlX2RldmxpbmtfbnZtX3JlYWQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xNjgtXFx0XFx0XFx0XFx0ICBjb25zdCBzdHJ1Y3QgZGV2bGlua19yZWdpb25fb3BzICpvcHMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTE3MS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxNzI6XFx0c3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIgPSBkZXZsaW5rX3ByaXYoZGV2bGluayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoxNzM6XFx0c3RydWN0IGl4Z2JlX2h3ICpodyA9IFxcdTAwMjZhZGFwdGVyLVxcdTAwM2VodztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTE3NC1cXHRib29sIHJlYWRfc2hhZG93X3JhbTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTc3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MTc4OlxcdGVyciA9IGl4Z2JlX2RldmxpbmtfcGFyc2VfcmVnaW9uKGh3LCBvcHMsIFxcdTAwMjZyZWFkX3NoYWRvd19yYW0sIFxcdTAwMjZudm1fc2l6ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xNzktXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTg2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MTg3OlxcdGVyciA9IGl4Z2JlX2FjcXVpcmVfbnZtKGh3LCBMSUJJRV9BUUNfUkVTX0FDQ0VTU19SRUFEKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTE4OC1cXHRpZiAoZXJyKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTE5Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjE5MzpcXHRlcnIgPSBpeGdiZV9yZWFkX2ZsYXRfbnZtKGh3LCAodTMyKW9mZnNldCwgXFx1MDAyNnNpemUsIGRhdGEsIHJlYWRfc2hhZG93X3JhbSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xOTQtXFx0aWYgKGVycikge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMTk1LVxcdFxcdE5MX1NFVF9FUlJfTVNHX01PRChleHRhY2ssIFxcXCJGYWlsZWQgdG8gcmVhZCBOVk0gY29udGVudHNcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjE5NjpcXHRcXHRpeGdiZV9yZWxlYXNlX252bShodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0xOTctXFx0XFx0cmV0dXJuIC1FSU87XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTE5OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjIwMDpcXHRpeGdiZV9yZWxlYXNlX252bShodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0yMDEtXFx0cmV0dXJuIDA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIwMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjIwNDpzdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfcmVnaW9uX29wcyBpeGdiZV9udm1fcmVnaW9uX29wcyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIwNS1cXHQubmFtZSA9IFxcXCJudm0tZmxhc2hcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjA2LVxcdC5kZXN0cnVjdG9yID0ga3ZmcmVlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MjA3OlxcdC5zbmFwc2hvdCA9IGl4Z2JlX2RldmxpbmtfbnZtX3NuYXBzaG90LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MjA4OlxcdC5yZWFkID0gaXhnYmVfZGV2bGlua19udm1fcmVhZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIwOS19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MjExOnN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2bGlua19yZWdpb25fb3BzIGl4Z2JlX3NyYW1fcmVnaW9uX29wcyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIxMi1cXHQubmFtZSA9IFxcXCJzaGFkb3ctcmFtXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIxMy1cXHQuZGVzdHJ1Y3RvciA9IGt2ZnJlZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjIxNDpcXHQuc25hcHNob3QgPSBpeGdiZV9kZXZsaW5rX252bV9zbmFwc2hvdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjIxNTpcXHQucmVhZCA9IGl4Z2JlX2RldmxpbmtfbnZtX3JlYWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0yMTYtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIxNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjIxODpzdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfcmVnaW9uX29wcyBpeGdiZV9kZXZjYXBzX3JlZ2lvbl9vcHMgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0yMTktXFx0Lm5hbWUgPSBcXFwiZGV2aWNlLWNhcHNcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjIwLVxcdC5kZXN0cnVjdG9yID0ga3ZmcmVlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MjIxOlxcdC5zbmFwc2hvdCA9IGl4Z2JlX2RldmxpbmtfZGV2Y2Fwc19zbmFwc2hvdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIyMi19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0yMjQtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoyMjU6ICogaXhnYmVfZGV2bGlua19pbml0X3JlZ2lvbnMgLSBJbml0aWFsaXplIGRldmxpbmsgcmVnaW9uc1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjI2LSAqIEBhZGFwdGVyOiBhZGFwdGVyIGluc3RhbmNlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIzMC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jOjIzMTp2b2lkIGl4Z2JlX2RldmxpbmtfaW5pdF9yZWdpb25zKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjMyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjM2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MjM3OlxcdGlmIChhZGFwdGVyLVxcdTAwM2Vody5tYWMudHlwZSAhPSBpeGdiZV9tYWNfZTYxMClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTIzOC1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTI0MC1cXHRudm1fc2l6ZSA9IGFkYXB0ZXItXFx1MDAzZWh3LmZsYXNoLmZsYXNoX3NpemU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoyNDE6XFx0YWRhcHRlci1cXHUwMDNlbnZtX3JlZ2lvbiA9IGRldmxfcmVnaW9uX2NyZWF0ZShkZXZsaW5rLCBcXHUwMDI2aXhnYmVfbnZtX3JlZ2lvbl9vcHMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYy0yNDItXFx0XFx0XFx0XFx0XFx0XFx0IDEsIG52bV9zaXplKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmMtMjUwLVxcdHNyYW1fc2l6ZSA9IGFkYXB0ZXItXFx1MDAzZWh3LmZsYXNoLnNyX3dvcmRzICogMnU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvZGV2bGluay9yZWdpb24uYzoyNTE6XFx0YWRhcHRlci1cXHUwMDNlc3JhbV9yZWdpb24gPSBkZXZsX3JlZ2lvbl9jcmVhdGUoZGV2bGluaywgXFx1MDAyNml4Z2JlX3NyYW1fcmVnaW9uX29wcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTI1Mi1cXHRcXHRcXHRcXHRcXHRcXHQgIDEsIHNyYW1fc2l6ZSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTI2MC1cXHRhZGFwdGVyLVxcdTAwM2VkZXZjYXBzX3JlZ2lvbiA9IGRldmxfcmVnaW9uX2NyZWF0ZShkZXZsaW5rLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2RldmxpbmsvcmVnaW9uLmM6MjYxOlxcdFxcdFxcdFxcdFxcdFxcdCAgICAgXFx1MDAyNml4Z2JlX2RldmNhcHNfcmVnaW9uX29wcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9kZXZsaW5rL3JlZ2lvbi5jLTI2Mi1cXHRcXHRcXHRcXHRcXHRcXHQgICAgIDEwLCBJWEdCRV9BQ0lfTUFYX0JVRkZFUl9TSVpFKTtcXG4tLVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQxNjozMDo1My4zNzcyNDQ3NjJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuOC1mbGFzaCIsIkR1cmF0aW9uIjoxMjM2NzgyOTgwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCdzIFdvcnRoaW5lc3MgZm9yIEZ1enppbmcqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGBpeGdiZWAgKmlzKiDigJMgcmlnaHQsIGl0J3MgdGhlIEludGVsIDEwIEdpZ2FiaXQgUENJIEV4cHJlc3MgTmV0d29yayBEcml2ZXIuIFRoaW5rIDgyNTk4LCA4MjU5OSwgdGhvc2Ugc29ydHMgb2YgY2FyZHMuIE5vdywgdGhlIGNyaXRpY2FsIHF1ZXN0aW9uOiBkb2VzIFFFTVUgZXZlbiAqZW11bGF0ZSogYGl4Z2JlYD8gSSBuZWVkIHRvIGtub3cgUUVNVSdzIHN1cHBvcnRlZCBuZXR3b3JrIGFkYXB0ZXJzLi4uIGxldCBtZSBzZWUuLi4gZTEwMDAsIGUxMDAwZSwgaWdiLCBhbmQgYSBidW5jaCBvZiBvdGhlcnMuLi4gYnV0ICpubyogYGl4Z2JlYC5cblxuSG9sZCBvbi4uLiBJICp0aG91Z2h0KiBRRU1VIGRpZG4ndCBoYXZlIGl0LCBidXQgSSdkIGJldHRlciBiZSBzdXJlLiBMZXQgbWUgZG91YmxlIGNoZWNrIHRob3NlIG5lZ2F0aXZlIGNyaXRlcmlhIGZyb20gc2VjdGlvbiAyIG9mIHRoZSBpbnN0cnVjdGlvbnMuIEFoYSwgaXQgc2F5cyBcIlN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZTogKiBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVVcIi4gVGhhdCBzb3VuZHMgbGlrZSBhIG1hdGNoLlxuXG5SaWdodCwgc28gbGV0J3Mgc2VlIHdoYXQgKmV4YWN0bHkqIHRoaXMgcGF0Y2ggaGFzIG1vZGlmaWVkLiBHb2luZyB0aHJvdWdoIHRoZSBkaWZmcywgaXQgbG9va3MgbGlrZSBpdCdzIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmNgLCBgaXhnYmVfc3Jpb3YuY2AsIGFuZCBgaXhnYmVfc3Jpb3YuaGAuIFNwZWNpZmljYWxseSwgdGhleSd2ZSByZW1vdmVkIGNhbGxzIHRvIGFuZCBkZWZpbml0aW9ucyBvZiBhIGZ1bmN0aW9uIGNhbGxlZCBgaXhnYmVfcGluZ19hbGxfdmZzYC5cblxuVGhlIGtleSBoZXJlIGlzIHRoYXQgYGl4Z2JlYCAqaXMqIGEgZHJpdmVyIGZvciBwaHlzaWNhbCBJbnRlbChSKSAxMEdiRSBuZXR3b3JrIGhhcmR3YXJlLiBHaXZlbiB0aGF0LCBjYW4gdGhlIHByb2JlIGZ1bmN0aW9uLCBgaXhnYmVfcHJvYmVgLCBiZSB0cmlnZ2VyZWQgd2l0aG91dCBwaHlzaWNhbCBoYXJkd2FyZSBiZWluZyBwcmVzZW50PyBUaGF0IGlzIHRoZSBkZWZpbmluZyBxdWVzdGlvbiwgaGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjAwMDcsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1ODUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMTY6MzE6MDUuNzQ1MDc3OTA5WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ3NzQ0MzkwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIml4Z2JlX3Byb2JlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYz0xMTQ5Mj1zdGF0aWMgaW50IGl4Z2JlX3JlY292ZXJ5X3Byb2JlKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jLTExNTMyLS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYzoxMTUzMzogKiBpeGdiZV9wcm9iZSAtIERldmljZSBJbml0aWFsaXphdGlvbiBSb3V0aW5lXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jLTExNTM0LSAqIEBwZGV2OiBQQ0kgZGV2aWNlIGluZm9ybWF0aW9uIHN0cnVjdFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jLTExNTM4LSAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jOjExNTM5OiAqIGl4Z2JlX3Byb2JlIGluaXRpYWxpemVzIGFuIGFkYXB0ZXIgaWRlbnRpZmllZCBieSBhIHBjaV9kZXYgc3RydWN0dXJlLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYy0xMTU0MC0gKiBUaGUgT1MgaW5pdGlhbGl6YXRpb24sIGNvbmZpZ3VyaW5nIG9mIHRoZSBhZGFwdGVyIHByaXZhdGUgc3RydWN0dXJlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jLTExNTQyLSAqKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmM6MTE1NDM6c3RhdGljIGludCBpeGdiZV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMtMTE1NDQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jPTEyMzcyPXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBpeGdiZV9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMtMTIzNzQtXFx0LmlkX3RhYmxlICA9IGl4Z2JlX3BjaV90YmwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jOjEyMzc1OlxcdC5wcm9iZSAgICAgPSBpeGdiZV9wcm9iZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMtMTIzNzYtXFx0LnJlbW92ZSAgICA9IGl4Z2JlX3JlbW92ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3BoeS5jPTE2Nj1pbnQgaXhnYmVfd3JpdGVfaTJjX2NvbWJpbmVkX2dlbmVyaWNfaW50KHN0cnVjdCBpeGdiZV9odyAqaHcsIHU4IGFkZHIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYy0yMjEtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfcGh5LmM6MjIyOiAqICBpeGdiZV9wcm9iZV9waHkgLSBQcm9iZSBhIHNpbmdsZSBhZGRyZXNzIGZvciBhIFBIWVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3BoeS5jLTIyMy0gKiAgQGh3OiBwb2ludGVyIHRvIGhhcmR3YXJlIHN0cnVjdHVyZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfcGh5LmMtMjI3LSAqKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYzoyMjg6c3RhdGljIGJvb2wgaXhnYmVfcHJvYmVfcGh5KHN0cnVjdCBpeGdiZV9odyAqaHcsIHUxNiBwaHlfYWRkcilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYy0yMjkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfcGh5LmM9MjYzPWludCBpeGdiZV9pZGVudGlmeV9waHlfZ2VuZXJpYyhzdHJ1Y3QgaXhnYmVfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfcGh5LmMtMjgwLVxcdFxcdFxcdFxcdCAgICAgaHctXFx1MDAzZXBoeS5ud19tbmdfaWZfc2VsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYzoyODE6XFx0XFx0aWYgKGl4Z2JlX3Byb2JlX3BoeShodywgcGh5X2FkZHIpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3BoeS5jLTI4Mi1cXHRcXHRcXHRyZXR1cm4gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3BoeS5jLTI4Ny1cXHRmb3IgKHBoeV9hZGRyID0gMDsgcGh5X2FkZHIgXFx1MDAzYyBJWEdCRV9NQVhfUEhZX0FERFI7IHBoeV9hZGRyKyspIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYzoyODg6XFx0XFx0aWYgKGl4Z2JlX3Byb2JlX3BoeShodywgcGh5X2FkZHIpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfcGh5LmMtMjg5LVxcdFxcdFxcdHN0YXR1cyA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9waHkuYz0xMDI2PWludCBpeGdiZV9taWlfYnVzX2luaXQoc3RydWN0IGl4Z2JlX2h3ICpodylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3BoeS5jLTEwODEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfcGh5LmM6MTA4MjpcXHQvKiBTdXBwb3J0IGNsYXVzZSAyMi80NSBuYXRpdmVseS4gIGl4Z2JlX3Byb2JlKCkgc2V0cyBNRElPX0VNVUxBVEVfQzIyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfcGh5LmMtMTA4My1cXHQgKiB1bmZvcnR1bmF0ZWx5IHRoYXQgY2F1c2VzIHNvbWUgY2xhdXNlIDIyIGZyYW1lcyB0byBiZSBzZW50IHdpdGhcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMTY6MzE6MDUuNzkyODI3NDk4WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6MzU3ODY5MDUyMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3M6XG5cbioqRGl2aW5nIGludG8gRGV2aWNlIE1hdGNoaW5nKipcblxuQWxyaWdodCwgdGltZSB0byBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgZHJpdmVyIGlzIGlkZW50aWZ5aW5nIGFuZCB3b3JraW5nIHdpdGggc3BlY2lmaWMgaGFyZHdhcmUuIFRoZSBmaXJzdCBwbGFjZSBJJ20gZ29pbmcgdG8gbG9vayBpcyB0aGUgYGl4Z2JlX3BjaV90YmxgLiBJIGV4cGVjdCB0aGlzIHRvIGJlIHRoZSBwcmltYXJ5IGxvb2t1cCB0YWJsZSwgdGhlIGRlZmluaXRpdmUgbGlzdCB0aGF0IG1hcHMgUENJIGRldmljZSBJRHMgdG8gdGhpcyBwYXJ0aWN1bGFyIGl4Z2JlIGRyaXZlci4gVGhpcyB0YWJsZSBpcyB0aGUgY29ybmVyc3RvbmU7IGl0IHNob3VsZCByZXZlYWwgdGhlIGV4YWN0IGRldmljZXMgdGhpcyBtb2R1bGUgaXMgZGVzaWduZWQgdG8gc3VwcG9ydCwgYW5kIGhvdyBpdCBkaWZmZXJlbnRpYXRlcyB0aGVtLiBMZXQncyBzZWUgd2hhdCBkZXZpY2VzIGFyZSBsaXN0ZWQsIGFuZCBob3cgdGhlIGRyaXZlciBkZXRlcm1pbmVzIGEgbWF0Y2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyMzU3LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMTY6MzE6MDkuMzcxNTIxWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2NzAwODA5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIml4Z2JlX3BjaV90YmxcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jPTcwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaXhnYmVfaW5mbyAqaXhnYmVfaW5mb190YmxbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYy04MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmM6ODI6LyogaXhnYmVfcGNpX3RibCAtIFBDSSBEZXZpY2UgSUQgVGFibGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMtODMtICpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYy04OS0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmM6OTA6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGl4Z2JlX3BjaV90YmxbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMtOTEtXFx0eyBQQ0lfVkRFVklDRShJTlRFTCwgSVhHQkVfREVWX0lEXzgyNTk4KSwgLmRyaXZlcl9kYXRhID0gYm9hcmRfODI1OTggfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYy0xNDUtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmM6MTQ2Ok1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBpeGdiZV9wY2lfdGJsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMtMTQ3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jPTExNDkyPXN0YXRpYyBpbnQgaXhnYmVfcmVjb3ZlcnlfcHJvYmUoc3RydWN0IGl4Z2JlX2FkYXB0ZXIgKmFkYXB0ZXIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMtMTE1MzQtICogQHBkZXY6IFBDSSBkZXZpY2UgaW5mb3JtYXRpb24gc3RydWN0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jOjExNTM1OiAqIEBlbnQ6IGVudHJ5IGluIGl4Z2JlX3BjaV90YmxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMtMTE1MzYtICpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYz0xMjM3Mj1zdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgaXhnYmVfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYy0xMjM3My1cXHQubmFtZSAgICAgID0gaXhnYmVfZHJpdmVyX25hbWUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jOjEyMzc0OlxcdC5pZF90YWJsZSAgPSBpeGdiZV9wY2lfdGJsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYy0xMjM3NS1cXHQucHJvYmUgICAgID0gaXhnYmVfcHJvYmUsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE1VDE2OjMxOjA5LjQxODIyNzg5OVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjY0MTU1MzY1NjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqV29ydGhGdXp6aW5nIEV2YWx1YXRpb246IGl4Z2JlIERyaXZlciBNb2RpZmljYXRpb25zKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBXZSdyZSBsb29raW5nIGF0IGNoYW5nZXMgdG8gdGhlIGBpeGdiZWAgZHJpdmVyLCBzcGVjaWZpY2FsbHkgYGl4Z2JlX3dhdGNoZG9nX2xpbmtfaXNfdXBgLCBgaXhnYmVfd2F0Y2hkb2dfbGlua19pc19kb3duYCwgYW5kIGBpeGdiZV9waW5nX2FsbF92ZnNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIFwiaXhnYmUuLi4gSW50ZWwgMTBHYkUgbmV0d29yayBjYXJkcy5cIiBSaWdodCBhd2F5LCBJIGtub3cgdGhpcyBpcyBhIFBDSSBkcml2ZXIuIFRoZSBxdWVzdGlvbiB0aGVuIGJlY29tZXMsIGFyZSB0aGVzZSBkZXZpY2VzIGVtdWxhdGVkIGluIGEgdHlwaWNhbCBmdXp6aW5nIGVudmlyb25tZW50IGxpa2UgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmUgKEdDRSk/IFRoZSBhbnN3ZXIgaXMgYSBkZWZpbml0aXZlIFwibm8uXCIgU3RhbmRhcmQgUUVNVSBkb2Vzbid0IGVtdWxhdGUgaXhnYmUgTklDcy4gSXQgZW11bGF0ZXMgZTEwMDAsIGUxMDAwZSwgYW5kIGlnYiwgYnV0IG5vdCBpeGdiZS4gVGhleSBhcmVuJ3QgcHJlc2VudCBpbiBzdGFuZGFyZCBzeXprYWxsZXIgZW52aXJvbm1lbnRzLlxuXG5XZSBuZWVkIHRvIGNvbnNpZGVyIHRoZSBuZWdhdGl2ZSBjcml0ZXJpYSBmb3IgV29ydGhGdXp6aW5nOiBcIlN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZS4uLiByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlwiIFRoaXMgYWJzb2x1dGVseSBhcHBsaWVzIGhlcmUuIFRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZmluZCBjcmFzaGVzIGluICpyZWFjaGFibGUqIGNvZGUuIFNpbmNlIHRoZSBtb2RpZmllZCBjb2RlIHdpdGhpbiBgaXhnYmVgIGRlcGVuZHMgb24gcGh5c2ljYWwgMTBHYkUgaGFyZHdhcmUsIHdoaWNoIGlzICpub3QqIGVtdWxhdGVkLCBpdCdzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cblxuTm93LCBjb3VsZCB0aGVyZSBiZSBzb21lIG90aGVyIHdheSB0byBpbnN0YW50aWF0ZSBgaXhnYmVgIHZpcnR1YWxseT8gTWF5YmUgU1ItSU9WPyBBaCwgeWVzLCB0aGVyZSBpcyB0aGUgYGl4Z2JldmZgIGRyaXZlciBmb3IgVmlydHVhbCBGdW5jdGlvbnMuIEhvd2V2ZXIsIGBpeGdiZXZmYCBzdGlsbCByZWxpZXMgb24gZWl0aGVyIGEgcGh5c2ljYWwgZnVuY3Rpb24gb3IgdGhlIGVtdWxhdGVkIFNSLUlPViBWRiBoYXJkd2FyZSwgd2hpY2ggUUVNVSBhbHNvIGRvZXNuJ3QgcHJvdmlkZSBmb3IgaXhnYmUuXG5cblRoZXJlZm9yZSwgdGhlIG1vZGlmaWNhdGlvbnMgYXJlIHdpdGhpbiBgaXhnYmVgLCBhIFBDSSBkcml2ZXIgZm9yIHBoeXNpY2FsIEludGVsIDEwR2JFIGFkYXB0ZXJzLiBUaGlzIGNvbmZpcm1zIG15IGFzc2Vzc21lbnQ6IHRoZSBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy4gVGhlcmUncyBubyB3YXkgc3l6a2FsbGVyIGNhbiB0cmlnZ2VyIHRoZXNlIGNvZGUgcGF0aHMgd2l0aG91dCB0aGF0IHBoeXNpY2FsIGhhcmR3YXJlLlxuXG5TbywgbGV0J3MgY2hlY2sgZm9yIGFueSBjb25maWdzIG9yIGZvY3VzIHN5bWJvbHMgd2UgbmVlZCB0byBjb25zaWRlci4gTm9wZSwgbm90aGluZy4gV2hlbiBXb3J0aEZ1enppbmcgaXMgZmFsc2UsIHdlIHNob3VsZCBoYXZlIGVtcHR5IGFycmF5cyBmb3IgYEVuYWJsZUNvbmZpZ3NgIGFuZCBgRm9jdXNTeW1ib2xzYCwgYW5kIGEgY2xlYXIgZXhwbGFuYXRpb24uXG5cblRoZSByZWFzb25pbmcgaXMgc3RyYWlnaHRmb3J3YXJkOiBUaGUgY2hhbmdlcyBhcmUgdG8gdGhlIEludGVsIDEwR2JFIG5ldHdvcmsgZHJpdmVyIChgaXhnYmVgKS4gVGhleSBhcmUgcmVsYXRlZCB0byB3YXRjaGRvZyBsaW5rIHN0YXRlIGhhbmRsZXJzIGFuZCBTUi1JT1Ygc3VwcG9ydC4gSG93ZXZlciwgYGl4Z2JlYCBkcml2ZXMgKnBoeXNpY2FsKiBQQ0kgZGV2aWNlcyAoODI1OTgsIDgyNTk5LCBYNTQwLCBYNTUwLCBFNjEwKSwgd2hpY2ggYXJlIG5vdCBlbXVsYXRlZCBpbiBRRU1VIG9yIEdDRS4gVGhpcyBtZWFucyB0aGUgY29kZSBpcyB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cblxuQWxyaWdodCwgdGhhdCdzIHNvbGlkLiBUaW1lIHRvIGNhbGwgYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjMyNjEsIk91dHB1dFRva2VucyI6MTQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTAwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE1VDE2OjMxOjE1LjgzMzc2NzcxNFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1MjUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBJbnRlbCAxMEdiRSBQQ0kgZHJpdmVyIChpeGdiZSksIHNwZWNpZmljYWxseSByZW1vdmluZyB0aGUgaXhnYmVfcGluZ19hbGxfdmZzKCkgZnVuY3Rpb24gYW5kIGl0cyBjYWxscyBpbiB0aGUgbGluayB3YXRjaGRvZyBoYW5kbGVycy4gVGhlIGl4Z2JlIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBJbnRlbCAxMCBHaWdhYml0IEV0aGVybmV0IGhhcmR3YXJlIChzdWNoIGFzIDgyNTk4LCA4MjU5OSwgWDU0MCwgWDU1MCkgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy4gQXMgc3VjaCwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBzeXprYWxsZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgSW50ZWwgMTBHYkUgUENJIGRyaXZlciAoaXhnYmUpLCBzcGVjaWZpY2FsbHkgcmVtb3ZpbmcgdGhlIGl4Z2JlX3BpbmdfYWxsX3ZmcygpIGZ1bmN0aW9uIGFuZCBpdHMgY2FsbHMgaW4gdGhlIGxpbmsgd2F0Y2hkb2cgaGFuZGxlcnMuIFRoZSBpeGdiZSBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgSW50ZWwgMTAgR2lnYWJpdCBFdGhlcm5ldCBoYXJkd2FyZSAoc3VjaCBhcyA4MjU5OCwgODI1OTksIFg1NDAsIFg1NTApIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuIEFzIHN1Y2gsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3Igc3l6a2FsbGVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMTY6MzE6MTUuODMzODA1MTM0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowhwd2m[1] Phase: Running StartedAt: 2026-09-15 16:31:27 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhwd2m[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-15 16:31:27 +0000 UTC FinishedAt: 2026-09-15 16:31:32 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}