Name: series-workflow2hvfm Phase: Running StartedAt: 2026-06-22 04:42:55 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2hvfm[0] Phase: Running StartedAt: 2026-06-22 04:42:55 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2hvfm[0].run-triage Phase: Running StartedAt: 2026-06-22 04:42:55 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2hvfm[0].run-triage(0) Phase: Running StartedAt: 2026-06-22 04:42:55 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIyIDA0OjQ5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgb2FfdGM2YCAoT1BFTiBBbGxpYW5jZSAxMEJBU0UtVDF4IE1BQy1QSFkgU2VyaWFsIEludGVyZmFjZSkgZnJhbWV3b3JrLCB3aGljaCBpcyBjdXJyZW50bHkgb25seSB1c2VkIGJ5IHRoZSBgbGFuODY1eGAgU1BJIG5ldHdvcmsgZHJpdmVyLiBTaW5jZSBgbGFuODY1eGAgaXMgYW4gU1BJIGRldmljZSwgaXQgcmVxdWlyZXMgc3BlY2lmaWMgaGFyZHdhcmUgaW5zdGFudGlhdGlvbiAoZS5nLiwgdmlhIERldmljZSBUcmVlIG9yIEFDUEkpIGFuZCBjYW5ub3QgYmUgZHluYW1pY2FsbHkgaW5zdGFudGlhdGVkIGZyb20gdXNlcnNwYWNlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBRRU1VL0dDRSkgdXNlZCBieSBzeXprYWxsZXIuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgZm9yIHRoZSBmdXp6ZXIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIyIDA0OjQ5PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgM2JiZGRlMWE2NDhiYWZlMDI2ZjlhMzY3YTlhZDIyY2RkZWRhNjM2OVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVuIDIyIDA0OjQ5OjMzIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmNcbmluZGV4IDA3MjdkNTMzNDVhMzNiLi4xODBmYzQ3YzMwYjMxZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuY1xuQEAgLTY3MiwxMCAmIzQzOzY3MiwxNiBAQCBzdGF0aWMgdm9pZCBvYV90YzZfY2xlYW51cF9vbmdvaW5nX3R4X3NrYihzdHJ1Y3Qgb2FfdGM2ICp0YzYpXG4gXG4gc3RhdGljIHZvaWQgb2FfdGM2X2NsZWFudXBfd2FpdGluZ190eF9za2Ioc3RydWN0IG9hX3RjNiAqdGM2KVxuIHtcbi1cdGlmICh0YzYtXHUwMDNld2FpdGluZ190eF9za2IpIHtcbiYjNDM7XHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xuJiM0MztcbiYjNDM7XHRzcGluX2xvY2tfYmgoXHUwMDI2dGM2LVx1MDAzZXR4X3NrYl9sb2NrKTtcbiYjNDM7XHRza2IgPSB0YzYtXHUwMDNld2FpdGluZ190eF9za2I7XG4mIzQzO1x0dGM2LVx1MDAzZXdhaXRpbmdfdHhfc2tiID0gTlVMTDtcbiYjNDM7XHRzcGluX3VubG9ja19iaChcdTAwMjZ0YzYtXHUwMDNldHhfc2tiX2xvY2spO1xuJiM0MztcbiYjNDM7XHRpZiAoc2tiKSB7XG4gXHRcdHRjNi1cdTAwM2VuZXRkZXYtXHUwMDNlc3RhdHMudHhfZHJvcHBlZCYjNDM7JiM0Mzs7XG4tXHRcdGtmcmVlX3NrYih0YzYtXHUwMDNld2FpdGluZ190eF9za2IpO1xuLVx0XHR0YzYtXHUwMDNld2FpdGluZ190eF9za2IgPSBOVUxMO1xuJiM0MztcdFx0a2ZyZWVfc2tiKHNrYik7XG4gXHR9XG4gfVxuIFxuQEAgLTY4Niw2ICYjNDM7NjkyLDEyIEBAIHN0YXRpYyB2b2lkIG9hX3RjNl9mcmVlX3BlbmRpbmdfc2ticyhzdHJ1Y3Qgb2FfdGM2ICp0YzYpXG4gXHRvYV90YzZfY2xlYW51cF93YWl0aW5nX3R4X3NrYih0YzYpO1xuIH1cbiBcbiYjNDM7c3RhdGljIHZvaWQgb2FfdGM2X2xvb2tfZm9yX25ld19mcmFtZShzdHJ1Y3Qgb2FfdGM2ICp0YzYpXG4mIzQzO3tcbiYjNDM7XHR0YzYtXHUwMDNlcnhfYnVmX292ZXJmbG93ID0gdHJ1ZTtcbiYjNDM7XHRvYV90YzZfY2xlYW51cF9vbmdvaW5nX3J4X3NrYih0YzYpO1xuJiM0Mzt9XG4mIzQzO1xuIC8qIElmIHRoZSBmYWlsdXJlIGlzIGF0IFNQSSBpbnRlcmZhY2UgbGV2ZWwsIG1hc2tpbmcgYW5kIGNsZWFyaW5nXG4gICogdGhlIGludGVycnVwdCBvZiB0aGUgZGV2aWNlIHdvbiYjMzk7dCB3b3JrLiBTaW5jZSBTUEkgaW50ZXJydXB0IGlzXG4gICogZGlzYWJsZWQsIGl0IHNob3VsZCBzdG9wIHRoZSByZXBlYXRlZCBpbnRlcnJ1cHRzLlxuQEAgLTcyMyw4ICYjNDM7NzM1LDcgQEAgc3RhdGljIGludCBvYV90YzZfcHJvY2Vzc19leHRlbmRlZF9zdGF0dXMoc3RydWN0IG9hX3RjNiAqdGM2KVxuIFx0fVxuIFxuIFx0aWYgKEZJRUxEX0dFVChTVEFUVVMwX1JYX0JVRkZFUl9PVkVSRkxPV19FUlJPUiwgdmFsdWUpKSB7XG4tXHRcdHRjNi1cdTAwM2VyeF9idWZfb3ZlcmZsb3cgPSB0cnVlO1xuLVx0XHRvYV90YzZfY2xlYW51cF9vbmdvaW5nX3J4X3NrYih0YzYpO1xuJiM0MztcdFx0b2FfdGM2X2xvb2tfZm9yX25ld19mcmFtZSh0YzYpO1xuIFx0XHRuZXRfZXJyX3JhdGVsaW1pdGVkKFwmIzM0OyVzOiBSZWNlaXZlIGJ1ZmZlciBvdmVyZmxvdyBlcnJvclxcblwmIzM0OyxcbiBcdFx0XHRcdCAgICB0YzYtXHUwMDNlbmV0ZGV2LVx1MDAzZW5hbWUpO1xuIFx0XHRyZXR1cm4gLUVBR0FJTjtcbkBAIC04MDUsOSAmIzQzOzgxNiwxNSBAQCBzdGF0aWMgdm9pZCBvYV90YzZfc3VibWl0X3J4X3NrYihzdHJ1Y3Qgb2FfdGM2ICp0YzYpXG4gXHR0YzYtXHUwMDNlcnhfc2tiID0gTlVMTDtcbiB9XG4gXG4tc3RhdGljIHZvaWQgb2FfdGM2X3VwZGF0ZV9yeF9za2Ioc3RydWN0IG9hX3RjNiAqdGM2LCB1OCAqcGF5bG9hZCwgdTggbGVuZ3RoKVxuJiM0MztzdGF0aWMgaW50IG9hX3RjNl91cGRhdGVfcnhfc2tiKHN0cnVjdCBvYV90YzYgKnRjNiwgdTggKnBheWxvYWQsIHU4IGxlbmd0aClcbiB7XG4mIzQzO1x0aWYgKCh0YzYtXHUwMDNlcnhfc2tiLVx1MDAzZXRhaWwgJiM0MzsgbGVuZ3RoKSBcdTAwM2UgdGM2LVx1MDAzZXJ4X3NrYi1cdTAwM2VlbmQpIHtcbiYjNDM7XHRcdG9hX3RjNl9sb29rX2Zvcl9uZXdfZnJhbWUodGM2KTtcbiYjNDM7XHRcdHJldHVybiAtRUFHQUlOO1xuJiM0MztcdH1cbiYjNDM7XG4gXHRtZW1jcHkoc2tiX3B1dCh0YzYtXHUwMDNlcnhfc2tiLCBsZW5ndGgpLCBwYXlsb2FkLCBsZW5ndGgpO1xuJiM0MztcdHJldHVybiAwO1xuIH1cbiBcbiBzdGF0aWMgaW50IG9hX3RjNl9hbGxvY2F0ZV9yeF9za2Ioc3RydWN0IG9hX3RjNiAqdGM2KVxuQEAgLTgzMSw3ICYjNDM7ODQ4LDkgQEAgc3RhdGljIGludCBvYV90YzZfcHJjc19jb21wbGV0ZV9yeF9mcmFtZShzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHU4ICpwYXlsb2FkLFxuIFx0aWYgKHJldClcbiBcdFx0cmV0dXJuIHJldDtcbiBcbi1cdG9hX3RjNl91cGRhdGVfcnhfc2tiKHRjNiwgcGF5bG9hZCwgc2l6ZSk7XG4mIzQzO1x0cmV0ID0gb2FfdGM2X3VwZGF0ZV9yeF9za2IodGM2LCBwYXlsb2FkLCBzaXplKTtcbiYjNDM7XHRpZiAocmV0KVxuJiM0MztcdFx0cmV0dXJuIHJldDtcbiBcbiBcdG9hX3RjNl9zdWJtaXRfcnhfc2tiKHRjNik7XG4gXG5AQCAtODQ2LDIyICYjNDM7ODY1LDI0IEBAIHN0YXRpYyBpbnQgb2FfdGM2X3ByY3NfcnhfZnJhbWVfc3RhcnQoc3RydWN0IG9hX3RjNiAqdGM2LCB1OCAqcGF5bG9hZCwgdTE2IHNpemUpXG4gXHRpZiAocmV0KVxuIFx0XHRyZXR1cm4gcmV0O1xuIFxuLVx0b2FfdGM2X3VwZGF0ZV9yeF9za2IodGM2LCBwYXlsb2FkLCBzaXplKTtcbi1cbi1cdHJldHVybiAwO1xuJiM0MztcdHJldHVybiBvYV90YzZfdXBkYXRlX3J4X3NrYih0YzYsIHBheWxvYWQsIHNpemUpO1xuIH1cbiBcbi1zdGF0aWMgdm9pZCBvYV90YzZfcHJjc19yeF9mcmFtZV9lbmQoc3RydWN0IG9hX3RjNiAqdGM2LCB1OCAqcGF5bG9hZCwgdTE2IHNpemUpXG4mIzQzO3N0YXRpYyBpbnQgb2FfdGM2X3ByY3NfcnhfZnJhbWVfZW5kKHN0cnVjdCBvYV90YzYgKnRjNiwgdTggKnBheWxvYWQsIHUxNiBzaXplKVxuIHtcbi1cdG9hX3RjNl91cGRhdGVfcnhfc2tiKHRjNiwgcGF5bG9hZCwgc2l6ZSk7XG4mIzQzO1x0aW50IHJldDtcbiBcbi1cdG9hX3RjNl9zdWJtaXRfcnhfc2tiKHRjNik7XG4mIzQzO1x0cmV0ID0gb2FfdGM2X3VwZGF0ZV9yeF9za2IodGM2LCBwYXlsb2FkLCBzaXplKTtcbiYjNDM7XHRpZiAoIXJldClcbiYjNDM7XHRcdG9hX3RjNl9zdWJtaXRfcnhfc2tiKHRjNik7XG4mIzQzO1x0cmV0dXJuIHJldDtcbiB9XG4gXG4tc3RhdGljIHZvaWQgb2FfdGM2X3ByY3Nfb25nb2luZ19yeF9mcmFtZShzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHU4ICpwYXlsb2FkLFxuLVx0XHRcdFx0XHQgdTMyIGZvb3RlcilcbiYjNDM7c3RhdGljIGludCBvYV90YzZfcHJjc19vbmdvaW5nX3J4X2ZyYW1lKHN0cnVjdCBvYV90YzYgKnRjNiwgdTggKnBheWxvYWQsXG4mIzQzO1x0XHRcdFx0XHR1MzIgZm9vdGVyKVxuIHtcbi1cdG9hX3RjNl91cGRhdGVfcnhfc2tiKHRjNiwgcGF5bG9hZCwgT0FfVEM2X0NIVU5LX1BBWUxPQURfU0laRSk7XG4mIzQzO1x0cmV0dXJuIG9hX3RjNl91cGRhdGVfcnhfc2tiKHRjNiwgcGF5bG9hZCxcbiYjNDM7XHRcdFx0XHQgICAgT0FfVEM2X0NIVU5LX1BBWUxPQURfU0laRSk7XG4gfVxuIFxuIHN0YXRpYyBpbnQgb2FfdGM2X3ByY3NfcnhfY2h1bmtfcGF5bG9hZChzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHU4ICpkYXRhLFxuQEAgLTg3NCw2ICYjNDM7ODk1LDcgQEAgc3RhdGljIGludCBvYV90YzZfcHJjc19yeF9jaHVua19wYXlsb2FkKHN0cnVjdCBvYV90YzYgKnRjNiwgdTggKmRhdGEsXG4gXHRib29sIHN0YXJ0X3ZhbGlkID0gRklFTERfR0VUKE9BX1RDNl9EQVRBX0ZPT1RFUl9TVEFSVF9WQUxJRCwgZm9vdGVyKTtcbiBcdGJvb2wgZW5kX3ZhbGlkID0gRklFTERfR0VUKE9BX1RDNl9EQVRBX0ZPT1RFUl9FTkRfVkFMSUQsIGZvb3Rlcik7XG4gXHR1MTYgc2l6ZTtcbiYjNDM7XHRpbnQgcmV0O1xuIFxuIFx0LyogUmVzdGFydCB0aGUgbmV3IHJ4IGZyYW1lIGFmdGVyIHJlY2VpdmluZyByeCBidWZmZXIgb3ZlcmZsb3cgZXJyb3IgKi9cbiBcdGlmIChzdGFydF92YWxpZCBcdTAwMjZcdTAwMjYgdGM2LVx1MDAzZXJ4X2J1Zl9vdmVyZmxvdylcbkBAIC05MDEsOCAmIzQzOzkyMyw3IEBAIHN0YXRpYyBpbnQgb2FfdGM2X3ByY3NfcnhfY2h1bmtfcGF5bG9hZChzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHU4ICpkYXRhLFxuIFx0LyogUHJvY2VzcyB0aGUgY2h1bmsgd2l0aCBvbmx5IHJ4IGZyYW1lIGVuZCAqL1xuIFx0aWYgKGVuZF92YWxpZCBcdTAwMjZcdTAwMjYgIXN0YXJ0X3ZhbGlkKSB7XG4gXHRcdHNpemUgPSBlbmRfYnl0ZV9vZmZzZXQgJiM0MzsgMTtcbi1cdFx0b2FfdGM2X3ByY3NfcnhfZnJhbWVfZW5kKHRjNiwgZGF0YSwgc2l6ZSk7XG4tXHRcdHJldHVybiAwO1xuJiM0MztcdFx0cmV0dXJuIG9hX3RjNl9wcmNzX3J4X2ZyYW1lX2VuZCh0YzYsIGRhdGEsIHNpemUpO1xuIFx0fVxuIFxuIFx0LyogUHJvY2VzcyB0aGUgY2h1bmsgd2l0aCBwcmV2aW91cyByeCBmcmFtZSBlbmQgYW5kIG5leHQgcnggZnJhbWVcbkBAIC05MTUsNyAmIzQzOzkzNiw5IEBAIHN0YXRpYyBpbnQgb2FfdGM2X3ByY3NfcnhfY2h1bmtfcGF5bG9hZChzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHU4ICpkYXRhLFxuIFx0XHQgKi9cbiBcdFx0aWYgKHRjNi1cdTAwM2VyeF9za2IpIHtcbiBcdFx0XHRzaXplID0gZW5kX2J5dGVfb2Zmc2V0ICYjNDM7IDE7XG4tXHRcdFx0b2FfdGM2X3ByY3NfcnhfZnJhbWVfZW5kKHRjNiwgZGF0YSwgc2l6ZSk7XG4mIzQzO1x0XHRcdHJldCA9IG9hX3RjNl9wcmNzX3J4X2ZyYW1lX2VuZCh0YzYsIGRhdGEsIHNpemUpO1xuJiM0MztcdFx0XHRpZiAocmV0KVxuJiM0MztcdFx0XHRcdHJldHVybiByZXQ7XG4gXHRcdH1cbiBcdFx0c2l6ZSA9IE9BX1RDNl9DSFVOS19QQVlMT0FEX1NJWkUgLSBzdGFydF9ieXRlX29mZnNldDtcbiBcdFx0cmV0dXJuIG9hX3RjNl9wcmNzX3J4X2ZyYW1lX3N0YXJ0KHRjNixcbkBAIC05MjQsOSAmIzQzOzk0Nyw3IEBAIHN0YXRpYyBpbnQgb2FfdGM2X3ByY3NfcnhfY2h1bmtfcGF5bG9hZChzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHU4ICpkYXRhLFxuIFx0fVxuIFxuIFx0LyogUHJvY2VzcyB0aGUgY2h1bmsgd2l0aCBvbmdvaW5nIHJ4IGZyYW1lIGRhdGEgKi9cbi1cdG9hX3RjNl9wcmNzX29uZ29pbmdfcnhfZnJhbWUodGM2LCBkYXRhLCBmb290ZXIpO1xuLVxuLVx0cmV0dXJuIDA7XG4mIzQzO1x0cmV0dXJuIG9hX3RjNl9wcmNzX29uZ29pbmdfcnhfZnJhbWUodGM2LCBkYXRhLCBmb290ZXIpO1xuIH1cbiBcbiBzdGF0aWMgdTMyIG9hX3RjNl9nZXRfcnhfY2h1bmtfZm9vdGVyKHN0cnVjdCBvYV90YzYgKnRjNiwgdTE2IGZvb3Rlcl9vZmZzZXQpXG5AQCAtMTI1MCwxMSAmIzQzOzEyNzEsNiBAQCBFWFBPUlRfU1lNQk9MX0dQTChvYV90YzZfemVyb19hbGlnbl9yZWNlaXZlX2ZyYW1lX2VuYWJsZSk7XG4gICovXG4gbmV0ZGV2X3R4X3Qgb2FfdGM2X3N0YXJ0X3htaXQoc3RydWN0IG9hX3RjNiAqdGM2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIHtcbi1cdGlmICh0YzYtXHUwMDNlZGlzYWJsZV90cmFmZmljIHx8IHRjNi1cdTAwM2V3YWl0aW5nX3R4X3NrYikge1xuLVx0XHRuZXRpZl9zdG9wX3F1ZXVlKHRjNi1cdTAwM2VuZXRkZXYpO1xuLVx0XHRyZXR1cm4gTkVUREVWX1RYX0JVU1k7XG4tXHR9XG4tXG4gXHRpZiAoc2tiX2xpbmVhcml6ZShza2IpKSB7XG4gXHRcdGRldl9rZnJlZV9za2JfYW55KHNrYik7XG4gXHRcdHRjNi1cdTAwM2VuZXRkZXYtXHUwMDNlc3RhdHMudHhfZHJvcHBlZCYjNDM7JiM0Mzs7XG5AQCAtMTI2Miw2ICYjNDM7MTI3OCwxMSBAQCBuZXRkZXZfdHhfdCBvYV90YzZfc3RhcnRfeG1pdChzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHN0cnVjdCBza19idWZmICpza2IpXG4gXHR9XG4gXG4gXHRzcGluX2xvY2tfYmgoXHUwMDI2dGM2LVx1MDAzZXR4X3NrYl9sb2NrKTtcbiYjNDM7XHRpZiAodGM2LVx1MDAzZWRpc2FibGVfdHJhZmZpYyB8fCB0YzYtXHUwMDNld2FpdGluZ190eF9za2IpIHtcbiYjNDM7XHRcdG5ldGlmX3N0b3BfcXVldWUodGM2LVx1MDAzZW5ldGRldik7XG4mIzQzO1x0XHRzcGluX3VubG9ja19iaChcdTAwMjZ0YzYtXHUwMDNldHhfc2tiX2xvY2spO1xuJiM0MztcdFx0cmV0dXJuIE5FVERFVl9UWF9CVVNZO1xuJiM0MztcdH1cbiBcdHRjNi1cdTAwM2V3YWl0aW5nX3R4X3NrYiA9IHNrYjtcbiBcdHNwaW5fdW5sb2NrX2JoKFx1MDAyNnRjNi1cdTAwM2V0eF9za2JfbG9jayk7XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjIgMDQ6NDk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGBvYV90YzZgIChPUEVOIEFsbGlhbmNlIDEwQkFTRS1UMXggTUFDLVBIWSBTZXJpYWwgSW50ZXJmYWNlKSBmcmFtZXdvcmssIHdoaWNoIGlzIGN1cnJlbnRseSBvbmx5IHVzZWQgYnkgdGhlIGBsYW44NjV4YCBTUEkgbmV0d29yayBkcml2ZXIuIFNpbmNlIGBsYW44NjV4YCBpcyBhbiBTUEkgZGV2aWNlLCBpdCByZXF1aXJlcyBzcGVjaWZpYyBoYXJkd2FyZSBpbnN0YW50aWF0aW9uIChlLmcuLCB2aWEgRGV2aWNlIFRyZWUgb3IgQUNQSSkgYW5kIGNhbm5vdCBiZSBkeW5hbWljYWxseSBpbnN0YW50aWF0ZWQgZnJvbSB1c2Vyc3BhY2UgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIFFFTVUvR0NFKSB1c2VkIGJ5IHN5emthbGxlci4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBpcyB1bnJlYWNoYWJsZSBmb3IgdGhlIGZ1enplci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDNiYmRkZTFhNjQ4YmFmZTAyNmY5YTM2N2E5YWQyMmNkZGVkYTYzNjkKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEp1biAyMiAwNDo0OTozMyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMKaW5kZXggMDcyN2Q1MzM0NWEzM2IuLjE4MGZjNDdjMzBiMzFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYwpAQCAtNjcyLDEwICYjNDM7NjcyLDE2IEBAIHN0YXRpYyB2b2lkIG9hX3RjNl9jbGVhbnVwX29uZ29pbmdfdHhfc2tiKHN0cnVjdCBvYV90YzYgKnRjNikKIAogc3RhdGljIHZvaWQgb2FfdGM2X2NsZWFudXBfd2FpdGluZ190eF9za2Ioc3RydWN0IG9hX3RjNiAqdGM2KQogewotCWlmICh0YzYtJmd0O3dhaXRpbmdfdHhfc2tiKSB7CiYjNDM7CXN0cnVjdCBza19idWZmICpza2I7CiYjNDM7CiYjNDM7CXNwaW5fbG9ja19iaCgmYW1wO3RjNi0mZ3Q7dHhfc2tiX2xvY2spOwomIzQzOwlza2IgPSB0YzYtJmd0O3dhaXRpbmdfdHhfc2tiOwomIzQzOwl0YzYtJmd0O3dhaXRpbmdfdHhfc2tiID0gTlVMTDsKJiM0MzsJc3Bpbl91bmxvY2tfYmgoJmFtcDt0YzYtJmd0O3R4X3NrYl9sb2NrKTsKJiM0MzsKJiM0MzsJaWYgKHNrYikgewogCQl0YzYtJmd0O25ldGRldi0mZ3Q7c3RhdHMudHhfZHJvcHBlZCYjNDM7JiM0Mzs7Ci0JCWtmcmVlX3NrYih0YzYtJmd0O3dhaXRpbmdfdHhfc2tiKTsKLQkJdGM2LSZndDt3YWl0aW5nX3R4X3NrYiA9IE5VTEw7CiYjNDM7CQlrZnJlZV9za2Ioc2tiKTsKIAl9CiB9CiAKQEAgLTY4Niw2ICYjNDM7NjkyLDEyIEBAIHN0YXRpYyB2b2lkIG9hX3RjNl9mcmVlX3BlbmRpbmdfc2ticyhzdHJ1Y3Qgb2FfdGM2ICp0YzYpCiAJb2FfdGM2X2NsZWFudXBfd2FpdGluZ190eF9za2IodGM2KTsKIH0KIAomIzQzO3N0YXRpYyB2b2lkIG9hX3RjNl9sb29rX2Zvcl9uZXdfZnJhbWUoc3RydWN0IG9hX3RjNiAqdGM2KQomIzQzO3sKJiM0MzsJdGM2LSZndDtyeF9idWZfb3ZlcmZsb3cgPSB0cnVlOwomIzQzOwlvYV90YzZfY2xlYW51cF9vbmdvaW5nX3J4X3NrYih0YzYpOwomIzQzO30KJiM0MzsKIC8qIElmIHRoZSBmYWlsdXJlIGlzIGF0IFNQSSBpbnRlcmZhY2UgbGV2ZWwsIG1hc2tpbmcgYW5kIGNsZWFyaW5nCiAgKiB0aGUgaW50ZXJydXB0IG9mIHRoZSBkZXZpY2Ugd29uJiMzOTt0IHdvcmsuIFNpbmNlIFNQSSBpbnRlcnJ1cHQgaXMKICAqIGRpc2FibGVkLCBpdCBzaG91bGQgc3RvcCB0aGUgcmVwZWF0ZWQgaW50ZXJydXB0cy4KQEAgLTcyMyw4ICYjNDM7NzM1LDcgQEAgc3RhdGljIGludCBvYV90YzZfcHJvY2Vzc19leHRlbmRlZF9zdGF0dXMoc3RydWN0IG9hX3RjNiAqdGM2KQogCX0KIAogCWlmIChGSUVMRF9HRVQoU1RBVFVTMF9SWF9CVUZGRVJfT1ZFUkZMT1dfRVJST1IsIHZhbHVlKSkgewotCQl0YzYtJmd0O3J4X2J1Zl9vdmVyZmxvdyA9IHRydWU7Ci0JCW9hX3RjNl9jbGVhbnVwX29uZ29pbmdfcnhfc2tiKHRjNik7CiYjNDM7CQlvYV90YzZfbG9va19mb3JfbmV3X2ZyYW1lKHRjNik7CiAJCW5ldF9lcnJfcmF0ZWxpbWl0ZWQoJiMzNDslczogUmVjZWl2ZSBidWZmZXIgb3ZlcmZsb3cgZXJyb3JcbiYjMzQ7LAogCQkJCSAgICB0YzYtJmd0O25ldGRldi0mZ3Q7bmFtZSk7CiAJCXJldHVybiAtRUFHQUlOOwpAQCAtODA1LDkgJiM0Mzs4MTYsMTUgQEAgc3RhdGljIHZvaWQgb2FfdGM2X3N1Ym1pdF9yeF9za2Ioc3RydWN0IG9hX3RjNiAqdGM2KQogCXRjNi0mZ3Q7cnhfc2tiID0gTlVMTDsKIH0KIAotc3RhdGljIHZvaWQgb2FfdGM2X3VwZGF0ZV9yeF9za2Ioc3RydWN0IG9hX3RjNiAqdGM2LCB1OCAqcGF5bG9hZCwgdTggbGVuZ3RoKQomIzQzO3N0YXRpYyBpbnQgb2FfdGM2X3VwZGF0ZV9yeF9za2Ioc3RydWN0IG9hX3RjNiAqdGM2LCB1OCAqcGF5bG9hZCwgdTggbGVuZ3RoKQogewomIzQzOwlpZiAoKHRjNi0mZ3Q7cnhfc2tiLSZndDt0YWlsICYjNDM7IGxlbmd0aCkgJmd0OyB0YzYtJmd0O3J4X3NrYi0mZ3Q7ZW5kKSB7CiYjNDM7CQlvYV90YzZfbG9va19mb3JfbmV3X2ZyYW1lKHRjNik7CiYjNDM7CQlyZXR1cm4gLUVBR0FJTjsKJiM0MzsJfQomIzQzOwogCW1lbWNweShza2JfcHV0KHRjNi0mZ3Q7cnhfc2tiLCBsZW5ndGgpLCBwYXlsb2FkLCBsZW5ndGgpOwomIzQzOwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBvYV90YzZfYWxsb2NhdGVfcnhfc2tiKHN0cnVjdCBvYV90YzYgKnRjNikKQEAgLTgzMSw3ICYjNDM7ODQ4LDkgQEAgc3RhdGljIGludCBvYV90YzZfcHJjc19jb21wbGV0ZV9yeF9mcmFtZShzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHU4ICpwYXlsb2FkLAogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlvYV90YzZfdXBkYXRlX3J4X3NrYih0YzYsIHBheWxvYWQsIHNpemUpOwomIzQzOwlyZXQgPSBvYV90YzZfdXBkYXRlX3J4X3NrYih0YzYsIHBheWxvYWQsIHNpemUpOwomIzQzOwlpZiAocmV0KQomIzQzOwkJcmV0dXJuIHJldDsKIAogCW9hX3RjNl9zdWJtaXRfcnhfc2tiKHRjNik7CiAKQEAgLTg0NiwyMiAmIzQzOzg2NSwyNCBAQCBzdGF0aWMgaW50IG9hX3RjNl9wcmNzX3J4X2ZyYW1lX3N0YXJ0KHN0cnVjdCBvYV90YzYgKnRjNiwgdTggKnBheWxvYWQsIHUxNiBzaXplKQogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlvYV90YzZfdXBkYXRlX3J4X3NrYih0YzYsIHBheWxvYWQsIHNpemUpOwotCi0JcmV0dXJuIDA7CiYjNDM7CXJldHVybiBvYV90YzZfdXBkYXRlX3J4X3NrYih0YzYsIHBheWxvYWQsIHNpemUpOwogfQogCi1zdGF0aWMgdm9pZCBvYV90YzZfcHJjc19yeF9mcmFtZV9lbmQoc3RydWN0IG9hX3RjNiAqdGM2LCB1OCAqcGF5bG9hZCwgdTE2IHNpemUpCiYjNDM7c3RhdGljIGludCBvYV90YzZfcHJjc19yeF9mcmFtZV9lbmQoc3RydWN0IG9hX3RjNiAqdGM2LCB1OCAqcGF5bG9hZCwgdTE2IHNpemUpCiB7Ci0Jb2FfdGM2X3VwZGF0ZV9yeF9za2IodGM2LCBwYXlsb2FkLCBzaXplKTsKJiM0MzsJaW50IHJldDsKIAotCW9hX3RjNl9zdWJtaXRfcnhfc2tiKHRjNik7CiYjNDM7CXJldCA9IG9hX3RjNl91cGRhdGVfcnhfc2tiKHRjNiwgcGF5bG9hZCwgc2l6ZSk7CiYjNDM7CWlmICghcmV0KQomIzQzOwkJb2FfdGM2X3N1Ym1pdF9yeF9za2IodGM2KTsKJiM0MzsJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHZvaWQgb2FfdGM2X3ByY3Nfb25nb2luZ19yeF9mcmFtZShzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHU4ICpwYXlsb2FkLAotCQkJCQkgdTMyIGZvb3RlcikKJiM0MztzdGF0aWMgaW50IG9hX3RjNl9wcmNzX29uZ29pbmdfcnhfZnJhbWUoc3RydWN0IG9hX3RjNiAqdGM2LCB1OCAqcGF5bG9hZCwKJiM0MzsJCQkJCXUzMiBmb290ZXIpCiB7Ci0Jb2FfdGM2X3VwZGF0ZV9yeF9za2IodGM2LCBwYXlsb2FkLCBPQV9UQzZfQ0hVTktfUEFZTE9BRF9TSVpFKTsKJiM0MzsJcmV0dXJuIG9hX3RjNl91cGRhdGVfcnhfc2tiKHRjNiwgcGF5bG9hZCwKJiM0MzsJCQkJICAgIE9BX1RDNl9DSFVOS19QQVlMT0FEX1NJWkUpOwogfQogCiBzdGF0aWMgaW50IG9hX3RjNl9wcmNzX3J4X2NodW5rX3BheWxvYWQoc3RydWN0IG9hX3RjNiAqdGM2LCB1OCAqZGF0YSwKQEAgLTg3NCw2ICYjNDM7ODk1LDcgQEAgc3RhdGljIGludCBvYV90YzZfcHJjc19yeF9jaHVua19wYXlsb2FkKHN0cnVjdCBvYV90YzYgKnRjNiwgdTggKmRhdGEsCiAJYm9vbCBzdGFydF92YWxpZCA9IEZJRUxEX0dFVChPQV9UQzZfREFUQV9GT09URVJfU1RBUlRfVkFMSUQsIGZvb3Rlcik7CiAJYm9vbCBlbmRfdmFsaWQgPSBGSUVMRF9HRVQoT0FfVEM2X0RBVEFfRk9PVEVSX0VORF9WQUxJRCwgZm9vdGVyKTsKIAl1MTYgc2l6ZTsKJiM0MzsJaW50IHJldDsKIAogCS8qIFJlc3RhcnQgdGhlIG5ldyByeCBmcmFtZSBhZnRlciByZWNlaXZpbmcgcnggYnVmZmVyIG92ZXJmbG93IGVycm9yICovCiAJaWYgKHN0YXJ0X3ZhbGlkICZhbXA7JmFtcDsgdGM2LSZndDtyeF9idWZfb3ZlcmZsb3cpCkBAIC05MDEsOCAmIzQzOzkyMyw3IEBAIHN0YXRpYyBpbnQgb2FfdGM2X3ByY3NfcnhfY2h1bmtfcGF5bG9hZChzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHU4ICpkYXRhLAogCS8qIFByb2Nlc3MgdGhlIGNodW5rIHdpdGggb25seSByeCBmcmFtZSBlbmQgKi8KIAlpZiAoZW5kX3ZhbGlkICZhbXA7JmFtcDsgIXN0YXJ0X3ZhbGlkKSB7CiAJCXNpemUgPSBlbmRfYnl0ZV9vZmZzZXQgJiM0MzsgMTsKLQkJb2FfdGM2X3ByY3NfcnhfZnJhbWVfZW5kKHRjNiwgZGF0YSwgc2l6ZSk7Ci0JCXJldHVybiAwOwomIzQzOwkJcmV0dXJuIG9hX3RjNl9wcmNzX3J4X2ZyYW1lX2VuZCh0YzYsIGRhdGEsIHNpemUpOwogCX0KIAogCS8qIFByb2Nlc3MgdGhlIGNodW5rIHdpdGggcHJldmlvdXMgcnggZnJhbWUgZW5kIGFuZCBuZXh0IHJ4IGZyYW1lCkBAIC05MTUsNyAmIzQzOzkzNiw5IEBAIHN0YXRpYyBpbnQgb2FfdGM2X3ByY3NfcnhfY2h1bmtfcGF5bG9hZChzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHU4ICpkYXRhLAogCQkgKi8KIAkJaWYgKHRjNi0mZ3Q7cnhfc2tiKSB7CiAJCQlzaXplID0gZW5kX2J5dGVfb2Zmc2V0ICYjNDM7IDE7Ci0JCQlvYV90YzZfcHJjc19yeF9mcmFtZV9lbmQodGM2LCBkYXRhLCBzaXplKTsKJiM0MzsJCQlyZXQgPSBvYV90YzZfcHJjc19yeF9mcmFtZV9lbmQodGM2LCBkYXRhLCBzaXplKTsKJiM0MzsJCQlpZiAocmV0KQomIzQzOwkJCQlyZXR1cm4gcmV0OwogCQl9CiAJCXNpemUgPSBPQV9UQzZfQ0hVTktfUEFZTE9BRF9TSVpFIC0gc3RhcnRfYnl0ZV9vZmZzZXQ7CiAJCXJldHVybiBvYV90YzZfcHJjc19yeF9mcmFtZV9zdGFydCh0YzYsCkBAIC05MjQsOSAmIzQzOzk0Nyw3IEBAIHN0YXRpYyBpbnQgb2FfdGM2X3ByY3NfcnhfY2h1bmtfcGF5bG9hZChzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHU4ICpkYXRhLAogCX0KIAogCS8qIFByb2Nlc3MgdGhlIGNodW5rIHdpdGggb25nb2luZyByeCBmcmFtZSBkYXRhICovCi0Jb2FfdGM2X3ByY3Nfb25nb2luZ19yeF9mcmFtZSh0YzYsIGRhdGEsIGZvb3Rlcik7Ci0KLQlyZXR1cm4gMDsKJiM0MzsJcmV0dXJuIG9hX3RjNl9wcmNzX29uZ29pbmdfcnhfZnJhbWUodGM2LCBkYXRhLCBmb290ZXIpOwogfQogCiBzdGF0aWMgdTMyIG9hX3RjNl9nZXRfcnhfY2h1bmtfZm9vdGVyKHN0cnVjdCBvYV90YzYgKnRjNiwgdTE2IGZvb3Rlcl9vZmZzZXQpCkBAIC0xMjUwLDExICYjNDM7MTI3MSw2IEBAIEVYUE9SVF9TWU1CT0xfR1BMKG9hX3RjNl96ZXJvX2FsaWduX3JlY2VpdmVfZnJhbWVfZW5hYmxlKTsKICAqLwogbmV0ZGV2X3R4X3Qgb2FfdGM2X3N0YXJ0X3htaXQoc3RydWN0IG9hX3RjNiAqdGM2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewotCWlmICh0YzYtJmd0O2Rpc2FibGVfdHJhZmZpYyB8fCB0YzYtJmd0O3dhaXRpbmdfdHhfc2tiKSB7Ci0JCW5ldGlmX3N0b3BfcXVldWUodGM2LSZndDtuZXRkZXYpOwotCQlyZXR1cm4gTkVUREVWX1RYX0JVU1k7Ci0JfQotCiAJaWYgKHNrYl9saW5lYXJpemUoc2tiKSkgewogCQlkZXZfa2ZyZWVfc2tiX2FueShza2IpOwogCQl0YzYtJmd0O25ldGRldi0mZ3Q7c3RhdHMudHhfZHJvcHBlZCYjNDM7JiM0Mzs7CkBAIC0xMjYyLDYgJiM0MzsxMjc4LDExIEBAIG5ldGRldl90eF90IG9hX3RjNl9zdGFydF94bWl0KHN0cnVjdCBvYV90YzYgKnRjNiwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAl9CiAKIAlzcGluX2xvY2tfYmgoJmFtcDt0YzYtJmd0O3R4X3NrYl9sb2NrKTsKJiM0MzsJaWYgKHRjNi0mZ3Q7ZGlzYWJsZV90cmFmZmljIHx8IHRjNi0mZ3Q7d2FpdGluZ190eF9za2IpIHsKJiM0MzsJCW5ldGlmX3N0b3BfcXVldWUodGM2LSZndDtuZXRkZXYpOwomIzQzOwkJc3Bpbl91bmxvY2tfYmgoJmFtcDt0YzYtJmd0O3R4X3NrYl9sb2NrKTsKJiM0MzsJCXJldHVybiBORVRERVZfVFhfQlVTWTsKJiM0MzsJfQogCXRjNi0mZ3Q7d2FpdGluZ190eF9za2IgPSBza2I7CiAJc3Bpbl91bmxvY2tfYmgoJmFtcDt0YzYtJmd0O3R4X3NrYl9sb2NrKTsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMiAwNDo0OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MjI1CgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogNTU2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFBhdGNoIGZvciB0aGUgT0FfVEM2IEV0aGVybmV0IERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCBmb3IgYGRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jYC4gSXQgbG9va3MgbGlrZSBpdCYjMzk7cyBwcmltYXJpbHkgYSBmdW5jdGlvbmFsIGZpeCwgd2hpY2ggaXMgYWx3YXlzIGdvb2QuIExldCBtZSBicmVhayBkb3duIHRoZSBrZXkgY2hhbmdlcyBhbmQgbXkgdGhvdWdodCBwcm9jZXNzLgoKRmlyc3QsIGluIGBvYV90YzZfY2xlYW51cF93YWl0aW5nX3R4X3NrYmAsIHRoZXkmIzM5O3ZlIGFkZGVkIGEgYHNwaW5fbG9ja19iaGAgYXJvdW5kIHRoZSBhY2Nlc3MgdG8gYHRjNi0mZ3Q7d2FpdGluZ190eF9za2JgLiBNYWtlcyBzZW5zZSDigJMgY2xlYXJseSBhZGRyZXNzaW5nIGEgcmFjZSBjb25kaXRpb24gdGhlcmUuIGBvYV90YzZfc3RhcnRfeG1pdGAgYWxzbyBoYXMgdGhpcyBmaXggc28gYm90aCBhcmUgcHJvdGVjdGVkIHVuZGVyIGEgbG9jay4KCk5leHQsIGEgbmV3IGZ1bmN0aW9uLCBgb2FfdGM2X2xvb2tfZm9yX25ld19mcmFtZWAsIGlzIGludHJvZHVjZWQuIFRoaXMgc2V0cyBgdGM2LSZndDtyeF9idWZfb3ZlcmZsb3cgPSB0cnVlYCBhbmQgY2FsbHMgYG9hX3RjNl9jbGVhbnVwX29uZ29pbmdfcnhfc2tiYC4gVGhpcyBpcyBpbnRlcmVzdGluZzsgaXQgc2lnbmFscyBhbiBSWCBidWZmZXIgb3ZlcmZsb3csIGFuZCB0aGVuIGNsZWFucyB1cC4gVGhpcyBpcyBwcm9iYWJseSByZWxhdGVkIHRvIHRoZSBvdGhlciBtYWpvciBjaGFuZ2UuCgpUaGUgY29yZSBvZiB0aGUgZml4IHNlZW1zIHRvIGJlIGluIGBvYV90YzZfdXBkYXRlX3J4X3NrYmAuIEl0IG5vdyBleHBsaWNpdGx5IGNoZWNrcyBpZiB0aGUgaW50ZW5kZWQgd3JpdGUgd2lsbCBleGNlZWQgdGhlIGFsbG9jYXRlZCBidWZmZXIgKGB0YzYtJmd0O3J4X3NrYi0mZ3Q7dGFpbCAmIzQzOyBsZW5ndGggJmd0OyB0YzYtJmd0O3J4X3NrYi0mZ3Q7ZW5kYCkuIElmIHNvLCBpdCBjYWxscyBgb2FfdGM2X2xvb2tfZm9yX25ld19mcmFtZWAg4oCTIHByZXN1bWFibHkgdG8gaGFuZGxlIHRoZSBvdmVyZmxvdyDigJMgYW5kIHJldHVybnMgYC1FQUdBSU5gLiBJbXBvcnRhbnRseSwgdGhpcyBgLUVBR0FJTmAgaXMgcHJvcGFnYXRlZCBhbGwgdGhlIHdheSB1cCB0aGUgY2FsbCBjaGFpbiB0aHJvdWdoIHNldmVyYWwgZnVuY3Rpb25zLCB3aGljaCBtYWtlcyBzZW5zZSBpbiBjb250ZXh0LCBzaW5jZSB0aG9zZSBmdW5jdGlvbnMgYXJlIHRoZSBjb25zdW1lcnMgb2YgdGhpcyBlcnJvciwgYW5kIGFyZSByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgYW5kIHJlY292ZXJpbmcgZnJvbSB0aGUgZXJyb3IuCgpGaW5hbGx5LCBpbiBgb2FfdGM2X3N0YXJ0X3htaXRgLCB0aGUgY2hlY2sgZm9yIGB0YzYtJmd0O2Rpc2FibGVfdHJhZmZpYyB8fCB0YzYtJmd0O3dhaXRpbmdfdHhfc2tiYCBoYXMgYmVlbiBtb3ZlZCAqaW5zaWRlKiB0aGUgYHNwaW5fbG9ja19iaGAuIFRoaXMgY2xlYW5zIHVwIHRoZSByYWNlLgoKU28sIHRoZSBmdW5jdGlvbmFsIGltcGFjdCBpcyB0aGlzOiB0aGlzIGlzIHRvIGZpeCBhbiBvdXQtb2YtYm91bmRzIHdyaXRlIGluIGBvYV90YzZfdXBkYXRlX3J4X3NrYmAsIHBvc3NpYmx5IGNhdXNlZCBieSB1c2luZyBgc2tiX3B1dGAgd2l0aG91dCBwcm9wZXIgY2hlY2tzLCBhcyB3ZWxsIGFzIGZpeGluZyBhIHJhY2UgY29uZGl0aW9uIGludm9sdmluZyBgdGM2LSZndDt3YWl0aW5nX3R4X3NrYmAgaW4gdGhlIHRyYW5zbWl0IHBhdGguIFRoaXMgcmFjZSBjb25kaXRpb24gaXMgbm93IGNvcnJlY3RlZCBieSB0aGUgYXBwcm9wcmlhdGUgbG9ja2luZyBtZWNoYW5pc20uCgpOb3csIG15IGltbWVkaWF0ZSBxdWVzdGlvbiBpczogaXMgdGhpcyBldmVuIHJlbGV2YW50IGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/IElzIHRoaXMgYG9hX3RjNmAgZHJpdmVyIHNvbWV0aGluZyB0aGF0IGdldHMgdXNlZCB0aGVyZT8gTGV0JiMzOTtzIGNoZWNrIHdoYXQgYG9hX3RjNmAgYWN0dWFsbHkgKmlzKi4gU2VhcmNoaW5nIHF1aWNrbHksICYjMzQ7b2FfdGM2JiMzNDsgcmVwcmVzZW50cyBPUEVOIEFsbGlhbmNlIDEwQkFTRS1UMXggTUFDLVBIWSBTZXJpYWwgSW50ZXJmYWNlLiBJdCBpcyBhIGZyYW1ld29yayBmb3IgTUFDLVBIWXMuIE5vdywgbGV0JiMzOTtzIHNlYXJjaCBpbiB0aGUgS2NvbmZpZyBmb3IgYW55IGNsdWVzIG9mIGl0cyB1c2FnZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMiAwNDo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtvYV90YzYmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDgwMSBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvTWFrZWZpbGU9MTA2PW9iai0kKENPTkZJR19ORVRfVkVORE9SX1BFTlNBTkRPKSAmIzQzOz0gcGVuc2FuZG8vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9NYWtlZmlsZToxMDc6b2JqLSQoQ09ORklHX09BX1RDNikgJiM0Mzs9IG9hX3RjNi5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTEwLSNpbmNsdWRlIFx1MDAzY2xpbnV4L3BoeS5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MTE6I2luY2x1ZGUgXHUwMDNjbGludXgvb2FfdGM2LmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0xMi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM9Mzk9c3RydWN0IGxhbjg2NXhfcHJpdiB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQyLVx0c3RydWN0IHNwaV9kZXZpY2UgKnNwaTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo0MzpcdHN0cnVjdCBvYV90YzYgKnRjNjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00NC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQ1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjQ2OnN0YXRpYyBpbnQgbGFuODY1eF9zZXRfaHdfbWFjYWRkcl9sb3dfYnl0ZXMoc3RydWN0IG9hX3RjNiAqdGM2LCBjb25zdCB1OCAqbWFjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQ3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NTI6XHRyZXR1cm4gb2FfdGM2X3dyaXRlX3JlZ2lzdGVyKHRjNiwgTEFOODY1WF9SRUdfTUFDX0xfU0FERFIxLCByZWd2YWwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTUzLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM9NTU9c3RhdGljIGludCBsYW44NjV4X3NldF9od19tYWNhZGRyKHN0cnVjdCBsYW44NjV4X3ByaXYgKnByaXYsIGNvbnN0IHU4ICptYWMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTY3LVx0cmVndmFsID0gKG1hY1s1XSBcdTAwM2NcdTAwM2MgOCkgfCBtYWNbNF07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6Njg6XHRyZXQgPSBvYV90YzZfd3JpdGVfcmVnaXN0ZXIocHJpdi1cdTAwM2V0YzYsIExBTjg2NVhfUkVHX01BQ19IX1NBRERSMSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy02OS1cdFx0XHRcdCAgICByZWd2YWwpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYz0xMzI9c3RhdGljIGludCBsYW44NjV4X3NldF9zcGVjaWZpY19tdWx0aWNhc3RfYWRkcihzdHJ1Y3QgbGFuODY1eF9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0xNDgtXHQvKiBFbmFibGluZyBzcGVjaWZpYyBtdWx0aWNhc3QgYWRkcmVzc2VzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MTQ5Olx0cmV0ID0gb2FfdGM2X3dyaXRlX3JlZ2lzdGVyKHByaXYtXHUwMDNldGM2LCBMQU44NjVYX1JFR19NQUNfSF9IQVNILCBoYXNoX2hpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0xNTAtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTE1NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoxNTY6XHRyZXQgPSBvYV90YzZfd3JpdGVfcmVnaXN0ZXIocHJpdi1cdTAwM2V0YzYsIExBTjg2NVhfUkVHX01BQ19MX0hBU0gsIGhhc2hfbG8pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTE1Ny1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jPTE2ND1zdGF0aWMgaW50IGxhbjg2NXhfc2V0X2FsbF9tdWx0aWNhc3RfYWRkcihzdHJ1Y3QgbGFuODY1eF9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0xNjgtXHQvKiBFbmFibGluZyBhbGwgbXVsdGljYXN0IGFkZHJlc3NlcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjE2OTpcdHJldCA9IG9hX3RjNl93cml0ZV9yZWdpc3Rlcihwcml2LVx1MDAzZXRjNiwgTEFOODY1WF9SRUdfTUFDX0hfSEFTSCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0xNzAtXHRcdFx0XHQgICAgMHhmZmZmZmZmZik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTE3Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoxNzc6XHRyZXQgPSBvYV90YzZfd3JpdGVfcmVnaXN0ZXIocHJpdi1cdTAwM2V0YzYsIExBTjg2NVhfUkVHX01BQ19MX0hBU0gsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMTc4LVx0XHRcdFx0ICAgIDB4ZmZmZmZmZmYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYz0xODY9c3RhdGljIGludCBsYW44NjV4X2NsZWFyX2FsbF9tdWx0aWNhc3RfYWRkcihzdHJ1Y3QgbGFuODY1eF9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0xODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MTkwOlx0cmV0ID0gb2FfdGM2X3dyaXRlX3JlZ2lzdGVyKHByaXYtXHUwMDNldGM2LCBMQU44NjVYX1JFR19NQUNfSF9IQVNILCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0xOTEtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTE5Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoxOTc6XHRyZXQgPSBvYV90YzZfd3JpdGVfcmVnaXN0ZXIocHJpdi1cdTAwM2V0YzYsIExBTjg2NVhfUkVHX01BQ19MX0hBU0gsIDApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTE5OC1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jPTIwNT1zdGF0aWMgdm9pZCBsYW44NjV4X211bHRpY2FzdF93b3JrX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yMzctXHR9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MjM4Olx0cmV0ID0gb2FfdGM2X3dyaXRlX3JlZ2lzdGVyKHByaXYtXHUwMDNldGM2LCBMQU44NjVYX1JFR19NQUNfTkVUX0NGRywgcmVndmFsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yMzktXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYz0yNTE9c3RhdGljIG5ldGRldl90eF90IGxhbjg2NXhfc2VuZF9wYWNrZXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjU1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjI1NjpcdHJldHVybiBvYV90YzZfc3RhcnRfeG1pdChwcml2LVx1MDAzZXRjNiwgc2tiKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yNTctfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYz0yNTk9c3RhdGljIGludCBsYW44NjV4X2h3X2Rpc2FibGUoc3RydWN0IGxhbjg2NXhfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjYyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjI2MzpcdGlmIChvYV90YzZfcmVhZF9yZWdpc3Rlcihwcml2LVx1MDAzZXRjNiwgTEFOODY1WF9SRUdfTUFDX05FVF9DVEwsIFx1MDAyNnJlZ3ZhbCkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjY0LVx0XHRyZXR1cm4gLUVOT0RFVjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjY3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjI2ODpcdGlmIChvYV90YzZfd3JpdGVfcmVnaXN0ZXIocHJpdi1cdTAwM2V0YzYsIExBTjg2NVhfUkVHX01BQ19ORVRfQ1RMLCByZWd2YWwpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI2OS1cdFx0cmV0dXJuIC1FTk9ERVY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jPTI5MD1zdGF0aWMgaW50IGxhbjg2NXhfaHdfZW5hYmxlKHN0cnVjdCBsYW44NjV4X3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoyOTQ6XHRpZiAob2FfdGM2X3JlYWRfcmVnaXN0ZXIocHJpdi1cdTAwM2V0YzYsIExBTjg2NVhfUkVHX01BQ19ORVRfQ1RMLCBcdTAwMjZyZWd2YWwpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI5NS1cdFx0cmV0dXJuIC1FTk9ERVY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI5OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoyOTk6XHRpZiAob2FfdGM2X3dyaXRlX3JlZ2lzdGVyKHByaXYtXHUwMDNldGM2LCBMQU44NjVYX1JFR19NQUNfTkVUX0NUTCwgcmVndmFsKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zMDAtXHRcdHJldHVybiAtRU5PREVWO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYz0zMzM9c3RhdGljIGludCBsYW44NjV4X3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTM0OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozNDk6XHRwcml2LVx1MDAzZXRjNiA9IG9hX3RjNl9pbml0KHNwaSwgbmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zNTAtXHRpZiAoIXByaXYtXHUwMDNldGM2KSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTM2MS1cdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjM2MjpcdHJldCA9IG9hX3RjNl93cml0ZV9yZWdpc3Rlcihwcml2LVx1MDAzZXRjNiwgTEFOODY1WF9SRUdfTUFDX1RTVV9USU1FUl9JTkNSLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTM2My1cdFx0XHRcdCAgICBNQUNfVFNVX1RJTUVSX0lOQ1JfQ09VTlRfTkFOT1NFQ09ORFMpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zNjYtXHRcdFx0cmV0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozNjc6XHRcdGdvdG8gb2FfdGM2X2V4aXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzY4LVx0fVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zODEtXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozODI6XHRyZXQgPSBvYV90YzZfemVyb19hbGlnbl9yZWNlaXZlX2ZyYW1lX2VuYWJsZShwcml2LVx1MDAzZXRjNik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzgzLVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTM4NC1cdFx0ZGV2X2VycihcdTAwMjZzcGktXHUwMDNlZGV2LCBcJiMzNDtGYWlsZWQgdG8gc2V0IFpBUkZFOiAlZFxcblwmIzM0OywgcmV0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozODU6XHRcdGdvdG8gb2FfdGM2X2V4aXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzg2LVx0fVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zOTQtXHRcdGRldl9lcnIoXHUwMDI2c3BpLVx1MDAzZWRldiwgXCYjMzQ7RmFpbGVkIHRvIGNvbmZpZ3VyZSBNQUM6ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjM5NTpcdFx0Z290byBvYV90YzZfZXhpdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zOTYtXHR9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQwNS1cdFx0ZGV2X2VycihcdTAwMjZzcGktXHUwMDNlZGV2LCBcJiMzNDtSZWdpc3RlciBuZXRkZXYgZmFpbGVkIChyZXQgPSAlZClcJiMzNDssIHJldCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NDA2Olx0XHRnb3RvIG9hX3RjNl9leGl0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQwNy1cdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjQxMTpvYV90YzZfZXhpdDpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo0MTI6XHRvYV90YzZfZXhpdChwcml2LVx1MDAzZXRjNik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDEzLWZyZWVfbmV0ZGV2OlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYz00MTg9c3RhdGljIHZvaWQgbGFuODY1eF9yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDIzLVx0dW5yZWdpc3Rlcl9uZXRkZXYocHJpdi1cdTAwM2VuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjQyNDpcdG9hX3RjNl9leGl0KHByaXYtXHUwMDNldGM2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00MjUtXHRmcmVlX25ldGRldihwcml2LVx1MDAzZW5ldGRldik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMTItI2luY2x1ZGUgXHUwMDNjbGludXgvcGh5LmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjEzOiNpbmNsdWRlIFx1MDAzY2xpbnV4L29hX3RjNi5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0xNC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0xMTEtLyogSW50ZXJuYWwgc3RydWN0dXJlIGZvciBNQUMtUEhZIGRyaXZlcnMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjExMjpzdHJ1Y3Qgb2FfdGM2IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTExMy1cdHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMTM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MTM1OmVudW0gb2FfdGM2X2hlYWRlcl90eXBlIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTEzNi1cdE9BX1RDNl9DVFJMX0hFQURFUixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0xMzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzoxNDA6ZW51bSBvYV90YzZfcmVnaXN0ZXJfb3Age1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMTQxLVx0T0FfVEM2X0NUUkxfUkVHX1JFQUQgPSAwLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTE0NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjE0NTplbnVtIG9hX3RjNl9kYXRhX3ZhbGlkX2luZm8ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMTQ2LVx0T0FfVEM2X0RBVEFfSU5WQUxJRCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0xNDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzoxNTA6ZW51bSBvYV90YzZfZGF0YV9zdGFydF92YWxpZF9pbmZvIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTE1MS1cdE9BX1RDNl9EQVRBX1NUQVJUX0lOVkFMSUQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMTU0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MTU1OmVudW0gb2FfdGM2X2RhdGFfZW5kX3ZhbGlkX2luZm8ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMTU2LVx0T0FfVEM2X0RBVEFfRU5EX0lOVkFMSUQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMTU5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MTYwOnN0YXRpYyBpbnQgb2FfdGM2X3NwaV90cmFuc2ZlcihzdHJ1Y3Qgb2FfdGM2ICp0YzYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzoxNjE6XHRcdFx0ICAgICAgIGVudW0gb2FfdGM2X2hlYWRlcl90eXBlIGhlYWRlcl90eXBlLCB1MTYgbGVuZ3RoKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMTYyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0xODAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzoxODE6c3RhdGljIGludCBvYV90YzZfZ2V0X3Bhcml0eSh1MzIgcClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTE4Mi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMTkzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MTk0OnN0YXRpYyBfX2JlMzIgb2FfdGM2X3ByZXBhcmVfY3RybF9oZWFkZXIodTMyIGFkZHIsIHU4IGxlbmd0aCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjE5NTpcdFx0XHRcdFx0IGVudW0gb2FfdGM2X3JlZ2lzdGVyX29wIHJlZ19vcClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTE5Ni17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMjA1LVx0aGVhZGVyIHw9IEZJRUxEX1BSRVAoT0FfVEM2X0NUUkxfSEVBREVSX1BBUklUWSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjIwNjpcdFx0XHQgICAgIG9hX3RjNl9nZXRfcGFyaXR5KGhlYWRlcikpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMjA3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTIxMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjIxMTpzdGF0aWMgdm9pZCBvYV90YzZfdXBkYXRlX2N0cmxfd3JpdGVfZGF0YShzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHUzMiB2YWx1ZVtdLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMjEyLVx0XHRcdFx0XHQgIHU4IGxlbmd0aClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0yMTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzoyMjA6c3RhdGljIHUxNiBvYV90YzZfY2FsY3VsYXRlX2N0cmxfYnVmX3NpemUodTggbGVuZ3RoKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMjIxLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0yMjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzoyMjk6c3RhdGljIHZvaWQgb2FfdGM2X3ByZXBhcmVfY3RybF9zcGlfYnVmKHN0cnVjdCBvYV90YzYgKnRjNiwgdTMyIGFkZHJlc3MsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0yMzAtXHRcdFx0XHRcdHUzMiB2YWx1ZVtdLCB1OCBsZW5ndGgsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzoyMzE6XHRcdFx0XHRcdGVudW0gb2FfdGM2X3JlZ2lzdGVyX29wIHJlZ19vcClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTIzMi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMjM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MjM1Olx0KnR4X2J1ZiA9IG9hX3RjNl9wcmVwYXJlX2N0cmxfaGVhZGVyKGFkZHJlc3MsIGxlbmd0aCwgcmVnX29wKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTIzNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTIzNy1cdGlmIChyZWdfb3AgPT0gT0FfVEM2X0NUUkxfUkVHX1dSSVRFKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MjM4Olx0XHRvYV90YzZfdXBkYXRlX2N0cmxfd3JpdGVfZGF0YSh0YzYsIHZhbHVlLCBsZW5ndGgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMjM5LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTI0MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjI0MTpzdGF0aWMgaW50IG9hX3RjNl9jaGVja19jdHJsX3dyaXRlX3JlcGx5KHN0cnVjdCBvYV90YzYgKnRjNiwgdTggc2l6ZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTI0Mi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMjU2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MjU3OnN0YXRpYyBpbnQgb2FfdGM2X2NoZWNrX2N0cmxfcmVhZF9yZXBseShzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHU4IHNpemUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0yNTgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTI3MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjI3MTpzdGF0aWMgdm9pZCBvYV90YzZfY29weV9jdHJsX3JlYWRfZGF0YShzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHUzMiB2YWx1ZVtdLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMjcyLVx0XHRcdFx0ICAgICAgIHU4IGxlbmd0aClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0yODAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzoyODE6c3RhdGljIGludCBvYV90YzZfcGVyZm9ybV9jdHJsKHN0cnVjdCBvYV90YzYgKnRjNiwgdTMyIGFkZHJlc3MsIHUzMiB2YWx1ZVtdLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MjgyOlx0XHRcdCAgICAgICB1OCBsZW5ndGgsIGVudW0gb2FfdGM2X3JlZ2lzdGVyX29wIHJlZ19vcClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTI4My17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMjg3LVx0LyogUHJlcGFyZSBjb250cm9sIGNvbW1hbmQgYW5kIGNvcHkgdG8gU1BJIGNvbnRyb2wgYnVmZmVyICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzoyODg6XHRvYV90YzZfcHJlcGFyZV9jdHJsX3NwaV9idWYodGM2LCBhZGRyZXNzLCB2YWx1ZSwgbGVuZ3RoLCByZWdfb3ApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMjg5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MjkwOlx0c2l6ZSA9IG9hX3RjNl9jYWxjdWxhdGVfY3RybF9idWZfc2l6ZShsZW5ndGgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMjkxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMjkyLVx0LyogUGVyZm9ybSBTUEkgdHJhbnNmZXIgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjI5MzpcdHJldCA9IG9hX3RjNl9zcGlfdHJhbnNmZXIodGM2LCBPQV9UQzZfQ1RSTF9IRUFERVIsIHNpemUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMjk0LVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTMwMS1cdGlmIChyZWdfb3AgPT0gT0FfVEM2X0NUUkxfUkVHX1dSSVRFKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MzAyOlx0XHRyZXR1cm4gb2FfdGM2X2NoZWNrX2N0cmxfd3JpdGVfcmVwbHkodGM2LCBzaXplKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTMwMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTMwNC1cdC8qIENoZWNrIGVjaG9lZC9yZWNlaXZlZCBjb250cm9sIHJlYWQgY29tbWFuZCByZXBseSBmb3IgZXJyb3JzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzozMDU6XHRyZXQgPSBvYV90YzZfY2hlY2tfY3RybF9yZWFkX3JlcGx5KHRjNiwgc2l6ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0zMDYtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTMwOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjMwOTpcdG9hX3RjNl9jb3B5X2N0cmxfcmVhZF9kYXRhKHRjNiwgdmFsdWUsIGxlbmd0aCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0zMTAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMzE0LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MzE1OiAqIG9hX3RjNl9yZWFkX3JlZ2lzdGVycyAtIGZ1bmN0aW9uIGZvciByZWFkaW5nIG11bHRpcGxlIGNvbnNlY3V0aXZlIHJlZ2lzdGVycy5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjMxNjogKiBAdGM2OiBvYV90YzYgc3RydWN0LlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMzE3LSAqIEBhZGRyZXNzOiBhZGRyZXNzIG9mIHRoZSBmaXJzdCByZWdpc3RlciB0byBiZSByZWFkIGluIHRoZSBNQUMtUEhZLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTMyNC0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjMyNTppbnQgb2FfdGM2X3JlYWRfcmVnaXN0ZXJzKHN0cnVjdCBvYV90YzYgKnRjNiwgdTMyIGFkZHJlc3MsIHUzMiB2YWx1ZVtdLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMzI2LVx0XHRcdCAgdTggbGVuZ3RoKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTMzNS1cdG11dGV4X2xvY2soXHUwMDI2dGM2LVx1MDAzZXNwaV9jdHJsX2xvY2spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MzM2Olx0cmV0ID0gb2FfdGM2X3BlcmZvcm1fY3RybCh0YzYsIGFkZHJlc3MsIHZhbHVlLCBsZW5ndGgsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0zMzctXHRcdFx0XHQgIE9BX1RDNl9DVFJMX1JFR19SRUFEKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0zNDEtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MzQyOkVYUE9SVF9TWU1CT0xfR1BMKG9hX3RjNl9yZWFkX3JlZ2lzdGVycyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0zNDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0zNDQtLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzozNDU6ICogb2FfdGM2X3JlYWRfcmVnaXN0ZXIgLSBmdW5jdGlvbiBmb3IgcmVhZGluZyBhIE1BQy1QSFkgcmVnaXN0ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzozNDY6ICogQHRjNjogb2FfdGM2IHN0cnVjdC5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTM0Ny0gKiBAYWRkcmVzczogcmVnaXN0ZXIgYWRkcmVzcyBvZiB0aGUgTUFDLVBIWSB0byBiZSByZWFkLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTM1MS0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjM1MjppbnQgb2FfdGM2X3JlYWRfcmVnaXN0ZXIoc3RydWN0IG9hX3RjNiAqdGM2LCB1MzIgYWRkcmVzcywgdTMyICp2YWx1ZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTM1My17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzozNTQ6XHRyZXR1cm4gb2FfdGM2X3JlYWRfcmVnaXN0ZXJzKHRjNiwgYWRkcmVzcywgdmFsdWUsIDEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMzU1LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjM1NjpFWFBPUlRfU1lNQk9MX0dQTChvYV90YzZfcmVhZF9yZWdpc3Rlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0zNTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0zNTgtLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzozNTk6ICogb2FfdGM2X3dyaXRlX3JlZ2lzdGVycyAtIGZ1bmN0aW9uIGZvciB3cml0aW5nIG11bHRpcGxlIGNvbnNlY3V0aXZlIHJlZ2lzdGVycy5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjM2MDogKiBAdGM2OiBvYV90YzYgc3RydWN0LlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMzYxLSAqIEBhZGRyZXNzOiBhZGRyZXNzIG9mIHRoZSBmaXJzdCByZWdpc3RlciB0byBiZSB3cml0dGVuIGluIHRoZSBNQUMtUEhZLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTM2OC0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjM2OTppbnQgb2FfdGM2X3dyaXRlX3JlZ2lzdGVycyhzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHUzMiBhZGRyZXNzLCB1MzIgdmFsdWVbXSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTM3MC1cdFx0XHQgICB1OCBsZW5ndGgpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMzc5LVx0bXV0ZXhfbG9jayhcdTAwMjZ0YzYtXHUwMDNlc3BpX2N0cmxfbG9jayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzozODA6XHRyZXQgPSBvYV90YzZfcGVyZm9ybV9jdHJsKHRjNiwgYWRkcmVzcywgdmFsdWUsIGxlbmd0aCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTM4MS1cdFx0XHRcdCAgT0FfVEM2X0NUUkxfUkVHX1dSSVRFKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0zODUtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6Mzg2OkVYUE9SVF9TWU1CT0xfR1BMKG9hX3RjNl93cml0ZV9yZWdpc3RlcnMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMzg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMzg4LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6Mzg5OiAqIG9hX3RjNl93cml0ZV9yZWdpc3RlciAtIGZ1bmN0aW9uIGZvciB3cml0aW5nIGEgTUFDLVBIWSByZWdpc3Rlci5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjM5MDogKiBAdGM2OiBvYV90YzYgc3RydWN0LlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMzkxLSAqIEBhZGRyZXNzOiByZWdpc3RlciBhZGRyZXNzIG9mIHRoZSBNQUMtUEhZIHRvIGJlIHdyaXR0ZW4uXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMzk1LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6Mzk2OmludCBvYV90YzZfd3JpdGVfcmVnaXN0ZXIoc3RydWN0IG9hX3RjNiAqdGM2LCB1MzIgYWRkcmVzcywgdTMyIHZhbHVlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMzk3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjM5ODpcdHJldHVybiBvYV90YzZfd3JpdGVfcmVnaXN0ZXJzKHRjNiwgYWRkcmVzcywgXHUwMDI2dmFsdWUsIDEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMzk5LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjQwMDpFWFBPUlRfU1lNQk9MX0dQTChvYV90YzZfd3JpdGVfcmVnaXN0ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNDAxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NDAyOnN0YXRpYyBpbnQgb2FfdGM2X2NoZWNrX3BoeV9yZWdfZGlyZWN0X2FjY2Vzc19jYXBhYmlsaXR5KHN0cnVjdCBvYV90YzYgKnRjNilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQwMy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNDA2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NDA3Olx0cmV0ID0gb2FfdGM2X3JlYWRfcmVnaXN0ZXIodGM2LCBPQV9UQzZfUkVHX1NURENBUCwgXHUwMDI2cmVndmFsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQwOC1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNDE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NDE3OnN0YXRpYyB2b2lkIG9hX3RjNl9oYW5kbGVfbGlua19jaGFuZ2Uoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQxOC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNDIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NDIyOnN0YXRpYyBpbnQgb2FfdGM2X21kaW9idXNfcmVhZChzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgYWRkciwgaW50IHJlZ251bSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQyMy17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo0MjQ6XHRzdHJ1Y3Qgb2FfdGM2ICp0YzYgPSBidXMtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQyNS1cdHUzMiByZWd2YWw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNDI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NDI4Olx0cmV0ID0gb2FfdGM2X3JlYWRfcmVnaXN0ZXIodGM2LCBPQV9UQzZfUEhZX1NURF9SRUdfQUREUl9CQVNFIHxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQyOS1cdFx0XHRcdCAgIChyZWdudW0gXHUwMDI2IE9BX1RDNl9QSFlfU1REX1JFR19BRERSX01BU0spLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQzNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjQzNzpzdGF0aWMgaW50IG9hX3RjNl9tZGlvYnVzX3dyaXRlKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBhZGRyLCBpbnQgcmVnbnVtLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNDM4LVx0XHRcdFx0dTE2IHZhbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQzOS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo0NDA6XHRzdHJ1Y3Qgb2FfdGM2ICp0YzYgPSBidXMtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQ0MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjQ0MjpcdHJldHVybiBvYV90YzZfd3JpdGVfcmVnaXN0ZXIodGM2LCBPQV9UQzZfUEhZX1NURF9SRUdfQUREUl9CQVNFIHxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQ0My1cdFx0XHRcdCAgICAgKHJlZ251bSBcdTAwMjYgT0FfVEM2X1BIWV9TVERfUkVHX0FERFJfTUFTSyksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNDQ2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NDQ3OnN0YXRpYyBpbnQgb2FfdGM2X2dldF9waHlfYzQ1X21tcyhpbnQgZGV2bnVtKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNDQ4LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy00NjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo0NjU6c3RhdGljIGludCBvYV90YzZfbWRpb2J1c19yZWFkX2M0NShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgYWRkciwgaW50IGRldm51bSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQ2Ni1cdFx0XHRcdCAgIGludCByZWdudW0pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy00Njcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NDY4Olx0c3RydWN0IG9hX3RjNiAqdGM2ID0gYnVzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy00NjktXHR1MzIgcmVndmFsO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQ3MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjQ3MjpcdHJldCA9IG9hX3RjNl9nZXRfcGh5X2M0NV9tbXMoZGV2bnVtKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQ3My1cdGlmIChyZXQgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNDc1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NDc2Olx0cmV0ID0gb2FfdGM2X3JlYWRfcmVnaXN0ZXIodGM2LCAocmV0IFx1MDAzY1x1MDAzYyAxNikgfCByZWdudW0sIFx1MDAyNnJlZ3ZhbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy00NzctXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQ4Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjQ4MzpzdGF0aWMgaW50IG9hX3RjNl9tZGlvYnVzX3dyaXRlX2M0NShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgYWRkciwgaW50IGRldm51bSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQ4NC1cdFx0XHRcdCAgICBpbnQgcmVnbnVtLCB1MTYgdmFsKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNDg1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjQ4NjpcdHN0cnVjdCBvYV90YzYgKnRjNiA9IGJ1cy1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNDg3LVx0aW50IHJldDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQ4OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjQ4OTpcdHJldCA9IG9hX3RjNl9nZXRfcGh5X2M0NV9tbXMoZGV2bnVtKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQ5MC1cdGlmIChyZXQgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNDkyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NDkzOlx0cmV0dXJuIG9hX3RjNl93cml0ZV9yZWdpc3Rlcih0YzYsIChyZXQgXHUwMDNjXHUwMDNjIDE2KSB8IHJlZ251bSwgdmFsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQ5NC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy00OTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo0OTY6c3RhdGljIGludCBvYV90YzZfbWRpb2J1c19yZWdpc3RlcihzdHJ1Y3Qgb2FfdGM2ICp0YzYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy00OTcte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTUwNi1cdHRjNi1cdTAwM2VtZGlvYnVzLVx1MDAzZXByaXYgPSB0YzY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo1MDc6XHR0YzYtXHUwMDNlbWRpb2J1cy1cdTAwM2VyZWFkID0gb2FfdGM2X21kaW9idXNfcmVhZDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjUwODpcdHRjNi1cdTAwM2VtZGlvYnVzLVx1MDAzZXdyaXRlID0gb2FfdGM2X21kaW9idXNfd3JpdGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy01MDktXHQvKiBPUEVOIEFsbGlhbmNlIDEwQkFTRS1UMXggY29tcGxpYW5jZSBNQUMtUEhZcyB3aWxsIGhhdmUgYm90aCBDMjIgYW5kXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNTE4LVx0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo1MTk6XHR0YzYtXHUwMDNlbWRpb2J1cy1cdTAwM2VyZWFkX2M0NSA9IG9hX3RjNl9tZGlvYnVzX3JlYWRfYzQ1O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NTIwOlx0dGM2LVx1MDAzZW1kaW9idXMtXHUwMDNld3JpdGVfYzQ1ID0gb2FfdGM2X21kaW9idXNfd3JpdGVfYzQ1O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNTIxLVx0dGM2LVx1MDAzZW1kaW9idXMtXHUwMDNlbmFtZSA9IFwmIzM0O29hLXRjNi1tZGlvYnVzXCYjMzQ7O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTUzNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjUzNzpzdGF0aWMgdm9pZCBvYV90YzZfbWRpb2J1c191bnJlZ2lzdGVyKHN0cnVjdCBvYV90YzYgKnRjNilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTUzOC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNTQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NTQzOnN0YXRpYyBpbnQgb2FfdGM2X3BoeV9pbml0KHN0cnVjdCBvYV90YzYgKnRjNilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTU0NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNTQ2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NTQ3Olx0cmV0ID0gb2FfdGM2X2NoZWNrX3BoeV9yZWdfZGlyZWN0X2FjY2Vzc19jYXBhYmlsaXR5KHRjNik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy01NDgtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNTUzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NTU0Olx0cmV0ID0gb2FfdGM2X21kaW9idXNfcmVnaXN0ZXIodGM2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTU1NS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNTYwLVx0XHRuZXRkZXZfZXJyKHRjNi1cdTAwM2VuZXRkZXYsIFwmIzM0O05vIFBIWSBmb3VuZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo1NjE6XHRcdG9hX3RjNl9tZGlvYnVzX3VucmVnaXN0ZXIodGM2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTU2Mi1cdFx0cmV0dXJuIC1FTk9ERVY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNTY2LVx0cmV0ID0gcGh5X2Nvbm5lY3RfZGlyZWN0KHRjNi1cdTAwM2VuZXRkZXYsIHRjNi1cdTAwM2VwaHlkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo1Njc6XHRcdFx0XHQgXHUwMDI2b2FfdGM2X2hhbmRsZV9saW5rX2NoYW5nZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTU2OC1cdFx0XHRcdCBQSFlfSU5URVJGQUNFX01PREVfSU5URVJOQUwpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTU3MS1cdFx0XHQgICB0YzYtXHUwMDNlbWRpb2J1cy1cdTAwM2VpZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo1NzI6XHRcdG9hX3RjNl9tZGlvYnVzX3VucmVnaXN0ZXIodGM2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTU3My1cdFx0cmV0dXJuIHJldDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy01ODAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo1ODE6c3RhdGljIHZvaWQgb2FfdGM2X3BoeV9leGl0KHN0cnVjdCBvYV90YzYgKnRjNilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTU4Mi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy01ODMtXHRwaHlfZGlzY29ubmVjdCh0YzYtXHUwMDNlcGh5ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjU4NDpcdG9hX3RjNl9tZGlvYnVzX3VucmVnaXN0ZXIodGM2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTU4NS19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy01ODYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo1ODc6c3RhdGljIGludCBvYV90YzZfcmVhZF9zdGF0dXMwKHN0cnVjdCBvYV90YzYgKnRjNilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTU4OC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNTkxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NTkyOlx0cmV0ID0gb2FfdGM2X3JlYWRfcmVnaXN0ZXIodGM2LCBPQV9UQzZfUkVHX1NUQVRVUzAsIFx1MDAyNnJlZ3ZhbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy01OTMtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNjAxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NjAyOnN0YXRpYyBpbnQgb2FfdGM2X3N3X3Jlc2V0X21hY3BoeShzdHJ1Y3Qgb2FfdGM2ICp0YzYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy02MDMte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTYwNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjYwNzpcdHJldCA9IG9hX3RjNl93cml0ZV9yZWdpc3Rlcih0YzYsIE9BX1RDNl9SRUdfUkVTRVQsIHJlZ3ZhbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy02MDgtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTYxMS1cdC8qIFBvbGwgZm9yIHNvZnQgcmVzZXQgY29tcGxldGUgZm9yIGV2ZXJ5IDFtcyB1bnRpbCAxcyB0aW1lb3V0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo2MTI6XHRyZXQgPSByZWFkeF9wb2xsX3RpbWVvdXQob2FfdGM2X3JlYWRfc3RhdHVzMCwgdGM2LCByZWd2YWwsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy02MTMtXHRcdFx0XHQgcmVndmFsIFx1MDAyNiBTVEFUVVMwX1JFU0VUQyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy02MTktXHQvKiBDbGVhciB0aGUgcmVzZXQgY29tcGxldGUgc3RhdHVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo2MjA6XHRyZXR1cm4gb2FfdGM2X3dyaXRlX3JlZ2lzdGVyKHRjNiwgT0FfVEM2X1JFR19TVEFUVVMwLCByZWd2YWwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNjIxLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTYyMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjYyMzpzdGF0aWMgaW50IG9hX3RjNl91bm1hc2tfbWFjcGh5X2Vycm9yX2ludGVycnVwdHMoc3RydWN0IG9hX3RjNiAqdGM2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNjI0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy02MjctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo2Mjg6XHRyZXQgPSBvYV90YzZfcmVhZF9yZWdpc3Rlcih0YzYsIE9BX1RDNl9SRUdfSU5UX01BU0swLCBcdTAwMjZyZWd2YWwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNjI5LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy02MzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo2Mzc6XHRyZXR1cm4gb2FfdGM2X3dyaXRlX3JlZ2lzdGVyKHRjNiwgT0FfVEM2X1JFR19JTlRfTUFTSzAsIHJlZ3ZhbCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy02MzgtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNjM5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NjQwOnN0YXRpYyBpbnQgb2FfdGM2X2VuYWJsZV9kYXRhX3RyYW5zZmVyKHN0cnVjdCBvYV90YzYgKnRjNilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTY0MS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNjQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NjQ1Olx0cmV0ID0gb2FfdGM2X3JlYWRfcmVnaXN0ZXIodGM2LCBPQV9UQzZfUkVHX0NPTkZJRzAsIFx1MDAyNnZhbHVlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTY0Ni1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNjUxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NjUyOlx0cmV0dXJuIG9hX3RjNl93cml0ZV9yZWdpc3Rlcih0YzYsIE9BX1RDNl9SRUdfQ09ORklHMCwgdmFsdWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNjUzLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTY1NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjY1NTpzdGF0aWMgdm9pZCBvYV90YzZfY2xlYW51cF9vbmdvaW5nX3J4X3NrYihzdHJ1Y3Qgb2FfdGM2ICp0YzYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy02NTYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTY2My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjY2NDpzdGF0aWMgdm9pZCBvYV90YzZfY2xlYW51cF9vbmdvaW5nX3R4X3NrYihzdHJ1Y3Qgb2FfdGM2ICp0YzYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy02NjUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTY3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjY3MzpzdGF0aWMgdm9pZCBvYV90YzZfY2xlYW51cF93YWl0aW5nX3R4X3NrYihzdHJ1Y3Qgb2FfdGM2ICp0YzYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy02NzQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTY4Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjY4ODpzdGF0aWMgdm9pZCBvYV90YzZfZnJlZV9wZW5kaW5nX3NrYnMoc3RydWN0IG9hX3RjNiAqdGM2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNjg5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjY5MDpcdG9hX3RjNl9jbGVhbnVwX29uZ29pbmdfdHhfc2tiKHRjNik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo2OTE6XHRvYV90YzZfY2xlYW51cF9vbmdvaW5nX3J4X3NrYih0YzYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NjkyOlx0b2FfdGM2X2NsZWFudXBfd2FpdGluZ190eF9za2IodGM2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTY5My19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy02OTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo2OTU6c3RhdGljIHZvaWQgb2FfdGM2X2xvb2tfZm9yX25ld19mcmFtZShzdHJ1Y3Qgb2FfdGM2ICp0YzYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy02OTYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNjk3LVx0dGM2LVx1MDAzZXJ4X2J1Zl9vdmVyZmxvdyA9IHRydWU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo2OTg6XHRvYV90YzZfY2xlYW51cF9vbmdvaW5nX3J4X3NrYih0YzYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNjk5LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy03MDQtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo3MDU6c3RhdGljIHZvaWQgb2FfdGM2X2Rpc2FibGVfdHJhZmZpYyhzdHJ1Y3Qgb2FfdGM2ICp0YzYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy03MDYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTcwOS1cdHRjNi1cdTAwM2VkaXNhYmxlX3RyYWZmaWMgPSB0cnVlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NzEwOlx0b2FfdGM2X2ZyZWVfcGVuZGluZ19za2JzKHRjNik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo3MTE6XHRvYV90YzZfd3JpdGVfcmVnaXN0ZXIodGM2LCBPQV9UQzZfUkVHX0lOVF9NQVNLMCwgcmVndmFsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjcxMjpcdG9hX3RjNl9yZWFkX3JlZ2lzdGVyKHRjNiwgT0FfVEM2X1JFR19TVEFUVVMwLCBcdTAwMjZyZWd2YWwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NzEzOlx0b2FfdGM2X3dyaXRlX3JlZ2lzdGVyKHRjNiwgT0FfVEM2X1JFR19TVEFUVVMwLCByZWd2YWwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNzE0LVx0ZGV2X2VycihcdTAwMjZ0YzYtXHUwMDNlc3BpLVx1MDAzZWRldiwgXCYjMzQ7RGV2aWNlIGludGVycnVwdCBkaXNhYmxlZCB0byBhdm9pZCBpbnRlcnJ1cHQgc3Rvcm1cJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTcxNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjcxNzpzdGF0aWMgaW50IG9hX3RjNl9wcm9jZXNzX2V4dGVuZGVkX3N0YXR1cyhzdHJ1Y3Qgb2FfdGM2ICp0YzYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy03MTgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTcyMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjcyMjpcdHJldCA9IG9hX3RjNl9yZWFkX3JlZ2lzdGVyKHRjNiwgT0FfVEM2X1JFR19TVEFUVVMwLCBcdTAwMjZ2YWx1ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy03MjMtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNzI5LVx0LyogQ2xlYXIgdGhlIGVycm9yIGludGVycnVwdHMgc3RhdHVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo3MzA6XHRyZXQgPSBvYV90YzZfd3JpdGVfcmVnaXN0ZXIodGM2LCBPQV9UQzZfUkVHX1NUQVRVUzAsIHZhbHVlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTczMS1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy03MzctXHRpZiAoRklFTERfR0VUKFNUQVRVUzBfUlhfQlVGRkVSX09WRVJGTE9XX0VSUk9SLCB2YWx1ZSkpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjczODpcdFx0b2FfdGM2X2xvb2tfZm9yX25ld19mcmFtZSh0YzYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNzM5LVx0XHRuZXRfZXJyX3JhdGVsaW1pdGVkKFwmIzM0OyVzOiBSZWNlaXZlIGJ1ZmZlciBvdmVyZmxvdyBlcnJvclxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy03NjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo3NjI6c3RhdGljIGludCBvYV90YzZfcHJvY2Vzc19yeF9jaHVua19mb290ZXIoc3RydWN0IG9hX3RjNiAqdGM2LCB1MzIgZm9vdGVyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNzYzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy03NzMtXHRpZiAoRklFTERfR0VUKE9BX1RDNl9EQVRBX0ZPT1RFUl9FWFRFTkRFRF9TVFMsIGZvb3RlcikpIHtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIyIDA0OjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4NDcyCgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogNjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBzZWUgd2hhdCYjMzk7cyBvbiBteSBtaW5kIHJlZ2FyZGluZyB0aGlzIGNvZGUgc25pcHBldC4KCioqQW5hbHl6aW5nIEtlcm5lbCBDb25maWd1cmF0aW9uIERlcGVuZGVuY2llcyoqCgpBbHJpZ2h0LCBzbyB0aGUgYG9hX3RjNmAgY29kZSBpcyBkZWZpbml0ZWx5IHRpZWQgdG8gdGhlIGBsYW44NjV4LmNgIGRyaXZlciB3aXRoaW4gdGhlIGV0aGVybmV0IG5ldHdvcmsgc3Vic3lzdGVtLiBNeSBpbW1lZGlhdGUgcXVlc3Rpb24sIG9mIGNvdXJzZSwgaXMgd2hhdCBjb25kaXRpb25zIG5lZWQgdG8gYmUgbWV0IGZvciB0aGF0IGNvZGUgdG8gZXZlbiBiZSBjb21waWxlZCBpbnRvIHRoZSBrZXJuZWw/IEl0JiMzOTtzIHRpbWUgdG8gY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gZmxhZ3MuIEkgbmVlZCB0byBkZXRlcm1pbmUgaWYgYENPTkZJR19PQV9UQzZgIG9yIGBDT05GSUdfTEFOODY1WGAgYXJlIHNldCB3aXRoaW4gdGhlIGJ1aWxkIGNvbmZpZ3VyYXRpb24sIGFzIHRoZXkgd2lsbCBsaWtlbHkgY29udHJvbCB0aGUgaW5jbHVzaW9uIG9mIHRoZSByZWxldmFudCBjb2RlLiBXaXRob3V0IGtub3dpbmcgdGhlc2UgZGVwZW5kZW5jaWVzIEkgd29uJiMzOTt0IGtub3cgaWYgdGhpcyBjb2RlIGlzIGluIHVzZSwgb3IgZXZlbiB2aWFibGUsIGluIHRoZSBjdXJyZW50IGJ1aWxkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIyIDA0OjQ5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBPQV9UQzYmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvS2NvbmZpZz0xMzk9Y29uZmlnIEVUSE9DXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvS2NvbmZpZy0xNDgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9LY29uZmlnOjE0OTpjb25maWcgT0FfVEM2XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9LY29uZmlnLTE1MC1cdHRyaXN0YXRlIFwmIzM0O09QRU4gQWxsaWFuY2UgVEM2IDEwQkFTRS1UMXggTUFDLVBIWSBzdXBwb3J0XCYjMzQ7IGlmIENPTVBJTEVfVEVTVFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIyIDA0OjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4ODM2CgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogNTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgdGhvdWdoIEkmIzM5O20gdGhpbmtpbmcgdGhyb3VnaCB0aGlzIHByb2Nlc3M6CgoqKkRpdmluZyBpbnRvIHRoZSBDb25maWd1cmF0aW9uIE9wdGlvbnMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYGNvbmZpZyBPQV9UQzZgIHNldHRpbmcsIGFuZCBpdCYjMzk7cyBmbGFnZ2VkIGFzIGEgdHJpc3RhdGUgZGVwZW5kZW50IG9uIGBDT01QSUxFX1RFU1RgLiBSaWdodCwgc28gaXQmIzM5O3MgcHJvYmFibHkgcmVsYXRlZCB0byBzdXBwb3J0aW5nIHRoZSBPUEVOIEFsbGlhbmNlIFRDNiAxMEJBU0UtVDF4IE1BQy1QSFkgaW50ZXJmYWNlLiBUaGF0IG1ha2VzIHNlbnNlLCBnaXZlbiB0aGUgY29udGV4dC4gTGV0IG1lIGp1c3QgY29uZmlybSBteSB1bmRlcnN0YW5kaW5nIGJ5IHRha2luZyBhIGxvb2sgYXQgdGhlIGBjb25maWcgTEFOODY1WGAgb3B0aW9ucyBhbmQgdGhlaXIgYXNzb2NpYXRlZCBkZXBlbmRlbmNpZXMuIEkgd2FudCB0byBtYWtlIHN1cmUgSSYjMzk7bSBmb2xsb3dpbmcgdGhlIGJpZ2dlciBwaWN0dXJlLiBVbmRlcnN0YW5kaW5nIGhvdyB0aGlzIHBhcnRpY3VsYXIgY29uZmlndXJhdGlvbiBpbnRlcmFjdHMgd2l0aCBvdGhlciBtb2R1bGVzIGlzIGNydWNpYWwgZm9yIHRoZSBvdmVyYWxsIHN5c3RlbSBhcmNoaXRlY3R1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjIgMDQ6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIExBTjg2NVgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvS2NvbmZpZz02PWlmIE5FVF9WRU5ET1JfTUlDUk9DSElQXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9LY29uZmlnLTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9LY29uZmlnOjg6Y29uZmlnIExBTjg2NVhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L0tjb25maWctOS1cdHRyaXN0YXRlIFwmIzM0O0xBTjg2NXggc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIyIDA0OjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5MTk5CgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcy4gSGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3Mgb24gZGlzc2VjdGluZyB0aGUgZGVwZW5kZW5jaWVzIG9mIHRoaXMgYExBTjg2NVhgIHRoaW5nOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBMQU44NjVYIERlcGVuZGVuY2llcyoqCgpBbHJpZ2h0LCBJJiMzOTttIHRoaW5raW5nLCAmIzM0O0xldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gV2hhdCBleGFjdGx5IGlzIHRoaXMgYExBTjg2NVhgIGRlcGVuZGVudCB1cG9uPyYjMzQ7IEl0JiMzOTtzIHRoZSBmaXJzdCBzdGVwIGluIHVuZGVyc3RhbmRpbmcgdGhlIG92ZXJhbGwgcGljdHVyZSwgaW4gdHJvdWJsZXNob290aW5nLCBhbmQgaW4gZGVzaWduaW5nIGEgcm9idXN0IHNvbHV0aW9uIHVzaW5nIGl0LiBJIG5lZWQgdG8ga25vdyB0aGUgZm91bmRhdGlvbiwgd2hhdCBpdCBsZWFucyBvbiwgYW5kIHdoZXJlIGl0IGdldHMgaXRzIHN1cHBvcnQuIFNvIEkmIzM5O2xsIHN0YXJ0IGJ5IGRpZ2dpbmcgZm9yIHRob3NlIGNyaXRpY2FsIGJ1aWxkaW5nIGJsb2Nrcy4gVW5kZXJzdGFuZGluZyBkZXBlbmRlbmNpZXMgaXMga2V5IHRvIGFueSBhcmNoaXRlY3R1cmFsIHJldmlldywgYW5kIGV2ZW4gaGVscHMgd2l0aCBkZWJ1Z2dpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIyIDA0OjQ5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMTAwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHQjXG4gICAzOlx0IyBNaWNyb2NoaXAgTEFOODY1eCBEcml2ZXIgU3VwcG9ydFxuICAgNDpcdCNcbiAgIDU6XHRcbiAgIDY6XHRpZiBORVRfVkVORE9SX01JQ1JPQ0hJUFxuICAgNzpcdFxuICAgODpcdGNvbmZpZyBMQU44NjVYXG4gICA5Olx0XHR0cmlzdGF0ZSBcJiMzNDtMQU44NjV4IHN1cHBvcnRcJiMzNDtcbiAgMTA6XHRcdGRlcGVuZHMgb24gU1BJXG4gIDExOlx0XHRzZWxlY3QgT0FfVEM2XG4gIDEyOlx0XHRoZWxwXG4gIDEzOlx0XHQgIFN1cHBvcnQgZm9yIHRoZSBNaWNyb2NoaXAgTEFOODY1MC8xIFJldi5CMC9CMSBNQUNQSFkgRXRoZXJuZXQgY2hpcC4gSXRcbiAgMTQ6XHRcdCAgdXNlcyBPUEVOIEFsbGlhbmNlIDEwQkFTRS1UMXggU2VyaWFsIEludGVyZmFjZSBzcGVjaWZpY2F0aW9uLlxuICAxNTpcdFxuICAxNjpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLiBUaGUgbW9kdWxlIHdpbGwgYmVcbiAgMTc6XHRcdCAgY2FsbGVkIGxhbjg2NXguXG4gIDE4Olx0XG4gIDE5Olx0ZW5kaWYgIyBORVRfVkVORE9SX01JQ1JPQ0hJUFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMiAwNDo0OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTY2MQoJCQkJCQkJb3V0cHV0OiAyNQoJCQkJCQkJdGhvdWdodHM6IDMwNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBTUEkgRGVlcCBEaXZlKioKCk9rYXksIHNvIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgaG93IHRvIGFwcHJvYWNoIHRoaXMgZnJvbSBhIHRlc3RpbmcgcGVyc3BlY3RpdmUsIHNwZWNpZmljYWxseSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBUaGUga2V5IHF1ZXN0aW9uIGlzIGFsd2F5czogKkNhbiBJIHJlYWNoIFNQST8qIEFuZCB5ZXMsIGl0IHNlZW1zIGxpa2UgdGhlcmUgYXJlIG9wdGlvbnMuIEkgY291bGQgbGV2ZXJhZ2UgYHNwaS1tb2NrdXBgLCBgc3BpLWxvb3BiYWNrLXRlc3RgLCBvciBldmVuIGBzcGlkZXZgLiBTeXprYWxsZXIsIG9mIGNvdXJzZSwgKnNob3VsZCogYmUgaW4gdGhlIG1peCwgYnV0IEkmIzM5O20gdHJ5aW5nIHRvIHJlbWVtYmVyIGlmIGl0IGhhcyBhIGRpcmVjdCBTUEkgaW5qZWN0aW9uIGNhcGFiaWxpdHksIHNvbWV0aGluZyBha2luIHRvIFVTQiBnYWRnZXQgb3IgbWFjODAyMTFfaHdzaW0sIGJ1dCB3YWl0Li4uIEkmIzM5O20gcHJldHR5IHN1cmUgdGhlcmUgaXNuJiMzOTt0IGEgKnN0YW5kYXJkKiBTUEkgc29mdHdhcmUgaW5qZWN0aW9uIGZyYW1ld29yayB1bmxlc3MgdGhlcmUmIzM5O3Mgc29tZSB2ZXJ5IHNwZWNpZmljIG1vY2sgZHJpdmVyLgoKV2FpdCwgU3l6a2FsbGVyIGRvZXNuJiMzOTt0IGhhdmUgKmdlbmVyaWMqIFNQSSBwYWNrZXQgaW5qZWN0aW9uLCBidXQgSSBkbyByZW1lbWJlciBpdCBmdXp6aW5nIFNQSSBkcml2ZXJzIGlmIHRoZXkgZXhwb3NlIGEgY2hhcmFjdGVyIGRldmljZSBvciB0aGVyZSYjMzk7cyBhIG1vY2t1cC4gU28gaXQgKmNhbiogZnV6eiBTUEksIGlmIHRoZSBkZXZpY2UgaXMgaW5zdGFudGlhdGVkLgoKV2hpY2ggYnJpbmdzIG1lIHRvIHRoZSBjb3JlIHByb2JsZW0uIEhvdyBpcyBgbGFuODY1eGAgaW5zdGFudGlhdGVkPyBJdCAqaXMqIGFuIFNQSSBkZXZpY2UuIFRoZSB1c3VhbCBzdXNwZWN0cyBmb3IgaW5zdGFudGlhdGlvbiBhcmUgZGV2aWNlIHRyZWUgb3IgQUNQSS4gRG9lcyBTeXprYWxsZXIgaGF2ZSBhIHdheSB0byBpbmplY3QgZGV2aWNlIHRyZWUgbm9kZXMsIG9yIHVzZSBgc3BpX25ld19kZXZpY2VgPyBJIGRvbiYjMzk7dCB0aGluayBzby4uLiBpdCBzZWVtcyBpdCBsYWNrcyBhICpnZW5lcmljKiB3YXkgdG8gaW5zdGFudGlhdGUgYXJiaXRyYXJ5IFNQSSBkZXZpY2VzLCB1bmxlc3MgdGhlcmUmIzM5O3MgYSBkZWRpY2F0ZWQgcHNldWRvLWRldmljZSBvciBhIGBzeXpfZGV2X2luaXRgIHRyaWNrIHRvIGJlIGRvbmUuCgpIb2xkIG9uIGEgc2Vjb25kLCB3YXNuJiMzOTt0IHRoZXJlIHNvbWV0aGluZyBhYm91dCBTeXprYWxsZXIgYWRkaW5nICpzb21lKiBTUEkgZnV6emluZyBzdXBwb3J0IHJlY2VudGx5PyBNYXliZSBpdCBqdXN0IGZ1enplcyB0aGUgbmV0ZGV2IGlmIGl0IGlzIGluc3RhbnRpYXRlZCwgdGhhdCYjMzk7cyB3aGF0JiMzOTtzIHJpbmdpbmcgdGhlIGJlbGwuIEJ1dCBpZiBpdCYjMzk7cyBub3QgaW5zdGFudGlhdGVkLCB0aGUgY29kZSBpcyBlZmZlY3RpdmVseSB1bnJlYWNoYWJsZSEKClNvLCB0aGUgbmV4dCBzdGVwIGlzIGNsZWFyLiBJIG5lZWQgdG8gZmlndXJlIG91dCAqaG93KiB0byBpbnN0YW50aWF0ZSBgbGFuODY1eGAuIFRoYXQmIzM5O3MgdGhlIGtleSB0byBldmVyeXRoaW5nIGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIyIDA0OjUwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2xhbjg2NXgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7TUFJTlRBSU5FUlM9MTc0Njk9RjpcdERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWljcm9jaGlwLGxhbjg2NTAueWFtbFxuTUFJTlRBSU5FUlM6MTc0NzA6RjpcdGRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguY1xuTUFJTlRBSU5FUlMtMTc0NzEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL0tjb25maWc9NDU9Y29uZmlnIExBTjc0M1hcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvS2NvbmZpZy01OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9LY29uZmlnOjYwOnNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9LY29uZmlnXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvS2NvbmZpZy02MS1zb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvS2NvbmZpZ1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9NYWtlZmlsZT0xMD1sYW43NDN4LW9ianMgOj0gbGFuNzQzeF9tYWluLm8gbGFuNzQzeF9ldGh0b29sLm8gbGFuNzQzeF9wdHAub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL01ha2VmaWxlLTExLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL01ha2VmaWxlOjEyOm9iai0kKENPTkZJR19MQU44NjVYKSAmIzQzOz0gbGFuODY1eC9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9NYWtlZmlsZS0xMy1vYmotJChDT05GSUdfTEFOOTY2WF9TV0lUQ0gpICYjNDM7PSBsYW45NjZ4L1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L0tjb25maWc9OD1jb25maWcgTEFOODY1WFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L0tjb25maWctMTYtXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuIFRoZSBtb2R1bGUgd2lsbCBiZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvS2NvbmZpZzoxNzpcdCAgY2FsbGVkIGxhbjg2NXguXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9LY29uZmlnLTE4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L01ha2VmaWxlLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19MQU44NjVYKSAmIzQzOz0gbGFuODY1eC5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTM4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjM5OnN0cnVjdCBsYW44NjV4X3ByaXYge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQwLVx0c3RydWN0IHdvcmtfc3RydWN0IG11bHRpY2FzdF93b3JrO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo0NjpzdGF0aWMgaW50IGxhbjg2NXhfc2V0X2h3X21hY2FkZHJfbG93X2J5dGVzKHN0cnVjdCBvYV90YzYgKnRjNiwgY29uc3QgdTggKm1hYylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00Ny17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTU0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjU1OnN0YXRpYyBpbnQgbGFuODY1eF9zZXRfaHdfbWFjYWRkcihzdHJ1Y3QgbGFuODY1eF9wcml2ICpwcml2LCBjb25zdCB1OCAqbWFjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTU2LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNjEtXHQvKiBDb25maWd1cmUgTUFDIGFkZHJlc3MgbG93IGJ5dGVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NjI6XHRyZXQgPSBsYW44NjV4X3NldF9od19tYWNhZGRyX2xvd19ieXRlcyhwcml2LVx1MDAzZXRjNiwgbWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy02My1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTc1LVx0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NzY6XHRyZXN0b3JlX3JldCA9IGxhbjg2NXhfc2V0X2h3X21hY2FkZHJfbG93X2J5dGVzKHByaXYtXHUwMDNldGM2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTc3LVx0XHRcdFx0XHRcdCAgICAgICBwcml2LVx1MDAzZW5ldGRldi1cdTAwM2VkZXZfYWRkcik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTgzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjg0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgbGFuODY1eF9ldGh0b29sX29wcyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy04NS1cdC5nZXRfbGlua19rc2V0dGluZ3MgPSBwaHlfZXRodG9vbF9nZXRfbGlua19rc2V0dGluZ3MsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTg4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjg5OnN0YXRpYyBpbnQgbGFuODY1eF9zZXRfbWFjX2FkZHJlc3Moc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgdm9pZCAqYWRkcilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy05MC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6OTE6XHRzdHJ1Y3QgbGFuODY1eF9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy05Mi1cdHN0cnVjdCBzb2NrYWRkciAqYWRkcmVzcyA9IGFkZHI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTEwMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoxMDI6XHRyZXQgPSBsYW44NjV4X3NldF9od19tYWNhZGRyKHByaXYsIGFkZHJlc3MtXHUwMDNlc2FfZGF0YSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMTAzLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM9MTExPXN0YXRpYyB1MzIgZ2V0X2FkZHJlc3NfYml0KHU4IGFkZHJbRVRIX0FMRU5dLCB1MzIgYml0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0xMTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MTE2OnN0YXRpYyB1MzIgbGFuODY1eF9oYXNoKHU4IGFkZHJbRVRIX0FMRU5dKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTExNy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTEzMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoxMzI6c3RhdGljIGludCBsYW44NjV4X3NldF9zcGVjaWZpY19tdWx0aWNhc3RfYWRkcihzdHJ1Y3QgbGFuODY1eF9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTEzMy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTEzOS1cdG5ldGRldl9mb3JfZWFjaF9tY19hZGRyKGhhLCBwcml2LVx1MDAzZW5ldGRldikge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjE0MDpcdFx0dTMyIGJpdF9udW0gPSBsYW44NjV4X2hhc2goaGEtXHUwMDNlYWRkcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMTQxLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0xNjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MTY0OnN0YXRpYyBpbnQgbGFuODY1eF9zZXRfYWxsX211bHRpY2FzdF9hZGRyKHN0cnVjdCBsYW44NjV4X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMTY1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjE4NjpzdGF0aWMgaW50IGxhbjg2NXhfY2xlYXJfYWxsX211bHRpY2FzdF9hZGRyKHN0cnVjdCBsYW44NjV4X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMTg3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjA0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjIwNTpzdGF0aWMgdm9pZCBsYW44NjV4X211bHRpY2FzdF93b3JrX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTIwNi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MjA3Olx0c3RydWN0IGxhbjg2NXhfcHJpdiAqcHJpdiA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgbGFuODY1eF9wcml2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTIwOC1cdFx0XHRcdFx0XHQgbXVsdGljYXN0X3dvcmspO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yMTgtXHRcdC8qIEVuYWJsaW5nIGFsbCBtdWx0aWNhc3QgbW9kZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjIxOTpcdFx0aWYgKGxhbjg2NXhfc2V0X2FsbF9tdWx0aWNhc3RfYWRkcihwcml2KSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yMjAtXHRcdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yMjYtXHRcdC8qIEVuYWJsaW5nIHNwZWNpZmljIG11bHRpY2FzdCBtb2RlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MjI3Olx0XHRpZiAobGFuODY1eF9zZXRfc3BlY2lmaWNfbXVsdGljYXN0X2FkZHIocHJpdikpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjI4LVx0XHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjM0LVx0XHQvKiBFbmFibGluZyBsb2NhbCBtYWMgYWRkcmVzcyBvbmx5ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MjM1Olx0XHRpZiAobGFuODY1eF9jbGVhcl9hbGxfbXVsdGljYXN0X2FkZHIocHJpdikpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjM2LVx0XHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjQzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjI0NDpzdGF0aWMgdm9pZCBsYW44NjV4X3NldF9tdWx0aWNhc3RfbGlzdChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI0NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MjQ2Olx0c3RydWN0IGxhbjg2NXhfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjQ3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yNTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MjUxOnN0YXRpYyBuZXRkZXZfdHhfdCBsYW44NjV4X3NlbmRfcGFja2V0KHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjUyLVx0XHRcdFx0ICAgICAgIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjUzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoyNTQ6XHRzdHJ1Y3QgbGFuODY1eF9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yNTUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI1OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoyNTk6c3RhdGljIGludCBsYW44NjV4X2h3X2Rpc2FibGUoc3RydWN0IGxhbjg2NXhfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yNjAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yNzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6Mjc0OnN0YXRpYyBpbnQgbGFuODY1eF9uZXRfY2xvc2Uoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yNzUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjI3NjpcdHN0cnVjdCBsYW44NjV4X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI3Ny1cdGludCByZXQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI4MC1cdHBoeV9zdG9wKG5ldGRldi1cdTAwM2VwaHlkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjI4MTpcdHJldCA9IGxhbjg2NXhfaHdfZGlzYWJsZShwcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yODItXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI4OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoyOTA6c3RhdGljIGludCBsYW44NjV4X2h3X2VuYWJsZShzdHJ1Y3QgbGFuODY1eF9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI5MS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTMwNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozMDU6c3RhdGljIGludCBsYW44NjV4X25ldF9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzA2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozMDc6XHRzdHJ1Y3QgbGFuODY1eF9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zMDgtXHRpbnQgcmV0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTMwOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozMTA6XHRyZXQgPSBsYW44NjV4X2h3X2VuYWJsZShwcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zMTEtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTMyMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozMjM6c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBsYW44NjV4X25ldGRldl9vcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MzI0Olx0Lm5kb19vcGVuXHRcdD0gbGFuODY1eF9uZXRfb3BlbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozMjU6XHQubmRvX3N0b3BcdFx0PSBsYW44NjV4X25ldF9jbG9zZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozMjY6XHQubmRvX3N0YXJ0X3htaXRcdFx0PSBsYW44NjV4X3NlbmRfcGFja2V0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjMyNzpcdC5uZG9fc2V0X3J4X21vZGVcdD0gbGFuODY1eF9zZXRfbXVsdGljYXN0X2xpc3QsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MzI4Olx0Lm5kb19zZXRfbWFjX2FkZHJlc3NcdD0gbGFuODY1eF9zZXRfbWFjX2FkZHJlc3MsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzI5LVx0Lm5kb192YWxpZGF0ZV9hZGRyXHQ9IGV0aF92YWxpZGF0ZV9hZGRyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zMzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MzMzOnN0YXRpYyBpbnQgbGFuODY1eF9wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTMzNC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzM1LVx0c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozMzY6XHRzdHJ1Y3QgbGFuODY1eF9wcml2ICpwcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTMzNy1cdGludCByZXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzM4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjMzOTpcdG5ldGRldiA9IGFsbG9jX2V0aGVyZGV2KHNpemVvZihzdHJ1Y3QgbGFuODY1eF9wcml2KSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzQwLVx0aWYgKCFuZXRkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTM0Ni1cdHNwaV9zZXRfZHJ2ZGF0YShzcGksIHByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjM0NzpcdElOSVRfV09SSyhcdTAwMjZwcml2LVx1MDAzZW11bHRpY2FzdF93b3JrLCBsYW44NjV4X211bHRpY2FzdF93b3JrX2hhbmRsZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTM0OC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzkxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjM5MjpcdHJldCA9IGxhbjg2NXhfc2V0X2h3X21hY2FkZHIocHJpdiwgbmV0ZGV2LVx1MDAzZWRldl9hZGRyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zOTMtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTM5OS1cdG5ldGRldi1cdTAwM2VpcnEgPSBzcGktXHUwMDNlaXJxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjQwMDpcdG5ldGRldi1cdTAwM2VuZXRkZXZfb3BzID0gXHUwMDI2bGFuODY1eF9uZXRkZXZfb3BzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjQwMTpcdG5ldGRldi1cdTAwM2VldGh0b29sX29wcyA9IFx1MDAyNmxhbjg2NXhfZXRodG9vbF9vcHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDAyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00MTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NDE4OnN0YXRpYyB2b2lkIGxhbjg2NXhfcmVtb3ZlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDE5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo0MjA6XHRzdHJ1Y3QgbGFuODY1eF9wcml2ICpwcml2ID0gc3BpX2dldF9kcnZkYXRhKHNwaSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDIxLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00MjctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NDI4OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3BpX2RldmljZV9pZCBsYW44NjV4X2lkc1tdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQyOS1cdHsgLm5hbWUgPSBcJiMzNDtsYW44NjUwXCYjMzQ7IH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQzMi19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjQzMzpNT0RVTEVfREVWSUNFX1RBQkxFKHNwaSwgbGFuODY1eF9pZHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQzNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo0MzU6c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbGFuODY1eF9kdF9pZHNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00MzYtXHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bWljcm9jaGlwLGxhbjg2NTBcJiMzNDsgfSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDM5LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NDQwOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGxhbjg2NXhfZHRfaWRzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00NDEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NDQyOnN0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBsYW44NjV4X2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00NDMtXHQuZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQ0NC1cdFx0Lm5hbWUgPSBEUlZfTkFNRSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo0NDU6XHRcdC5vZl9tYXRjaF90YWJsZSA9IGxhbjg2NXhfZHRfaWRzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQ0Ni1cdCB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjQ0NzpcdC5wcm9iZSA9IGxhbjg2NXhfcHJvYmUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NDQ4Olx0LnJlbW92ZSA9IGxhbjg2NXhfcmVtb3ZlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjQ0OTpcdC5pZF90YWJsZSA9IGxhbjg2NXhfaWRzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQ1MC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjQ1MTptb2R1bGVfc3BpX2RyaXZlcihsYW44NjV4X2RyaXZlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDUyLVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM9Nzc9c3RhdGljIGNvbnN0IHUxNiBsYW44Njd4X3JldmIxX2ZpeHVwX21hc2tzWzEyXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTg3LSAqL1xuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzo4ODpzdGF0aWMgY29uc3QgdTMyIGxhbjg2NXhfcmV2Yl9maXh1cF9yZWdpc3RlcnNbMTddID0ge1xuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy04OS1cdDB4MDBEMCwgMHgwMEUwLCAweDAwRTksIDB4MDBGNSxcbi0tXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTk1LVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzo5NjpzdGF0aWMgY29uc3QgdTE2IGxhbjg2NXhfcmV2Yl9maXh1cF92YWx1ZXNbMTddID0ge1xuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy05Ny1cdDB4M0YzMSwgMHhDMDAwLCAweDlFNTAsIDB4MUNGOCxcbi0tXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTEwMy1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MTA0OnN0YXRpYyBjb25zdCB1MTYgbGFuODY1eF9yZXZiX2ZpeHVwX2NmZ19yZWdzWzJdID0ge1xuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0xMDUtXHQweDAwODQsIDB4MDA4QSxcbi0tXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTEwNy1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MTA4OnN0YXRpYyBjb25zdCB1MzIgbGFuODY1eF9yZXZiX3NxaV9maXh1cF9yZWdzWzEyXSA9IHtcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMTA5LVx0MHgwMEIwLCAweDAwQjEsIDB4MDBCMiwgMHgwMEIzLFxuLS1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMTEzLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoxMTQ6c3RhdGljIGNvbnN0IHUxNiBsYW44NjV4X3JldmJfc3FpX2ZpeHVwX3ZhbHVlc1sxMl0gPSB7XG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTExNS1cdDB4MDEwMywgMHgwOTEwLCAweDFEMjYsIDB4MDAyQSxcbi0tXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTExOS1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MTIwOnN0YXRpYyBjb25zdCB1MTYgbGFuODY1eF9yZXZiX3NxaV9maXh1cF9jZmdfcmVnc1szXSA9IHtcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMTIxLVx0MHgwMEFELCAweDAwQUUsIDB4MDBBRixcbi0tXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jPTEzND1zdGF0aWMgY29uc3QgdTE2IGxhbjg2N3hfcmV2ZDBfZml4dXBfdmFsdWVzWzhdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMTQ2LSAqL1xuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoxNDc6c3RhdGljIGludCBsYW44NjV4X3JldmJfaW5kaXJlY3RfcmVhZChzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2LCB1MTYgYWRkcilcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMTQ4LXtcbi0tXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTE2Ni0gKi9cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MTY3OnN0YXRpYyBpbnQgbGFuODY1eF9nZW5lcmF0ZV9jZmdfb2Zmc2V0cyhzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2LCBzOCBvZmZzZXRzW10pXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTE2OC17XG4tLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0xNzItXHRmb3IgKGludCBpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRShmaXh1cF9yZWdzKTsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MTczOlx0XHRyZXQgPSBsYW44NjV4X3JldmJfaW5kaXJlY3RfcmVhZChwaHlkZXYsIGZpeHVwX3JlZ3NbaV0pO1xuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0xNzQtXHRcdGlmIChyZXQgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0xODctXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjE4ODpzdGF0aWMgaW50IGxhbjg2NXhfcmVhZF9jZmdfcGFyYW1zKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTE4OS1cdFx0XHRcdCAgIGNvbnN0IHUxNiBjZmdfcmVnc1tdLCB1MTYgY2ZnX3BhcmFtc1tdLFxuLS1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjA0LVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyMDU6c3RhdGljIGludCBsYW44NjV4X3dyaXRlX2NmZ19wYXJhbXMoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldixcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjA2LVx0XHRcdFx0ICAgIGNvbnN0IHUxNiBjZmdfcmVnc1tdLCB1MTYgY2ZnX3BhcmFtc1tdLFxuLS1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjIwLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyMjE6c3RhdGljIGludCBsYW44NjV4X3NldHVwX2NmZ3BhcmFtKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsIHM4IG9mZnNldHNbXSlcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjIyLXtcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MjIzOlx0dTE2IGNmZ19yZXN1bHRzW0FSUkFZX1NJWkUobGFuODY1eF9yZXZiX2ZpeHVwX2NmZ19yZWdzKV07XG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjIyNDpcdHUxNiBjZmdfcGFyYW1zW0FSUkFZX1NJWkUobGFuODY1eF9yZXZiX2ZpeHVwX2NmZ19yZWdzKV07XG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTIyNS1cdGludCByZXQ7XG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTIyNi1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MjI3Olx0cmV0ID0gbGFuODY1eF9yZWFkX2NmZ19wYXJhbXMocGh5ZGV2LCBsYW44NjV4X3JldmJfZml4dXBfY2ZnX3JlZ3MsXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTIyOC1cdFx0XHRcdCAgICAgIGNmZ19wYXJhbXMsIEFSUkFZX1NJWkUoY2ZnX3BhcmFtcykpO1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjM2LVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyMzc6XHRyZXR1cm4gbGFuODY1eF93cml0ZV9jZmdfcGFyYW1zKHBoeWRldiwgbGFuODY1eF9yZXZiX2ZpeHVwX2NmZ19yZWdzLFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yMzgtXHRcdFx0XHRcdGNmZ19yZXN1bHRzLCBBUlJBWV9TSVpFKGNmZ19yZXN1bHRzKSk7XG4tLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yNDAtXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjI0MTpzdGF0aWMgaW50IGxhbjg2NXhfc2V0dXBfc3FpX2NmZ3BhcmFtKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsIHM4IG9mZnNldHNbXSlcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjQyLXtcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MjQzOlx0dTE2IGNmZ19yZXN1bHRzW0FSUkFZX1NJWkUobGFuODY1eF9yZXZiX3NxaV9maXh1cF9jZmdfcmVncyldO1xuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyNDQ6XHR1MTYgY2ZnX3BhcmFtc1tBUlJBWV9TSVpFKGxhbjg2NXhfcmV2Yl9zcWlfZml4dXBfY2ZnX3JlZ3MpXTtcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjQ1LVx0aW50IHJldDtcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjQ2LVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyNDc6XHRyZXQgPSBsYW44NjV4X3JlYWRfY2ZnX3BhcmFtcyhwaHlkZXYsIGxhbjg2NXhfcmV2Yl9zcWlfZml4dXBfY2ZnX3JlZ3MsXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTI0OC1cdFx0XHRcdCAgICAgIGNmZ19wYXJhbXMsIEFSUkFZX1NJWkUoY2ZnX3BhcmFtcykpO1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjU4LVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyNTk6XHRyZXR1cm4gbGFuODY1eF93cml0ZV9jZmdfcGFyYW1zKHBoeWRldiwgbGFuODY1eF9yZXZiX3NxaV9maXh1cF9jZmdfcmVncyxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjYwLVx0XHRcdFx0XHRjZmdfcmVzdWx0cywgQVJSQVlfU0laRShjZmdfcmVzdWx0cykpO1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjYyLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyNjM6c3RhdGljIGludCBsYW44NjV4X3JldmJfY29uZmlnX2luaXQoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjY0LXtcbi0tXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTI3MC1cdCAqL1xuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyNzE6XHRyZXQgPSBsYW44NjV4X2dlbmVyYXRlX2NmZ19vZmZzZXRzKHBoeWRldiwgb2Zmc2V0cyk7XG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTI3Mi1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yNzQtXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjI3NTpcdGZvciAoaW50IGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKGxhbjg2NXhfcmV2Yl9maXh1cF9yZWdpc3RlcnMpOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yNzYtXHRcdHJldCA9IHBoeV93cml0ZV9tbWQocGh5ZGV2LCBNRElPX01NRF9WRU5EMixcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6Mjc3Olx0XHRcdFx0ICAgIGxhbjg2NXhfcmV2Yl9maXh1cF9yZWdpc3RlcnNbaV0sXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjI3ODpcdFx0XHRcdCAgICBsYW44NjV4X3JldmJfZml4dXBfdmFsdWVzW2ldKTtcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjc5LVx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjgyLVx0XHRpZiAoaSA9PSAxKSB7XG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjI4MzpcdFx0XHRyZXQgPSBsYW44NjV4X3NldHVwX2NmZ3BhcmFtKHBoeWRldiwgb2Zmc2V0cyk7XG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTI4NC1cdFx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjg4LVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyODk6XHRyZXQgPSBsYW44NjV4X3NldHVwX3NxaV9jZmdwYXJhbShwaHlkZXYsIG9mZnNldHMpO1xuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yOTAtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjkyLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyOTM6XHRmb3IgKGludCBpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRShsYW44NjV4X3JldmJfc3FpX2ZpeHVwX3JlZ3MpOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yOTQtXHRcdHJldCA9IHBoeV93cml0ZV9tbWQocGh5ZGV2LCBNRElPX01NRF9WRU5EMixcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6Mjk1Olx0XHRcdFx0ICAgIGxhbjg2NXhfcmV2Yl9zcWlfZml4dXBfcmVnc1tpXSxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6Mjk2Olx0XHRcdFx0ICAgIGxhbjg2NXhfcmV2Yl9zcWlfZml4dXBfdmFsdWVzW2ldKTtcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjk3LVx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM9MzI5PXN0YXRpYyBpbnQgbGFuODY3eF9yZXZjX2NvbmZpZ19pbml0KHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG4tLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0zMzctXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjMzODpcdHJldCA9IGxhbjg2NXhfZ2VuZXJhdGVfY2ZnX29mZnNldHMocGh5ZGV2LCBvZmZzZXRzKTtcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMzM5LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTM1My1cdFx0cmV0ID0gcGh5X3dyaXRlX21tZChwaHlkZXYsIE1ESU9fTU1EX1ZFTkQyLFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzozNTQ6XHRcdFx0XHQgICAgbGFuODY1eF9yZXZiX2ZpeHVwX3JlZ2lzdGVyc1tpXSxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MzU1Olx0XHRcdFx0ICAgIGxhbjg2NXhfcmV2Yl9maXh1cF92YWx1ZXNbaV0pO1xuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0zNTYtXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0zNTktXHRcdGlmIChpID09IDEpIHtcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MzYwOlx0XHRcdHJldCA9IGxhbjg2NXhfc2V0dXBfY2ZncGFyYW0ocGh5ZGV2LCBvZmZzZXRzKTtcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMzYxLVx0XHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0zNjUtXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjM2NjpcdHJldCA9IGxhbjg2NXhfc2V0dXBfc3FpX2NmZ3BhcmFtKHBoeWRldiwgb2Zmc2V0cyk7XG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTM2Ny1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0zNjktXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjM3MDpcdGZvciAoaW50IGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKGxhbjg2NXhfcmV2Yl9zcWlfZml4dXBfcmVncyk7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTM3MS1cdFx0cmV0ID0gcGh5X3dyaXRlX21tZChwaHlkZXYsIE1ESU9fTU1EX1ZFTkQyLFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzozNzI6XHRcdFx0XHQgICAgbGFuODY1eF9yZXZiX3NxaV9maXh1cF9yZWdzW2ldLFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzozNzM6XHRcdFx0XHQgICAgbGFuODY1eF9yZXZiX3NxaV9maXh1cF92YWx1ZXNbaV0pO1xuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0zNzQtXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYz00OTQ9c3RhdGljIGludCBsYW44Nnh4X3JlYWRfc3RhdHVzKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG4tLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy01MTgtICovXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjUxOTpzdGF0aWMgaW50IGxhbjg2NXhfcGh5X3JlYWRfbW1kKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsIGludCBkZXZudW0sXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTUyMC1cdFx0XHRcdHUxNiByZWdudW0pXG4tLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy01MjctXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjUyODpzdGF0aWMgaW50IGxhbjg2NXhfcGh5X3dyaXRlX21tZChzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2LCBpbnQgZGV2bnVtLFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy01MjktXHRcdFx0XHQgdTE2IHJlZ251bSwgdTE2IHZhbClcbi0tXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jPTUzNz1zdGF0aWMgc3RydWN0IHBoeV9kcml2ZXIgbWljcm9jaGlwX3Qxc19kcml2ZXJbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTU4NC1cdFx0LmZlYXR1cmVzICAgICAgICAgICA9IFBIWV9CQVNJQ19UMVNfUDJNUF9GRUFUVVJFUyxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6NTg1Olx0XHQuY29uZmlnX2luaXQgICAgICAgID0gbGFuODY1eF9yZXZiX2NvbmZpZ19pbml0LFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy01ODYtXHRcdC5yZWFkX3N0YXR1cyAgICAgICAgPSBsYW44Nnh4X3JlYWRfc3RhdHVzLFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzo1ODc6XHRcdC5yZWFkX21tZCAgICAgICAgICAgPSBsYW44NjV4X3BoeV9yZWFkX21tZCxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6NTg4Olx0XHQud3JpdGVfbW1kICAgICAgICAgID0gbGFuODY1eF9waHlfd3JpdGVfbW1kLFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy01ODktXHRcdC5nZXRfcGxjYV9jZmdcdCAgICA9IGdlbnBoeV9jNDVfcGxjYV9nZXRfY2ZnLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMiAwNDo1MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMDc2MQoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDIwNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFNQSSBEcml2ZXIgYW5kIFN5emthbGxlciYjMzk7cyBQb3RlbnRpYWwqKgoKT2theSwgc28gdGhlIGBsYW44NjV4YCBpcyBhbiBTUEkgZGV2aWNlLCBnb3QgaXQuIEFuZCBgb2FfdGM2YCBpcyBhIGZyYW1ld29yayBmb3IgdGhvc2UgT1BFTiBBbGxpYW5jZSAxMEJBU0UtVDF4IE1BQy1QSFlzLCB0aGUgcHV6emxlIHBpZWNlcyBhcmUgc3RhcnRpbmcgdG8gZml0LiBUaGlzIHBhdGNoIGlzIG1vZGlmeWluZyBgb2FfdGM2LmNgLCB3aGljaCBtYWtlcyBtZSB3b25kZXIgaWYgdGhhdCBmaWxlJiMzOTtzIGV2ZW4gcmVhY2hhYmxlIOKAkyBhIGZ1bmRhbWVudGFsIHF1ZXN0aW9uIGluIHRoaXMga2luZCBvZiBhbmFseXNpcy4KClJpZ2h0LCBzbyBob3cgZG9lcyBzeXprYWxsZXIgcGxheSBpbnRvIHRoaXM/IEkga25vdyBpdCBjYW4gZnV6eiBTUEkgZGV2aWNlcywgZWl0aGVyIHRocm91Z2ggcHNldWRvIGRldmljZXMgdXNpbmcgc29tZXRoaW5nIGxpa2UgYHN5el9zcGlfc2V0dXBgLCBvciBwZXJoYXBzIHZpYSBgc3BpZGV2YCBpZiB0aGVyZSYjMzk7cyBhIGRyaXZlciBiaW5kaW5nIG1ldGhvZC4gVHlwaWNhbGx5LCB0aG91Z2gsIFNQSSBkcml2ZXJzIGdldCBib3VuZCB0aHJvdWdoIHRoZSBkZXZpY2UgdHJlZSwgcmlnaHQ/IEFuZCBzeXprYWxsZXIgaXNuJiMzOTt0IGV4YWN0bHkgYnJpbGxpYW50IGF0IGR5bmFtaWNhbGx5IGluamVjdGluZyBkZXZpY2UgdHJlZSBub2RlcyB1bmxlc3MgaXQmIzM5O3MgdXNpbmcgYSBmdW5jdGlvbiBsaWtlIGBzeXpfZGV2X2luaXRgIG9yIHRoZSBsaWtlLgoKQnV0IHdhaXQgYSBtaW51dGUsIHN5emthbGxlciBoYXMgc29tZSBjb29sIHBzZXVkby1zeXNjYWxscyBsaWtlIGBzeXpfZ2VuZXRsaW5rX2dldF9mYW1pbHlgIGFuZCBvdGhlciB0cmlja3MgdXAgaXRzIHNsZWV2ZS4gVGhlIHF1ZXN0aW9uIGlzLCBkb2VzIGl0IGhhdmUgYW55dGhpbmcgZGVkaWNhdGVkIHRvIFNQST8gSSBuZWVkIHRvIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgc3l6a2FsbGVyIGRlc2NyaXB0aW9ucyBzcGVjaWZpY2FsbHkgZm9yIGBsYW44NjV4YCBvciBldmVuIGp1c3QgdGhlIGBvYV90YzZgIGZyYW1ld29yayBpdHNlbGYuIFRoYXQmIzM5O3MgdGhlIG5leHQgb2J2aW91cyBzdGVwIHRvIHNlZSB3aGF0IHN5emthbGxlciBjYW4gZG8gd2l0aCB0aGlzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMiAwNDo1MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2xhbjg2NXgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjIgMDQ6NTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzEzMTMKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiAxOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIHNlZS4gTXkgZmlyc3QgdGhvdWdodCBpczogKipIdW50aW5nIGZvciBzeXprYWxsZXIgRGVzY3JpcHRpb25zIFJlbGF0ZWQgdG8gJiMzOTtvYV90YzYmIzM5Oy4qKgoKSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIGlmIHRoZXJlIGFyZSBhbnkgZXhpc3Rpbmcgc3l6a2FsbGVyIGRlc2NyaXB0aW9ucyBzcGVjaWZpY2FsbHkgZm9yIGBvYV90YzZgLiBUaGlzIGlzIGEgY3J1Y2lhbCBmaXJzdCBzdGVwLiBJZiBJIGFscmVhZHkgaGF2ZSB0aGVtLCBpdCBzYXZlcyB0aW1lIGFuZCBhbGxvd3MgbWUgdG8gYXNzZXNzIHdoYXQmIzM5O3MgYWxyZWFkeSBrbm93bi4gSWYgdGhleSBkb24mIzM5O3QgZXhpc3QsIHdlbGwsIHRoZW4gSSYjMzk7bSBnb2luZyB0byBoYXZlIHRvIGRvIHNvbWUgZGVlcGVyIGRpZ2dpbmcgYW5kIHBvdGVudGlhbGx5IHN0YXJ0IGNyZWF0aW5nIHRob3NlIGRlc2NyaXB0aW9ucyBteXNlbGYuIEl0IGFsbCBoaW5nZXMgb24gdGhpcyBpbml0aWFsIGNoZWNrLiBHb3R0YSBzZWUgd2hhdCYjMzk7cyBvdXQgdGhlcmUgZmlyc3QhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIyIDA0OjUwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7b2FfdGM2JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIyIDA0OjUwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxNDk3CgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogMjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcy4gSGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3Mgb24gdGhlIG1hdHRlcjoKCioqQ2hlY2tpbmcgZm9yIEV4aXN0aW5nIFN5emthbGxlciBEZXNjcmlwdGlvbnMqKgoKQWxyaWdodCwgdGhlIHRhc2sgYXQgaGFuZCBpcyB0byBzZWUgaWYgdGhlcmUmIzM5O3MgYW55IGV4aXN0aW5nIGdyb3VuZHdvcmsgbGFpZCBvdXQgZm9yIHRoZSBgbGFuODY1eGAgaGFyZHdhcmUgd2l0aGluIHRoZSBzeXprYWxsZXIgZnJhbWV3b3JrLiBCZWZvcmUgSSBzdGFydCB0cnlpbmcgdG8gcmVpbnZlbnQgdGhlIHdoZWVsLCBpdCYjMzk7cyBhbHdheXMgcHJ1ZGVudCB0byBjaGVjayB0aGUgZXhpc3RpbmcgY29kZSBiYXNlLiBJJiMzOTttIGdvaW5nIHRvIHNjYW4gdGhlIGVudGlyZSBzeXprYWxsZXIgdHJlZSB0byBzZWUgaWYgYW55b25lIGhhcyBhbHJlYWR5IHN0YXJ0ZWQgZG9jdW1lbnRpbmcgb3IgZnV6emluZyBhbnl0aGluZyByZWxhdGVkIHRvIHRoYXQgcGFydGljdWxhciB0YXJnZXQuIEl0IHNhdmVzIHNpZ25pZmljYW50IHRpbWUgYW5kIGVmZm9ydCB0byBidWlsZCBvbiBwcmlvciB3b3JrIGlmIHRoZXJlIGlzIGFueS4gTXkgZ29hbCBoZXJlIGlzbiYjMzk7dCBuZWNlc3NhcmlseSB0byAqZmluZCogc29tZXRoaW5nIGNvbmNyZXRlIHRvIGJ1aWxkIHVwb24sIGJ1dCB0byAqcnVsZSBvdXQqIHRoYXQgcG9zc2liaWxpdHkgZmlyc3QgYW5kIGJlIGVmZmljaWVudCBpbiBteSBhcHByb2FjaC4gSXQmIzM5O3MganVzdCBzbWFydCB0byBzZWUgd2hhdCYjMzk7cyBhbHJlYWR5IG91dCB0aGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjIgMDQ6NTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bGFuODY1eCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtNQUlOVEFJTkVSUz0xNzQ2OT1GOlx0RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9taWNyb2NoaXAsbGFuODY1MC55YW1sXG5NQUlOVEFJTkVSUzoxNzQ3MDpGOlx0ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jXG5NQUlOVEFJTkVSUy0xNzQ3MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvS2NvbmZpZz00NT1jb25maWcgTEFONzQzWFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9LY29uZmlnLTU5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL0tjb25maWc6NjA6c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L0tjb25maWdcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9LY29uZmlnLTYxLXNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9LY29uZmlnXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL01ha2VmaWxlPTEwPWxhbjc0M3gtb2JqcyA6PSBsYW43NDN4X21haW4ubyBsYW43NDN4X2V0aHRvb2wubyBsYW43NDN4X3B0cC5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvTWFrZWZpbGUtMTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvTWFrZWZpbGU6MTI6b2JqLSQoQ09ORklHX0xBTjg2NVgpICYjNDM7PSBsYW44NjV4L1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL01ha2VmaWxlLTEzLW9iai0kKENPTkZJR19MQU45NjZYX1NXSVRDSCkgJiM0Mzs9IGxhbjk2NngvXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvS2NvbmZpZz04PWNvbmZpZyBMQU44NjVYXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvS2NvbmZpZy0xNi1cdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS4gVGhlIG1vZHVsZSB3aWxsIGJlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9LY29uZmlnOjE3Olx0ICBjYWxsZWQgbGFuODY1eC5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L0tjb25maWctMTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvTWFrZWZpbGUtNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L01ha2VmaWxlOjY6b2JqLSQoQ09ORklHX0xBTjg2NVgpICYjNDM7PSBsYW44NjV4Lm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6Mzk6c3RydWN0IGxhbjg2NXhfcHJpdiB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDAtXHRzdHJ1Y3Qgd29ya19zdHJ1Y3QgbXVsdGljYXN0X3dvcms7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQ1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjQ2OnN0YXRpYyBpbnQgbGFuODY1eF9zZXRfaHdfbWFjYWRkcl9sb3dfYnl0ZXMoc3RydWN0IG9hX3RjNiAqdGM2LCBjb25zdCB1OCAqbWFjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQ3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NTU6c3RhdGljIGludCBsYW44NjV4X3NldF9od19tYWNhZGRyKHN0cnVjdCBsYW44NjV4X3ByaXYgKnByaXYsIGNvbnN0IHU4ICptYWMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNTYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy02MS1cdC8qIENvbmZpZ3VyZSBNQUMgYWRkcmVzcyBsb3cgYnl0ZXMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo2MjpcdHJldCA9IGxhbjg2NXhfc2V0X2h3X21hY2FkZHJfbG93X2J5dGVzKHByaXYtXHUwMDNldGM2LCBtYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTYzLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNzUtXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo3NjpcdHJlc3RvcmVfcmV0ID0gbGFuODY1eF9zZXRfaHdfbWFjYWRkcl9sb3dfYnl0ZXMocHJpdi1cdTAwM2V0YzYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNzctXHRcdFx0XHRcdFx0ICAgICAgIHByaXYtXHUwMDNlbmV0ZGV2LVx1MDAzZWRldl9hZGRyKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtODMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6ODQ6c3RhdGljIGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyBsYW44NjV4X2V0aHRvb2xfb3BzID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTg1LVx0LmdldF9saW5rX2tzZXR0aW5ncyA9IHBoeV9ldGh0b29sX2dldF9saW5rX2tzZXR0aW5ncyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtODgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6ODk6c3RhdGljIGludCBsYW44NjV4X3NldF9tYWNfYWRkcmVzcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCB2b2lkICphZGRyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTkwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo5MTpcdHN0cnVjdCBsYW44NjV4X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTkyLVx0c3RydWN0IHNvY2thZGRyICphZGRyZXNzID0gYWRkcjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMTAxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjEwMjpcdHJldCA9IGxhbjg2NXhfc2V0X2h3X21hY2FkZHIocHJpdiwgYWRkcmVzcy1cdTAwM2VzYV9kYXRhKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0xMDMtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYz0xMTE9c3RhdGljIHUzMiBnZXRfYWRkcmVzc19iaXQodTggYWRkcltFVEhfQUxFTl0sIHUzMiBiaXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTExNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoxMTY6c3RhdGljIHUzMiBsYW44NjV4X2hhc2godTggYWRkcltFVEhfQUxFTl0pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMTE3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMTMxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjEzMjpzdGF0aWMgaW50IGxhbjg2NXhfc2V0X3NwZWNpZmljX211bHRpY2FzdF9hZGRyKHN0cnVjdCBsYW44NjV4X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMTMzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMTM5LVx0bmV0ZGV2X2Zvcl9lYWNoX21jX2FkZHIoaGEsIHByaXYtXHUwMDNlbmV0ZGV2KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MTQwOlx0XHR1MzIgYml0X251bSA9IGxhbjg2NXhfaGFzaChoYS1cdTAwM2VhZGRyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0xNDEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTE2My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoxNjQ6c3RhdGljIGludCBsYW44NjV4X3NldF9hbGxfbXVsdGljYXN0X2FkZHIoc3RydWN0IGxhbjg2NXhfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0xNjUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0xODUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MTg2OnN0YXRpYyBpbnQgbGFuODY1eF9jbGVhcl9hbGxfbXVsdGljYXN0X2FkZHIoc3RydWN0IGxhbjg2NXhfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0xODcte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yMDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MjA1OnN0YXRpYyB2b2lkIGxhbjg2NXhfbXVsdGljYXN0X3dvcmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjA2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoyMDc6XHRzdHJ1Y3QgbGFuODY1eF9wcml2ICpwcml2ID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBsYW44NjV4X3ByaXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjA4LVx0XHRcdFx0XHRcdCBtdWx0aWNhc3Rfd29yayk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTIxOC1cdFx0LyogRW5hYmxpbmcgYWxsIG11bHRpY2FzdCBtb2RlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MjE5Olx0XHRpZiAobGFuODY1eF9zZXRfYWxsX211bHRpY2FzdF9hZGRyKHByaXYpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTIyMC1cdFx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTIyNi1cdFx0LyogRW5hYmxpbmcgc3BlY2lmaWMgbXVsdGljYXN0IG1vZGUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoyMjc6XHRcdGlmIChsYW44NjV4X3NldF9zcGVjaWZpY19tdWx0aWNhc3RfYWRkcihwcml2KSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yMjgtXHRcdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yMzQtXHRcdC8qIEVuYWJsaW5nIGxvY2FsIG1hYyBhZGRyZXNzIG9ubHkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoyMzU6XHRcdGlmIChsYW44NjV4X2NsZWFyX2FsbF9tdWx0aWNhc3RfYWRkcihwcml2KSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yMzYtXHRcdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yNDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MjQ0OnN0YXRpYyB2b2lkIGxhbjg2NXhfc2V0X211bHRpY2FzdF9saXN0KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjQ1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoyNDY6XHRzdHJ1Y3QgbGFuODY1eF9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yNDctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI1MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoyNTE6c3RhdGljIG5ldGRldl90eF90IGxhbjg2NXhfc2VuZF9wYWNrZXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yNTItXHRcdFx0XHQgICAgICAgc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yNTMte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjI1NDpcdHN0cnVjdCBsYW44NjV4X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI1NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjU4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjI1OTpzdGF0aWMgaW50IGxhbjg2NXhfaHdfZGlzYWJsZShzdHJ1Y3QgbGFuODY1eF9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI2MC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI3My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoyNzQ6c3RhdGljIGludCBsYW44NjV4X25ldF9jbG9zZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI3NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6Mjc2Olx0c3RydWN0IGxhbjg2NXhfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjc3LVx0aW50IHJldDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjgwLVx0cGh5X3N0b3AobmV0ZGV2LVx1MDAzZXBoeWRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MjgxOlx0cmV0ID0gbGFuODY1eF9od19kaXNhYmxlKHByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI4Mi1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjg5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjI5MDpzdGF0aWMgaW50IGxhbjg2NXhfaHdfZW5hYmxlKHN0cnVjdCBsYW44NjV4X3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjkxLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzA0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjMwNTpzdGF0aWMgaW50IGxhbjg2NXhfbmV0X29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zMDYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjMwNzpcdHN0cnVjdCBsYW44NjV4X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTMwOC1cdGludCByZXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzA5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjMxMDpcdHJldCA9IGxhbjg2NXhfaHdfZW5hYmxlKHByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTMxMS1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzIyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjMyMzpzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIGxhbjg2NXhfbmV0ZGV2X29wcyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozMjQ6XHQubmRvX29wZW5cdFx0PSBsYW44NjV4X25ldF9vcGVuLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjMyNTpcdC5uZG9fc3RvcFx0XHQ9IGxhbjg2NXhfbmV0X2Nsb3NlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjMyNjpcdC5uZG9fc3RhcnRfeG1pdFx0XHQ9IGxhbjg2NXhfc2VuZF9wYWNrZXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MzI3Olx0Lm5kb19zZXRfcnhfbW9kZVx0PSBsYW44NjV4X3NldF9tdWx0aWNhc3RfbGlzdCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozMjg6XHQubmRvX3NldF9tYWNfYWRkcmVzc1x0PSBsYW44NjV4X3NldF9tYWNfYWRkcmVzcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zMjktXHQubmRvX3ZhbGlkYXRlX2FkZHJcdD0gZXRoX3ZhbGlkYXRlX2FkZHIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTMzMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozMzM6c3RhdGljIGludCBsYW44NjV4X3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzM0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zMzUtXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjMzNjpcdHN0cnVjdCBsYW44NjV4X3ByaXYgKnByaXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzM3LVx0aW50IHJldDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zMzgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MzM5Olx0bmV0ZGV2ID0gYWxsb2NfZXRoZXJkZXYoc2l6ZW9mKHN0cnVjdCBsYW44NjV4X3ByaXYpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zNDAtXHRpZiAoIW5ldGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzQ2LVx0c3BpX3NldF9kcnZkYXRhKHNwaSwgcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MzQ3Olx0SU5JVF9XT1JLKFx1MDAyNnByaXYtXHUwMDNlbXVsdGljYXN0X3dvcmssIGxhbjg2NXhfbXVsdGljYXN0X3dvcmtfaGFuZGxlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzQ4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zOTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MzkyOlx0cmV0ID0gbGFuODY1eF9zZXRfaHdfbWFjYWRkcihwcml2LCBuZXRkZXYtXHUwMDNlZGV2X2FkZHIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTM5My1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzk5LVx0bmV0ZGV2LVx1MDAzZWlycSA9IHNwaS1cdTAwM2VpcnE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NDAwOlx0bmV0ZGV2LVx1MDAzZW5ldGRldl9vcHMgPSBcdTAwMjZsYW44NjV4X25ldGRldl9vcHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NDAxOlx0bmV0ZGV2LVx1MDAzZWV0aHRvb2xfb3BzID0gXHUwMDI2bGFuODY1eF9ldGh0b29sX29wcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00MDItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQxNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo0MTg6c3RhdGljIHZvaWQgbGFuODY1eF9yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00MTkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjQyMDpcdHN0cnVjdCBsYW44NjV4X3ByaXYgKnByaXYgPSBzcGlfZ2V0X2RydmRhdGEoc3BpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00MjEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQyNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo0Mjg6c3RhdGljIGNvbnN0IHN0cnVjdCBzcGlfZGV2aWNlX2lkIGxhbjg2NXhfaWRzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDI5LVx0eyAubmFtZSA9IFwmIzM0O2xhbjg2NTBcJiMzNDsgfSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDMyLX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NDMzOk1PRFVMRV9ERVZJQ0VfVEFCTEUoc3BpLCBsYW44NjV4X2lkcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjQzNTpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBsYW44NjV4X2R0X2lkc1tdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQzNi1cdHsgLmNvbXBhdGlibGUgPSBcJiMzNDttaWNyb2NoaXAsbGFuODY1MFwmIzM0OyB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00MzktfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo0NDA6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbGFuODY1eF9kdF9pZHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQ0MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo0NDI6c3RhdGljIHN0cnVjdCBzcGlfZHJpdmVyIGxhbjg2NXhfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQ0My1cdC5kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDQ0LVx0XHQubmFtZSA9IERSVl9OQU1FLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjQ0NTpcdFx0Lm9mX21hdGNoX3RhYmxlID0gbGFuODY1eF9kdF9pZHMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDQ2LVx0IH0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NDQ3Olx0LnByb2JlID0gbGFuODY1eF9wcm9iZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo0NDg6XHQucmVtb3ZlID0gbGFuODY1eF9yZW1vdmUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NDQ5Olx0LmlkX3RhYmxlID0gbGFuODY1eF9pZHMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDUwLX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NDUxOm1vZHVsZV9zcGlfZHJpdmVyKGxhbjg2NXhfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00NTItXG4tLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYz03Nz1zdGF0aWMgY29uc3QgdTE2IGxhbjg2N3hfcmV2YjFfZml4dXBfbWFza3NbMTJdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtODctICovXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjg4OnN0YXRpYyBjb25zdCB1MzIgbGFuODY1eF9yZXZiX2ZpeHVwX3JlZ2lzdGVyc1sxN10gPSB7XG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTg5LVx0MHgwMEQwLCAweDAwRTAsIDB4MDBFOSwgMHgwMEY1LFxuLS1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtOTUtXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjk2OnN0YXRpYyBjb25zdCB1MTYgbGFuODY1eF9yZXZiX2ZpeHVwX3ZhbHVlc1sxN10gPSB7XG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTk3LVx0MHgzRjMxLCAweEMwMDAsIDB4OUU1MCwgMHgxQ0Y4LFxuLS1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMTAzLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoxMDQ6c3RhdGljIGNvbnN0IHUxNiBsYW44NjV4X3JldmJfZml4dXBfY2ZnX3JlZ3NbMl0gPSB7XG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTEwNS1cdDB4MDA4NCwgMHgwMDhBLFxuLS1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMTA3LVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoxMDg6c3RhdGljIGNvbnN0IHUzMiBsYW44NjV4X3JldmJfc3FpX2ZpeHVwX3JlZ3NbMTJdID0ge1xuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0xMDktXHQweDAwQjAsIDB4MDBCMSwgMHgwMEIyLCAweDAwQjMsXG4tLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0xMTMtXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjExNDpzdGF0aWMgY29uc3QgdTE2IGxhbjg2NXhfcmV2Yl9zcWlfZml4dXBfdmFsdWVzWzEyXSA9IHtcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMTE1LVx0MHgwMTAzLCAweDA5MTAsIDB4MUQyNiwgMHgwMDJBLFxuLS1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMTE5LVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoxMjA6c3RhdGljIGNvbnN0IHUxNiBsYW44NjV4X3JldmJfc3FpX2ZpeHVwX2NmZ19yZWdzWzNdID0ge1xuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0xMjEtXHQweDAwQUQsIDB4MDBBRSwgMHgwMEFGLFxuLS1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM9MTM0PXN0YXRpYyBjb25zdCB1MTYgbGFuODY3eF9yZXZkMF9maXh1cF92YWx1ZXNbOF0gPSB7XG4tLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0xNDYtICovXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjE0NzpzdGF0aWMgaW50IGxhbjg2NXhfcmV2Yl9pbmRpcmVjdF9yZWFkKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsIHUxNiBhZGRyKVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0xNDgte1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMTY2LSAqL1xuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoxNjc6c3RhdGljIGludCBsYW44NjV4X2dlbmVyYXRlX2NmZ19vZmZzZXRzKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsIHM4IG9mZnNldHNbXSlcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMTY4LXtcbi0tXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTE3Mi1cdGZvciAoaW50IGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKGZpeHVwX3JlZ3MpOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoxNzM6XHRcdHJldCA9IGxhbjg2NXhfcmV2Yl9pbmRpcmVjdF9yZWFkKHBoeWRldiwgZml4dXBfcmVnc1tpXSk7XG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTE3NC1cdFx0aWYgKHJldCBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTE4Ny1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MTg4OnN0YXRpYyBpbnQgbGFuODY1eF9yZWFkX2NmZ19wYXJhbXMoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldixcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMTg5LVx0XHRcdFx0ICAgY29uc3QgdTE2IGNmZ19yZWdzW10sIHUxNiBjZmdfcGFyYW1zW10sXG4tLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yMDQtXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjIwNTpzdGF0aWMgaW50IGxhbjg2NXhfd3JpdGVfY2ZnX3BhcmFtcyhzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2LFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yMDYtXHRcdFx0XHQgICAgY29uc3QgdTE2IGNmZ19yZWdzW10sIHUxNiBjZmdfcGFyYW1zW10sXG4tLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yMjAtXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjIyMTpzdGF0aWMgaW50IGxhbjg2NXhfc2V0dXBfY2ZncGFyYW0oc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwgczggb2Zmc2V0c1tdKVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yMjIte1xuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyMjM6XHR1MTYgY2ZnX3Jlc3VsdHNbQVJSQVlfU0laRShsYW44NjV4X3JldmJfZml4dXBfY2ZnX3JlZ3MpXTtcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MjI0Olx0dTE2IGNmZ19wYXJhbXNbQVJSQVlfU0laRShsYW44NjV4X3JldmJfZml4dXBfY2ZnX3JlZ3MpXTtcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjI1LVx0aW50IHJldDtcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjI2LVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyMjc6XHRyZXQgPSBsYW44NjV4X3JlYWRfY2ZnX3BhcmFtcyhwaHlkZXYsIGxhbjg2NXhfcmV2Yl9maXh1cF9jZmdfcmVncyxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjI4LVx0XHRcdFx0ICAgICAgY2ZnX3BhcmFtcywgQVJSQVlfU0laRShjZmdfcGFyYW1zKSk7XG4tLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yMzYtXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjIzNzpcdHJldHVybiBsYW44NjV4X3dyaXRlX2NmZ19wYXJhbXMocGh5ZGV2LCBsYW44NjV4X3JldmJfZml4dXBfY2ZnX3JlZ3MsXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTIzOC1cdFx0XHRcdFx0Y2ZnX3Jlc3VsdHMsIEFSUkFZX1NJWkUoY2ZnX3Jlc3VsdHMpKTtcbi0tXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTI0MC1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MjQxOnN0YXRpYyBpbnQgbGFuODY1eF9zZXR1cF9zcWlfY2ZncGFyYW0oc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwgczggb2Zmc2V0c1tdKVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yNDIte1xuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyNDM6XHR1MTYgY2ZnX3Jlc3VsdHNbQVJSQVlfU0laRShsYW44NjV4X3JldmJfc3FpX2ZpeHVwX2NmZ19yZWdzKV07XG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjI0NDpcdHUxNiBjZmdfcGFyYW1zW0FSUkFZX1NJWkUobGFuODY1eF9yZXZiX3NxaV9maXh1cF9jZmdfcmVncyldO1xuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yNDUtXHRpbnQgcmV0O1xuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yNDYtXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjI0NzpcdHJldCA9IGxhbjg2NXhfcmVhZF9jZmdfcGFyYW1zKHBoeWRldiwgbGFuODY1eF9yZXZiX3NxaV9maXh1cF9jZmdfcmVncyxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjQ4LVx0XHRcdFx0ICAgICAgY2ZnX3BhcmFtcywgQVJSQVlfU0laRShjZmdfcGFyYW1zKSk7XG4tLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yNTgtXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjI1OTpcdHJldHVybiBsYW44NjV4X3dyaXRlX2NmZ19wYXJhbXMocGh5ZGV2LCBsYW44NjV4X3JldmJfc3FpX2ZpeHVwX2NmZ19yZWdzLFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yNjAtXHRcdFx0XHRcdGNmZ19yZXN1bHRzLCBBUlJBWV9TSVpFKGNmZ19yZXN1bHRzKSk7XG4tLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yNjItXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjI2MzpzdGF0aWMgaW50IGxhbjg2NXhfcmV2Yl9jb25maWdfaW5pdChzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yNjQte1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjcwLVx0ICovXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjI3MTpcdHJldCA9IGxhbjg2NXhfZ2VuZXJhdGVfY2ZnX29mZnNldHMocGh5ZGV2LCBvZmZzZXRzKTtcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjcyLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTI3NC1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6Mjc1Olx0Zm9yIChpbnQgaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUobGFuODY1eF9yZXZiX2ZpeHVwX3JlZ2lzdGVycyk7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTI3Ni1cdFx0cmV0ID0gcGh5X3dyaXRlX21tZChwaHlkZXYsIE1ESU9fTU1EX1ZFTkQyLFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyNzc6XHRcdFx0XHQgICAgbGFuODY1eF9yZXZiX2ZpeHVwX3JlZ2lzdGVyc1tpXSxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6Mjc4Olx0XHRcdFx0ICAgIGxhbjg2NXhfcmV2Yl9maXh1cF92YWx1ZXNbaV0pO1xuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yNzktXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yODItXHRcdGlmIChpID09IDEpIHtcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MjgzOlx0XHRcdHJldCA9IGxhbjg2NXhfc2V0dXBfY2ZncGFyYW0ocGh5ZGV2LCBvZmZzZXRzKTtcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjg0LVx0XHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yODgtXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjI4OTpcdHJldCA9IGxhbjg2NXhfc2V0dXBfc3FpX2NmZ3BhcmFtKHBoeWRldiwgb2Zmc2V0cyk7XG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTI5MC1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yOTItXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjI5MzpcdGZvciAoaW50IGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKGxhbjg2NXhfcmV2Yl9zcWlfZml4dXBfcmVncyk7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTI5NC1cdFx0cmV0ID0gcGh5X3dyaXRlX21tZChwaHlkZXYsIE1ESU9fTU1EX1ZFTkQyLFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyOTU6XHRcdFx0XHQgICAgbGFuODY1eF9yZXZiX3NxaV9maXh1cF9yZWdzW2ldLFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyOTY6XHRcdFx0XHQgICAgbGFuODY1eF9yZXZiX3NxaV9maXh1cF92YWx1ZXNbaV0pO1xuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yOTctXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYz0zMjk9c3RhdGljIGludCBsYW44Njd4X3JldmNfY29uZmlnX2luaXQoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcbi0tXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTMzNy1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MzM4Olx0cmV0ID0gbGFuODY1eF9nZW5lcmF0ZV9jZmdfb2Zmc2V0cyhwaHlkZXYsIG9mZnNldHMpO1xuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0zMzktXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMzUzLVx0XHRyZXQgPSBwaHlfd3JpdGVfbW1kKHBoeWRldiwgTURJT19NTURfVkVORDIsXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjM1NDpcdFx0XHRcdCAgICBsYW44NjV4X3JldmJfZml4dXBfcmVnaXN0ZXJzW2ldLFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzozNTU6XHRcdFx0XHQgICAgbGFuODY1eF9yZXZiX2ZpeHVwX3ZhbHVlc1tpXSk7XG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTM1Ni1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTM1OS1cdFx0aWYgKGkgPT0gMSkge1xuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzozNjA6XHRcdFx0cmV0ID0gbGFuODY1eF9zZXR1cF9jZmdwYXJhbShwaHlkZXYsIG9mZnNldHMpO1xuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0zNjEtXHRcdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTM2NS1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MzY2Olx0cmV0ID0gbGFuODY1eF9zZXR1cF9zcWlfY2ZncGFyYW0ocGh5ZGV2LCBvZmZzZXRzKTtcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMzY3LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTM2OS1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MzcwOlx0Zm9yIChpbnQgaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUobGFuODY1eF9yZXZiX3NxaV9maXh1cF9yZWdzKTsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMzcxLVx0XHRyZXQgPSBwaHlfd3JpdGVfbW1kKHBoeWRldiwgTURJT19NTURfVkVORDIsXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjM3MjpcdFx0XHRcdCAgICBsYW44NjV4X3JldmJfc3FpX2ZpeHVwX3JlZ3NbaV0sXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjM3MzpcdFx0XHRcdCAgICBsYW44NjV4X3JldmJfc3FpX2ZpeHVwX3ZhbHVlc1tpXSk7XG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTM3NC1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jPTQ5ND1zdGF0aWMgaW50IGxhbjg2eHhfcmVhZF9zdGF0dXMoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcbi0tXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTUxOC0gKi9cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6NTE5OnN0YXRpYyBpbnQgbGFuODY1eF9waHlfcmVhZF9tbWQoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwgaW50IGRldm51bSxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtNTIwLVx0XHRcdFx0dTE2IHJlZ251bSlcbi0tXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTUyNy1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6NTI4OnN0YXRpYyBpbnQgbGFuODY1eF9waHlfd3JpdGVfbW1kKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsIGludCBkZXZudW0sXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTUyOS1cdFx0XHRcdCB1MTYgcmVnbnVtLCB1MTYgdmFsKVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM9NTM3PXN0YXRpYyBzdHJ1Y3QgcGh5X2RyaXZlciBtaWNyb2NoaXBfdDFzX2RyaXZlcltdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtNTg0LVx0XHQuZmVhdHVyZXMgICAgICAgICAgID0gUEhZX0JBU0lDX1QxU19QMk1QX0ZFQVRVUkVTLFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzo1ODU6XHRcdC5jb25maWdfaW5pdCAgICAgICAgPSBsYW44NjV4X3JldmJfY29uZmlnX2luaXQsXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTU4Ni1cdFx0LnJlYWRfc3RhdHVzICAgICAgICA9IGxhbjg2eHhfcmVhZF9zdGF0dXMsXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjU4NzpcdFx0LnJlYWRfbW1kICAgICAgICAgICA9IGxhbjg2NXhfcGh5X3JlYWRfbW1kLFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzo1ODg6XHRcdC53cml0ZV9tbWQgICAgICAgICAgPSBsYW44NjV4X3BoeV93cml0ZV9tbWQsXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTU4OS1cdFx0LmdldF9wbGNhX2NmZ1x0ICAgID0gZ2VucGh5X2M0NV9wbGNhX2dldF9jZmcsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIyIDA0OjUwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyMDgxCgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogMTQ1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEluaXRpYWwgVGhvdWdodHMgb24gU1BJIERyaXZlciBGdXp6aW5nKioKCk9rYXksIHNvIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgaG93IHRvIGVmZmVjdGl2ZWx5IGZ1enogdGhpcyBgbGFuODY1eGAgZHJpdmVyIHVzaW5nIHN5emthbGxlci4gSSBrbm93IHN5emthbGxlciBoYXMgc29tZSBidWlsdC1pbiBzdXBwb3J0IGZvciBTUEkgZGV2aWNlcywgc3BlY2lmaWNhbGx5IGlmIHRoZXkmIzM5O3JlIGFjY2Vzc2VkIHZpYSBgc3BpZGV2YC4gQnV0IHRoYXQmIzM5O3Mgbm90IGEgZ2VuZXJhbCBzb2x1dGlvbiBmb3IgZnV6emluZyAqYW55KiBTUEkgZHJpdmVyLiBJdCByZWxpZXMgb24gYSBrbm93biBzeXprYWxsZXIgZGVzY3JpcHRpb24gZm9yIHRoZSBzcGVjaWZpYyBkZXZpY2UsIHJpZ2h0PwoKVGhlbiBJIHJlY2FsbGVkIHN5emthbGxlciBkb2VzIHByb3ZpZGUgZ2VuZXJpYyBpbnN0YW50aWF0aW9uIGZ1bmN0aW9ucyBsaWtlIGBzeXpfZGV2X2luaXRgIG9yIGBzeXpfdXNiX2Nvbm5lY3RgLiBUaGUgcXVlc3Rpb24gdGhlbiBpcywgaG93IGRvIEkgZ28gYWJvdXQgaW5zdGFudGlhdGluZyBgbGFuODY1eGA/IEl0IHdvbiYjMzk7dCBiZSByZWFjaGFibGUgdW5sZXNzIGl0JiMzOTtzIGluc3RhbnRpYXRlZC4gVGhhdCBpcyB0aGUgaHVyZGxlLgoKVGhlbiBJIGhhZCBhIGV1cmVrYSBtb21lbnQuLi4gZGlkIHN5emthbGxlciBhZGQgYSBtb3JlIGdlbmVyaWMgU1BJIHNldHVwIGZ1bmN0aW9uIHJlY2VudGx5PyBJIHRob3VnaHQgSSByZWNhbGxlZCByZWFkaW5nIHNvbWV0aGluZyBhYm91dCBgc3l6X3NwaV9zZXR1cGAuIEkgbmVlZCB0byB2ZXJpZnkgaWYgdGhhdCBldmVuIGV4aXN0cyBiZWNhdXNlIHRoYXQgY291bGQgYmUgdGhlIGtleSB0byB1bmxvY2tpbmcgdGhpcyBmdXp6aW5nIGNoYWxsZW5nZS4gSSBzaG91bGQgY2hlY2sgdGhlIHNvdXJjZSwgYW5kIG1ha2Ugc3VyZSB0aGF0IGZ1bmN0aW9uIGFjdHVhbGx5IGV4aXN0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjIgMDQ6NTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzeXpfc3BpX3NldHVwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjIgMDQ6NTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDI1MDMKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiAyNzUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgYGxhbjg2NXhgIERyaXZlciBhbmQgU3l6a2FsbGVyIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBvYV90YzZgIGNvZGUgYW5kIHRyeWluZyB0byBmaWd1cmUgb3V0IGhvdyB0byBmdXp6IGl0IGVmZmVjdGl2ZWx5IHdpdGggU3l6a2FsbGVyLiBNeSBpbml0aWFsIHRob3VnaHQgd2FzIHRvIHVzZSBzb21ldGhpbmcgbGlrZSBgc3BpX25ld19kZXZpY2VgLCBidXQgdGhlbiBJIHJlbWVtYmVyZWQgU3l6a2FsbGVyIGRvZXNuJiMzOTt0IGhhdmUgYSBnZW5lcmljIFNQSSBmdXp6ZXIuIFRoYXQmIzM5O3MgYSBub24tc3RhcnRlci4KClRoZW4gSSBjb25zaWRlcmVkIGBzeXpfZGV2X2luaXRgLiBEb2VzbiYjMzk7dCBTeXprYWxsZXIgaGF2ZSBhIHdheSB0byBkeW5hbWljYWxseSBpbnN0YW50aWF0ZSBkZXZpY2VzPyBObywgdGhhdCYjMzk7cyBub3QgcXVpdGUgcmlnaHQuIFN5emthbGxlciB1c2VzIHByaW1pdGl2ZXMgbGlrZSBgc3l6X3VzYl9jb25uZWN0YCwgYHN5el84MDIxMV9pbmplY3RfZnJhbWVgLCBgc3l6X2dlbmV0bGlua19nZXRfZmFtaWx5YCwgZXRjLiBJIG5lZWQgdG8gdGhpbmsgaW4gdGVybXMgb2YgdGhvc2UgZXhpc3RpbmcgbWVjaGFuaXNtcy4KCkFoYSEgU3l6a2FsbGVyICpkb2VzKiBpbnN0YW50aWF0ZSBkZXZpY2VzIHRocm91Z2ggc3BlY2lmaWMgdmlydHVhbCBpbnRlcmZhY2VzOiBgdmhjaWAgZm9yIFVTQiwgYG1hYzgwMjExX2h3c2ltYCBmb3Igd2lmaSwgYHVpbnB1dGAgZm9yIGlucHV0LCBgaGNpYCBmb3IgYmx1ZXRvb3RoLCBgdmNhbmAgZm9yIENBTiwgYHR1bmAvYHRhcGAgZm9yIG5ldGRldnMuIEJ1dCBgbGFuODY1eGAgaXMgYW4gU1BJIGRldmljZS4gVGhlIHF1ZXN0aW9uIGlzLCBob3cgZG8gSSBjcmVhdGUgdGhpcyBwYXJ0aWN1bGFyIFNQSSBkZXZpY2UgdmlydHVhbGx5PwoKYHNwaWRldmAgc2VlbWVkIHByb21pc2luZyBhdCBmaXJzdC4gSXQmIzM5O3MgdGhlIGNoYXJhY3RlciBkZXZpY2UgdXNlZCBmb3IgdXNlcnNwYWNlIGNvbW11bmljYXRpb24gd2l0aCBTUEkgZGV2aWNlcy4gQnV0LCBubywgdGhhdCB3b24mIzM5O3Qgd29yay4gYHNwaWRldmAgaXMgZm9yIHVzZXJzcGFjZSBhY2Nlc3MsIG5vdCBmb3IgZHJpdmVyIGluc3RhbnRpYXRpb24uIEl0IHdvbiYjMzk7dCBicmluZyB0aGUga2VybmVsIGRyaXZlciBpbnRvIGV4aXN0ZW5jZSwgc28gdGhhdCB3b24mIzM5O3Qgd29yay4KClRoZW4gSSBjb25zaWRlcmVkIGRldmljZSB0cmVlIG92ZXJsYXlzLiBQZXJoYXBzIEkgY291bGQgY29uZmlndXJlIHRoZSBkZXZpY2UgdGhyb3VnaCBhbiBvdmVybGF5LiBCdXQgbm8sIFN5emthbGxlciBkb2VzbiYjMzk7dCBzdXBwb3J0IHRob3NlLCBhdCBsZWFzdCBub3QgZGlyZWN0bHkuIEkmIzM5O20gaGl0dGluZyBhIHdhbGwgaGVyZS4KCklmIHRoZXJlJiMzOTtzIG5vIHdheSB0byBicmluZyBgbGFuODY1eGAgaW50byB0aGUgdmlydHVhbCBlbnZpcm9ubWVudCwgdGhlbiB0aGUgYG9hX3RjNmAgY29kZSBwYXRoIGlzIGVzc2VudGlhbGx5IHVucmVhY2hhYmxlIHVuZGVyIFN5emthbGxlciYjMzk7cyBjdXJyZW50IGNvbmZpZ3VyYXRpb24uIFRoYXQmIzM5O3MgYSBzaWduaWZpY2FudCBwcm9ibGVtLCBhbmQgc29tZXRoaW5nIEkgbmVlZCB0byBhZGRyZXNzLiBUaGlzIG1lYW5zIHRoZSBmdXp6aW5nIHdpbGwgYmUgaW5jb21wbGV0ZS4KCk9rYXksIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpcy4gQmVmb3JlIEkgZ2l2ZSB1cCBvbiB0aGlzIGVudGlyZWx5LCBJIHdhbnQgdG8gc2VlIGlmIGBvYV90YzZgIGlzIHVzZWQgYW55d2hlcmUgZWxzZS4gSWYgaXQmIzM5O3MgYSBjcml0aWNhbCBwaWVjZSBvZiBzb21ldGhpbmcgYmlnZ2VyLCBJIHJlYWxseSBuZWVkIHRvIGZpbmQgYSB3YXkgdG8gZ2V0IGl0IGZ1enplZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjIgMDQ6NTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7b2FfdGM2X2luaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL29hLXRjNi1mcmFtZXdvcmsucnN0PTQ1ND1UaGUgaW5jbHVkZS9saW51eC9vYV90YzYuaCBkZWZpbmVzIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zOlxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL29hLXRjNi1mcmFtZXdvcmsucnN0LTQ1NS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9vYS10YzYtZnJhbWV3b3JrLnJzdDo0NTY6Li4gYzpmdW5jdGlvbjo6IHN0cnVjdCBvYV90YzYgKm9hX3RjNl9pbml0KHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIFxcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvb2EtdGM2LWZyYW1ld29yay5yc3QtNDU3LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYz0zMzM9c3RhdGljIGludCBsYW44NjV4X3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTM0OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozNDk6XHRwcml2LVx1MDAzZXRjNiA9IG9hX3RjNl9pbml0KHNwaSwgbmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zNTAtXHRpZiAoIXByaXYtXHUwMDNldGM2KSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM9MTI5ND1FWFBPUlRfU1lNQk9MX0dQTChvYV90YzZfc3RhcnRfeG1pdCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMTI5Ni0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjEyOTc6ICogb2FfdGM2X2luaXQgLSBhbGxvY2F0ZXMgYW5kIGluaXRpYWxpemVzIG9hX3RjNiBzdHJ1Y3R1cmUuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0xMjk4LSAqIEBzcGk6IGRldmljZSB3aXRoIHdoaWNoIGRhdGEgd2lsbCBiZSBleGNoYW5nZWQuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMTMwMy0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjEzMDQ6c3RydWN0IG9hX3RjNiAqb2FfdGM2X2luaXQoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTEzMDUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTE0MDgtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MTQwOTpFWFBPUlRfU1lNQk9MX0dQTChvYV90YzZfaW5pdCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0xNDEwLVxuLS1cbmluY2x1ZGUvbGludXgvb2FfdGM2Lmg9MTM9c3RydWN0IG9hX3RjNjtcbmluY2x1ZGUvbGludXgvb2FfdGM2LmgtMTQtXG5pbmNsdWRlL2xpbnV4L29hX3RjNi5oOjE1OnN0cnVjdCBvYV90YzYgKm9hX3RjNl9pbml0KHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpO1xuaW5jbHVkZS9saW51eC9vYV90YzYuaC0xNi12b2lkIG9hX3RjNl9leGl0KHN0cnVjdCBvYV90YzYgKnRjNik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIyIDA0OjUwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ0MDMzCgkJCQkJCQlvdXRwdXQ6IDI3CgkJCQkJCQl0aG91Z2h0czogMjU3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEN1cnJlbnQgSW52ZXN0aWdhdGlvbiBpbnRvIFN5emthbGxlciBhbmQgU1BJIERldmljZSBJbnN0YW50aWF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gZm9jdXNpbmcgb24gdGhlIGBsYW44NjV4YCBkcml2ZXIg4oCTIGl0IHNlZW1zIHRvIGJlIHRoZSBvbmx5IG9uZSB1dGlsaXppbmcgdGhlIGBvYV90YzZgIGZ1bmN0aW9uLiBOb3csIEkmIzM5O20gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgaWYgYW5kIGhvdyBTeXprYWxsZXIgY2FuIGFjdHVhbGx5IGluc3RhbnRpYXRlIGFuIFNQSSBkZXZpY2UgZm9yIHRlc3RpbmcgdGhpcyBkcml2ZXIuCgpUaGUgY3J1eCBvZiB0aGUgbWF0dGVyIGlzIFN5emthbGxlciYjMzk7cyBkZXZpY2UgaW5zdGFudGlhdGlvbiBjYXBhYmlsaXRpZXMuIEl0IGNhbiBjcmVhdGUgZGV2aWNlcyBpbiBhIGNvdXBsZSBvZiB3YXlzOiB0aHJvdWdoIGEgbW9jayBkcml2ZXIgb3IgdmlhIGBzeXNmc2AgYmluZGluZy4gRm9yIFNQSSBzcGVjaWZpY2FsbHksIHRoZXJlIGFyZSBvcHRpb25zIGxpa2UgYHNwaS1tb2NrdXBgIGFuZCBgc3BpLWxvb3BiYWNrLXRlc3RgLCBidXQgdGhvc2UgZG9uJiMzOTt0IHNlZW0gdG8gZ2l2ZSBtZSB0aGUgZmxleGliaWxpdHkgdG8gaW5zdGFudGlhdGUgKmFueSogYXJiaXRyYXJ5IGRyaXZlciwgd2hpY2ggaXMgd2hhdCBJIG5lZWQuCgpBaCwgd2FpdCBhIG1pbnV0ZS4uLiBjYW4gSSBsZXZlcmFnZSB1c2Vyc3BhY2UgdG8gaW5zdGFudGlhdGUgYW4gU1BJIGRldmljZSB1c2luZyBgc3lzZnNgPyBDb3VsZCBJIGRvIHNvbWV0aGluZyBsaWtlIGBlY2hvIGxhbjg2NTAgJmd0OyAvc3lzL2J1cy9zcGkvZGV2aWNlcy9zcGkwLjAvZHJpdmVyX292ZXJyaWRlYCBhbmQgdGhlbiBiaW5kIGl0IHdpdGggYGVjaG8gc3BpMC4wICZndDsgL3N5cy9idXMvc3BpL2RyaXZlcnMvbGFuODY1eC9iaW5kYD8gVGhhdCYjMzk7cyB0aGUga2V5OiBpdCB3b3VsZCB3b3JrICppZiogSSBoYXZlIGEgZnVuY3Rpb25hbCBgc3BpMC4wYCBkZXZpY2UgYXZhaWxhYmxlIGluIHRoZSBlbnZpcm9ubWVudC4KClNvLCB0aGUgbmV4dCBxdWVzdGlvbiBiZWNvbWVzOiBkb2VzIHRoZSBTeXprYWxsZXIgZW52aXJvbm1lbnQgYWN0dWFsbHkgcHJvdmlkZSBhbiBTUEkgYnVzPyBJIG5lZWQgdG8gY2hlY2sgdGhlIFN5emthbGxlciBjb25maWd1cmF0aW9uLiBMZXQgbWUgbG9vayBmb3IgU1BJIG1hc3RlciBkcml2ZXJzIHRoYXQgYXJlIGVuYWJsZWQuIFRoZSB1c3VhbCBzdXNwZWN0cyB3b3VsZCBiZSBgQ09ORklHX1NQSV9NT0NLVVBgLCBgQ09ORklHX1NQSV9MT09QQkFDS19URVNUYCwgb3IgbWF5YmUgYENPTkZJR19TUElfVklSVFVBTGAuIExldCYjMzk7cyBzZWUgaWYgdGhlcmUgaXMgYW55IHZpcnR1YWwgU1BJIG1hc3RlciBjb25maWd1cmVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMiAwNDo1MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgU1BJXyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvc3BpLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNjYwIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL3NwaS9LY29uZmlnPTI2PWlmIFNQSVxuZHJpdmVycy9zcGkvS2NvbmZpZy0yNy1cbmRyaXZlcnMvc3BpL0tjb25maWc6Mjg6Y29uZmlnIFNQSV9ERUJVR1xuZHJpdmVycy9zcGkvS2NvbmZpZy0yOS1cdGJvb2wgXCYjMzQ7RGVidWcgc3VwcG9ydCBmb3IgU1BJIGRyaXZlcnNcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTM4LVxuZHJpdmVycy9zcGkvS2NvbmZpZzozOTpjb25maWcgU1BJX01BU1RFUlxuZHJpdmVycy9zcGkvS2NvbmZpZy00MC0jXHRib29sIFwmIzM0O1NQSSBNYXN0ZXIgU3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWc9NDk9aWYgU1BJX01BU1RFUlxuZHJpdmVycy9zcGkvS2NvbmZpZy01MC1cbmRyaXZlcnMvc3BpL0tjb25maWc6NTE6Y29uZmlnIFNQSV9NRU1cbmRyaXZlcnMvc3BpL0tjb25maWctNTItXHRib29sIFwmIzM0O1NQSSBtZW1vcnkgZXh0ZW5zaW9uXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy01Ny1cbmRyaXZlcnMvc3BpL0tjb25maWc6NTg6Y29uZmlnIFNQSV9PRkZMT0FEXG5kcml2ZXJzL3NwaS9LY29uZmlnLTU5LVx0Ym9vbFxuLS1cbmRyaXZlcnMvc3BpL0tjb25maWc9NjE9Y29tbWVudCBcJiMzNDtTUEkgTWFzdGVyIENvbnRyb2xsZXIgRHJpdmVyc1wmIzM0O1xuZHJpdmVycy9zcGkvS2NvbmZpZy02Mi1cbmRyaXZlcnMvc3BpL0tjb25maWc6NjM6Y29uZmlnIFNQSV9BSVJPSEFfU05GSVxuZHJpdmVycy9zcGkvS2NvbmZpZy02NC1cdHRyaXN0YXRlIFwmIzM0O0Fpcm9oYSBTUEkgTkFORCBGbGFzaCBJbnRlcmZhY2VcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTcyLVxuZHJpdmVycy9zcGkvS2NvbmZpZzo3Mzpjb25maWcgU1BJX0FMVEVSQVxuZHJpdmVycy9zcGkvS2NvbmZpZy03NC1cdHRyaXN0YXRlIFwmIzM0O0FsdGVyYSBTUEkgQ29udHJvbGxlciBwbGF0Zm9ybSBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTc5LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo4MDpjb25maWcgU1BJX0FMVEVSQV9DT1JFXG5kcml2ZXJzL3NwaS9LY29uZmlnLTgxLVx0dHJpc3RhdGUgXCYjMzQ7QWx0ZXJhIFNQSSBDb250cm9sbGVyIGNvcmUgY29kZVwmIzM0OyBpZiBDT01QSUxFX1RFU1Rcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTg1LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo4Njpjb25maWcgU1BJX0FMVEVSQV9ERkxcbmRyaXZlcnMvc3BpL0tjb25maWctODctXHR0cmlzdGF0ZSBcJiMzNDtERkwgYnVzIGRyaXZlciBmb3IgQWx0ZXJhIFNQSSBDb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy05NC1cbmRyaXZlcnMvc3BpL0tjb25maWc6OTU6Y29uZmlnIFNQSV9BTUxPR0lDX1NQSUZDX0ExXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk2LVx0dHJpc3RhdGUgXCYjMzQ7QW1sb2dpYyBBMSBTUElGQyBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDEtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjEwMjpjb25maWcgU1BJX0FNTE9HSUNfU1BJRkNfQTRcbmRyaXZlcnMvc3BpL0tjb25maWctMTAzLVx0dHJpc3RhdGUgXCYjMzQ7QW1sb2dpYyBBNCBTUEkgRmxhc2ggY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMTExLVxuZHJpdmVycy9zcGkvS2NvbmZpZzoxMTI6Y29uZmlnIFNQSV9BTUxPR0lDX1NQSVNHXG5kcml2ZXJzL3NwaS9LY29uZmlnLTExMy1cdHRyaXN0YXRlIFwmIzM0O0FtbG9naWMgU1BJU0cgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMTIwLVxuZHJpdmVycy9zcGkvS2NvbmZpZzoxMjE6Y29uZmlnIFNQSV9BUFBMRVxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMjItXHR0cmlzdGF0ZSBcJiMzNDtBcHBsZSBTb0MgU1BJIENvbnRyb2xsZXIgcGxhdGZvcm0gZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMzEtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjEzMjpjb25maWcgU1BJX0FSOTM0WFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMzMtXHR0cmlzdGF0ZSBcJiMzNDtRdWFsY29tbSBBdGhlcm9zIEFSOTM0WC9RQ0E5NVhYIFNQSSBjb250cm9sbGVyIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMTM4LVxuZHJpdmVycy9zcGkvS2NvbmZpZzoxMzk6Y29uZmlnIFNQSV9BVENTUEkyMDBcbmRyaXZlcnMvc3BpL0tjb25maWctMTQwLVx0dHJpc3RhdGUgXCYjMzQ7QW5kZXMgQVRDU1BJMjAwIFNQSSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0xNDctXG5kcml2ZXJzL3NwaS9LY29uZmlnOjE0ODpjb25maWcgU1BJX0FUSDc5XG5kcml2ZXJzL3NwaS9LY29uZmlnLTE0OS1cdHRyaXN0YXRlIFwmIzM0O0F0aGVyb3MgQVI3MVhYL0FSNzI0WC9BUjkxM1ggU1BJIGNvbnRyb2xsZXIgZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0xNTUtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjE1Njpjb25maWcgU1BJX0FSTUFEQV8zNzAwXG5kcml2ZXJzL3NwaS9LY29uZmlnLTE1Ny1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgQXJtYWRhIDM3MDAgU1BJIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTE2Mi1cbmRyaXZlcnMvc3BpL0tjb25maWc6MTYzOmNvbmZpZyBTUElfQVNQRUVEX1NNQ1xuZHJpdmVycy9zcGkvS2NvbmZpZy0xNjQtXHR0cmlzdGF0ZSBcJiMzNDtBc3BlZWQgZmxhc2ggY29udHJvbGxlcnMgaW4gU1BJIG1vZGVcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTE3My1cbmRyaXZlcnMvc3BpL0tjb25maWc6MTc0OmNvbmZpZyBTUElfQVRNRUxcbmRyaXZlcnMvc3BpL0tjb25maWctMTc1LVx0dHJpc3RhdGUgXCYjMzQ7QXRtZWwgU1BJIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTE4MS1cbmRyaXZlcnMvc3BpL0tjb25maWc6MTgyOmNvbmZpZyBTUElfQVQ5MV9VU0FSVFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xODMtXHR0cmlzdGF0ZSBcJiMzNDtBdG1lbCBVU0FSVCBDb250cm9sbGVyIFNQSSBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTE4OS1cbmRyaXZlcnMvc3BpL0tjb25maWc6MTkwOmNvbmZpZyBTUElfQVRNRUxfUVVBRFNQSVxuZHJpdmVycy9zcGkvS2NvbmZpZy0xOTEtXHR0cmlzdGF0ZSBcJiMzNDtBdG1lbCBRdWFkIFNQSSBDb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0xOTgtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjE5OTpjb25maWcgU1BJX0FVMTU1MFxuZHJpdmVycy9zcGkvS2NvbmZpZy0yMDAtXHR0cmlzdGF0ZSBcJiMzNDtBdTE1NTAvQXUxMjAwL0F1MTMwMCBTUEkgQ29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMjA2LVxuZHJpdmVycy9zcGkvS2NvbmZpZzoyMDc6Y29uZmlnIFNQSV9BWElfU1BJX0VOR0lORVxuZHJpdmVycy9zcGkvS2NvbmZpZy0yMDgtXHR0cmlzdGF0ZSBcJiMzNDtBbmFsb2cgRGV2aWNlcyBBWEkgU1BJIEVuZ2luZSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0yMTUtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjIxNjpjb25maWcgU1BJX0FYSUFET1xuZHJpdmVycy9zcGkvS2NvbmZpZy0yMTctXHR0cmlzdGF0ZSBcJiMzNDtBeGlhZG8gREItSCBTUEkgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMjI2LVxuZHJpdmVycy9zcGkvS2NvbmZpZzoyMjc6Y29uZmlnIFNQSV9CQ00yODM1XG5kcml2ZXJzL3NwaS9LY29uZmlnLTIyOC1cdHRyaXN0YXRlIFwmIzM0O0JDTTI4MzUgU1BJIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTIzOC1cbmRyaXZlcnMvc3BpL0tjb25maWc6MjM5OmNvbmZpZyBTUElfQkNNMjgzNUFVWFxuZHJpdmVycy9zcGkvS2NvbmZpZy0yNDAtXHR0cmlzdGF0ZSBcJiMzNDtCQ00yODM1IFNQSSBhdXhpbGlhcnkgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMjQ4LVxuZHJpdmVycy9zcGkvS2NvbmZpZzoyNDk6Y29uZmlnIFNQSV9CQ002M1hYXG5kcml2ZXJzL3NwaS9LY29uZmlnLTI1MC1cdHRyaXN0YXRlIFwmIzM0O0Jyb2FkY29tIEJDTTYzeHggU1BJIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTI1NC1cbmRyaXZlcnMvc3BpL0tjb25maWc6MjU1OmNvbmZpZyBTUElfQkNNNjNYWF9IU1NQSVxuZHJpdmVycy9zcGkvS2NvbmZpZy0yNTYtXHR0cmlzdGF0ZSBcJiMzNDtCcm9hZGNvbSBCQ002M1hYIEhTIFNQSSBjb250cm9sbGVyIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMjYxLVxuZHJpdmVycy9zcGkvS2NvbmZpZzoyNjI6Y29uZmlnIFNQSV9CQ01fUVNQSVxuZHJpdmVycy9zcGkvS2NvbmZpZy0yNjMtXHR0cmlzdGF0ZSBcJiMzNDtCcm9hZGNvbSBCU1BJIGFuZCBNU1BJIGNvbnRyb2xsZXIgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMjcyLVxuZHJpdmVycy9zcGkvS2NvbmZpZzoyNzM6Y29uZmlnIFNQSV9CQ01CQ0FfSFNTUElcbmRyaXZlcnMvc3BpL0tjb25maWctMjc0LVx0dHJpc3RhdGUgXCYjMzQ7QnJvYWRjb20gQkNNQkNBIEhTIFNQSSBjb250cm9sbGVyIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMjgxLVxuZHJpdmVycy9zcGkvS2NvbmZpZzoyODI6Y29uZmlnIFNQSV9CSVRCQU5HXG5kcml2ZXJzL3NwaS9LY29uZmlnLTI4My1cdHRyaXN0YXRlIFwmIzM0O1V0aWxpdGllcyBmb3IgQml0YmFuZ2luZyBTUEkgaG9zdCBjb250cm9sbGVyc1wmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMjk0LVxuZHJpdmVycy9zcGkvS2NvbmZpZzoyOTU6Y29uZmlnIFNQSV9CVVRURVJGTFlcbmRyaXZlcnMvc3BpL0tjb25maWctMjk2LVx0dHJpc3RhdGUgXCYjMzQ7UGFyYWxsZWwgcG9ydCBhZGFwdGVyIGZvciBBVlIgQnV0dGVyZmx5IChERVZFTE9QTUVOVClcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTMwNC1cbmRyaXZlcnMvc3BpL0tjb25maWc6MzA1OmNvbmZpZyBTUElfQ0FERU5DRVxuZHJpdmVycy9zcGkvS2NvbmZpZy0zMDYtXHR0cmlzdGF0ZSBcJiMzNDtDYWRlbmNlIFNQSSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0zMTAtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjMxMTpjb25maWcgU1BJX0NBREVOQ0VfUVVBRFNQSVxuZHJpdmVycy9zcGkvS2NvbmZpZy0zMTItXHR0cmlzdGF0ZSBcJiMzNDtDYWRlbmNlIFF1YWQgU1BJIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTMyMS1cbmRyaXZlcnMvc3BpL0tjb25maWc6MzIyOmNvbmZpZyBTUElfQ0FERU5DRV9YU1BJXG5kcml2ZXJzL3NwaS9LY29uZmlnLTMyMy1cdHRyaXN0YXRlIFwmIzM0O0NhZGVuY2UgWFNQSSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0zMzMtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjMzNDpjb25maWcgU1BJX0NIMzQxXG5kcml2ZXJzL3NwaS9LY29uZmlnLTMzNS1cdHRyaXN0YXRlIFwmIzM0O0NIMzQxIFVTQjJTUEkgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMzM5LVxuZHJpdmVycy9zcGkvS2NvbmZpZzozNDA6Y29uZmlnIFNQSV9DTFBTNzExWFxuZHJpdmVycy9zcGkvS2NvbmZpZy0zNDEtXHR0cmlzdGF0ZSBcJiMzNDtDTFBTNzExWCBob3N0IFNQSSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0zNDYtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjM0Nzpjb25maWcgU1BJX0NPTERGSVJFX1FTUElcbmRyaXZlcnMvc3BpL0tjb25maWctMzQ4LVx0dHJpc3RhdGUgXCYjMzQ7RnJlZXNjYWxlIENvbGRmaXJlIFFTUEkgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMzUzLVxuZHJpdmVycy9zcGkvS2NvbmZpZzozNTQ6Y29uZmlnIFNQSV9DUzQyTDQzXG5kcml2ZXJzL3NwaS9LY29uZmlnLTM1NS1cdHRyaXN0YXRlIFwmIzM0O0NpcnJ1cyBMb2dpYyBDUzQyTDQzIFNQSSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0zNjEtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjM2Mjpjb25maWcgU1BJX0RBVklOQ0lcbmRyaXZlcnMvc3BpL0tjb25maWctMzYzLVx0dHJpc3RhdGUgXCYjMzQ7VGV4YXMgSW5zdHJ1bWVudHMgRGFWaW5jaS9EQTh4L09NQVAtTC9BTTF4IFNvQyBTUEkgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMzY4LVxuZHJpdmVycy9zcGkvS2NvbmZpZzozNjk6Y29uZmlnIFNQSV9ERVNJR05XQVJFXG5kcml2ZXJzL3NwaS9LY29uZmlnLTM3MC1cdHRyaXN0YXRlIFwmIzM0O0Rlc2lnbldhcmUgU1BJIGNvbnRyb2xsZXIgY29yZSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZz0zNzU9aWYgU1BJX0RFU0lHTldBUkVcbmRyaXZlcnMvc3BpL0tjb25maWctMzc2LVxuZHJpdmVycy9zcGkvS2NvbmZpZzozNzc6Y29uZmlnIFNQSV9EV19ETUFcbmRyaXZlcnMvc3BpL0tjb25maWctMzc4LVx0Ym9vbCBcJiMzNDtETUEgc3VwcG9ydCBmb3IgRFcgU1BJIGNvbnRyb2xsZXJcJiMzNDtcbmRyaXZlcnMvc3BpL0tjb25maWctMzc5LVxuZHJpdmVycy9zcGkvS2NvbmZpZzozODA6Y29uZmlnIFNQSV9EV19QQ0lcbmRyaXZlcnMvc3BpL0tjb25maWctMzgxLVx0dHJpc3RhdGUgXCYjMzQ7UENJIGludGVyZmFjZSBkcml2ZXIgZm9yIERXIFNQSSBjb3JlXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0zODMtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjM4NDpjb25maWcgU1BJX0RXX01NSU9cbmRyaXZlcnMvc3BpL0tjb25maWctMzg1LVx0dHJpc3RhdGUgXCYjMzQ7TWVtb3J5LW1hcHBlZCBpbyBpbnRlcmZhY2UgZHJpdmVyIGZvciBEVyBTUEkgY29yZVwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWc9Mzg4PWVuZGlmXG5kcml2ZXJzL3NwaS9LY29uZmlnLTM4OS1cbmRyaXZlcnMvc3BpL0tjb25maWc6MzkwOmNvbmZpZyBTUElfRExOMlxuZHJpdmVycy9zcGkvS2NvbmZpZy0zOTEtICAgICAgIHRyaXN0YXRlIFwmIzM0O0Rpb2xhbiBETE4tMiBVU0IgU1BJIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTM5OS1cbmRyaXZlcnMvc3BpL0tjb25maWc6NDAwOmNvbmZpZyBTUElfRVA5M1hYXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQwMS1cdHRyaXN0YXRlIFwmIzM0O0NpcnJ1cyBMb2dpYyBFUDkzeHggU1BJIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQwNi1cbmRyaXZlcnMvc3BpL0tjb25maWc6NDA3OmNvbmZpZyBTUElfRkFMQ09OXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQwOC1cdGJvb2wgXCYjMzQ7RmFsY29uIFNQSSBjb250cm9sbGVyIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQxNS1cbmRyaXZlcnMvc3BpL0tjb25maWc6NDE2OmNvbmZpZyBTUElfRlNJXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQxNy1cdHRyaXN0YXRlIFwmIzM0O0ZTSSBTUEkgZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy00MjItXG5kcml2ZXJzL3NwaS9LY29uZmlnOjQyMzpjb25maWcgU1BJX0ZTTF9MUFNQSVxuZHJpdmVycy9zcGkvS2NvbmZpZy00MjQtXHR0cmlzdGF0ZSBcJiMzNDtGcmVlc2NhbGUgaS5NWCBMUFNQSSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy00MjgtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjQyOTpjb25maWcgU1BJX0ZTTF9RVUFEU1BJXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQzMC1cdHRyaXN0YXRlIFwmIzM0O0ZyZWVzY2FsZSBRU1BJIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQ0MC1cbmRyaXZlcnMvc3BpL0tjb25maWc6NDQxOmNvbmZpZyBTUElfR1hQXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQ0Mi1cdHRyaXN0YXRlIFwmIzM0O0dYUCBTUEkgZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy00NDctXG5kcml2ZXJzL3NwaS9LY29uZmlnOjQ0ODpjb25maWcgU1BJX0hJU0lfS1VOUEVOR1xuZHJpdmVycy9zcGkvS2NvbmZpZy00NDktXHR0cmlzdGF0ZSBcJiMzNDtIaVNpbGljb24gU1BJIENvbnRyb2xsZXIgZm9yIEt1bnBlbmcgU29Dc1wmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNDU3LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo0NTg6Y29uZmlnIFNQSV9ISVNJX1NGQ19WM1hYXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQ1OS1cdHRyaXN0YXRlIFwmIzM0O0hpU2lsaWNvbiBTUEkgTk9SIEZsYXNoIENvbnRyb2xsZXIgZm9yIEhpMTZYWCBjaGlwc2V0c1wmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNDY1LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo0NjY6Y29uZmlnIFNQSV9OWFBfRkxFWFNQSVxuZHJpdmVycy9zcGkvS2NvbmZpZy00NjctXHR0cmlzdGF0ZSBcJiMzNDtOWFAgRmxleCBTUEkgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNDc2LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo0Nzc6Y29uZmlnIFNQSV9OWFBfWFNQSVxuZHJpdmVycy9zcGkvS2NvbmZpZy00NzgtICAgICAgICB0cmlzdGF0ZSBcJiMzNDtOWFAgeFNQSSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy00ODYtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjQ4Nzpjb25maWcgU1BJX0dQSU9cbmRyaXZlcnMvc3BpL0tjb25maWctNDg4LVx0dHJpc3RhdGUgXCYjMzQ7R1BJTy1iYXNlZCBiaXRiYW5naW5nIFNQSSBNYXN0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTUwMi1cbmRyaXZlcnMvc3BpL0tjb25maWc6NTAzOmNvbmZpZyBTUElfSU1HX1NQRklcbmRyaXZlcnMvc3BpL0tjb25maWctNTA0LVx0dHJpc3RhdGUgXCYjMzQ7SU1HIFNQRkkgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNTA5LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo1MTA6Y29uZmlnIFNQSV9JTVhcbmRyaXZlcnMvc3BpL0tjb25maWctNTExLVx0dHJpc3RhdGUgXCYjMzQ7RnJlZXNjYWxlIGkuTVggU1BJIGNvbnRyb2xsZXJzXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy01MTUtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjUxNjpjb25maWcgU1BJX0lOR0VOSUNcbmRyaXZlcnMvc3BpL0tjb25maWctNTE3LVx0dHJpc3RhdGUgXCYjMzQ7SW5nZW5pYyBTb0NzIFNQSSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy01MjQtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjUyNTpjb25maWcgU1BJX0lOVEVMXG5kcml2ZXJzL3NwaS9LY29uZmlnLTUyNi1cdHRyaXN0YXRlXG5kcml2ZXJzL3NwaS9LY29uZmlnLTUyNy1cbmRyaXZlcnMvc3BpL0tjb25maWc6NTI4OmNvbmZpZyBTUElfSU5URUxfUENJXG5kcml2ZXJzL3NwaS9LY29uZmlnLTUyOS1cdHRyaXN0YXRlIFwmIzM0O0ludGVsIFBDSC9QQ1UgU1BJIGZsYXNoIFBDSSBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTU0NS1cbmRyaXZlcnMvc3BpL0tjb25maWc6NTQ2OmNvbmZpZyBTUElfSU5URUxfUExBVEZPUk1cbmRyaXZlcnMvc3BpL0tjb25maWctNTQ3LVx0dHJpc3RhdGUgXCYjMzQ7SW50ZWwgUENIL1BDVSBTUEkgZmxhc2ggcGxhdGZvcm0gZHJpdmVyIChEQU5HRVJPVVMpXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy01NjQtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjU2NTpjb25maWcgU1BJX0pDT1JFXG5kcml2ZXJzL3NwaS9LY29uZmlnLTU2Ni1cdHRyaXN0YXRlIFwmIzM0O0otQ29yZSBTUEkgTWFzdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy01NzEtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjU3Mjpjb25maWcgU1BJX0tTUEkyXG5kcml2ZXJzL3NwaS9LY29uZmlnLTU3My1cdHRyaXN0YXRlIFwmIzM0O1N1cHBvcnQgZm9yIEtFQkEgU1BJIG1hc3RlciB0eXBlIDIgaGFyZHdhcmVcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTU4My1cbmRyaXZlcnMvc3BpL0tjb25maWc6NTg0OmNvbmZpZyBTUElfTE03MF9MTFBcbmRyaXZlcnMvc3BpL0tjb25maWctNTg1LVx0dHJpc3RhdGUgXCYjMzQ7UGFyYWxsZWwgcG9ydCBhZGFwdGVyIGZvciBMTTcwIGV2YWwgYm9hcmQgKERFVkVMT1BNRU5UKVwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNTkyLVxuZHJpdmVycy9zcGkvS2NvbmZpZzo1OTM6Y29uZmlnIFNQSV9MT09OR1NPTl9DT1JFXG5kcml2ZXJzL3NwaS9LY29uZmlnLTU5NC1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy01OTYtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjU5Nzpjb25maWcgU1BJX0xPT05HU09OX1BDSVxuZHJpdmVycy9zcGkvS2NvbmZpZy01OTgtXHR0cmlzdGF0ZSBcJiMzNDtMb29uZ3NvbiBTUEkgQ29udHJvbGxlciBQQ0kgRHJpdmVyIFN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTYwNy1cbmRyaXZlcnMvc3BpL0tjb25maWc6NjA4OmNvbmZpZyBTUElfTE9PTkdTT05fUExBVEZPUk1cbmRyaXZlcnMvc3BpL0tjb25maWctNjA5LVx0dHJpc3RhdGUgXCYjMzQ7TG9vbmdzb24gU1BJIENvbnRyb2xsZXIgUGxhdGZvcm0gRHJpdmVyIFN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTYxOC1cbmRyaXZlcnMvc3BpL0tjb25maWc6NjE5OmNvbmZpZyBTUElfTFA4ODQxX1JUQ1xuZHJpdmVycy9zcGkvS2NvbmZpZy02MjAtXHR0cmlzdGF0ZSBcJiMzNDtJQ1AgREFTIExQLTg4NDEgU1BJIENvbnRyb2xsZXIgZm9yIFJUQ1wmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNjI4LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo2Mjk6Y29uZmlnIFNQSV9NUEM1Mnh4XG5kcml2ZXJzL3NwaS9LY29uZmlnLTYzMC1cdHRyaXN0YXRlIFwmIzM0O0ZyZWVzY2FsZSBNUEM1Mnh4IFNQSSAobm9uLVBTQykgY29udHJvbGxlciBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy02MzUtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjYzNjpjb25maWcgU1BJX01QQzUyeHhfUFNDXG5kcml2ZXJzL3NwaS9LY29uZmlnLTYzNy1cdHRyaXN0YXRlIFwmIzM0O0ZyZWVzY2FsZSBNUEM1Mnh4IFBTQyBTUEkgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNjQyLVxuZHJpdmVycy9zcGkvS2NvbmZpZzo2NDM6Y29uZmlnIFNQSV9NUEM1MTJ4X1BTQ1xuZHJpdmVycy9zcGkvS2NvbmZpZy02NDQtXHR0cmlzdGF0ZSBcJiMzNDtGcmVlc2NhbGUgTVBDNTEyeCBQU0MgU1BJIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTY0OS1cbmRyaXZlcnMvc3BpL0tjb25maWc6NjUwOmNvbmZpZyBTUElfRlNMX0xJQlxuZHJpdmVycy9zcGkvS2NvbmZpZy02NTEtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNjUzLVxuZHJpdmVycy9zcGkvS2NvbmZpZzo2NTQ6Y29uZmlnIFNQSV9GU0xfQ1BNXG5kcml2ZXJzL3NwaS9LY29uZmlnLTY1NS1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy02NTctXG5kcml2ZXJzL3NwaS9LY29uZmlnOjY1ODpjb25maWcgU1BJX0ZTTF9TUElcbmRyaXZlcnMvc3BpL0tjb25maWctNjU5LVx0dHJpc3RhdGUgXCYjMzQ7RnJlZXNjYWxlIFNQSSBjb250cm9sbGVyIGFuZCBBZXJvZmxleCBHYWlzbGVyIEdSTElCIFNQSSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy02NjktXG5kcml2ZXJzL3NwaS9LY29uZmlnOjY3MDpjb25maWcgU1BJX0ZTTF9EU1BJXG5kcml2ZXJzL3NwaS9LY29uZmlnLTY3MS1cdHRyaXN0YXRlIFwmIzM0O0ZyZWVzY2FsZSBEU1BJIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTY3Ny1cbmRyaXZlcnMvc3BpL0tjb25maWc6Njc4OmNvbmZpZyBTUElfRlNMX0VTUElcbmRyaXZlcnMvc3BpL0tjb25maWctNjc5LVx0dHJpc3RhdGUgXCYjMzQ7RnJlZXNjYWxlIGVTUEkgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNjg1LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo2ODY6Y29uZmlnIFNQSV9MSkNBXG5kcml2ZXJzL3NwaS9LY29uZmlnLTY4Ny1cdHRyaXN0YXRlIFwmIzM0O0ludGVsIExhIEpvbGxhIENvdmUgQWRhcHRlciBTUEkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNjk2LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo2OTc6Y29uZmlnIFNQSV9NRVNPTl9TUElDQ1xuZHJpdmVycy9zcGkvS2NvbmZpZy02OTgtXHR0cmlzdGF0ZSBcJiMzNDtBbWxvZ2ljIE1lc29uIFNQSUNDIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTcwNC1cbmRyaXZlcnMvc3BpL0tjb25maWc6NzA1OmNvbmZpZyBTUElfTUVTT05fU1BJRkNcbmRyaXZlcnMvc3BpL0tjb25maWctNzA2LVx0dHJpc3RhdGUgXCYjMzQ7QW1sb2dpYyBNZXNvbiBTUElGQyBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy03MTItXG5kcml2ZXJzL3NwaS9LY29uZmlnOjcxMzpjb25maWcgU1BJX01JQ1JPQ0hJUF9DT1JFX1FTUElcbmRyaXZlcnMvc3BpL0tjb25maWctNzE0LVx0dHJpc3RhdGUgXCYjMzQ7TWljcm9jaGlwIEZQR0EgUVNQSSBjb250cm9sbGVyc1wmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNzIxLVxuZHJpdmVycy9zcGkvS2NvbmZpZzo3MjI6Y29uZmlnIFNQSV9NSUNST0NISVBfQ09SRV9TUElcbmRyaXZlcnMvc3BpL0tjb25maWctNzIzLVx0dHJpc3RhdGUgXCYjMzQ7TWljcm9jaGlwIEZQR0EgQ29yZVNQSSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy03MzAtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjczMTpjb25maWcgU1BJX01UNjVYWFxuZHJpdmVycy9zcGkvS2NvbmZpZy03MzItXHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBTUEkgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNzM5LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo3NDA6Y29uZmlnIFNQSV9NVDc2MjFcbmRyaXZlcnMvc3BpL0tjb25maWctNzQxLVx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3NjIxIFNQSSBDb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy03NDUtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjc0Njpjb25maWcgU1BJX01US19OT1JcbmRyaXZlcnMvc3BpL0tjb25maWctNzQ3LVx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgU1BJIE5PUiBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy03NTUtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjc1Njpjb25maWcgU1BJX01US19TTkZJXG5kcml2ZXJzL3NwaS9LY29uZmlnLTc1Ny1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIFNQSSBOQU5EIEZsYXNoIEludGVyZmFjZVwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNzY1LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo3NjY6Y29uZmlnIFNQSV9XUENNX0ZJVVxuZHJpdmVycy9zcGkvS2NvbmZpZy03NjctXHR0cmlzdGF0ZSBcJiMzNDtOdXZvdG9uIFdQQ000NTAgRmxhc2ggSW50ZXJmYWNlIFVuaXRcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTc3Ni1cbmRyaXZlcnMvc3BpL0tjb25maWc6Nzc3OmNvbmZpZyBTUElfTlBDTV9GSVVcbmRyaXZlcnMvc3BpL0tjb25maWctNzc4LVx0dHJpc3RhdGUgXCYjMzQ7TnV2b3RvbiBOUENNIEZMQVNIIEludGVyZmFjZSBVbml0XCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy03ODYtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjc4Nzpjb25maWcgU1BJX05QQ01fUFNQSVxuZHJpdmVycy9zcGkvS2NvbmZpZy03ODgtXHR0cmlzdGF0ZSBcJiMzNDtOdXZvdG9uIE5QQ00gUFNQSSBDb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy03OTMtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjc5NDpjb25maWcgU1BJX0xBTlRJUV9TU0NcbmRyaXZlcnMvc3BpL0tjb25maWctNzk1LVx0dHJpc3RhdGUgXCYjMzQ7TGFudGlxIFNTQyBTUEkgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctODAxLVxuZHJpdmVycy9zcGkvS2NvbmZpZzo4MDI6Y29uZmlnIFNQSV9PQ19USU5ZXG5kcml2ZXJzL3NwaS9LY29uZmlnLTgwMy1cdHRyaXN0YXRlIFwmIzM0O09wZW5Db3JlcyB0aW55IFNQSVwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctODA4LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo4MDk6Y29uZmlnIFNQSV9PQ1RFT05cbmRyaXZlcnMvc3BpL0tjb25maWctODEwLVx0dHJpc3RhdGUgXCYjMzQ7Q2F2aXVtIE9DVEVPTiBTUEkgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctODE1LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo4MTY6Y29uZmlnIFNQSV9PTUFQX1VXSVJFXG5kcml2ZXJzL3NwaS9LY29uZmlnLTgxNy1cdHRyaXN0YXRlIFwmIzM0O09NQVAxIE1pY3JvV2lyZVwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctODIyLVxuZHJpdmVycy9zcGkvS2NvbmZpZzo4MjM6Y29uZmlnIFNQSV9PTUFQMjRYWFxuZHJpdmVycy9zcGkvS2NvbmZpZy04MjQtXHR0cmlzdGF0ZSBcJiMzNDtNY1NQSSBkcml2ZXIgZm9yIE9NQVBcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTgzMC1cbmRyaXZlcnMvc3BpL0tjb25maWc6ODMxOmNvbmZpZyBTUElfVElfUVNQSVxuZHJpdmVycy9zcGkvS2NvbmZpZy04MzItXHR0cmlzdGF0ZSBcJiMzNDtEUkE3eHh4IFFTUEkgY29udHJvbGxlciBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy04MzgtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjgzOTpjb25maWcgU1BJX09SSU9OXG5kcml2ZXJzL3NwaS9LY29uZmlnLTg0MC1cdHRyaXN0YXRlIFwmIzM0O09yaW9uIFNQSSBtYXN0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTg0NS1cbmRyaXZlcnMvc3BpL0tjb25maWc6ODQ2OmNvbmZpZyBTUElfUENJMVhYWFhcbmRyaXZlcnMvc3BpL0tjb25maWctODQ3LVx0dHJpc3RhdGUgXCYjMzQ7UENJMVhYWFggU1BJIEJ1cyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy04NTQtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjg1NTpjb25maWcgU1BJX1BJQzMyXG5kcml2ZXJzL3NwaS9LY29uZmlnLTg1Ni1cdHRyaXN0YXRlIFwmIzM0O01pY3JvY2hpcCBQSUMzMiBzZXJpZXMgU1BJXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy04NjAtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjg2MTpjb25maWcgU1BJX1BJQzMyX1NRSVxuZHJpdmVycy9zcGkvS2NvbmZpZy04NjItXHR0cmlzdGF0ZSBcJiMzNDtNaWNyb2NoaXAgUElDMzIgUXVhZCBTUEkgZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy04NjYtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjg2Nzpjb25maWcgU1BJX1BMMDIyXG5kcml2ZXJzL3NwaS9LY29uZmlnLTg2OC1cdHRyaXN0YXRlIFwmIzM0O0FSTSBBTUJBIFBMMDIyIFNTUCBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy04NzctXG5kcml2ZXJzL3NwaS9LY29uZmlnOjg3ODpjb25maWcgU1BJX1BPTEFSRklSRV9TT0NcbmRyaXZlcnMvc3BpL0tjb25maWctODc5LVx0dHJpc3RhdGUgXCYjMzQ7TWljcm9jaGlwIEZQR0EgU1BJIGNvbnRyb2xsZXJzXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy04ODctXG5kcml2ZXJzL3NwaS9LY29uZmlnOjg4ODpjb25maWcgU1BJX1BQQzR4eFxuZHJpdmVycy9zcGkvS2NvbmZpZy04ODktXHR0cmlzdGF0ZSBcJiMzNDtQUEM0eHggU1BJIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTg5NC1cbmRyaXZlcnMvc3BpL0tjb25maWc6ODk1OmNvbmZpZyBTUElfUFhBMlhYXG5kcml2ZXJzL3NwaS9LY29uZmlnLTg5Ni1cdHRyaXN0YXRlIFwmIzM0O1BYQTJ4eCBTU1AgU1BJIG1hc3RlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctOTAyLVxuZHJpdmVycy9zcGkvS2NvbmZpZzo5MDM6Y29uZmlnIFNQSV9QWEEyWFhfUENJXG5kcml2ZXJzL3NwaS9LY29uZmlnLTkwNC1cdGRlZl90cmlzdGF0ZSBTUElfUFhBMlhYIFx1MDAyNlx1MDAyNiBQQ0kgXHUwMDI2XHUwMDI2IENPTU1PTl9DTEtcbmRyaXZlcnMvc3BpL0tjb25maWctOTA1LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo5MDY6Y29uZmlnIFNQSV9SRUFMVEVLX1NOQU5EXG5kcml2ZXJzL3NwaS9LY29uZmlnLTkwNy1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgU1BJLU5BTkQgRmxhc2ggQ29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctOTE2LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo5MTc6Y29uZmlnIFNQSV9ST0NLQ0hJUFxuZHJpdmVycy9zcGkvS2NvbmZpZy05MTgtXHR0cmlzdGF0ZSBcJiMzNDtSb2NrY2hpcCBTUEkgY29udHJvbGxlciBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTkyOC1cbmRyaXZlcnMvc3BpL0tjb25maWc6OTI5OmNvbmZpZyBTUElfUk9DS0NISVBfU0ZDXG5kcml2ZXJzL3NwaS9LY29uZmlnLTkzMC1cdHRyaXN0YXRlIFwmIzM0O1JvY2tjaGlwIFNlcmlhbCBGbGFzaCBDb250cm9sbGVyIChTRkMpXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy05NDAtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjk0MTpjb25maWcgU1BJX1JCNFhYXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk0Mi1cdHRyaXN0YXRlIFwmIzM0O01pa3JvdGlrIFJCNFhYIFNQSSBtYXN0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk0Ny1cbmRyaXZlcnMvc3BpL0tjb25maWc6OTQ4OmNvbmZpZyBTUElfUlBDSUZcbmRyaXZlcnMvc3BpL0tjb25maWctOTQ5LVx0dHJpc3RhdGUgXCYjMzQ7UmVuZXNhcyBSUEMtSUYgU1BJIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctOTUzLVxuZHJpdmVycy9zcGkvS2NvbmZpZzo5NTQ6Y29uZmlnIFNQSV9SU1BJXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk1NS1cdHRyaXN0YXRlIFwmIzM0O1JlbmVzYXMgUlNQSS9RU1BJIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk1OS1cbmRyaXZlcnMvc3BpL0tjb25maWc6OTYwOmNvbmZpZyBTUElfUlpWMkhfUlNQSVxuZHJpdmVycy9zcGkvS2NvbmZpZy05NjEtXHR0cmlzdGF0ZSBcJiMzNDtSZW5lc2FzIFJaL1YySCBSU1BJIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk2Ny1cbmRyaXZlcnMvc3BpL0tjb25maWc6OTY4OmNvbmZpZyBTUElfUlpWMk1fQ1NJXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk2OS1cdHRyaXN0YXRlIFwmIzM0O1JlbmVzYXMgUlovVjJNIENTSSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy05NzQtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjk3NTpjb25maWcgU1BJX1FDT01fUVNQSVxuZHJpdmVycy9zcGkvS2NvbmZpZy05NzYtXHR0cmlzdGF0ZSBcJiMzNDtRVEkgUVNQSSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy05ODAtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjk4MTpjb25maWcgU1BJX1FQSUNfU05BTkRcbmRyaXZlcnMvc3BpL0tjb25maWctOTgyLVx0dHJpc3RhdGUgXCYjMzQ7UVBJQyBTTkFORCBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy05ODktXG5kcml2ZXJzL3NwaS9LY29uZmlnOjk5MDpjb25maWcgU1BJX1FVUFxuZHJpdmVycy9zcGkvS2NvbmZpZy05OTEtXHR0cmlzdGF0ZSBcJiMzNDtRdWFsY29tbSBTUEkgY29udHJvbGxlciB3aXRoIFFVUCBpbnRlcmZhY2VcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwMDItXG5kcml2ZXJzL3NwaS9LY29uZmlnOjEwMDM6Y29uZmlnIFNQSV9RQ09NX0dFTklcbmRyaXZlcnMvc3BpL0tjb25maWctMTAwNC1cdHRyaXN0YXRlIFwmIzM0O1F1YWxjb21tIEdFTkkgYmFzZWQgU1BJIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwMTQtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjEwMTU6Y29uZmlnIFNQSV9TM0M2NFhYXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwMTYtXHR0cmlzdGF0ZSBcJiMzNDtTYW1zdW5nIFMzQzY0WFgvRXh5bm9zIFNvQyBzZXJpZXMgdHlwZSBTUElcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwMjEtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjEwMjI6Y29uZmlnIFNQSV9TQzE4SVM2MDJcbmRyaXZlcnMvc3BpL0tjb25maWctMTAyMy1cdHRyaXN0YXRlIFwmIzM0O05YUCBTQzE4SVM2MDIvNjAyQi82MDMgSTJDIHRvIFNQSSBicmlkZ2VcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwMjctXG5kcml2ZXJzL3NwaS9LY29uZmlnOjEwMjg6Y29uZmlnIFNQSV9TSF9NU0lPRlxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDI5LVx0dHJpc3RhdGUgXCYjMzQ7U3VwZXJIIE1TSU9GIFNQSSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDM0LVxuZHJpdmVycy9zcGkvS2NvbmZpZzoxMDM1OmNvbmZpZyBTUElfU0hcbmRyaXZlcnMvc3BpL0tjb25maWctMTAzNi1cdHRyaXN0YXRlIFwmIzM0O1N1cGVySCBTUEkgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMTA0MC1cbmRyaXZlcnMvc3BpL0tjb25maWc6MTA0MTpjb25maWcgU1BJX1NIX1NDSVxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDQyLVx0dHJpc3RhdGUgXCYjMzQ7U3VwZXJIIFNDSSBTUEkgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMTA0Ny1cbmRyaXZlcnMvc3BpL0tjb25maWc6MTA0ODpjb25maWcgU1BJX1NIX0hTUElcbmRyaXZlcnMvc3BpL0tjb25maWctMTA0OS1cdHRyaXN0YXRlIFwmIzM0O1N1cGVySCBIU1BJIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwNTMtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjEwNTQ6Y29uZmlnIFNQSV9TSUZJVkVcbmRyaXZlcnMvc3BpL0tjb25maWctMTA1NS1cdHRyaXN0YXRlIFwmIzM0O1NpRml2ZSBTUEkgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMTA1OS1cbmRyaXZlcnMvc3BpL0tjb25maWc6MTA2MDpjb25maWcgU1BJX1NMQVZFX01UMjdYWFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDYxLVx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgU1BJIHNsYXZlIGRldmljZVwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMTA2OS1cbmRyaXZlcnMvc3BpL0tjb25maWc6MTA3MDpjb25maWcgU1BJX1NOX0ZfT1NQSVxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDcxLVx0dHJpc3RhdGUgXCYjMzQ7U29jaW9uZXh0IEZfT1NQSSBTUEkgZmxhc2ggY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMTA3OC1cbmRyaXZlcnMvc3BpL0tjb25maWc6MTA3OTpjb25maWcgU1BJX1NHMjA0NF9OT1JcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMiAwNDo1MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MjE2NgoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDIzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIGEgc3VtbWFyeSBvZiBteSBpbW1lZGlhdGUgdGhvdWdodCBwcm9jZXNzLCBrZWVwaW5nIGluIG1pbmQgbXkgZXhwZXJ0aXNlOgoKKipDaGVja2luZyBmb3IgS2V5IFRlc3QgQ29uZmlndXJhdGlvbnMqKgoKT2theSwgc28gSSYjMzk7bSBkaXZpbmcgaW4uIE15IGZpcnN0IGluc3RpbmN0LCBnaXZlbiB0aGUgY29udGV4dCwgaXMgdG8gaW1tZWRpYXRlbHkgY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIHNwZWNpZmljIHNldHVwcy4gSSYjMzk7bSBsb29raW5nIGZvciB0d28gcHJpbWFyeSBpbmRpY2F0b3JzOiBgU1BJX01PQ0tVUGAgYW5kIGBTUElfTE9PUEJBQ0tfVEVTVGAuIFRoZXNlIGFyZSB0aGUgZmxhZ3MgSSYjMzk7ZCBleHBlY3QgdG8gc2VlIHRvIGRlbm90ZSB0aGUgcHJlc2VuY2Ugb2YgYSBtb2NrLXVwIFNQSSBpbXBsZW1lbnRhdGlvbiwgb3IgYSBsb29wYmFjayB0ZXN0aW5nIGNvbmZpZ3VyYXRpb24uIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoZXRoZXIgd2UgYXJlIHNpbXVsYXRpbmcgdGhlIFNQSSBidXMsIG9yIGlmIHdlIGFyZSBleGVyY2lzaW5nIGEgZnVsbCwgY2xvc2VkLWxvb3AgaW50ZXJhY3Rpb24gd2l0aGluIG91ciBzeXN0ZW0uIEdyYXNwaW5nIHRoaXMgaXMgdGhlIGx5bmNocGluIHRvIG1ha2luZyBhbnkgc2Vuc2Ugb2YgdGhlIG5leHQgc3RhZ2Ugb2YgaW52ZXN0aWdhdGlvbi4gVGhlIHByZXNlbmNlIG9yIGFic2VuY2Ugb2YgZWl0aGVyIG9mIHRoZXNlLCBzaGFwZXMgdGhlIHdob2xlIG5leHQgbGV2ZWwgb2YgaW5xdWlyeS4gSXQmIzM5O3MgdGhlIG1vc3QgYmFzaWMgcXVlc3Rpb24gdGhhdCBuZWVkcyB0byBiZSBhbnN3ZXJlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjIgMDQ6NTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgU1BJX01PQ0tVUCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvc3BpLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIyIDA0OjUwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUyNDE5CgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogMTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQ29uc2lkZXJpbmcgU1BJIExvb3BiYWNrIFRlc3RpbmcqKgoKQWxyaWdodCwgbGV0JiMzOTtzIHNlZS4uLiB0aGUgdG9waWMgYXQgaGFuZCBpcyBldmFsdWF0aW5nIHRoZSBTUEkgaW50ZXJmYWNlLCBhbmQgbXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gY29uc2lkZXIgYSBnb29kIG9sZCBsb29wYmFjayB0ZXN0LiBUaGUgdmVyeSBtZW50aW9uIHNwYXJrcyB0aGUgcXVlc3Rpb246ICYjMzQ7V2hhdCBhYm91dCB0aGUgYGNvbmZpZyBTUElfTE9PUEJBQ0tfVEVTVGAgb3B0aW9uPyYjMzQ7IEl04oCZcyBhIHByZXR0eSBzdGFuZGFyZCBhcHByb2FjaCwgc28gSSBpbW1lZGlhdGVseSB0aGluayBvZiB0aGUgaW1wbGljYXRpb25zIGZvciBvdXIgc3BlY2lmaWMgc2NlbmFyaW8uIElzIGl0IGF2YWlsYWJsZSBpbiB0aGlzIGNvbmZpZ3VyYXRpb24/IERvZXMgaXQgcHJvdmlkZSB0aGUgbGV2ZWwgb2YgZGlhZ25vc3RpYyBkZXRhaWwgd2UgcmVxdWlyZSwgb3IgYXJlIHdlIGFpbWluZyBmb3Igc29tZXRoaW5nIG1vcmUgbnVhbmNlZD8gVGhlIGluaGVyZW50IHNpbXBsaWNpdHkgaXMgYXBwZWFsaW5nIGZvciBhIHF1aWNrIGJhc2VsaW5lIGNoZWNrLCBidXQgZG9lcyBpdCBvZmZlciBzdWZmaWNpZW50IGNvdmVyYWdlIGdpdmVuIHRoZSBwb3RlbnRpYWwgY29tcGxleGl0eSBvZiB0aGUgaW50ZXJhY3Rpb25zIHdlIGFyZSBpbnZlc3RpZ2F0aW5nPyBPciwgbWF5YmUgaXQgZG9lc27igJl0IGV2ZW4gZXhpc3QgaW4gdGhpcyBzZXR1cCwgbWVhbmluZyB3ZSBuZWVkIHRvIGRlbHZlIGludG8gc29tZXRoaW5nIG1vcmUgaW52b2x2ZWQuIFRoZSBxdWVzdGlvbnMsIGFuZCB0aGUgY29uc2lkZXJhdGlvbnMsIGJlZ2luLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMiAwNDo1MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgU1BJX0xPT1BCQUNLX1RFU1QmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3NwaS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9zcGkvS2NvbmZpZz0xMzU4PWNvbmZpZyBTUElfU1BJREVWXG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMzYyLVxuZHJpdmVycy9zcGkvS2NvbmZpZzoxMzYzOmNvbmZpZyBTUElfTE9PUEJBQ0tfVEVTVFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMzY0LVx0dHJpc3RhdGUgXCYjMzQ7c3BpIGxvb3BiYWNrIHRlc3QgZnJhbWV3b3JrIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjIgMDQ6NTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTI3NDAKCQkJCQkJCW91dHB1dDogMjcKCQkJCQkJCXRob3VnaHRzOiA2OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipFeHBsb3JpbmcgU1BJIERldmljZSBJbnN0YW50aWF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgYSBjbGV2ZXIgd2F5IHRvIGluc3RhbnRpYXRlIGFuIFNQSSBkZXZpY2UsIHBlcmhhcHMgdXNpbmcgc29tZXRoaW5nIGxpa2UgYHNwaS1sb29wYmFjay10ZXN0YC4gQnV0IHdhaXQsIHRoYXQgZG9lc24mIzM5O3Qgc2VlbSByaWdodC4gYHNwaS1sb29wYmFjay10ZXN0YCBpcyBqdXN0IGEgKmRyaXZlciogZGVzaWduZWQgdG8gaG9vayB1cCB0byBhbmQgdGhlbiB2ZXJpZnkgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYW4gZXhpc3RpbmcgU1BJIGRldmljZS4gSXQmIzM5O3Mgbm90IGEgdG9vbCBmb3IgY3JlYXRpbmcgb25lLiBTbyBzY3JhdGNoIHRoYXQgaWRlYS4KCkFscmlnaHQsIHdoYXQgaWYgdGhlcmUmIzM5O3MgYSB2aXJ0dWFsIFNQSSBjb250cm9sbGVyIEkgY2FuIGxldmVyYWdlPyBUaGF0JiMzOTtzIHRoZSBuZXh0IGxvZ2ljYWwgdGhvdWdodC4gVGltZSB0byBkaXZlIGludG8gdGhlIGtlcm5lbCBjb25maWcuLi4gSSBzaG91bGQgcHJvYmFibHkgc2VhcmNoIGZvciBzb21ldGhpbmcgbGlrZSBgY29uZmlnIFNQSV9WSVJUVUFMYCBvciBhIHNpbWlsYXIgY29uZmlndXJhdGlvbiBvcHRpb24uIExldCYjMzk7cyBzZWUgd2hhdCYjMzk7cyBvdXQgdGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIyIDA0OjUwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBTUElfJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9zcGkvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA2NjAgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvc3BpL0tjb25maWc9MjY9aWYgU1BJXG5kcml2ZXJzL3NwaS9LY29uZmlnLTI3LVxuZHJpdmVycy9zcGkvS2NvbmZpZzoyODpjb25maWcgU1BJX0RFQlVHXG5kcml2ZXJzL3NwaS9LY29uZmlnLTI5LVx0Ym9vbCBcJiMzNDtEZWJ1ZyBzdXBwb3J0IGZvciBTUEkgZHJpdmVyc1wmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMzgtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjM5OmNvbmZpZyBTUElfTUFTVEVSXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQwLSNcdGJvb2wgXCYjMzQ7U1BJIE1hc3RlciBTdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZz00OT1pZiBTUElfTUFTVEVSXG5kcml2ZXJzL3NwaS9LY29uZmlnLTUwLVxuZHJpdmVycy9zcGkvS2NvbmZpZzo1MTpjb25maWcgU1BJX01FTVxuZHJpdmVycy9zcGkvS2NvbmZpZy01Mi1cdGJvb2wgXCYjMzQ7U1BJIG1lbW9yeSBleHRlbnNpb25cJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTU3LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo1ODpjb25maWcgU1BJX09GRkxPQURcbmRyaXZlcnMvc3BpL0tjb25maWctNTktXHRib29sXG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZz02MT1jb21tZW50IFwmIzM0O1NQSSBNYXN0ZXIgQ29udHJvbGxlciBEcml2ZXJzXCYjMzQ7XG5kcml2ZXJzL3NwaS9LY29uZmlnLTYyLVxuZHJpdmVycy9zcGkvS2NvbmZpZzo2Mzpjb25maWcgU1BJX0FJUk9IQV9TTkZJXG5kcml2ZXJzL3NwaS9LY29uZmlnLTY0LVx0dHJpc3RhdGUgXCYjMzQ7QWlyb2hhIFNQSSBOQU5EIEZsYXNoIEludGVyZmFjZVwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNzItXG5kcml2ZXJzL3NwaS9LY29uZmlnOjczOmNvbmZpZyBTUElfQUxURVJBXG5kcml2ZXJzL3NwaS9LY29uZmlnLTc0LVx0dHJpc3RhdGUgXCYjMzQ7QWx0ZXJhIFNQSSBDb250cm9sbGVyIHBsYXRmb3JtIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNzktXG5kcml2ZXJzL3NwaS9LY29uZmlnOjgwOmNvbmZpZyBTUElfQUxURVJBX0NPUkVcbmRyaXZlcnMvc3BpL0tjb25maWctODEtXHR0cmlzdGF0ZSBcJiMzNDtBbHRlcmEgU1BJIENvbnRyb2xsZXIgY29yZSBjb2RlXCYjMzQ7IGlmIENPTVBJTEVfVEVTVFxuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctODUtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjg2OmNvbmZpZyBTUElfQUxURVJBX0RGTFxuZHJpdmVycy9zcGkvS2NvbmZpZy04Ny1cdHRyaXN0YXRlIFwmIzM0O0RGTCBidXMgZHJpdmVyIGZvciBBbHRlcmEgU1BJIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk0LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo5NTpjb25maWcgU1BJX0FNTE9HSUNfU1BJRkNfQTFcbmRyaXZlcnMvc3BpL0tjb25maWctOTYtXHR0cmlzdGF0ZSBcJiMzNDtBbWxvZ2ljIEExIFNQSUZDIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwMS1cbmRyaXZlcnMvc3BpL0tjb25maWc6MTAyOmNvbmZpZyBTUElfQU1MT0dJQ19TUElGQ19BNFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDMtXHR0cmlzdGF0ZSBcJiMzNDtBbWxvZ2ljIEE0IFNQSSBGbGFzaCBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMTEtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjExMjpjb25maWcgU1BJX0FNTE9HSUNfU1BJU0dcbmRyaXZlcnMvc3BpL0tjb25maWctMTEzLVx0dHJpc3RhdGUgXCYjMzQ7QW1sb2dpYyBTUElTRyBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMjAtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjEyMTpjb25maWcgU1BJX0FQUExFXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEyMi1cdHRyaXN0YXRlIFwmIzM0O0FwcGxlIFNvQyBTUEkgQ29udHJvbGxlciBwbGF0Zm9ybSBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEzMS1cbmRyaXZlcnMvc3BpL0tjb25maWc6MTMyOmNvbmZpZyBTUElfQVI5MzRYXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEzMy1cdHRyaXN0YXRlIFwmIzM0O1F1YWxjb21tIEF0aGVyb3MgQVI5MzRYL1FDQTk1WFggU1BJIGNvbnRyb2xsZXIgZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMzgtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjEzOTpjb25maWcgU1BJX0FUQ1NQSTIwMFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xNDAtXHR0cmlzdGF0ZSBcJiMzNDtBbmRlcyBBVENTUEkyMDAgU1BJIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTE0Ny1cbmRyaXZlcnMvc3BpL0tjb25maWc6MTQ4OmNvbmZpZyBTUElfQVRINzlcbmRyaXZlcnMvc3BpL0tjb25maWctMTQ5LVx0dHJpc3RhdGUgXCYjMzQ7QXRoZXJvcyBBUjcxWFgvQVI3MjRYL0FSOTEzWCBTUEkgY29udHJvbGxlciBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTE1NS1cbmRyaXZlcnMvc3BpL0tjb25maWc6MTU2OmNvbmZpZyBTUElfQVJNQURBXzM3MDBcbmRyaXZlcnMvc3BpL0tjb25maWctMTU3LVx0dHJpc3RhdGUgXCYjMzQ7TWFydmVsbCBBcm1hZGEgMzcwMCBTUEkgQ29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMTYyLVxuZHJpdmVycy9zcGkvS2NvbmZpZzoxNjM6Y29uZmlnIFNQSV9BU1BFRURfU01DXG5kcml2ZXJzL3NwaS9LY29uZmlnLTE2NC1cdHRyaXN0YXRlIFwmIzM0O0FzcGVlZCBmbGFzaCBjb250cm9sbGVycyBpbiBTUEkgbW9kZVwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMTczLVxuZHJpdmVycy9zcGkvS2NvbmZpZzoxNzQ6Y29uZmlnIFNQSV9BVE1FTFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xNzUtXHR0cmlzdGF0ZSBcJiMzNDtBdG1lbCBTUEkgQ29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMTgxLVxuZHJpdmVycy9zcGkvS2NvbmZpZzoxODI6Y29uZmlnIFNQSV9BVDkxX1VTQVJUXG5kcml2ZXJzL3NwaS9LY29uZmlnLTE4My1cdHRyaXN0YXRlIFwmIzM0O0F0bWVsIFVTQVJUIENvbnRyb2xsZXIgU1BJIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMTg5LVxuZHJpdmVycy9zcGkvS2NvbmZpZzoxOTA6Y29uZmlnIFNQSV9BVE1FTF9RVUFEU1BJXG5kcml2ZXJzL3NwaS9LY29uZmlnLTE5MS1cdHRyaXN0YXRlIFwmIzM0O0F0bWVsIFF1YWQgU1BJIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTE5OC1cbmRyaXZlcnMvc3BpL0tjb25maWc6MTk5OmNvbmZpZyBTUElfQVUxNTUwXG5kcml2ZXJzL3NwaS9LY29uZmlnLTIwMC1cdHRyaXN0YXRlIFwmIzM0O0F1MTU1MC9BdTEyMDAvQXUxMzAwIFNQSSBDb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0yMDYtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjIwNzpjb25maWcgU1BJX0FYSV9TUElfRU5HSU5FXG5kcml2ZXJzL3NwaS9LY29uZmlnLTIwOC1cdHRyaXN0YXRlIFwmIzM0O0FuYWxvZyBEZXZpY2VzIEFYSSBTUEkgRW5naW5lIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTIxNS1cbmRyaXZlcnMvc3BpL0tjb25maWc6MjE2OmNvbmZpZyBTUElfQVhJQURPXG5kcml2ZXJzL3NwaS9LY29uZmlnLTIxNy1cdHRyaXN0YXRlIFwmIzM0O0F4aWFkbyBEQi1IIFNQSSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0yMjYtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjIyNzpjb25maWcgU1BJX0JDTTI4MzVcbmRyaXZlcnMvc3BpL0tjb25maWctMjI4LVx0dHJpc3RhdGUgXCYjMzQ7QkNNMjgzNSBTUEkgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMjM4LVxuZHJpdmVycy9zcGkvS2NvbmZpZzoyMzk6Y29uZmlnIFNQSV9CQ00yODM1QVVYXG5kcml2ZXJzL3NwaS9LY29uZmlnLTI0MC1cdHRyaXN0YXRlIFwmIzM0O0JDTTI4MzUgU1BJIGF1eGlsaWFyeSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0yNDgtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjI0OTpjb25maWcgU1BJX0JDTTYzWFhcbmRyaXZlcnMvc3BpL0tjb25maWctMjUwLVx0dHJpc3RhdGUgXCYjMzQ7QnJvYWRjb20gQkNNNjN4eCBTUEkgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMjU0LVxuZHJpdmVycy9zcGkvS2NvbmZpZzoyNTU6Y29uZmlnIFNQSV9CQ002M1hYX0hTU1BJXG5kcml2ZXJzL3NwaS9LY29uZmlnLTI1Ni1cdHRyaXN0YXRlIFwmIzM0O0Jyb2FkY29tIEJDTTYzWFggSFMgU1BJIGNvbnRyb2xsZXIgZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0yNjEtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjI2Mjpjb25maWcgU1BJX0JDTV9RU1BJXG5kcml2ZXJzL3NwaS9LY29uZmlnLTI2My1cdHRyaXN0YXRlIFwmIzM0O0Jyb2FkY29tIEJTUEkgYW5kIE1TUEkgY29udHJvbGxlciBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0yNzItXG5kcml2ZXJzL3NwaS9LY29uZmlnOjI3Mzpjb25maWcgU1BJX0JDTUJDQV9IU1NQSVxuZHJpdmVycy9zcGkvS2NvbmZpZy0yNzQtXHR0cmlzdGF0ZSBcJiMzNDtCcm9hZGNvbSBCQ01CQ0EgSFMgU1BJIGNvbnRyb2xsZXIgZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0yODEtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjI4Mjpjb25maWcgU1BJX0JJVEJBTkdcbmRyaXZlcnMvc3BpL0tjb25maWctMjgzLVx0dHJpc3RhdGUgXCYjMzQ7VXRpbGl0aWVzIGZvciBCaXRiYW5naW5nIFNQSSBob3N0IGNvbnRyb2xsZXJzXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0yOTQtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjI5NTpjb25maWcgU1BJX0JVVFRFUkZMWVxuZHJpdmVycy9zcGkvS2NvbmZpZy0yOTYtXHR0cmlzdGF0ZSBcJiMzNDtQYXJhbGxlbCBwb3J0IGFkYXB0ZXIgZm9yIEFWUiBCdXR0ZXJmbHkgKERFVkVMT1BNRU5UKVwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMzA0LVxuZHJpdmVycy9zcGkvS2NvbmZpZzozMDU6Y29uZmlnIFNQSV9DQURFTkNFXG5kcml2ZXJzL3NwaS9LY29uZmlnLTMwNi1cdHRyaXN0YXRlIFwmIzM0O0NhZGVuY2UgU1BJIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTMxMC1cbmRyaXZlcnMvc3BpL0tjb25maWc6MzExOmNvbmZpZyBTUElfQ0FERU5DRV9RVUFEU1BJXG5kcml2ZXJzL3NwaS9LY29uZmlnLTMxMi1cdHRyaXN0YXRlIFwmIzM0O0NhZGVuY2UgUXVhZCBTUEkgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMzIxLVxuZHJpdmVycy9zcGkvS2NvbmZpZzozMjI6Y29uZmlnIFNQSV9DQURFTkNFX1hTUElcbmRyaXZlcnMvc3BpL0tjb25maWctMzIzLVx0dHJpc3RhdGUgXCYjMzQ7Q2FkZW5jZSBYU1BJIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTMzMy1cbmRyaXZlcnMvc3BpL0tjb25maWc6MzM0OmNvbmZpZyBTUElfQ0gzNDFcbmRyaXZlcnMvc3BpL0tjb25maWctMzM1LVx0dHJpc3RhdGUgXCYjMzQ7Q0gzNDEgVVNCMlNQSSBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0zMzktXG5kcml2ZXJzL3NwaS9LY29uZmlnOjM0MDpjb25maWcgU1BJX0NMUFM3MTFYXG5kcml2ZXJzL3NwaS9LY29uZmlnLTM0MS1cdHRyaXN0YXRlIFwmIzM0O0NMUFM3MTFYIGhvc3QgU1BJIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTM0Ni1cbmRyaXZlcnMvc3BpL0tjb25maWc6MzQ3OmNvbmZpZyBTUElfQ09MREZJUkVfUVNQSVxuZHJpdmVycy9zcGkvS2NvbmZpZy0zNDgtXHR0cmlzdGF0ZSBcJiMzNDtGcmVlc2NhbGUgQ29sZGZpcmUgUVNQSSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0zNTMtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjM1NDpjb25maWcgU1BJX0NTNDJMNDNcbmRyaXZlcnMvc3BpL0tjb25maWctMzU1LVx0dHJpc3RhdGUgXCYjMzQ7Q2lycnVzIExvZ2ljIENTNDJMNDMgU1BJIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTM2MS1cbmRyaXZlcnMvc3BpL0tjb25maWc6MzYyOmNvbmZpZyBTUElfREFWSU5DSVxuZHJpdmVycy9zcGkvS2NvbmZpZy0zNjMtXHR0cmlzdGF0ZSBcJiMzNDtUZXhhcyBJbnN0cnVtZW50cyBEYVZpbmNpL0RBOHgvT01BUC1ML0FNMXggU29DIFNQSSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0zNjgtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjM2OTpjb25maWcgU1BJX0RFU0lHTldBUkVcbmRyaXZlcnMvc3BpL0tjb25maWctMzcwLVx0dHJpc3RhdGUgXCYjMzQ7RGVzaWduV2FyZSBTUEkgY29udHJvbGxlciBjb3JlIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnPTM3NT1pZiBTUElfREVTSUdOV0FSRVxuZHJpdmVycy9zcGkvS2NvbmZpZy0zNzYtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjM3Nzpjb25maWcgU1BJX0RXX0RNQVxuZHJpdmVycy9zcGkvS2NvbmZpZy0zNzgtXHRib29sIFwmIzM0O0RNQSBzdXBwb3J0IGZvciBEVyBTUEkgY29udHJvbGxlclwmIzM0O1xuZHJpdmVycy9zcGkvS2NvbmZpZy0zNzktXG5kcml2ZXJzL3NwaS9LY29uZmlnOjM4MDpjb25maWcgU1BJX0RXX1BDSVxuZHJpdmVycy9zcGkvS2NvbmZpZy0zODEtXHR0cmlzdGF0ZSBcJiMzNDtQQ0kgaW50ZXJmYWNlIGRyaXZlciBmb3IgRFcgU1BJIGNvcmVcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTM4My1cbmRyaXZlcnMvc3BpL0tjb25maWc6Mzg0OmNvbmZpZyBTUElfRFdfTU1JT1xuZHJpdmVycy9zcGkvS2NvbmZpZy0zODUtXHR0cmlzdGF0ZSBcJiMzNDtNZW1vcnktbWFwcGVkIGlvIGludGVyZmFjZSBkcml2ZXIgZm9yIERXIFNQSSBjb3JlXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZz0zODg9ZW5kaWZcbmRyaXZlcnMvc3BpL0tjb25maWctMzg5LVxuZHJpdmVycy9zcGkvS2NvbmZpZzozOTA6Y29uZmlnIFNQSV9ETE4yXG5kcml2ZXJzL3NwaS9LY29uZmlnLTM5MS0gICAgICAgdHJpc3RhdGUgXCYjMzQ7RGlvbGFuIERMTi0yIFVTQiBTUEkgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMzk5LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo0MDA6Y29uZmlnIFNQSV9FUDkzWFhcbmRyaXZlcnMvc3BpL0tjb25maWctNDAxLVx0dHJpc3RhdGUgXCYjMzQ7Q2lycnVzIExvZ2ljIEVQOTN4eCBTUEkgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNDA2LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo0MDc6Y29uZmlnIFNQSV9GQUxDT05cbmRyaXZlcnMvc3BpL0tjb25maWctNDA4LVx0Ym9vbCBcJiMzNDtGYWxjb24gU1BJIGNvbnRyb2xsZXIgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNDE1LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo0MTY6Y29uZmlnIFNQSV9GU0lcbmRyaXZlcnMvc3BpL0tjb25maWctNDE3LVx0dHJpc3RhdGUgXCYjMzQ7RlNJIFNQSSBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQyMi1cbmRyaXZlcnMvc3BpL0tjb25maWc6NDIzOmNvbmZpZyBTUElfRlNMX0xQU1BJXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQyNC1cdHRyaXN0YXRlIFwmIzM0O0ZyZWVzY2FsZSBpLk1YIExQU1BJIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQyOC1cbmRyaXZlcnMvc3BpL0tjb25maWc6NDI5OmNvbmZpZyBTUElfRlNMX1FVQURTUElcbmRyaXZlcnMvc3BpL0tjb25maWctNDMwLVx0dHJpc3RhdGUgXCYjMzQ7RnJlZXNjYWxlIFFTUEkgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNDQwLVxuZHJpdmVycy9zcGkvS2NvbmZpZzo0NDE6Y29uZmlnIFNQSV9HWFBcbmRyaXZlcnMvc3BpL0tjb25maWctNDQyLVx0dHJpc3RhdGUgXCYjMzQ7R1hQIFNQSSBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQ0Ny1cbmRyaXZlcnMvc3BpL0tjb25maWc6NDQ4OmNvbmZpZyBTUElfSElTSV9LVU5QRU5HXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQ0OS1cdHRyaXN0YXRlIFwmIzM0O0hpU2lsaWNvbiBTUEkgQ29udHJvbGxlciBmb3IgS3VucGVuZyBTb0NzXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy00NTctXG5kcml2ZXJzL3NwaS9LY29uZmlnOjQ1ODpjb25maWcgU1BJX0hJU0lfU0ZDX1YzWFhcbmRyaXZlcnMvc3BpL0tjb25maWctNDU5LVx0dHJpc3RhdGUgXCYjMzQ7SGlTaWxpY29uIFNQSSBOT1IgRmxhc2ggQ29udHJvbGxlciBmb3IgSGkxNlhYIGNoaXBzZXRzXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy00NjUtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjQ2Njpjb25maWcgU1BJX05YUF9GTEVYU1BJXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQ2Ny1cdHRyaXN0YXRlIFwmIzM0O05YUCBGbGV4IFNQSSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy00NzYtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjQ3Nzpjb25maWcgU1BJX05YUF9YU1BJXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQ3OC0gICAgICAgIHRyaXN0YXRlIFwmIzM0O05YUCB4U1BJIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQ4Ni1cbmRyaXZlcnMvc3BpL0tjb25maWc6NDg3OmNvbmZpZyBTUElfR1BJT1xuZHJpdmVycy9zcGkvS2NvbmZpZy00ODgtXHR0cmlzdGF0ZSBcJiMzNDtHUElPLWJhc2VkIGJpdGJhbmdpbmcgU1BJIE1hc3RlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNTAyLVxuZHJpdmVycy9zcGkvS2NvbmZpZzo1MDM6Y29uZmlnIFNQSV9JTUdfU1BGSVxuZHJpdmVycy9zcGkvS2NvbmZpZy01MDQtXHR0cmlzdGF0ZSBcJiMzNDtJTUcgU1BGSSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy01MDktXG5kcml2ZXJzL3NwaS9LY29uZmlnOjUxMDpjb25maWcgU1BJX0lNWFxuZHJpdmVycy9zcGkvS2NvbmZpZy01MTEtXHR0cmlzdGF0ZSBcJiMzNDtGcmVlc2NhbGUgaS5NWCBTUEkgY29udHJvbGxlcnNcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTUxNS1cbmRyaXZlcnMvc3BpL0tjb25maWc6NTE2OmNvbmZpZyBTUElfSU5HRU5JQ1xuZHJpdmVycy9zcGkvS2NvbmZpZy01MTctXHR0cmlzdGF0ZSBcJiMzNDtJbmdlbmljIFNvQ3MgU1BJIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTUyNC1cbmRyaXZlcnMvc3BpL0tjb25maWc6NTI1OmNvbmZpZyBTUElfSU5URUxcbmRyaXZlcnMvc3BpL0tjb25maWctNTI2LVx0dHJpc3RhdGVcbmRyaXZlcnMvc3BpL0tjb25maWctNTI3LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo1Mjg6Y29uZmlnIFNQSV9JTlRFTF9QQ0lcbmRyaXZlcnMvc3BpL0tjb25maWctNTI5LVx0dHJpc3RhdGUgXCYjMzQ7SW50ZWwgUENIL1BDVSBTUEkgZmxhc2ggUENJIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNTQ1LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo1NDY6Y29uZmlnIFNQSV9JTlRFTF9QTEFURk9STVxuZHJpdmVycy9zcGkvS2NvbmZpZy01NDctXHR0cmlzdGF0ZSBcJiMzNDtJbnRlbCBQQ0gvUENVIFNQSSBmbGFzaCBwbGF0Zm9ybSBkcml2ZXIgKERBTkdFUk9VUylcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTU2NC1cbmRyaXZlcnMvc3BpL0tjb25maWc6NTY1OmNvbmZpZyBTUElfSkNPUkVcbmRyaXZlcnMvc3BpL0tjb25maWctNTY2LVx0dHJpc3RhdGUgXCYjMzQ7Si1Db3JlIFNQSSBNYXN0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTU3MS1cbmRyaXZlcnMvc3BpL0tjb25maWc6NTcyOmNvbmZpZyBTUElfS1NQSTJcbmRyaXZlcnMvc3BpL0tjb25maWctNTczLVx0dHJpc3RhdGUgXCYjMzQ7U3VwcG9ydCBmb3IgS0VCQSBTUEkgbWFzdGVyIHR5cGUgMiBoYXJkd2FyZVwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNTgzLVxuZHJpdmVycy9zcGkvS2NvbmZpZzo1ODQ6Y29uZmlnIFNQSV9MTTcwX0xMUFxuZHJpdmVycy9zcGkvS2NvbmZpZy01ODUtXHR0cmlzdGF0ZSBcJiMzNDtQYXJhbGxlbCBwb3J0IGFkYXB0ZXIgZm9yIExNNzAgZXZhbCBib2FyZCAoREVWRUxPUE1FTlQpXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy01OTItXG5kcml2ZXJzL3NwaS9LY29uZmlnOjU5Mzpjb25maWcgU1BJX0xPT05HU09OX0NPUkVcbmRyaXZlcnMvc3BpL0tjb25maWctNTk0LVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTU5Ni1cbmRyaXZlcnMvc3BpL0tjb25maWc6NTk3OmNvbmZpZyBTUElfTE9PTkdTT05fUENJXG5kcml2ZXJzL3NwaS9LY29uZmlnLTU5OC1cdHRyaXN0YXRlIFwmIzM0O0xvb25nc29uIFNQSSBDb250cm9sbGVyIFBDSSBEcml2ZXIgU3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNjA3LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo2MDg6Y29uZmlnIFNQSV9MT09OR1NPTl9QTEFURk9STVxuZHJpdmVycy9zcGkvS2NvbmZpZy02MDktXHR0cmlzdGF0ZSBcJiMzNDtMb29uZ3NvbiBTUEkgQ29udHJvbGxlciBQbGF0Zm9ybSBEcml2ZXIgU3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNjE4LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo2MTk6Y29uZmlnIFNQSV9MUDg4NDFfUlRDXG5kcml2ZXJzL3NwaS9LY29uZmlnLTYyMC1cdHRyaXN0YXRlIFwmIzM0O0lDUCBEQVMgTFAtODg0MSBTUEkgQ29udHJvbGxlciBmb3IgUlRDXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy02MjgtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjYyOTpjb25maWcgU1BJX01QQzUyeHhcbmRyaXZlcnMvc3BpL0tjb25maWctNjMwLVx0dHJpc3RhdGUgXCYjMzQ7RnJlZXNjYWxlIE1QQzUyeHggU1BJIChub24tUFNDKSBjb250cm9sbGVyIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTYzNS1cbmRyaXZlcnMvc3BpL0tjb25maWc6NjM2OmNvbmZpZyBTUElfTVBDNTJ4eF9QU0NcbmRyaXZlcnMvc3BpL0tjb25maWctNjM3LVx0dHJpc3RhdGUgXCYjMzQ7RnJlZXNjYWxlIE1QQzUyeHggUFNDIFNQSSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy02NDItXG5kcml2ZXJzL3NwaS9LY29uZmlnOjY0Mzpjb25maWcgU1BJX01QQzUxMnhfUFNDXG5kcml2ZXJzL3NwaS9LY29uZmlnLTY0NC1cdHRyaXN0YXRlIFwmIzM0O0ZyZWVzY2FsZSBNUEM1MTJ4IFBTQyBTUEkgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNjQ5LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo2NTA6Y29uZmlnIFNQSV9GU0xfTElCXG5kcml2ZXJzL3NwaS9LY29uZmlnLTY1MS1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy02NTMtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjY1NDpjb25maWcgU1BJX0ZTTF9DUE1cbmRyaXZlcnMvc3BpL0tjb25maWctNjU1LVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTY1Ny1cbmRyaXZlcnMvc3BpL0tjb25maWc6NjU4OmNvbmZpZyBTUElfRlNMX1NQSVxuZHJpdmVycy9zcGkvS2NvbmZpZy02NTktXHR0cmlzdGF0ZSBcJiMzNDtGcmVlc2NhbGUgU1BJIGNvbnRyb2xsZXIgYW5kIEFlcm9mbGV4IEdhaXNsZXIgR1JMSUIgU1BJIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTY2OS1cbmRyaXZlcnMvc3BpL0tjb25maWc6NjcwOmNvbmZpZyBTUElfRlNMX0RTUElcbmRyaXZlcnMvc3BpL0tjb25maWctNjcxLVx0dHJpc3RhdGUgXCYjMzQ7RnJlZXNjYWxlIERTUEkgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNjc3LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo2Nzg6Y29uZmlnIFNQSV9GU0xfRVNQSVxuZHJpdmVycy9zcGkvS2NvbmZpZy02NzktXHR0cmlzdGF0ZSBcJiMzNDtGcmVlc2NhbGUgZVNQSSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy02ODUtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjY4Njpjb25maWcgU1BJX0xKQ0FcbmRyaXZlcnMvc3BpL0tjb25maWctNjg3LVx0dHJpc3RhdGUgXCYjMzQ7SW50ZWwgTGEgSm9sbGEgQ292ZSBBZGFwdGVyIFNQSSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy02OTYtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjY5Nzpjb25maWcgU1BJX01FU09OX1NQSUNDXG5kcml2ZXJzL3NwaS9LY29uZmlnLTY5OC1cdHRyaXN0YXRlIFwmIzM0O0FtbG9naWMgTWVzb24gU1BJQ0MgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNzA0LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo3MDU6Y29uZmlnIFNQSV9NRVNPTl9TUElGQ1xuZHJpdmVycy9zcGkvS2NvbmZpZy03MDYtXHR0cmlzdGF0ZSBcJiMzNDtBbWxvZ2ljIE1lc29uIFNQSUZDIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTcxMi1cbmRyaXZlcnMvc3BpL0tjb25maWc6NzEzOmNvbmZpZyBTUElfTUlDUk9DSElQX0NPUkVfUVNQSVxuZHJpdmVycy9zcGkvS2NvbmZpZy03MTQtXHR0cmlzdGF0ZSBcJiMzNDtNaWNyb2NoaXAgRlBHQSBRU1BJIGNvbnRyb2xsZXJzXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy03MjEtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjcyMjpjb25maWcgU1BJX01JQ1JPQ0hJUF9DT1JFX1NQSVxuZHJpdmVycy9zcGkvS2NvbmZpZy03MjMtXHR0cmlzdGF0ZSBcJiMzNDtNaWNyb2NoaXAgRlBHQSBDb3JlU1BJIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTczMC1cbmRyaXZlcnMvc3BpL0tjb25maWc6NzMxOmNvbmZpZyBTUElfTVQ2NVhYXG5kcml2ZXJzL3NwaS9LY29uZmlnLTczMi1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIFNQSSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy03MzktXG5kcml2ZXJzL3NwaS9LY29uZmlnOjc0MDpjb25maWcgU1BJX01UNzYyMVxuZHJpdmVycy9zcGkvS2NvbmZpZy03NDEtXHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBNVDc2MjEgU1BJIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTc0NS1cbmRyaXZlcnMvc3BpL0tjb25maWc6NzQ2OmNvbmZpZyBTUElfTVRLX05PUlxuZHJpdmVycy9zcGkvS2NvbmZpZy03NDctXHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBTUEkgTk9SIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTc1NS1cbmRyaXZlcnMvc3BpL0tjb25maWc6NzU2OmNvbmZpZyBTUElfTVRLX1NORklcbmRyaXZlcnMvc3BpL0tjb25maWctNzU3LVx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgU1BJIE5BTkQgRmxhc2ggSW50ZXJmYWNlXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy03NjUtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjc2Njpjb25maWcgU1BJX1dQQ01fRklVXG5kcml2ZXJzL3NwaS9LY29uZmlnLTc2Ny1cdHRyaXN0YXRlIFwmIzM0O051dm90b24gV1BDTTQ1MCBGbGFzaCBJbnRlcmZhY2UgVW5pdFwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctNzc2LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo3Nzc6Y29uZmlnIFNQSV9OUENNX0ZJVVxuZHJpdmVycy9zcGkvS2NvbmZpZy03NzgtXHR0cmlzdGF0ZSBcJiMzNDtOdXZvdG9uIE5QQ00gRkxBU0ggSW50ZXJmYWNlIFVuaXRcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTc4Ni1cbmRyaXZlcnMvc3BpL0tjb25maWc6Nzg3OmNvbmZpZyBTUElfTlBDTV9QU1BJXG5kcml2ZXJzL3NwaS9LY29uZmlnLTc4OC1cdHRyaXN0YXRlIFwmIzM0O051dm90b24gTlBDTSBQU1BJIENvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTc5My1cbmRyaXZlcnMvc3BpL0tjb25maWc6Nzk0OmNvbmZpZyBTUElfTEFOVElRX1NTQ1xuZHJpdmVycy9zcGkvS2NvbmZpZy03OTUtXHR0cmlzdGF0ZSBcJiMzNDtMYW50aXEgU1NDIFNQSSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy04MDEtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjgwMjpjb25maWcgU1BJX09DX1RJTllcbmRyaXZlcnMvc3BpL0tjb25maWctODAzLVx0dHJpc3RhdGUgXCYjMzQ7T3BlbkNvcmVzIHRpbnkgU1BJXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy04MDgtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjgwOTpjb25maWcgU1BJX09DVEVPTlxuZHJpdmVycy9zcGkvS2NvbmZpZy04MTAtXHR0cmlzdGF0ZSBcJiMzNDtDYXZpdW0gT0NURU9OIFNQSSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy04MTUtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjgxNjpjb25maWcgU1BJX09NQVBfVVdJUkVcbmRyaXZlcnMvc3BpL0tjb25maWctODE3LVx0dHJpc3RhdGUgXCYjMzQ7T01BUDEgTWljcm9XaXJlXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy04MjItXG5kcml2ZXJzL3NwaS9LY29uZmlnOjgyMzpjb25maWcgU1BJX09NQVAyNFhYXG5kcml2ZXJzL3NwaS9LY29uZmlnLTgyNC1cdHRyaXN0YXRlIFwmIzM0O01jU1BJIGRyaXZlciBmb3IgT01BUFwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctODMwLVxuZHJpdmVycy9zcGkvS2NvbmZpZzo4MzE6Y29uZmlnIFNQSV9USV9RU1BJXG5kcml2ZXJzL3NwaS9LY29uZmlnLTgzMi1cdHRyaXN0YXRlIFwmIzM0O0RSQTd4eHggUVNQSSBjb250cm9sbGVyIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTgzOC1cbmRyaXZlcnMvc3BpL0tjb25maWc6ODM5OmNvbmZpZyBTUElfT1JJT05cbmRyaXZlcnMvc3BpL0tjb25maWctODQwLVx0dHJpc3RhdGUgXCYjMzQ7T3Jpb24gU1BJIG1hc3RlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctODQ1LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo4NDY6Y29uZmlnIFNQSV9QQ0kxWFhYWFxuZHJpdmVycy9zcGkvS2NvbmZpZy04NDctXHR0cmlzdGF0ZSBcJiMzNDtQQ0kxWFhYWCBTUEkgQnVzIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTg1NC1cbmRyaXZlcnMvc3BpL0tjb25maWc6ODU1OmNvbmZpZyBTUElfUElDMzJcbmRyaXZlcnMvc3BpL0tjb25maWctODU2LVx0dHJpc3RhdGUgXCYjMzQ7TWljcm9jaGlwIFBJQzMyIHNlcmllcyBTUElcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTg2MC1cbmRyaXZlcnMvc3BpL0tjb25maWc6ODYxOmNvbmZpZyBTUElfUElDMzJfU1FJXG5kcml2ZXJzL3NwaS9LY29uZmlnLTg2Mi1cdHRyaXN0YXRlIFwmIzM0O01pY3JvY2hpcCBQSUMzMiBRdWFkIFNQSSBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTg2Ni1cbmRyaXZlcnMvc3BpL0tjb25maWc6ODY3OmNvbmZpZyBTUElfUEwwMjJcbmRyaXZlcnMvc3BpL0tjb25maWctODY4LVx0dHJpc3RhdGUgXCYjMzQ7QVJNIEFNQkEgUEwwMjIgU1NQIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTg3Ny1cbmRyaXZlcnMvc3BpL0tjb25maWc6ODc4OmNvbmZpZyBTUElfUE9MQVJGSVJFX1NPQ1xuZHJpdmVycy9zcGkvS2NvbmZpZy04NzktXHR0cmlzdGF0ZSBcJiMzNDtNaWNyb2NoaXAgRlBHQSBTUEkgY29udHJvbGxlcnNcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTg4Ny1cbmRyaXZlcnMvc3BpL0tjb25maWc6ODg4OmNvbmZpZyBTUElfUFBDNHh4XG5kcml2ZXJzL3NwaS9LY29uZmlnLTg4OS1cdHRyaXN0YXRlIFwmIzM0O1BQQzR4eCBTUEkgQ29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctODk0LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo4OTU6Y29uZmlnIFNQSV9QWEEyWFhcbmRyaXZlcnMvc3BpL0tjb25maWctODk2LVx0dHJpc3RhdGUgXCYjMzQ7UFhBMnh4IFNTUCBTUEkgbWFzdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy05MDItXG5kcml2ZXJzL3NwaS9LY29uZmlnOjkwMzpjb25maWcgU1BJX1BYQTJYWF9QQ0lcbmRyaXZlcnMvc3BpL0tjb25maWctOTA0LVx0ZGVmX3RyaXN0YXRlIFNQSV9QWEEyWFggXHUwMDI2XHUwMDI2IFBDSSBcdTAwMjZcdTAwMjYgQ09NTU9OX0NMS1xuZHJpdmVycy9zcGkvS2NvbmZpZy05MDUtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjkwNjpjb25maWcgU1BJX1JFQUxURUtfU05BTkRcbmRyaXZlcnMvc3BpL0tjb25maWctOTA3LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayBTUEktTkFORCBGbGFzaCBDb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy05MTYtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjkxNzpjb25maWcgU1BJX1JPQ0tDSElQXG5kcml2ZXJzL3NwaS9LY29uZmlnLTkxOC1cdHRyaXN0YXRlIFwmIzM0O1JvY2tjaGlwIFNQSSBjb250cm9sbGVyIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctOTI4LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo5Mjk6Y29uZmlnIFNQSV9ST0NLQ0hJUF9TRkNcbmRyaXZlcnMvc3BpL0tjb25maWctOTMwLVx0dHJpc3RhdGUgXCYjMzQ7Um9ja2NoaXAgU2VyaWFsIEZsYXNoIENvbnRyb2xsZXIgKFNGQylcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk0MC1cbmRyaXZlcnMvc3BpL0tjb25maWc6OTQxOmNvbmZpZyBTUElfUkI0WFhcbmRyaXZlcnMvc3BpL0tjb25maWctOTQyLVx0dHJpc3RhdGUgXCYjMzQ7TWlrcm90aWsgUkI0WFggU1BJIG1hc3RlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctOTQ3LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo5NDg6Y29uZmlnIFNQSV9SUENJRlxuZHJpdmVycy9zcGkvS2NvbmZpZy05NDktXHR0cmlzdGF0ZSBcJiMzNDtSZW5lc2FzIFJQQy1JRiBTUEkgZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy05NTMtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjk1NDpjb25maWcgU1BJX1JTUElcbmRyaXZlcnMvc3BpL0tjb25maWctOTU1LVx0dHJpc3RhdGUgXCYjMzQ7UmVuZXNhcyBSU1BJL1FTUEkgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctOTU5LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo5NjA6Y29uZmlnIFNQSV9SWlYySF9SU1BJXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk2MS1cdHRyaXN0YXRlIFwmIzM0O1JlbmVzYXMgUlovVjJIIFJTUEkgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctOTY3LVxuZHJpdmVycy9zcGkvS2NvbmZpZzo5Njg6Y29uZmlnIFNQSV9SWlYyTV9DU0lcbmRyaXZlcnMvc3BpL0tjb25maWctOTY5LVx0dHJpc3RhdGUgXCYjMzQ7UmVuZXNhcyBSWi9WMk0gQ1NJIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk3NC1cbmRyaXZlcnMvc3BpL0tjb25maWc6OTc1OmNvbmZpZyBTUElfUUNPTV9RU1BJXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk3Ni1cdHRyaXN0YXRlIFwmIzM0O1FUSSBRU1BJIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk4MC1cbmRyaXZlcnMvc3BpL0tjb25maWc6OTgxOmNvbmZpZyBTUElfUVBJQ19TTkFORFxuZHJpdmVycy9zcGkvS2NvbmZpZy05ODItXHR0cmlzdGF0ZSBcJiMzNDtRUElDIFNOQU5EIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk4OS1cbmRyaXZlcnMvc3BpL0tjb25maWc6OTkwOmNvbmZpZyBTUElfUVVQXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk5MS1cdHRyaXN0YXRlIFwmIzM0O1F1YWxjb21tIFNQSSBjb250cm9sbGVyIHdpdGggUVVQIGludGVyZmFjZVwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMTAwMi1cbmRyaXZlcnMvc3BpL0tjb25maWc6MTAwMzpjb25maWcgU1BJX1FDT01fR0VOSVxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDA0LVx0dHJpc3RhdGUgXCYjMzQ7UXVhbGNvbW0gR0VOSSBiYXNlZCBTUEkgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMTAxNC1cbmRyaXZlcnMvc3BpL0tjb25maWc6MTAxNTpjb25maWcgU1BJX1MzQzY0WFhcbmRyaXZlcnMvc3BpL0tjb25maWctMTAxNi1cdHRyaXN0YXRlIFwmIzM0O1NhbXN1bmcgUzNDNjRYWC9FeHlub3MgU29DIHNlcmllcyB0eXBlIFNQSVwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMTAyMS1cbmRyaXZlcnMvc3BpL0tjb25maWc6MTAyMjpjb25maWcgU1BJX1NDMThJUzYwMlxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDIzLVx0dHJpc3RhdGUgXCYjMzQ7TlhQIFNDMThJUzYwMi82MDJCLzYwMyBJMkMgdG8gU1BJIGJyaWRnZVwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMTAyNy1cbmRyaXZlcnMvc3BpL0tjb25maWc6MTAyODpjb25maWcgU1BJX1NIX01TSU9GXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwMjktXHR0cmlzdGF0ZSBcJiMzNDtTdXBlckggTVNJT0YgU1BJIGNvbnRyb2xsZXJcJiMzNDtcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwMzQtXG5kcml2ZXJzL3NwaS9LY29uZmlnOjEwMzU6Y29uZmlnIFNQSV9TSFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDM2LVx0dHJpc3RhdGUgXCYjMzQ7U3VwZXJIIFNQSSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDQwLVxuZHJpdmVycy9zcGkvS2NvbmZpZzoxMDQxOmNvbmZpZyBTUElfU0hfU0NJXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwNDItXHR0cmlzdGF0ZSBcJiMzNDtTdXBlckggU0NJIFNQSSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDQ3LVxuZHJpdmVycy9zcGkvS2NvbmZpZzoxMDQ4OmNvbmZpZyBTUElfU0hfSFNQSVxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDQ5LVx0dHJpc3RhdGUgXCYjMzQ7U3VwZXJIIEhTUEkgY29udHJvbGxlclwmIzM0O1xuLS1cbmRyaXZlcnMvc3BpL0tjb25maWctMTA1My1cbmRyaXZlcnMvc3BpL0tjb25maWc6MTA1NDpjb25maWcgU1BJX1NJRklWRVxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDU1LVx0dHJpc3RhdGUgXCYjMzQ7U2lGaXZlIFNQSSBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDU5LVxuZHJpdmVycy9zcGkvS2NvbmZpZzoxMDYwOmNvbmZpZyBTUElfU0xBVkVfTVQyN1hYXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwNjEtXHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBTUEkgc2xhdmUgZGV2aWNlXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDY5LVxuZHJpdmVycy9zcGkvS2NvbmZpZzoxMDcwOmNvbmZpZyBTUElfU05fRl9PU1BJXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwNzEtXHR0cmlzdGF0ZSBcJiMzNDtTb2Npb25leHQgRl9PU1BJIFNQSSBmbGFzaCBjb250cm9sbGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDc4LVxuZHJpdmVycy9zcGkvS2NvbmZpZzoxMDc5OmNvbmZpZyBTUElfU0cyMDQ0X05PUlxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIyIDA0OjUwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYwNDc4CgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogNDI5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIGBsYW44NjV4YCBEcml2ZXIgYW5kIFN5emthbGxlciBJbnRlZ3JhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIHRhY2tsaW5nIHRoaXMgYGxhbjg2NXhgIGRyaXZlciwgYW5kIG15IGltbWVkaWF0ZSBjb25jZXJuIGlzIGhvdyB0byBldmVuICpnZXQqIGl0IHByb2JlZCB3aXRoaW4gdGhlIHN5emthbGxlciBlbnZpcm9ubWVudC4gSSBzZWUgdHdvIHBvdGVudGlhbCBTUEkgaW1wbGVtZW50YXRpb25zLCBgU1BJX0JJVEJBTkdgIGFuZCBgU1BJX0dQSU9gLCBidXQgdGhhdCYjMzk7cyBub3QgdGhlIGNvcmUgaXNzdWUuIFRoZSBwcm9ibGVtIGlzIHRoYXQgc3l6a2FsbGVyIGRvZXNuJiMzOTt0IGhhdmUgYSBidWlsdC1pbiBtZWNoYW5pc20gdG8gaW5zdGFudGlhdGUgYXJiaXRyYXJ5IFNQSSBkZXZpY2VzLCByaWdodD8gSXQmIzM5O3Mgbm90IGxpa2UgdGhlcmUmIzM5O3Mgc29tZSBraW5kIG9mIHZpcnR1YWwgU1BJIGJ1cyBJIGNhbiBpbmplY3QgaW50by4KCkNvdWxkIG5ldGxpbmsgYmUgdGhlIGFuc3dlcj8gTm8sIHRoYXQmIzM5O3MgZGVmaW5pdGVseSBub3QgaG93IFNQSSBkcml2ZXJzIGFyZSBoYW5kbGVkLiBXaGF0IGFib3V0IGBzeXpfZGV2X2luaXRgPyBOb3BlLCB0aGF0JiMzOTtzIG5vdCBhIHRoaW5nLiBIbW0sIGlzIHRoZXJlIGFueXRoaW5nIGluIGBzeXMvbGludXgvZGV2X3NwaS50eHRgPyBObywgYHNwaWRldmAgaXMgZm9yIHVzZXJzcGFjZSBTUEkgaW50ZXJhY3Rpb247IEkgbmVlZCB0aGUga2VybmVsIGRyaXZlciB0byBhY3R1YWxseSBwcm9iZS4KCkFscmlnaHQsIG1heWJlIHZpYSBkZXZpY2UgdHJlZT8gQnV0IHN5emthbGxlciBkb2VzbiYjMzk7dCBpbmplY3QgdGhvc2UgZWl0aGVyLCBzbyB0aGF0JiMzOTtzIGEgZGVhZCBlbmQuIE9rYXksIGxldCYjMzk7cyB0aGluayBhYm91dCBzeXNmcy4gQ291bGQgSSB1c2UgdGhhdCB0byBhdCBsZWFzdCAqdHJ5KiB0byBmb3JjZSB0aGUgZHJpdmVyIHRvIGxvYWQ/IFNvbWV0aGluZyBsaWtlIGBlY2hvIGxhbjg2NTAgJmd0OyAvc3lzL2J1cy9zcGkvZGV2aWNlcy9zcGkwLjAvZHJpdmVyX292ZXJyaWRlYD8gVGhlIGNhdGNoLCBvZiBjb3Vyc2UsIGlzIHRoYXQgYHNwaTAuMGAgaGFzIHRvICphbHJlYWR5KiBleGlzdC4KClRoaXMgYnJpbmdzIG1lIHRvIHRoZSBmdW5kYW1lbnRhbCBxdWVzdGlvbjogRG9lcyB0aGUgc3l6a2FsbGVyIFFFTVUgZW52aXJvbm1lbnQgZXZlbiAqaGF2ZSogYW4gU1BJIGNvbnRyb2xsZXIsIG9yIGFueSBTUEkgZGV2aWNlcyBjb25uZWN0ZWQgdG8gaXQ/IFFFTVUgKm1pZ2h0KiBoYXZlIHNvbWUsIGxpa2UgYHBsMDIyYCBvbiBBUk0sIGJ1dCB3aGF0IGFib3V0IG9uIHg4Nj8gT24geDg2LCBtYXliZSB0aGVyZSBpcyBub3RoaW5nIGF0IGFsbCwgbWF5YmUgYGxwY19pY2hgPyBBbmQgZXZlbiBpZiB0aGVyZSYjMzk7cyBhIGNvbnRyb2xsZXIsIGl0JiMzOTtzIGhpZ2hseSB1bmxpa2VseSB0aGF0IGl0IGhhcyBhIGRldmljZSBjb25uZWN0ZWQgdG8gaXQgdW5sZXNzIGl0JiMzOTtzIGJlZW4gZXhwbGljaXRseSBjb25maWd1cmVkIHZpYSBBQ1BJIG9yIERldmljZSBUcmVlLgoKU28sIHJlYWxpc3RpY2FsbHksIGBsYW44NjV4X3Byb2JlYCBpcyBuZXZlciBnb2luZyB0byBiZSBjYWxsZWQgaW4gdGhlIGN1cnJlbnQgc2V0dXAuIEFuZCBpZiBgbGFuODY1eF9wcm9iZWAgaXNuJiMzOTt0IGNhbGxlZCwgdGhlbiBgb2FfdGM2X2luaXRgIGlzIG5ldmVyIGNhbGxlZCwgd2hpY2ggbWFrZXMgYWxsIHRoYXQgY29kZSBpbiBgb2FfdGM2LmNgIGNvbXBsZXRlbHkgdW5yZWFjaGFibGUuIEkgcmVhbGx5IG5lZWQgdG8gZG91YmxlIGNoZWNrIHRoYXQgYG9hX3RjNl9pbml0YCAqY2FuJiMzOTt0KiBiZSBjYWxsZWQgYnkgc29tZSBvdGhlciBtZWFucywgdGhvdWdoOyBjYW4mIzM5O3QgdGFrZSBhbnkgYXNzdW1wdGlvbnMgaGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjIgMDQ6NTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7b2FfdGM2X2luaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL29hLXRjNi1mcmFtZXdvcmsucnN0PTQ1ND1UaGUgaW5jbHVkZS9saW51eC9vYV90YzYuaCBkZWZpbmVzIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zOlxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL29hLXRjNi1mcmFtZXdvcmsucnN0LTQ1NS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9vYS10YzYtZnJhbWV3b3JrLnJzdDo0NTY6Li4gYzpmdW5jdGlvbjo6IHN0cnVjdCBvYV90YzYgKm9hX3RjNl9pbml0KHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIFxcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvb2EtdGM2LWZyYW1ld29yay5yc3QtNDU3LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYz0zMzM9c3RhdGljIGludCBsYW44NjV4X3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTM0OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozNDk6XHRwcml2LVx1MDAzZXRjNiA9IG9hX3RjNl9pbml0KHNwaSwgbmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zNTAtXHRpZiAoIXByaXYtXHUwMDNldGM2KSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM9MTI5ND1FWFBPUlRfU1lNQk9MX0dQTChvYV90YzZfc3RhcnRfeG1pdCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMTI5Ni0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjEyOTc6ICogb2FfdGM2X2luaXQgLSBhbGxvY2F0ZXMgYW5kIGluaXRpYWxpemVzIG9hX3RjNiBzdHJ1Y3R1cmUuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0xMjk4LSAqIEBzcGk6IGRldmljZSB3aXRoIHdoaWNoIGRhdGEgd2lsbCBiZSBleGNoYW5nZWQuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMTMwMy0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjEzMDQ6c3RydWN0IG9hX3RjNiAqb2FfdGM2X2luaXQoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTEzMDUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTE0MDgtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MTQwOTpFWFBPUlRfU1lNQk9MX0dQTChvYV90YzZfaW5pdCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0xNDEwLVxuLS1cbmluY2x1ZGUvbGludXgvb2FfdGM2Lmg9MTM9c3RydWN0IG9hX3RjNjtcbmluY2x1ZGUvbGludXgvb2FfdGM2LmgtMTQtXG5pbmNsdWRlL2xpbnV4L29hX3RjNi5oOjE1OnN0cnVjdCBvYV90YzYgKm9hX3RjNl9pbml0KHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpO1xuaW5jbHVkZS9saW51eC9vYV90YzYuaC0xNi12b2lkIG9hX3RjNl9leGl0KHN0cnVjdCBvYV90YzYgKnRjNik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIyIDA0OjUxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYyMTgzCgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogMTI1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgdGhlIGBsYW44NjV4YCBTUEkgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gZm9jdXNpbmcgb24gYSBzcGVjaWZpYyBwaWVjZSBvZiBjb2RlLiBJdCBsb29rcyBsaWtlIHRoaXMgYml0IG9mIGxvZ2ljIGlzIG9ubHkgdXNlZCBieSB0aGUgYGxhbjg2NXhgIGRyaXZlciwgd2hpY2gsIGFzIEkgcmVjYWxsLCBoYW5kbGVzIFNQSSBjb21tdW5pY2F0aW9uLiBNeSBtYWluIGNvbmNlcm4gaXMgd2hldGhlciB0aGlzIHBhcnRpY3VsYXIgY29kZSBwYXRoIGlzIGFjdHVhbGx5IHJlYWNoYWJsZS4gSG93IGNhbiBJIHRyaWdnZXIgaXQ/CgpIbW0sIEkgd29uZGVyIGlmIHN5emthbGxlciwgb3VyIGZ1enplciwgaGFzIGEgc3lzY2FsbCBzZXR1cCBzcGVjaWZpY2FsbHkgZm9yIFNQSS4gTGV0IG1lIHF1aWNrbHkgc2VlIGlmIHRoZXJlJiMzOTtzIGEgYHN5el9zcGlfc2V0dXBgIG9yIHNvbWV0aGluZyBzaW1pbGFyLiBVbmZvcnR1bmF0ZWx5LCBJIGRvbiYjMzk7dCBoYXZlIGRpcmVjdCBhY2Nlc3MgdG8gdGhlIHN5emthbGxlciBzb3VyY2UgcmlnaHQgbm93LCBidXQgSSBjYW4gd29yayBhcm91bmQgdGhhdC4gSSYjMzk7bGwgY2hlY2sgaWYgdGhlIGtlcm5lbCBoYXMgYW55IG1vY2sgb3IgdmlydHVhbCBTUEkgZHJpdmVycyB0aGF0IHN5emthbGxlciBtaWdodCBiZSBsZXZlcmFnaW5nLiBMZXQmIzM5O3Mgc2VlIGlmIGEgYHNwaS1tb2NrdXAuY2AgZmlsZSBleGlzdHMuIFRoYXQmIzM5O2xsIGdpdmUgbWUgYSBnb29kIGluZGljYXRpb24gb2YgaG93IHN5emthbGxlciBtaWdodCBpbnRlcmFjdCB3aXRoIFNQSSBkZXZpY2VzIGluIGEgc2ltdWxhdGVkIGVudmlyb25tZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMiAwNDo1MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NwaS1tb2NrdXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMiAwNDo1MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MjU1NwoJCQkJCQkJb3V0cHV0OiAyNgoJCQkJCQkJdGhvdWdodHM6IDE0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipJbnZlc3RpZ2F0aW5nIFNQSSBMb29wYmFjayBUZXN0aW5nKioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcy4gVGhlIG1lbnRhbCBjaGVja2xpc3Qgc3RhcnRzIHdpdGggYSBmdW5kYW1lbnRhbCBxdWVzdGlvbjogZG9lcyBhIHByZS1leGlzdGluZyAmIzM0O3NwaS1sb29wYmFjay10ZXN0LmMmIzM0OyBmaWxlIGV2ZW4gKmV4aXN0Kj8gSXQmIzM5O3MgYSBrZXkgZmlyc3Qgc3RlcC4gRmluZGluZyB0aGF0IHdvdWxkIGJlIGEgaHVnZSB0aW1lLXNhdmVyLiBJZiB0aGVyZSYjMzk7cyBhbHJlYWR5IGEgZGVkaWNhdGVkIGxvb3BiYWNrIHRlc3QsIHRoZSBmb2N1cyBzaGlmdHMgdG8gdW5kZXJzdGFuZGluZyBpdHMgYXJjaGl0ZWN0dXJlLCBjYXBhYmlsaXRpZXMsIGFuZCBhbnkgcG90ZW50aWFsIG1vZGlmaWNhdGlvbnMgbmVjZXNzYXJ5IHRvIGFsaWduIHdpdGggdGhlIGN1cnJlbnQgcHJvamVjdCYjMzk7cyBzcGVjaWZpYyBoYXJkd2FyZSBhbmQgcmVxdWlyZW1lbnRzLiBUaGUgaWRlYWwgc2NlbmFyaW8gaXMgbGV2ZXJhZ2luZyBhIHdlbGwtdGVzdGVkLCBkb2N1bWVudGVkIHNvbHV0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMiAwNDo1MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzcGktbG9vcGJhY2stdGVzdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaW5jb21wbGV0ZS1kZXZpY2VzLnlhbWw9MjY9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaW5jb21wbGV0ZS1kZXZpY2VzLnlhbWwtMjQ1LSAgICAgICAgICAtIGdwaW8tdmlydHVzZXJcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pbmNvbXBsZXRlLWRldmljZXMueWFtbDoyNDY6ICAgICAgICAgIC0gbGludXgsc3BpLWxvb3BiYWNrLXRlc3RcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pbmNvbXBsZXRlLWRldmljZXMueWFtbC0yNDctICAgICAgICAgIC0gbWFpbGJveC10ZXN0XG4tLVxuZHJpdmVycy9zcGkvTWFrZWZpbGU9MTQ9b2JqLSQoQ09ORklHX1NQSV9TUElERVYpXHRcdCYjNDM7PSBzcGlkZXYub1xuZHJpdmVycy9zcGkvTWFrZWZpbGU6MTU6b2JqLSQoQ09ORklHX1NQSV9MT09QQkFDS19URVNUKVx0XHQmIzQzOz0gc3BpLWxvb3BiYWNrLXRlc3Qub1xuZHJpdmVycy9zcGkvTWFrZWZpbGUtMTYtXG4tLVxuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYy0yLS8qXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jOjM6ICogIGxpbnV4L2RyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmNcbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmMtNC0gKlxuLS1cbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmM9MzU4PXN0YXRpYyBpbnQgc3BpX2xvb3BiYWNrX3Rlc3RfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSlcbi0tXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jLTM3Mi1cbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmM6MzczOlx0ZGV2X2luZm8oXHUwMDI2c3BpLVx1MDAzZWRldiwgXCYjMzQ7RXhlY3V0aW5nIHNwaS1sb29wYmFjay10ZXN0c1xcblwmIzM0Oyk7XG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jLTM3NC1cbi0tXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jLTM3Ni1cbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmM6Mzc3Olx0ZGV2X2luZm8oXHUwMDI2c3BpLVx1MDAzZWRldiwgXCYjMzQ7RmluaXNoZWQgc3BpLWxvb3BiYWNrLXRlc3RzIHdpdGggcmV0dXJuOiAlaVxcblwmIzM0OyxcbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmMtMzc4LVx0XHQgcmV0KTtcbi0tXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jPTM4ND1zdGF0aWMgc3RydWN0IG9mX2RldmljZV9pZCBzcGlfbG9vcGJhY2tfdGVzdF9vZl9tYXRjaFtdID0ge1xuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYzozODU6XHR7IC5jb21wYXRpYmxlXHQ9IFwmIzM0O2xpbnV4LHNwaS1sb29wYmFjay10ZXN0XCYjMzQ7LCB9LFxuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYy0zODYtXHR7IH1cbi0tXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jPTM5Nj1zdGF0aWMgc3RydWN0IHNwaV9kcml2ZXIgc3BpX2xvb3BiYWNrX3Rlc3RfZHJpdmVyID0ge1xuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYy0zOTctXHQuZHJpdmVyID0ge1xuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYzozOTg6XHRcdC5uYW1lID0gXCYjMzQ7c3BpLWxvb3BiYWNrLXRlc3RcJiMzNDssXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jLTM5OS1cdFx0Lm9mX21hdGNoX3RhYmxlID0gc3BpX2xvb3BiYWNrX3Rlc3Rfb2ZfbWF0Y2gsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIyIDA0OjUxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYzNDE2CgkJCQkJCQlvdXRwdXQ6IDIzCgkJCQkJCQl0aG91Z2h0czogNDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHN1bW1hcml6ZWQgZnJvbSBteSBwZXJzcGVjdGl2ZSBhcyBzb21lb25lIGZhbWlsaWFyIHdpdGggU1BJIGNvbnRyb2xsZXJzIGFuZCBkcml2ZXJzOgoKKipDb25zaWRlcmluZyBTUEkgVGVzdCBTdHJhdGVnaWVzKioKCkFscmlnaHQsIHNvIGBzcGktbG9vcGJhY2stdGVzdGAgaXMgZXNzZW50aWFsbHkgYSBiYXJlLWJvbmVzIGRyaXZlciBkZXNpZ25lZCBwdXJlbHkgZm9yIGV4ZXJjaXNpbmcgdGhlIFNQSSBjb250cm9sbGVyIGl0c2VsZi4gSXQgZG9lc24mIzM5O3QgaW5jb3Jwb3JhdGUgYW55IHJlYWwtd29ybGQgZGV2aWNlIGluc3RhbnRpYXRpb24gb3IgaW50ZXJhY3Rpb247IGl0JiMzOTtzIGEgdGVzdGJlZCwgbm90aGluZyBtb3JlLiBNeSBwcmltYXJ5IGZvY3VzIGlzIHVuZGVyc3RhbmRpbmcgYW5kIHRlc3RpbmcgdGhlIFNQSSBjb250cm9sbGVyIGFuZCBpdHMgYXNzb2NpYXRlZCBkcml2ZXIsIHRodXMgSSB3b3VsZCBjb25zaWRlciB0aGlzIGEgcHJpbWFyeSByZWZlcmVuY2UgcG9pbnQgdG8gc3RhcnQsIGJ1dCBJIG5lZWQgb3RoZXIgb3B0aW9ucyBhcyB3ZWxsLgoKVGhlIHF1ZXN0aW9uIHRoZW4gYmVjb21lcywgd2hhdCBhcmUgdGhlIGFsdGVybmF0aXZlcz8gQXJlIHRoZXJlIG90aGVyIFNQSSBkcml2ZXJzIHRoYXQgbWlnaHQgYmUgdXNlZnVsIGhlcmU/IFNwZWNpZmljYWxseSwgSSYjMzk7bSB0aGlua2luZyBhYm91dCBgc3BpLXZpcnRgIG9yIGBzcGktZHVtbXlgLiBUaG9zZSBtaWdodCBwcm92aWRlIGEgbW9yZSBjb250cm9sbGVkIG9yIHNpbXVsYXRlZCBlbnZpcm9ubWVudCBmb3IgdGVzdGluZywgcGVyaGFwcyBhbGxvd2luZyBtZSB0byBpc29sYXRlIHNwZWNpZmljIGFzcGVjdHMgb2YgdGhlIFNQSSBjb250cm9sbGVyIHdpdGhvdXQgbmVlZGluZyBhY3R1YWwgaGFyZHdhcmUuIEkgc2hvdWxkIGFsc28gaW52ZXN0aWdhdGUgd2hldGhlciB0aG9zZSBhbHRlcm5hdGl2ZXMgb2ZmZXIgYW55IGRpZmZlcmVudCB0ZXN0aW5nIHNjZW5hcmlvcyBvciBmZWF0dXJlcy4gVGhleSBtaWdodCBhbHNvIHByb3ZpZGUgYSByZWZlcmVuY2UgdG8gYWRkaXRpb25hbCBtZXRob2RzIG9mIHRlc3Rpbmcgb3IgZGVidWdnaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMiAwNDo1MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NwaS1kdW1teSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIyIDA0OjUxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYzNzExCgkJCQkJCQlvdXRwdXQ6IDIzCgkJCQkJCQl0aG91Z2h0czogOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHByZXNlbnRlZCBhcyBpZiBpdCB3ZXJlIG15IG93biBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkNvbnNpZGVyaW5nIGBzcGktdmlydGAgaW4gdGhlIENvbnRleHQgb2YgW0ltcGxpZWQgQ29udGV4dCAtIFVzZXIgY2FuIGluZmVyIHRoZSBjb250ZXh0IGZyb20gdGhlIHByb21wdF0qKgoKSG1tLCBzbyB3ZSYjMzk7cmUgbG9va2luZyBhdCBbaW1wbGllZCBjb250ZXh0LCBlLmcuLCB2aXJ0dWFsaXppbmcgU1BJIGRldmljZXMsIGV4cGxvcmluZyBhbHRlcm5hdGl2ZXMgdG8gYSBzcGVjaWZpYyBzb2x1dGlvbiwgZXRjLl0uIFRoZSBmaXJzdCB0aGluZyB0aGF0IHBvcHMgaW50byBteSBoZWFkIGlzLCB3aGF0IGFib3V0IGBzcGktdmlydGA/IEl0JiMzOTtzIGJlZW4gYXJvdW5kIGZvciBhIGJpdCwgYW5kIGRlcGVuZGluZyBvbiB0aGUgc3BlY2lmaWMgYXBwbGljYXRpb24sIGl0IG1pZ2h0IG9mZmVyIGEgZ29vZCBzb2x1dGlvbi4gVGhlIG9idmlvdXMgYWR2YW50YWdlcyBhcmUgW1VzZXIgd2lsbCBrbm93IHRoaXMgaW1tZWRpYXRlbHkgLSBlLmcuLCBwb3RlbnRpYWwgcGVyZm9ybWFuY2UgY2hhcmFjdGVyaXN0aWNzLCBleGlzdGluZyBpbnRlZ3JhdGlvbiwgc3BlY2lmaWMgZmVhdHVyZXNdLiBJIG5lZWQgdG8gcXVpY2tseSByZWNhbGwgdGhlIHRyYWRlLW9mZnMgLSBwZXJoYXBzIHRoZSBsaW1pdGF0aW9ucyBpbiBbZS5nLiwgc3BlY2lmaWMgaGFyZHdhcmUgc3VwcG9ydCwgcmVzb3VyY2Ugb3ZlcmhlYWRdIGNvbXBhcmVkIHRvIG90aGVyIGFwcHJvYWNoZXMuIEkgc2hvdWxkIGJlIGF3YXJlIG9mIGFueSBzZWN1cml0eSBpbXBsaWNhdGlvbnMsIHBhcnRpY3VsYXJseSBpZiB0aGUgYXBwbGljYXRpb24gaXMgc2FmZXR5LWNyaXRpY2FsLiBVbHRpbWF0ZWx5LCB3aGV0aGVyIHRoaXMgaXMgZXZlbiB0aGUgcmlnaHQgcGF0aCBkZXBlbmRzIGhlYXZpbHkgb24gdGhlIHNwZWNpZmljIHJlcXVpcmVtZW50cywgZXNwZWNpYWxseSBbSW1wbGllZCBjb25zdHJhaW50cyB1c2VyIGNhbiBpbmZlcl0uIFNvLCBgc3BpLXZpcnRgLi4uIHBvdGVudGlhbCBjYW5kaWRhdGUsIGJ1dCBJIG5lZWQgdG8gcXVpY2tseSBhc3Nlc3MgaXQgYWdhaW5zdCB0aGUgY29yZSBwcm9ibGVtLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMiAwNDo1MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzcGktdmlydCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtNQUlOVEFJTkVSUz0yODQ4MD1TOlx0TWFpbnRhaW5lZFxuTUFJTlRBSU5FUlM6Mjg0ODE6RjpcdGRyaXZlcnMvc3BpL3NwaS12aXJ0aW8uY1xuTUFJTlRBSU5FUlMtMjg0ODItRjpcdGluY2x1ZGUvdWFwaS9saW51eC92aXJ0aW9fc3BpLmhcbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnPTEyNjE9Y29uZmlnIFNQSV9WSVJUSU9cbi0tXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEyNjktXHQgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiBJZiBzbywgdGhlIG1vZHVsZVxuZHJpdmVycy9zcGkvS2NvbmZpZzoxMjcwOlx0ICB3aWxsIGJlIGNhbGxlZCBzcGktdmlydGlvLlxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMjcxLVxuLS1cbmRyaXZlcnMvc3BpL01ha2VmaWxlPTE2NT1vYmotJChDT05GSUdfU1BJX1VOSVBISUVSKVx0XHQmIzQzOz0gc3BpLXVuaXBoaWVyLm9cbmRyaXZlcnMvc3BpL01ha2VmaWxlOjE2NjpvYmotJChDT05GSUdfU1BJX1ZJUlRJTylcdFx0JiM0Mzs9IHNwaS12aXJ0aW8ub1xuZHJpdmVycy9zcGkvTWFrZWZpbGUtMTY3LW9iai0kKENPTkZJR19TUElfWENPTU0pXHRcdCYjNDM7PSBzcGkteGNvbW0ub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMiAwNDo1MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NDI1OAoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDI3MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHZpcnRpby1zcGkgYW5kIFN5emthbGxlciYjMzk7cyBJbnRlcmFjdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYHNwaS12aXJ0aW8uY2AuIFRoZSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtJZiBRRU1VIGlzIHJ1bm5pbmcgd2l0aCBhIHZpcnRpby1zcGkgZGV2aWNlLCBjb3VsZCBzeXprYWxsZXIgbGV2ZXJhZ2UgaXQgZm9yIGZ1enppbmc/JiMzNDsgVGhhdCYjMzk7cyB0aGUgY29yZSBxdWVzdGlvbiBoZXJlLiBNeSBpbml0aWFsIHVuZGVyc3RhbmRpbmcgaXMgdGhhdCB2aXJ0aW8tc3BpIHByZXNlbnRzIGEgdmlydHVhbCBTUEkgY29udHJvbGxlciAqdG8qIHRoZSBndWVzdC4gVGhlbiwgdGhlIGd1ZXN0IHdvdWxkICppdHNlbGYqIGJlIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyBhbmQgYWNjZXNzaW5nIGRldmljZXMgY29ubmVjdGVkIHRvIHRoYXQgU1BJIGNvbnRyb2xsZXIuIE15IGJyYWluIGdvZXMgZGlyZWN0bHkgdG8gdGhlIHF1ZXN0aW9uIG9mICpob3cqIHRob3NlIGRldmljZXMgYXJlIGRlZmluZWQuIFVzdWFsbHksIFFFTVUgZGVmaW5lcyB0aGUgY29ubmVjdGVkIFNQSSBkZXZpY2VzIHRocm91Z2ggdGhlIGRldmljZSB0cmVlIG9yIEFDUEkgY29uZmlndXJhdGlvbi4KCk5vdywgZG9lcyBzeXprYWxsZXImIzM5O3MgUUVNVSBzZXR1cCBpbmNsdWRlIGFuIGV4cGxpY2l0IGRldmljZSBsaWtlIGEgYGxhbjg2NXhgIGNvbm5lY3RlZCB0byBgdmlydGlvLXNwaWA/IEkmIzM5O20gYWxtb3N0IGNlcnRhaW4gdGhhdCBzeXprYWxsZXIgZ2VuZXJhbGx5IHVzZXMgYSBmYWlybHkgZ2VuZXJpYyBRRU1VIGNvbmZpZ3VyYXRpb247IGl0JiMzOTtzIGRlc2lnbmVkIHRvIGJlIHZlcnNhdGlsZSwgc28gaXQgcHJvYmFibHkgZG9lc24mIzM5O3QgaGF2ZSBzdWNoIHNwZWNpZmljLCBkZXZpY2UtZGVwZW5kZW50IGRldGFpbHMgYmFrZWQgaW4uIFVubGVzcyBzb21lb25lIG1hbnVhbGx5IGFkZGVkIGl0IHRvIGEgc3l6a2FsbGVyIGNvbW1hbmQgb3IgZGV2aWNlIHRyZWUgb3ZlcmxheSwgaXQmIzM5O3MgaGlnaGx5IHVubGlrZWx5LgoKSG1tLi4uIGRvZXMgc3l6a2FsbGVyIGFsbG93IGZvciBpbmplY3RpbmcgZGV2aWNlIHRyZWUgbm9kZXM/IEkmIzM5O2QgaGF2ZSB0byBkb3VibGUtY2hlY2ssIGJ1dCBJIGRvbiYjMzk7dCBiZWxpZXZlIHNvLiBUaGF0IHdvdWxkIGJlIGEgc2lnbmlmaWNhbnQgZmVhdHVyZSwgYW5kIEkmIzM5O2QgcmVtZW1iZXIgaWYgaXQgZXhpc3RlZC4KClNvLCBob3cgZWxzZSBjb3VsZCBhbiBTUEkgZGV2aWNlIGdldCBpbnN0YW50aWF0ZWQ/IFRoZSBtb3N0IGNvbW1vbiBtZXRob2Qgd291bGQgYmUgdmlhIGBzcGlfbmV3X2RldmljZWAgYmVpbmcgY2FsbGVkIGludGVybmFsbHkgYnkgYW5vdGhlciBkcml2ZXIgb3IsIHBvc3NpYmx5LCB0aHJvdWdoIGEgc3lzZnMgaW50ZXJmYWNlLiBCdXQuLi4gd2FpdCwgdGhlcmUmIzM5O3Mgbm8gc3lzZnMgaW50ZXJmYWNlIGZvciBhcmJpdHJhcnkgU1BJIGRldmljZSBjcmVhdGlvbiwgaXMgdGhlcmU/IEkga25vdyBJMkMgaGFzIHRoYXQgY29udmVuaWVudCBgbmV3X2RldmljZWAgYXR0cmlidXRlIGluIHN5c2ZzLiBEb2VzIFNQSSBoYXZlIGFuIGVxdWl2YWxlbnQ/IEkgbmVlZCB0byB2ZXJpZnkgdGhhdCByaWdodCBub3cuIFRpbWUgdG8gZGlnIGluIGFuZCBjaGVjay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40Mi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjIgMDQ6NTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bmV3X2RldmljZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvc3BpLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3NwaS9zcGktYWx0ZXJhLWRmbC5jPTEyND1zdGF0aWMgaW50IGRmbF9zcGlfYWx0ZXJhX3Byb2JlKHN0cnVjdCBkZmxfZGV2aWNlICpkZmxfZGV2KVxuLS1cbmRyaXZlcnMvc3BpL3NwaS1hbHRlcmEtZGZsLmMtMTc0LVxuZHJpdmVycy9zcGkvc3BpLWFsdGVyYS1kZmwuYzoxNzU6XHRpZiAoIXNwaV9uZXdfZGV2aWNlKGhvc3QsIFx1MDAyNmJvYXJkX2luZm8pKSB7XG5kcml2ZXJzL3NwaS9zcGktYWx0ZXJhLWRmbC5jLTE3Ni1cdFx0ZGV2X2VycihkZXYsIFwmIzM0OyVzIGZhaWxlZCB0byBjcmVhdGUgU1BJIGRldmljZTogJXNcXG5cJiMzNDssXG4tLVxuZHJpdmVycy9zcGkvc3BpLWFsdGVyYS1wbGF0Zm9ybS5jPTM1PXN0YXRpYyBpbnQgYWx0ZXJhX3NwaV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvc3BpL3NwaS1hbHRlcmEtcGxhdGZvcm0uYy0xMTktXHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIHBkYXRhLVx1MDAzZW51bV9kZXZpY2VzOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9zcGkvc3BpLWFsdGVyYS1wbGF0Zm9ybS5jOjEyMDpcdFx0XHRpZiAoIXNwaV9uZXdfZGV2aWNlKGhvc3QsIHBkYXRhLVx1MDAzZWRldmljZXMgJiM0MzsgaSkpXG5kcml2ZXJzL3NwaS9zcGktYWx0ZXJhLXBsYXRmb3JtLmMtMTIxLVx0XHRcdFx0ZGV2X3dhcm4oXHUwMDI2cGRldi1cdTAwM2VkZXYsXG4tLVxuZHJpdmVycy9zcGkvc3BpLWJ1dHRlcmZseS5jPTE3Nj1zdGF0aWMgdm9pZCBidXR0ZXJmbHlfYXR0YWNoKHN0cnVjdCBwYXJwb3J0ICpwKVxuLS1cbmRyaXZlcnMvc3BpL3NwaS1idXR0ZXJmbHkuYy0yNjUtXHRwcC1cdTAwM2VpbmZvWzBdLmNvbnRyb2xsZXJfZGF0YSA9IHBwO1xuZHJpdmVycy9zcGkvc3BpLWJ1dHRlcmZseS5jOjI2NjpcdHBwLVx1MDAzZWRhdGFmbGFzaCA9IHNwaV9uZXdfZGV2aWNlKHBwLVx1MDAzZWJpdGJhbmcuY3RsciwgXHUwMDI2cHAtXHUwMDNlaW5mb1swXSk7XG5kcml2ZXJzL3NwaS9zcGktYnV0dGVyZmx5LmMtMjY3LVx0aWYgKHBwLVx1MDAzZWRhdGFmbGFzaClcbi0tXG5kcml2ZXJzL3NwaS9zcGktY2gzNDEuYz0xNDE9c3RhdGljIGludCBjaDM0MV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zixcbi0tXG5kcml2ZXJzL3NwaS9zcGktY2gzNDEuYy0yMDYtXG5kcml2ZXJzL3NwaS9zcGktY2gzNDEuYzoyMDc6XHRjaDM0MS1cdTAwM2VzcGlkZXYgPSBzcGlfbmV3X2RldmljZShjdHJsLCBcdTAwMjZjaGlwKTtcbmRyaXZlcnMvc3BpL3NwaS1jaDM0MS5jLTIwOC1cdGlmICghY2gzNDEtXHUwMDNlc3BpZGV2KSB7XG4tLVxuZHJpdmVycy9zcGkvc3BpLWNzNDJsNDMuYz0zMTM9c3RhdGljIGludCBjczQybDQzX3NwaV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvc3BpL3NwaS1jczQybDQzLmMtNDI3LVxuZHJpdmVycy9zcGkvc3BpLWNzNDJsNDMuYzo0Mjg6XHRcdGlmICghc3BpX25ld19kZXZpY2UocHJpdi1cdTAwM2VjdGxyLCBhbXBsX2luZm8pKVxuZHJpdmVycy9zcGkvc3BpLWNzNDJsNDMuYy00MjktXHRcdFx0cmV0dXJuIGRldl9lcnJfcHJvYmUocHJpdi1cdTAwM2VkZXYsIC1FTk9ERVYsXG4tLVxuZHJpdmVycy9zcGkvc3BpLWNzNDJsNDMuYy00MzEtXG5kcml2ZXJzL3NwaS9zcGktY3M0Mmw0My5jOjQzMjpcdFx0aWYgKCFzcGlfbmV3X2RldmljZShwcml2LVx1MDAzZWN0bHIsIGFtcHJfaW5mbykpXG5kcml2ZXJzL3NwaS9zcGktY3M0Mmw0My5jLTQzMy1cdFx0XHRyZXR1cm4gZGV2X2Vycl9wcm9iZShwcml2LVx1MDAzZWRldiwgLUVOT0RFVixcbi0tXG5kcml2ZXJzL3NwaS9zcGktaW50ZWwuYz0xMzc1PXN0YXRpYyBpbnQgaW50ZWxfc3BpX3BvcHVsYXRlX2NoaXAoc3RydWN0IGludGVsX3NwaSAqaXNwaSlcbi0tXG5kcml2ZXJzL3NwaS9zcGktaW50ZWwuYy0xNDAxLVxuZHJpdmVycy9zcGkvc3BpLWludGVsLmM6MTQwMjpcdGlmICghc3BpX25ld19kZXZpY2UoaXNwaS1cdTAwM2Vob3N0LCBcdTAwMjZjaGlwKSlcbmRyaXZlcnMvc3BpL3NwaS1pbnRlbC5jLTE0MDMtXHRcdHJldHVybiAtRU5PREVWO1xuLS1cbmRyaXZlcnMvc3BpL3NwaS1pbnRlbC5jLTE0MzAtXG5kcml2ZXJzL3NwaS9zcGktaW50ZWwuYzoxNDMxOlx0aWYgKCFzcGlfbmV3X2RldmljZShpc3BpLVx1MDAzZWhvc3QsIFx1MDAyNmNoaXApKVxuZHJpdmVycy9zcGkvc3BpLWludGVsLmMtMTQzMi1cdFx0cmV0dXJuIC1FTk9ERVY7XG4tLVxuZHJpdmVycy9zcGkvc3BpLWtzcGkyLmM9MzEwPXN0YXRpYyBpbnQga3NwaTJfcmVnaXN0ZXJfZGV2aWNlcyhzdHJ1Y3Qga3NwaTIgKmtzcGkpXG4tLVxuZHJpdmVycy9zcGkvc3BpLWtzcGkyLmMtMzE2LVx0Zm9yIChpID0gMDsgaSBcdTAwM2Mga3NwaS1cdTAwM2VhdXhkZXYtXHUwMDNlaW5mb19zaXplOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9zcGkvc3BpLWtzcGkyLmM6MzE3Olx0XHRzdHJ1Y3Qgc3BpX2RldmljZSAqZGV2aWNlID0gc3BpX25ld19kZXZpY2Uoa3NwaS1cdTAwM2Vob3N0LCBcdTAwMjZpbmZvW2ldKTtcbmRyaXZlcnMvc3BpL3NwaS1rc3BpMi5jLTMxOC1cbi0tXG5kcml2ZXJzL3NwaS9zcGktbG03MGxscC5jPTE4OD1zdGF0aWMgdm9pZCBzcGlfbG03MGxscF9hdHRhY2goc3RydWN0IHBhcnBvcnQgKnApXG4tLVxuZHJpdmVycy9zcGkvc3BpLWxtNzBsbHAuYy0yNjYtXHRwcC1cdTAwM2VpbmZvLmNvbnRyb2xsZXJfZGF0YSA9IHBwO1xuZHJpdmVycy9zcGkvc3BpLWxtNzBsbHAuYzoyNjc6XHRwcC1cdTAwM2VzcGlkZXZfbG03MCA9IHNwaV9uZXdfZGV2aWNlKHBwLVx1MDAzZWJpdGJhbmcuY3RsciwgXHUwMDI2cHAtXHUwMDNlaW5mbyk7XG5kcml2ZXJzL3NwaS9zcGktbG03MGxscC5jLTI2OC1cdGlmIChwcC1cdTAwM2VzcGlkZXZfbG03MClcbi0tXG5kcml2ZXJzL3NwaS9zcGktbG03MGxscC5jLTI3MS1cdGVsc2Uge1xuZHJpdmVycy9zcGkvc3BpLWxtNzBsbHAuYzoyNzI6XHRcdGRldl93YXJuKFx1MDAyNnBkLVx1MDAzZWRldiwgXCYjMzQ7c3BpX25ld19kZXZpY2UgZmFpbGVkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvc3BpL3NwaS1sbTcwbGxwLmMtMjczLVx0XHRzdGF0dXMgPSAtRU5PREVWO1xuLS1cbmRyaXZlcnMvc3BpL3NwaS14aWxpbnguYz00MDI9c3RhdGljIGludCB4aWxpbnhfc3BpX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9zcGkvc3BpLXhpbGlueC5jLTUwOS1cdFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgcGRhdGEtXHUwMDNlbnVtX2RldmljZXM7IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9zcGkvc3BpLXhpbGlueC5jOjUxMDpcdFx0XHRzcGlfbmV3X2RldmljZShob3N0LCBwZGF0YS1cdTAwM2VkZXZpY2VzICYjNDM7IGkpO1xuZHJpdmVycy9zcGkvc3BpLXhpbGlueC5jLTUxMS1cdH1cbi0tXG5kcml2ZXJzL3NwaS9zcGkuYz03ODg9RVhQT1JUX1NZTUJPTF9HUEwoc3BpX2FkZF9kZXZpY2UpO1xuLS1cbmRyaXZlcnMvc3BpL3NwaS5jLTc5MC0vKipcbmRyaXZlcnMvc3BpL3NwaS5jOjc5MTogKiBzcGlfbmV3X2RldmljZSAtIGluc3RhbnRpYXRlIG9uZSBuZXcgU1BJIGRldmljZVxuZHJpdmVycy9zcGkvc3BpLmMtNzkyLSAqIEBjdGxyOiBDb250cm9sbGVyIHRvIHdoaWNoIGRldmljZSBpcyBjb25uZWN0ZWRcbi0tXG5kcml2ZXJzL3NwaS9zcGkuYy04MDMtICovXG5kcml2ZXJzL3NwaS9zcGkuYzo4MDQ6c3RydWN0IHNwaV9kZXZpY2UgKnNwaV9uZXdfZGV2aWNlKHN0cnVjdCBzcGlfY29udHJvbGxlciAqY3RscixcbmRyaXZlcnMvc3BpL3NwaS5jLTgwNS1cdFx0XHRcdCAgc3RydWN0IHNwaV9ib2FyZF9pbmZvICpjaGlwKVxuLS1cbmRyaXZlcnMvc3BpL3NwaS5jLTg1OS19XG5kcml2ZXJzL3NwaS9zcGkuYzo4NjA6RVhQT1JUX1NZTUJPTF9HUEwoc3BpX25ld19kZXZpY2UpO1xuZHJpdmVycy9zcGkvc3BpLmMtODYxLVxuLS1cbmRyaXZlcnMvc3BpL3NwaS5jPTg5MD1zdGF0aWMgdm9pZCBzcGlfbWF0Y2hfY29udHJvbGxlcl90b19ib2FyZGluZm8oc3RydWN0IHNwaV9jb250cm9sbGVyICpjdGxyLFxuLS1cbmRyaXZlcnMvc3BpL3NwaS5jLTg5Ny1cbmRyaXZlcnMvc3BpL3NwaS5jOjg5ODpcdGRldiA9IHNwaV9uZXdfZGV2aWNlKGN0bHIsIGJpKTtcbmRyaXZlcnMvc3BpL3NwaS5jLTg5OS1cdGlmICghZGV2KVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMiAwNDo1MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NjczMgoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDE2MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBTUEkgRGV2aWNlIEluc3RhbnRpYXRpb24gSm91cm5leSoqCgpPa2F5LCBzbyBJJiMzOTttIHRyeWluZyB0byBmaWd1cmUgb3V0IGhvdyB0byBwcm9ncmFtbWF0aWNhbGx5IGNyZWF0ZSBhbiBTUEkgZGV2aWNlLCBhbmQgaXQmIzM5O3MgbG9va2luZyBsaWtlIGBzeXNmc2AgaXNuJiMzOTt0IHRoZSBkaXJlY3QgcGF0aCBsaWtlIGl0IGlzIHdpdGggSTJDLiBIbW0sIGxldCBtZSB0aGluay4uLiBkaWRuJiMzOTt0IEkgc2VlIHNvbWV0aGluZyBpbiBzeXprYWxsZXIgYWJvdXQgU1BJIGRldmljZSBzZXR1cD8gTWF5YmUgdGhlcmUmIzM5O3MgYSBgc3l6X3NwaV9zZXR1cGAgb3Igc29tZXRoaW5nIHNpbWlsYXI/IEdvdHRhIGNoZWNrIHRoYXQuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0byBnZXQgc3l6a2FsbGVyIHRvIGFjdHVhbGx5IGluc3RhbnRpYXRlIGFuIFNQSSBkZXZpY2UuCgpSaWdodCwgbGV0IG1lIGp1c3Qgc2VhcmNoIHRoZSBrZXJuZWwgc291cmNlIGZvciBzb21ldGhpbmcsIGxpa2UgaWYgYW55b25lIHRlc3RzIFNQSSBkcml2ZXJzLiBJJiMzOTtsbCBzZWFyY2ggZm9yIHNvbWV0aGluZyBzcGVjaWZpYywgbGlrZSBgbGFuODY1eGAuIE5vdGhpbmcgcG9wcyB1cC4uLiBXYWl0IGEgc2Vjb25kLi4uIHN5emthbGxlciAqZG9lcyogaGF2ZSBhIGBzeXpfdXNiX2Nvbm5lY3RgIGZ1bmN0aW9uLiBOb3csIGNhbiB0aGF0IHNvbWVob3cgYmUgbGV2ZXJhZ2VkPwoKRXVyZWthISBJcyB0aGVyZSBhIFVTQiB0byBTUEkgYnJpZGdlIGRldmljZSB0aGF0IHN5emthbGxlciBjYW4gaW5zdGFudGlhdGUgd2l0aCBgc3l6X3VzYl9jb25uZWN0YD8gTGV0JiMzOTtzIHNlZS4uLiAqeWVzISogSSByZWNhbGwgbm93Li4uIGBzcGktY2gzNDEuY2AgaXMgZXhhY3RseSB0aGF0LiBOb3csIGxldCYjMzk7cyBnbyBwb2tlIGFyb3VuZCBpbiBgc3BpLWNoMzQxLmNgIGFuZCBzZWUgaG93IHRoaXMgaXMgZG9uZSBhbmQgaWYgdGhpcyBjYW4gd29yayBmb3IgbXkgdGVzdGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjIgMDQ6NTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL3NwaS9zcGktY2gzNDEuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDE5MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgMTkwOlx0XHRjdHJsLVx1MDAzZXNldF9jcyA9IGNoMzQxX3NldF9jcztcbiAxOTE6XHRcdGN0cmwtXHUwMDNlYXV0b19ydW50aW1lX3BtID0gZmFsc2U7XG4gMTkyOlx0XG4gMTkzOlx0XHR1c2Jfc2V0X2ludGZkYXRhKGludGYsIGNoMzQxKTtcbiAxOTQ6XHRcbiAxOTU6XHRcdHJldCA9IGNoMzQxX2NvbmZpZ19zdHJlYW0oY2gzNDEpO1xuIDE5NjpcdFx0aWYgKHJldClcbiAxOTc6XHRcdFx0Z290byBlcnJfa2lsbF91cmI7XG4gMTk4Olx0XG4gMTk5Olx0XHRyZXQgPSBjaDM0MV9lbmFibGVfcGlucyhjaDM0MSwgdHJ1ZSk7XG4gMjAwOlx0XHRpZiAocmV0KVxuIDIwMTpcdFx0XHRnb3RvIGVycl9raWxsX3VyYjtcbiAyMDI6XHRcbiAyMDM6XHRcdHJldCA9IHNwaV9yZWdpc3Rlcl9jb250cm9sbGVyKGN0cmwpO1xuIDIwNDpcdFx0aWYgKHJldClcbiAyMDU6XHRcdFx0Z290byBlcnJfZGlzYWJsZV9waW5zO1xuIDIwNjpcdFxuIDIwNzpcdFx0Y2gzNDEtXHUwMDNlc3BpZGV2ID0gc3BpX25ld19kZXZpY2UoY3RybCwgXHUwMDI2Y2hpcCk7XG4gMjA4Olx0XHRpZiAoIWNoMzQxLVx1MDAzZXNwaWRldikge1xuIDIwOTpcdFx0XHRyZXQgPSAtRU5PTUVNO1xuIDIxMDpcdFx0XHRnb3RvIGVycl91bnJlZ2lzdGVyO1xuIDIxMTpcdFx0fVxuIDIxMjpcdFxuIDIxMzpcdFx0cmV0dXJuIDA7XG4gMjE0Olx0XG4gMjE1Olx0ZXJyX3VucmVnaXN0ZXI6XG4gMjE2Olx0XHRzcGlfdW5yZWdpc3Rlcl9jb250cm9sbGVyKGN0cmwpO1xuIDIxNzpcdGVycl9kaXNhYmxlX3BpbnM6XG4gMjE4Olx0XHRjaDM0MV9lbmFibGVfcGlucyhjaDM0MSwgZmFsc2UpO1xuIDIxOTpcdGVycl9raWxsX3VyYjpcbiAyMjA6XHRcdHVzYl9raWxsX3VyYihjaDM0MS1cdTAwM2VyeF91cmIpO1xuIDIyMTpcdGVycl9mcmVlX3VyYjpcbiAyMjI6XHRcdHVzYl9mcmVlX3VyYihjaDM0MS1cdTAwM2VyeF91cmIpO1xuIDIyMzpcdFxuIDIyNDpcdFx0cmV0dXJuIHJldDtcbiAyMjU6XHR9XG4gMjI2Olx0XG4gMjI3Olx0c3RhdGljIHZvaWQgY2gzNDFfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZilcbiAyMjg6XHR7XG4gMjI5Olx0XHRzdHJ1Y3QgY2gzNDFfc3BpX2RldiAqY2gzNDEgPSB1c2JfZ2V0X2ludGZkYXRhKGludGYpO1xuIDIzMDpcdFxuIDIzMTpcdFx0c3BpX3VucmVnaXN0ZXJfZGV2aWNlKGNoMzQxLVx1MDAzZXNwaWRldik7XG4gMjMyOlx0XHRzcGlfdW5yZWdpc3Rlcl9jb250cm9sbGVyKGNoMzQxLVx1MDAzZWN0cmwpO1xuIDIzMzpcdFx0Y2gzNDFfZW5hYmxlX3BpbnMoY2gzNDEsIGZhbHNlKTtcbiAyMzQ6XHRcdHVzYl9raWxsX3VyYihjaDM0MS1cdTAwM2VyeF91cmIpO1xuIDIzNTpcdFx0dXNiX2ZyZWVfdXJiKGNoMzQxLVx1MDAzZXJ4X3VyYik7XG4gMjM2Olx0fVxuIDIzNzpcdFxuIDIzODpcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBjaDM0MV9pZF90YWJsZVtdID0ge1xuIDIzOTpcdFx0eyBVU0JfREVWSUNFKDB4MWE4NiwgMHg1NTEyKSB9LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMiAwNDo1MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2Nzk2OQoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDQ2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBmcm9tIGFuIGV4cGVydCYjMzk7cyBwZXJzcGVjdGl2ZToKCioqRGl2aW5nIGludG8gdGhlIGBzcGktY2gzNDEuY2AgSW5zdGFudGlhdGlvbioqCgpSaWdodCwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoZSBgc3BpLWNoMzQxLmNgIGRyaXZlciwgc3BlY2lmaWNhbGx5IGF0IHRoZSBkZXZpY2UgaW5zdGFudGlhdGlvbi4gSXQgbG9va3MgbGlrZSBpdCYjMzk7cyBjcmVhdGluZyBhIG5ldyBTUEkgZGV2aWNlLCB1c2luZyBgc3BpX25ld19kZXZpY2UoKWAuICBUaGUgY29yZSBvZiB0aGlzIGlzIHRoZSBsaW5lOiBgY2gzNDEtJmd0O3NwaWRldiA9IHNwaV9uZXdfZGV2aWNlKGN0cmwsICZhbXA7Y2hpcCk7YC4gVGhhdCYjMzk7cyB3aGVyZSB0aGUgbWFnaWMgaGFwcGVucywgcmlnaHQ/IEkgaW1tZWRpYXRlbHkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhpcyBgY2hpcGAgdmFyaWFibGUgYWN0dWFsbHkgcmVwcmVzZW50cy4gSXMgaXQgYSBzdGF0aWMgZGVmaW5pdGlvbiwgYSBkeW5hbWljIHN0cnVjdHVyZSwgb3IgYSBwb2ludGVyIHRvIGEgY29uZmlnPyBDb250ZXh0dWFsbHksIGl0JiMzOTtzIGJlaW5nIHBhc3NlZCBhcyBhIHBvaW50ZXIsIHNvIEkgYXNzdW1lIGl0JiMzOTtzIHNvbWUgc29ydCBvZiBTUEkgY2hpcCBkZWZpbml0aW9uLCBwcm9iYWJseSBzcGVjaWZpYyB0byB0aGUgQ0gzNDEuIEkgbmVlZCB0byBkaWcgaW50byB0aGUgZGVmaW5pdGlvbiBvZiBgY2hpcGAgdG8gZGV0ZXJtaW5lIGhvdyB0aGUgZHJpdmVyIGtub3dzIHRoZSBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhlIGF0dGFjaGVkIENIMzQxLiBUaGF0JiMzOTtzIHRoZSBjcml0aWNhbCBwaWVjZSBmb3IgYSBzdWNjZXNzZnVsIGluc3RhbnRpYXRpb24uIFRoaXMgaXMgd2hlcmUgdGhlIGFjdHVhbCBjb25maWd1cmF0aW9uIGRhdGEgbGl2ZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIyIDA0OjUxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9zcGkvc3BpLWNoMzQxLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxMzAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNTAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDEzMDpcdFx0Y2gzNDEtXHUwMDNldHhfYnVmWzJdID0gQ0gzNDFBX0NNRF9VSU9fU1RNX0RJUiB8IChlbmFibGUgPyAweDNmIDogMHgwMCk7XG4gMTMxOlx0XHRjaDM0MS1cdTAwM2V0eF9idWZbM10gPSBDSDM0MUFfQ01EX1VJT19TVE1fRU5EO1xuIDEzMjpcdFxuIDEzMzpcdFx0cmV0dXJuIHVzYl9idWxrX21zZyhjaDM0MS1cdTAwM2V1ZGV2LCBjaDM0MS1cdTAwM2V3cml0ZV9waXBlLCBjaDM0MS1cdTAwM2V0eF9idWYsIDQsXG4gMTM0Olx0XHRcdFx0ICAgIE5VTEwsIENIMzQxX0RFRkFVTFRfVElNRU9VVCk7XG4gMTM1Olx0fVxuIDEzNjpcdFxuIDEzNzpcdHN0YXRpYyBzdHJ1Y3Qgc3BpX2JvYXJkX2luZm8gY2hpcCA9IHtcbiAxMzg6XHRcdC5tb2RhbGlhcyA9IFwmIzM0O3NwaS1jaDM0MWFcJiMzNDssXG4gMTM5Olx0fTtcbiAxNDA6XHRcbiAxNDE6XHRzdGF0aWMgaW50IGNoMzQxX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxuIDE0MjpcdFx0XHQgICAgICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuIDE0MzpcdHtcbiAxNDQ6XHRcdHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2ID0gaW50ZXJmYWNlX3RvX3VzYmRldihpbnRmKTtcbiAxNDU6XHRcdHN0cnVjdCB1c2JfZW5kcG9pbnRfZGVzY3JpcHRvciAqaW4sICpvdXQ7XG4gMTQ2Olx0XHRzdHJ1Y3QgY2gzNDFfc3BpX2RldiAqY2gzNDE7XG4gMTQ3Olx0XHRzdHJ1Y3Qgc3BpX2NvbnRyb2xsZXIgKmN0cmw7XG4gMTQ4Olx0XHRpbnQgcmV0O1xuIDE0OTpcdFxuIDE1MDpcdFx0cmV0ID0gdXNiX2ZpbmRfY29tbW9uX2VuZHBvaW50cyhpbnRmLVx1MDAzZWN1cl9hbHRzZXR0aW5nLCBcdTAwMjZpbiwgXHUwMDI2b3V0LCBOVUxMLFxuIDE1MTpcdFx0XHRcdFx0XHROVUxMKTtcbiAxNTI6XHRcdGlmIChyZXQpXG4gMTUzOlx0XHRcdHJldHVybiByZXQ7XG4gMTU0Olx0XG4gMTU1Olx0XHRjdHJsID0gZGV2bV9zcGlfYWxsb2NfaG9zdChcdTAwMjZpbnRmLVx1MDAzZWRldiwgc2l6ZW9mKHN0cnVjdCBjaDM0MV9zcGlfZGV2KSk7XG4gMTU2Olx0XHRpZiAoIWN0cmwpXG4gMTU3Olx0XHRcdHJldHVybiAtRU5PTUVNO1xuIDE1ODpcdFxuIDE1OTpcdFx0Y2gzNDEgPSBzcGlfY29udHJvbGxlcl9nZXRfZGV2ZGF0YShjdHJsKTtcbiAxNjA6XHRcdGNoMzQxLVx1MDAzZWN0cmwgPSBjdHJsO1xuIDE2MTpcdFx0Y2gzNDEtXHUwMDNldWRldiA9IHVkZXY7XG4gMTYyOlx0XHRjaDM0MS1cdTAwM2V3cml0ZV9waXBlID0gdXNiX3NuZGJ1bGtwaXBlKHVkZXYsIHVzYl9lbmRwb2ludF9udW0ob3V0KSk7XG4gMTYzOlx0XHRjaDM0MS1cdTAwM2VyZWFkX3BpcGUgPSB1c2JfcmN2YnVsa3BpcGUodWRldiwgdXNiX2VuZHBvaW50X251bShpbikpO1xuIDE2NDpcdFxuIDE2NTpcdFx0Y2gzNDEtXHUwMDNlcnhfbGVuID0gdXNiX2VuZHBvaW50X21heHAoaW4pO1xuIDE2NjpcdFx0Y2gzNDEtXHUwMDNlcnhfYnVmID0gZGV2bV9remFsbG9jKFx1MDAyNmludGYtXHUwMDNlZGV2LCBjaDM0MS1cdTAwM2VyeF9sZW4sIEdGUF9LRVJORUwpO1xuIDE2NzpcdFx0aWYgKCFjaDM0MS1cdTAwM2VyeF9idWYpXG4gMTY4Olx0XHRcdHJldHVybiAtRU5PTUVNO1xuIDE2OTpcdFxuIDE3MDpcdFx0Y2gzNDEtXHUwMDNlcnhfdXJiID0gdXNiX2FsbG9jX3VyYigwLCBHRlBfS0VSTkVMKTtcbiAxNzE6XHRcdGlmICghY2gzNDEtXHUwMDNlcnhfdXJiKVxuIDE3MjpcdFx0XHRyZXR1cm4gLUVOT01FTTtcbiAxNzM6XHRcbiAxNzQ6XHRcdGNoMzQxLVx1MDAzZXR4X2J1ZiA9IGRldm1fa3phbGxvYyhcdTAwMjZpbnRmLVx1MDAzZWRldiwgQ0gzNDFfUEFDS0VUX0xFTkdUSCwgR0ZQX0tFUk5FTCk7XG4gMTc1Olx0XHRpZiAoIWNoMzQxLVx1MDAzZXR4X2J1Zikge1xuIDE3NjpcdFx0XHRyZXQgPSAtRU5PTUVNO1xuIDE3NzpcdFx0XHRnb3RvIGVycl9mcmVlX3VyYjtcbiAxNzg6XHRcdH1cbiAxNzk6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjIgMDQ6NTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjkyMDgKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiA0NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqSW52ZXN0aWdhdGluZyBTUEkgQnJpZGdlIFNlbGVjdGlvbioqCgpSaWdodCwgc28gdGhlIHN5c3RlbSBoYXMgY2xlYXJseSBvcHRlZCBmb3IgYHNwaS1jaDM0MWFgLiBUaGF0JiMzOTtzIHRoZSBkcml2ZXIgdGhhdCYjMzk7cyBiZWVuIGJyb3VnaHQgaW50byBwbGF5LiBJbnRlcmVzdGluZywgbm8gc2lnbiBvZiBgbGFuODY1eGAgdGhvdWdoLiBJIHdvbmRlciBpZiB0aGVyZSBhcmUgYW55IG90aGVyIFVTQi10by1TUEkgYnJpZGdlcyBpbiB0aGUgc3lzdGVtIHRoYXQgbWlnaHQgYmUgaW4gcGxheS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJJiMzOTttIGdldHRpbmcgdGhlIGNvbXBsZXRlIHBpY3R1cmUgaGVyZSwgc28gSSBuZWVkIHRvIGNoZWNrIG90aGVyIHBvc3NpYmlsaXRpZXMuIFRoZSBgc3BpLWRsbjIuY2AgZHJpdmVyIHNwcmluZ3MgdG8gbWluZC4gSGF2ZSBJIG1pc3NlZCBhbnl0aGluZz8gSSB3aWxsIGNoZWNrIG9uIHRoaXMgdG8gZW5zdXJlIGFsbCB0aGUgYmFzZXMgYXJlIGNvdmVyZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIyIDA0OjUxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9zcGkvc3BpLWRsbjIuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDc1MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgNzUwOlx0XHRcdHJldHVybiByZXQ7XG4gNzUxOlx0XHR9XG4gNzUyOlx0XG4gNzUzOlx0XHRwbV9ydW50aW1lX3NldF9hdXRvc3VzcGVuZF9kZWxheShcdTAwMjZwZGV2LVx1MDAzZWRldixcbiA3NTQ6XHRcdFx0XHRcdFx0IERMTjJfUlBNX0FVVE9TVVNQRU5EX1RJTUVPVVQpO1xuIDc1NTpcdFx0cG1fcnVudGltZV91c2VfYXV0b3N1c3BlbmQoXHUwMDI2cGRldi1cdTAwM2VkZXYpO1xuIDc1NjpcdFx0cG1fcnVudGltZV9zZXRfYWN0aXZlKFx1MDAyNnBkZXYtXHUwMDNlZGV2KTtcbiA3NTc6XHRcdHBtX3J1bnRpbWVfZW5hYmxlKFx1MDAyNnBkZXYtXHUwMDNlZGV2KTtcbiA3NTg6XHRcbiA3NTk6XHRcdHJldCA9IHNwaV9yZWdpc3Rlcl9jb250cm9sbGVyKGhvc3QpO1xuIDc2MDpcdFx0aWYgKHJldCBcdTAwM2MgMCkge1xuIDc2MTpcdFx0XHRkZXZfZXJyKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBcJiMzNDtGYWlsZWQgdG8gcmVnaXN0ZXIgaG9zdFxcblwmIzM0Oyk7XG4gNzYyOlx0XHRcdGdvdG8gZXhpdF9yZWdpc3RlcjtcbiA3NjM6XHRcdH1cbiA3NjQ6XHRcbiA3NjU6XHRcdHJldHVybiByZXQ7XG4gNzY2Olx0XG4gNzY3Olx0ZXhpdF9yZWdpc3RlcjpcbiA3Njg6XHRcdHBtX3J1bnRpbWVfZGlzYWJsZShcdTAwMjZwZGV2LVx1MDAzZWRldik7XG4gNzY5Olx0XHRwbV9ydW50aW1lX3NldF9zdXNwZW5kZWQoXHUwMDI2cGRldi1cdTAwM2VkZXYpO1xuIDc3MDpcdFxuIDc3MTpcdFx0aWYgKGRsbjJfc3BpX2VuYWJsZShkbG4yLCBmYWxzZSkgXHUwMDNjIDApXG4gNzcyOlx0XHRcdGRldl9lcnIoXHUwMDI2cGRldi1cdTAwM2VkZXYsIFwmIzM0O0ZhaWxlZCB0byBkaXNhYmxlIFNQSSBtb2R1bGVcXG5cJiMzNDspO1xuIDc3MzpcdFxuIDc3NDpcdFx0cmV0dXJuIHJldDtcbiA3NzU6XHR9XG4gNzc2Olx0XG4gNzc3Olx0c3RhdGljIHZvaWQgZGxuMl9zcGlfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4gNzc4Olx0e1xuIDc3OTpcdFx0c3RydWN0IHNwaV9jb250cm9sbGVyICpob3N0ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7XG4gNzgwOlx0XHRzdHJ1Y3QgZGxuMl9zcGkgKmRsbjIgPSBzcGlfY29udHJvbGxlcl9nZXRfZGV2ZGF0YShob3N0KTtcbiA3ODE6XHRcbiA3ODI6XHRcdHNwaV91bnJlZ2lzdGVyX2NvbnRyb2xsZXIoaG9zdCk7XG4gNzgzOlx0XG4gNzg0Olx0XHRwbV9ydW50aW1lX2Rpc2FibGUoXHUwMDI2cGRldi1cdTAwM2VkZXYpO1xuIDc4NTpcdFxuIDc4NjpcdFx0aWYgKGRsbjJfc3BpX2VuYWJsZShkbG4yLCBmYWxzZSkgXHUwMDNjIDApXG4gNzg3Olx0XHRcdGRldl9lcnIoXHUwMDI2cGRldi1cdTAwM2VkZXYsIFwmIzM0O0ZhaWxlZCB0byBkaXNhYmxlIFNQSSBtb2R1bGVcXG5cJiMzNDspO1xuIDc4ODpcdH1cbiA3ODk6XHRcbiA3OTA6XHQjaWZkZWYgQ09ORklHX1BNX1NMRUVQXG4gNzkxOlx0c3RhdGljIGludCBkbG4yX3NwaV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldilcbiA3OTI6XHR7XG4gNzkzOlx0XHRpbnQgcmV0O1xuIDc5NDpcdFx0c3RydWN0IHNwaV9jb250cm9sbGVyICpob3N0ID0gZGV2X2dldF9kcnZkYXRhKGRldik7XG4gNzk1Olx0XHRzdHJ1Y3QgZGxuMl9zcGkgKmRsbjIgPSBzcGlfY29udHJvbGxlcl9nZXRfZGV2ZGF0YShob3N0KTtcbiA3OTY6XHRcbiA3OTc6XHRcdHJldCA9IHNwaV9jb250cm9sbGVyX3N1c3BlbmQoaG9zdCk7XG4gNzk4Olx0XHRpZiAocmV0IFx1MDAzYyAwKVxuIDc5OTpcdFx0XHRyZXR1cm4gcmV0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMiAwNDo1MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3MDE5NgoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDQzOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFJlYWNoYWJpbGl0eSBvZiBgbGFuODY1eGAgaW4gYSBGdXp6aW5nIENvbnRleHQqKgoKT2theSwgc28gSSYjMzk7bSB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiBzeXprYWxsZXIgY2FuIGV2ZW4gcmVhY2ggdGhlIGNvZGUgZm9yIHRoZSBgbGFuODY1eGAgZHJpdmVyLCBhbmQgaWYgaXQmIzM5O3Mgd29ydGggdGhlIGVmZm9ydC4gTXkgZmlyc3QgdGhvdWdodCBpcyBqdXN0IHRoYXQgdGhlIGhvc3QgaXMgcmVnaXN0ZXJlZC4gQnV0IEkgbmVlZCBhIHdheSB0byBpbnN0YW50aWF0ZSBhbiBTUEkgZGV2aWNlIGZyb20gdXNlcnNwYWNlLiBDYW4gc3l6a2FsbGVyIGRvIHRoYXQ/IElzIHRoZXJlIGEgd2F5PyBJIGtub3cgSSYjMzk7dmUgc2VlbiBgc3BpX25ld19kZXZpY2VgIHVzZWQgdmlhIHN5c2ZzLi4uIGJ1dCB3YWl0LCBJIGp1c3QgY2hlY2tlZCwgYW5kIHRoZSBkcml2ZXJzL3NwaS8gZGlyZWN0b3J5IGRvZXNuJiMzOTt0IGhhdmUgYSBzeXNmcyBhdHRyaWJ1dGUgZm9yIGBuZXdfZGV2aWNlYC4gSG1tLCB3aGF0IGFib3V0IGFuIGlvY3RsIGluIGBzcGlkZXZgPyBObywgdGhhdCBqdXN0IGxldHMgdXNlcnNwYWNlIHRhbGsgKnRvKiBhbiBleGlzdGluZyBkZXZpY2UuIElzIHRoZXJlIGFub3RoZXIgd2F5PwoKUGVyaGFwcyBgbGFuODY1eGAgaXMganVzdCB1bnJlYWNoYWJsZSBpbiBzeXprYWxsZXIuIFRoZW4gYWdhaW4sIEkgd29uZGVyIGlmIHN5emthbGxlciBjYW4gaW5qZWN0IGRldmljZSB0cmVlIG5vZGVzPyBObywgaXQgZG9lc24mIzM5O3QgaGF2ZSBhIGdlbmVyaWMgZGV2aWNlIHRyZWUgaW5qZWN0b3IuIEFDUEkgaW5qZWN0aW9uPyBOb3BlLCBub3RoaW5nIGR5bmFtaWNhbGx5IHRoZXJlIGVpdGhlci4gV2FpdC4uLiBkaWQgdGhleSByZWNlbnRseSBhZGQgc29tZXRoaW5nIGxpa2UgYHN5el9kZXZfaW5pdGA/IE5vcGUsIG5vdCB0aGF0IEkmIzM5O20gYXdhcmUgb2YuIEJ1dCwgaWYgYGxhbjg2NXhgIGlzIGNvbXBpbGVkIGFuZCByZWFjaGFibGUsIHRoZW4gc3l6a2FsbGVyICpjYW4qIGZ1enogaXQuIFRoZSBtYWluIHF1ZXN0aW9uIHJlbWFpbnM6IGlzIGl0IHJlYWNoYWJsZT8KCkkgc2hvdWxkIHNlZSBpZiB0aGVyZSBpcyBhbnkgb3RoZXIgd2F5IGBsYW44NjV4YCBjb3VsZCBiZSBpbnN0YW50aWF0ZWQuIFJpZ2h0LCBpdCYjMzk7cyBhbiBTUEkgZHJpdmVyLCBzbyBpZiB0aGVyZSYjMzk7cyBubyBpbnN0YW50aWF0aW9uIG1ldGhvZCwgdGhlbiBpdCYjMzk7cyB1bnJlYWNoYWJsZS4gQnV0IHdhaXQsIHdoYXQgaWYgaXQmIzM5O3MgYSBuZXRkZXYgZHJpdmVyPyBZZXMsIGl0IGlzISBCdXQgaXQmIzM5O3MgYW4gU1BJIGRldmljZSBkcml2ZXIgdGhhdCByZWdpc3RlcnMgYSBuZXRkZXYuIElmIHRoZSBTUEkgZGV2aWNlIGlzIG5ldmVyIHByb2JlZCwgdGhlIG5ldGRldiBpc24mIzM5O3QgcmVnaXN0ZXJlZC4gSWYgdGhlIG5ldGRldiBpc24mIzM5O3QgcmVnaXN0ZXJlZCwgdGhlbiB0aGUgY29kZSBJJiMzOTttIGludGVyZXN0ZWQgaW4sIGluIGBvYV90YzYuY2AsIG5ldmVyIGdldHMgZXhlY3V0ZWQuIFNvLCBhcmUgd2Ugc2F5aW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgPwoKSSBuZWVkIHRvIGRvdWJsZS1jaGVjay4gSSByZWNhbGwgc29tZSByZWNlbnQgU1BJIGZ1enppbmcgc3VwcG9ydCBiZWluZyBhZGRlZCB0byBzeXprYWxsZXIsIGxpa2UgaW4gMjAyMyBvciAyMDI0LiBMZXQmIzM5O3Mgc2VhcmNoIGZvciBgc3l6X3NwaWAgYW5kIHNlZSB3aGF0IGNvbWVzIHVwLiBUaGF0IHNob3VsZCBnaXZlIG1lIGEgZGVmaW5pdGl2ZSBhbnN3ZXIsIG9uZSB3YXkgb3IgYW5vdGhlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41MC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjIgMDQ6NTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzeXpfc3BpJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41MS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjIgMDQ6NTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzExNzEKCQkJCQkJCW91dHB1dDogNTEKCQkJCQkJCXRob3VnaHRzOiAxODIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqU1BJIERyaXZlciBGdXp6aW5nIFF1YW5kYXJ5KioKCk9rYXksIHNvIEkmIzM5O20gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgdGhlIGJlc3Qgd2F5IHRvIGZ1enogdGhlIGBsYW44NjV4YCBTUEkgZHJpdmVyLiBNeSBpbml0aWFsIHRob3VnaHQgd2FzIHRvIHVzZSBzb21ldGhpbmcgbGlrZSBgdmhjaWAgZm9yIFNQSSwgc2ltaWxhciB0byBob3cgd2Ugc2ltdWxhdGUgdmlydHVhbCBoYXJkd2FyZSBmb3Igb3RoZXIgYnVzZXMsIGJ1dCB0aGF0IHdvbiYjMzk7dCB3b3JrLiBEYXJuLiBJcyB0aGVyZSBhbiBhbmFsb2dvdXMgYG1hYzgwMjExX2h3c2ltYCBmb3IgU1BJPyBOb3BlLCBub3RoaW5nIGxpa2UgdGhhdCBleGlzdHMuCgpBbHJpZ2h0LCBhIGRpZmZlcmVudCBhcHByb2FjaCB0aGVuLiBJIHJlbWVtYmVyIHN5emthbGxlciBjYW4gZnV6eiBTUEkgZHJpdmVycywgaWYgdGhlIHRhcmdldCBkcml2ZXIgaXMgaW5zdGFudGlhdGVkLiBUaGUga2V5IGlzIGluc3RhbnRpYXRpb24sIHNvIGFyZSB0aGVyZSBhbnkgU1BJIGRldmljZXMgaW5zdGFudGlhdGVkIGluIHRoZSBkZWZhdWx0IHN5emthbGxlciBRRU1VIGVudmlyb25tZW50PyBQcm9iYWJseSBub3QuIFdlJiMzOTtyZSB1c2luZyBgcWVtdS1zeXN0ZW0teDg2XzY0YCB3aXRoIGBwY2Agb3IgYHEzNWAgbWFjaGluZSB0eXBlcywgd2hpY2ggbWVhbnMgbm8gYGxhbjg2NXhgIFNQSSBkZXZpY2VzIHByZXNlbnQuIFVubGVzcyBpdCYjMzk7cyBhIHNwZWNpZmljIGJvYXJkLCB3aGljaCBpdCBpc24mIzM5O3QuCgpTaG9vdCwgdGhpcyBpcyB0cmlja2llciB0aGFuIEkgdGhvdWdodC4gSG9sZCBvbiwgY291bGQgSSBzb21laG93IGdldCB0aGUgYGxhbjg2NXhgIGRldmljZSBpbnN0YW50aWF0ZWQgdGhyb3VnaCBQQ0k/IE5vLCB0aGF0JiMzOTtzIG5vdCBob3cgaXQgd29ya3MuIEl0JiMzOTtzIGFuIFNQSSBkZXZpY2UuIE9yIFVTQj8gTm8sIHRoYXQmIzM5O3MgYSBkZWFkIGVuZCB0b28uIEFyZSB0aGVyZSBhbnkgb3RoZXIgYnVzZXMgdGhhdCBjb3VsZCB3b3JrPyBNYXliZSwgbGV0JiMzOTtzIHRha2UgYSBjbG9zZXIgbG9vayBhdCB0aGUgYGxhbjg2NXhfZHJpdmVyYCBzb3VyY2UgY29kZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41Mi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjIgMDQ6NTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA0MzAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMzAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDQzMDpcdFx0eyAubmFtZSA9IFwmIzM0O2xhbjg2NTFcJiMzNDsgfSxcbiA0MzE6XHRcdHt9LFxuIDQzMjpcdH07XG4gNDMzOlx0TU9EVUxFX0RFVklDRV9UQUJMRShzcGksIGxhbjg2NXhfaWRzKTtcbiA0MzQ6XHRcbiA0MzU6XHRzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBsYW44NjV4X2R0X2lkc1tdID0ge1xuIDQzNjpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21pY3JvY2hpcCxsYW44NjUwXCYjMzQ7IH0sXG4gNDM3Olx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bWljcm9jaGlwLGxhbjg2NTFcJiMzNDsgfSxcbiA0Mzg6XHRcdHsgLyogU2VudGluZWwgKi8gfVxuIDQzOTpcdH07XG4gNDQwOlx0TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbGFuODY1eF9kdF9pZHMpO1xuIDQ0MTpcdFxuIDQ0MjpcdHN0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBsYW44NjV4X2RyaXZlciA9IHtcbiA0NDM6XHRcdC5kcml2ZXIgPSB7XG4gNDQ0Olx0XHRcdC5uYW1lID0gRFJWX05BTUUsXG4gNDQ1Olx0XHRcdC5vZl9tYXRjaF90YWJsZSA9IGxhbjg2NXhfZHRfaWRzLFxuIDQ0NjpcdFx0IH0sXG4gNDQ3Olx0XHQucHJvYmUgPSBsYW44NjV4X3Byb2JlLFxuIDQ0ODpcdFx0LnJlbW92ZSA9IGxhbjg2NXhfcmVtb3ZlLFxuIDQ0OTpcdFx0LmlkX3RhYmxlID0gbGFuODY1eF9pZHMsXG4gNDUwOlx0fTtcbiA0NTE6XHRtb2R1bGVfc3BpX2RyaXZlcihsYW44NjV4X2RyaXZlcik7XG4gNDUyOlx0XG4gNDUzOlx0TU9EVUxFX0RFU0NSSVBUSU9OKERSVl9OQU1FIFwmIzM0OyAxMEJhc2UtVDFTIE1BQ1BIWSBFdGhlcm5ldCBEcml2ZXJcJiMzNDspO1xuIDQ1NDpcdE1PRFVMRV9BVVRIT1IoXCYjMzQ7UGFydGhpYmFuIFZlZXJhc29vcmFuIFx1MDAzY3BhcnRoaWJhbi52ZWVyYXNvb3JhbkBtaWNyb2NoaXAuY29tXHUwMDNlXCYjMzQ7KTtcbiA0NTU6XHRNT0RVTEVfTElDRU5TRShcJiMzNDtHUExcJiMzNDspO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMiAwNDo1MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3MjE1MQoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDEyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIER5bmFtaWMgU1BJIERldmljZSBJbnN0YW50aWF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhbiBTUEkgZHJpdmVyIGhlcmUuIFRoZSBpbW1lZGlhdGUgcXVlc3Rpb24gaW4gbXkgbWluZCBpcywgJiMzNDtDYW4gSSBpbnN0YW50aWF0ZSBhbiBTUEkgZGV2aWNlIGR5bmFtaWNhbGx5IGluIExpbnV4PyYjMzQ7IEkga25vdyBJICpjYW4qIGRvIGl0IGZyb20ga2VybmVsIGNvZGUgdXNpbmcgYHNwaV9ib2FyZF9pbmZvYCBhbmQgYHNwaV9uZXdfZGV2aWNlKClgLCB0aGF0JiMzOTtzIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2guIEJ1dCwgdGhlIG1vcmUgaW50ZXJlc3RpbmcgcXVlc3Rpb24gaXM6ICYjMzQ7SXMgdGhlcmUgYW55ICp1c2Vyc3BhY2UqIGludGVyZmFjZSBmb3IgZG9pbmcgdGhpcz8mIzM0OwoKTXkgbWVtb3J5IGlzIG51ZGdpbmcgbWUg4oCTIEkgc2VlbSB0byByZWNhbGwgdGhhdCBJMkMgcHJvdmlkZXMgYSBuaWNlIHVzZXJzcGFjZSBtZWNoYW5pc20gd2l0aCBgL3N5cy9idXMvaTJjL2RldmljZXMvaTJjLTAvbmV3X2RldmljZWAuIFRoYXQmIzM5O3MgcmVhbGx5IGhhbmR5LiBTbywgdGhlIGZvbGxvdyB1cCBxdWVzdGlvbiB0aGVuIGlzLCAmIzM0O0RvZXMgU1BJIGhhdmUgYSBzaW1pbGFyIGNvbnN0cnVjdD8mIzM0OyBJdCYjMzk7cyBkZWZpbml0ZWx5IHdvcnRoIGNoZWNraW5nLgoKSSYjMzk7bGwgZGlnIGludG8gdGhlIGtlcm5lbCBzb3VyY2UgdG8gc2VlIGlmIHRoZXJlJiMzOTtzIGFueXRoaW5nIGFuYWxvZ291cy4gTGV0JiMzOTtzIHNlZSBpZiB0aGUgYGRyaXZlcnMvc3BpL3NwaS5jYCBmaWxlIGhvbGRzIGFueSBjbHVlcywgc3BlY2lmaWNhbGx5IGxvb2tpbmcgZm9yIGFueSBpbmRpY2F0aW9uIG9mIGEgYG5ld19kZXZpY2VgIGludGVyZmFjZS4gVGhhdCYjMzk7cyB0aGUgbW9zdCBsb2dpY2FsIHBsYWNlIHRvIHN0YXJ0LiBMZXQmIzM5O3Mgc2VlIHdoYXQgdGhhdCBmaWxlIHJldmVhbHMuLi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjIgMDQ6NTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bmV3X2RldmljZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvc3BpL3NwaS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvc3BpL3NwaS5jPTc4OD1FWFBPUlRfU1lNQk9MX0dQTChzcGlfYWRkX2RldmljZSk7XG4tLVxuZHJpdmVycy9zcGkvc3BpLmMtNzkwLS8qKlxuZHJpdmVycy9zcGkvc3BpLmM6NzkxOiAqIHNwaV9uZXdfZGV2aWNlIC0gaW5zdGFudGlhdGUgb25lIG5ldyBTUEkgZGV2aWNlXG5kcml2ZXJzL3NwaS9zcGkuYy03OTItICogQGN0bHI6IENvbnRyb2xsZXIgdG8gd2hpY2ggZGV2aWNlIGlzIGNvbm5lY3RlZFxuLS1cbmRyaXZlcnMvc3BpL3NwaS5jLTgwMy0gKi9cbmRyaXZlcnMvc3BpL3NwaS5jOjgwNDpzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpX25ld19kZXZpY2Uoc3RydWN0IHNwaV9jb250cm9sbGVyICpjdGxyLFxuZHJpdmVycy9zcGkvc3BpLmMtODA1LVx0XHRcdFx0ICBzdHJ1Y3Qgc3BpX2JvYXJkX2luZm8gKmNoaXApXG4tLVxuZHJpdmVycy9zcGkvc3BpLmMtODU5LX1cbmRyaXZlcnMvc3BpL3NwaS5jOjg2MDpFWFBPUlRfU1lNQk9MX0dQTChzcGlfbmV3X2RldmljZSk7XG5kcml2ZXJzL3NwaS9zcGkuYy04NjEtXG4tLVxuZHJpdmVycy9zcGkvc3BpLmM9ODkwPXN0YXRpYyB2b2lkIHNwaV9tYXRjaF9jb250cm9sbGVyX3RvX2JvYXJkaW5mbyhzdHJ1Y3Qgc3BpX2NvbnRyb2xsZXIgKmN0bHIsXG4tLVxuZHJpdmVycy9zcGkvc3BpLmMtODk3LVxuZHJpdmVycy9zcGkvc3BpLmM6ODk4Olx0ZGV2ID0gc3BpX25ld19kZXZpY2UoY3RsciwgYmkpO1xuZHJpdmVycy9zcGkvc3BpLmMtODk5LVx0aWYgKCFkZXYpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIyIDA0OjUyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDcyODcwCgkJCQkJCQlvdXRwdXQ6IDI4CgkJCQkJCQl0aG91Z2h0czogMTQ3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IExpbmUgb2YgUmVhc29uaW5nKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBob3cgd2UgY2FuIGdldCBhIG5ldyBTUEkgZGV2aWNlIGRlZmluZWQsIHNwZWNpZmljYWxseSB0aGlua2luZyBhYm91dCBzeXNmcyBmb3IgYSBgbmV3X2RldmljZWAgY2FsbCwgYnV0IHRoYXQmIzM5O3MgYSBkZWFkIGVuZC4gTm8gbHVjayB0aGVyZS4gSG1tbSwgd2hhdCBhYm91dCBgQ09ORklHX1NQSV9TTEFWRWA/IE5vcGUsIHRoYXQmIzM5O3Mgbm90IHRoZSBwYXRoIGVpdGhlci4gQWxyaWdodCwgbGV0JiMzOTtzIHBpdm90IHRvIGEgZGlmZmVyZW50IGFwcHJvYWNoLiBEb2VzIGBDT05GSUdfT0ZfRFlOQU1JQ2Agb2ZmZXIgYW55IG9wcG9ydHVuaXRpZXM/IEFoLCB3YWl0IGEgbWludXRlLCB0aGUgbGlnaHRidWxiIGlzIGZsaWNrZXJpbmcg4oCTIGNvdWxkIHdlIGxldmVyYWdlIGNvbmZpZ2ZzIGZvciBsb2FkaW5nIGRldmljZSB0cmVlIG92ZXJsYXlzPyBUaGF0JiMzOTtzIHRoZSBrZXksIHllcywgZGV2aWNlIHRyZWUgb3ZlcmxheXMgKmNhbiogYmUgbG9hZGVkIHRocm91Z2ggY29uZmlnZnMhCgpOb3csIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBzZWUgaWYgc3l6a2FsbGVyIGlzIGFscmVhZHkgbWFraW5nIHVzZSBvZiBjb25maWdmcyB0byBsb2FkIHRoZXNlIG92ZXJsYXlzLiBJZGVhbGx5LCBpdCYjMzk7cyBhIGdlbmVyaWMgYW5kIGVhc2lseSBhcHBsaWVkIGZ1enplci4gVW5mb3J0dW5hdGVseSwgaXQgZG9lc24mIzM5O3QgYXBwZWFyIHN5emthbGxlciBoYXMgYSBicm9hZCBmdXp6ZXIgZm9yIGRldmljZSB0cmVlIG92ZXJsYXlzIGF0IHRoZSBtb21lbnQuIFdoaWNoIG1lYW5zIGRyaXZlcnMgbGlrZSBgbGFuODY1eGAgYW5kIGBvYV90YzZgIGFyZSBlZmZlY3RpdmVseSB1bnJlYWNoYWJsZSBpbiBzeXprYWxsZXImIzM5O3MgY3VycmVudCBjb25maWd1cmF0aW9uLiBCdXQgaG9sZCBvbiwgYmVmb3JlIEkgZGVmaW5pdGl2ZWx5IHNodXQgZG93biB0aGUgYG9hX3RjNmAgcGF0aHdheSwgSSBzaG91bGQgcXVpY2tseSBjaGVjayBpZiBpdCYjMzk7cyBiZWluZyB1c2VkIGJ5IGFueSAqb3RoZXIqIGRyaXZlcnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIyIDA0OjUyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O29hX3RjNl9pbml0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jPTMzMz1zdGF0aWMgaW50IGxhbjg2NXhfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzQ4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjM0OTpcdHByaXYtXHUwMDNldGM2ID0gb2FfdGM2X2luaXQoc3BpLCBuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTM1MC1cdGlmICghcHJpdi1cdTAwM2V0YzYpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYz0xMjk0PUVYUE9SVF9TWU1CT0xfR1BMKG9hX3RjNl9zdGFydF94bWl0KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0xMjk2LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MTI5NzogKiBvYV90YzZfaW5pdCAtIGFsbG9jYXRlcyBhbmQgaW5pdGlhbGl6ZXMgb2FfdGM2IHN0cnVjdHVyZS5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTEyOTgtICogQHNwaTogZGV2aWNlIHdpdGggd2hpY2ggZGF0YSB3aWxsIGJlIGV4Y2hhbmdlZC5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0xMzAzLSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MTMwNDpzdHJ1Y3Qgb2FfdGM2ICpvYV90YzZfaW5pdChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMTMwNS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMTQwOC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzoxNDA5OkVYUE9SVF9TWU1CT0xfR1BMKG9hX3RjNl9pbml0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTE0MTAtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIyIDA0OjUyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDczNzg4CgkJCQkJCQlvdXRwdXQ6IDE0OQoJCQkJCQkJdGhvdWdodHM6IDEwMDMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVW5yZWFjaGFibGUgQ29kZSBBbmFseXNpczogYGxhbjg2NXhgIFNQSSBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0JiMzOTtzIG1vZGlmeWluZyBjb2RlIHdpdGhpbiB0aGUgYG9hX3RjNmAgZnJhbWV3b3JrLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsICYjMzQ7V2hvIHVzZXMgdGhpcyBgb2FfdGM2YCBzdHVmZj8mIzM0Oy4gIEEgcXVpY2sgY2hlY2sgcmV2ZWFscyBpdCYjMzk7cyBleGNsdXNpdmVseSB1c2VkIGJ5IHRoZSBgbGFuODY1eGAgZHJpdmVyLCB3aGljaCBpcyBhbiBTUEkgZGV2aWNlLiBUaGF0JiMzOTtzIGEgcmVkIGZsYWcuIFNQSSBkZXZpY2VzIGluIGEgc3RhbmRhcmQgdmlydHVhbGl6ZWQgUUVNVSBzZXR1cCBhcmVuJiMzOTt0IGVhc2lseSBicm91Z2h0IHVwIGZyb20gdXNlciBzcGFjZS4gVGhlcmUmIzM5O3Mgbm8gc3RhbmRhcmQgd2F5IHRvIGp1c3QgbWFnaWNhbGx5IGluc3RhbnRpYXRlIHRoZW0uCgpNeSBtaW5kIGltbWVkaWF0ZWx5IHN0YXJ0cyBydW5uaW5nIHRocm91Z2ggcG9zc2libGUgJiMzNDtlc2NhcGUgaGF0Y2hlcy4mIzM0OyAgQ291bGQgYW5vdGhlciBkcml2ZXIgaW5zdGFudGlhdGUgYGxhbjg2NXhgIGluZGlyZWN0bHk/IE5vcGUuIFN5emthbGxlciBpdHNlbGYgaGF2ZSBzb21lIHdheSB0byB0cmlnZ2VyIFNQSSBkZXZpY2UgaW5zdGFudGlhdGlvbj8gSSBzY2FubmVkIGZvciBhbnkgc3l6XyogZnVuY3Rpb25zIHJlbGF0ZWQgdG8gU1BJLCBidXQgY2FtZSB1cCBlbXB0eS4gQ291bGQgaXQgdXNlIGBzcGlkZXZgPyBObyBsdWNrLiBXaGF0IGFib3V0IGxldmVyYWdpbmcgb3RoZXIgZGV2aWNlIHR5cGVzIGxpa2UgYG1hYzgwMjExX2h3c2ltYCwgYHZoY2lgLCBgdWlucHV0YCwgYHZjYW5gLCBgdHVuYC9gdGFwYCwgYG5ldGxpbmtgLCBgY29uZmlnZnNgLCBvciBgc3lzZnNgPyAgTm8gZGljZS4gIFNvLCBpdCBzZWVtcyB3ZSYjMzk7cmUgc3R1Y2suCgpCdXQgd2FpdCwgbGV0IG1lIGdvIHRocm91Z2ggYWxsIG9mIHRoZSBwbGF0Zm9ybSBkZXZpY2VzLCBidXQgbm8uIElzIGBsYW44NjV4YCBhIHBsYXRmb3JtIGRldmljZT8gTm9wZSwgaXQmIzM5O3MgU1BJLiBBQ1BJPyBVbmxlc3MgdGhlIFFFTVUgQUNQSSB0YWJsZXMgYXJlIHNwZWNpZmljYWxseSBjb25maWd1cmVkLCBuby4gUENJPyBOby4gVVNCPyBEZWZpbml0ZWx5IG5vdC4gVGhlIGNvZGUmIzM5O3MgdW5yZWFjaGFibGUgaW4gdGhlc2UgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHRoYXQgc3l6a2FsbGVyIG5vcm1hbGx5IHVzZXMgbGlrZSBHQ0Ugb3IgUUVNVS4KCkkgbmVlZCB0byBjb25maXJtIHRoaXMuIEkgd2lsbCBtYXJrIHRoaXMgY29kZSBhcyBgV29ydGhGdXp6aW5nPWZhbHNlYC4gVGhlIHJlYXNvbmluZyBJJiMzOTtsbCBwcm92aWRlIGlzIHRoYXQgdGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgb2FfdGM2YCBmcmFtZXdvcmssIHdoaWNoIGlzIHRpZWQgdG8gdGhlIGBsYW44NjV4YCBTUEkgbmV0d29yayBkcml2ZXIuIFNQSSBkZXZpY2VzIHJlcXVpcmUgc3BlY2lmaWMgaGFyZHdhcmUgaW5zdGFudGlhdGlvbiAobGlrZSB2aWEgYSBEZXZpY2UgVHJlZSBvciBBQ1BJKSBhbmQgY2FuJiMzOTt0IGJlIHNwdW4gdXAgZHluYW1pY2FsbHkgZnJvbSB1c2Vyc3BhY2UgaW4gdGhlc2Ugc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlbSBvZmYtbGltaXRzIGZvciB0aGUgZnV6emVyLgoKT2theSwganVzdCB0byBiZSBleHRyYSBzdXJlLCBsZXQgbWUgZG91YmxlLWNoZWNrIGlmIHRoZXJlJiMzOTtzIGFueSAqb3RoZXIqIHdheSBgb2FfdGM2YCBpcyBlbXBsb3llZC4gIEEgc2VhcmNoIGZvciBgb2FfdGM2X2luaXRgIGNvbmZpcm1zIHRoYXQgb25seSBgbGFuODY1eGAgdXNlcyBpdC4gIElzIGBsYW44NjV4YCBkZXBlbmRlbnQgb24gYW55dGhpbmcgZWxzZT8gTm8uCgpBbHJpZ2h0LCBsZXQmIzM5O3Mgem9vbSBiYWNrIGluIG9uIHRoZSBwYXRjaCBpdHNlbGYuIEl0JiMzOTtzIHRvdWNoaW5nIGZ1bmN0aW9ucyBsaWtlIGBvYV90YzZfY2xlYW51cF93YWl0aW5nX3R4X3NrYmAsIGBvYV90YzZfbG9va19mb3JfbmV3X2ZyYW1lYCwgYW5kIGEgYnVuY2ggb2Ygb3RoZXIgYG9hX3RjNl9wcmNzXypgIGFuZCBgb2FfdGM2X3N0YXJ0X3htaXRgIGZ1bmN0aW9ucyDigJMgYWxsIGNvcmUgdG8gdGhlIGBvYV90YzZgIGZyYW1ld29yay4gU2luY2UgYG9hX3RjNmAgaXMgc29sZWx5IHVzZWQgYnkgYGxhbjg2NXhgLCBhbmQgYGxhbjg2NXhgIGlzIFNQSSwgaXQgcmVpbmZvcmNlcyBteSBpbml0aWFsIGNvbmNsdXNpb246IHVucmVhY2hhYmxlLgoKTm93LCBsZXQgbWUgc29saWRpZnkgdGhlIHJhdGlvbmFsZSBmb3IgdGhlIHJlcG9ydC4KCiYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgb2FfdGM2YCAoT1BFTiBBbGxpYW5jZSAxMEJBU0UtVDF4IE1BQy1QSFkgU2VyaWFsIEludGVyZmFjZSkgZnJhbWV3b3JrLCB3aGljaCBpcyBjdXJyZW50bHkgb25seSB1c2VkIGJ5IHRoZSBgbGFuODY1eGAgU1BJIG5ldHdvcmsgZHJpdmVyLiBTaW5jZSBgbGFuODY1eGAgaXMgYW4gU1BJIGRldmljZSwgaXQgcmVxdWlyZXMgc3BlY2lmaWMgaGFyZHdhcmUgaW5zdGFudGlhdGlvbiAoZS5nLiwgdmlhIERldmljZSBUcmVlIG9yIEFDUEkpIGFuZCBjYW5ub3QgYmUgZHluYW1pY2FsbHkgaW5zdGFudGlhdGVkIGZyb20gdXNlcnNwYWNlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBRRU1VL0dDRSkgdXNlZCBieSBzeXprYWxsZXIuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgZm9yIHRoZSBmdXp6ZXIuJiMzNDsKCkp1c3QgdG8gZG90IGFsbCB0aGUgaSYjMzk7cyBhbmQgY3Jvc3MgYWxsIHRoZSB0JiMzOTtzLCBpcyB0aGVyZSBhbnkgYGxhbjg2NXhgIGVtdWxhdG9yIGluIFFFTVU/IE5vLiBBbnkgYGxhbjg2NXhgIG1vY2sgaW4gdGhlIGtlcm5lbD8gTm8uIEFueSBgb2FfdGM2YCBtb2NrIGluIHRoZSBrZXJuZWw/IE5vLiBBbnkgZ2VuZXJhbCBgc3BpYCBtb2NrIHRoYXQgY291bGQgY29uanVyZSBhcmJpdHJhcnkgU1BJIGRldmljZXM/IE5vcGUuCgpJJiMzOTttIG5vdyBjb25maWRlbnQuIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjIgMDQ6NTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYG9hX3RjNmAgKE9QRU4gQWxsaWFuY2UgMTBCQVNFLVQxeCBNQUMtUEhZIFNlcmlhbCBJbnRlcmZhY2UpIGZyYW1ld29yaywgd2hpY2ggaXMgY3VycmVudGx5IG9ubHkgdXNlZCBieSB0aGUgYGxhbjg2NXhgIFNQSSBuZXR3b3JrIGRyaXZlci4gU2luY2UgYGxhbjg2NXhgIGlzIGFuIFNQSSBkZXZpY2UsIGl0IHJlcXVpcmVzIHNwZWNpZmljIGhhcmR3YXJlIGluc3RhbnRpYXRpb24gKGUuZy4sIHZpYSBEZXZpY2UgVHJlZSBvciBBQ1BJKSBhbmQgY2Fubm90IGJlIGR5bmFtaWNhbGx5IGluc3RhbnRpYXRlZCBmcm9tIHVzZXJzcGFjZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgUUVNVS9HQ0UpIHVzZWQgYnkgc3l6a2FsbGVyLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHVucmVhY2hhYmxlIGZvciB0aGUgZnV6emVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGBvYV90YzZgIChPUEVOIEFsbGlhbmNlIDEwQkFTRS1UMXggTUFDLVBIWSBTZXJpYWwgSW50ZXJmYWNlKSBmcmFtZXdvcmssIHdoaWNoIGlzIGN1cnJlbnRseSBvbmx5IHVzZWQgYnkgdGhlIGBsYW44NjV4YCBTUEkgbmV0d29yayBkcml2ZXIuIFNpbmNlIGBsYW44NjV4YCBpcyBhbiBTUEkgZGV2aWNlLCBpdCByZXF1aXJlcyBzcGVjaWZpYyBoYXJkd2FyZSBpbnN0YW50aWF0aW9uIChlLmcuLCB2aWEgRGV2aWNlIFRyZWUgb3IgQUNQSSkgYW5kIGNhbm5vdCBiZSBkeW5hbWljYWxseSBpbnN0YW50aWF0ZWQgZnJvbSB1c2Vyc3BhY2UgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIFFFTVUvR0NFKSB1c2VkIGJ5IHN5emthbGxlci4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBpcyB1bnJlYWNoYWJsZSBmb3IgdGhlIGZ1enplci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0yMlQwNDo0OTozNC43NzkwMjcxMzNaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTM0MTM2NDMzNDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgb2FfdGM2YCAoT1BFTiBBbGxpYW5jZSAxMEJBU0UtVDF4IE1BQy1QSFkgU2VyaWFsIEludGVyZmFjZSkgZnJhbWV3b3JrLCB3aGljaCBpcyBjdXJyZW50bHkgb25seSB1c2VkIGJ5IHRoZSBgbGFuODY1eGAgU1BJIG5ldHdvcmsgZHJpdmVyLiBTaW5jZSBgbGFuODY1eGAgaXMgYW4gU1BJIGRldmljZSwgaXQgcmVxdWlyZXMgc3BlY2lmaWMgaGFyZHdhcmUgaW5zdGFudGlhdGlvbiAoZS5nLiwgdmlhIERldmljZSBUcmVlIG9yIEFDUEkpIGFuZCBjYW5ub3QgYmUgZHluYW1pY2FsbHkgaW5zdGFudGlhdGVkIGZyb20gdXNlcnNwYWNlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBRRU1VL0dDRSkgdXNlZCBieSBzeXprYWxsZXIuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgZm9yIHRoZSBmdXp6ZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMlQwNDo0OTozNC43NzkwMzk2NzNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5NzI5MTcyOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDNiYmRkZTFhNjQ4YmFmZTAyNmY5YTM2N2E5YWQyMmNkZGVkYTYzNjlcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIE1vbiBKdW4gMjIgMDQ6NDk6MzMgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuY1xcbmluZGV4IDA3MjdkNTMzNDVhMzNiLi4xODBmYzQ3YzMwYjMxZCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jXFxuQEAgLTY3MiwxMCArNjcyLDE2IEBAIHN0YXRpYyB2b2lkIG9hX3RjNl9jbGVhbnVwX29uZ29pbmdfdHhfc2tiKHN0cnVjdCBvYV90YzYgKnRjNilcXG4gXFxuIHN0YXRpYyB2b2lkIG9hX3RjNl9jbGVhbnVwX3dhaXRpbmdfdHhfc2tiKHN0cnVjdCBvYV90YzYgKnRjNilcXG4ge1xcbi1cXHRpZiAodGM2LVxcdTAwM2V3YWl0aW5nX3R4X3NrYikge1xcbitcXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xcbitcXG4rXFx0c3Bpbl9sb2NrX2JoKFxcdTAwMjZ0YzYtXFx1MDAzZXR4X3NrYl9sb2NrKTtcXG4rXFx0c2tiID0gdGM2LVxcdTAwM2V3YWl0aW5nX3R4X3NrYjtcXG4rXFx0dGM2LVxcdTAwM2V3YWl0aW5nX3R4X3NrYiA9IE5VTEw7XFxuK1xcdHNwaW5fdW5sb2NrX2JoKFxcdTAwMjZ0YzYtXFx1MDAzZXR4X3NrYl9sb2NrKTtcXG4rXFxuK1xcdGlmIChza2IpIHtcXG4gXFx0XFx0dGM2LVxcdTAwM2VuZXRkZXYtXFx1MDAzZXN0YXRzLnR4X2Ryb3BwZWQrKztcXG4tXFx0XFx0a2ZyZWVfc2tiKHRjNi1cXHUwMDNld2FpdGluZ190eF9za2IpO1xcbi1cXHRcXHR0YzYtXFx1MDAzZXdhaXRpbmdfdHhfc2tiID0gTlVMTDtcXG4rXFx0XFx0a2ZyZWVfc2tiKHNrYik7XFxuIFxcdH1cXG4gfVxcbiBcXG5AQCAtNjg2LDYgKzY5MiwxMiBAQCBzdGF0aWMgdm9pZCBvYV90YzZfZnJlZV9wZW5kaW5nX3NrYnMoc3RydWN0IG9hX3RjNiAqdGM2KVxcbiBcXHRvYV90YzZfY2xlYW51cF93YWl0aW5nX3R4X3NrYih0YzYpO1xcbiB9XFxuIFxcbitzdGF0aWMgdm9pZCBvYV90YzZfbG9va19mb3JfbmV3X2ZyYW1lKHN0cnVjdCBvYV90YzYgKnRjNilcXG4re1xcbitcXHR0YzYtXFx1MDAzZXJ4X2J1Zl9vdmVyZmxvdyA9IHRydWU7XFxuK1xcdG9hX3RjNl9jbGVhbnVwX29uZ29pbmdfcnhfc2tiKHRjNik7XFxuK31cXG4rXFxuIC8qIElmIHRoZSBmYWlsdXJlIGlzIGF0IFNQSSBpbnRlcmZhY2UgbGV2ZWwsIG1hc2tpbmcgYW5kIGNsZWFyaW5nXFxuICAqIHRoZSBpbnRlcnJ1cHQgb2YgdGhlIGRldmljZSB3b24ndCB3b3JrLiBTaW5jZSBTUEkgaW50ZXJydXB0IGlzXFxuICAqIGRpc2FibGVkLCBpdCBzaG91bGQgc3RvcCB0aGUgcmVwZWF0ZWQgaW50ZXJydXB0cy5cXG5AQCAtNzIzLDggKzczNSw3IEBAIHN0YXRpYyBpbnQgb2FfdGM2X3Byb2Nlc3NfZXh0ZW5kZWRfc3RhdHVzKHN0cnVjdCBvYV90YzYgKnRjNilcXG4gXFx0fVxcbiBcXG4gXFx0aWYgKEZJRUxEX0dFVChTVEFUVVMwX1JYX0JVRkZFUl9PVkVSRkxPV19FUlJPUiwgdmFsdWUpKSB7XFxuLVxcdFxcdHRjNi1cXHUwMDNlcnhfYnVmX292ZXJmbG93ID0gdHJ1ZTtcXG4tXFx0XFx0b2FfdGM2X2NsZWFudXBfb25nb2luZ19yeF9za2IodGM2KTtcXG4rXFx0XFx0b2FfdGM2X2xvb2tfZm9yX25ld19mcmFtZSh0YzYpO1xcbiBcXHRcXHRuZXRfZXJyX3JhdGVsaW1pdGVkKFxcXCIlczogUmVjZWl2ZSBidWZmZXIgb3ZlcmZsb3cgZXJyb3JcXFxcblxcXCIsXFxuIFxcdFxcdFxcdFxcdCAgICB0YzYtXFx1MDAzZW5ldGRldi1cXHUwMDNlbmFtZSk7XFxuIFxcdFxcdHJldHVybiAtRUFHQUlOO1xcbkBAIC04MDUsOSArODE2LDE1IEBAIHN0YXRpYyB2b2lkIG9hX3RjNl9zdWJtaXRfcnhfc2tiKHN0cnVjdCBvYV90YzYgKnRjNilcXG4gXFx0dGM2LVxcdTAwM2VyeF9za2IgPSBOVUxMO1xcbiB9XFxuIFxcbi1zdGF0aWMgdm9pZCBvYV90YzZfdXBkYXRlX3J4X3NrYihzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHU4ICpwYXlsb2FkLCB1OCBsZW5ndGgpXFxuK3N0YXRpYyBpbnQgb2FfdGM2X3VwZGF0ZV9yeF9za2Ioc3RydWN0IG9hX3RjNiAqdGM2LCB1OCAqcGF5bG9hZCwgdTggbGVuZ3RoKVxcbiB7XFxuK1xcdGlmICgodGM2LVxcdTAwM2VyeF9za2ItXFx1MDAzZXRhaWwgKyBsZW5ndGgpIFxcdTAwM2UgdGM2LVxcdTAwM2VyeF9za2ItXFx1MDAzZWVuZCkge1xcbitcXHRcXHRvYV90YzZfbG9va19mb3JfbmV3X2ZyYW1lKHRjNik7XFxuK1xcdFxcdHJldHVybiAtRUFHQUlOO1xcbitcXHR9XFxuK1xcbiBcXHRtZW1jcHkoc2tiX3B1dCh0YzYtXFx1MDAzZXJ4X3NrYiwgbGVuZ3RoKSwgcGF5bG9hZCwgbGVuZ3RoKTtcXG4rXFx0cmV0dXJuIDA7XFxuIH1cXG4gXFxuIHN0YXRpYyBpbnQgb2FfdGM2X2FsbG9jYXRlX3J4X3NrYihzdHJ1Y3Qgb2FfdGM2ICp0YzYpXFxuQEAgLTgzMSw3ICs4NDgsOSBAQCBzdGF0aWMgaW50IG9hX3RjNl9wcmNzX2NvbXBsZXRlX3J4X2ZyYW1lKHN0cnVjdCBvYV90YzYgKnRjNiwgdTggKnBheWxvYWQsXFxuIFxcdGlmIChyZXQpXFxuIFxcdFxcdHJldHVybiByZXQ7XFxuIFxcbi1cXHRvYV90YzZfdXBkYXRlX3J4X3NrYih0YzYsIHBheWxvYWQsIHNpemUpO1xcbitcXHRyZXQgPSBvYV90YzZfdXBkYXRlX3J4X3NrYih0YzYsIHBheWxvYWQsIHNpemUpO1xcbitcXHRpZiAocmV0KVxcbitcXHRcXHRyZXR1cm4gcmV0O1xcbiBcXG4gXFx0b2FfdGM2X3N1Ym1pdF9yeF9za2IodGM2KTtcXG4gXFxuQEAgLTg0NiwyMiArODY1LDI0IEBAIHN0YXRpYyBpbnQgb2FfdGM2X3ByY3NfcnhfZnJhbWVfc3RhcnQoc3RydWN0IG9hX3RjNiAqdGM2LCB1OCAqcGF5bG9hZCwgdTE2IHNpemUpXFxuIFxcdGlmIChyZXQpXFxuIFxcdFxcdHJldHVybiByZXQ7XFxuIFxcbi1cXHRvYV90YzZfdXBkYXRlX3J4X3NrYih0YzYsIHBheWxvYWQsIHNpemUpO1xcbi1cXG4tXFx0cmV0dXJuIDA7XFxuK1xcdHJldHVybiBvYV90YzZfdXBkYXRlX3J4X3NrYih0YzYsIHBheWxvYWQsIHNpemUpO1xcbiB9XFxuIFxcbi1zdGF0aWMgdm9pZCBvYV90YzZfcHJjc19yeF9mcmFtZV9lbmQoc3RydWN0IG9hX3RjNiAqdGM2LCB1OCAqcGF5bG9hZCwgdTE2IHNpemUpXFxuK3N0YXRpYyBpbnQgb2FfdGM2X3ByY3NfcnhfZnJhbWVfZW5kKHN0cnVjdCBvYV90YzYgKnRjNiwgdTggKnBheWxvYWQsIHUxNiBzaXplKVxcbiB7XFxuLVxcdG9hX3RjNl91cGRhdGVfcnhfc2tiKHRjNiwgcGF5bG9hZCwgc2l6ZSk7XFxuK1xcdGludCByZXQ7XFxuIFxcbi1cXHRvYV90YzZfc3VibWl0X3J4X3NrYih0YzYpO1xcbitcXHRyZXQgPSBvYV90YzZfdXBkYXRlX3J4X3NrYih0YzYsIHBheWxvYWQsIHNpemUpO1xcbitcXHRpZiAoIXJldClcXG4rXFx0XFx0b2FfdGM2X3N1Ym1pdF9yeF9za2IodGM2KTtcXG4rXFx0cmV0dXJuIHJldDtcXG4gfVxcbiBcXG4tc3RhdGljIHZvaWQgb2FfdGM2X3ByY3Nfb25nb2luZ19yeF9mcmFtZShzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHU4ICpwYXlsb2FkLFxcbi1cXHRcXHRcXHRcXHRcXHQgdTMyIGZvb3RlcilcXG4rc3RhdGljIGludCBvYV90YzZfcHJjc19vbmdvaW5nX3J4X2ZyYW1lKHN0cnVjdCBvYV90YzYgKnRjNiwgdTggKnBheWxvYWQsXFxuK1xcdFxcdFxcdFxcdFxcdHUzMiBmb290ZXIpXFxuIHtcXG4tXFx0b2FfdGM2X3VwZGF0ZV9yeF9za2IodGM2LCBwYXlsb2FkLCBPQV9UQzZfQ0hVTktfUEFZTE9BRF9TSVpFKTtcXG4rXFx0cmV0dXJuIG9hX3RjNl91cGRhdGVfcnhfc2tiKHRjNiwgcGF5bG9hZCxcXG4rXFx0XFx0XFx0XFx0ICAgIE9BX1RDNl9DSFVOS19QQVlMT0FEX1NJWkUpO1xcbiB9XFxuIFxcbiBzdGF0aWMgaW50IG9hX3RjNl9wcmNzX3J4X2NodW5rX3BheWxvYWQoc3RydWN0IG9hX3RjNiAqdGM2LCB1OCAqZGF0YSxcXG5AQCAtODc0LDYgKzg5NSw3IEBAIHN0YXRpYyBpbnQgb2FfdGM2X3ByY3NfcnhfY2h1bmtfcGF5bG9hZChzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHU4ICpkYXRhLFxcbiBcXHRib29sIHN0YXJ0X3ZhbGlkID0gRklFTERfR0VUKE9BX1RDNl9EQVRBX0ZPT1RFUl9TVEFSVF9WQUxJRCwgZm9vdGVyKTtcXG4gXFx0Ym9vbCBlbmRfdmFsaWQgPSBGSUVMRF9HRVQoT0FfVEM2X0RBVEFfRk9PVEVSX0VORF9WQUxJRCwgZm9vdGVyKTtcXG4gXFx0dTE2IHNpemU7XFxuK1xcdGludCByZXQ7XFxuIFxcbiBcXHQvKiBSZXN0YXJ0IHRoZSBuZXcgcnggZnJhbWUgYWZ0ZXIgcmVjZWl2aW5nIHJ4IGJ1ZmZlciBvdmVyZmxvdyBlcnJvciAqL1xcbiBcXHRpZiAoc3RhcnRfdmFsaWQgXFx1MDAyNlxcdTAwMjYgdGM2LVxcdTAwM2VyeF9idWZfb3ZlcmZsb3cpXFxuQEAgLTkwMSw4ICs5MjMsNyBAQCBzdGF0aWMgaW50IG9hX3RjNl9wcmNzX3J4X2NodW5rX3BheWxvYWQoc3RydWN0IG9hX3RjNiAqdGM2LCB1OCAqZGF0YSxcXG4gXFx0LyogUHJvY2VzcyB0aGUgY2h1bmsgd2l0aCBvbmx5IHJ4IGZyYW1lIGVuZCAqL1xcbiBcXHRpZiAoZW5kX3ZhbGlkIFxcdTAwMjZcXHUwMDI2ICFzdGFydF92YWxpZCkge1xcbiBcXHRcXHRzaXplID0gZW5kX2J5dGVfb2Zmc2V0ICsgMTtcXG4tXFx0XFx0b2FfdGM2X3ByY3NfcnhfZnJhbWVfZW5kKHRjNiwgZGF0YSwgc2l6ZSk7XFxuLVxcdFxcdHJldHVybiAwO1xcbitcXHRcXHRyZXR1cm4gb2FfdGM2X3ByY3NfcnhfZnJhbWVfZW5kKHRjNiwgZGF0YSwgc2l6ZSk7XFxuIFxcdH1cXG4gXFxuIFxcdC8qIFByb2Nlc3MgdGhlIGNodW5rIHdpdGggcHJldmlvdXMgcnggZnJhbWUgZW5kIGFuZCBuZXh0IHJ4IGZyYW1lXFxuQEAgLTkxNSw3ICs5MzYsOSBAQCBzdGF0aWMgaW50IG9hX3RjNl9wcmNzX3J4X2NodW5rX3BheWxvYWQoc3RydWN0IG9hX3RjNiAqdGM2LCB1OCAqZGF0YSxcXG4gXFx0XFx0ICovXFxuIFxcdFxcdGlmICh0YzYtXFx1MDAzZXJ4X3NrYikge1xcbiBcXHRcXHRcXHRzaXplID0gZW5kX2J5dGVfb2Zmc2V0ICsgMTtcXG4tXFx0XFx0XFx0b2FfdGM2X3ByY3NfcnhfZnJhbWVfZW5kKHRjNiwgZGF0YSwgc2l6ZSk7XFxuK1xcdFxcdFxcdHJldCA9IG9hX3RjNl9wcmNzX3J4X2ZyYW1lX2VuZCh0YzYsIGRhdGEsIHNpemUpO1xcbitcXHRcXHRcXHRpZiAocmV0KVxcbitcXHRcXHRcXHRcXHRyZXR1cm4gcmV0O1xcbiBcXHRcXHR9XFxuIFxcdFxcdHNpemUgPSBPQV9UQzZfQ0hVTktfUEFZTE9BRF9TSVpFIC0gc3RhcnRfYnl0ZV9vZmZzZXQ7XFxuIFxcdFxcdHJldHVybiBvYV90YzZfcHJjc19yeF9mcmFtZV9zdGFydCh0YzYsXFxuQEAgLTkyNCw5ICs5NDcsNyBAQCBzdGF0aWMgaW50IG9hX3RjNl9wcmNzX3J4X2NodW5rX3BheWxvYWQoc3RydWN0IG9hX3RjNiAqdGM2LCB1OCAqZGF0YSxcXG4gXFx0fVxcbiBcXG4gXFx0LyogUHJvY2VzcyB0aGUgY2h1bmsgd2l0aCBvbmdvaW5nIHJ4IGZyYW1lIGRhdGEgKi9cXG4tXFx0b2FfdGM2X3ByY3Nfb25nb2luZ19yeF9mcmFtZSh0YzYsIGRhdGEsIGZvb3Rlcik7XFxuLVxcbi1cXHRyZXR1cm4gMDtcXG4rXFx0cmV0dXJuIG9hX3RjNl9wcmNzX29uZ29pbmdfcnhfZnJhbWUodGM2LCBkYXRhLCBmb290ZXIpO1xcbiB9XFxuIFxcbiBzdGF0aWMgdTMyIG9hX3RjNl9nZXRfcnhfY2h1bmtfZm9vdGVyKHN0cnVjdCBvYV90YzYgKnRjNiwgdTE2IGZvb3Rlcl9vZmZzZXQpXFxuQEAgLTEyNTAsMTEgKzEyNzEsNiBAQCBFWFBPUlRfU1lNQk9MX0dQTChvYV90YzZfemVyb19hbGlnbl9yZWNlaXZlX2ZyYW1lX2VuYWJsZSk7XFxuICAqL1xcbiBuZXRkZXZfdHhfdCBvYV90YzZfc3RhcnRfeG1pdChzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHN0cnVjdCBza19idWZmICpza2IpXFxuIHtcXG4tXFx0aWYgKHRjNi1cXHUwMDNlZGlzYWJsZV90cmFmZmljIHx8IHRjNi1cXHUwMDNld2FpdGluZ190eF9za2IpIHtcXG4tXFx0XFx0bmV0aWZfc3RvcF9xdWV1ZSh0YzYtXFx1MDAzZW5ldGRldik7XFxuLVxcdFxcdHJldHVybiBORVRERVZfVFhfQlVTWTtcXG4tXFx0fVxcbi1cXG4gXFx0aWYgKHNrYl9saW5lYXJpemUoc2tiKSkge1xcbiBcXHRcXHRkZXZfa2ZyZWVfc2tiX2FueShza2IpO1xcbiBcXHRcXHR0YzYtXFx1MDAzZW5ldGRldi1cXHUwMDNlc3RhdHMudHhfZHJvcHBlZCsrO1xcbkBAIC0xMjYyLDYgKzEyNzgsMTEgQEAgbmV0ZGV2X3R4X3Qgb2FfdGM2X3N0YXJ0X3htaXQoc3RydWN0IG9hX3RjNiAqdGM2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbiBcXHR9XFxuIFxcbiBcXHRzcGluX2xvY2tfYmgoXFx1MDAyNnRjNi1cXHUwMDNldHhfc2tiX2xvY2spO1xcbitcXHRpZiAodGM2LVxcdTAwM2VkaXNhYmxlX3RyYWZmaWMgfHwgdGM2LVxcdTAwM2V3YWl0aW5nX3R4X3NrYikge1xcbitcXHRcXHRuZXRpZl9zdG9wX3F1ZXVlKHRjNi1cXHUwMDNlbmV0ZGV2KTtcXG4rXFx0XFx0c3Bpbl91bmxvY2tfYmgoXFx1MDAyNnRjNi1cXHUwMDNldHhfc2tiX2xvY2spO1xcbitcXHRcXHRyZXR1cm4gTkVUREVWX1RYX0JVU1k7XFxuK1xcdH1cXG4gXFx0dGM2LVxcdTAwM2V3YWl0aW5nX3R4X3NrYiA9IHNrYjtcXG4gXFx0c3Bpbl91bmxvY2tfYmgoXFx1MDAyNnRjNi1cXHUwMDNldHhfc2tiX2xvY2spO1xcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjJUMDQ6NDk6MzUuMjc2OTM3NjIyWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxOTI5MTU3MTc3NTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgb2FfdGM2YCAoT1BFTiBBbGxpYW5jZSAxMEJBU0UtVDF4IE1BQy1QSFkgU2VyaWFsIEludGVyZmFjZSkgZnJhbWV3b3JrLCB3aGljaCBpcyBjdXJyZW50bHkgb25seSB1c2VkIGJ5IHRoZSBgbGFuODY1eGAgU1BJIG5ldHdvcmsgZHJpdmVyLiBTaW5jZSBgbGFuODY1eGAgaXMgYW4gU1BJIGRldmljZSwgaXQgcmVxdWlyZXMgc3BlY2lmaWMgaGFyZHdhcmUgaW5zdGFudGlhdGlvbiAoZS5nLiwgdmlhIERldmljZSBUcmVlIG9yIEFDUEkpIGFuZCBjYW5ub3QgYmUgZHluYW1pY2FsbHkgaW5zdGFudGlhdGVkIGZyb20gdXNlcnNwYWNlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBRRU1VL0dDRSkgdXNlZCBieSBzeXprYWxsZXIuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgZm9yIHRoZSBmdXp6ZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDNiYmRkZTFhNjQ4YmFmZTAyNmY5YTM2N2E5YWQyMmNkZGVkYTYzNjlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1biAyMiAwNDo0OTozMyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmNcbmluZGV4IDA3MjdkNTMzNDVhMzNiLi4xODBmYzQ3YzMwYjMxZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuY1xuQEAgLTY3MiwxMCArNjcyLDE2IEBAIHN0YXRpYyB2b2lkIG9hX3RjNl9jbGVhbnVwX29uZ29pbmdfdHhfc2tiKHN0cnVjdCBvYV90YzYgKnRjNilcbiBcbiBzdGF0aWMgdm9pZCBvYV90YzZfY2xlYW51cF93YWl0aW5nX3R4X3NrYihzdHJ1Y3Qgb2FfdGM2ICp0YzYpXG4ge1xuLVx0aWYgKHRjNi1cdTAwM2V3YWl0aW5nX3R4X3NrYikge1xuK1x0c3RydWN0IHNrX2J1ZmYgKnNrYjtcbitcbitcdHNwaW5fbG9ja19iaChcdTAwMjZ0YzYtXHUwMDNldHhfc2tiX2xvY2spO1xuK1x0c2tiID0gdGM2LVx1MDAzZXdhaXRpbmdfdHhfc2tiO1xuK1x0dGM2LVx1MDAzZXdhaXRpbmdfdHhfc2tiID0gTlVMTDtcbitcdHNwaW5fdW5sb2NrX2JoKFx1MDAyNnRjNi1cdTAwM2V0eF9za2JfbG9jayk7XG4rXG4rXHRpZiAoc2tiKSB7XG4gXHRcdHRjNi1cdTAwM2VuZXRkZXYtXHUwMDNlc3RhdHMudHhfZHJvcHBlZCsrO1xuLVx0XHRrZnJlZV9za2IodGM2LVx1MDAzZXdhaXRpbmdfdHhfc2tiKTtcbi1cdFx0dGM2LVx1MDAzZXdhaXRpbmdfdHhfc2tiID0gTlVMTDtcbitcdFx0a2ZyZWVfc2tiKHNrYik7XG4gXHR9XG4gfVxuIFxuQEAgLTY4Niw2ICs2OTIsMTIgQEAgc3RhdGljIHZvaWQgb2FfdGM2X2ZyZWVfcGVuZGluZ19za2JzKHN0cnVjdCBvYV90YzYgKnRjNilcbiBcdG9hX3RjNl9jbGVhbnVwX3dhaXRpbmdfdHhfc2tiKHRjNik7XG4gfVxuIFxuK3N0YXRpYyB2b2lkIG9hX3RjNl9sb29rX2Zvcl9uZXdfZnJhbWUoc3RydWN0IG9hX3RjNiAqdGM2KVxuK3tcbitcdHRjNi1cdTAwM2VyeF9idWZfb3ZlcmZsb3cgPSB0cnVlO1xuK1x0b2FfdGM2X2NsZWFudXBfb25nb2luZ19yeF9za2IodGM2KTtcbit9XG4rXG4gLyogSWYgdGhlIGZhaWx1cmUgaXMgYXQgU1BJIGludGVyZmFjZSBsZXZlbCwgbWFza2luZyBhbmQgY2xlYXJpbmdcbiAgKiB0aGUgaW50ZXJydXB0IG9mIHRoZSBkZXZpY2Ugd29uJ3Qgd29yay4gU2luY2UgU1BJIGludGVycnVwdCBpc1xuICAqIGRpc2FibGVkLCBpdCBzaG91bGQgc3RvcCB0aGUgcmVwZWF0ZWQgaW50ZXJydXB0cy5cbkBAIC03MjMsOCArNzM1LDcgQEAgc3RhdGljIGludCBvYV90YzZfcHJvY2Vzc19leHRlbmRlZF9zdGF0dXMoc3RydWN0IG9hX3RjNiAqdGM2KVxuIFx0fVxuIFxuIFx0aWYgKEZJRUxEX0dFVChTVEFUVVMwX1JYX0JVRkZFUl9PVkVSRkxPV19FUlJPUiwgdmFsdWUpKSB7XG4tXHRcdHRjNi1cdTAwM2VyeF9idWZfb3ZlcmZsb3cgPSB0cnVlO1xuLVx0XHRvYV90YzZfY2xlYW51cF9vbmdvaW5nX3J4X3NrYih0YzYpO1xuK1x0XHRvYV90YzZfbG9va19mb3JfbmV3X2ZyYW1lKHRjNik7XG4gXHRcdG5ldF9lcnJfcmF0ZWxpbWl0ZWQoXCIlczogUmVjZWl2ZSBidWZmZXIgb3ZlcmZsb3cgZXJyb3JcXG5cIixcbiBcdFx0XHRcdCAgICB0YzYtXHUwMDNlbmV0ZGV2LVx1MDAzZW5hbWUpO1xuIFx0XHRyZXR1cm4gLUVBR0FJTjtcbkBAIC04MDUsOSArODE2LDE1IEBAIHN0YXRpYyB2b2lkIG9hX3RjNl9zdWJtaXRfcnhfc2tiKHN0cnVjdCBvYV90YzYgKnRjNilcbiBcdHRjNi1cdTAwM2VyeF9za2IgPSBOVUxMO1xuIH1cbiBcbi1zdGF0aWMgdm9pZCBvYV90YzZfdXBkYXRlX3J4X3NrYihzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHU4ICpwYXlsb2FkLCB1OCBsZW5ndGgpXG4rc3RhdGljIGludCBvYV90YzZfdXBkYXRlX3J4X3NrYihzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHU4ICpwYXlsb2FkLCB1OCBsZW5ndGgpXG4ge1xuK1x0aWYgKCh0YzYtXHUwMDNlcnhfc2tiLVx1MDAzZXRhaWwgKyBsZW5ndGgpIFx1MDAzZSB0YzYtXHUwMDNlcnhfc2tiLVx1MDAzZWVuZCkge1xuK1x0XHRvYV90YzZfbG9va19mb3JfbmV3X2ZyYW1lKHRjNik7XG4rXHRcdHJldHVybiAtRUFHQUlOO1xuK1x0fVxuK1xuIFx0bWVtY3B5KHNrYl9wdXQodGM2LVx1MDAzZXJ4X3NrYiwgbGVuZ3RoKSwgcGF5bG9hZCwgbGVuZ3RoKTtcbitcdHJldHVybiAwO1xuIH1cbiBcbiBzdGF0aWMgaW50IG9hX3RjNl9hbGxvY2F0ZV9yeF9za2Ioc3RydWN0IG9hX3RjNiAqdGM2KVxuQEAgLTgzMSw3ICs4NDgsOSBAQCBzdGF0aWMgaW50IG9hX3RjNl9wcmNzX2NvbXBsZXRlX3J4X2ZyYW1lKHN0cnVjdCBvYV90YzYgKnRjNiwgdTggKnBheWxvYWQsXG4gXHRpZiAocmV0KVxuIFx0XHRyZXR1cm4gcmV0O1xuIFxuLVx0b2FfdGM2X3VwZGF0ZV9yeF9za2IodGM2LCBwYXlsb2FkLCBzaXplKTtcbitcdHJldCA9IG9hX3RjNl91cGRhdGVfcnhfc2tiKHRjNiwgcGF5bG9hZCwgc2l6ZSk7XG4rXHRpZiAocmV0KVxuK1x0XHRyZXR1cm4gcmV0O1xuIFxuIFx0b2FfdGM2X3N1Ym1pdF9yeF9za2IodGM2KTtcbiBcbkBAIC04NDYsMjIgKzg2NSwyNCBAQCBzdGF0aWMgaW50IG9hX3RjNl9wcmNzX3J4X2ZyYW1lX3N0YXJ0KHN0cnVjdCBvYV90YzYgKnRjNiwgdTggKnBheWxvYWQsIHUxNiBzaXplKVxuIFx0aWYgKHJldClcbiBcdFx0cmV0dXJuIHJldDtcbiBcbi1cdG9hX3RjNl91cGRhdGVfcnhfc2tiKHRjNiwgcGF5bG9hZCwgc2l6ZSk7XG4tXG4tXHRyZXR1cm4gMDtcbitcdHJldHVybiBvYV90YzZfdXBkYXRlX3J4X3NrYih0YzYsIHBheWxvYWQsIHNpemUpO1xuIH1cbiBcbi1zdGF0aWMgdm9pZCBvYV90YzZfcHJjc19yeF9mcmFtZV9lbmQoc3RydWN0IG9hX3RjNiAqdGM2LCB1OCAqcGF5bG9hZCwgdTE2IHNpemUpXG4rc3RhdGljIGludCBvYV90YzZfcHJjc19yeF9mcmFtZV9lbmQoc3RydWN0IG9hX3RjNiAqdGM2LCB1OCAqcGF5bG9hZCwgdTE2IHNpemUpXG4ge1xuLVx0b2FfdGM2X3VwZGF0ZV9yeF9za2IodGM2LCBwYXlsb2FkLCBzaXplKTtcbitcdGludCByZXQ7XG4gXG4tXHRvYV90YzZfc3VibWl0X3J4X3NrYih0YzYpO1xuK1x0cmV0ID0gb2FfdGM2X3VwZGF0ZV9yeF9za2IodGM2LCBwYXlsb2FkLCBzaXplKTtcbitcdGlmICghcmV0KVxuK1x0XHRvYV90YzZfc3VibWl0X3J4X3NrYih0YzYpO1xuK1x0cmV0dXJuIHJldDtcbiB9XG4gXG4tc3RhdGljIHZvaWQgb2FfdGM2X3ByY3Nfb25nb2luZ19yeF9mcmFtZShzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHU4ICpwYXlsb2FkLFxuLVx0XHRcdFx0XHQgdTMyIGZvb3RlcilcbitzdGF0aWMgaW50IG9hX3RjNl9wcmNzX29uZ29pbmdfcnhfZnJhbWUoc3RydWN0IG9hX3RjNiAqdGM2LCB1OCAqcGF5bG9hZCxcbitcdFx0XHRcdFx0dTMyIGZvb3RlcilcbiB7XG4tXHRvYV90YzZfdXBkYXRlX3J4X3NrYih0YzYsIHBheWxvYWQsIE9BX1RDNl9DSFVOS19QQVlMT0FEX1NJWkUpO1xuK1x0cmV0dXJuIG9hX3RjNl91cGRhdGVfcnhfc2tiKHRjNiwgcGF5bG9hZCxcbitcdFx0XHRcdCAgICBPQV9UQzZfQ0hVTktfUEFZTE9BRF9TSVpFKTtcbiB9XG4gXG4gc3RhdGljIGludCBvYV90YzZfcHJjc19yeF9jaHVua19wYXlsb2FkKHN0cnVjdCBvYV90YzYgKnRjNiwgdTggKmRhdGEsXG5AQCAtODc0LDYgKzg5NSw3IEBAIHN0YXRpYyBpbnQgb2FfdGM2X3ByY3NfcnhfY2h1bmtfcGF5bG9hZChzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHU4ICpkYXRhLFxuIFx0Ym9vbCBzdGFydF92YWxpZCA9IEZJRUxEX0dFVChPQV9UQzZfREFUQV9GT09URVJfU1RBUlRfVkFMSUQsIGZvb3Rlcik7XG4gXHRib29sIGVuZF92YWxpZCA9IEZJRUxEX0dFVChPQV9UQzZfREFUQV9GT09URVJfRU5EX1ZBTElELCBmb290ZXIpO1xuIFx0dTE2IHNpemU7XG4rXHRpbnQgcmV0O1xuIFxuIFx0LyogUmVzdGFydCB0aGUgbmV3IHJ4IGZyYW1lIGFmdGVyIHJlY2VpdmluZyByeCBidWZmZXIgb3ZlcmZsb3cgZXJyb3IgKi9cbiBcdGlmIChzdGFydF92YWxpZCBcdTAwMjZcdTAwMjYgdGM2LVx1MDAzZXJ4X2J1Zl9vdmVyZmxvdylcbkBAIC05MDEsOCArOTIzLDcgQEAgc3RhdGljIGludCBvYV90YzZfcHJjc19yeF9jaHVua19wYXlsb2FkKHN0cnVjdCBvYV90YzYgKnRjNiwgdTggKmRhdGEsXG4gXHQvKiBQcm9jZXNzIHRoZSBjaHVuayB3aXRoIG9ubHkgcnggZnJhbWUgZW5kICovXG4gXHRpZiAoZW5kX3ZhbGlkIFx1MDAyNlx1MDAyNiAhc3RhcnRfdmFsaWQpIHtcbiBcdFx0c2l6ZSA9IGVuZF9ieXRlX29mZnNldCArIDE7XG4tXHRcdG9hX3RjNl9wcmNzX3J4X2ZyYW1lX2VuZCh0YzYsIGRhdGEsIHNpemUpO1xuLVx0XHRyZXR1cm4gMDtcbitcdFx0cmV0dXJuIG9hX3RjNl9wcmNzX3J4X2ZyYW1lX2VuZCh0YzYsIGRhdGEsIHNpemUpO1xuIFx0fVxuIFxuIFx0LyogUHJvY2VzcyB0aGUgY2h1bmsgd2l0aCBwcmV2aW91cyByeCBmcmFtZSBlbmQgYW5kIG5leHQgcnggZnJhbWVcbkBAIC05MTUsNyArOTM2LDkgQEAgc3RhdGljIGludCBvYV90YzZfcHJjc19yeF9jaHVua19wYXlsb2FkKHN0cnVjdCBvYV90YzYgKnRjNiwgdTggKmRhdGEsXG4gXHRcdCAqL1xuIFx0XHRpZiAodGM2LVx1MDAzZXJ4X3NrYikge1xuIFx0XHRcdHNpemUgPSBlbmRfYnl0ZV9vZmZzZXQgKyAxO1xuLVx0XHRcdG9hX3RjNl9wcmNzX3J4X2ZyYW1lX2VuZCh0YzYsIGRhdGEsIHNpemUpO1xuK1x0XHRcdHJldCA9IG9hX3RjNl9wcmNzX3J4X2ZyYW1lX2VuZCh0YzYsIGRhdGEsIHNpemUpO1xuK1x0XHRcdGlmIChyZXQpXG4rXHRcdFx0XHRyZXR1cm4gcmV0O1xuIFx0XHR9XG4gXHRcdHNpemUgPSBPQV9UQzZfQ0hVTktfUEFZTE9BRF9TSVpFIC0gc3RhcnRfYnl0ZV9vZmZzZXQ7XG4gXHRcdHJldHVybiBvYV90YzZfcHJjc19yeF9mcmFtZV9zdGFydCh0YzYsXG5AQCAtOTI0LDkgKzk0Nyw3IEBAIHN0YXRpYyBpbnQgb2FfdGM2X3ByY3NfcnhfY2h1bmtfcGF5bG9hZChzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHU4ICpkYXRhLFxuIFx0fVxuIFxuIFx0LyogUHJvY2VzcyB0aGUgY2h1bmsgd2l0aCBvbmdvaW5nIHJ4IGZyYW1lIGRhdGEgKi9cbi1cdG9hX3RjNl9wcmNzX29uZ29pbmdfcnhfZnJhbWUodGM2LCBkYXRhLCBmb290ZXIpO1xuLVxuLVx0cmV0dXJuIDA7XG4rXHRyZXR1cm4gb2FfdGM2X3ByY3Nfb25nb2luZ19yeF9mcmFtZSh0YzYsIGRhdGEsIGZvb3Rlcik7XG4gfVxuIFxuIHN0YXRpYyB1MzIgb2FfdGM2X2dldF9yeF9jaHVua19mb290ZXIoc3RydWN0IG9hX3RjNiAqdGM2LCB1MTYgZm9vdGVyX29mZnNldClcbkBAIC0xMjUwLDExICsxMjcxLDYgQEAgRVhQT1JUX1NZTUJPTF9HUEwob2FfdGM2X3plcm9fYWxpZ25fcmVjZWl2ZV9mcmFtZV9lbmFibGUpO1xuICAqL1xuIG5ldGRldl90eF90IG9hX3RjNl9zdGFydF94bWl0KHN0cnVjdCBvYV90YzYgKnRjNiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiB7XG4tXHRpZiAodGM2LVx1MDAzZWRpc2FibGVfdHJhZmZpYyB8fCB0YzYtXHUwMDNld2FpdGluZ190eF9za2IpIHtcbi1cdFx0bmV0aWZfc3RvcF9xdWV1ZSh0YzYtXHUwMDNlbmV0ZGV2KTtcbi1cdFx0cmV0dXJuIE5FVERFVl9UWF9CVVNZO1xuLVx0fVxuLVxuIFx0aWYgKHNrYl9saW5lYXJpemUoc2tiKSkge1xuIFx0XHRkZXZfa2ZyZWVfc2tiX2FueShza2IpO1xuIFx0XHR0YzYtXHUwMDNlbmV0ZGV2LVx1MDAzZXN0YXRzLnR4X2Ryb3BwZWQrKztcbkBAIC0xMjYyLDYgKzEyNzgsMTEgQEAgbmV0ZGV2X3R4X3Qgb2FfdGM2X3N0YXJ0X3htaXQoc3RydWN0IG9hX3RjNiAqdGM2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIFx0fVxuIFxuIFx0c3Bpbl9sb2NrX2JoKFx1MDAyNnRjNi1cdTAwM2V0eF9za2JfbG9jayk7XG4rXHRpZiAodGM2LVx1MDAzZWRpc2FibGVfdHJhZmZpYyB8fCB0YzYtXHUwMDNld2FpdGluZ190eF9za2IpIHtcbitcdFx0bmV0aWZfc3RvcF9xdWV1ZSh0YzYtXHUwMDNlbmV0ZGV2KTtcbitcdFx0c3Bpbl91bmxvY2tfYmgoXHUwMDI2dGM2LVx1MDAzZXR4X3NrYl9sb2NrKTtcbitcdFx0cmV0dXJuIE5FVERFVl9UWF9CVVNZO1xuK1x0fVxuIFx0dGM2LVx1MDAzZXdhaXRpbmdfdHhfc2tiID0gc2tiO1xuIFx0c3Bpbl91bmxvY2tfYmgoXHUwMDI2dGM2LVx1MDAzZXR4X3NrYl9sb2NrKTtcbiBcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIyVDA0OjQ5OjM1LjI3NjkzOTE4MloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg4NDcxNTAwMDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgUGF0Y2ggZm9yIHRoZSBPQV9UQzYgRXRoZXJuZXQgRHJpdmVyKipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCBmb3IgYGRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jYC4gSXQgbG9va3MgbGlrZSBpdCdzIHByaW1hcmlseSBhIGZ1bmN0aW9uYWwgZml4LCB3aGljaCBpcyBhbHdheXMgZ29vZC4gTGV0IG1lIGJyZWFrIGRvd24gdGhlIGtleSBjaGFuZ2VzIGFuZCBteSB0aG91Z2h0IHByb2Nlc3MuXG5cbkZpcnN0LCBpbiBgb2FfdGM2X2NsZWFudXBfd2FpdGluZ190eF9za2JgLCB0aGV5J3ZlIGFkZGVkIGEgYHNwaW5fbG9ja19iaGAgYXJvdW5kIHRoZSBhY2Nlc3MgdG8gYHRjNi1cdTAwM2V3YWl0aW5nX3R4X3NrYmAuIE1ha2VzIHNlbnNlIOKAkyBjbGVhcmx5IGFkZHJlc3NpbmcgYSByYWNlIGNvbmRpdGlvbiB0aGVyZS4gYG9hX3RjNl9zdGFydF94bWl0YCBhbHNvIGhhcyB0aGlzIGZpeCBzbyBib3RoIGFyZSBwcm90ZWN0ZWQgdW5kZXIgYSBsb2NrLlxuXG5OZXh0LCBhIG5ldyBmdW5jdGlvbiwgYG9hX3RjNl9sb29rX2Zvcl9uZXdfZnJhbWVgLCBpcyBpbnRyb2R1Y2VkLiBUaGlzIHNldHMgYHRjNi1cdTAwM2VyeF9idWZfb3ZlcmZsb3cgPSB0cnVlYCBhbmQgY2FsbHMgYG9hX3RjNl9jbGVhbnVwX29uZ29pbmdfcnhfc2tiYC4gVGhpcyBpcyBpbnRlcmVzdGluZzsgaXQgc2lnbmFscyBhbiBSWCBidWZmZXIgb3ZlcmZsb3csIGFuZCB0aGVuIGNsZWFucyB1cC4gVGhpcyBpcyBwcm9iYWJseSByZWxhdGVkIHRvIHRoZSBvdGhlciBtYWpvciBjaGFuZ2UuXG5cblRoZSBjb3JlIG9mIHRoZSBmaXggc2VlbXMgdG8gYmUgaW4gYG9hX3RjNl91cGRhdGVfcnhfc2tiYC4gSXQgbm93IGV4cGxpY2l0bHkgY2hlY2tzIGlmIHRoZSBpbnRlbmRlZCB3cml0ZSB3aWxsIGV4Y2VlZCB0aGUgYWxsb2NhdGVkIGJ1ZmZlciAoYHRjNi1cdTAwM2VyeF9za2ItXHUwMDNldGFpbCArIGxlbmd0aCBcdTAwM2UgdGM2LVx1MDAzZXJ4X3NrYi1cdTAwM2VlbmRgKS4gSWYgc28sIGl0IGNhbGxzIGBvYV90YzZfbG9va19mb3JfbmV3X2ZyYW1lYCDigJMgcHJlc3VtYWJseSB0byBoYW5kbGUgdGhlIG92ZXJmbG93IOKAkyBhbmQgcmV0dXJucyBgLUVBR0FJTmAuIEltcG9ydGFudGx5LCB0aGlzIGAtRUFHQUlOYCBpcyBwcm9wYWdhdGVkIGFsbCB0aGUgd2F5IHVwIHRoZSBjYWxsIGNoYWluIHRocm91Z2ggc2V2ZXJhbCBmdW5jdGlvbnMsIHdoaWNoIG1ha2VzIHNlbnNlIGluIGNvbnRleHQsIHNpbmNlIHRob3NlIGZ1bmN0aW9ucyBhcmUgdGhlIGNvbnN1bWVycyBvZiB0aGlzIGVycm9yLCBhbmQgYXJlIHJlc3BvbnNpYmxlIGZvciBoYW5kbGluZyBhbmQgcmVjb3ZlcmluZyBmcm9tIHRoZSBlcnJvci5cblxuRmluYWxseSwgaW4gYG9hX3RjNl9zdGFydF94bWl0YCwgdGhlIGNoZWNrIGZvciBgdGM2LVx1MDAzZWRpc2FibGVfdHJhZmZpYyB8fCB0YzYtXHUwMDNld2FpdGluZ190eF9za2JgIGhhcyBiZWVuIG1vdmVkICppbnNpZGUqIHRoZSBgc3Bpbl9sb2NrX2JoYC4gVGhpcyBjbGVhbnMgdXAgdGhlIHJhY2UuXG5cblNvLCB0aGUgZnVuY3Rpb25hbCBpbXBhY3QgaXMgdGhpczogdGhpcyBpcyB0byBmaXggYW4gb3V0LW9mLWJvdW5kcyB3cml0ZSBpbiBgb2FfdGM2X3VwZGF0ZV9yeF9za2JgLCBwb3NzaWJseSBjYXVzZWQgYnkgdXNpbmcgYHNrYl9wdXRgIHdpdGhvdXQgcHJvcGVyIGNoZWNrcywgYXMgd2VsbCBhcyBmaXhpbmcgYSByYWNlIGNvbmRpdGlvbiBpbnZvbHZpbmcgYHRjNi1cdTAwM2V3YWl0aW5nX3R4X3NrYmAgaW4gdGhlIHRyYW5zbWl0IHBhdGguIFRoaXMgcmFjZSBjb25kaXRpb24gaXMgbm93IGNvcnJlY3RlZCBieSB0aGUgYXBwcm9wcmlhdGUgbG9ja2luZyBtZWNoYW5pc20uXG5cbk5vdywgbXkgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzOiBpcyB0aGlzIGV2ZW4gcmVsZXZhbnQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gSXMgdGhpcyBgb2FfdGM2YCBkcml2ZXIgc29tZXRoaW5nIHRoYXQgZ2V0cyB1c2VkIHRoZXJlPyBMZXQncyBjaGVjayB3aGF0IGBvYV90YzZgIGFjdHVhbGx5ICppcyouIFNlYXJjaGluZyBxdWlja2x5LCBcIm9hX3RjNlwiIHJlcHJlc2VudHMgT1BFTiBBbGxpYW5jZSAxMEJBU0UtVDF4IE1BQy1QSFkgU2VyaWFsIEludGVyZmFjZS4gSXQgaXMgYSBmcmFtZXdvcmsgZm9yIE1BQy1QSFlzLiBOb3csIGxldCdzIHNlYXJjaCBpbiB0aGUgS2NvbmZpZyBmb3IgYW55IGNsdWVzIG9mIGl0cyB1c2FnZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDIyNSwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU1NiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIyVDA0OjQ5OjQ0LjEyNDA5MTE1NloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MDY4OTIwNzEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwib2FfdGM2XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDgwMSBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvTWFrZWZpbGU9MTA2PW9iai0kKENPTkZJR19ORVRfVkVORE9SX1BFTlNBTkRPKSArPSBwZW5zYW5kby9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9NYWtlZmlsZToxMDc6b2JqLSQoQ09ORklHX09BX1RDNikgKz0gb2FfdGM2Lm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0xMC0jaW5jbHVkZSBcXHUwMDNjbGludXgvcGh5LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjExOiNpbmNsdWRlIFxcdTAwM2NsaW51eC9vYV90YzYuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMTItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM9Mzk9c3RydWN0IGxhbjg2NXhfcHJpdiB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDItXFx0c3RydWN0IHNwaV9kZXZpY2UgKnNwaTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NDM6XFx0c3RydWN0IG9hX3RjNiAqdGM2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00NC19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NDY6c3RhdGljIGludCBsYW44NjV4X3NldF9od19tYWNhZGRyX2xvd19ieXRlcyhzdHJ1Y3Qgb2FfdGM2ICp0YzYsIGNvbnN0IHU4ICptYWMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQ3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy01MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NTI6XFx0cmV0dXJuIG9hX3RjNl93cml0ZV9yZWdpc3Rlcih0YzYsIExBTjg2NVhfUkVHX01BQ19MX1NBRERSMSwgcmVndmFsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNTMtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jPTU1PXN0YXRpYyBpbnQgbGFuODY1eF9zZXRfaHdfbWFjYWRkcihzdHJ1Y3QgbGFuODY1eF9wcml2ICpwcml2LCBjb25zdCB1OCAqbWFjKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTY3LVxcdHJlZ3ZhbCA9IChtYWNbNV0gXFx1MDAzY1xcdTAwM2MgOCkgfCBtYWNbNF07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjY4OlxcdHJldCA9IG9hX3RjNl93cml0ZV9yZWdpc3Rlcihwcml2LVxcdTAwM2V0YzYsIExBTjg2NVhfUkVHX01BQ19IX1NBRERSMSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNjktXFx0XFx0XFx0XFx0ICAgIHJlZ3ZhbCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM9MTMyPXN0YXRpYyBpbnQgbGFuODY1eF9zZXRfc3BlY2lmaWNfbXVsdGljYXN0X2FkZHIoc3RydWN0IGxhbjg2NXhfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0xNDgtXFx0LyogRW5hYmxpbmcgc3BlY2lmaWMgbXVsdGljYXN0IGFkZHJlc3NlcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoxNDk6XFx0cmV0ID0gb2FfdGM2X3dyaXRlX3JlZ2lzdGVyKHByaXYtXFx1MDAzZXRjNiwgTEFOODY1WF9SRUdfTUFDX0hfSEFTSCwgaGFzaF9oaSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTE1MC1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMTU1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoxNTY6XFx0cmV0ID0gb2FfdGM2X3dyaXRlX3JlZ2lzdGVyKHByaXYtXFx1MDAzZXRjNiwgTEFOODY1WF9SRUdfTUFDX0xfSEFTSCwgaGFzaF9sbyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTE1Ny1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jPTE2ND1zdGF0aWMgaW50IGxhbjg2NXhfc2V0X2FsbF9tdWx0aWNhc3RfYWRkcihzdHJ1Y3QgbGFuODY1eF9wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTE2OC1cXHQvKiBFbmFibGluZyBhbGwgbXVsdGljYXN0IGFkZHJlc3NlcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoxNjk6XFx0cmV0ID0gb2FfdGM2X3dyaXRlX3JlZ2lzdGVyKHByaXYtXFx1MDAzZXRjNiwgTEFOODY1WF9SRUdfTUFDX0hfSEFTSCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMTcwLVxcdFxcdFxcdFxcdCAgICAweGZmZmZmZmZmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0xNzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjE3NzpcXHRyZXQgPSBvYV90YzZfd3JpdGVfcmVnaXN0ZXIocHJpdi1cXHUwMDNldGM2LCBMQU44NjVYX1JFR19NQUNfTF9IQVNILFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0xNzgtXFx0XFx0XFx0XFx0ICAgIDB4ZmZmZmZmZmYpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jPTE4Nj1zdGF0aWMgaW50IGxhbjg2NXhfY2xlYXJfYWxsX211bHRpY2FzdF9hZGRyKHN0cnVjdCBsYW44NjV4X3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMTg5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoxOTA6XFx0cmV0ID0gb2FfdGM2X3dyaXRlX3JlZ2lzdGVyKHByaXYtXFx1MDAzZXRjNiwgTEFOODY1WF9SRUdfTUFDX0hfSEFTSCwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTE5MS1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMTk2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoxOTc6XFx0cmV0ID0gb2FfdGM2X3dyaXRlX3JlZ2lzdGVyKHByaXYtXFx1MDAzZXRjNiwgTEFOODY1WF9SRUdfTUFDX0xfSEFTSCwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTE5OC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jPTIwNT1zdGF0aWMgdm9pZCBsYW44NjV4X211bHRpY2FzdF93b3JrX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTIzNy1cXHR9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjIzODpcXHRyZXQgPSBvYV90YzZfd3JpdGVfcmVnaXN0ZXIocHJpdi1cXHUwMDNldGM2LCBMQU44NjVYX1JFR19NQUNfTkVUX0NGRywgcmVndmFsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjM5LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM9MjUxPXN0YXRpYyBuZXRkZXZfdHhfdCBsYW44NjV4X3NlbmRfcGFja2V0KHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjU1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoyNTY6XFx0cmV0dXJuIG9hX3RjNl9zdGFydF94bWl0KHByaXYtXFx1MDAzZXRjNiwgc2tiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjU3LX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYz0yNTk9c3RhdGljIGludCBsYW44NjV4X2h3X2Rpc2FibGUoc3RydWN0IGxhbjg2NXhfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yNjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjI2MzpcXHRpZiAob2FfdGM2X3JlYWRfcmVnaXN0ZXIocHJpdi1cXHUwMDNldGM2LCBMQU44NjVYX1JFR19NQUNfTkVUX0NUTCwgXFx1MDAyNnJlZ3ZhbCkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI2NC1cXHRcXHRyZXR1cm4gLUVOT0RFVjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yNjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjI2ODpcXHRpZiAob2FfdGM2X3dyaXRlX3JlZ2lzdGVyKHByaXYtXFx1MDAzZXRjNiwgTEFOODY1WF9SRUdfTUFDX05FVF9DVEwsIHJlZ3ZhbCkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI2OS1cXHRcXHRyZXR1cm4gLUVOT0RFVjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYz0yOTA9c3RhdGljIGludCBsYW44NjV4X2h3X2VuYWJsZShzdHJ1Y3QgbGFuODY1eF9wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI5My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6Mjk0OlxcdGlmIChvYV90YzZfcmVhZF9yZWdpc3Rlcihwcml2LVxcdTAwM2V0YzYsIExBTjg2NVhfUkVHX01BQ19ORVRfQ1RMLCBcXHUwMDI2cmVndmFsKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjk1LVxcdFxcdHJldHVybiAtRU5PREVWO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI5OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6Mjk5OlxcdGlmIChvYV90YzZfd3JpdGVfcmVnaXN0ZXIocHJpdi1cXHUwMDNldGM2LCBMQU44NjVYX1JFR19NQUNfTkVUX0NUTCwgcmVndmFsKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzAwLVxcdFxcdHJldHVybiAtRU5PREVWO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jPTMzMz1zdGF0aWMgaW50IGxhbjg2NXhfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zNDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjM0OTpcXHRwcml2LVxcdTAwM2V0YzYgPSBvYV90YzZfaW5pdChzcGksIG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTM1MC1cXHRpZiAoIXByaXYtXFx1MDAzZXRjNikge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTM2MS1cXHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MzYyOlxcdHJldCA9IG9hX3RjNl93cml0ZV9yZWdpc3Rlcihwcml2LVxcdTAwM2V0YzYsIExBTjg2NVhfUkVHX01BQ19UU1VfVElNRVJfSU5DUixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzYzLVxcdFxcdFxcdFxcdCAgICBNQUNfVFNVX1RJTUVSX0lOQ1JfQ09VTlRfTkFOT1NFQ09ORFMpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTM2Ni1cXHRcXHRcXHRyZXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozNjc6XFx0XFx0Z290byBvYV90YzZfZXhpdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzY4LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zODEtXFx0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjM4MjpcXHRyZXQgPSBvYV90YzZfemVyb19hbGlnbl9yZWNlaXZlX2ZyYW1lX2VuYWJsZShwcml2LVxcdTAwM2V0YzYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zODMtXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zODQtXFx0XFx0ZGV2X2VycihcXHUwMDI2c3BpLVxcdTAwM2VkZXYsIFxcXCJGYWlsZWQgdG8gc2V0IFpBUkZFOiAlZFxcXFxuXFxcIiwgcmV0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6Mzg1OlxcdFxcdGdvdG8gb2FfdGM2X2V4aXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTM4Ni1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzk0LVxcdFxcdGRldl9lcnIoXFx1MDAyNnNwaS1cXHUwMDNlZGV2LCBcXFwiRmFpbGVkIHRvIGNvbmZpZ3VyZSBNQUM6ICVkXFxcXG5cXFwiLCByZXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozOTU6XFx0XFx0Z290byBvYV90YzZfZXhpdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzk2LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00MDUtXFx0XFx0ZGV2X2VycihcXHUwMDI2c3BpLVxcdTAwM2VkZXYsIFxcXCJSZWdpc3RlciBuZXRkZXYgZmFpbGVkIChyZXQgPSAlZClcXFwiLCByZXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo0MDY6XFx0XFx0Z290byBvYV90YzZfZXhpdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDA3LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00MTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjQxMTpvYV90YzZfZXhpdDpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NDEyOlxcdG9hX3RjNl9leGl0KHByaXYtXFx1MDAzZXRjNik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQxMy1mcmVlX25ldGRldjpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYz00MTg9c3RhdGljIHZvaWQgbGFuODY1eF9yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00MjMtXFx0dW5yZWdpc3Rlcl9uZXRkZXYocHJpdi1cXHUwMDNlbmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NDI0OlxcdG9hX3RjNl9leGl0KHByaXYtXFx1MDAzZXRjNik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQyNS1cXHRmcmVlX25ldGRldihwcml2LVxcdTAwM2VuZXRkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMTItI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BoeS5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjEzOiNpbmNsdWRlIFxcdTAwM2NsaW51eC9vYV90YzYuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0xNC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTExMS0vKiBJbnRlcm5hbCBzdHJ1Y3R1cmUgZm9yIE1BQy1QSFkgZHJpdmVycyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjExMjpzdHJ1Y3Qgb2FfdGM2IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0xMTMtXFx0c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTEzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzoxMzU6ZW51bSBvYV90YzZfaGVhZGVyX3R5cGUge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTEzNi1cXHRPQV9UQzZfQ1RSTF9IRUFERVIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0xMzktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MTQwOmVudW0gb2FfdGM2X3JlZ2lzdGVyX29wIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0xNDEtXFx0T0FfVEM2X0NUUkxfUkVHX1JFQUQgPSAwLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMTQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjE0NTplbnVtIG9hX3RjNl9kYXRhX3ZhbGlkX2luZm8ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTE0Ni1cXHRPQV9UQzZfREFUQV9JTlZBTElELFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMTQ5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjE1MDplbnVtIG9hX3RjNl9kYXRhX3N0YXJ0X3ZhbGlkX2luZm8ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTE1MS1cXHRPQV9UQzZfREFUQV9TVEFSVF9JTlZBTElELFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMTU0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjE1NTplbnVtIG9hX3RjNl9kYXRhX2VuZF92YWxpZF9pbmZvIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0xNTYtXFx0T0FfVEM2X0RBVEFfRU5EX0lOVkFMSUQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0xNTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MTYwOnN0YXRpYyBpbnQgb2FfdGM2X3NwaV90cmFuc2ZlcihzdHJ1Y3Qgb2FfdGM2ICp0YzYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MTYxOlxcdFxcdFxcdCAgICAgICBlbnVtIG9hX3RjNl9oZWFkZXJfdHlwZSBoZWFkZXJfdHlwZSwgdTE2IGxlbmd0aClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0xNjIte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMTgwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjE4MTpzdGF0aWMgaW50IG9hX3RjNl9nZXRfcGFyaXR5KHUzMiBwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTE4Mi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0xOTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MTk0OnN0YXRpYyBfX2JlMzIgb2FfdGM2X3ByZXBhcmVfY3RybF9oZWFkZXIodTMyIGFkZHIsIHU4IGxlbmd0aCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzoxOTU6XFx0XFx0XFx0XFx0XFx0IGVudW0gb2FfdGM2X3JlZ2lzdGVyX29wIHJlZ19vcClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0xOTYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMjA1LVxcdGhlYWRlciB8PSBGSUVMRF9QUkVQKE9BX1RDNl9DVFJMX0hFQURFUl9QQVJJVFksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MjA2OlxcdFxcdFxcdCAgICAgb2FfdGM2X2dldF9wYXJpdHkoaGVhZGVyKSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMjA3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMjEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjIxMTpzdGF0aWMgdm9pZCBvYV90YzZfdXBkYXRlX2N0cmxfd3JpdGVfZGF0YShzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHUzMiB2YWx1ZVtdLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTIxMi1cXHRcXHRcXHRcXHRcXHQgIHU4IGxlbmd0aClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTIxOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzoyMjA6c3RhdGljIHUxNiBvYV90YzZfY2FsY3VsYXRlX2N0cmxfYnVmX3NpemUodTggbGVuZ3RoKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTIyMS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0yMjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MjI5OnN0YXRpYyB2b2lkIG9hX3RjNl9wcmVwYXJlX2N0cmxfc3BpX2J1ZihzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHUzMiBhZGRyZXNzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTIzMC1cXHRcXHRcXHRcXHRcXHR1MzIgdmFsdWVbXSwgdTggbGVuZ3RoLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjIzMTpcXHRcXHRcXHRcXHRcXHRlbnVtIG9hX3RjNl9yZWdpc3Rlcl9vcCByZWdfb3ApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMjMyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTIzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzoyMzU6XFx0KnR4X2J1ZiA9IG9hX3RjNl9wcmVwYXJlX2N0cmxfaGVhZGVyKGFkZHJlc3MsIGxlbmd0aCwgcmVnX29wKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0yMzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMjM3LVxcdGlmIChyZWdfb3AgPT0gT0FfVEM2X0NUUkxfUkVHX1dSSVRFKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjIzODpcXHRcXHRvYV90YzZfdXBkYXRlX2N0cmxfd3JpdGVfZGF0YSh0YzYsIHZhbHVlLCBsZW5ndGgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTIzOS19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMjQwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjI0MTpzdGF0aWMgaW50IG9hX3RjNl9jaGVja19jdHJsX3dyaXRlX3JlcGx5KHN0cnVjdCBvYV90YzYgKnRjNiwgdTggc2l6ZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0yNDIte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMjU2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjI1NzpzdGF0aWMgaW50IG9hX3RjNl9jaGVja19jdHJsX3JlYWRfcmVwbHkoc3RydWN0IG9hX3RjNiAqdGM2LCB1OCBzaXplKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTI1OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0yNzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MjcxOnN0YXRpYyB2b2lkIG9hX3RjNl9jb3B5X2N0cmxfcmVhZF9kYXRhKHN0cnVjdCBvYV90YzYgKnRjNiwgdTMyIHZhbHVlW10sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMjcyLVxcdFxcdFxcdFxcdCAgICAgICB1OCBsZW5ndGgpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0yODAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MjgxOnN0YXRpYyBpbnQgb2FfdGM2X3BlcmZvcm1fY3RybChzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHUzMiBhZGRyZXNzLCB1MzIgdmFsdWVbXSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzoyODI6XFx0XFx0XFx0ICAgICAgIHU4IGxlbmd0aCwgZW51bSBvYV90YzZfcmVnaXN0ZXJfb3AgcmVnX29wKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTI4My17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0yODctXFx0LyogUHJlcGFyZSBjb250cm9sIGNvbW1hbmQgYW5kIGNvcHkgdG8gU1BJIGNvbnRyb2wgYnVmZmVyICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6Mjg4OlxcdG9hX3RjNl9wcmVwYXJlX2N0cmxfc3BpX2J1Zih0YzYsIGFkZHJlc3MsIHZhbHVlLCBsZW5ndGgsIHJlZ19vcCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMjg5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjI5MDpcXHRzaXplID0gb2FfdGM2X2NhbGN1bGF0ZV9jdHJsX2J1Zl9zaXplKGxlbmd0aCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMjkxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTI5Mi1cXHQvKiBQZXJmb3JtIFNQSSB0cmFuc2ZlciAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjI5MzpcXHRyZXQgPSBvYV90YzZfc3BpX3RyYW5zZmVyKHRjNiwgT0FfVEM2X0NUUkxfSEVBREVSLCBzaXplKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0yOTQtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMzAxLVxcdGlmIChyZWdfb3AgPT0gT0FfVEM2X0NUUkxfUkVHX1dSSVRFKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjMwMjpcXHRcXHRyZXR1cm4gb2FfdGM2X2NoZWNrX2N0cmxfd3JpdGVfcmVwbHkodGM2LCBzaXplKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0zMDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMzA0LVxcdC8qIENoZWNrIGVjaG9lZC9yZWNlaXZlZCBjb250cm9sIHJlYWQgY29tbWFuZCByZXBseSBmb3IgZXJyb3JzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MzA1OlxcdHJldCA9IG9hX3RjNl9jaGVja19jdHJsX3JlYWRfcmVwbHkodGM2LCBzaXplKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0zMDYtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTMwOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzozMDk6XFx0b2FfdGM2X2NvcHlfY3RybF9yZWFkX2RhdGEodGM2LCB2YWx1ZSwgbGVuZ3RoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0zMTAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0zMTQtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MzE1OiAqIG9hX3RjNl9yZWFkX3JlZ2lzdGVycyAtIGZ1bmN0aW9uIGZvciByZWFkaW5nIG11bHRpcGxlIGNvbnNlY3V0aXZlIHJlZ2lzdGVycy5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzozMTY6ICogQHRjNjogb2FfdGM2IHN0cnVjdC5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0zMTctICogQGFkZHJlc3M6IGFkZHJlc3Mgb2YgdGhlIGZpcnN0IHJlZ2lzdGVyIHRvIGJlIHJlYWQgaW4gdGhlIE1BQy1QSFkuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0zMjQtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MzI1OmludCBvYV90YzZfcmVhZF9yZWdpc3RlcnMoc3RydWN0IG9hX3RjNiAqdGM2LCB1MzIgYWRkcmVzcywgdTMyIHZhbHVlW10sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMzI2LVxcdFxcdFxcdCAgdTggbGVuZ3RoKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMzM1LVxcdG11dGV4X2xvY2soXFx1MDAyNnRjNi1cXHUwMDNlc3BpX2N0cmxfbG9jayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MzM2OlxcdHJldCA9IG9hX3RjNl9wZXJmb3JtX2N0cmwodGM2LCBhZGRyZXNzLCB2YWx1ZSwgbGVuZ3RoLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTMzNy1cXHRcXHRcXHRcXHQgIE9BX1RDNl9DVFJMX1JFR19SRUFEKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTM0MS19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MzQyOkVYUE9SVF9TWU1CT0xfR1BMKG9hX3RjNl9yZWFkX3JlZ2lzdGVycyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMzQzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTM0NC0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzozNDU6ICogb2FfdGM2X3JlYWRfcmVnaXN0ZXIgLSBmdW5jdGlvbiBmb3IgcmVhZGluZyBhIE1BQy1QSFkgcmVnaXN0ZXIuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MzQ2OiAqIEB0YzY6IG9hX3RjNiBzdHJ1Y3QuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMzQ3LSAqIEBhZGRyZXNzOiByZWdpc3RlciBhZGRyZXNzIG9mIHRoZSBNQUMtUEhZIHRvIGJlIHJlYWQuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0zNTEtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MzUyOmludCBvYV90YzZfcmVhZF9yZWdpc3RlcihzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHUzMiBhZGRyZXNzLCB1MzIgKnZhbHVlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTM1My17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MzU0OlxcdHJldHVybiBvYV90YzZfcmVhZF9yZWdpc3RlcnModGM2LCBhZGRyZXNzLCB2YWx1ZSwgMSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMzU1LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzozNTY6RVhQT1JUX1NZTUJPTF9HUEwob2FfdGM2X3JlYWRfcmVnaXN0ZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTM1Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0zNTgtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MzU5OiAqIG9hX3RjNl93cml0ZV9yZWdpc3RlcnMgLSBmdW5jdGlvbiBmb3Igd3JpdGluZyBtdWx0aXBsZSBjb25zZWN1dGl2ZSByZWdpc3RlcnMuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MzYwOiAqIEB0YzY6IG9hX3RjNiBzdHJ1Y3QuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMzYxLSAqIEBhZGRyZXNzOiBhZGRyZXNzIG9mIHRoZSBmaXJzdCByZWdpc3RlciB0byBiZSB3cml0dGVuIGluIHRoZSBNQUMtUEhZLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMzY4LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjM2OTppbnQgb2FfdGM2X3dyaXRlX3JlZ2lzdGVycyhzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHUzMiBhZGRyZXNzLCB1MzIgdmFsdWVbXSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0zNzAtXFx0XFx0XFx0ICAgdTggbGVuZ3RoKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMzc5LVxcdG11dGV4X2xvY2soXFx1MDAyNnRjNi1cXHUwMDNlc3BpX2N0cmxfbG9jayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MzgwOlxcdHJldCA9IG9hX3RjNl9wZXJmb3JtX2N0cmwodGM2LCBhZGRyZXNzLCB2YWx1ZSwgbGVuZ3RoLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTM4MS1cXHRcXHRcXHRcXHQgIE9BX1RDNl9DVFJMX1JFR19XUklURSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0zODUtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjM4NjpFWFBPUlRfU1lNQk9MX0dQTChvYV90YzZfd3JpdGVfcmVnaXN0ZXJzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0zODctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMzg4LS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjM4OTogKiBvYV90YzZfd3JpdGVfcmVnaXN0ZXIgLSBmdW5jdGlvbiBmb3Igd3JpdGluZyBhIE1BQy1QSFkgcmVnaXN0ZXIuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MzkwOiAqIEB0YzY6IG9hX3RjNiBzdHJ1Y3QuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMzkxLSAqIEBhZGRyZXNzOiByZWdpc3RlciBhZGRyZXNzIG9mIHRoZSBNQUMtUEhZIHRvIGJlIHdyaXR0ZW4uXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0zOTUtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6Mzk2OmludCBvYV90YzZfd3JpdGVfcmVnaXN0ZXIoc3RydWN0IG9hX3RjNiAqdGM2LCB1MzIgYWRkcmVzcywgdTMyIHZhbHVlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTM5Ny17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6Mzk4OlxcdHJldHVybiBvYV90YzZfd3JpdGVfcmVnaXN0ZXJzKHRjNiwgYWRkcmVzcywgXFx1MDAyNnZhbHVlLCAxKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0zOTktfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjQwMDpFWFBPUlRfU1lNQk9MX0dQTChvYV90YzZfd3JpdGVfcmVnaXN0ZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQwMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo0MDI6c3RhdGljIGludCBvYV90YzZfY2hlY2tfcGh5X3JlZ19kaXJlY3RfYWNjZXNzX2NhcGFiaWxpdHkoc3RydWN0IG9hX3RjNiAqdGM2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQwMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy00MDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NDA3OlxcdHJldCA9IG9hX3RjNl9yZWFkX3JlZ2lzdGVyKHRjNiwgT0FfVEM2X1JFR19TVERDQVAsIFxcdTAwMjZyZWd2YWwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQwOC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNDE2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjQxNzpzdGF0aWMgdm9pZCBvYV90YzZfaGFuZGxlX2xpbmtfY2hhbmdlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNDE4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo0MjI6c3RhdGljIGludCBvYV90YzZfbWRpb2J1c19yZWFkKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBhZGRyLCBpbnQgcmVnbnVtKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQyMy17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NDI0OlxcdHN0cnVjdCBvYV90YzYgKnRjNiA9IGJ1cy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy00MjUtXFx0dTMyIHJlZ3ZhbDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQyNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo0Mjg6XFx0cmV0ID0gb2FfdGM2X3JlYWRfcmVnaXN0ZXIodGM2LCBPQV9UQzZfUEhZX1NURF9SRUdfQUREUl9CQVNFIHxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy00MjktXFx0XFx0XFx0XFx0ICAgKHJlZ251bSBcXHUwMDI2IE9BX1RDNl9QSFlfU1REX1JFR19BRERSX01BU0spLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNDM2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjQzNzpzdGF0aWMgaW50IG9hX3RjNl9tZGlvYnVzX3dyaXRlKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBhZGRyLCBpbnQgcmVnbnVtLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQzOC1cXHRcXHRcXHRcXHR1MTYgdmFsKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQzOS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NDQwOlxcdHN0cnVjdCBvYV90YzYgKnRjNiA9IGJ1cy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy00NDEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NDQyOlxcdHJldHVybiBvYV90YzZfd3JpdGVfcmVnaXN0ZXIodGM2LCBPQV9UQzZfUEhZX1NURF9SRUdfQUREUl9CQVNFIHxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy00NDMtXFx0XFx0XFx0XFx0ICAgICAocmVnbnVtIFxcdTAwMjYgT0FfVEM2X1BIWV9TVERfUkVHX0FERFJfTUFTSyksXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy00NDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NDQ3OnN0YXRpYyBpbnQgb2FfdGM2X2dldF9waHlfYzQ1X21tcyhpbnQgZGV2bnVtKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQ0OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy00NjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NDY1OnN0YXRpYyBpbnQgb2FfdGM2X21kaW9idXNfcmVhZF9jNDUoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IGFkZHIsIGludCBkZXZudW0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNDY2LVxcdFxcdFxcdFxcdCAgIGludCByZWdudW0pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNDY3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo0Njg6XFx0c3RydWN0IG9hX3RjNiAqdGM2ID0gYnVzLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQ2OS1cXHR1MzIgcmVndmFsO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNDcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjQ3MjpcXHRyZXQgPSBvYV90YzZfZ2V0X3BoeV9jNDVfbW1zKGRldm51bSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNDczLVxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNDc1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjQ3NjpcXHRyZXQgPSBvYV90YzZfcmVhZF9yZWdpc3Rlcih0YzYsIChyZXQgXFx1MDAzY1xcdTAwM2MgMTYpIHwgcmVnbnVtLCBcXHUwMDI2cmVndmFsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy00NzctXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQ4Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo0ODM6c3RhdGljIGludCBvYV90YzZfbWRpb2J1c193cml0ZV9jNDUoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IGFkZHIsIGludCBkZXZudW0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNDg0LVxcdFxcdFxcdFxcdCAgICBpbnQgcmVnbnVtLCB1MTYgdmFsKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQ4NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NDg2OlxcdHN0cnVjdCBvYV90YzYgKnRjNiA9IGJ1cy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy00ODctXFx0aW50IHJldDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy00ODgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NDg5OlxcdHJldCA9IG9hX3RjNl9nZXRfcGh5X2M0NV9tbXMoZGV2bnVtKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy00OTAtXFx0aWYgKHJldCBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy00OTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NDkzOlxcdHJldHVybiBvYV90YzZfd3JpdGVfcmVnaXN0ZXIodGM2LCAocmV0IFxcdTAwM2NcXHUwMDNjIDE2KSB8IHJlZ251bSwgdmFsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy00OTQtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTQ5NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo0OTY6c3RhdGljIGludCBvYV90YzZfbWRpb2J1c19yZWdpc3RlcihzdHJ1Y3Qgb2FfdGM2ICp0YzYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNDk3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTUwNi1cXHR0YzYtXFx1MDAzZW1kaW9idXMtXFx1MDAzZXByaXYgPSB0YzY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NTA3OlxcdHRjNi1cXHUwMDNlbWRpb2J1cy1cXHUwMDNlcmVhZCA9IG9hX3RjNl9tZGlvYnVzX3JlYWQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NTA4OlxcdHRjNi1cXHUwMDNlbWRpb2J1cy1cXHUwMDNld3JpdGUgPSBvYV90YzZfbWRpb2J1c193cml0ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy01MDktXFx0LyogT1BFTiBBbGxpYW5jZSAxMEJBU0UtVDF4IGNvbXBsaWFuY2UgTUFDLVBIWXMgd2lsbCBoYXZlIGJvdGggQzIyIGFuZFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNTE4LVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjUxOTpcXHR0YzYtXFx1MDAzZW1kaW9idXMtXFx1MDAzZXJlYWRfYzQ1ID0gb2FfdGM2X21kaW9idXNfcmVhZF9jNDU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NTIwOlxcdHRjNi1cXHUwMDNlbWRpb2J1cy1cXHUwMDNld3JpdGVfYzQ1ID0gb2FfdGM2X21kaW9idXNfd3JpdGVfYzQ1O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTUyMS1cXHR0YzYtXFx1MDAzZW1kaW9idXMtXFx1MDAzZW5hbWUgPSBcXFwib2EtdGM2LW1kaW9idXNcXFwiO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNTM2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjUzNzpzdGF0aWMgdm9pZCBvYV90YzZfbWRpb2J1c191bnJlZ2lzdGVyKHN0cnVjdCBvYV90YzYgKnRjNilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy01Mzgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNTQyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjU0MzpzdGF0aWMgaW50IG9hX3RjNl9waHlfaW5pdChzdHJ1Y3Qgb2FfdGM2ICp0YzYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNTQ0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTU0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo1NDc6XFx0cmV0ID0gb2FfdGM2X2NoZWNrX3BoeV9yZWdfZGlyZWN0X2FjY2Vzc19jYXBhYmlsaXR5KHRjNik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNTQ4LVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTU1My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo1NTQ6XFx0cmV0ID0gb2FfdGM2X21kaW9idXNfcmVnaXN0ZXIodGM2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy01NTUtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTU2MC1cXHRcXHRuZXRkZXZfZXJyKHRjNi1cXHUwMDNlbmV0ZGV2LCBcXFwiTm8gUEhZIGZvdW5kXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo1NjE6XFx0XFx0b2FfdGM2X21kaW9idXNfdW5yZWdpc3Rlcih0YzYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTU2Mi1cXHRcXHRyZXR1cm4gLUVOT0RFVjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTU2Ni1cXHRyZXQgPSBwaHlfY29ubmVjdF9kaXJlY3QodGM2LVxcdTAwM2VuZXRkZXYsIHRjNi1cXHUwMDNlcGh5ZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjU2NzpcXHRcXHRcXHRcXHQgXFx1MDAyNm9hX3RjNl9oYW5kbGVfbGlua19jaGFuZ2UsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNTY4LVxcdFxcdFxcdFxcdCBQSFlfSU5URVJGQUNFX01PREVfSU5URVJOQUwpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNTcxLVxcdFxcdFxcdCAgIHRjNi1cXHUwMDNlbWRpb2J1cy1cXHUwMDNlaWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjU3MjpcXHRcXHRvYV90YzZfbWRpb2J1c191bnJlZ2lzdGVyKHRjNik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNTczLVxcdFxcdHJldHVybiByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy01ODAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NTgxOnN0YXRpYyB2b2lkIG9hX3RjNl9waHlfZXhpdChzdHJ1Y3Qgb2FfdGM2ICp0YzYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNTgyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy01ODMtXFx0cGh5X2Rpc2Nvbm5lY3QodGM2LVxcdTAwM2VwaHlkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjU4NDpcXHRvYV90YzZfbWRpb2J1c191bnJlZ2lzdGVyKHRjNik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNTg1LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy01ODYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NTg3OnN0YXRpYyBpbnQgb2FfdGM2X3JlYWRfc3RhdHVzMChzdHJ1Y3Qgb2FfdGM2ICp0YzYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNTg4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTU5MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo1OTI6XFx0cmV0ID0gb2FfdGM2X3JlYWRfcmVnaXN0ZXIodGM2LCBPQV9UQzZfUkVHX1NUQVRVUzAsIFxcdTAwMjZyZWd2YWwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTU5My1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy02MDEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NjAyOnN0YXRpYyBpbnQgb2FfdGM2X3N3X3Jlc2V0X21hY3BoeShzdHJ1Y3Qgb2FfdGM2ICp0YzYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNjAzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTYwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo2MDc6XFx0cmV0ID0gb2FfdGM2X3dyaXRlX3JlZ2lzdGVyKHRjNiwgT0FfVEM2X1JFR19SRVNFVCwgcmVndmFsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy02MDgtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTYxMS1cXHQvKiBQb2xsIGZvciBzb2Z0IHJlc2V0IGNvbXBsZXRlIGZvciBldmVyeSAxbXMgdW50aWwgMXMgdGltZW91dCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjYxMjpcXHRyZXQgPSByZWFkeF9wb2xsX3RpbWVvdXQob2FfdGM2X3JlYWRfc3RhdHVzMCwgdGM2LCByZWd2YWwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNjEzLVxcdFxcdFxcdFxcdCByZWd2YWwgXFx1MDAyNiBTVEFUVVMwX1JFU0VUQyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTYxOS1cXHQvKiBDbGVhciB0aGUgcmVzZXQgY29tcGxldGUgc3RhdHVzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NjIwOlxcdHJldHVybiBvYV90YzZfd3JpdGVfcmVnaXN0ZXIodGM2LCBPQV9UQzZfUkVHX1NUQVRVUzAsIHJlZ3ZhbCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNjIxLX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy02MjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NjIzOnN0YXRpYyBpbnQgb2FfdGM2X3VubWFza19tYWNwaHlfZXJyb3JfaW50ZXJydXB0cyhzdHJ1Y3Qgb2FfdGM2ICp0YzYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNjI0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTYyNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo2Mjg6XFx0cmV0ID0gb2FfdGM2X3JlYWRfcmVnaXN0ZXIodGM2LCBPQV9UQzZfUkVHX0lOVF9NQVNLMCwgXFx1MDAyNnJlZ3ZhbCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNjI5LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy02MzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NjM3OlxcdHJldHVybiBvYV90YzZfd3JpdGVfcmVnaXN0ZXIodGM2LCBPQV9UQzZfUkVHX0lOVF9NQVNLMCwgcmVndmFsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy02MzgtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTYzOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo2NDA6c3RhdGljIGludCBvYV90YzZfZW5hYmxlX2RhdGFfdHJhbnNmZXIoc3RydWN0IG9hX3RjNiAqdGM2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTY0MS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy02NDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NjQ1OlxcdHJldCA9IG9hX3RjNl9yZWFkX3JlZ2lzdGVyKHRjNiwgT0FfVEM2X1JFR19DT05GSUcwLCBcXHUwMDI2dmFsdWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTY0Ni1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNjUxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjY1MjpcXHRyZXR1cm4gb2FfdGM2X3dyaXRlX3JlZ2lzdGVyKHRjNiwgT0FfVEM2X1JFR19DT05GSUcwLCB2YWx1ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNjUzLX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy02NTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NjU1OnN0YXRpYyB2b2lkIG9hX3RjNl9jbGVhbnVwX29uZ29pbmdfcnhfc2tiKHN0cnVjdCBvYV90YzYgKnRjNilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy02NTYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNjYzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjY2NDpzdGF0aWMgdm9pZCBvYV90YzZfY2xlYW51cF9vbmdvaW5nX3R4X3NrYihzdHJ1Y3Qgb2FfdGM2ICp0YzYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNjY1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTY3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo2NzM6c3RhdGljIHZvaWQgb2FfdGM2X2NsZWFudXBfd2FpdGluZ190eF9za2Ioc3RydWN0IG9hX3RjNiAqdGM2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTY3NC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy02ODctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6Njg4OnN0YXRpYyB2b2lkIG9hX3RjNl9mcmVlX3BlbmRpbmdfc2ticyhzdHJ1Y3Qgb2FfdGM2ICp0YzYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNjg5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo2OTA6XFx0b2FfdGM2X2NsZWFudXBfb25nb2luZ190eF9za2IodGM2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo2OTE6XFx0b2FfdGM2X2NsZWFudXBfb25nb2luZ19yeF9za2IodGM2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo2OTI6XFx0b2FfdGM2X2NsZWFudXBfd2FpdGluZ190eF9za2IodGM2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy02OTMtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTY5NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo2OTU6c3RhdGljIHZvaWQgb2FfdGM2X2xvb2tfZm9yX25ld19mcmFtZShzdHJ1Y3Qgb2FfdGM2ICp0YzYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNjk2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy02OTctXFx0dGM2LVxcdTAwM2VyeF9idWZfb3ZlcmZsb3cgPSB0cnVlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjY5ODpcXHRvYV90YzZfY2xlYW51cF9vbmdvaW5nX3J4X3NrYih0YzYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTY5OS19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy03MDQtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NzA1OnN0YXRpYyB2b2lkIG9hX3RjNl9kaXNhYmxlX3RyYWZmaWMoc3RydWN0IG9hX3RjNiAqdGM2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTcwNi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy03MDktXFx0dGM2LVxcdTAwM2VkaXNhYmxlX3RyYWZmaWMgPSB0cnVlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjcxMDpcXHRvYV90YzZfZnJlZV9wZW5kaW5nX3NrYnModGM2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo3MTE6XFx0b2FfdGM2X3dyaXRlX3JlZ2lzdGVyKHRjNiwgT0FfVEM2X1JFR19JTlRfTUFTSzAsIHJlZ3ZhbCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NzEyOlxcdG9hX3RjNl9yZWFkX3JlZ2lzdGVyKHRjNiwgT0FfVEM2X1JFR19TVEFUVVMwLCBcXHUwMDI2cmVndmFsKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo3MTM6XFx0b2FfdGM2X3dyaXRlX3JlZ2lzdGVyKHRjNiwgT0FfVEM2X1JFR19TVEFUVVMwLCByZWd2YWwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTcxNC1cXHRkZXZfZXJyKFxcdTAwMjZ0YzYtXFx1MDAzZXNwaS1cXHUwMDNlZGV2LCBcXFwiRGV2aWNlIGludGVycnVwdCBkaXNhYmxlZCB0byBhdm9pZCBpbnRlcnJ1cHQgc3Rvcm1cXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTcxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzo3MTc6c3RhdGljIGludCBvYV90YzZfcHJvY2Vzc19leHRlbmRlZF9zdGF0dXMoc3RydWN0IG9hX3RjNiAqdGM2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTcxOC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy03MjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NzIyOlxcdHJldCA9IG9hX3RjNl9yZWFkX3JlZ2lzdGVyKHRjNiwgT0FfVEM2X1JFR19TVEFUVVMwLCBcXHUwMDI2dmFsdWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTcyMy1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy03MjktXFx0LyogQ2xlYXIgdGhlIGVycm9yIGludGVycnVwdHMgc3RhdHVzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NzMwOlxcdHJldCA9IG9hX3RjNl93cml0ZV9yZWdpc3Rlcih0YzYsIE9BX1RDNl9SRUdfU1RBVFVTMCwgdmFsdWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTczMS1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy03MzctXFx0aWYgKEZJRUxEX0dFVChTVEFUVVMwX1JYX0JVRkZFUl9PVkVSRkxPV19FUlJPUiwgdmFsdWUpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6NzM4OlxcdFxcdG9hX3RjNl9sb29rX2Zvcl9uZXdfZnJhbWUodGM2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy03MzktXFx0XFx0bmV0X2Vycl9yYXRlbGltaXRlZChcXFwiJXM6IFJlY2VpdmUgYnVmZmVyIG92ZXJmbG93IGVycm9yXFxcXG5cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNzYxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjc2MjpzdGF0aWMgaW50IG9hX3RjNl9wcm9jZXNzX3J4X2NodW5rX2Zvb3RlcihzdHJ1Y3Qgb2FfdGM2ICp0YzYsIHUzMiBmb290ZXIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtNzYzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTc3My1cXHRpZiAoRklFTERfR0VUKE9BX1RDNl9EQVRBX0ZPT1RFUl9FWFRFTkRFRF9TVFMsIGZvb3RlcikpIHtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjJUMDQ6NDk6NDQuNTMwOTk0MTY4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQyMDgwMTIyOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3Mgc2VlIHdoYXQncyBvbiBteSBtaW5kIHJlZ2FyZGluZyB0aGlzIGNvZGUgc25pcHBldC5cblxuKipBbmFseXppbmcgS2VybmVsIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzKipcblxuQWxyaWdodCwgc28gdGhlIGBvYV90YzZgIGNvZGUgaXMgZGVmaW5pdGVseSB0aWVkIHRvIHRoZSBgbGFuODY1eC5jYCBkcml2ZXIgd2l0aGluIHRoZSBldGhlcm5ldCBuZXR3b3JrIHN1YnN5c3RlbS4gTXkgaW1tZWRpYXRlIHF1ZXN0aW9uLCBvZiBjb3Vyc2UsIGlzIHdoYXQgY29uZGl0aW9ucyBuZWVkIHRvIGJlIG1ldCBmb3IgdGhhdCBjb2RlIHRvIGV2ZW4gYmUgY29tcGlsZWQgaW50byB0aGUga2VybmVsPyBJdCdzIHRpbWUgdG8gY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gZmxhZ3MuIEkgbmVlZCB0byBkZXRlcm1pbmUgaWYgYENPTkZJR19PQV9UQzZgIG9yIGBDT05GSUdfTEFOODY1WGAgYXJlIHNldCB3aXRoaW4gdGhlIGJ1aWxkIGNvbmZpZ3VyYXRpb24sIGFzIHRoZXkgd2lsbCBsaWtlbHkgY29udHJvbCB0aGUgaW5jbHVzaW9uIG9mIHRoZSByZWxldmFudCBjb2RlLiBXaXRob3V0IGtub3dpbmcgdGhlc2UgZGVwZW5kZW5jaWVzIEkgd29uJ3Qga25vdyBpZiB0aGlzIGNvZGUgaXMgaW4gdXNlLCBvciBldmVuIHZpYWJsZSwgaW4gdGhlIGN1cnJlbnQgYnVpbGQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4NDcyLCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjJUMDQ6NDk6NDcuOTUxNzk3MzQ2WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNjk0NzMxNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgT0FfVEM2XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9LY29uZmlnPTEzOT1jb25maWcgRVRIT0NcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L0tjb25maWctMTQ4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L0tjb25maWc6MTQ5OmNvbmZpZyBPQV9UQzZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9LY29uZmlnLTE1MC1cXHR0cmlzdGF0ZSBcXFwiT1BFTiBBbGxpYW5jZSBUQzYgMTBCQVNFLVQxeCBNQUMtUEhZIHN1cHBvcnRcXFwiIGlmIENPTVBJTEVfVEVTVFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMlQwNDo0OTo0OC4wNjg3NDk3OTNaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozOTExODQ0NDQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgc3VtbWFyeSwgYXMgdGhvdWdoIEknbSB0aGlua2luZyB0aHJvdWdoIHRoaXMgcHJvY2VzczpcblxuKipEaXZpbmcgaW50byB0aGUgQ29uZmlndXJhdGlvbiBPcHRpb25zKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBgY29uZmlnIE9BX1RDNmAgc2V0dGluZywgYW5kIGl0J3MgZmxhZ2dlZCBhcyBhIHRyaXN0YXRlIGRlcGVuZGVudCBvbiBgQ09NUElMRV9URVNUYC4gUmlnaHQsIHNvIGl0J3MgcHJvYmFibHkgcmVsYXRlZCB0byBzdXBwb3J0aW5nIHRoZSBPUEVOIEFsbGlhbmNlIFRDNiAxMEJBU0UtVDF4IE1BQy1QSFkgaW50ZXJmYWNlLiBUaGF0IG1ha2VzIHNlbnNlLCBnaXZlbiB0aGUgY29udGV4dC4gTGV0IG1lIGp1c3QgY29uZmlybSBteSB1bmRlcnN0YW5kaW5nIGJ5IHRha2luZyBhIGxvb2sgYXQgdGhlIGBjb25maWcgTEFOODY1WGAgb3B0aW9ucyBhbmQgdGhlaXIgYXNzb2NpYXRlZCBkZXBlbmRlbmNpZXMuIEkgd2FudCB0byBtYWtlIHN1cmUgSSdtIGZvbGxvd2luZyB0aGUgYmlnZ2VyIHBpY3R1cmUuIFVuZGVyc3RhbmRpbmcgaG93IHRoaXMgcGFydGljdWxhciBjb25maWd1cmF0aW9uIGludGVyYWN0cyB3aXRoIG90aGVyIG1vZHVsZXMgaXMgY3J1Y2lhbCBmb3IgdGhlIG92ZXJhbGwgc3lzdGVtIGFyY2hpdGVjdHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg4MzYsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yMlQwNDo0OTo1MS45ODA1OTYzNDFaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTIxMjU0MTY3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBMQU44NjVYXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9LY29uZmlnPTY9aWYgTkVUX1ZFTkRPUl9NSUNST0NISVBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9LY29uZmlnLTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvS2NvbmZpZzo4OmNvbmZpZyBMQU44NjVYXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvS2NvbmZpZy05LVxcdHRyaXN0YXRlIFxcXCJMQU44NjV4IHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIyVDA0OjQ5OjUyLjEwMTg1NTg5OFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ3OTc1NTc1MzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzIG9uIGRpc3NlY3RpbmcgdGhlIGRlcGVuZGVuY2llcyBvZiB0aGlzIGBMQU44NjVYYCB0aGluZzpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBMQU44NjVYIERlcGVuZGVuY2llcyoqXG5cbkFscmlnaHQsIEknbSB0aGlua2luZywgXCJMZXQncyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gV2hhdCBleGFjdGx5IGlzIHRoaXMgYExBTjg2NVhgIGRlcGVuZGVudCB1cG9uP1wiIEl0J3MgdGhlIGZpcnN0IHN0ZXAgaW4gdW5kZXJzdGFuZGluZyB0aGUgb3ZlcmFsbCBwaWN0dXJlLCBpbiB0cm91Ymxlc2hvb3RpbmcsIGFuZCBpbiBkZXNpZ25pbmcgYSByb2J1c3Qgc29sdXRpb24gdXNpbmcgaXQuIEkgbmVlZCB0byBrbm93IHRoZSBmb3VuZGF0aW9uLCB3aGF0IGl0IGxlYW5zIG9uLCBhbmQgd2hlcmUgaXQgZ2V0cyBpdHMgc3VwcG9ydC4gU28gSSdsbCBzdGFydCBieSBkaWdnaW5nIGZvciB0aG9zZSBjcml0aWNhbCBidWlsZGluZyBibG9ja3MuIFVuZGVyc3RhbmRpbmcgZGVwZW5kZW5jaWVzIGlzIGtleSB0byBhbnkgYXJjaGl0ZWN0dXJhbCByZXZpZXcsIGFuZCBldmVuIGhlbHBzIHdpdGggZGVidWdnaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTE5OSwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIyVDA0OjQ5OjU2Ljg5OTQxNTQ3N1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MjgxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDEwMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbiAgIDI6XFx0I1xcbiAgIDM6XFx0IyBNaWNyb2NoaXAgTEFOODY1eCBEcml2ZXIgU3VwcG9ydFxcbiAgIDQ6XFx0I1xcbiAgIDU6XFx0XFxuICAgNjpcXHRpZiBORVRfVkVORE9SX01JQ1JPQ0hJUFxcbiAgIDc6XFx0XFxuICAgODpcXHRjb25maWcgTEFOODY1WFxcbiAgIDk6XFx0XFx0dHJpc3RhdGUgXFxcIkxBTjg2NXggc3VwcG9ydFxcXCJcXG4gIDEwOlxcdFxcdGRlcGVuZHMgb24gU1BJXFxuICAxMTpcXHRcXHRzZWxlY3QgT0FfVEM2XFxuICAxMjpcXHRcXHRoZWxwXFxuICAxMzpcXHRcXHQgIFN1cHBvcnQgZm9yIHRoZSBNaWNyb2NoaXAgTEFOODY1MC8xIFJldi5CMC9CMSBNQUNQSFkgRXRoZXJuZXQgY2hpcC4gSXRcXG4gIDE0OlxcdFxcdCAgdXNlcyBPUEVOIEFsbGlhbmNlIDEwQkFTRS1UMXggU2VyaWFsIEludGVyZmFjZSBzcGVjaWZpY2F0aW9uLlxcbiAgMTU6XFx0XFxuICAxNjpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuIFRoZSBtb2R1bGUgd2lsbCBiZVxcbiAgMTc6XFx0XFx0ICBjYWxsZWQgbGFuODY1eC5cXG4gIDE4OlxcdFxcbiAgMTk6XFx0ZW5kaWYgIyBORVRfVkVORE9SX01JQ1JPQ0hJUFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMlQwNDo0OTo1Ni44OTk0ODQxNTdaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzI2NTM4Njk0OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBTUEkgRGVlcCBEaXZlKipcblxuT2theSwgc28gSSdtIHRoaW5raW5nIGFib3V0IGhvdyB0byBhcHByb2FjaCB0aGlzIGZyb20gYSB0ZXN0aW5nIHBlcnNwZWN0aXZlLCBzcGVjaWZpY2FsbHkgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gVGhlIGtleSBxdWVzdGlvbiBpcyBhbHdheXM6ICpDYW4gSSByZWFjaCBTUEk/KiBBbmQgeWVzLCBpdCBzZWVtcyBsaWtlIHRoZXJlIGFyZSBvcHRpb25zLiBJIGNvdWxkIGxldmVyYWdlIGBzcGktbW9ja3VwYCwgYHNwaS1sb29wYmFjay10ZXN0YCwgb3IgZXZlbiBgc3BpZGV2YC4gU3l6a2FsbGVyLCBvZiBjb3Vyc2UsICpzaG91bGQqIGJlIGluIHRoZSBtaXgsIGJ1dCBJJ20gdHJ5aW5nIHRvIHJlbWVtYmVyIGlmIGl0IGhhcyBhIGRpcmVjdCBTUEkgaW5qZWN0aW9uIGNhcGFiaWxpdHksIHNvbWV0aGluZyBha2luIHRvIFVTQiBnYWRnZXQgb3IgbWFjODAyMTFfaHdzaW0sIGJ1dCB3YWl0Li4uIEknbSBwcmV0dHkgc3VyZSB0aGVyZSBpc24ndCBhICpzdGFuZGFyZCogU1BJIHNvZnR3YXJlIGluamVjdGlvbiBmcmFtZXdvcmsgdW5sZXNzIHRoZXJlJ3Mgc29tZSB2ZXJ5IHNwZWNpZmljIG1vY2sgZHJpdmVyLlxuXG5XYWl0LCBTeXprYWxsZXIgZG9lc24ndCBoYXZlICpnZW5lcmljKiBTUEkgcGFja2V0IGluamVjdGlvbiwgYnV0IEkgZG8gcmVtZW1iZXIgaXQgZnV6emluZyBTUEkgZHJpdmVycyBpZiB0aGV5IGV4cG9zZSBhIGNoYXJhY3RlciBkZXZpY2Ugb3IgdGhlcmUncyBhIG1vY2t1cC4gU28gaXQgKmNhbiogZnV6eiBTUEksIGlmIHRoZSBkZXZpY2UgaXMgaW5zdGFudGlhdGVkLlxuXG5XaGljaCBicmluZ3MgbWUgdG8gdGhlIGNvcmUgcHJvYmxlbS4gSG93IGlzIGBsYW44NjV4YCBpbnN0YW50aWF0ZWQ/IEl0ICppcyogYW4gU1BJIGRldmljZS4gVGhlIHVzdWFsIHN1c3BlY3RzIGZvciBpbnN0YW50aWF0aW9uIGFyZSBkZXZpY2UgdHJlZSBvciBBQ1BJLiBEb2VzIFN5emthbGxlciBoYXZlIGEgd2F5IHRvIGluamVjdCBkZXZpY2UgdHJlZSBub2Rlcywgb3IgdXNlIGBzcGlfbmV3X2RldmljZWA/IEkgZG9uJ3QgdGhpbmsgc28uLi4gaXQgc2VlbXMgaXQgbGFja3MgYSAqZ2VuZXJpYyogd2F5IHRvIGluc3RhbnRpYXRlIGFyYml0cmFyeSBTUEkgZGV2aWNlcywgdW5sZXNzIHRoZXJlJ3MgYSBkZWRpY2F0ZWQgcHNldWRvLWRldmljZSBvciBhIGBzeXpfZGV2X2luaXRgIHRyaWNrIHRvIGJlIGRvbmUuXG5cbkhvbGQgb24gYSBzZWNvbmQsIHdhc24ndCB0aGVyZSBzb21ldGhpbmcgYWJvdXQgU3l6a2FsbGVyIGFkZGluZyAqc29tZSogU1BJIGZ1enppbmcgc3VwcG9ydCByZWNlbnRseT8gTWF5YmUgaXQganVzdCBmdXp6ZXMgdGhlIG5ldGRldiBpZiBpdCBpcyBpbnN0YW50aWF0ZWQsIHRoYXQncyB3aGF0J3MgcmluZ2luZyB0aGUgYmVsbC4gQnV0IGlmIGl0J3Mgbm90IGluc3RhbnRpYXRlZCwgdGhlIGNvZGUgaXMgZWZmZWN0aXZlbHkgdW5yZWFjaGFibGUhXG5cblNvLCB0aGUgbmV4dCBzdGVwIGlzIGNsZWFyLiBJIG5lZWQgdG8gZmlndXJlIG91dCAqaG93KiB0byBpbnN0YW50aWF0ZSBgbGFuODY1eGAuIFRoYXQncyB0aGUga2V5IHRvIGV2ZXJ5dGhpbmcgaGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTk2NjEsIk91dHB1dFRva2VucyI6MjUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMDcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yMlQwNDo1MDowNC4xNjQ4NzQ3MzVaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2ODA5MTc0MjMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibGFuODY1eFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiTUFJTlRBSU5FUlM9MTc0Njk9RjpcXHREb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21pY3JvY2hpcCxsYW44NjUwLnlhbWxcXG5NQUlOVEFJTkVSUzoxNzQ3MDpGOlxcdGRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguY1xcbk1BSU5UQUlORVJTLTE3NDcxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL0tjb25maWc9NDU9Y29uZmlnIExBTjc0M1hcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9LY29uZmlnLTU5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9LY29uZmlnOjYwOnNvdXJjZSBcXFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvS2NvbmZpZ1xcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvS2NvbmZpZy02MS1zb3VyY2UgXFxcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L0tjb25maWdcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvTWFrZWZpbGU9MTA9bGFuNzQzeC1vYmpzIDo9IGxhbjc0M3hfbWFpbi5vIGxhbjc0M3hfZXRodG9vbC5vIGxhbjc0M3hfcHRwLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvTWFrZWZpbGUtMTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL01ha2VmaWxlOjEyOm9iai0kKENPTkZJR19MQU44NjVYKSArPSBsYW44NjV4L1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9NYWtlZmlsZS0xMy1vYmotJChDT05GSUdfTEFOOTY2WF9TV0lUQ0gpICs9IGxhbjk2NngvXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9LY29uZmlnPTg9Y29uZmlnIExBTjg2NVhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L0tjb25maWctMTYtXFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLiBUaGUgbW9kdWxlIHdpbGwgYmVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9LY29uZmlnOjE3OlxcdCAgY2FsbGVkIGxhbjg2NXguXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvS2NvbmZpZy0xOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L01ha2VmaWxlLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvTWFrZWZpbGU6NjpvYmotJChDT05GSUdfTEFOODY1WCkgKz0gbGFuODY1eC5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjM5OnN0cnVjdCBsYW44NjV4X3ByaXYge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00MC1cXHRzdHJ1Y3Qgd29ya19zdHJ1Y3QgbXVsdGljYXN0X3dvcms7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjQ2OnN0YXRpYyBpbnQgbGFuODY1eF9zZXRfaHdfbWFjYWRkcl9sb3dfYnl0ZXMoc3RydWN0IG9hX3RjNiAqdGM2LCBjb25zdCB1OCAqbWFjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00Ny17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjU1OnN0YXRpYyBpbnQgbGFuODY1eF9zZXRfaHdfbWFjYWRkcihzdHJ1Y3QgbGFuODY1eF9wcml2ICpwcml2LCBjb25zdCB1OCAqbWFjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy01Ni17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNjEtXFx0LyogQ29uZmlndXJlIE1BQyBhZGRyZXNzIGxvdyBieXRlcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo2MjpcXHRyZXQgPSBsYW44NjV4X3NldF9od19tYWNhZGRyX2xvd19ieXRlcyhwcml2LVxcdTAwM2V0YzYsIG1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTYzLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNzUtXFx0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjc2OlxcdHJlc3RvcmVfcmV0ID0gbGFuODY1eF9zZXRfaHdfbWFjYWRkcl9sb3dfYnl0ZXMocHJpdi1cXHUwMDNldGM2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy03Ny1cXHRcXHRcXHRcXHRcXHRcXHQgICAgICAgcHJpdi1cXHUwMDNlbmV0ZGV2LVxcdTAwM2VkZXZfYWRkcik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtODMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjg0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgbGFuODY1eF9ldGh0b29sX29wcyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtODUtXFx0LmdldF9saW5rX2tzZXR0aW5ncyA9IHBoeV9ldGh0b29sX2dldF9saW5rX2tzZXR0aW5ncyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy04OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6ODk6c3RhdGljIGludCBsYW44NjV4X3NldF9tYWNfYWRkcmVzcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCB2b2lkICphZGRyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy05MC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjkxOlxcdHN0cnVjdCBsYW44NjV4X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy05Mi1cXHRzdHJ1Y3Qgc29ja2FkZHIgKmFkZHJlc3MgPSBhZGRyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTEwMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MTAyOlxcdHJldCA9IGxhbjg2NXhfc2V0X2h3X21hY2FkZHIocHJpdiwgYWRkcmVzcy1cXHUwMDNlc2FfZGF0YSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTEwMy1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jPTExMT1zdGF0aWMgdTMyIGdldF9hZGRyZXNzX2JpdCh1OCBhZGRyW0VUSF9BTEVOXSwgdTMyIGJpdClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0xMTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjExNjpzdGF0aWMgdTMyIGxhbjg2NXhfaGFzaCh1OCBhZGRyW0VUSF9BTEVOXSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMTE3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0xMzEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjEzMjpzdGF0aWMgaW50IGxhbjg2NXhfc2V0X3NwZWNpZmljX211bHRpY2FzdF9hZGRyKHN0cnVjdCBsYW44NjV4X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTEzMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMTM5LVxcdG5ldGRldl9mb3JfZWFjaF9tY19hZGRyKGhhLCBwcml2LVxcdTAwM2VuZXRkZXYpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MTQwOlxcdFxcdHUzMiBiaXRfbnVtID0gbGFuODY1eF9oYXNoKGhhLVxcdTAwM2VhZGRyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMTQxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTE2My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MTY0OnN0YXRpYyBpbnQgbGFuODY1eF9zZXRfYWxsX211bHRpY2FzdF9hZGRyKHN0cnVjdCBsYW44NjV4X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTE2NS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMTg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoxODY6c3RhdGljIGludCBsYW44NjV4X2NsZWFyX2FsbF9tdWx0aWNhc3RfYWRkcihzdHJ1Y3QgbGFuODY1eF9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0xODcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTIwNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MjA1OnN0YXRpYyB2b2lkIGxhbjg2NXhfbXVsdGljYXN0X3dvcmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTIwNi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjIwNzpcXHRzdHJ1Y3QgbGFuODY1eF9wcml2ICpwcml2ID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBsYW44NjV4X3ByaXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTIwOC1cXHRcXHRcXHRcXHRcXHRcXHQgbXVsdGljYXN0X3dvcmspO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTIxOC1cXHRcXHQvKiBFbmFibGluZyBhbGwgbXVsdGljYXN0IG1vZGUgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MjE5OlxcdFxcdGlmIChsYW44NjV4X3NldF9hbGxfbXVsdGljYXN0X2FkZHIocHJpdikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTIyMC1cXHRcXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjI2LVxcdFxcdC8qIEVuYWJsaW5nIHNwZWNpZmljIG11bHRpY2FzdCBtb2RlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjIyNzpcXHRcXHRpZiAobGFuODY1eF9zZXRfc3BlY2lmaWNfbXVsdGljYXN0X2FkZHIocHJpdikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTIyOC1cXHRcXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjM0LVxcdFxcdC8qIEVuYWJsaW5nIGxvY2FsIG1hYyBhZGRyZXNzIG9ubHkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MjM1OlxcdFxcdGlmIChsYW44NjV4X2NsZWFyX2FsbF9tdWx0aWNhc3RfYWRkcihwcml2KSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjM2LVxcdFxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yNDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjI0NDpzdGF0aWMgdm9pZCBsYW44NjV4X3NldF9tdWx0aWNhc3RfbGlzdChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yNDUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoyNDY6XFx0c3RydWN0IGxhbjg2NXhfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI0Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yNTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjI1MTpzdGF0aWMgbmV0ZGV2X3R4X3QgbGFuODY1eF9zZW5kX3BhY2tldChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yNTItXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI1My17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjI1NDpcXHRzdHJ1Y3QgbGFuODY1eF9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjU1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI1OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MjU5OnN0YXRpYyBpbnQgbGFuODY1eF9od19kaXNhYmxlKHN0cnVjdCBsYW44NjV4X3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI2MC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjczLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoyNzQ6c3RhdGljIGludCBsYW44NjV4X25ldF9jbG9zZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yNzUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoyNzY6XFx0c3RydWN0IGxhbjg2NXhfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI3Ny1cXHRpbnQgcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI4MC1cXHRwaHlfc3RvcChuZXRkZXYtXFx1MDAzZXBoeWRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjI4MTpcXHRyZXQgPSBsYW44NjV4X2h3X2Rpc2FibGUocHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI4Mi1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjg5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoyOTA6c3RhdGljIGludCBsYW44NjV4X2h3X2VuYWJsZShzdHJ1Y3QgbGFuODY1eF9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yOTEte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTMwNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MzA1OnN0YXRpYyBpbnQgbGFuODY1eF9uZXRfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zMDYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozMDc6XFx0c3RydWN0IGxhbjg2NXhfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTMwOC1cXHRpbnQgcmV0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zMDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjMxMDpcXHRyZXQgPSBsYW44NjV4X2h3X2VuYWJsZShwcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzExLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zMjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjMyMzpzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIGxhbjg2NXhfbmV0ZGV2X29wcyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MzI0OlxcdC5uZG9fb3BlblxcdFxcdD0gbGFuODY1eF9uZXRfb3BlbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MzI1OlxcdC5uZG9fc3RvcFxcdFxcdD0gbGFuODY1eF9uZXRfY2xvc2UsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjMyNjpcXHQubmRvX3N0YXJ0X3htaXRcXHRcXHQ9IGxhbjg2NXhfc2VuZF9wYWNrZXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjMyNzpcXHQubmRvX3NldF9yeF9tb2RlXFx0PSBsYW44NjV4X3NldF9tdWx0aWNhc3RfbGlzdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MzI4OlxcdC5uZG9fc2V0X21hY19hZGRyZXNzXFx0PSBsYW44NjV4X3NldF9tYWNfYWRkcmVzcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzI5LVxcdC5uZG9fdmFsaWRhdGVfYWRkclxcdD0gZXRoX3ZhbGlkYXRlX2FkZHIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozMzM6c3RhdGljIGludCBsYW44NjV4X3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTMzNC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTMzNS1cXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozMzY6XFx0c3RydWN0IGxhbjg2NXhfcHJpdiAqcHJpdjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzM3LVxcdGludCByZXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTMzOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MzM5OlxcdG5ldGRldiA9IGFsbG9jX2V0aGVyZGV2KHNpemVvZihzdHJ1Y3QgbGFuODY1eF9wcml2KSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTM0MC1cXHRpZiAoIW5ldGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zNDYtXFx0c3BpX3NldF9kcnZkYXRhKHNwaSwgcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjM0NzpcXHRJTklUX1dPUksoXFx1MDAyNnByaXYtXFx1MDAzZW11bHRpY2FzdF93b3JrLCBsYW44NjV4X211bHRpY2FzdF93b3JrX2hhbmRsZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zNDgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzkxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozOTI6XFx0cmV0ID0gbGFuODY1eF9zZXRfaHdfbWFjYWRkcihwcml2LCBuZXRkZXYtXFx1MDAzZWRldl9hZGRyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzkzLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zOTktXFx0bmV0ZGV2LVxcdTAwM2VpcnEgPSBzcGktXFx1MDAzZWlycTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NDAwOlxcdG5ldGRldi1cXHUwMDNlbmV0ZGV2X29wcyA9IFxcdTAwMjZsYW44NjV4X25ldGRldl9vcHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjQwMTpcXHRuZXRkZXYtXFx1MDAzZWV0aHRvb2xfb3BzID0gXFx1MDAyNmxhbjg2NXhfZXRodG9vbF9vcHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQwMi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00MTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjQxODpzdGF0aWMgdm9pZCBsYW44NjV4X3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00MTkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo0MjA6XFx0c3RydWN0IGxhbjg2NXhfcHJpdiAqcHJpdiA9IHNwaV9nZXRfZHJ2ZGF0YShzcGkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00MjEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDI3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo0Mjg6c3RhdGljIGNvbnN0IHN0cnVjdCBzcGlfZGV2aWNlX2lkIGxhbjg2NXhfaWRzW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQyOS1cXHR7IC5uYW1lID0gXFxcImxhbjg2NTBcXFwiIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDMyLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjQzMzpNT0RVTEVfREVWSUNFX1RBQkxFKHNwaSwgbGFuODY1eF9pZHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00MzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjQzNTpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBsYW44NjV4X2R0X2lkc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00MzYtXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtaWNyb2NoaXAsbGFuODY1MFxcXCIgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00MzktfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NDQwOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGxhbjg2NXhfZHRfaWRzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDQxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo0NDI6c3RhdGljIHN0cnVjdCBzcGlfZHJpdmVyIGxhbjg2NXhfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00NDMtXFx0LmRyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDQ0LVxcdFxcdC5uYW1lID0gRFJWX05BTUUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjQ0NTpcXHRcXHQub2ZfbWF0Y2hfdGFibGUgPSBsYW44NjV4X2R0X2lkcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDQ2LVxcdCB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo0NDc6XFx0LnByb2JlID0gbGFuODY1eF9wcm9iZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NDQ4OlxcdC5yZW1vdmUgPSBsYW44NjV4X3JlbW92ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NDQ5OlxcdC5pZF90YWJsZSA9IGxhbjg2NXhfaWRzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00NTAtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NDUxOm1vZHVsZV9zcGlfZHJpdmVyKGxhbjg2NXhfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDUyLVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYz03Nz1zdGF0aWMgY29uc3QgdTE2IGxhbjg2N3hfcmV2YjFfZml4dXBfbWFza3NbMTJdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy04Ny0gKi9cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjg4OnN0YXRpYyBjb25zdCB1MzIgbGFuODY1eF9yZXZiX2ZpeHVwX3JlZ2lzdGVyc1sxN10gPSB7XFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy04OS1cXHQweDAwRDAsIDB4MDBFMCwgMHgwMEU5LCAweDAwRjUsXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTk1LVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6OTY6c3RhdGljIGNvbnN0IHUxNiBsYW44NjV4X3JldmJfZml4dXBfdmFsdWVzWzE3XSA9IHtcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTk3LVxcdDB4M0YzMSwgMHhDMDAwLCAweDlFNTAsIDB4MUNGOCxcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMTAzLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MTA0OnN0YXRpYyBjb25zdCB1MTYgbGFuODY1eF9yZXZiX2ZpeHVwX2NmZ19yZWdzWzJdID0ge1xcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMTA1LVxcdDB4MDA4NCwgMHgwMDhBLFxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0xMDctXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoxMDg6c3RhdGljIGNvbnN0IHUzMiBsYW44NjV4X3JldmJfc3FpX2ZpeHVwX3JlZ3NbMTJdID0ge1xcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMTA5LVxcdDB4MDBCMCwgMHgwMEIxLCAweDAwQjIsIDB4MDBCMyxcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMTEzLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MTE0OnN0YXRpYyBjb25zdCB1MTYgbGFuODY1eF9yZXZiX3NxaV9maXh1cF92YWx1ZXNbMTJdID0ge1xcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMTE1LVxcdDB4MDEwMywgMHgwOTEwLCAweDFEMjYsIDB4MDAyQSxcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMTE5LVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MTIwOnN0YXRpYyBjb25zdCB1MTYgbGFuODY1eF9yZXZiX3NxaV9maXh1cF9jZmdfcmVnc1szXSA9IHtcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTEyMS1cXHQweDAwQUQsIDB4MDBBRSwgMHgwMEFGLFxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYz0xMzQ9c3RhdGljIGNvbnN0IHUxNiBsYW44Njd4X3JldmQwX2ZpeHVwX3ZhbHVlc1s4XSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMTQ2LSAqL1xcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MTQ3OnN0YXRpYyBpbnQgbGFuODY1eF9yZXZiX2luZGlyZWN0X3JlYWQoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwgdTE2IGFkZHIpXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0xNDgte1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0xNjYtICovXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoxNjc6c3RhdGljIGludCBsYW44NjV4X2dlbmVyYXRlX2NmZ19vZmZzZXRzKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsIHM4IG9mZnNldHNbXSlcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTE2OC17XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTE3Mi1cXHRmb3IgKGludCBpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUoZml4dXBfcmVncyk7IGkrKykge1xcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MTczOlxcdFxcdHJldCA9IGxhbjg2NXhfcmV2Yl9pbmRpcmVjdF9yZWFkKHBoeWRldiwgZml4dXBfcmVnc1tpXSk7XFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0xNzQtXFx0XFx0aWYgKHJldCBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTE4Ny1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjE4ODpzdGF0aWMgaW50IGxhbjg2NXhfcmVhZF9jZmdfcGFyYW1zKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0xODktXFx0XFx0XFx0XFx0ICAgY29uc3QgdTE2IGNmZ19yZWdzW10sIHUxNiBjZmdfcGFyYW1zW10sXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTIwNC1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjIwNTpzdGF0aWMgaW50IGxhbjg2NXhfd3JpdGVfY2ZnX3BhcmFtcyhzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2LFxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjA2LVxcdFxcdFxcdFxcdCAgICBjb25zdCB1MTYgY2ZnX3JlZ3NbXSwgdTE2IGNmZ19wYXJhbXNbXSxcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjIwLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MjIxOnN0YXRpYyBpbnQgbGFuODY1eF9zZXR1cF9jZmdwYXJhbShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2LCBzOCBvZmZzZXRzW10pXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yMjIte1xcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MjIzOlxcdHUxNiBjZmdfcmVzdWx0c1tBUlJBWV9TSVpFKGxhbjg2NXhfcmV2Yl9maXh1cF9jZmdfcmVncyldO1xcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MjI0OlxcdHUxNiBjZmdfcGFyYW1zW0FSUkFZX1NJWkUobGFuODY1eF9yZXZiX2ZpeHVwX2NmZ19yZWdzKV07XFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yMjUtXFx0aW50IHJldDtcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTIyNi1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjIyNzpcXHRyZXQgPSBsYW44NjV4X3JlYWRfY2ZnX3BhcmFtcyhwaHlkZXYsIGxhbjg2NXhfcmV2Yl9maXh1cF9jZmdfcmVncyxcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTIyOC1cXHRcXHRcXHRcXHQgICAgICBjZmdfcGFyYW1zLCBBUlJBWV9TSVpFKGNmZ19wYXJhbXMpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjM2LVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MjM3OlxcdHJldHVybiBsYW44NjV4X3dyaXRlX2NmZ19wYXJhbXMocGh5ZGV2LCBsYW44NjV4X3JldmJfZml4dXBfY2ZnX3JlZ3MsXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yMzgtXFx0XFx0XFx0XFx0XFx0Y2ZnX3Jlc3VsdHMsIEFSUkFZX1NJWkUoY2ZnX3Jlc3VsdHMpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjQwLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MjQxOnN0YXRpYyBpbnQgbGFuODY1eF9zZXR1cF9zcWlfY2ZncGFyYW0oc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwgczggb2Zmc2V0c1tdKVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjQyLXtcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjI0MzpcXHR1MTYgY2ZnX3Jlc3VsdHNbQVJSQVlfU0laRShsYW44NjV4X3JldmJfc3FpX2ZpeHVwX2NmZ19yZWdzKV07XFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyNDQ6XFx0dTE2IGNmZ19wYXJhbXNbQVJSQVlfU0laRShsYW44NjV4X3JldmJfc3FpX2ZpeHVwX2NmZ19yZWdzKV07XFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yNDUtXFx0aW50IHJldDtcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTI0Ni1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjI0NzpcXHRyZXQgPSBsYW44NjV4X3JlYWRfY2ZnX3BhcmFtcyhwaHlkZXYsIGxhbjg2NXhfcmV2Yl9zcWlfZml4dXBfY2ZnX3JlZ3MsXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yNDgtXFx0XFx0XFx0XFx0ICAgICAgY2ZnX3BhcmFtcywgQVJSQVlfU0laRShjZmdfcGFyYW1zKSk7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTI1OC1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjI1OTpcXHRyZXR1cm4gbGFuODY1eF93cml0ZV9jZmdfcGFyYW1zKHBoeWRldiwgbGFuODY1eF9yZXZiX3NxaV9maXh1cF9jZmdfcmVncyxcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTI2MC1cXHRcXHRcXHRcXHRcXHRjZmdfcmVzdWx0cywgQVJSQVlfU0laRShjZmdfcmVzdWx0cykpO1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yNjItXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyNjM6c3RhdGljIGludCBsYW44NjV4X3JldmJfY29uZmlnX2luaXQoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTI2NC17XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTI3MC1cXHQgKi9cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjI3MTpcXHRyZXQgPSBsYW44NjV4X2dlbmVyYXRlX2NmZ19vZmZzZXRzKHBoeWRldiwgb2Zmc2V0cyk7XFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yNzItXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjc0LVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6Mjc1OlxcdGZvciAoaW50IGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShsYW44NjV4X3JldmJfZml4dXBfcmVnaXN0ZXJzKTsgaSsrKSB7XFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yNzYtXFx0XFx0cmV0ID0gcGh5X3dyaXRlX21tZChwaHlkZXYsIE1ESU9fTU1EX1ZFTkQyLFxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6Mjc3OlxcdFxcdFxcdFxcdCAgICBsYW44NjV4X3JldmJfZml4dXBfcmVnaXN0ZXJzW2ldLFxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6Mjc4OlxcdFxcdFxcdFxcdCAgICBsYW44NjV4X3JldmJfZml4dXBfdmFsdWVzW2ldKTtcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTI3OS1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yODItXFx0XFx0aWYgKGkgPT0gMSkge1xcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MjgzOlxcdFxcdFxcdHJldCA9IGxhbjg2NXhfc2V0dXBfY2ZncGFyYW0ocGh5ZGV2LCBvZmZzZXRzKTtcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTI4NC1cXHRcXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yODgtXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyODk6XFx0cmV0ID0gbGFuODY1eF9zZXR1cF9zcWlfY2ZncGFyYW0ocGh5ZGV2LCBvZmZzZXRzKTtcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTI5MC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yOTItXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyOTM6XFx0Zm9yIChpbnQgaSA9IDA7IGkgXFx1MDAzYyBBUlJBWV9TSVpFKGxhbjg2NXhfcmV2Yl9zcWlfZml4dXBfcmVncyk7IGkrKykge1xcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjk0LVxcdFxcdHJldCA9IHBoeV93cml0ZV9tbWQocGh5ZGV2LCBNRElPX01NRF9WRU5EMixcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjI5NTpcXHRcXHRcXHRcXHQgICAgbGFuODY1eF9yZXZiX3NxaV9maXh1cF9yZWdzW2ldLFxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6Mjk2OlxcdFxcdFxcdFxcdCAgICBsYW44NjV4X3JldmJfc3FpX2ZpeHVwX3ZhbHVlc1tpXSk7XFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yOTctXFx0XFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM9MzI5PXN0YXRpYyBpbnQgbGFuODY3eF9yZXZjX2NvbmZpZ19pbml0KHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTMzNy1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjMzODpcXHRyZXQgPSBsYW44NjV4X2dlbmVyYXRlX2NmZ19vZmZzZXRzKHBoeWRldiwgb2Zmc2V0cyk7XFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0zMzktXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMzUzLVxcdFxcdHJldCA9IHBoeV93cml0ZV9tbWQocGh5ZGV2LCBNRElPX01NRF9WRU5EMixcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjM1NDpcXHRcXHRcXHRcXHQgICAgbGFuODY1eF9yZXZiX2ZpeHVwX3JlZ2lzdGVyc1tpXSxcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjM1NTpcXHRcXHRcXHRcXHQgICAgbGFuODY1eF9yZXZiX2ZpeHVwX3ZhbHVlc1tpXSk7XFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0zNTYtXFx0XFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMzU5LVxcdFxcdGlmIChpID09IDEpIHtcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjM2MDpcXHRcXHRcXHRyZXQgPSBsYW44NjV4X3NldHVwX2NmZ3BhcmFtKHBoeWRldiwgb2Zmc2V0cyk7XFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0zNjEtXFx0XFx0XFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMzY1LVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MzY2OlxcdHJldCA9IGxhbjg2NXhfc2V0dXBfc3FpX2NmZ3BhcmFtKHBoeWRldiwgb2Zmc2V0cyk7XFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0zNjctXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMzY5LVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MzcwOlxcdGZvciAoaW50IGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShsYW44NjV4X3JldmJfc3FpX2ZpeHVwX3JlZ3MpOyBpKyspIHtcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTM3MS1cXHRcXHRyZXQgPSBwaHlfd3JpdGVfbW1kKHBoeWRldiwgTURJT19NTURfVkVORDIsXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzozNzI6XFx0XFx0XFx0XFx0ICAgIGxhbjg2NXhfcmV2Yl9zcWlfZml4dXBfcmVnc1tpXSxcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjM3MzpcXHRcXHRcXHRcXHQgICAgbGFuODY1eF9yZXZiX3NxaV9maXh1cF92YWx1ZXNbaV0pO1xcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMzc0LVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jPTQ5ND1zdGF0aWMgaW50IGxhbjg2eHhfcmVhZF9zdGF0dXMoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtNTE4LSAqL1xcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6NTE5OnN0YXRpYyBpbnQgbGFuODY1eF9waHlfcmVhZF9tbWQoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwgaW50IGRldm51bSxcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTUyMC1cXHRcXHRcXHRcXHR1MTYgcmVnbnVtKVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy01MjctXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzo1Mjg6c3RhdGljIGludCBsYW44NjV4X3BoeV93cml0ZV9tbWQoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwgaW50IGRldm51bSxcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTUyOS1cXHRcXHRcXHRcXHQgdTE2IHJlZ251bSwgdTE2IHZhbClcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM9NTM3PXN0YXRpYyBzdHJ1Y3QgcGh5X2RyaXZlciBtaWNyb2NoaXBfdDFzX2RyaXZlcltdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy01ODQtXFx0XFx0LmZlYXR1cmVzICAgICAgICAgICA9IFBIWV9CQVNJQ19UMVNfUDJNUF9GRUFUVVJFUyxcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjU4NTpcXHRcXHQuY29uZmlnX2luaXQgICAgICAgID0gbGFuODY1eF9yZXZiX2NvbmZpZ19pbml0LFxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtNTg2LVxcdFxcdC5yZWFkX3N0YXR1cyAgICAgICAgPSBsYW44Nnh4X3JlYWRfc3RhdHVzLFxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6NTg3OlxcdFxcdC5yZWFkX21tZCAgICAgICAgICAgPSBsYW44NjV4X3BoeV9yZWFkX21tZCxcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjU4ODpcXHRcXHQud3JpdGVfbW1kICAgICAgICAgID0gbGFuODY1eF9waHlfd3JpdGVfbW1kLFxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtNTg5LVxcdFxcdC5nZXRfcGxjYV9jZmdcXHQgICAgPSBnZW5waHlfYzQ1X3BsY2FfZ2V0X2NmZyxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjJUMDQ6NTA6MDYuODQ1Nzk4MzE4WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUwOTIzNTE3MjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBTUEkgRHJpdmVyIGFuZCBTeXprYWxsZXIncyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyB0aGUgYGxhbjg2NXhgIGlzIGFuIFNQSSBkZXZpY2UsIGdvdCBpdC4gQW5kIGBvYV90YzZgIGlzIGEgZnJhbWV3b3JrIGZvciB0aG9zZSBPUEVOIEFsbGlhbmNlIDEwQkFTRS1UMXggTUFDLVBIWXMsIHRoZSBwdXp6bGUgcGllY2VzIGFyZSBzdGFydGluZyB0byBmaXQuIFRoaXMgcGF0Y2ggaXMgbW9kaWZ5aW5nIGBvYV90YzYuY2AsIHdoaWNoIG1ha2VzIG1lIHdvbmRlciBpZiB0aGF0IGZpbGUncyBldmVuIHJlYWNoYWJsZSDigJMgYSBmdW5kYW1lbnRhbCBxdWVzdGlvbiBpbiB0aGlzIGtpbmQgb2YgYW5hbHlzaXMuXG5cblJpZ2h0LCBzbyBob3cgZG9lcyBzeXprYWxsZXIgcGxheSBpbnRvIHRoaXM/IEkga25vdyBpdCBjYW4gZnV6eiBTUEkgZGV2aWNlcywgZWl0aGVyIHRocm91Z2ggcHNldWRvIGRldmljZXMgdXNpbmcgc29tZXRoaW5nIGxpa2UgYHN5el9zcGlfc2V0dXBgLCBvciBwZXJoYXBzIHZpYSBgc3BpZGV2YCBpZiB0aGVyZSdzIGEgZHJpdmVyIGJpbmRpbmcgbWV0aG9kLiBUeXBpY2FsbHksIHRob3VnaCwgU1BJIGRyaXZlcnMgZ2V0IGJvdW5kIHRocm91Z2ggdGhlIGRldmljZSB0cmVlLCByaWdodD8gQW5kIHN5emthbGxlciBpc24ndCBleGFjdGx5IGJyaWxsaWFudCBhdCBkeW5hbWljYWxseSBpbmplY3RpbmcgZGV2aWNlIHRyZWUgbm9kZXMgdW5sZXNzIGl0J3MgdXNpbmcgYSBmdW5jdGlvbiBsaWtlIGBzeXpfZGV2X2luaXRgIG9yIHRoZSBsaWtlLlxuXG5CdXQgd2FpdCBhIG1pbnV0ZSwgc3l6a2FsbGVyIGhhcyBzb21lIGNvb2wgcHNldWRvLXN5c2NhbGxzIGxpa2UgYHN5el9nZW5ldGxpbmtfZ2V0X2ZhbWlseWAgYW5kIG90aGVyIHRyaWNrcyB1cCBpdHMgc2xlZXZlLiBUaGUgcXVlc3Rpb24gaXMsIGRvZXMgaXQgaGF2ZSBhbnl0aGluZyBkZWRpY2F0ZWQgdG8gU1BJPyBJIG5lZWQgdG8gY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBzeXprYWxsZXIgZGVzY3JpcHRpb25zIHNwZWNpZmljYWxseSBmb3IgYGxhbjg2NXhgIG9yIGV2ZW4ganVzdCB0aGUgYG9hX3RjNmAgZnJhbWV3b3JrIGl0c2VsZi4gVGhhdCdzIHRoZSBuZXh0IG9idmlvdXMgc3RlcCB0byBzZWUgd2hhdCBzeXprYWxsZXIgY2FuIGRvIHdpdGggdGhpcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzA3NjEsIk91dHB1dFRva2VucyI6MjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMDcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjJUMDQ6NTA6MTEuOTM4MTUyNjExWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjY1MjE3NzUsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImxhbjg2NXhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjJUMDQ6NTA6MTIuMTY0NjgzOTI2WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwNzYwMzg3NTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIHNlZS4gTXkgZmlyc3QgdGhvdWdodCBpczogKipIdW50aW5nIGZvciBzeXprYWxsZXIgRGVzY3JpcHRpb25zIFJlbGF0ZWQgdG8gJ29hX3RjNicuKipcblxuSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIGlmIHRoZXJlIGFyZSBhbnkgZXhpc3Rpbmcgc3l6a2FsbGVyIGRlc2NyaXB0aW9ucyBzcGVjaWZpY2FsbHkgZm9yIGBvYV90YzZgLiBUaGlzIGlzIGEgY3J1Y2lhbCBmaXJzdCBzdGVwLiBJZiBJIGFscmVhZHkgaGF2ZSB0aGVtLCBpdCBzYXZlcyB0aW1lIGFuZCBhbGxvd3MgbWUgdG8gYXNzZXNzIHdoYXQncyBhbHJlYWR5IGtub3duLiBJZiB0aGV5IGRvbid0IGV4aXN0LCB3ZWxsLCB0aGVuIEknbSBnb2luZyB0byBoYXZlIHRvIGRvIHNvbWUgZGVlcGVyIGRpZ2dpbmcgYW5kIHBvdGVudGlhbGx5IHN0YXJ0IGNyZWF0aW5nIHRob3NlIGRlc2NyaXB0aW9ucyBteXNlbGYuIEl0IGFsbCBoaW5nZXMgb24gdGhpcyBpbml0aWFsIGNoZWNrLiBHb3R0YSBzZWUgd2hhdCdzIG91dCB0aGVyZSBmaXJzdCFcblxuXG4iLCJJbnB1dFRva2VucyI6MzEzMTMsIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yMlQwNDo1MDoxNS4yNDA3MjUwNDJaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg2MzUyMzU4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJvYV90YzZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjJUMDQ6NTA6MTUuMzI3MDg1MjNaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTc2Mzg1OTc4OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3Mgb24gdGhlIG1hdHRlcjpcblxuKipDaGVja2luZyBmb3IgRXhpc3RpbmcgU3l6a2FsbGVyIERlc2NyaXB0aW9ucyoqXG5cbkFscmlnaHQsIHRoZSB0YXNrIGF0IGhhbmQgaXMgdG8gc2VlIGlmIHRoZXJlJ3MgYW55IGV4aXN0aW5nIGdyb3VuZHdvcmsgbGFpZCBvdXQgZm9yIHRoZSBgbGFuODY1eGAgaGFyZHdhcmUgd2l0aGluIHRoZSBzeXprYWxsZXIgZnJhbWV3b3JrLiBCZWZvcmUgSSBzdGFydCB0cnlpbmcgdG8gcmVpbnZlbnQgdGhlIHdoZWVsLCBpdCdzIGFsd2F5cyBwcnVkZW50IHRvIGNoZWNrIHRoZSBleGlzdGluZyBjb2RlIGJhc2UuIEknbSBnb2luZyB0byBzY2FuIHRoZSBlbnRpcmUgc3l6a2FsbGVyIHRyZWUgdG8gc2VlIGlmIGFueW9uZSBoYXMgYWxyZWFkeSBzdGFydGVkIGRvY3VtZW50aW5nIG9yIGZ1enppbmcgYW55dGhpbmcgcmVsYXRlZCB0byB0aGF0IHBhcnRpY3VsYXIgdGFyZ2V0LiBJdCBzYXZlcyBzaWduaWZpY2FudCB0aW1lIGFuZCBlZmZvcnQgdG8gYnVpbGQgb24gcHJpb3Igd29yayBpZiB0aGVyZSBpcyBhbnkuIE15IGdvYWwgaGVyZSBpc24ndCBuZWNlc3NhcmlseSB0byAqZmluZCogc29tZXRoaW5nIGNvbmNyZXRlIHRvIGJ1aWxkIHVwb24sIGJ1dCB0byAqcnVsZSBvdXQqIHRoYXQgcG9zc2liaWxpdHkgZmlyc3QgYW5kIGJlIGVmZmljaWVudCBpbiBteSBhcHByb2FjaC4gSXQncyBqdXN0IHNtYXJ0IHRvIHNlZSB3aGF0J3MgYWxyZWFkeSBvdXQgdGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxNDk3LCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjJUMDQ6NTA6MjEuMDkwOTQ3ODA5WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTU5MDEzMTE0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImxhbjg2NXhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIk1BSU5UQUlORVJTPTE3NDY5PUY6XFx0RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9taWNyb2NoaXAsbGFuODY1MC55YW1sXFxuTUFJTlRBSU5FUlM6MTc0NzA6RjpcXHRkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmNcXG5NQUlOVEFJTkVSUy0xNzQ3MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9LY29uZmlnPTQ1PWNvbmZpZyBMQU43NDNYXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvS2NvbmZpZy01OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvS2NvbmZpZzo2MDpzb3VyY2UgXFxcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L0tjb25maWdcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL0tjb25maWctNjEtc291cmNlIFxcXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9LY29uZmlnXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL01ha2VmaWxlPTEwPWxhbjc0M3gtb2JqcyA6PSBsYW43NDN4X21haW4ubyBsYW43NDN4X2V0aHRvb2wubyBsYW43NDN4X3B0cC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL01ha2VmaWxlLTExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9NYWtlZmlsZToxMjpvYmotJChDT05GSUdfTEFOODY1WCkgKz0gbGFuODY1eC9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvTWFrZWZpbGUtMTMtb2JqLSQoQ09ORklHX0xBTjk2NlhfU1dJVENIKSArPSBsYW45NjZ4L1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvS2NvbmZpZz04PWNvbmZpZyBMQU44NjVYXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9LY29uZmlnLTE2LVxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS4gVGhlIG1vZHVsZSB3aWxsIGJlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvS2NvbmZpZzoxNzpcXHQgIGNhbGxlZCBsYW44NjV4LlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L0tjb25maWctMTgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9NYWtlZmlsZS01LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L01ha2VmaWxlOjY6b2JqLSQoQ09ORklHX0xBTjg2NVgpICs9IGxhbjg2NXgub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTM4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozOTpzdHJ1Y3QgbGFuODY1eF9wcml2IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDAtXFx0c3RydWN0IHdvcmtfc3RydWN0IG11bHRpY2FzdF93b3JrO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQ1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo0NjpzdGF0aWMgaW50IGxhbjg2NXhfc2V0X2h3X21hY2FkZHJfbG93X2J5dGVzKHN0cnVjdCBvYV90YzYgKnRjNiwgY29uc3QgdTggKm1hYylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTU0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo1NTpzdGF0aWMgaW50IGxhbjg2NXhfc2V0X2h3X21hY2FkZHIoc3RydWN0IGxhbjg2NXhfcHJpdiAqcHJpdiwgY29uc3QgdTggKm1hYylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNTYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTYxLVxcdC8qIENvbmZpZ3VyZSBNQUMgYWRkcmVzcyBsb3cgYnl0ZXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NjI6XFx0cmV0ID0gbGFuODY1eF9zZXRfaHdfbWFjYWRkcl9sb3dfYnl0ZXMocHJpdi1cXHUwMDNldGM2LCBtYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy02My1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTc1LVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo3NjpcXHRyZXN0b3JlX3JldCA9IGxhbjg2NXhfc2V0X2h3X21hY2FkZHJfbG93X2J5dGVzKHByaXYtXFx1MDAzZXRjNixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNzctXFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgIHByaXYtXFx1MDAzZW5ldGRldi1cXHUwMDNlZGV2X2FkZHIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTgzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo4NDpzdGF0aWMgY29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzIGxhbjg2NXhfZXRodG9vbF9vcHMgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTg1LVxcdC5nZXRfbGlua19rc2V0dGluZ3MgPSBwaHlfZXRodG9vbF9nZXRfbGlua19rc2V0dGluZ3MsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtODgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjg5OnN0YXRpYyBpbnQgbGFuODY1eF9zZXRfbWFjX2FkZHJlc3Moc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgdm9pZCAqYWRkcilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtOTAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo5MTpcXHRzdHJ1Y3QgbGFuODY1eF9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtOTItXFx0c3RydWN0IHNvY2thZGRyICphZGRyZXNzID0gYWRkcjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0xMDEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjEwMjpcXHRyZXQgPSBsYW44NjV4X3NldF9od19tYWNhZGRyKHByaXYsIGFkZHJlc3MtXFx1MDAzZXNhX2RhdGEpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0xMDMtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYz0xMTE9c3RhdGljIHUzMiBnZXRfYWRkcmVzc19iaXQodTggYWRkcltFVEhfQUxFTl0sIHUzMiBiaXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMTE1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoxMTY6c3RhdGljIHUzMiBsYW44NjV4X2hhc2godTggYWRkcltFVEhfQUxFTl0pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTExNy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMTMxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoxMzI6c3RhdGljIGludCBsYW44NjV4X3NldF9zcGVjaWZpY19tdWx0aWNhc3RfYWRkcihzdHJ1Y3QgbGFuODY1eF9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0xMzMte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTEzOS1cXHRuZXRkZXZfZm9yX2VhY2hfbWNfYWRkcihoYSwgcHJpdi1cXHUwMDNlbmV0ZGV2KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjE0MDpcXHRcXHR1MzIgYml0X251bSA9IGxhbjg2NXhfaGFzaChoYS1cXHUwMDNlYWRkcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTE0MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0xNjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjE2NDpzdGF0aWMgaW50IGxhbjg2NXhfc2V0X2FsbF9tdWx0aWNhc3RfYWRkcihzdHJ1Y3QgbGFuODY1eF9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0xNjUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTE4NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MTg2OnN0YXRpYyBpbnQgbGFuODY1eF9jbGVhcl9hbGxfbXVsdGljYXN0X2FkZHIoc3RydWN0IGxhbjg2NXhfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMTg3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yMDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjIwNTpzdGF0aWMgdm9pZCBsYW44NjV4X211bHRpY2FzdF93b3JrX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yMDYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoyMDc6XFx0c3RydWN0IGxhbjg2NXhfcHJpdiAqcHJpdiA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgbGFuODY1eF9wcml2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yMDgtXFx0XFx0XFx0XFx0XFx0XFx0IG11bHRpY2FzdF93b3JrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yMTgtXFx0XFx0LyogRW5hYmxpbmcgYWxsIG11bHRpY2FzdCBtb2RlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjIxOTpcXHRcXHRpZiAobGFuODY1eF9zZXRfYWxsX211bHRpY2FzdF9hZGRyKHByaXYpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yMjAtXFx0XFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTIyNi1cXHRcXHQvKiBFbmFibGluZyBzcGVjaWZpYyBtdWx0aWNhc3QgbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoyMjc6XFx0XFx0aWYgKGxhbjg2NXhfc2V0X3NwZWNpZmljX211bHRpY2FzdF9hZGRyKHByaXYpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yMjgtXFx0XFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTIzNC1cXHRcXHQvKiBFbmFibGluZyBsb2NhbCBtYWMgYWRkcmVzcyBvbmx5ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjIzNTpcXHRcXHRpZiAobGFuODY1eF9jbGVhcl9hbGxfbXVsdGljYXN0X2FkZHIocHJpdikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTIzNi1cXHRcXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjQzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoyNDQ6c3RhdGljIHZvaWQgbGFuODY1eF9zZXRfbXVsdGljYXN0X2xpc3Qoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjQ1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MjQ2OlxcdHN0cnVjdCBsYW44NjV4X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yNDctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoyNTE6c3RhdGljIG5ldGRldl90eF90IGxhbjg2NXhfc2VuZF9wYWNrZXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjUyLVxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yNTMte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoyNTQ6XFx0c3RydWN0IGxhbjg2NXhfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI1NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yNTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjI1OTpzdGF0aWMgaW50IGxhbjg2NXhfaHdfZGlzYWJsZShzdHJ1Y3QgbGFuODY1eF9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yNjAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI3My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6Mjc0OnN0YXRpYyBpbnQgbGFuODY1eF9uZXRfY2xvc2Uoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjc1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6Mjc2OlxcdHN0cnVjdCBsYW44NjV4X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yNzctXFx0aW50IHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yODAtXFx0cGh5X3N0b3AobmV0ZGV2LVxcdTAwM2VwaHlkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzoyODE6XFx0cmV0ID0gbGFuODY1eF9od19kaXNhYmxlKHByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0yODItXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTI4OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MjkwOnN0YXRpYyBpbnQgbGFuODY1eF9od19lbmFibGUoc3RydWN0IGxhbjg2NXhfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMjkxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zMDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjMwNTpzdGF0aWMgaW50IGxhbjg2NXhfbmV0X29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzA2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MzA3OlxcdHN0cnVjdCBsYW44NjV4X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zMDgtXFx0aW50IHJldDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozMTA6XFx0cmV0ID0gbGFuODY1eF9od19lbmFibGUocHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTMxMS1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzIyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozMjM6c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBsYW44NjV4X25ldGRldl9vcHMgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjMyNDpcXHQubmRvX29wZW5cXHRcXHQ9IGxhbjg2NXhfbmV0X29wZW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjMyNTpcXHQubmRvX3N0b3BcXHRcXHQ9IGxhbjg2NXhfbmV0X2Nsb3NlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozMjY6XFx0Lm5kb19zdGFydF94bWl0XFx0XFx0PSBsYW44NjV4X3NlbmRfcGFja2V0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozMjc6XFx0Lm5kb19zZXRfcnhfbW9kZVxcdD0gbGFuODY1eF9zZXRfbXVsdGljYXN0X2xpc3QsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjMyODpcXHQubmRvX3NldF9tYWNfYWRkcmVzc1xcdD0gbGFuODY1eF9zZXRfbWFjX2FkZHJlc3MsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTMyOS1cXHQubmRvX3ZhbGlkYXRlX2FkZHJcXHQ9IGV0aF92YWxpZGF0ZV9hZGRyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTMzMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MzMzOnN0YXRpYyBpbnQgbGFuODY1eF9wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zMzQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zMzUtXFx0c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MzM2OlxcdHN0cnVjdCBsYW44NjV4X3ByaXYgKnByaXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTMzNy1cXHRpbnQgcmV0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zMzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjMzOTpcXHRuZXRkZXYgPSBhbGxvY19ldGhlcmRldihzaXplb2Yoc3RydWN0IGxhbjg2NXhfcHJpdikpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zNDAtXFx0aWYgKCFuZXRkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzQ2LVxcdHNwaV9zZXRfZHJ2ZGF0YShzcGksIHByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozNDc6XFx0SU5JVF9XT1JLKFxcdTAwMjZwcml2LVxcdTAwM2VtdWx0aWNhc3Rfd29yaywgbGFuODY1eF9tdWx0aWNhc3Rfd29ya19oYW5kbGVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzQ4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTM5MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MzkyOlxcdHJldCA9IGxhbjg2NXhfc2V0X2h3X21hY2FkZHIocHJpdiwgbmV0ZGV2LVxcdTAwM2VkZXZfYWRkcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTM5My1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzk5LVxcdG5ldGRldi1cXHUwMDNlaXJxID0gc3BpLVxcdTAwM2VpcnE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjQwMDpcXHRuZXRkZXYtXFx1MDAzZW5ldGRldl9vcHMgPSBcXHUwMDI2bGFuODY1eF9uZXRkZXZfb3BzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo0MDE6XFx0bmV0ZGV2LVxcdTAwM2VldGh0b29sX29wcyA9IFxcdTAwMjZsYW44NjV4X2V0aHRvb2xfb3BzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00MDItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDE3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo0MTg6c3RhdGljIHZvaWQgbGFuODY1eF9yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDE5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NDIwOlxcdHN0cnVjdCBsYW44NjV4X3ByaXYgKnByaXYgPSBzcGlfZ2V0X2RydmRhdGEoc3BpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDIxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQyNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NDI4OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3BpX2RldmljZV9pZCBsYW44NjV4X2lkc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy00MjktXFx0eyAubmFtZSA9IFxcXCJsYW44NjUwXFxcIiB9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQzMi19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo0MzM6TU9EVUxFX0RFVklDRV9UQUJMRShzcGksIGxhbjg2NXhfaWRzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDM0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo0MzU6c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbGFuODY1eF9kdF9pZHNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDM2LVxcdHsgLmNvbXBhdGlibGUgPSBcXFwibWljcm9jaGlwLGxhbjg2NTBcXFwiIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDM5LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjQ0MDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBsYW44NjV4X2R0X2lkcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQ0MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NDQyOnN0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBsYW44NjV4X2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDQzLVxcdC5kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQ0NC1cXHRcXHQubmFtZSA9IERSVl9OQU1FLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzo0NDU6XFx0XFx0Lm9mX21hdGNoX3RhYmxlID0gbGFuODY1eF9kdF9pZHMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQ0Ni1cXHQgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6NDQ3OlxcdC5wcm9iZSA9IGxhbjg2NXhfcHJvYmUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjQ0ODpcXHQucmVtb3ZlID0gbGFuODY1eF9yZW1vdmUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjQ0OTpcXHQuaWRfdGFibGUgPSBsYW44NjV4X2lkcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtNDUwLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjQ1MTptb2R1bGVfc3BpX2RyaXZlcihsYW44NjV4X2RyaXZlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTQ1Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM9Nzc9c3RhdGljIGNvbnN0IHUxNiBsYW44Njd4X3JldmIxX2ZpeHVwX21hc2tzWzEyXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtODctICovXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzo4ODpzdGF0aWMgY29uc3QgdTMyIGxhbjg2NXhfcmV2Yl9maXh1cF9yZWdpc3RlcnNbMTddID0ge1xcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtODktXFx0MHgwMEQwLCAweDAwRTAsIDB4MDBFOSwgMHgwMEY1LFxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy05NS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjk2OnN0YXRpYyBjb25zdCB1MTYgbGFuODY1eF9yZXZiX2ZpeHVwX3ZhbHVlc1sxN10gPSB7XFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy05Ny1cXHQweDNGMzEsIDB4QzAwMCwgMHg5RTUwLCAweDFDRjgsXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTEwMy1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjEwNDpzdGF0aWMgY29uc3QgdTE2IGxhbjg2NXhfcmV2Yl9maXh1cF9jZmdfcmVnc1syXSA9IHtcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTEwNS1cXHQweDAwODQsIDB4MDA4QSxcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMTA3LVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MTA4OnN0YXRpYyBjb25zdCB1MzIgbGFuODY1eF9yZXZiX3NxaV9maXh1cF9yZWdzWzEyXSA9IHtcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTEwOS1cXHQweDAwQjAsIDB4MDBCMSwgMHgwMEIyLCAweDAwQjMsXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTExMy1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjExNDpzdGF0aWMgY29uc3QgdTE2IGxhbjg2NXhfcmV2Yl9zcWlfZml4dXBfdmFsdWVzWzEyXSA9IHtcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTExNS1cXHQweDAxMDMsIDB4MDkxMCwgMHgxRDI2LCAweDAwMkEsXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTExOS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjEyMDpzdGF0aWMgY29uc3QgdTE2IGxhbjg2NXhfcmV2Yl9zcWlfZml4dXBfY2ZnX3JlZ3NbM10gPSB7XFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0xMjEtXFx0MHgwMEFELCAweDAwQUUsIDB4MDBBRixcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM9MTM0PXN0YXRpYyBjb25zdCB1MTYgbGFuODY3eF9yZXZkMF9maXh1cF92YWx1ZXNbOF0gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTE0Ni0gKi9cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjE0NzpzdGF0aWMgaW50IGxhbjg2NXhfcmV2Yl9pbmRpcmVjdF9yZWFkKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsIHUxNiBhZGRyKVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMTQ4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMTY2LSAqL1xcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MTY3OnN0YXRpYyBpbnQgbGFuODY1eF9nZW5lcmF0ZV9jZmdfb2Zmc2V0cyhzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2LCBzOCBvZmZzZXRzW10pXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0xNjgte1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0xNzItXFx0Zm9yIChpbnQgaSA9IDA7IGkgXFx1MDAzYyBBUlJBWV9TSVpFKGZpeHVwX3JlZ3MpOyBpKyspIHtcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjE3MzpcXHRcXHRyZXQgPSBsYW44NjV4X3JldmJfaW5kaXJlY3RfcmVhZChwaHlkZXYsIGZpeHVwX3JlZ3NbaV0pO1xcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMTc0LVxcdFxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0xODctXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoxODg6c3RhdGljIGludCBsYW44NjV4X3JlYWRfY2ZnX3BhcmFtcyhzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2LFxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMTg5LVxcdFxcdFxcdFxcdCAgIGNvbnN0IHUxNiBjZmdfcmVnc1tdLCB1MTYgY2ZnX3BhcmFtc1tdLFxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yMDQtXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyMDU6c3RhdGljIGludCBsYW44NjV4X3dyaXRlX2NmZ19wYXJhbXMoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldixcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTIwNi1cXHRcXHRcXHRcXHQgICAgY29uc3QgdTE2IGNmZ19yZWdzW10sIHUxNiBjZmdfcGFyYW1zW10sXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTIyMC1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjIyMTpzdGF0aWMgaW50IGxhbjg2NXhfc2V0dXBfY2ZncGFyYW0oc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwgczggb2Zmc2V0c1tdKVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjIyLXtcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjIyMzpcXHR1MTYgY2ZnX3Jlc3VsdHNbQVJSQVlfU0laRShsYW44NjV4X3JldmJfZml4dXBfY2ZnX3JlZ3MpXTtcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjIyNDpcXHR1MTYgY2ZnX3BhcmFtc1tBUlJBWV9TSVpFKGxhbjg2NXhfcmV2Yl9maXh1cF9jZmdfcmVncyldO1xcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjI1LVxcdGludCByZXQ7XFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yMjYtXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyMjc6XFx0cmV0ID0gbGFuODY1eF9yZWFkX2NmZ19wYXJhbXMocGh5ZGV2LCBsYW44NjV4X3JldmJfZml4dXBfY2ZnX3JlZ3MsXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yMjgtXFx0XFx0XFx0XFx0ICAgICAgY2ZnX3BhcmFtcywgQVJSQVlfU0laRShjZmdfcGFyYW1zKSk7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTIzNi1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjIzNzpcXHRyZXR1cm4gbGFuODY1eF93cml0ZV9jZmdfcGFyYW1zKHBoeWRldiwgbGFuODY1eF9yZXZiX2ZpeHVwX2NmZ19yZWdzLFxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjM4LVxcdFxcdFxcdFxcdFxcdGNmZ19yZXN1bHRzLCBBUlJBWV9TSVpFKGNmZ19yZXN1bHRzKSk7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTI0MC1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjI0MTpzdGF0aWMgaW50IGxhbjg2NXhfc2V0dXBfc3FpX2NmZ3BhcmFtKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsIHM4IG9mZnNldHNbXSlcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTI0Mi17XFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyNDM6XFx0dTE2IGNmZ19yZXN1bHRzW0FSUkFZX1NJWkUobGFuODY1eF9yZXZiX3NxaV9maXh1cF9jZmdfcmVncyldO1xcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MjQ0OlxcdHUxNiBjZmdfcGFyYW1zW0FSUkFZX1NJWkUobGFuODY1eF9yZXZiX3NxaV9maXh1cF9jZmdfcmVncyldO1xcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjQ1LVxcdGludCByZXQ7XFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yNDYtXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyNDc6XFx0cmV0ID0gbGFuODY1eF9yZWFkX2NmZ19wYXJhbXMocGh5ZGV2LCBsYW44NjV4X3JldmJfc3FpX2ZpeHVwX2NmZ19yZWdzLFxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjQ4LVxcdFxcdFxcdFxcdCAgICAgIGNmZ19wYXJhbXMsIEFSUkFZX1NJWkUoY2ZnX3BhcmFtcykpO1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yNTgtXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyNTk6XFx0cmV0dXJuIGxhbjg2NXhfd3JpdGVfY2ZnX3BhcmFtcyhwaHlkZXYsIGxhbjg2NXhfcmV2Yl9zcWlfZml4dXBfY2ZnX3JlZ3MsXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yNjAtXFx0XFx0XFx0XFx0XFx0Y2ZnX3Jlc3VsdHMsIEFSUkFZX1NJWkUoY2ZnX3Jlc3VsdHMpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjYyLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MjYzOnN0YXRpYyBpbnQgbGFuODY1eF9yZXZiX2NvbmZpZ19pbml0KHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yNjQte1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yNzAtXFx0ICovXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyNzE6XFx0cmV0ID0gbGFuODY1eF9nZW5lcmF0ZV9jZmdfb2Zmc2V0cyhwaHlkZXYsIG9mZnNldHMpO1xcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjcyLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTI3NC1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjI3NTpcXHRmb3IgKGludCBpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUobGFuODY1eF9yZXZiX2ZpeHVwX3JlZ2lzdGVycyk7IGkrKykge1xcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjc2LVxcdFxcdHJldCA9IHBoeV93cml0ZV9tbWQocGh5ZGV2LCBNRElPX01NRF9WRU5EMixcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjI3NzpcXHRcXHRcXHRcXHQgICAgbGFuODY1eF9yZXZiX2ZpeHVwX3JlZ2lzdGVyc1tpXSxcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjI3ODpcXHRcXHRcXHRcXHQgICAgbGFuODY1eF9yZXZiX2ZpeHVwX3ZhbHVlc1tpXSk7XFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yNzktXFx0XFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjgyLVxcdFxcdGlmIChpID09IDEpIHtcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjI4MzpcXHRcXHRcXHRyZXQgPSBsYW44NjV4X3NldHVwX2NmZ3BhcmFtKHBoeWRldiwgb2Zmc2V0cyk7XFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yODQtXFx0XFx0XFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjg4LVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6Mjg5OlxcdHJldCA9IGxhbjg2NXhfc2V0dXBfc3FpX2NmZ3BhcmFtKHBoeWRldiwgb2Zmc2V0cyk7XFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0yOTAtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjkyLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MjkzOlxcdGZvciAoaW50IGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShsYW44NjV4X3JldmJfc3FpX2ZpeHVwX3JlZ3MpOyBpKyspIHtcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTI5NC1cXHRcXHRyZXQgPSBwaHlfd3JpdGVfbW1kKHBoeWRldiwgTURJT19NTURfVkVORDIsXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzoyOTU6XFx0XFx0XFx0XFx0ICAgIGxhbjg2NXhfcmV2Yl9zcWlfZml4dXBfcmVnc1tpXSxcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjI5NjpcXHRcXHRcXHRcXHQgICAgbGFuODY1eF9yZXZiX3NxaV9maXh1cF92YWx1ZXNbaV0pO1xcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMjk3LVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jPTMyOT1zdGF0aWMgaW50IGxhbjg2N3hfcmV2Y19jb25maWdfaW5pdChzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0zMzctXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzozMzg6XFx0cmV0ID0gbGFuODY1eF9nZW5lcmF0ZV9jZmdfb2Zmc2V0cyhwaHlkZXYsIG9mZnNldHMpO1xcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMzM5LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTM1My1cXHRcXHRyZXQgPSBwaHlfd3JpdGVfbW1kKHBoeWRldiwgTURJT19NTURfVkVORDIsXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzozNTQ6XFx0XFx0XFx0XFx0ICAgIGxhbjg2NXhfcmV2Yl9maXh1cF9yZWdpc3RlcnNbaV0sXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzozNTU6XFx0XFx0XFx0XFx0ICAgIGxhbjg2NXhfcmV2Yl9maXh1cF92YWx1ZXNbaV0pO1xcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMzU2LVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTM1OS1cXHRcXHRpZiAoaSA9PSAxKSB7XFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzozNjA6XFx0XFx0XFx0cmV0ID0gbGFuODY1eF9zZXR1cF9jZmdwYXJhbShwaHlkZXYsIG9mZnNldHMpO1xcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMzYxLVxcdFxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTM2NS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjM2NjpcXHRyZXQgPSBsYW44NjV4X3NldHVwX3NxaV9jZmdwYXJhbShwaHlkZXYsIG9mZnNldHMpO1xcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtMzY3LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTM2OS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjM3MDpcXHRmb3IgKGludCBpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUobGFuODY1eF9yZXZiX3NxaV9maXh1cF9yZWdzKTsgaSsrKSB7XFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy0zNzEtXFx0XFx0cmV0ID0gcGh5X3dyaXRlX21tZChwaHlkZXYsIE1ESU9fTU1EX1ZFTkQyLFxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6MzcyOlxcdFxcdFxcdFxcdCAgICBsYW44NjV4X3JldmJfc3FpX2ZpeHVwX3JlZ3NbaV0sXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzozNzM6XFx0XFx0XFx0XFx0ICAgIGxhbjg2NXhfcmV2Yl9zcWlfZml4dXBfdmFsdWVzW2ldKTtcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTM3NC1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYz00OTQ9c3RhdGljIGludCBsYW44Nnh4X3JlYWRfc3RhdHVzKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTUxOC0gKi9cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjUxOTpzdGF0aWMgaW50IGxhbjg2NXhfcGh5X3JlYWRfbW1kKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsIGludCBkZXZudW0sXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy01MjAtXFx0XFx0XFx0XFx0dTE2IHJlZ251bSlcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtNTI3LVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmM6NTI4OnN0YXRpYyBpbnQgbGFuODY1eF9waHlfd3JpdGVfbW1kKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsIGludCBkZXZudW0sXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYy01MjktXFx0XFx0XFx0XFx0IHUxNiByZWdudW0sIHUxNiB2YWwpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jPTUzNz1zdGF0aWMgc3RydWN0IHBoeV9kcml2ZXIgbWljcm9jaGlwX3Qxc19kcml2ZXJbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9taWNyb2NoaXBfdDFzLmMtNTg0LVxcdFxcdC5mZWF0dXJlcyAgICAgICAgICAgPSBQSFlfQkFTSUNfVDFTX1AyTVBfRkVBVFVSRVMsXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzo1ODU6XFx0XFx0LmNvbmZpZ19pbml0ICAgICAgICA9IGxhbjg2NXhfcmV2Yl9jb25maWdfaW5pdCxcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTU4Ni1cXHRcXHQucmVhZF9zdGF0dXMgICAgICAgID0gbGFuODZ4eF9yZWFkX3N0YXR1cyxcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jOjU4NzpcXHRcXHQucmVhZF9tbWQgICAgICAgICAgID0gbGFuODY1eF9waHlfcmVhZF9tbWQsXFxuZHJpdmVycy9uZXQvcGh5L21pY3JvY2hpcF90MXMuYzo1ODg6XFx0XFx0LndyaXRlX21tZCAgICAgICAgICA9IGxhbjg2NXhfcGh5X3dyaXRlX21tZCxcXG5kcml2ZXJzL25ldC9waHkvbWljcm9jaGlwX3Qxcy5jLTU4OS1cXHRcXHQuZ2V0X3BsY2FfY2ZnXFx0ICAgID0gZ2VucGh5X2M0NV9wbGNhX2dldF9jZmcsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIyVDA0OjUwOjIzLjI0OTk2OTg2M1oiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0ODA2NTI0MzA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEluaXRpYWwgVGhvdWdodHMgb24gU1BJIERyaXZlciBGdXp6aW5nKipcblxuT2theSwgc28gSSdtIHRoaW5raW5nIGFib3V0IGhvdyB0byBlZmZlY3RpdmVseSBmdXp6IHRoaXMgYGxhbjg2NXhgIGRyaXZlciB1c2luZyBzeXprYWxsZXIuIEkga25vdyBzeXprYWxsZXIgaGFzIHNvbWUgYnVpbHQtaW4gc3VwcG9ydCBmb3IgU1BJIGRldmljZXMsIHNwZWNpZmljYWxseSBpZiB0aGV5J3JlIGFjY2Vzc2VkIHZpYSBgc3BpZGV2YC4gQnV0IHRoYXQncyBub3QgYSBnZW5lcmFsIHNvbHV0aW9uIGZvciBmdXp6aW5nICphbnkqIFNQSSBkcml2ZXIuIEl0IHJlbGllcyBvbiBhIGtub3duIHN5emthbGxlciBkZXNjcmlwdGlvbiBmb3IgdGhlIHNwZWNpZmljIGRldmljZSwgcmlnaHQ/XG5cblRoZW4gSSByZWNhbGxlZCBzeXprYWxsZXIgZG9lcyBwcm92aWRlIGdlbmVyaWMgaW5zdGFudGlhdGlvbiBmdW5jdGlvbnMgbGlrZSBgc3l6X2Rldl9pbml0YCBvciBgc3l6X3VzYl9jb25uZWN0YC4gVGhlIHF1ZXN0aW9uIHRoZW4gaXMsIGhvdyBkbyBJIGdvIGFib3V0IGluc3RhbnRpYXRpbmcgYGxhbjg2NXhgPyBJdCB3b24ndCBiZSByZWFjaGFibGUgdW5sZXNzIGl0J3MgaW5zdGFudGlhdGVkLiBUaGF0IGlzIHRoZSBodXJkbGUuXG5cblRoZW4gSSBoYWQgYSBldXJla2EgbW9tZW50Li4uIGRpZCBzeXprYWxsZXIgYWRkIGEgbW9yZSBnZW5lcmljIFNQSSBzZXR1cCBmdW5jdGlvbiByZWNlbnRseT8gSSB0aG91Z2h0IEkgcmVjYWxsZWQgcmVhZGluZyBzb21ldGhpbmcgYWJvdXQgYHN5el9zcGlfc2V0dXBgLiBJIG5lZWQgdG8gdmVyaWZ5IGlmIHRoYXQgZXZlbiBleGlzdHMgYmVjYXVzZSB0aGF0IGNvdWxkIGJlIHRoZSBrZXkgdG8gdW5sb2NraW5nIHRoaXMgZnV6emluZyBjaGFsbGVuZ2UuIEkgc2hvdWxkIGNoZWNrIHRoZSBzb3VyY2UsIGFuZCBtYWtlIHN1cmUgdGhhdCBmdW5jdGlvbiBhY3R1YWxseSBleGlzdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQyMDgxLCJPdXRwdXRUb2tlbnMiOjI2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQ1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIyVDA0OjUwOjI4LjA1NjQ5NzAxMloiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk2MDM4NDUyOSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3l6X3NwaV9zZXR1cFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIyVDA0OjUwOjMwLjAxNjg5NjIwMVoiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MzQ5Mzg4Nzk1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIGBsYW44NjV4YCBEcml2ZXIgYW5kIFN5emthbGxlciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYG9hX3RjNmAgY29kZSBhbmQgdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgaG93IHRvIGZ1enogaXQgZWZmZWN0aXZlbHkgd2l0aCBTeXprYWxsZXIuIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdG8gdXNlIHNvbWV0aGluZyBsaWtlIGBzcGlfbmV3X2RldmljZWAsIGJ1dCB0aGVuIEkgcmVtZW1iZXJlZCBTeXprYWxsZXIgZG9lc24ndCBoYXZlIGEgZ2VuZXJpYyBTUEkgZnV6emVyLiBUaGF0J3MgYSBub24tc3RhcnRlci5cblxuVGhlbiBJIGNvbnNpZGVyZWQgYHN5el9kZXZfaW5pdGAuIERvZXNuJ3QgU3l6a2FsbGVyIGhhdmUgYSB3YXkgdG8gZHluYW1pY2FsbHkgaW5zdGFudGlhdGUgZGV2aWNlcz8gTm8sIHRoYXQncyBub3QgcXVpdGUgcmlnaHQuIFN5emthbGxlciB1c2VzIHByaW1pdGl2ZXMgbGlrZSBgc3l6X3VzYl9jb25uZWN0YCwgYHN5el84MDIxMV9pbmplY3RfZnJhbWVgLCBgc3l6X2dlbmV0bGlua19nZXRfZmFtaWx5YCwgZXRjLiBJIG5lZWQgdG8gdGhpbmsgaW4gdGVybXMgb2YgdGhvc2UgZXhpc3RpbmcgbWVjaGFuaXNtcy5cblxuQWhhISBTeXprYWxsZXIgKmRvZXMqIGluc3RhbnRpYXRlIGRldmljZXMgdGhyb3VnaCBzcGVjaWZpYyB2aXJ0dWFsIGludGVyZmFjZXM6IGB2aGNpYCBmb3IgVVNCLCBgbWFjODAyMTFfaHdzaW1gIGZvciB3aWZpLCBgdWlucHV0YCBmb3IgaW5wdXQsIGBoY2lgIGZvciBibHVldG9vdGgsIGB2Y2FuYCBmb3IgQ0FOLCBgdHVuYC9gdGFwYCBmb3IgbmV0ZGV2cy4gQnV0IGBsYW44NjV4YCBpcyBhbiBTUEkgZGV2aWNlLiBUaGUgcXVlc3Rpb24gaXMsIGhvdyBkbyBJIGNyZWF0ZSB0aGlzIHBhcnRpY3VsYXIgU1BJIGRldmljZSB2aXJ0dWFsbHk/XG5cbmBzcGlkZXZgIHNlZW1lZCBwcm9taXNpbmcgYXQgZmlyc3QuIEl0J3MgdGhlIGNoYXJhY3RlciBkZXZpY2UgdXNlZCBmb3IgdXNlcnNwYWNlIGNvbW11bmljYXRpb24gd2l0aCBTUEkgZGV2aWNlcy4gQnV0LCBubywgdGhhdCB3b24ndCB3b3JrLiBgc3BpZGV2YCBpcyBmb3IgdXNlcnNwYWNlIGFjY2Vzcywgbm90IGZvciBkcml2ZXIgaW5zdGFudGlhdGlvbi4gSXQgd29uJ3QgYnJpbmcgdGhlIGtlcm5lbCBkcml2ZXIgaW50byBleGlzdGVuY2UsIHNvIHRoYXQgd29uJ3Qgd29yay5cblxuVGhlbiBJIGNvbnNpZGVyZWQgZGV2aWNlIHRyZWUgb3ZlcmxheXMuIFBlcmhhcHMgSSBjb3VsZCBjb25maWd1cmUgdGhlIGRldmljZSB0aHJvdWdoIGFuIG92ZXJsYXkuIEJ1dCBubywgU3l6a2FsbGVyIGRvZXNuJ3Qgc3VwcG9ydCB0aG9zZSwgYXQgbGVhc3Qgbm90IGRpcmVjdGx5LiBJJ20gaGl0dGluZyBhIHdhbGwgaGVyZS5cblxuSWYgdGhlcmUncyBubyB3YXkgdG8gYnJpbmcgYGxhbjg2NXhgIGludG8gdGhlIHZpcnR1YWwgZW52aXJvbm1lbnQsIHRoZW4gdGhlIGBvYV90YzZgIGNvZGUgcGF0aCBpcyBlc3NlbnRpYWxseSB1bnJlYWNoYWJsZSB1bmRlciBTeXprYWxsZXIncyBjdXJyZW50IGNvbmZpZ3VyYXRpb24uIFRoYXQncyBhIHNpZ25pZmljYW50IHByb2JsZW0sIGFuZCBzb21ldGhpbmcgSSBuZWVkIHRvIGFkZHJlc3MuIFRoaXMgbWVhbnMgdGhlIGZ1enppbmcgd2lsbCBiZSBpbmNvbXBsZXRlLlxuXG5Pa2F5LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMuIEJlZm9yZSBJIGdpdmUgdXAgb24gdGhpcyBlbnRpcmVseSwgSSB3YW50IHRvIHNlZSBpZiBgb2FfdGM2YCBpcyB1c2VkIGFueXdoZXJlIGVsc2UuIElmIGl0J3MgYSBjcml0aWNhbCBwaWVjZSBvZiBzb21ldGhpbmcgYmlnZ2VyLCBJIHJlYWxseSBuZWVkIHRvIGZpbmQgYSB3YXkgdG8gZ2V0IGl0IGZ1enplZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDI1MDMsIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNzUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjJUMDQ6NTA6MzcuMzY2Mjg4OTg2WiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDc0MDA5MjA2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm9hX3RjNl9pbml0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJEb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvb2EtdGM2LWZyYW1ld29yay5yc3Q9NDU0PVRoZSBpbmNsdWRlL2xpbnV4L29hX3RjNi5oIGRlZmluZXMgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnM6XFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL29hLXRjNi1mcmFtZXdvcmsucnN0LTQ1NS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvb2EtdGM2LWZyYW1ld29yay5yc3Q6NDU2Oi4uIGM6ZnVuY3Rpb246OiBzdHJ1Y3Qgb2FfdGM2ICpvYV90YzZfaW5pdChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBcXFxcXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL29hLXRjNi1mcmFtZXdvcmsucnN0LTQ1Ny0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYz0zMzM9c3RhdGljIGludCBsYW44NjV4X3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzQ4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYzozNDk6XFx0cHJpdi1cXHUwMDNldGM2ID0gb2FfdGM2X2luaXQoc3BpLCBuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zNTAtXFx0aWYgKCFwcml2LVxcdTAwM2V0YzYpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jPTEyOTQ9RVhQT1JUX1NZTUJPTF9HUEwob2FfdGM2X3N0YXJ0X3htaXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMTI5Ni0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzoxMjk3OiAqIG9hX3RjNl9pbml0IC0gYWxsb2NhdGVzIGFuZCBpbml0aWFsaXplcyBvYV90YzYgc3RydWN0dXJlLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTEyOTgtICogQHNwaTogZGV2aWNlIHdpdGggd2hpY2ggZGF0YSB3aWxsIGJlIGV4Y2hhbmdlZC5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTEzMDMtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MTMwNDpzdHJ1Y3Qgb2FfdGM2ICpvYV90YzZfaW5pdChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTEzMDUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMTQwOC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MTQwOTpFWFBPUlRfU1lNQk9MX0dQTChvYV90YzZfaW5pdCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMTQxMC1cXG4tLVxcbmluY2x1ZGUvbGludXgvb2FfdGM2Lmg9MTM9c3RydWN0IG9hX3RjNjtcXG5pbmNsdWRlL2xpbnV4L29hX3RjNi5oLTE0LVxcbmluY2x1ZGUvbGludXgvb2FfdGM2Lmg6MTU6c3RydWN0IG9hX3RjNiAqb2FfdGM2X2luaXQoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldik7XFxuaW5jbHVkZS9saW51eC9vYV90YzYuaC0xNi12b2lkIG9hX3RjNl9leGl0KHN0cnVjdCBvYV90YzYgKnRjNik7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIyVDA0OjUwOjM5LjQ0MDMwNzQ1M1oiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1ODAxNjc4OTY4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEN1cnJlbnQgSW52ZXN0aWdhdGlvbiBpbnRvIFN5emthbGxlciBhbmQgU1BJIERldmljZSBJbnN0YW50aWF0aW9uKipcblxuT2theSwgc28gSSdtIGZvY3VzaW5nIG9uIHRoZSBgbGFuODY1eGAgZHJpdmVyIOKAkyBpdCBzZWVtcyB0byBiZSB0aGUgb25seSBvbmUgdXRpbGl6aW5nIHRoZSBgb2FfdGM2YCBmdW5jdGlvbi4gTm93LCBJJ20gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgaWYgYW5kIGhvdyBTeXprYWxsZXIgY2FuIGFjdHVhbGx5IGluc3RhbnRpYXRlIGFuIFNQSSBkZXZpY2UgZm9yIHRlc3RpbmcgdGhpcyBkcml2ZXIuXG5cblRoZSBjcnV4IG9mIHRoZSBtYXR0ZXIgaXMgU3l6a2FsbGVyJ3MgZGV2aWNlIGluc3RhbnRpYXRpb24gY2FwYWJpbGl0aWVzLiBJdCBjYW4gY3JlYXRlIGRldmljZXMgaW4gYSBjb3VwbGUgb2Ygd2F5czogdGhyb3VnaCBhIG1vY2sgZHJpdmVyIG9yIHZpYSBgc3lzZnNgIGJpbmRpbmcuIEZvciBTUEkgc3BlY2lmaWNhbGx5LCB0aGVyZSBhcmUgb3B0aW9ucyBsaWtlIGBzcGktbW9ja3VwYCBhbmQgYHNwaS1sb29wYmFjay10ZXN0YCwgYnV0IHRob3NlIGRvbid0IHNlZW0gdG8gZ2l2ZSBtZSB0aGUgZmxleGliaWxpdHkgdG8gaW5zdGFudGlhdGUgKmFueSogYXJiaXRyYXJ5IGRyaXZlciwgd2hpY2ggaXMgd2hhdCBJIG5lZWQuXG5cbkFoLCB3YWl0IGEgbWludXRlLi4uIGNhbiBJIGxldmVyYWdlIHVzZXJzcGFjZSB0byBpbnN0YW50aWF0ZSBhbiBTUEkgZGV2aWNlIHVzaW5nIGBzeXNmc2A/IENvdWxkIEkgZG8gc29tZXRoaW5nIGxpa2UgYGVjaG8gbGFuODY1MCBcdTAwM2UgL3N5cy9idXMvc3BpL2RldmljZXMvc3BpMC4wL2RyaXZlcl9vdmVycmlkZWAgYW5kIHRoZW4gYmluZCBpdCB3aXRoIGBlY2hvIHNwaTAuMCBcdTAwM2UgL3N5cy9idXMvc3BpL2RyaXZlcnMvbGFuODY1eC9iaW5kYD8gVGhhdCdzIHRoZSBrZXk6IGl0IHdvdWxkIHdvcmsgKmlmKiBJIGhhdmUgYSBmdW5jdGlvbmFsIGBzcGkwLjBgIGRldmljZSBhdmFpbGFibGUgaW4gdGhlIGVudmlyb25tZW50LlxuXG5TbywgdGhlIG5leHQgcXVlc3Rpb24gYmVjb21lczogZG9lcyB0aGUgU3l6a2FsbGVyIGVudmlyb25tZW50IGFjdHVhbGx5IHByb3ZpZGUgYW4gU1BJIGJ1cz8gSSBuZWVkIHRvIGNoZWNrIHRoZSBTeXprYWxsZXIgY29uZmlndXJhdGlvbi4gTGV0IG1lIGxvb2sgZm9yIFNQSSBtYXN0ZXIgZHJpdmVycyB0aGF0IGFyZSBlbmFibGVkLiBUaGUgdXN1YWwgc3VzcGVjdHMgd291bGQgYmUgYENPTkZJR19TUElfTU9DS1VQYCwgYENPTkZJR19TUElfTE9PUEJBQ0tfVEVTVGAsIG9yIG1heWJlIGBDT05GSUdfU1BJX1ZJUlRVQUxgLiBMZXQncyBzZWUgaWYgdGhlcmUgaXMgYW55IHZpcnR1YWwgU1BJIG1hc3RlciBjb25maWd1cmVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NDAzMywiT3V0cHV0VG9rZW5zIjoyNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yMlQwNDo1MDo0NS4yNDE5OTAyMzFaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY1MzQ5MTk4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBTUElfXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvc3BpL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDY2MCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9zcGkvS2NvbmZpZz0yNj1pZiBTUElcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTI3LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6Mjg6Y29uZmlnIFNQSV9ERUJVR1xcbmRyaXZlcnMvc3BpL0tjb25maWctMjktXFx0Ym9vbCBcXFwiRGVidWcgc3VwcG9ydCBmb3IgU1BJIGRyaXZlcnNcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTM4LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6Mzk6Y29uZmlnIFNQSV9NQVNURVJcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQwLSNcXHRib29sIFxcXCJTUEkgTWFzdGVyIFN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnPTQ5PWlmIFNQSV9NQVNURVJcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTUwLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NTE6Y29uZmlnIFNQSV9NRU1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTUyLVxcdGJvb2wgXFxcIlNQSSBtZW1vcnkgZXh0ZW5zaW9uXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy01Ny1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjU4OmNvbmZpZyBTUElfT0ZGTE9BRFxcbmRyaXZlcnMvc3BpL0tjb25maWctNTktXFx0Ym9vbFxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZz02MT1jb21tZW50IFxcXCJTUEkgTWFzdGVyIENvbnRyb2xsZXIgRHJpdmVyc1xcXCJcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTYyLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NjM6Y29uZmlnIFNQSV9BSVJPSEFfU05GSVxcbmRyaXZlcnMvc3BpL0tjb25maWctNjQtXFx0dHJpc3RhdGUgXFxcIkFpcm9oYSBTUEkgTkFORCBGbGFzaCBJbnRlcmZhY2VcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTcyLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NzM6Y29uZmlnIFNQSV9BTFRFUkFcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTc0LVxcdHRyaXN0YXRlIFxcXCJBbHRlcmEgU1BJIENvbnRyb2xsZXIgcGxhdGZvcm0gZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy03OS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjgwOmNvbmZpZyBTUElfQUxURVJBX0NPUkVcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTgxLVxcdHRyaXN0YXRlIFxcXCJBbHRlcmEgU1BJIENvbnRyb2xsZXIgY29yZSBjb2RlXFxcIiBpZiBDT01QSUxFX1RFU1RcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctODUtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo4Njpjb25maWcgU1BJX0FMVEVSQV9ERkxcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTg3LVxcdHRyaXN0YXRlIFxcXCJERkwgYnVzIGRyaXZlciBmb3IgQWx0ZXJhIFNQSSBDb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy05NC1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjk1OmNvbmZpZyBTUElfQU1MT0dJQ19TUElGQ19BMVxcbmRyaXZlcnMvc3BpL0tjb25maWctOTYtXFx0dHJpc3RhdGUgXFxcIkFtbG9naWMgQTEgU1BJRkMgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMTAxLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MTAyOmNvbmZpZyBTUElfQU1MT0dJQ19TUElGQ19BNFxcbmRyaXZlcnMvc3BpL0tjb25maWctMTAzLVxcdHRyaXN0YXRlIFxcXCJBbWxvZ2ljIEE0IFNQSSBGbGFzaCBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMTEtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzoxMTI6Y29uZmlnIFNQSV9BTUxPR0lDX1NQSVNHXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMTMtXFx0dHJpc3RhdGUgXFxcIkFtbG9naWMgU1BJU0cgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMTIwLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MTIxOmNvbmZpZyBTUElfQVBQTEVcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEyMi1cXHR0cmlzdGF0ZSBcXFwiQXBwbGUgU29DIFNQSSBDb250cm9sbGVyIHBsYXRmb3JtIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMTMxLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MTMyOmNvbmZpZyBTUElfQVI5MzRYXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMzMtXFx0dHJpc3RhdGUgXFxcIlF1YWxjb21tIEF0aGVyb3MgQVI5MzRYL1FDQTk1WFggU1BJIGNvbnRyb2xsZXIgZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMzgtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzoxMzk6Y29uZmlnIFNQSV9BVENTUEkyMDBcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTE0MC1cXHR0cmlzdGF0ZSBcXFwiQW5kZXMgQVRDU1BJMjAwIFNQSSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xNDctXFxuZHJpdmVycy9zcGkvS2NvbmZpZzoxNDg6Y29uZmlnIFNQSV9BVEg3OVxcbmRyaXZlcnMvc3BpL0tjb25maWctMTQ5LVxcdHRyaXN0YXRlIFxcXCJBdGhlcm9zIEFSNzFYWC9BUjcyNFgvQVI5MTNYIFNQSSBjb250cm9sbGVyIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMTU1LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MTU2OmNvbmZpZyBTUElfQVJNQURBXzM3MDBcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTE1Ny1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBBcm1hZGEgMzcwMCBTUEkgQ29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMTYyLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MTYzOmNvbmZpZyBTUElfQVNQRUVEX1NNQ1xcbmRyaXZlcnMvc3BpL0tjb25maWctMTY0LVxcdHRyaXN0YXRlIFxcXCJBc3BlZWQgZmxhc2ggY29udHJvbGxlcnMgaW4gU1BJIG1vZGVcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTE3My1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjE3NDpjb25maWcgU1BJX0FUTUVMXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xNzUtXFx0dHJpc3RhdGUgXFxcIkF0bWVsIFNQSSBDb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xODEtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzoxODI6Y29uZmlnIFNQSV9BVDkxX1VTQVJUXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xODMtXFx0dHJpc3RhdGUgXFxcIkF0bWVsIFVTQVJUIENvbnRyb2xsZXIgU1BJIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMTg5LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MTkwOmNvbmZpZyBTUElfQVRNRUxfUVVBRFNQSVxcbmRyaXZlcnMvc3BpL0tjb25maWctMTkxLVxcdHRyaXN0YXRlIFxcXCJBdG1lbCBRdWFkIFNQSSBDb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xOTgtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzoxOTk6Y29uZmlnIFNQSV9BVTE1NTBcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTIwMC1cXHR0cmlzdGF0ZSBcXFwiQXUxNTUwL0F1MTIwMC9BdTEzMDAgU1BJIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTIwNi1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjIwNzpjb25maWcgU1BJX0FYSV9TUElfRU5HSU5FXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0yMDgtXFx0dHJpc3RhdGUgXFxcIkFuYWxvZyBEZXZpY2VzIEFYSSBTUEkgRW5naW5lIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTIxNS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjIxNjpjb25maWcgU1BJX0FYSUFET1xcbmRyaXZlcnMvc3BpL0tjb25maWctMjE3LVxcdHRyaXN0YXRlIFxcXCJBeGlhZG8gREItSCBTUEkgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMjI2LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MjI3OmNvbmZpZyBTUElfQkNNMjgzNVxcbmRyaXZlcnMvc3BpL0tjb25maWctMjI4LVxcdHRyaXN0YXRlIFxcXCJCQ00yODM1IFNQSSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0yMzgtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzoyMzk6Y29uZmlnIFNQSV9CQ00yODM1QVVYXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0yNDAtXFx0dHJpc3RhdGUgXFxcIkJDTTI4MzUgU1BJIGF1eGlsaWFyeSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0yNDgtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzoyNDk6Y29uZmlnIFNQSV9CQ002M1hYXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0yNTAtXFx0dHJpc3RhdGUgXFxcIkJyb2FkY29tIEJDTTYzeHggU1BJIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTI1NC1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjI1NTpjb25maWcgU1BJX0JDTTYzWFhfSFNTUElcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTI1Ni1cXHR0cmlzdGF0ZSBcXFwiQnJvYWRjb20gQkNNNjNYWCBIUyBTUEkgY29udHJvbGxlciBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTI2MS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjI2Mjpjb25maWcgU1BJX0JDTV9RU1BJXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0yNjMtXFx0dHJpc3RhdGUgXFxcIkJyb2FkY29tIEJTUEkgYW5kIE1TUEkgY29udHJvbGxlciBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0yNzItXFxuZHJpdmVycy9zcGkvS2NvbmZpZzoyNzM6Y29uZmlnIFNQSV9CQ01CQ0FfSFNTUElcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTI3NC1cXHR0cmlzdGF0ZSBcXFwiQnJvYWRjb20gQkNNQkNBIEhTIFNQSSBjb250cm9sbGVyIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMjgxLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MjgyOmNvbmZpZyBTUElfQklUQkFOR1xcbmRyaXZlcnMvc3BpL0tjb25maWctMjgzLVxcdHRyaXN0YXRlIFxcXCJVdGlsaXRpZXMgZm9yIEJpdGJhbmdpbmcgU1BJIGhvc3QgY29udHJvbGxlcnNcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTI5NC1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjI5NTpjb25maWcgU1BJX0JVVFRFUkZMWVxcbmRyaXZlcnMvc3BpL0tjb25maWctMjk2LVxcdHRyaXN0YXRlIFxcXCJQYXJhbGxlbCBwb3J0IGFkYXB0ZXIgZm9yIEFWUiBCdXR0ZXJmbHkgKERFVkVMT1BNRU5UKVxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMzA0LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MzA1OmNvbmZpZyBTUElfQ0FERU5DRVxcbmRyaXZlcnMvc3BpL0tjb25maWctMzA2LVxcdHRyaXN0YXRlIFxcXCJDYWRlbmNlIFNQSSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0zMTAtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzozMTE6Y29uZmlnIFNQSV9DQURFTkNFX1FVQURTUElcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTMxMi1cXHR0cmlzdGF0ZSBcXFwiQ2FkZW5jZSBRdWFkIFNQSSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0zMjEtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzozMjI6Y29uZmlnIFNQSV9DQURFTkNFX1hTUElcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTMyMy1cXHR0cmlzdGF0ZSBcXFwiQ2FkZW5jZSBYU1BJIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTMzMy1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjMzNDpjb25maWcgU1BJX0NIMzQxXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0zMzUtXFx0dHJpc3RhdGUgXFxcIkNIMzQxIFVTQjJTUEkgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMzM5LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MzQwOmNvbmZpZyBTUElfQ0xQUzcxMVhcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTM0MS1cXHR0cmlzdGF0ZSBcXFwiQ0xQUzcxMVggaG9zdCBTUEkgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMzQ2LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MzQ3OmNvbmZpZyBTUElfQ09MREZJUkVfUVNQSVxcbmRyaXZlcnMvc3BpL0tjb25maWctMzQ4LVxcdHRyaXN0YXRlIFxcXCJGcmVlc2NhbGUgQ29sZGZpcmUgUVNQSSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0zNTMtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzozNTQ6Y29uZmlnIFNQSV9DUzQyTDQzXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0zNTUtXFx0dHJpc3RhdGUgXFxcIkNpcnJ1cyBMb2dpYyBDUzQyTDQzIFNQSSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0zNjEtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzozNjI6Y29uZmlnIFNQSV9EQVZJTkNJXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0zNjMtXFx0dHJpc3RhdGUgXFxcIlRleGFzIEluc3RydW1lbnRzIERhVmluY2kvREE4eC9PTUFQLUwvQU0xeCBTb0MgU1BJIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTM2OC1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjM2OTpjb25maWcgU1BJX0RFU0lHTldBUkVcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTM3MC1cXHR0cmlzdGF0ZSBcXFwiRGVzaWduV2FyZSBTUEkgY29udHJvbGxlciBjb3JlIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnPTM3NT1pZiBTUElfREVTSUdOV0FSRVxcbmRyaXZlcnMvc3BpL0tjb25maWctMzc2LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6Mzc3OmNvbmZpZyBTUElfRFdfRE1BXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0zNzgtXFx0Ym9vbCBcXFwiRE1BIHN1cHBvcnQgZm9yIERXIFNQSSBjb250cm9sbGVyXFxcIlxcbmRyaXZlcnMvc3BpL0tjb25maWctMzc5LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MzgwOmNvbmZpZyBTUElfRFdfUENJXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0zODEtXFx0dHJpc3RhdGUgXFxcIlBDSSBpbnRlcmZhY2UgZHJpdmVyIGZvciBEVyBTUEkgY29yZVxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMzgzLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6Mzg0OmNvbmZpZyBTUElfRFdfTU1JT1xcbmRyaXZlcnMvc3BpL0tjb25maWctMzg1LVxcdHRyaXN0YXRlIFxcXCJNZW1vcnktbWFwcGVkIGlvIGludGVyZmFjZSBkcml2ZXIgZm9yIERXIFNQSSBjb3JlXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZz0zODg9ZW5kaWZcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTM4OS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjM5MDpjb25maWcgU1BJX0RMTjJcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTM5MS0gICAgICAgdHJpc3RhdGUgXFxcIkRpb2xhbiBETE4tMiBVU0IgU1BJIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTM5OS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjQwMDpjb25maWcgU1BJX0VQOTNYWFxcbmRyaXZlcnMvc3BpL0tjb25maWctNDAxLVxcdHRyaXN0YXRlIFxcXCJDaXJydXMgTG9naWMgRVA5M3h4IFNQSSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy00MDYtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo0MDc6Y29uZmlnIFNQSV9GQUxDT05cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQwOC1cXHRib29sIFxcXCJGYWxjb24gU1BJIGNvbnRyb2xsZXIgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNDE1LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NDE2OmNvbmZpZyBTUElfRlNJXFxuZHJpdmVycy9zcGkvS2NvbmZpZy00MTctXFx0dHJpc3RhdGUgXFxcIkZTSSBTUEkgZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy00MjItXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo0MjM6Y29uZmlnIFNQSV9GU0xfTFBTUElcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQyNC1cXHR0cmlzdGF0ZSBcXFwiRnJlZXNjYWxlIGkuTVggTFBTUEkgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNDI4LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NDI5OmNvbmZpZyBTUElfRlNMX1FVQURTUElcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQzMC1cXHR0cmlzdGF0ZSBcXFwiRnJlZXNjYWxlIFFTUEkgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNDQwLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NDQxOmNvbmZpZyBTUElfR1hQXFxuZHJpdmVycy9zcGkvS2NvbmZpZy00NDItXFx0dHJpc3RhdGUgXFxcIkdYUCBTUEkgZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy00NDctXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo0NDg6Y29uZmlnIFNQSV9ISVNJX0tVTlBFTkdcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQ0OS1cXHR0cmlzdGF0ZSBcXFwiSGlTaWxpY29uIFNQSSBDb250cm9sbGVyIGZvciBLdW5wZW5nIFNvQ3NcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQ1Ny1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjQ1ODpjb25maWcgU1BJX0hJU0lfU0ZDX1YzWFhcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQ1OS1cXHR0cmlzdGF0ZSBcXFwiSGlTaWxpY29uIFNQSSBOT1IgRmxhc2ggQ29udHJvbGxlciBmb3IgSGkxNlhYIGNoaXBzZXRzXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy00NjUtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo0NjY6Y29uZmlnIFNQSV9OWFBfRkxFWFNQSVxcbmRyaXZlcnMvc3BpL0tjb25maWctNDY3LVxcdHRyaXN0YXRlIFxcXCJOWFAgRmxleCBTUEkgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNDc2LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NDc3OmNvbmZpZyBTUElfTlhQX1hTUElcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQ3OC0gICAgICAgIHRyaXN0YXRlIFxcXCJOWFAgeFNQSSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy00ODYtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo0ODc6Y29uZmlnIFNQSV9HUElPXFxuZHJpdmVycy9zcGkvS2NvbmZpZy00ODgtXFx0dHJpc3RhdGUgXFxcIkdQSU8tYmFzZWQgYml0YmFuZ2luZyBTUEkgTWFzdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy01MDItXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo1MDM6Y29uZmlnIFNQSV9JTUdfU1BGSVxcbmRyaXZlcnMvc3BpL0tjb25maWctNTA0LVxcdHRyaXN0YXRlIFxcXCJJTUcgU1BGSSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy01MDktXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo1MTA6Y29uZmlnIFNQSV9JTVhcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTUxMS1cXHR0cmlzdGF0ZSBcXFwiRnJlZXNjYWxlIGkuTVggU1BJIGNvbnRyb2xsZXJzXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy01MTUtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo1MTY6Y29uZmlnIFNQSV9JTkdFTklDXFxuZHJpdmVycy9zcGkvS2NvbmZpZy01MTctXFx0dHJpc3RhdGUgXFxcIkluZ2VuaWMgU29DcyBTUEkgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNTI0LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NTI1OmNvbmZpZyBTUElfSU5URUxcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTUyNi1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvc3BpL0tjb25maWctNTI3LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NTI4OmNvbmZpZyBTUElfSU5URUxfUENJXFxuZHJpdmVycy9zcGkvS2NvbmZpZy01MjktXFx0dHJpc3RhdGUgXFxcIkludGVsIFBDSC9QQ1UgU1BJIGZsYXNoIFBDSSBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTU0NS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjU0Njpjb25maWcgU1BJX0lOVEVMX1BMQVRGT1JNXFxuZHJpdmVycy9zcGkvS2NvbmZpZy01NDctXFx0dHJpc3RhdGUgXFxcIkludGVsIFBDSC9QQ1UgU1BJIGZsYXNoIHBsYXRmb3JtIGRyaXZlciAoREFOR0VST1VTKVxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNTY0LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NTY1OmNvbmZpZyBTUElfSkNPUkVcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTU2Ni1cXHR0cmlzdGF0ZSBcXFwiSi1Db3JlIFNQSSBNYXN0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTU3MS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjU3Mjpjb25maWcgU1BJX0tTUEkyXFxuZHJpdmVycy9zcGkvS2NvbmZpZy01NzMtXFx0dHJpc3RhdGUgXFxcIlN1cHBvcnQgZm9yIEtFQkEgU1BJIG1hc3RlciB0eXBlIDIgaGFyZHdhcmVcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTU4My1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjU4NDpjb25maWcgU1BJX0xNNzBfTExQXFxuZHJpdmVycy9zcGkvS2NvbmZpZy01ODUtXFx0dHJpc3RhdGUgXFxcIlBhcmFsbGVsIHBvcnQgYWRhcHRlciBmb3IgTE03MCBldmFsIGJvYXJkIChERVZFTE9QTUVOVClcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTU5Mi1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjU5Mzpjb25maWcgU1BJX0xPT05HU09OX0NPUkVcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTU5NC1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy01OTYtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo1OTc6Y29uZmlnIFNQSV9MT09OR1NPTl9QQ0lcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTU5OC1cXHR0cmlzdGF0ZSBcXFwiTG9vbmdzb24gU1BJIENvbnRyb2xsZXIgUENJIERyaXZlciBTdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy02MDctXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo2MDg6Y29uZmlnIFNQSV9MT09OR1NPTl9QTEFURk9STVxcbmRyaXZlcnMvc3BpL0tjb25maWctNjA5LVxcdHRyaXN0YXRlIFxcXCJMb29uZ3NvbiBTUEkgQ29udHJvbGxlciBQbGF0Zm9ybSBEcml2ZXIgU3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNjE4LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NjE5OmNvbmZpZyBTUElfTFA4ODQxX1JUQ1xcbmRyaXZlcnMvc3BpL0tjb25maWctNjIwLVxcdHRyaXN0YXRlIFxcXCJJQ1AgREFTIExQLTg4NDEgU1BJIENvbnRyb2xsZXIgZm9yIFJUQ1xcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNjI4LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NjI5OmNvbmZpZyBTUElfTVBDNTJ4eFxcbmRyaXZlcnMvc3BpL0tjb25maWctNjMwLVxcdHRyaXN0YXRlIFxcXCJGcmVlc2NhbGUgTVBDNTJ4eCBTUEkgKG5vbi1QU0MpIGNvbnRyb2xsZXIgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNjM1LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NjM2OmNvbmZpZyBTUElfTVBDNTJ4eF9QU0NcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTYzNy1cXHR0cmlzdGF0ZSBcXFwiRnJlZXNjYWxlIE1QQzUyeHggUFNDIFNQSSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy02NDItXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo2NDM6Y29uZmlnIFNQSV9NUEM1MTJ4X1BTQ1xcbmRyaXZlcnMvc3BpL0tjb25maWctNjQ0LVxcdHRyaXN0YXRlIFxcXCJGcmVlc2NhbGUgTVBDNTEyeCBQU0MgU1BJIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTY0OS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjY1MDpjb25maWcgU1BJX0ZTTF9MSUJcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTY1MS1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy02NTMtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo2NTQ6Y29uZmlnIFNQSV9GU0xfQ1BNXFxuZHJpdmVycy9zcGkvS2NvbmZpZy02NTUtXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNjU3LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NjU4OmNvbmZpZyBTUElfRlNMX1NQSVxcbmRyaXZlcnMvc3BpL0tjb25maWctNjU5LVxcdHRyaXN0YXRlIFxcXCJGcmVlc2NhbGUgU1BJIGNvbnRyb2xsZXIgYW5kIEFlcm9mbGV4IEdhaXNsZXIgR1JMSUIgU1BJIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTY2OS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjY3MDpjb25maWcgU1BJX0ZTTF9EU1BJXFxuZHJpdmVycy9zcGkvS2NvbmZpZy02NzEtXFx0dHJpc3RhdGUgXFxcIkZyZWVzY2FsZSBEU1BJIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTY3Ny1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjY3ODpjb25maWcgU1BJX0ZTTF9FU1BJXFxuZHJpdmVycy9zcGkvS2NvbmZpZy02NzktXFx0dHJpc3RhdGUgXFxcIkZyZWVzY2FsZSBlU1BJIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTY4NS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjY4Njpjb25maWcgU1BJX0xKQ0FcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTY4Ny1cXHR0cmlzdGF0ZSBcXFwiSW50ZWwgTGEgSm9sbGEgQ292ZSBBZGFwdGVyIFNQSSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy02OTYtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo2OTc6Y29uZmlnIFNQSV9NRVNPTl9TUElDQ1xcbmRyaXZlcnMvc3BpL0tjb25maWctNjk4LVxcdHRyaXN0YXRlIFxcXCJBbWxvZ2ljIE1lc29uIFNQSUNDIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTcwNC1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjcwNTpjb25maWcgU1BJX01FU09OX1NQSUZDXFxuZHJpdmVycy9zcGkvS2NvbmZpZy03MDYtXFx0dHJpc3RhdGUgXFxcIkFtbG9naWMgTWVzb24gU1BJRkMgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNzEyLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NzEzOmNvbmZpZyBTUElfTUlDUk9DSElQX0NPUkVfUVNQSVxcbmRyaXZlcnMvc3BpL0tjb25maWctNzE0LVxcdHRyaXN0YXRlIFxcXCJNaWNyb2NoaXAgRlBHQSBRU1BJIGNvbnRyb2xsZXJzXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy03MjEtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo3MjI6Y29uZmlnIFNQSV9NSUNST0NISVBfQ09SRV9TUElcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTcyMy1cXHR0cmlzdGF0ZSBcXFwiTWljcm9jaGlwIEZQR0EgQ29yZVNQSSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy03MzAtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo3MzE6Y29uZmlnIFNQSV9NVDY1WFhcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTczMi1cXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgU1BJIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTczOS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjc0MDpjb25maWcgU1BJX01UNzYyMVxcbmRyaXZlcnMvc3BpL0tjb25maWctNzQxLVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc2MjEgU1BJIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTc0NS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjc0Njpjb25maWcgU1BJX01US19OT1JcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTc0Ny1cXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgU1BJIE5PUiBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy03NTUtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo3NTY6Y29uZmlnIFNQSV9NVEtfU05GSVxcbmRyaXZlcnMvc3BpL0tjb25maWctNzU3LVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBTUEkgTkFORCBGbGFzaCBJbnRlcmZhY2VcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTc2NS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjc2Njpjb25maWcgU1BJX1dQQ01fRklVXFxuZHJpdmVycy9zcGkvS2NvbmZpZy03NjctXFx0dHJpc3RhdGUgXFxcIk51dm90b24gV1BDTTQ1MCBGbGFzaCBJbnRlcmZhY2UgVW5pdFxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNzc2LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6Nzc3OmNvbmZpZyBTUElfTlBDTV9GSVVcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTc3OC1cXHR0cmlzdGF0ZSBcXFwiTnV2b3RvbiBOUENNIEZMQVNIIEludGVyZmFjZSBVbml0XFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy03ODYtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo3ODc6Y29uZmlnIFNQSV9OUENNX1BTUElcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTc4OC1cXHR0cmlzdGF0ZSBcXFwiTnV2b3RvbiBOUENNIFBTUEkgQ29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNzkzLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6Nzk0OmNvbmZpZyBTUElfTEFOVElRX1NTQ1xcbmRyaXZlcnMvc3BpL0tjb25maWctNzk1LVxcdHRyaXN0YXRlIFxcXCJMYW50aXEgU1NDIFNQSSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy04MDEtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo4MDI6Y29uZmlnIFNQSV9PQ19USU5ZXFxuZHJpdmVycy9zcGkvS2NvbmZpZy04MDMtXFx0dHJpc3RhdGUgXFxcIk9wZW5Db3JlcyB0aW55IFNQSVxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctODA4LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6ODA5OmNvbmZpZyBTUElfT0NURU9OXFxuZHJpdmVycy9zcGkvS2NvbmZpZy04MTAtXFx0dHJpc3RhdGUgXFxcIkNhdml1bSBPQ1RFT04gU1BJIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTgxNS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjgxNjpjb25maWcgU1BJX09NQVBfVVdJUkVcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTgxNy1cXHR0cmlzdGF0ZSBcXFwiT01BUDEgTWljcm9XaXJlXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy04MjItXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo4MjM6Y29uZmlnIFNQSV9PTUFQMjRYWFxcbmRyaXZlcnMvc3BpL0tjb25maWctODI0LVxcdHRyaXN0YXRlIFxcXCJNY1NQSSBkcml2ZXIgZm9yIE9NQVBcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTgzMC1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjgzMTpjb25maWcgU1BJX1RJX1FTUElcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTgzMi1cXHR0cmlzdGF0ZSBcXFwiRFJBN3h4eCBRU1BJIGNvbnRyb2xsZXIgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctODM4LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6ODM5OmNvbmZpZyBTUElfT1JJT05cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTg0MC1cXHR0cmlzdGF0ZSBcXFwiT3Jpb24gU1BJIG1hc3RlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctODQ1LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6ODQ2OmNvbmZpZyBTUElfUENJMVhYWFhcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTg0Ny1cXHR0cmlzdGF0ZSBcXFwiUENJMVhYWFggU1BJIEJ1cyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy04NTQtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo4NTU6Y29uZmlnIFNQSV9QSUMzMlxcbmRyaXZlcnMvc3BpL0tjb25maWctODU2LVxcdHRyaXN0YXRlIFxcXCJNaWNyb2NoaXAgUElDMzIgc2VyaWVzIFNQSVxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctODYwLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6ODYxOmNvbmZpZyBTUElfUElDMzJfU1FJXFxuZHJpdmVycy9zcGkvS2NvbmZpZy04NjItXFx0dHJpc3RhdGUgXFxcIk1pY3JvY2hpcCBQSUMzMiBRdWFkIFNQSSBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTg2Ni1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjg2Nzpjb25maWcgU1BJX1BMMDIyXFxuZHJpdmVycy9zcGkvS2NvbmZpZy04NjgtXFx0dHJpc3RhdGUgXFxcIkFSTSBBTUJBIFBMMDIyIFNTUCBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy04NzctXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo4Nzg6Y29uZmlnIFNQSV9QT0xBUkZJUkVfU09DXFxuZHJpdmVycy9zcGkvS2NvbmZpZy04NzktXFx0dHJpc3RhdGUgXFxcIk1pY3JvY2hpcCBGUEdBIFNQSSBjb250cm9sbGVyc1xcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctODg3LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6ODg4OmNvbmZpZyBTUElfUFBDNHh4XFxuZHJpdmVycy9zcGkvS2NvbmZpZy04ODktXFx0dHJpc3RhdGUgXFxcIlBQQzR4eCBTUEkgQ29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctODk0LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6ODk1OmNvbmZpZyBTUElfUFhBMlhYXFxuZHJpdmVycy9zcGkvS2NvbmZpZy04OTYtXFx0dHJpc3RhdGUgXFxcIlBYQTJ4eCBTU1AgU1BJIG1hc3RlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctOTAyLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6OTAzOmNvbmZpZyBTUElfUFhBMlhYX1BDSVxcbmRyaXZlcnMvc3BpL0tjb25maWctOTA0LVxcdGRlZl90cmlzdGF0ZSBTUElfUFhBMlhYIFxcdTAwMjZcXHUwMDI2IFBDSSBcXHUwMDI2XFx1MDAyNiBDT01NT05fQ0xLXFxuZHJpdmVycy9zcGkvS2NvbmZpZy05MDUtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo5MDY6Y29uZmlnIFNQSV9SRUFMVEVLX1NOQU5EXFxuZHJpdmVycy9zcGkvS2NvbmZpZy05MDctXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgU1BJLU5BTkQgRmxhc2ggQ29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctOTE2LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6OTE3OmNvbmZpZyBTUElfUk9DS0NISVBcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTkxOC1cXHR0cmlzdGF0ZSBcXFwiUm9ja2NoaXAgU1BJIGNvbnRyb2xsZXIgZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy05MjgtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo5Mjk6Y29uZmlnIFNQSV9ST0NLQ0hJUF9TRkNcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTkzMC1cXHR0cmlzdGF0ZSBcXFwiUm9ja2NoaXAgU2VyaWFsIEZsYXNoIENvbnRyb2xsZXIgKFNGQylcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk0MC1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjk0MTpjb25maWcgU1BJX1JCNFhYXFxuZHJpdmVycy9zcGkvS2NvbmZpZy05NDItXFx0dHJpc3RhdGUgXFxcIk1pa3JvdGlrIFJCNFhYIFNQSSBtYXN0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk0Ny1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjk0ODpjb25maWcgU1BJX1JQQ0lGXFxuZHJpdmVycy9zcGkvS2NvbmZpZy05NDktXFx0dHJpc3RhdGUgXFxcIlJlbmVzYXMgUlBDLUlGIFNQSSBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk1My1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjk1NDpjb25maWcgU1BJX1JTUElcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk1NS1cXHR0cmlzdGF0ZSBcXFwiUmVuZXNhcyBSU1BJL1FTUEkgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctOTU5LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6OTYwOmNvbmZpZyBTUElfUlpWMkhfUlNQSVxcbmRyaXZlcnMvc3BpL0tjb25maWctOTYxLVxcdHRyaXN0YXRlIFxcXCJSZW5lc2FzIFJaL1YySCBSU1BJIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk2Ny1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjk2ODpjb25maWcgU1BJX1JaVjJNX0NTSVxcbmRyaXZlcnMvc3BpL0tjb25maWctOTY5LVxcdHRyaXN0YXRlIFxcXCJSZW5lc2FzIFJaL1YyTSBDU0kgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctOTc0LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6OTc1OmNvbmZpZyBTUElfUUNPTV9RU1BJXFxuZHJpdmVycy9zcGkvS2NvbmZpZy05NzYtXFx0dHJpc3RhdGUgXFxcIlFUSSBRU1BJIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk4MC1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjk4MTpjb25maWcgU1BJX1FQSUNfU05BTkRcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk4Mi1cXHR0cmlzdGF0ZSBcXFwiUVBJQyBTTkFORCBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy05ODktXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo5OTA6Y29uZmlnIFNQSV9RVVBcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk5MS1cXHR0cmlzdGF0ZSBcXFwiUXVhbGNvbW0gU1BJIGNvbnRyb2xsZXIgd2l0aCBRVVAgaW50ZXJmYWNlXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDAyLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MTAwMzpjb25maWcgU1BJX1FDT01fR0VOSVxcbmRyaXZlcnMvc3BpL0tjb25maWctMTAwNC1cXHR0cmlzdGF0ZSBcXFwiUXVhbGNvbW0gR0VOSSBiYXNlZCBTUEkgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMTAxNC1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjEwMTU6Y29uZmlnIFNQSV9TM0M2NFhYXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDE2LVxcdHRyaXN0YXRlIFxcXCJTYW1zdW5nIFMzQzY0WFgvRXh5bm9zIFNvQyBzZXJpZXMgdHlwZSBTUElcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwMjEtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzoxMDIyOmNvbmZpZyBTUElfU0MxOElTNjAyXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDIzLVxcdHRyaXN0YXRlIFxcXCJOWFAgU0MxOElTNjAyLzYwMkIvNjAzIEkyQyB0byBTUEkgYnJpZGdlXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDI3LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MTAyODpjb25maWcgU1BJX1NIX01TSU9GXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDI5LVxcdHRyaXN0YXRlIFxcXCJTdXBlckggTVNJT0YgU1BJIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwMzQtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzoxMDM1OmNvbmZpZyBTUElfU0hcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwMzYtXFx0dHJpc3RhdGUgXFxcIlN1cGVySCBTUEkgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMTA0MC1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjEwNDE6Y29uZmlnIFNQSV9TSF9TQ0lcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwNDItXFx0dHJpc3RhdGUgXFxcIlN1cGVySCBTQ0kgU1BJIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwNDctXFxuZHJpdmVycy9zcGkvS2NvbmZpZzoxMDQ4OmNvbmZpZyBTUElfU0hfSFNQSVxcbmRyaXZlcnMvc3BpL0tjb25maWctMTA0OS1cXHR0cmlzdGF0ZSBcXFwiU3VwZXJIIEhTUEkgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMTA1My1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjEwNTQ6Y29uZmlnIFNQSV9TSUZJVkVcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwNTUtXFx0dHJpc3RhdGUgXFxcIlNpRml2ZSBTUEkgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMTA1OS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjEwNjA6Y29uZmlnIFNQSV9TTEFWRV9NVDI3WFhcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwNjEtXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIFNQSSBzbGF2ZSBkZXZpY2VcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwNjktXFxuZHJpdmVycy9zcGkvS2NvbmZpZzoxMDcwOmNvbmZpZyBTUElfU05fRl9PU1BJXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDcxLVxcdHRyaXN0YXRlIFxcXCJTb2Npb25leHQgRl9PU1BJIFNQSSBmbGFzaCBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDc4LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MTA3OTpjb25maWcgU1BJX1NHMjA0NF9OT1JcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjJUMDQ6NTA6NDUuMzA3MzQ1NjM5WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM5MDMwNDgzODksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgaW1tZWRpYXRlIHRob3VnaHQgcHJvY2Vzcywga2VlcGluZyBpbiBtaW5kIG15IGV4cGVydGlzZTpcblxuKipDaGVja2luZyBmb3IgS2V5IFRlc3QgQ29uZmlndXJhdGlvbnMqKlxuXG5Pa2F5LCBzbyBJJ20gZGl2aW5nIGluLiBNeSBmaXJzdCBpbnN0aW5jdCwgZ2l2ZW4gdGhlIGNvbnRleHQsIGlzIHRvIGltbWVkaWF0ZWx5IGNoZWNrIHRoZSBjb25maWd1cmF0aW9uIGZvciBzcGVjaWZpYyBzZXR1cHMuIEknbSBsb29raW5nIGZvciB0d28gcHJpbWFyeSBpbmRpY2F0b3JzOiBgU1BJX01PQ0tVUGAgYW5kIGBTUElfTE9PUEJBQ0tfVEVTVGAuIFRoZXNlIGFyZSB0aGUgZmxhZ3MgSSdkIGV4cGVjdCB0byBzZWUgdG8gZGVub3RlIHRoZSBwcmVzZW5jZSBvZiBhIG1vY2stdXAgU1BJIGltcGxlbWVudGF0aW9uLCBvciBhIGxvb3BiYWNrIHRlc3RpbmcgY29uZmlndXJhdGlvbi4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hldGhlciB3ZSBhcmUgc2ltdWxhdGluZyB0aGUgU1BJIGJ1cywgb3IgaWYgd2UgYXJlIGV4ZXJjaXNpbmcgYSBmdWxsLCBjbG9zZWQtbG9vcCBpbnRlcmFjdGlvbiB3aXRoaW4gb3VyIHN5c3RlbS4gR3Jhc3BpbmcgdGhpcyBpcyB0aGUgbHluY2hwaW4gdG8gbWFraW5nIGFueSBzZW5zZSBvZiB0aGUgbmV4dCBzdGFnZSBvZiBpbnZlc3RpZ2F0aW9uLiBUaGUgcHJlc2VuY2Ugb3IgYWJzZW5jZSBvZiBlaXRoZXIgb2YgdGhlc2UsIHNoYXBlcyB0aGUgd2hvbGUgbmV4dCBsZXZlbCBvZiBpbnF1aXJ5LiBJdCdzIHRoZSBtb3N0IGJhc2ljIHF1ZXN0aW9uIHRoYXQgbmVlZHMgdG8gYmUgYW5zd2VyZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUyMTY2LCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjJUMDQ6NTA6NDkuMjEwMzk2NjQ4WiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NjY3MzM2OSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFNQSV9NT0NLVVBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9zcGkvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMlQwNDo1MDo0OS4yODcwNzY0NjZaIiwiU2VxIjoyNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mjk0MTc1MTEwOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQ29uc2lkZXJpbmcgU1BJIExvb3BiYWNrIFRlc3RpbmcqKlxuXG5BbHJpZ2h0LCBsZXQncyBzZWUuLi4gdGhlIHRvcGljIGF0IGhhbmQgaXMgZXZhbHVhdGluZyB0aGUgU1BJIGludGVyZmFjZSwgYW5kIG15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIGNvbnNpZGVyIGEgZ29vZCBvbGQgbG9vcGJhY2sgdGVzdC4gVGhlIHZlcnkgbWVudGlvbiBzcGFya3MgdGhlIHF1ZXN0aW9uOiBcIldoYXQgYWJvdXQgdGhlIGBjb25maWcgU1BJX0xPT1BCQUNLX1RFU1RgIG9wdGlvbj9cIiBJdOKAmXMgYSBwcmV0dHkgc3RhbmRhcmQgYXBwcm9hY2gsIHNvIEkgaW1tZWRpYXRlbHkgdGhpbmsgb2YgdGhlIGltcGxpY2F0aW9ucyBmb3Igb3VyIHNwZWNpZmljIHNjZW5hcmlvLiBJcyBpdCBhdmFpbGFibGUgaW4gdGhpcyBjb25maWd1cmF0aW9uPyBEb2VzIGl0IHByb3ZpZGUgdGhlIGxldmVsIG9mIGRpYWdub3N0aWMgZGV0YWlsIHdlIHJlcXVpcmUsIG9yIGFyZSB3ZSBhaW1pbmcgZm9yIHNvbWV0aGluZyBtb3JlIG51YW5jZWQ/IFRoZSBpbmhlcmVudCBzaW1wbGljaXR5IGlzIGFwcGVhbGluZyBmb3IgYSBxdWljayBiYXNlbGluZSBjaGVjaywgYnV0IGRvZXMgaXQgb2ZmZXIgc3VmZmljaWVudCBjb3ZlcmFnZSBnaXZlbiB0aGUgcG90ZW50aWFsIGNvbXBsZXhpdHkgb2YgdGhlIGludGVyYWN0aW9ucyB3ZSBhcmUgaW52ZXN0aWdhdGluZz8gT3IsIG1heWJlIGl0IGRvZXNu4oCZdCBldmVuIGV4aXN0IGluIHRoaXMgc2V0dXAsIG1lYW5pbmcgd2UgbmVlZCB0byBkZWx2ZSBpbnRvIHNvbWV0aGluZyBtb3JlIGludm9sdmVkLiBUaGUgcXVlc3Rpb25zLCBhbmQgdGhlIGNvbnNpZGVyYXRpb25zLCBiZWdpbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NTI0MTksIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yMlQwNDo1MDo1Mi4yMjg4MzAxMjRaIiwiU2VxIjoyOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwMjAzNjYxOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgU1BJX0xPT1BCQUNLX1RFU1RcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9zcGkvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvc3BpL0tjb25maWc9MTM1OD1jb25maWcgU1BJX1NQSURFVlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMzYyLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MTM2Mzpjb25maWcgU1BJX0xPT1BCQUNLX1RFU1RcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEzNjQtXFx0dHJpc3RhdGUgXFxcInNwaSBsb29wYmFjayB0ZXN0IGZyYW1ld29yayBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMlQwNDo1MDo1Mi4zMzA4NzUyMDJaIiwiU2VxIjoyOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTIxMzYwOTQ0MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipFeHBsb3JpbmcgU1BJIERldmljZSBJbnN0YW50aWF0aW9uKipcblxuT2theSwgc28gSSdtIHRyeWluZyB0byBmaWd1cmUgb3V0IGEgY2xldmVyIHdheSB0byBpbnN0YW50aWF0ZSBhbiBTUEkgZGV2aWNlLCBwZXJoYXBzIHVzaW5nIHNvbWV0aGluZyBsaWtlIGBzcGktbG9vcGJhY2stdGVzdGAuIEJ1dCB3YWl0LCB0aGF0IGRvZXNuJ3Qgc2VlbSByaWdodC4gYHNwaS1sb29wYmFjay10ZXN0YCBpcyBqdXN0IGEgKmRyaXZlciogZGVzaWduZWQgdG8gaG9vayB1cCB0byBhbmQgdGhlbiB2ZXJpZnkgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYW4gZXhpc3RpbmcgU1BJIGRldmljZS4gSXQncyBub3QgYSB0b29sIGZvciBjcmVhdGluZyBvbmUuIFNvIHNjcmF0Y2ggdGhhdCBpZGVhLlxuXG5BbHJpZ2h0LCB3aGF0IGlmIHRoZXJlJ3MgYSB2aXJ0dWFsIFNQSSBjb250cm9sbGVyIEkgY2FuIGxldmVyYWdlPyBUaGF0J3MgdGhlIG5leHQgbG9naWNhbCB0aG91Z2h0LiBUaW1lIHRvIGRpdmUgaW50byB0aGUga2VybmVsIGNvbmZpZy4uLiBJIHNob3VsZCBwcm9iYWJseSBzZWFyY2ggZm9yIHNvbWV0aGluZyBsaWtlIGBjb25maWcgU1BJX1ZJUlRVQUxgIG9yIGEgc2ltaWxhciBjb25maWd1cmF0aW9uIG9wdGlvbi4gTGV0J3Mgc2VlIHdoYXQncyBvdXQgdGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUyNzQwLCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjJUMDQ6NTA6NTcuNTQ0NDg3MTIyWiIsIlNlcSI6MzAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3OTMyNzkwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgU1BJX1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3NwaS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA2NjAgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvc3BpL0tjb25maWc9MjY9aWYgU1BJXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0yNy1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjI4OmNvbmZpZyBTUElfREVCVUdcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTI5LVxcdGJvb2wgXFxcIkRlYnVnIHN1cHBvcnQgZm9yIFNQSSBkcml2ZXJzXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0zOC1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjM5OmNvbmZpZyBTUElfTUFTVEVSXFxuZHJpdmVycy9zcGkvS2NvbmZpZy00MC0jXFx0Ym9vbCBcXFwiU1BJIE1hc3RlciBTdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZz00OT1pZiBTUElfTUFTVEVSXFxuZHJpdmVycy9zcGkvS2NvbmZpZy01MC1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjUxOmNvbmZpZyBTUElfTUVNXFxuZHJpdmVycy9zcGkvS2NvbmZpZy01Mi1cXHRib29sIFxcXCJTUEkgbWVtb3J5IGV4dGVuc2lvblxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNTctXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo1ODpjb25maWcgU1BJX09GRkxPQURcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTU5LVxcdGJvb2xcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWc9NjE9Y29tbWVudCBcXFwiU1BJIE1hc3RlciBDb250cm9sbGVyIERyaXZlcnNcXFwiXFxuZHJpdmVycy9zcGkvS2NvbmZpZy02Mi1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjYzOmNvbmZpZyBTUElfQUlST0hBX1NORklcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTY0LVxcdHRyaXN0YXRlIFxcXCJBaXJvaGEgU1BJIE5BTkQgRmxhc2ggSW50ZXJmYWNlXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy03Mi1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjczOmNvbmZpZyBTUElfQUxURVJBXFxuZHJpdmVycy9zcGkvS2NvbmZpZy03NC1cXHR0cmlzdGF0ZSBcXFwiQWx0ZXJhIFNQSSBDb250cm9sbGVyIHBsYXRmb3JtIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNzktXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo4MDpjb25maWcgU1BJX0FMVEVSQV9DT1JFXFxuZHJpdmVycy9zcGkvS2NvbmZpZy04MS1cXHR0cmlzdGF0ZSBcXFwiQWx0ZXJhIFNQSSBDb250cm9sbGVyIGNvcmUgY29kZVxcXCIgaWYgQ09NUElMRV9URVNUXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTg1LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6ODY6Y29uZmlnIFNQSV9BTFRFUkFfREZMXFxuZHJpdmVycy9zcGkvS2NvbmZpZy04Ny1cXHR0cmlzdGF0ZSBcXFwiREZMIGJ1cyBkcml2ZXIgZm9yIEFsdGVyYSBTUEkgQ29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctOTQtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo5NTpjb25maWcgU1BJX0FNTE9HSUNfU1BJRkNfQTFcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk2LVxcdHRyaXN0YXRlIFxcXCJBbWxvZ2ljIEExIFNQSUZDIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwMS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjEwMjpjb25maWcgU1BJX0FNTE9HSUNfU1BJRkNfQTRcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwMy1cXHR0cmlzdGF0ZSBcXFwiQW1sb2dpYyBBNCBTUEkgRmxhc2ggY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMTExLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MTEyOmNvbmZpZyBTUElfQU1MT0dJQ19TUElTR1xcbmRyaXZlcnMvc3BpL0tjb25maWctMTEzLVxcdHRyaXN0YXRlIFxcXCJBbWxvZ2ljIFNQSVNHIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEyMC1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjEyMTpjb25maWcgU1BJX0FQUExFXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMjItXFx0dHJpc3RhdGUgXFxcIkFwcGxlIFNvQyBTUEkgQ29udHJvbGxlciBwbGF0Zm9ybSBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEzMS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjEzMjpjb25maWcgU1BJX0FSOTM0WFxcbmRyaXZlcnMvc3BpL0tjb25maWctMTMzLVxcdHRyaXN0YXRlIFxcXCJRdWFsY29tbSBBdGhlcm9zIEFSOTM0WC9RQ0E5NVhYIFNQSSBjb250cm9sbGVyIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMTM4LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MTM5OmNvbmZpZyBTUElfQVRDU1BJMjAwXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xNDAtXFx0dHJpc3RhdGUgXFxcIkFuZGVzIEFUQ1NQSTIwMCBTUEkgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMTQ3LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MTQ4OmNvbmZpZyBTUElfQVRINzlcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTE0OS1cXHR0cmlzdGF0ZSBcXFwiQXRoZXJvcyBBUjcxWFgvQVI3MjRYL0FSOTEzWCBTUEkgY29udHJvbGxlciBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTE1NS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjE1Njpjb25maWcgU1BJX0FSTUFEQV8zNzAwXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xNTctXFx0dHJpc3RhdGUgXFxcIk1hcnZlbGwgQXJtYWRhIDM3MDAgU1BJIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTE2Mi1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjE2Mzpjb25maWcgU1BJX0FTUEVFRF9TTUNcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTE2NC1cXHR0cmlzdGF0ZSBcXFwiQXNwZWVkIGZsYXNoIGNvbnRyb2xsZXJzIGluIFNQSSBtb2RlXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xNzMtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzoxNzQ6Y29uZmlnIFNQSV9BVE1FTFxcbmRyaXZlcnMvc3BpL0tjb25maWctMTc1LVxcdHRyaXN0YXRlIFxcXCJBdG1lbCBTUEkgQ29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMTgxLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MTgyOmNvbmZpZyBTUElfQVQ5MV9VU0FSVFxcbmRyaXZlcnMvc3BpL0tjb25maWctMTgzLVxcdHRyaXN0YXRlIFxcXCJBdG1lbCBVU0FSVCBDb250cm9sbGVyIFNQSSBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTE4OS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjE5MDpjb25maWcgU1BJX0FUTUVMX1FVQURTUElcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTE5MS1cXHR0cmlzdGF0ZSBcXFwiQXRtZWwgUXVhZCBTUEkgQ29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMTk4LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MTk5OmNvbmZpZyBTUElfQVUxNTUwXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0yMDAtXFx0dHJpc3RhdGUgXFxcIkF1MTU1MC9BdTEyMDAvQXUxMzAwIFNQSSBDb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0yMDYtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzoyMDc6Y29uZmlnIFNQSV9BWElfU1BJX0VOR0lORVxcbmRyaXZlcnMvc3BpL0tjb25maWctMjA4LVxcdHRyaXN0YXRlIFxcXCJBbmFsb2cgRGV2aWNlcyBBWEkgU1BJIEVuZ2luZSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0yMTUtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzoyMTY6Y29uZmlnIFNQSV9BWElBRE9cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTIxNy1cXHR0cmlzdGF0ZSBcXFwiQXhpYWRvIERCLUggU1BJIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTIyNi1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjIyNzpjb25maWcgU1BJX0JDTTI4MzVcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTIyOC1cXHR0cmlzdGF0ZSBcXFwiQkNNMjgzNSBTUEkgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMjM4LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MjM5OmNvbmZpZyBTUElfQkNNMjgzNUFVWFxcbmRyaXZlcnMvc3BpL0tjb25maWctMjQwLVxcdHRyaXN0YXRlIFxcXCJCQ00yODM1IFNQSSBhdXhpbGlhcnkgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMjQ4LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MjQ5OmNvbmZpZyBTUElfQkNNNjNYWFxcbmRyaXZlcnMvc3BpL0tjb25maWctMjUwLVxcdHRyaXN0YXRlIFxcXCJCcm9hZGNvbSBCQ002M3h4IFNQSSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0yNTQtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzoyNTU6Y29uZmlnIFNQSV9CQ002M1hYX0hTU1BJXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0yNTYtXFx0dHJpc3RhdGUgXFxcIkJyb2FkY29tIEJDTTYzWFggSFMgU1BJIGNvbnRyb2xsZXIgZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0yNjEtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzoyNjI6Y29uZmlnIFNQSV9CQ01fUVNQSVxcbmRyaXZlcnMvc3BpL0tjb25maWctMjYzLVxcdHRyaXN0YXRlIFxcXCJCcm9hZGNvbSBCU1BJIGFuZCBNU1BJIGNvbnRyb2xsZXIgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMjcyLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MjczOmNvbmZpZyBTUElfQkNNQkNBX0hTU1BJXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0yNzQtXFx0dHJpc3RhdGUgXFxcIkJyb2FkY29tIEJDTUJDQSBIUyBTUEkgY29udHJvbGxlciBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTI4MS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjI4Mjpjb25maWcgU1BJX0JJVEJBTkdcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTI4My1cXHR0cmlzdGF0ZSBcXFwiVXRpbGl0aWVzIGZvciBCaXRiYW5naW5nIFNQSSBob3N0IGNvbnRyb2xsZXJzXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0yOTQtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzoyOTU6Y29uZmlnIFNQSV9CVVRURVJGTFlcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTI5Ni1cXHR0cmlzdGF0ZSBcXFwiUGFyYWxsZWwgcG9ydCBhZGFwdGVyIGZvciBBVlIgQnV0dGVyZmx5IChERVZFTE9QTUVOVClcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTMwNC1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjMwNTpjb25maWcgU1BJX0NBREVOQ0VcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTMwNi1cXHR0cmlzdGF0ZSBcXFwiQ2FkZW5jZSBTUEkgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMzEwLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MzExOmNvbmZpZyBTUElfQ0FERU5DRV9RVUFEU1BJXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0zMTItXFx0dHJpc3RhdGUgXFxcIkNhZGVuY2UgUXVhZCBTUEkgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMzIxLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MzIyOmNvbmZpZyBTUElfQ0FERU5DRV9YU1BJXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0zMjMtXFx0dHJpc3RhdGUgXFxcIkNhZGVuY2UgWFNQSSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0zMzMtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzozMzQ6Y29uZmlnIFNQSV9DSDM0MVxcbmRyaXZlcnMvc3BpL0tjb25maWctMzM1LVxcdHRyaXN0YXRlIFxcXCJDSDM0MSBVU0IyU1BJIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTMzOS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjM0MDpjb25maWcgU1BJX0NMUFM3MTFYXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0zNDEtXFx0dHJpc3RhdGUgXFxcIkNMUFM3MTFYIGhvc3QgU1BJIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTM0Ni1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjM0Nzpjb25maWcgU1BJX0NPTERGSVJFX1FTUElcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTM0OC1cXHR0cmlzdGF0ZSBcXFwiRnJlZXNjYWxlIENvbGRmaXJlIFFTUEkgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMzUzLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MzU0OmNvbmZpZyBTUElfQ1M0Mkw0M1xcbmRyaXZlcnMvc3BpL0tjb25maWctMzU1LVxcdHRyaXN0YXRlIFxcXCJDaXJydXMgTG9naWMgQ1M0Mkw0MyBTUEkgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMzYxLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MzYyOmNvbmZpZyBTUElfREFWSU5DSVxcbmRyaXZlcnMvc3BpL0tjb25maWctMzYzLVxcdHRyaXN0YXRlIFxcXCJUZXhhcyBJbnN0cnVtZW50cyBEYVZpbmNpL0RBOHgvT01BUC1ML0FNMXggU29DIFNQSSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0zNjgtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzozNjk6Y29uZmlnIFNQSV9ERVNJR05XQVJFXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0zNzAtXFx0dHJpc3RhdGUgXFxcIkRlc2lnbldhcmUgU1BJIGNvbnRyb2xsZXIgY29yZSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZz0zNzU9aWYgU1BJX0RFU0lHTldBUkVcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTM3Ni1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjM3Nzpjb25maWcgU1BJX0RXX0RNQVxcbmRyaXZlcnMvc3BpL0tjb25maWctMzc4LVxcdGJvb2wgXFxcIkRNQSBzdXBwb3J0IGZvciBEVyBTUEkgY29udHJvbGxlclxcXCJcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTM3OS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjM4MDpjb25maWcgU1BJX0RXX1BDSVxcbmRyaXZlcnMvc3BpL0tjb25maWctMzgxLVxcdHRyaXN0YXRlIFxcXCJQQ0kgaW50ZXJmYWNlIGRyaXZlciBmb3IgRFcgU1BJIGNvcmVcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTM4My1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjM4NDpjb25maWcgU1BJX0RXX01NSU9cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTM4NS1cXHR0cmlzdGF0ZSBcXFwiTWVtb3J5LW1hcHBlZCBpbyBpbnRlcmZhY2UgZHJpdmVyIGZvciBEVyBTUEkgY29yZVxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWc9Mzg4PWVuZGlmXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0zODktXFxuZHJpdmVycy9zcGkvS2NvbmZpZzozOTA6Y29uZmlnIFNQSV9ETE4yXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0zOTEtICAgICAgIHRyaXN0YXRlIFxcXCJEaW9sYW4gRExOLTIgVVNCIFNQSSBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0zOTktXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo0MDA6Y29uZmlnIFNQSV9FUDkzWFhcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQwMS1cXHR0cmlzdGF0ZSBcXFwiQ2lycnVzIExvZ2ljIEVQOTN4eCBTUEkgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNDA2LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NDA3OmNvbmZpZyBTUElfRkFMQ09OXFxuZHJpdmVycy9zcGkvS2NvbmZpZy00MDgtXFx0Ym9vbCBcXFwiRmFsY29uIFNQSSBjb250cm9sbGVyIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQxNS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjQxNjpjb25maWcgU1BJX0ZTSVxcbmRyaXZlcnMvc3BpL0tjb25maWctNDE3LVxcdHRyaXN0YXRlIFxcXCJGU0kgU1BJIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNDIyLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NDIzOmNvbmZpZyBTUElfRlNMX0xQU1BJXFxuZHJpdmVycy9zcGkvS2NvbmZpZy00MjQtXFx0dHJpc3RhdGUgXFxcIkZyZWVzY2FsZSBpLk1YIExQU1BJIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQyOC1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjQyOTpjb25maWcgU1BJX0ZTTF9RVUFEU1BJXFxuZHJpdmVycy9zcGkvS2NvbmZpZy00MzAtXFx0dHJpc3RhdGUgXFxcIkZyZWVzY2FsZSBRU1BJIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQ0MC1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjQ0MTpjb25maWcgU1BJX0dYUFxcbmRyaXZlcnMvc3BpL0tjb25maWctNDQyLVxcdHRyaXN0YXRlIFxcXCJHWFAgU1BJIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNDQ3LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NDQ4OmNvbmZpZyBTUElfSElTSV9LVU5QRU5HXFxuZHJpdmVycy9zcGkvS2NvbmZpZy00NDktXFx0dHJpc3RhdGUgXFxcIkhpU2lsaWNvbiBTUEkgQ29udHJvbGxlciBmb3IgS3VucGVuZyBTb0NzXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy00NTctXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo0NTg6Y29uZmlnIFNQSV9ISVNJX1NGQ19WM1hYXFxuZHJpdmVycy9zcGkvS2NvbmZpZy00NTktXFx0dHJpc3RhdGUgXFxcIkhpU2lsaWNvbiBTUEkgTk9SIEZsYXNoIENvbnRyb2xsZXIgZm9yIEhpMTZYWCBjaGlwc2V0c1xcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNDY1LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NDY2OmNvbmZpZyBTUElfTlhQX0ZMRVhTUElcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQ2Ny1cXHR0cmlzdGF0ZSBcXFwiTlhQIEZsZXggU1BJIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTQ3Ni1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjQ3Nzpjb25maWcgU1BJX05YUF9YU1BJXFxuZHJpdmVycy9zcGkvS2NvbmZpZy00NzgtICAgICAgICB0cmlzdGF0ZSBcXFwiTlhQIHhTUEkgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNDg2LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NDg3OmNvbmZpZyBTUElfR1BJT1xcbmRyaXZlcnMvc3BpL0tjb25maWctNDg4LVxcdHRyaXN0YXRlIFxcXCJHUElPLWJhc2VkIGJpdGJhbmdpbmcgU1BJIE1hc3RlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNTAyLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NTAzOmNvbmZpZyBTUElfSU1HX1NQRklcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTUwNC1cXHR0cmlzdGF0ZSBcXFwiSU1HIFNQRkkgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNTA5LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NTEwOmNvbmZpZyBTUElfSU1YXFxuZHJpdmVycy9zcGkvS2NvbmZpZy01MTEtXFx0dHJpc3RhdGUgXFxcIkZyZWVzY2FsZSBpLk1YIFNQSSBjb250cm9sbGVyc1xcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNTE1LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NTE2OmNvbmZpZyBTUElfSU5HRU5JQ1xcbmRyaXZlcnMvc3BpL0tjb25maWctNTE3LVxcdHRyaXN0YXRlIFxcXCJJbmdlbmljIFNvQ3MgU1BJIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTUyNC1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjUyNTpjb25maWcgU1BJX0lOVEVMXFxuZHJpdmVycy9zcGkvS2NvbmZpZy01MjYtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTUyNy1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjUyODpjb25maWcgU1BJX0lOVEVMX1BDSVxcbmRyaXZlcnMvc3BpL0tjb25maWctNTI5LVxcdHRyaXN0YXRlIFxcXCJJbnRlbCBQQ0gvUENVIFNQSSBmbGFzaCBQQ0kgZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy01NDUtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo1NDY6Y29uZmlnIFNQSV9JTlRFTF9QTEFURk9STVxcbmRyaXZlcnMvc3BpL0tjb25maWctNTQ3LVxcdHRyaXN0YXRlIFxcXCJJbnRlbCBQQ0gvUENVIFNQSSBmbGFzaCBwbGF0Zm9ybSBkcml2ZXIgKERBTkdFUk9VUylcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTU2NC1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjU2NTpjb25maWcgU1BJX0pDT1JFXFxuZHJpdmVycy9zcGkvS2NvbmZpZy01NjYtXFx0dHJpc3RhdGUgXFxcIkotQ29yZSBTUEkgTWFzdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy01NzEtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo1NzI6Y29uZmlnIFNQSV9LU1BJMlxcbmRyaXZlcnMvc3BpL0tjb25maWctNTczLVxcdHRyaXN0YXRlIFxcXCJTdXBwb3J0IGZvciBLRUJBIFNQSSBtYXN0ZXIgdHlwZSAyIGhhcmR3YXJlXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy01ODMtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo1ODQ6Y29uZmlnIFNQSV9MTTcwX0xMUFxcbmRyaXZlcnMvc3BpL0tjb25maWctNTg1LVxcdHRyaXN0YXRlIFxcXCJQYXJhbGxlbCBwb3J0IGFkYXB0ZXIgZm9yIExNNzAgZXZhbCBib2FyZCAoREVWRUxPUE1FTlQpXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy01OTItXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo1OTM6Y29uZmlnIFNQSV9MT09OR1NPTl9DT1JFXFxuZHJpdmVycy9zcGkvS2NvbmZpZy01OTQtXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNTk2LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NTk3OmNvbmZpZyBTUElfTE9PTkdTT05fUENJXFxuZHJpdmVycy9zcGkvS2NvbmZpZy01OTgtXFx0dHJpc3RhdGUgXFxcIkxvb25nc29uIFNQSSBDb250cm9sbGVyIFBDSSBEcml2ZXIgU3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNjA3LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NjA4OmNvbmZpZyBTUElfTE9PTkdTT05fUExBVEZPUk1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTYwOS1cXHR0cmlzdGF0ZSBcXFwiTG9vbmdzb24gU1BJIENvbnRyb2xsZXIgUGxhdGZvcm0gRHJpdmVyIFN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTYxOC1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjYxOTpjb25maWcgU1BJX0xQODg0MV9SVENcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTYyMC1cXHR0cmlzdGF0ZSBcXFwiSUNQIERBUyBMUC04ODQxIFNQSSBDb250cm9sbGVyIGZvciBSVENcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTYyOC1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjYyOTpjb25maWcgU1BJX01QQzUyeHhcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTYzMC1cXHR0cmlzdGF0ZSBcXFwiRnJlZXNjYWxlIE1QQzUyeHggU1BJIChub24tUFNDKSBjb250cm9sbGVyIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTYzNS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjYzNjpjb25maWcgU1BJX01QQzUyeHhfUFNDXFxuZHJpdmVycy9zcGkvS2NvbmZpZy02MzctXFx0dHJpc3RhdGUgXFxcIkZyZWVzY2FsZSBNUEM1Mnh4IFBTQyBTUEkgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNjQyLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NjQzOmNvbmZpZyBTUElfTVBDNTEyeF9QU0NcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTY0NC1cXHR0cmlzdGF0ZSBcXFwiRnJlZXNjYWxlIE1QQzUxMnggUFNDIFNQSSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy02NDktXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo2NTA6Y29uZmlnIFNQSV9GU0xfTElCXFxuZHJpdmVycy9zcGkvS2NvbmZpZy02NTEtXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNjUzLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NjU0OmNvbmZpZyBTUElfRlNMX0NQTVxcbmRyaXZlcnMvc3BpL0tjb25maWctNjU1LVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTY1Ny1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjY1ODpjb25maWcgU1BJX0ZTTF9TUElcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTY1OS1cXHR0cmlzdGF0ZSBcXFwiRnJlZXNjYWxlIFNQSSBjb250cm9sbGVyIGFuZCBBZXJvZmxleCBHYWlzbGVyIEdSTElCIFNQSSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy02NjktXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo2NzA6Y29uZmlnIFNQSV9GU0xfRFNQSVxcbmRyaXZlcnMvc3BpL0tjb25maWctNjcxLVxcdHRyaXN0YXRlIFxcXCJGcmVlc2NhbGUgRFNQSSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy02NzctXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo2Nzg6Y29uZmlnIFNQSV9GU0xfRVNQSVxcbmRyaXZlcnMvc3BpL0tjb25maWctNjc5LVxcdHRyaXN0YXRlIFxcXCJGcmVlc2NhbGUgZVNQSSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy02ODUtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo2ODY6Y29uZmlnIFNQSV9MSkNBXFxuZHJpdmVycy9zcGkvS2NvbmZpZy02ODctXFx0dHJpc3RhdGUgXFxcIkludGVsIExhIEpvbGxhIENvdmUgQWRhcHRlciBTUEkgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNjk2LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6Njk3OmNvbmZpZyBTUElfTUVTT05fU1BJQ0NcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTY5OC1cXHR0cmlzdGF0ZSBcXFwiQW1sb2dpYyBNZXNvbiBTUElDQyBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy03MDQtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo3MDU6Y29uZmlnIFNQSV9NRVNPTl9TUElGQ1xcbmRyaXZlcnMvc3BpL0tjb25maWctNzA2LVxcdHRyaXN0YXRlIFxcXCJBbWxvZ2ljIE1lc29uIFNQSUZDIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTcxMi1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjcxMzpjb25maWcgU1BJX01JQ1JPQ0hJUF9DT1JFX1FTUElcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTcxNC1cXHR0cmlzdGF0ZSBcXFwiTWljcm9jaGlwIEZQR0EgUVNQSSBjb250cm9sbGVyc1xcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNzIxLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NzIyOmNvbmZpZyBTUElfTUlDUk9DSElQX0NPUkVfU1BJXFxuZHJpdmVycy9zcGkvS2NvbmZpZy03MjMtXFx0dHJpc3RhdGUgXFxcIk1pY3JvY2hpcCBGUEdBIENvcmVTUEkgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNzMwLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NzMxOmNvbmZpZyBTUElfTVQ2NVhYXFxuZHJpdmVycy9zcGkvS2NvbmZpZy03MzItXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIFNQSSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy03MzktXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo3NDA6Y29uZmlnIFNQSV9NVDc2MjFcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTc0MS1cXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3NjIxIFNQSSBDb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy03NDUtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo3NDY6Y29uZmlnIFNQSV9NVEtfTk9SXFxuZHJpdmVycy9zcGkvS2NvbmZpZy03NDctXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIFNQSSBOT1IgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNzU1LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6NzU2OmNvbmZpZyBTUElfTVRLX1NORklcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTc1Ny1cXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgU1BJIE5BTkQgRmxhc2ggSW50ZXJmYWNlXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy03NjUtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo3NjY6Y29uZmlnIFNQSV9XUENNX0ZJVVxcbmRyaXZlcnMvc3BpL0tjb25maWctNzY3LVxcdHRyaXN0YXRlIFxcXCJOdXZvdG9uIFdQQ000NTAgRmxhc2ggSW50ZXJmYWNlIFVuaXRcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTc3Ni1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjc3Nzpjb25maWcgU1BJX05QQ01fRklVXFxuZHJpdmVycy9zcGkvS2NvbmZpZy03NzgtXFx0dHJpc3RhdGUgXFxcIk51dm90b24gTlBDTSBGTEFTSCBJbnRlcmZhY2UgVW5pdFxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctNzg2LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6Nzg3OmNvbmZpZyBTUElfTlBDTV9QU1BJXFxuZHJpdmVycy9zcGkvS2NvbmZpZy03ODgtXFx0dHJpc3RhdGUgXFxcIk51dm90b24gTlBDTSBQU1BJIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTc5My1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjc5NDpjb25maWcgU1BJX0xBTlRJUV9TU0NcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTc5NS1cXHR0cmlzdGF0ZSBcXFwiTGFudGlxIFNTQyBTUEkgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctODAxLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6ODAyOmNvbmZpZyBTUElfT0NfVElOWVxcbmRyaXZlcnMvc3BpL0tjb25maWctODAzLVxcdHRyaXN0YXRlIFxcXCJPcGVuQ29yZXMgdGlueSBTUElcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTgwOC1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjgwOTpjb25maWcgU1BJX09DVEVPTlxcbmRyaXZlcnMvc3BpL0tjb25maWctODEwLVxcdHRyaXN0YXRlIFxcXCJDYXZpdW0gT0NURU9OIFNQSSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy04MTUtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo4MTY6Y29uZmlnIFNQSV9PTUFQX1VXSVJFXFxuZHJpdmVycy9zcGkvS2NvbmZpZy04MTctXFx0dHJpc3RhdGUgXFxcIk9NQVAxIE1pY3JvV2lyZVxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctODIyLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6ODIzOmNvbmZpZyBTUElfT01BUDI0WFhcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTgyNC1cXHR0cmlzdGF0ZSBcXFwiTWNTUEkgZHJpdmVyIGZvciBPTUFQXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy04MzAtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo4MzE6Y29uZmlnIFNQSV9USV9RU1BJXFxuZHJpdmVycy9zcGkvS2NvbmZpZy04MzItXFx0dHJpc3RhdGUgXFxcIkRSQTd4eHggUVNQSSBjb250cm9sbGVyIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTgzOC1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjgzOTpjb25maWcgU1BJX09SSU9OXFxuZHJpdmVycy9zcGkvS2NvbmZpZy04NDAtXFx0dHJpc3RhdGUgXFxcIk9yaW9uIFNQSSBtYXN0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTg0NS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjg0Njpjb25maWcgU1BJX1BDSTFYWFhYXFxuZHJpdmVycy9zcGkvS2NvbmZpZy04NDctXFx0dHJpc3RhdGUgXFxcIlBDSTFYWFhYIFNQSSBCdXMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctODU0LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6ODU1OmNvbmZpZyBTUElfUElDMzJcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTg1Ni1cXHR0cmlzdGF0ZSBcXFwiTWljcm9jaGlwIFBJQzMyIHNlcmllcyBTUElcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTg2MC1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjg2MTpjb25maWcgU1BJX1BJQzMyX1NRSVxcbmRyaXZlcnMvc3BpL0tjb25maWctODYyLVxcdHRyaXN0YXRlIFxcXCJNaWNyb2NoaXAgUElDMzIgUXVhZCBTUEkgZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy04NjYtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo4Njc6Y29uZmlnIFNQSV9QTDAyMlxcbmRyaXZlcnMvc3BpL0tjb25maWctODY4LVxcdHRyaXN0YXRlIFxcXCJBUk0gQU1CQSBQTDAyMiBTU1AgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctODc3LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6ODc4OmNvbmZpZyBTUElfUE9MQVJGSVJFX1NPQ1xcbmRyaXZlcnMvc3BpL0tjb25maWctODc5LVxcdHRyaXN0YXRlIFxcXCJNaWNyb2NoaXAgRlBHQSBTUEkgY29udHJvbGxlcnNcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTg4Ny1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjg4ODpjb25maWcgU1BJX1BQQzR4eFxcbmRyaXZlcnMvc3BpL0tjb25maWctODg5LVxcdHRyaXN0YXRlIFxcXCJQUEM0eHggU1BJIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTg5NC1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjg5NTpjb25maWcgU1BJX1BYQTJYWFxcbmRyaXZlcnMvc3BpL0tjb25maWctODk2LVxcdHRyaXN0YXRlIFxcXCJQWEEyeHggU1NQIFNQSSBtYXN0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTkwMi1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjkwMzpjb25maWcgU1BJX1BYQTJYWF9QQ0lcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTkwNC1cXHRkZWZfdHJpc3RhdGUgU1BJX1BYQTJYWCBcXHUwMDI2XFx1MDAyNiBQQ0kgXFx1MDAyNlxcdTAwMjYgQ09NTU9OX0NMS1xcbmRyaXZlcnMvc3BpL0tjb25maWctOTA1LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6OTA2OmNvbmZpZyBTUElfUkVBTFRFS19TTkFORFxcbmRyaXZlcnMvc3BpL0tjb25maWctOTA3LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIFNQSS1OQU5EIEZsYXNoIENvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTkxNi1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjkxNzpjb25maWcgU1BJX1JPQ0tDSElQXFxuZHJpdmVycy9zcGkvS2NvbmZpZy05MTgtXFx0dHJpc3RhdGUgXFxcIlJvY2tjaGlwIFNQSSBjb250cm9sbGVyIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctOTI4LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6OTI5OmNvbmZpZyBTUElfUk9DS0NISVBfU0ZDXFxuZHJpdmVycy9zcGkvS2NvbmZpZy05MzAtXFx0dHJpc3RhdGUgXFxcIlJvY2tjaGlwIFNlcmlhbCBGbGFzaCBDb250cm9sbGVyIChTRkMpXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy05NDAtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo5NDE6Y29uZmlnIFNQSV9SQjRYWFxcbmRyaXZlcnMvc3BpL0tjb25maWctOTQyLVxcdHRyaXN0YXRlIFxcXCJNaWtyb3RpayBSQjRYWCBTUEkgbWFzdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy05NDctXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo5NDg6Y29uZmlnIFNQSV9SUENJRlxcbmRyaXZlcnMvc3BpL0tjb25maWctOTQ5LVxcdHRyaXN0YXRlIFxcXCJSZW5lc2FzIFJQQy1JRiBTUEkgZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy05NTMtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo5NTQ6Y29uZmlnIFNQSV9SU1BJXFxuZHJpdmVycy9zcGkvS2NvbmZpZy05NTUtXFx0dHJpc3RhdGUgXFxcIlJlbmVzYXMgUlNQSS9RU1BJIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk1OS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjk2MDpjb25maWcgU1BJX1JaVjJIX1JTUElcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk2MS1cXHR0cmlzdGF0ZSBcXFwiUmVuZXNhcyBSWi9WMkggUlNQSSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy05NjctXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo5Njg6Y29uZmlnIFNQSV9SWlYyTV9DU0lcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk2OS1cXHR0cmlzdGF0ZSBcXFwiUmVuZXNhcyBSWi9WMk0gQ1NJIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTk3NC1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjk3NTpjb25maWcgU1BJX1FDT01fUVNQSVxcbmRyaXZlcnMvc3BpL0tjb25maWctOTc2LVxcdHRyaXN0YXRlIFxcXCJRVEkgUVNQSSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy05ODAtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzo5ODE6Y29uZmlnIFNQSV9RUElDX1NOQU5EXFxuZHJpdmVycy9zcGkvS2NvbmZpZy05ODItXFx0dHJpc3RhdGUgXFxcIlFQSUMgU05BTkQgY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctOTg5LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6OTkwOmNvbmZpZyBTUElfUVVQXFxuZHJpdmVycy9zcGkvS2NvbmZpZy05OTEtXFx0dHJpc3RhdGUgXFxcIlF1YWxjb21tIFNQSSBjb250cm9sbGVyIHdpdGggUVVQIGludGVyZmFjZVxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMTAwMi1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjEwMDM6Y29uZmlnIFNQSV9RQ09NX0dFTklcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwMDQtXFx0dHJpc3RhdGUgXFxcIlF1YWxjb21tIEdFTkkgYmFzZWQgU1BJIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwMTQtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzoxMDE1OmNvbmZpZyBTUElfUzNDNjRYWFxcbmRyaXZlcnMvc3BpL0tjb25maWctMTAxNi1cXHR0cmlzdGF0ZSBcXFwiU2Ftc3VuZyBTM0M2NFhYL0V4eW5vcyBTb0Mgc2VyaWVzIHR5cGUgU1BJXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDIxLVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MTAyMjpjb25maWcgU1BJX1NDMThJUzYwMlxcbmRyaXZlcnMvc3BpL0tjb25maWctMTAyMy1cXHR0cmlzdGF0ZSBcXFwiTlhQIFNDMThJUzYwMi82MDJCLzYwMyBJMkMgdG8gU1BJIGJyaWRnZVxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMTAyNy1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjEwMjg6Y29uZmlnIFNQSV9TSF9NU0lPRlxcbmRyaXZlcnMvc3BpL0tjb25maWctMTAyOS1cXHR0cmlzdGF0ZSBcXFwiU3VwZXJIIE1TSU9GIFNQSSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDM0LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MTAzNTpjb25maWcgU1BJX1NIXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDM2LVxcdHRyaXN0YXRlIFxcXCJTdXBlckggU1BJIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwNDAtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzoxMDQxOmNvbmZpZyBTUElfU0hfU0NJXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDQyLVxcdHRyaXN0YXRlIFxcXCJTdXBlckggU0NJIFNQSSBjb250cm9sbGVyXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDQ3LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MTA0ODpjb25maWcgU1BJX1NIX0hTUElcXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwNDktXFx0dHJpc3RhdGUgXFxcIlN1cGVySCBIU1BJIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwNTMtXFxuZHJpdmVycy9zcGkvS2NvbmZpZzoxMDU0OmNvbmZpZyBTUElfU0lGSVZFXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDU1LVxcdHRyaXN0YXRlIFxcXCJTaUZpdmUgU1BJIGNvbnRyb2xsZXJcXFwiXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEwNTktXFxuZHJpdmVycy9zcGkvS2NvbmZpZzoxMDYwOmNvbmZpZyBTUElfU0xBVkVfTVQyN1hYXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDYxLVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBTUEkgc2xhdmUgZGV2aWNlXFxcIlxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZy0xMDY5LVxcbmRyaXZlcnMvc3BpL0tjb25maWc6MTA3MDpjb25maWcgU1BJX1NOX0ZfT1NQSVxcbmRyaXZlcnMvc3BpL0tjb25maWctMTA3MS1cXHR0cmlzdGF0ZSBcXFwiU29jaW9uZXh0IEZfT1NQSSBTUEkgZmxhc2ggY29udHJvbGxlclxcXCJcXG4tLVxcbmRyaXZlcnMvc3BpL0tjb25maWctMTA3OC1cXG5kcml2ZXJzL3NwaS9LY29uZmlnOjEwNzk6Y29uZmlnIFNQSV9TRzIwNDRfTk9SXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIyVDA0OjUwOjU3LjYyMzgxODc5MVoiLCJTZXEiOjMxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4NjU5NTIyOTQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIGBsYW44NjV4YCBEcml2ZXIgYW5kIFN5emthbGxlciBJbnRlZ3JhdGlvbioqXG5cbk9rYXksIHNvIEknbSB0YWNrbGluZyB0aGlzIGBsYW44NjV4YCBkcml2ZXIsIGFuZCBteSBpbW1lZGlhdGUgY29uY2VybiBpcyBob3cgdG8gZXZlbiAqZ2V0KiBpdCBwcm9iZWQgd2l0aGluIHRoZSBzeXprYWxsZXIgZW52aXJvbm1lbnQuIEkgc2VlIHR3byBwb3RlbnRpYWwgU1BJIGltcGxlbWVudGF0aW9ucywgYFNQSV9CSVRCQU5HYCBhbmQgYFNQSV9HUElPYCwgYnV0IHRoYXQncyBub3QgdGhlIGNvcmUgaXNzdWUuIFRoZSBwcm9ibGVtIGlzIHRoYXQgc3l6a2FsbGVyIGRvZXNuJ3QgaGF2ZSBhIGJ1aWx0LWluIG1lY2hhbmlzbSB0byBpbnN0YW50aWF0ZSBhcmJpdHJhcnkgU1BJIGRldmljZXMsIHJpZ2h0PyBJdCdzIG5vdCBsaWtlIHRoZXJlJ3Mgc29tZSBraW5kIG9mIHZpcnR1YWwgU1BJIGJ1cyBJIGNhbiBpbmplY3QgaW50by5cblxuQ291bGQgbmV0bGluayBiZSB0aGUgYW5zd2VyPyBObywgdGhhdCdzIGRlZmluaXRlbHkgbm90IGhvdyBTUEkgZHJpdmVycyBhcmUgaGFuZGxlZC4gV2hhdCBhYm91dCBgc3l6X2Rldl9pbml0YD8gTm9wZSwgdGhhdCdzIG5vdCBhIHRoaW5nLiBIbW0sIGlzIHRoZXJlIGFueXRoaW5nIGluIGBzeXMvbGludXgvZGV2X3NwaS50eHRgPyBObywgYHNwaWRldmAgaXMgZm9yIHVzZXJzcGFjZSBTUEkgaW50ZXJhY3Rpb247IEkgbmVlZCB0aGUga2VybmVsIGRyaXZlciB0byBhY3R1YWxseSBwcm9iZS5cblxuQWxyaWdodCwgbWF5YmUgdmlhIGRldmljZSB0cmVlPyBCdXQgc3l6a2FsbGVyIGRvZXNuJ3QgaW5qZWN0IHRob3NlIGVpdGhlciwgc28gdGhhdCdzIGEgZGVhZCBlbmQuIE9rYXksIGxldCdzIHRoaW5rIGFib3V0IHN5c2ZzLiBDb3VsZCBJIHVzZSB0aGF0IHRvIGF0IGxlYXN0ICp0cnkqIHRvIGZvcmNlIHRoZSBkcml2ZXIgdG8gbG9hZD8gU29tZXRoaW5nIGxpa2UgYGVjaG8gbGFuODY1MCBcdTAwM2UgL3N5cy9idXMvc3BpL2RldmljZXMvc3BpMC4wL2RyaXZlcl9vdmVycmlkZWA/IFRoZSBjYXRjaCwgb2YgY291cnNlLCBpcyB0aGF0IGBzcGkwLjBgIGhhcyB0byAqYWxyZWFkeSogZXhpc3QuXG5cblRoaXMgYnJpbmdzIG1lIHRvIHRoZSBmdW5kYW1lbnRhbCBxdWVzdGlvbjogRG9lcyB0aGUgc3l6a2FsbGVyIFFFTVUgZW52aXJvbm1lbnQgZXZlbiAqaGF2ZSogYW4gU1BJIGNvbnRyb2xsZXIsIG9yIGFueSBTUEkgZGV2aWNlcyBjb25uZWN0ZWQgdG8gaXQ/IFFFTVUgKm1pZ2h0KiBoYXZlIHNvbWUsIGxpa2UgYHBsMDIyYCBvbiBBUk0sIGJ1dCB3aGF0IGFib3V0IG9uIHg4Nj8gT24geDg2LCBtYXliZSB0aGVyZSBpcyBub3RoaW5nIGF0IGFsbCwgbWF5YmUgYGxwY19pY2hgPyBBbmQgZXZlbiBpZiB0aGVyZSdzIGEgY29udHJvbGxlciwgaXQncyBoaWdobHkgdW5saWtlbHkgdGhhdCBpdCBoYXMgYSBkZXZpY2UgY29ubmVjdGVkIHRvIGl0IHVubGVzcyBpdCdzIGJlZW4gZXhwbGljaXRseSBjb25maWd1cmVkIHZpYSBBQ1BJIG9yIERldmljZSBUcmVlLlxuXG5TbywgcmVhbGlzdGljYWxseSwgYGxhbjg2NXhfcHJvYmVgIGlzIG5ldmVyIGdvaW5nIHRvIGJlIGNhbGxlZCBpbiB0aGUgY3VycmVudCBzZXR1cC4gQW5kIGlmIGBsYW44NjV4X3Byb2JlYCBpc24ndCBjYWxsZWQsIHRoZW4gYG9hX3RjNl9pbml0YCBpcyBuZXZlciBjYWxsZWQsIHdoaWNoIG1ha2VzIGFsbCB0aGF0IGNvZGUgaW4gYG9hX3RjNi5jYCBjb21wbGV0ZWx5IHVucmVhY2hhYmxlLiBJIHJlYWxseSBuZWVkIHRvIGRvdWJsZSBjaGVjayB0aGF0IGBvYV90YzZfaW5pdGAgKmNhbid0KiBiZSBjYWxsZWQgYnkgc29tZSBvdGhlciBtZWFucywgdGhvdWdoOyBjYW4ndCB0YWtlIGFueSBhc3N1bXB0aW9ucyBoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MDQ3OCwiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQyOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yMlQwNDo1MTowNi4yODMzNDM5NzhaIiwiU2VxIjozMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxMzAxNTM1NjYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwib2FfdGM2X2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9vYS10YzYtZnJhbWV3b3JrLnJzdD00NTQ9VGhlIGluY2x1ZGUvbGludXgvb2FfdGM2LmggZGVmaW5lcyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uczpcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvb2EtdGM2LWZyYW1ld29yay5yc3QtNDU1LVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9vYS10YzYtZnJhbWV3b3JrLnJzdDo0NTY6Li4gYzpmdW5jdGlvbjo6IHN0cnVjdCBvYV90YzYgKm9hX3RjNl9pbml0KHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIFxcXFxcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvb2EtdGM2LWZyYW1ld29yay5yc3QtNDU3LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jPTMzMz1zdGF0aWMgaW50IGxhbjg2NXhfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW44NjV4L2xhbjg2NXguYy0zNDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jOjM0OTpcXHRwcml2LVxcdTAwM2V0YzYgPSBvYV90YzZfaW5pdChzcGksIG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTM1MC1cXHRpZiAoIXByaXYtXFx1MDAzZXRjNikge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM9MTI5ND1FWFBPUlRfU1lNQk9MX0dQTChvYV90YzZfc3RhcnRfeG1pdCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0xMjk2LS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjEyOTc6ICogb2FfdGM2X2luaXQgLSBhbGxvY2F0ZXMgYW5kIGluaXRpYWxpemVzIG9hX3RjNiBzdHJ1Y3R1cmUuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMTI5OC0gKiBAc3BpOiBkZXZpY2Ugd2l0aCB3aGljaCBkYXRhIHdpbGwgYmUgZXhjaGFuZ2VkLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMTMwMy0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzoxMzA0OnN0cnVjdCBvYV90YzYgKm9hX3RjNl9pbml0KHN0cnVjdCBzcGlfZGV2aWNlICpzcGksIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmMtMTMwNS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0xNDA4LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYzoxNDA5OkVYUE9SVF9TWU1CT0xfR1BMKG9hX3RjNl9pbml0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0xNDEwLVxcbi0tXFxuaW5jbHVkZS9saW51eC9vYV90YzYuaD0xMz1zdHJ1Y3Qgb2FfdGM2O1xcbmluY2x1ZGUvbGludXgvb2FfdGM2LmgtMTQtXFxuaW5jbHVkZS9saW51eC9vYV90YzYuaDoxNTpzdHJ1Y3Qgb2FfdGM2ICpvYV90YzZfaW5pdChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KTtcXG5pbmNsdWRlL2xpbnV4L29hX3RjNi5oLTE2LXZvaWQgb2FfdGM2X2V4aXQoc3RydWN0IG9hX3RjNiAqdGM2KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjJUMDQ6NTE6MDguNDEzNTAzOTg0WiIsIlNlcSI6MzMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ3NTI0NTU0ODAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyB0aGUgYGxhbjg2NXhgIFNQSSBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gZm9jdXNpbmcgb24gYSBzcGVjaWZpYyBwaWVjZSBvZiBjb2RlLiBJdCBsb29rcyBsaWtlIHRoaXMgYml0IG9mIGxvZ2ljIGlzIG9ubHkgdXNlZCBieSB0aGUgYGxhbjg2NXhgIGRyaXZlciwgd2hpY2gsIGFzIEkgcmVjYWxsLCBoYW5kbGVzIFNQSSBjb21tdW5pY2F0aW9uLiBNeSBtYWluIGNvbmNlcm4gaXMgd2hldGhlciB0aGlzIHBhcnRpY3VsYXIgY29kZSBwYXRoIGlzIGFjdHVhbGx5IHJlYWNoYWJsZS4gSG93IGNhbiBJIHRyaWdnZXIgaXQ/XG5cbkhtbSwgSSB3b25kZXIgaWYgc3l6a2FsbGVyLCBvdXIgZnV6emVyLCBoYXMgYSBzeXNjYWxsIHNldHVwIHNwZWNpZmljYWxseSBmb3IgU1BJLiBMZXQgbWUgcXVpY2tseSBzZWUgaWYgdGhlcmUncyBhIGBzeXpfc3BpX3NldHVwYCBvciBzb21ldGhpbmcgc2ltaWxhci4gVW5mb3J0dW5hdGVseSwgSSBkb24ndCBoYXZlIGRpcmVjdCBhY2Nlc3MgdG8gdGhlIHN5emthbGxlciBzb3VyY2UgcmlnaHQgbm93LCBidXQgSSBjYW4gd29yayBhcm91bmQgdGhhdC4gSSdsbCBjaGVjayBpZiB0aGUga2VybmVsIGhhcyBhbnkgbW9jayBvciB2aXJ0dWFsIFNQSSBkcml2ZXJzIHRoYXQgc3l6a2FsbGVyIG1pZ2h0IGJlIGxldmVyYWdpbmcuIExldCdzIHNlZSBpZiBhIGBzcGktbW9ja3VwLmNgIGZpbGUgZXhpc3RzLiBUaGF0J2xsIGdpdmUgbWUgYSBnb29kIGluZGljYXRpb24gb2YgaG93IHN5emthbGxlciBtaWdodCBpbnRlcmFjdCB3aXRoIFNQSSBkZXZpY2VzIGluIGEgc2ltdWxhdGVkIGVudmlyb25tZW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MjE4MywiT3V0cHV0VG9rZW5zIjoyNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yMlQwNDo1MToxMy4xNjU5NjI2OTRaIiwiU2VxIjozNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwNDc0NTUzNDYsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNwaS1tb2NrdXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMlQwNDo1MToxNS4yMTM0Mjc3NVoiLCJTZXEiOjM1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDcxNTExMzk2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqSW52ZXN0aWdhdGluZyBTUEkgTG9vcGJhY2sgVGVzdGluZyoqXG5cbkFscmlnaHQsIGxldCdzIGRpdmUgaW50byB0aGlzLiBUaGUgbWVudGFsIGNoZWNrbGlzdCBzdGFydHMgd2l0aCBhIGZ1bmRhbWVudGFsIHF1ZXN0aW9uOiBkb2VzIGEgcHJlLWV4aXN0aW5nIFwic3BpLWxvb3BiYWNrLXRlc3QuY1wiIGZpbGUgZXZlbiAqZXhpc3QqPyBJdCdzIGEga2V5IGZpcnN0IHN0ZXAuIEZpbmRpbmcgdGhhdCB3b3VsZCBiZSBhIGh1Z2UgdGltZS1zYXZlci4gSWYgdGhlcmUncyBhbHJlYWR5IGEgZGVkaWNhdGVkIGxvb3BiYWNrIHRlc3QsIHRoZSBmb2N1cyBzaGlmdHMgdG8gdW5kZXJzdGFuZGluZyBpdHMgYXJjaGl0ZWN0dXJlLCBjYXBhYmlsaXRpZXMsIGFuZCBhbnkgcG90ZW50aWFsIG1vZGlmaWNhdGlvbnMgbmVjZXNzYXJ5IHRvIGFsaWduIHdpdGggdGhlIGN1cnJlbnQgcHJvamVjdCdzIHNwZWNpZmljIGhhcmR3YXJlIGFuZCByZXF1aXJlbWVudHMuIFRoZSBpZGVhbCBzY2VuYXJpbyBpcyBsZXZlcmFnaW5nIGEgd2VsbC10ZXN0ZWQsIGRvY3VtZW50ZWQgc29sdXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYyNTU3LCJPdXRwdXRUb2tlbnMiOjI2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjJUMDQ6NTE6MTguMjg0OTQxNTc2WiIsIlNlcSI6MzYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDI4OTc5MTk3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNwaS1sb29wYmFjay10ZXN0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaW5jb21wbGV0ZS1kZXZpY2VzLnlhbWw9MjY9cHJvcGVydGllczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pbmNvbXBsZXRlLWRldmljZXMueWFtbC0yNDUtICAgICAgICAgIC0gZ3Bpby12aXJ0dXNlclxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pbmNvbXBsZXRlLWRldmljZXMueWFtbDoyNDY6ICAgICAgICAgIC0gbGludXgsc3BpLWxvb3BiYWNrLXRlc3RcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaW5jb21wbGV0ZS1kZXZpY2VzLnlhbWwtMjQ3LSAgICAgICAgICAtIG1haWxib3gtdGVzdFxcbi0tXFxuZHJpdmVycy9zcGkvTWFrZWZpbGU9MTQ9b2JqLSQoQ09ORklHX1NQSV9TUElERVYpXFx0XFx0Kz0gc3BpZGV2Lm9cXG5kcml2ZXJzL3NwaS9NYWtlZmlsZToxNTpvYmotJChDT05GSUdfU1BJX0xPT1BCQUNLX1RFU1QpXFx0XFx0Kz0gc3BpLWxvb3BiYWNrLXRlc3Qub1xcbmRyaXZlcnMvc3BpL01ha2VmaWxlLTE2LVxcbi0tXFxuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYy0yLS8qXFxuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYzozOiAqICBsaW51eC9kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jXFxuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYy00LSAqXFxuLS1cXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jPTM1OD1zdGF0aWMgaW50IHNwaV9sb29wYmFja190ZXN0X3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpXFxuLS1cXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jLTM3Mi1cXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jOjM3MzpcXHRkZXZfaW5mbyhcXHUwMDI2c3BpLVxcdTAwM2VkZXYsIFxcXCJFeGVjdXRpbmcgc3BpLWxvb3BiYWNrLXRlc3RzXFxcXG5cXFwiKTtcXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jLTM3NC1cXG4tLVxcbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmMtMzc2LVxcbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmM6Mzc3OlxcdGRldl9pbmZvKFxcdTAwMjZzcGktXFx1MDAzZWRldiwgXFxcIkZpbmlzaGVkIHNwaS1sb29wYmFjay10ZXN0cyB3aXRoIHJldHVybjogJWlcXFxcblxcXCIsXFxuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYy0zNzgtXFx0XFx0IHJldCk7XFxuLS1cXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jPTM4ND1zdGF0aWMgc3RydWN0IG9mX2RldmljZV9pZCBzcGlfbG9vcGJhY2tfdGVzdF9vZl9tYXRjaFtdID0ge1xcbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmM6Mzg1OlxcdHsgLmNvbXBhdGlibGVcXHQ9IFxcXCJsaW51eCxzcGktbG9vcGJhY2stdGVzdFxcXCIsIH0sXFxuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYy0zODYtXFx0eyB9XFxuLS1cXG5kcml2ZXJzL3NwaS9zcGktbG9vcGJhY2stdGVzdC5jPTM5Nj1zdGF0aWMgc3RydWN0IHNwaV9kcml2ZXIgc3BpX2xvb3BiYWNrX3Rlc3RfZHJpdmVyID0ge1xcbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmMtMzk3LVxcdC5kcml2ZXIgPSB7XFxuZHJpdmVycy9zcGkvc3BpLWxvb3BiYWNrLXRlc3QuYzozOTg6XFx0XFx0Lm5hbWUgPSBcXFwic3BpLWxvb3BiYWNrLXRlc3RcXFwiLFxcbmRyaXZlcnMvc3BpL3NwaS1sb29wYmFjay10ZXN0LmMtMzk5LVxcdFxcdC5vZl9tYXRjaF90YWJsZSA9IHNwaV9sb29wYmFja190ZXN0X29mX21hdGNoLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMlQwNDo1MToyMC4zMTM5Mjc4MjNaIiwiU2VxIjozNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzM3NzcwMjExOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBzdW1tYXJpemVkIGZyb20gbXkgcGVyc3BlY3RpdmUgYXMgc29tZW9uZSBmYW1pbGlhciB3aXRoIFNQSSBjb250cm9sbGVycyBhbmQgZHJpdmVyczpcblxuKipDb25zaWRlcmluZyBTUEkgVGVzdCBTdHJhdGVnaWVzKipcblxuQWxyaWdodCwgc28gYHNwaS1sb29wYmFjay10ZXN0YCBpcyBlc3NlbnRpYWxseSBhIGJhcmUtYm9uZXMgZHJpdmVyIGRlc2lnbmVkIHB1cmVseSBmb3IgZXhlcmNpc2luZyB0aGUgU1BJIGNvbnRyb2xsZXIgaXRzZWxmLiBJdCBkb2Vzbid0IGluY29ycG9yYXRlIGFueSByZWFsLXdvcmxkIGRldmljZSBpbnN0YW50aWF0aW9uIG9yIGludGVyYWN0aW9uOyBpdCdzIGEgdGVzdGJlZCwgbm90aGluZyBtb3JlLiBNeSBwcmltYXJ5IGZvY3VzIGlzIHVuZGVyc3RhbmRpbmcgYW5kIHRlc3RpbmcgdGhlIFNQSSBjb250cm9sbGVyIGFuZCBpdHMgYXNzb2NpYXRlZCBkcml2ZXIsIHRodXMgSSB3b3VsZCBjb25zaWRlciB0aGlzIGEgcHJpbWFyeSByZWZlcmVuY2UgcG9pbnQgdG8gc3RhcnQsIGJ1dCBJIG5lZWQgb3RoZXIgb3B0aW9ucyBhcyB3ZWxsLlxuXG5UaGUgcXVlc3Rpb24gdGhlbiBiZWNvbWVzLCB3aGF0IGFyZSB0aGUgYWx0ZXJuYXRpdmVzPyBBcmUgdGhlcmUgb3RoZXIgU1BJIGRyaXZlcnMgdGhhdCBtaWdodCBiZSB1c2VmdWwgaGVyZT8gU3BlY2lmaWNhbGx5LCBJJ20gdGhpbmtpbmcgYWJvdXQgYHNwaS12aXJ0YCBvciBgc3BpLWR1bW15YC4gVGhvc2UgbWlnaHQgcHJvdmlkZSBhIG1vcmUgY29udHJvbGxlZCBvciBzaW11bGF0ZWQgZW52aXJvbm1lbnQgZm9yIHRlc3RpbmcsIHBlcmhhcHMgYWxsb3dpbmcgbWUgdG8gaXNvbGF0ZSBzcGVjaWZpYyBhc3BlY3RzIG9mIHRoZSBTUEkgY29udHJvbGxlciB3aXRob3V0IG5lZWRpbmcgYWN0dWFsIGhhcmR3YXJlLiBJIHNob3VsZCBhbHNvIGludmVzdGlnYXRlIHdoZXRoZXIgdGhvc2UgYWx0ZXJuYXRpdmVzIG9mZmVyIGFueSBkaWZmZXJlbnQgdGVzdGluZyBzY2VuYXJpb3Mgb3IgZmVhdHVyZXMuIFRoZXkgbWlnaHQgYWxzbyBwcm92aWRlIGEgcmVmZXJlbmNlIHRvIGFkZGl0aW9uYWwgbWV0aG9kcyBvZiB0ZXN0aW5nIG9yIGRlYnVnZ2luZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjM0MTYsIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yMlQwNDo1MToyMy42OTE2MzIzODJaIiwiU2VxIjozOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5NDkzNjczMTksIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNwaS1kdW1teVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIyVDA0OjUxOjI1LjY0MTAwNzQ5MVoiLCJTZXEiOjM5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MTQyMDEyNzkyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBwcmVzZW50ZWQgYXMgaWYgaXQgd2VyZSBteSBvd24gaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkNvbnNpZGVyaW5nIGBzcGktdmlydGAgaW4gdGhlIENvbnRleHQgb2YgW0ltcGxpZWQgQ29udGV4dCAtIFVzZXIgY2FuIGluZmVyIHRoZSBjb250ZXh0IGZyb20gdGhlIHByb21wdF0qKlxuXG5IbW0sIHNvIHdlJ3JlIGxvb2tpbmcgYXQgW2ltcGxpZWQgY29udGV4dCwgZS5nLiwgdmlydHVhbGl6aW5nIFNQSSBkZXZpY2VzLCBleHBsb3JpbmcgYWx0ZXJuYXRpdmVzIHRvIGEgc3BlY2lmaWMgc29sdXRpb24sIGV0Yy5dLiBUaGUgZmlyc3QgdGhpbmcgdGhhdCBwb3BzIGludG8gbXkgaGVhZCBpcywgd2hhdCBhYm91dCBgc3BpLXZpcnRgPyBJdCdzIGJlZW4gYXJvdW5kIGZvciBhIGJpdCwgYW5kIGRlcGVuZGluZyBvbiB0aGUgc3BlY2lmaWMgYXBwbGljYXRpb24sIGl0IG1pZ2h0IG9mZmVyIGEgZ29vZCBzb2x1dGlvbi4gVGhlIG9idmlvdXMgYWR2YW50YWdlcyBhcmUgW1VzZXIgd2lsbCBrbm93IHRoaXMgaW1tZWRpYXRlbHkgLSBlLmcuLCBwb3RlbnRpYWwgcGVyZm9ybWFuY2UgY2hhcmFjdGVyaXN0aWNzLCBleGlzdGluZyBpbnRlZ3JhdGlvbiwgc3BlY2lmaWMgZmVhdHVyZXNdLiBJIG5lZWQgdG8gcXVpY2tseSByZWNhbGwgdGhlIHRyYWRlLW9mZnMgLSBwZXJoYXBzIHRoZSBsaW1pdGF0aW9ucyBpbiBbZS5nLiwgc3BlY2lmaWMgaGFyZHdhcmUgc3VwcG9ydCwgcmVzb3VyY2Ugb3ZlcmhlYWRdIGNvbXBhcmVkIHRvIG90aGVyIGFwcHJvYWNoZXMuIEkgc2hvdWxkIGJlIGF3YXJlIG9mIGFueSBzZWN1cml0eSBpbXBsaWNhdGlvbnMsIHBhcnRpY3VsYXJseSBpZiB0aGUgYXBwbGljYXRpb24gaXMgc2FmZXR5LWNyaXRpY2FsLiBVbHRpbWF0ZWx5LCB3aGV0aGVyIHRoaXMgaXMgZXZlbiB0aGUgcmlnaHQgcGF0aCBkZXBlbmRzIGhlYXZpbHkgb24gdGhlIHNwZWNpZmljIHJlcXVpcmVtZW50cywgZXNwZWNpYWxseSBbSW1wbGllZCBjb25zdHJhaW50cyB1c2VyIGNhbiBpbmZlcl0uIFNvLCBgc3BpLXZpcnRgLi4uIHBvdGVudGlhbCBjYW5kaWRhdGUsIGJ1dCBJIG5lZWQgdG8gcXVpY2tseSBhc3Nlc3MgaXQgYWdhaW5zdCB0aGUgY29yZSBwcm9ibGVtLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MzcxMSwiT3V0cHV0VG9rZW5zIjoyMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjJUMDQ6NTE6MzAuNzgzMDIyMzEzWiIsIlNlcSI6NDAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDMxOTcwMDU3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNwaS12aXJ0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJNQUlOVEFJTkVSUz0yODQ4MD1TOlxcdE1haW50YWluZWRcXG5NQUlOVEFJTkVSUzoyODQ4MTpGOlxcdGRyaXZlcnMvc3BpL3NwaS12aXJ0aW8uY1xcbk1BSU5UQUlORVJTLTI4NDgyLUY6XFx0aW5jbHVkZS91YXBpL2xpbnV4L3ZpcnRpb19zcGkuaFxcbi0tXFxuZHJpdmVycy9zcGkvS2NvbmZpZz0xMjYxPWNvbmZpZyBTUElfVklSVElPXFxuLS1cXG5kcml2ZXJzL3NwaS9LY29uZmlnLTEyNjktXFx0ICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gSWYgc28sIHRoZSBtb2R1bGVcXG5kcml2ZXJzL3NwaS9LY29uZmlnOjEyNzA6XFx0ICB3aWxsIGJlIGNhbGxlZCBzcGktdmlydGlvLlxcbmRyaXZlcnMvc3BpL0tjb25maWctMTI3MS1cXG4tLVxcbmRyaXZlcnMvc3BpL01ha2VmaWxlPTE2NT1vYmotJChDT05GSUdfU1BJX1VOSVBISUVSKVxcdFxcdCs9IHNwaS11bmlwaGllci5vXFxuZHJpdmVycy9zcGkvTWFrZWZpbGU6MTY2Om9iai0kKENPTkZJR19TUElfVklSVElPKVxcdFxcdCs9IHNwaS12aXJ0aW8ub1xcbmRyaXZlcnMvc3BpL01ha2VmaWxlLTE2Ny1vYmotJChDT05GSUdfU1BJX1hDT01NKVxcdFxcdCs9IHNwaS14Y29tbS5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIyVDA0OjUxOjMyLjgxNTAwMTQ4WiIsIlNlcSI6NDEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEzMzg5NzYzMzA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdmlydGlvLXNwaSBhbmQgU3l6a2FsbGVyJ3MgSW50ZXJhY3Rpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgc3BpLXZpcnRpby5jYC4gVGhlIGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIklmIFFFTVUgaXMgcnVubmluZyB3aXRoIGEgdmlydGlvLXNwaSBkZXZpY2UsIGNvdWxkIHN5emthbGxlciBsZXZlcmFnZSBpdCBmb3IgZnV6emluZz9cIiBUaGF0J3MgdGhlIGNvcmUgcXVlc3Rpb24gaGVyZS4gTXkgaW5pdGlhbCB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgdmlydGlvLXNwaSBwcmVzZW50cyBhIHZpcnR1YWwgU1BJIGNvbnRyb2xsZXIgKnRvKiB0aGUgZ3Vlc3QuIFRoZW4sIHRoZSBndWVzdCB3b3VsZCAqaXRzZWxmKiBiZSByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgYW5kIGFjY2Vzc2luZyBkZXZpY2VzIGNvbm5lY3RlZCB0byB0aGF0IFNQSSBjb250cm9sbGVyLiBNeSBicmFpbiBnb2VzIGRpcmVjdGx5IHRvIHRoZSBxdWVzdGlvbiBvZiAqaG93KiB0aG9zZSBkZXZpY2VzIGFyZSBkZWZpbmVkLiBVc3VhbGx5LCBRRU1VIGRlZmluZXMgdGhlIGNvbm5lY3RlZCBTUEkgZGV2aWNlcyB0aHJvdWdoIHRoZSBkZXZpY2UgdHJlZSBvciBBQ1BJIGNvbmZpZ3VyYXRpb24uXG5cbk5vdywgZG9lcyBzeXprYWxsZXIncyBRRU1VIHNldHVwIGluY2x1ZGUgYW4gZXhwbGljaXQgZGV2aWNlIGxpa2UgYSBgbGFuODY1eGAgY29ubmVjdGVkIHRvIGB2aXJ0aW8tc3BpYD8gSSdtIGFsbW9zdCBjZXJ0YWluIHRoYXQgc3l6a2FsbGVyIGdlbmVyYWxseSB1c2VzIGEgZmFpcmx5IGdlbmVyaWMgUUVNVSBjb25maWd1cmF0aW9uOyBpdCdzIGRlc2lnbmVkIHRvIGJlIHZlcnNhdGlsZSwgc28gaXQgcHJvYmFibHkgZG9lc24ndCBoYXZlIHN1Y2ggc3BlY2lmaWMsIGRldmljZS1kZXBlbmRlbnQgZGV0YWlscyBiYWtlZCBpbi4gVW5sZXNzIHNvbWVvbmUgbWFudWFsbHkgYWRkZWQgaXQgdG8gYSBzeXprYWxsZXIgY29tbWFuZCBvciBkZXZpY2UgdHJlZSBvdmVybGF5LCBpdCdzIGhpZ2hseSB1bmxpa2VseS5cblxuSG1tLi4uIGRvZXMgc3l6a2FsbGVyIGFsbG93IGZvciBpbmplY3RpbmcgZGV2aWNlIHRyZWUgbm9kZXM/IEknZCBoYXZlIHRvIGRvdWJsZS1jaGVjaywgYnV0IEkgZG9uJ3QgYmVsaWV2ZSBzby4gVGhhdCB3b3VsZCBiZSBhIHNpZ25pZmljYW50IGZlYXR1cmUsIGFuZCBJJ2QgcmVtZW1iZXIgaWYgaXQgZXhpc3RlZC5cblxuU28sIGhvdyBlbHNlIGNvdWxkIGFuIFNQSSBkZXZpY2UgZ2V0IGluc3RhbnRpYXRlZD8gVGhlIG1vc3QgY29tbW9uIG1ldGhvZCB3b3VsZCBiZSB2aWEgYHNwaV9uZXdfZGV2aWNlYCBiZWluZyBjYWxsZWQgaW50ZXJuYWxseSBieSBhbm90aGVyIGRyaXZlciBvciwgcG9zc2libHksIHRocm91Z2ggYSBzeXNmcyBpbnRlcmZhY2UuIEJ1dC4uLiB3YWl0LCB0aGVyZSdzIG5vIHN5c2ZzIGludGVyZmFjZSBmb3IgYXJiaXRyYXJ5IFNQSSBkZXZpY2UgY3JlYXRpb24sIGlzIHRoZXJlPyBJIGtub3cgSTJDIGhhcyB0aGF0IGNvbnZlbmllbnQgYG5ld19kZXZpY2VgIGF0dHJpYnV0ZSBpbiBzeXNmcy4gRG9lcyBTUEkgaGF2ZSBhbiBlcXVpdmFsZW50PyBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQgcmlnaHQgbm93LiBUaW1lIHRvIGRpZyBpbiBhbmQgY2hlY2suXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY0MjU4LCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjcxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIyVDA0OjUxOjQ2LjIwNDc2NzM0OVoiLCJTZXEiOjQyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTEyNDkxMTI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm5ld19kZXZpY2VcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9zcGkvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvc3BpL3NwaS1hbHRlcmEtZGZsLmM9MTI0PXN0YXRpYyBpbnQgZGZsX3NwaV9hbHRlcmFfcHJvYmUoc3RydWN0IGRmbF9kZXZpY2UgKmRmbF9kZXYpXFxuLS1cXG5kcml2ZXJzL3NwaS9zcGktYWx0ZXJhLWRmbC5jLTE3NC1cXG5kcml2ZXJzL3NwaS9zcGktYWx0ZXJhLWRmbC5jOjE3NTpcXHRpZiAoIXNwaV9uZXdfZGV2aWNlKGhvc3QsIFxcdTAwMjZib2FyZF9pbmZvKSkge1xcbmRyaXZlcnMvc3BpL3NwaS1hbHRlcmEtZGZsLmMtMTc2LVxcdFxcdGRldl9lcnIoZGV2LCBcXFwiJXMgZmFpbGVkIHRvIGNyZWF0ZSBTUEkgZGV2aWNlOiAlc1xcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvc3BpL3NwaS1hbHRlcmEtcGxhdGZvcm0uYz0zNT1zdGF0aWMgaW50IGFsdGVyYV9zcGlfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvc3BpL3NwaS1hbHRlcmEtcGxhdGZvcm0uYy0xMTktXFx0XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIHBkYXRhLVxcdTAwM2VudW1fZGV2aWNlczsgaSsrKSB7XFxuZHJpdmVycy9zcGkvc3BpLWFsdGVyYS1wbGF0Zm9ybS5jOjEyMDpcXHRcXHRcXHRpZiAoIXNwaV9uZXdfZGV2aWNlKGhvc3QsIHBkYXRhLVxcdTAwM2VkZXZpY2VzICsgaSkpXFxuZHJpdmVycy9zcGkvc3BpLWFsdGVyYS1wbGF0Zm9ybS5jLTEyMS1cXHRcXHRcXHRcXHRkZXZfd2FybihcXHUwMDI2cGRldi1cXHUwMDNlZGV2LFxcbi0tXFxuZHJpdmVycy9zcGkvc3BpLWJ1dHRlcmZseS5jPTE3Nj1zdGF0aWMgdm9pZCBidXR0ZXJmbHlfYXR0YWNoKHN0cnVjdCBwYXJwb3J0ICpwKVxcbi0tXFxuZHJpdmVycy9zcGkvc3BpLWJ1dHRlcmZseS5jLTI2NS1cXHRwcC1cXHUwMDNlaW5mb1swXS5jb250cm9sbGVyX2RhdGEgPSBwcDtcXG5kcml2ZXJzL3NwaS9zcGktYnV0dGVyZmx5LmM6MjY2OlxcdHBwLVxcdTAwM2VkYXRhZmxhc2ggPSBzcGlfbmV3X2RldmljZShwcC1cXHUwMDNlYml0YmFuZy5jdGxyLCBcXHUwMDI2cHAtXFx1MDAzZWluZm9bMF0pO1xcbmRyaXZlcnMvc3BpL3NwaS1idXR0ZXJmbHkuYy0yNjctXFx0aWYgKHBwLVxcdTAwM2VkYXRhZmxhc2gpXFxuLS1cXG5kcml2ZXJzL3NwaS9zcGktY2gzNDEuYz0xNDE9c3RhdGljIGludCBjaDM0MV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcXG4tLVxcbmRyaXZlcnMvc3BpL3NwaS1jaDM0MS5jLTIwNi1cXG5kcml2ZXJzL3NwaS9zcGktY2gzNDEuYzoyMDc6XFx0Y2gzNDEtXFx1MDAzZXNwaWRldiA9IHNwaV9uZXdfZGV2aWNlKGN0cmwsIFxcdTAwMjZjaGlwKTtcXG5kcml2ZXJzL3NwaS9zcGktY2gzNDEuYy0yMDgtXFx0aWYgKCFjaDM0MS1cXHUwMDNlc3BpZGV2KSB7XFxuLS1cXG5kcml2ZXJzL3NwaS9zcGktY3M0Mmw0My5jPTMxMz1zdGF0aWMgaW50IGNzNDJsNDNfc3BpX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL3NwaS9zcGktY3M0Mmw0My5jLTQyNy1cXG5kcml2ZXJzL3NwaS9zcGktY3M0Mmw0My5jOjQyODpcXHRcXHRpZiAoIXNwaV9uZXdfZGV2aWNlKHByaXYtXFx1MDAzZWN0bHIsIGFtcGxfaW5mbykpXFxuZHJpdmVycy9zcGkvc3BpLWNzNDJsNDMuYy00MjktXFx0XFx0XFx0cmV0dXJuIGRldl9lcnJfcHJvYmUocHJpdi1cXHUwMDNlZGV2LCAtRU5PREVWLFxcbi0tXFxuZHJpdmVycy9zcGkvc3BpLWNzNDJsNDMuYy00MzEtXFxuZHJpdmVycy9zcGkvc3BpLWNzNDJsNDMuYzo0MzI6XFx0XFx0aWYgKCFzcGlfbmV3X2RldmljZShwcml2LVxcdTAwM2VjdGxyLCBhbXByX2luZm8pKVxcbmRyaXZlcnMvc3BpL3NwaS1jczQybDQzLmMtNDMzLVxcdFxcdFxcdHJldHVybiBkZXZfZXJyX3Byb2JlKHByaXYtXFx1MDAzZWRldiwgLUVOT0RFVixcXG4tLVxcbmRyaXZlcnMvc3BpL3NwaS1pbnRlbC5jPTEzNzU9c3RhdGljIGludCBpbnRlbF9zcGlfcG9wdWxhdGVfY2hpcChzdHJ1Y3QgaW50ZWxfc3BpICppc3BpKVxcbi0tXFxuZHJpdmVycy9zcGkvc3BpLWludGVsLmMtMTQwMS1cXG5kcml2ZXJzL3NwaS9zcGktaW50ZWwuYzoxNDAyOlxcdGlmICghc3BpX25ld19kZXZpY2UoaXNwaS1cXHUwMDNlaG9zdCwgXFx1MDAyNmNoaXApKVxcbmRyaXZlcnMvc3BpL3NwaS1pbnRlbC5jLTE0MDMtXFx0XFx0cmV0dXJuIC1FTk9ERVY7XFxuLS1cXG5kcml2ZXJzL3NwaS9zcGktaW50ZWwuYy0xNDMwLVxcbmRyaXZlcnMvc3BpL3NwaS1pbnRlbC5jOjE0MzE6XFx0aWYgKCFzcGlfbmV3X2RldmljZShpc3BpLVxcdTAwM2Vob3N0LCBcXHUwMDI2Y2hpcCkpXFxuZHJpdmVycy9zcGkvc3BpLWludGVsLmMtMTQzMi1cXHRcXHRyZXR1cm4gLUVOT0RFVjtcXG4tLVxcbmRyaXZlcnMvc3BpL3NwaS1rc3BpMi5jPTMxMD1zdGF0aWMgaW50IGtzcGkyX3JlZ2lzdGVyX2RldmljZXMoc3RydWN0IGtzcGkyICprc3BpKVxcbi0tXFxuZHJpdmVycy9zcGkvc3BpLWtzcGkyLmMtMzE2LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBrc3BpLVxcdTAwM2VhdXhkZXYtXFx1MDAzZWluZm9fc2l6ZTsgaSsrKSB7XFxuZHJpdmVycy9zcGkvc3BpLWtzcGkyLmM6MzE3OlxcdFxcdHN0cnVjdCBzcGlfZGV2aWNlICpkZXZpY2UgPSBzcGlfbmV3X2RldmljZShrc3BpLVxcdTAwM2Vob3N0LCBcXHUwMDI2aW5mb1tpXSk7XFxuZHJpdmVycy9zcGkvc3BpLWtzcGkyLmMtMzE4LVxcbi0tXFxuZHJpdmVycy9zcGkvc3BpLWxtNzBsbHAuYz0xODg9c3RhdGljIHZvaWQgc3BpX2xtNzBsbHBfYXR0YWNoKHN0cnVjdCBwYXJwb3J0ICpwKVxcbi0tXFxuZHJpdmVycy9zcGkvc3BpLWxtNzBsbHAuYy0yNjYtXFx0cHAtXFx1MDAzZWluZm8uY29udHJvbGxlcl9kYXRhID0gcHA7XFxuZHJpdmVycy9zcGkvc3BpLWxtNzBsbHAuYzoyNjc6XFx0cHAtXFx1MDAzZXNwaWRldl9sbTcwID0gc3BpX25ld19kZXZpY2UocHAtXFx1MDAzZWJpdGJhbmcuY3RsciwgXFx1MDAyNnBwLVxcdTAwM2VpbmZvKTtcXG5kcml2ZXJzL3NwaS9zcGktbG03MGxscC5jLTI2OC1cXHRpZiAocHAtXFx1MDAzZXNwaWRldl9sbTcwKVxcbi0tXFxuZHJpdmVycy9zcGkvc3BpLWxtNzBsbHAuYy0yNzEtXFx0ZWxzZSB7XFxuZHJpdmVycy9zcGkvc3BpLWxtNzBsbHAuYzoyNzI6XFx0XFx0ZGV2X3dhcm4oXFx1MDAyNnBkLVxcdTAwM2VkZXYsIFxcXCJzcGlfbmV3X2RldmljZSBmYWlsZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvc3BpL3NwaS1sbTcwbGxwLmMtMjczLVxcdFxcdHN0YXR1cyA9IC1FTk9ERVY7XFxuLS1cXG5kcml2ZXJzL3NwaS9zcGkteGlsaW54LmM9NDAyPXN0YXRpYyBpbnQgeGlsaW54X3NwaV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9zcGkvc3BpLXhpbGlueC5jLTUwOS1cXHRcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgcGRhdGEtXFx1MDAzZW51bV9kZXZpY2VzOyBpKyspXFxuZHJpdmVycy9zcGkvc3BpLXhpbGlueC5jOjUxMDpcXHRcXHRcXHRzcGlfbmV3X2RldmljZShob3N0LCBwZGF0YS1cXHUwMDNlZGV2aWNlcyArIGkpO1xcbmRyaXZlcnMvc3BpL3NwaS14aWxpbnguYy01MTEtXFx0fVxcbi0tXFxuZHJpdmVycy9zcGkvc3BpLmM9Nzg4PUVYUE9SVF9TWU1CT0xfR1BMKHNwaV9hZGRfZGV2aWNlKTtcXG4tLVxcbmRyaXZlcnMvc3BpL3NwaS5jLTc5MC0vKipcXG5kcml2ZXJzL3NwaS9zcGkuYzo3OTE6ICogc3BpX25ld19kZXZpY2UgLSBpbnN0YW50aWF0ZSBvbmUgbmV3IFNQSSBkZXZpY2VcXG5kcml2ZXJzL3NwaS9zcGkuYy03OTItICogQGN0bHI6IENvbnRyb2xsZXIgdG8gd2hpY2ggZGV2aWNlIGlzIGNvbm5lY3RlZFxcbi0tXFxuZHJpdmVycy9zcGkvc3BpLmMtODAzLSAqL1xcbmRyaXZlcnMvc3BpL3NwaS5jOjgwNDpzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpX25ld19kZXZpY2Uoc3RydWN0IHNwaV9jb250cm9sbGVyICpjdGxyLFxcbmRyaXZlcnMvc3BpL3NwaS5jLTgwNS1cXHRcXHRcXHRcXHQgIHN0cnVjdCBzcGlfYm9hcmRfaW5mbyAqY2hpcClcXG4tLVxcbmRyaXZlcnMvc3BpL3NwaS5jLTg1OS19XFxuZHJpdmVycy9zcGkvc3BpLmM6ODYwOkVYUE9SVF9TWU1CT0xfR1BMKHNwaV9uZXdfZGV2aWNlKTtcXG5kcml2ZXJzL3NwaS9zcGkuYy04NjEtXFxuLS1cXG5kcml2ZXJzL3NwaS9zcGkuYz04OTA9c3RhdGljIHZvaWQgc3BpX21hdGNoX2NvbnRyb2xsZXJfdG9fYm9hcmRpbmZvKHN0cnVjdCBzcGlfY29udHJvbGxlciAqY3RscixcXG4tLVxcbmRyaXZlcnMvc3BpL3NwaS5jLTg5Ny1cXG5kcml2ZXJzL3NwaS9zcGkuYzo4OTg6XFx0ZGV2ID0gc3BpX25ld19kZXZpY2UoY3RsciwgYmkpO1xcbmRyaXZlcnMvc3BpL3NwaS5jLTg5OS1cXHRpZiAoIWRldilcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjJUMDQ6NTE6NDYuMzE3MjY0NTc2WiIsIlNlcSI6NDMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUxMzgwMDIwMjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgU1BJIERldmljZSBJbnN0YW50aWF0aW9uIEpvdXJuZXkqKlxuXG5Pa2F5LCBzbyBJJ20gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgaG93IHRvIHByb2dyYW1tYXRpY2FsbHkgY3JlYXRlIGFuIFNQSSBkZXZpY2UsIGFuZCBpdCdzIGxvb2tpbmcgbGlrZSBgc3lzZnNgIGlzbid0IHRoZSBkaXJlY3QgcGF0aCBsaWtlIGl0IGlzIHdpdGggSTJDLiBIbW0sIGxldCBtZSB0aGluay4uLiBkaWRuJ3QgSSBzZWUgc29tZXRoaW5nIGluIHN5emthbGxlciBhYm91dCBTUEkgZGV2aWNlIHNldHVwPyBNYXliZSB0aGVyZSdzIGEgYHN5el9zcGlfc2V0dXBgIG9yIHNvbWV0aGluZyBzaW1pbGFyPyBHb3R0YSBjaGVjayB0aGF0LiBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgdG8gZ2V0IHN5emthbGxlciB0byBhY3R1YWxseSBpbnN0YW50aWF0ZSBhbiBTUEkgZGV2aWNlLlxuXG5SaWdodCwgbGV0IG1lIGp1c3Qgc2VhcmNoIHRoZSBrZXJuZWwgc291cmNlIGZvciBzb21ldGhpbmcsIGxpa2UgaWYgYW55b25lIHRlc3RzIFNQSSBkcml2ZXJzLiBJJ2xsIHNlYXJjaCBmb3Igc29tZXRoaW5nIHNwZWNpZmljLCBsaWtlIGBsYW44NjV4YC4gTm90aGluZyBwb3BzIHVwLi4uIFdhaXQgYSBzZWNvbmQuLi4gc3l6a2FsbGVyICpkb2VzKiBoYXZlIGEgYHN5el91c2JfY29ubmVjdGAgZnVuY3Rpb24uIE5vdywgY2FuIHRoYXQgc29tZWhvdyBiZSBsZXZlcmFnZWQ/XG5cbkV1cmVrYSEgSXMgdGhlcmUgYSBVU0IgdG8gU1BJIGJyaWRnZSBkZXZpY2UgdGhhdCBzeXprYWxsZXIgY2FuIGluc3RhbnRpYXRlIHdpdGggYHN5el91c2JfY29ubmVjdGA/IExldCdzIHNlZS4uLiAqeWVzISogSSByZWNhbGwgbm93Li4uIGBzcGktY2gzNDEuY2AgaXMgZXhhY3RseSB0aGF0LiBOb3csIGxldCdzIGdvIHBva2UgYXJvdW5kIGluIGBzcGktY2gzNDEuY2AgYW5kIHNlZSBob3cgdGhpcyBpcyBkb25lIGFuZCBpZiB0aGlzIGNhbiB3b3JrIGZvciBteSB0ZXN0aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NjczMiwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yMlQwNDo1MTo1MS40NTUyNjk0MDhaIiwiU2VxIjo0NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODc0MzEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9zcGkvc3BpLWNoMzQxLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMTkwLFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMTkwOlxcdFxcdGN0cmwtXFx1MDAzZXNldF9jcyA9IGNoMzQxX3NldF9jcztcXG4gMTkxOlxcdFxcdGN0cmwtXFx1MDAzZWF1dG9fcnVudGltZV9wbSA9IGZhbHNlO1xcbiAxOTI6XFx0XFxuIDE5MzpcXHRcXHR1c2Jfc2V0X2ludGZkYXRhKGludGYsIGNoMzQxKTtcXG4gMTk0OlxcdFxcbiAxOTU6XFx0XFx0cmV0ID0gY2gzNDFfY29uZmlnX3N0cmVhbShjaDM0MSk7XFxuIDE5NjpcXHRcXHRpZiAocmV0KVxcbiAxOTc6XFx0XFx0XFx0Z290byBlcnJfa2lsbF91cmI7XFxuIDE5ODpcXHRcXG4gMTk5OlxcdFxcdHJldCA9IGNoMzQxX2VuYWJsZV9waW5zKGNoMzQxLCB0cnVlKTtcXG4gMjAwOlxcdFxcdGlmIChyZXQpXFxuIDIwMTpcXHRcXHRcXHRnb3RvIGVycl9raWxsX3VyYjtcXG4gMjAyOlxcdFxcbiAyMDM6XFx0XFx0cmV0ID0gc3BpX3JlZ2lzdGVyX2NvbnRyb2xsZXIoY3RybCk7XFxuIDIwNDpcXHRcXHRpZiAocmV0KVxcbiAyMDU6XFx0XFx0XFx0Z290byBlcnJfZGlzYWJsZV9waW5zO1xcbiAyMDY6XFx0XFxuIDIwNzpcXHRcXHRjaDM0MS1cXHUwMDNlc3BpZGV2ID0gc3BpX25ld19kZXZpY2UoY3RybCwgXFx1MDAyNmNoaXApO1xcbiAyMDg6XFx0XFx0aWYgKCFjaDM0MS1cXHUwMDNlc3BpZGV2KSB7XFxuIDIwOTpcXHRcXHRcXHRyZXQgPSAtRU5PTUVNO1xcbiAyMTA6XFx0XFx0XFx0Z290byBlcnJfdW5yZWdpc3RlcjtcXG4gMjExOlxcdFxcdH1cXG4gMjEyOlxcdFxcbiAyMTM6XFx0XFx0cmV0dXJuIDA7XFxuIDIxNDpcXHRcXG4gMjE1OlxcdGVycl91bnJlZ2lzdGVyOlxcbiAyMTY6XFx0XFx0c3BpX3VucmVnaXN0ZXJfY29udHJvbGxlcihjdHJsKTtcXG4gMjE3OlxcdGVycl9kaXNhYmxlX3BpbnM6XFxuIDIxODpcXHRcXHRjaDM0MV9lbmFibGVfcGlucyhjaDM0MSwgZmFsc2UpO1xcbiAyMTk6XFx0ZXJyX2tpbGxfdXJiOlxcbiAyMjA6XFx0XFx0dXNiX2tpbGxfdXJiKGNoMzQxLVxcdTAwM2VyeF91cmIpO1xcbiAyMjE6XFx0ZXJyX2ZyZWVfdXJiOlxcbiAyMjI6XFx0XFx0dXNiX2ZyZWVfdXJiKGNoMzQxLVxcdTAwM2VyeF91cmIpO1xcbiAyMjM6XFx0XFxuIDIyNDpcXHRcXHRyZXR1cm4gcmV0O1xcbiAyMjU6XFx0fVxcbiAyMjY6XFx0XFxuIDIyNzpcXHRzdGF0aWMgdm9pZCBjaDM0MV9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmKVxcbiAyMjg6XFx0e1xcbiAyMjk6XFx0XFx0c3RydWN0IGNoMzQxX3NwaV9kZXYgKmNoMzQxID0gdXNiX2dldF9pbnRmZGF0YShpbnRmKTtcXG4gMjMwOlxcdFxcbiAyMzE6XFx0XFx0c3BpX3VucmVnaXN0ZXJfZGV2aWNlKGNoMzQxLVxcdTAwM2VzcGlkZXYpO1xcbiAyMzI6XFx0XFx0c3BpX3VucmVnaXN0ZXJfY29udHJvbGxlcihjaDM0MS1cXHUwMDNlY3RybCk7XFxuIDIzMzpcXHRcXHRjaDM0MV9lbmFibGVfcGlucyhjaDM0MSwgZmFsc2UpO1xcbiAyMzQ6XFx0XFx0dXNiX2tpbGxfdXJiKGNoMzQxLVxcdTAwM2VyeF91cmIpO1xcbiAyMzU6XFx0XFx0dXNiX2ZyZWVfdXJiKGNoMzQxLVxcdTAwM2VyeF91cmIpO1xcbiAyMzY6XFx0fVxcbiAyMzc6XFx0XFxuIDIzODpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgY2gzNDFfaWRfdGFibGVbXSA9IHtcXG4gMjM5OlxcdFxcdHsgVVNCX0RFVklDRSgweDFhODYsIDB4NTUxMikgfSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjJUMDQ6NTE6NTEuNDU1MzU4Mjc5WiIsIlNlcSI6NDUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0NTI1Mjg1MzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgZnJvbSBhbiBleHBlcnQncyBwZXJzcGVjdGl2ZTpcblxuKipEaXZpbmcgaW50byB0aGUgYHNwaS1jaDM0MS5jYCBJbnN0YW50aWF0aW9uKipcblxuUmlnaHQsIHNvIEknbSBsb29raW5nIGF0IHRoZSBgc3BpLWNoMzQxLmNgIGRyaXZlciwgc3BlY2lmaWNhbGx5IGF0IHRoZSBkZXZpY2UgaW5zdGFudGlhdGlvbi4gSXQgbG9va3MgbGlrZSBpdCdzIGNyZWF0aW5nIGEgbmV3IFNQSSBkZXZpY2UsIHVzaW5nIGBzcGlfbmV3X2RldmljZSgpYC4gIFRoZSBjb3JlIG9mIHRoaXMgaXMgdGhlIGxpbmU6IGBjaDM0MS1cdTAwM2VzcGlkZXYgPSBzcGlfbmV3X2RldmljZShjdHJsLCBcdTAwMjZjaGlwKTtgLiBUaGF0J3Mgd2hlcmUgdGhlIG1hZ2ljIGhhcHBlbnMsIHJpZ2h0PyBJIGltbWVkaWF0ZWx5IG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgYGNoaXBgIHZhcmlhYmxlIGFjdHVhbGx5IHJlcHJlc2VudHMuIElzIGl0IGEgc3RhdGljIGRlZmluaXRpb24sIGEgZHluYW1pYyBzdHJ1Y3R1cmUsIG9yIGEgcG9pbnRlciB0byBhIGNvbmZpZz8gQ29udGV4dHVhbGx5LCBpdCdzIGJlaW5nIHBhc3NlZCBhcyBhIHBvaW50ZXIsIHNvIEkgYXNzdW1lIGl0J3Mgc29tZSBzb3J0IG9mIFNQSSBjaGlwIGRlZmluaXRpb24sIHByb2JhYmx5IHNwZWNpZmljIHRvIHRoZSBDSDM0MS4gSSBuZWVkIHRvIGRpZyBpbnRvIHRoZSBkZWZpbml0aW9uIG9mIGBjaGlwYCB0byBkZXRlcm1pbmUgaG93IHRoZSBkcml2ZXIga25vd3MgdGhlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUgYXR0YWNoZWQgQ0gzNDEuIFRoYXQncyB0aGUgY3JpdGljYWwgcGllY2UgZm9yIGEgc3VjY2Vzc2Z1bCBpbnN0YW50aWF0aW9uLiBUaGlzIGlzIHdoZXJlIHRoZSBhY3R1YWwgY29uZmlndXJhdGlvbiBkYXRhIGxpdmVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2Nzk2OSwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjJUMDQ6NTE6NTQuOTA3ODkwMjY2WiIsIlNlcSI6NDYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg2ODIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvc3BpL3NwaS1jaDM0MS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEzMCxcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDEzMDpcXHRcXHRjaDM0MS1cXHUwMDNldHhfYnVmWzJdID0gQ0gzNDFBX0NNRF9VSU9fU1RNX0RJUiB8IChlbmFibGUgPyAweDNmIDogMHgwMCk7XFxuIDEzMTpcXHRcXHRjaDM0MS1cXHUwMDNldHhfYnVmWzNdID0gQ0gzNDFBX0NNRF9VSU9fU1RNX0VORDtcXG4gMTMyOlxcdFxcbiAxMzM6XFx0XFx0cmV0dXJuIHVzYl9idWxrX21zZyhjaDM0MS1cXHUwMDNldWRldiwgY2gzNDEtXFx1MDAzZXdyaXRlX3BpcGUsIGNoMzQxLVxcdTAwM2V0eF9idWYsIDQsXFxuIDEzNDpcXHRcXHRcXHRcXHQgICAgTlVMTCwgQ0gzNDFfREVGQVVMVF9USU1FT1VUKTtcXG4gMTM1OlxcdH1cXG4gMTM2OlxcdFxcbiAxMzc6XFx0c3RhdGljIHN0cnVjdCBzcGlfYm9hcmRfaW5mbyBjaGlwID0ge1xcbiAxMzg6XFx0XFx0Lm1vZGFsaWFzID0gXFxcInNwaS1jaDM0MWFcXFwiLFxcbiAxMzk6XFx0fTtcXG4gMTQwOlxcdFxcbiAxNDE6XFx0c3RhdGljIGludCBjaDM0MV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcXG4gMTQyOlxcdFxcdFxcdCAgICAgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXFxuIDE0MzpcXHR7XFxuIDE0NDpcXHRcXHRzdHJ1Y3QgdXNiX2RldmljZSAqdWRldiA9IGludGVyZmFjZV90b191c2JkZXYoaW50Zik7XFxuIDE0NTpcXHRcXHRzdHJ1Y3QgdXNiX2VuZHBvaW50X2Rlc2NyaXB0b3IgKmluLCAqb3V0O1xcbiAxNDY6XFx0XFx0c3RydWN0IGNoMzQxX3NwaV9kZXYgKmNoMzQxO1xcbiAxNDc6XFx0XFx0c3RydWN0IHNwaV9jb250cm9sbGVyICpjdHJsO1xcbiAxNDg6XFx0XFx0aW50IHJldDtcXG4gMTQ5OlxcdFxcbiAxNTA6XFx0XFx0cmV0ID0gdXNiX2ZpbmRfY29tbW9uX2VuZHBvaW50cyhpbnRmLVxcdTAwM2VjdXJfYWx0c2V0dGluZywgXFx1MDAyNmluLCBcXHUwMDI2b3V0LCBOVUxMLFxcbiAxNTE6XFx0XFx0XFx0XFx0XFx0XFx0TlVMTCk7XFxuIDE1MjpcXHRcXHRpZiAocmV0KVxcbiAxNTM6XFx0XFx0XFx0cmV0dXJuIHJldDtcXG4gMTU0OlxcdFxcbiAxNTU6XFx0XFx0Y3RybCA9IGRldm1fc3BpX2FsbG9jX2hvc3QoXFx1MDAyNmludGYtXFx1MDAzZWRldiwgc2l6ZW9mKHN0cnVjdCBjaDM0MV9zcGlfZGV2KSk7XFxuIDE1NjpcXHRcXHRpZiAoIWN0cmwpXFxuIDE1NzpcXHRcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4gMTU4OlxcdFxcbiAxNTk6XFx0XFx0Y2gzNDEgPSBzcGlfY29udHJvbGxlcl9nZXRfZGV2ZGF0YShjdHJsKTtcXG4gMTYwOlxcdFxcdGNoMzQxLVxcdTAwM2VjdHJsID0gY3RybDtcXG4gMTYxOlxcdFxcdGNoMzQxLVxcdTAwM2V1ZGV2ID0gdWRldjtcXG4gMTYyOlxcdFxcdGNoMzQxLVxcdTAwM2V3cml0ZV9waXBlID0gdXNiX3NuZGJ1bGtwaXBlKHVkZXYsIHVzYl9lbmRwb2ludF9udW0ob3V0KSk7XFxuIDE2MzpcXHRcXHRjaDM0MS1cXHUwMDNlcmVhZF9waXBlID0gdXNiX3JjdmJ1bGtwaXBlKHVkZXYsIHVzYl9lbmRwb2ludF9udW0oaW4pKTtcXG4gMTY0OlxcdFxcbiAxNjU6XFx0XFx0Y2gzNDEtXFx1MDAzZXJ4X2xlbiA9IHVzYl9lbmRwb2ludF9tYXhwKGluKTtcXG4gMTY2OlxcdFxcdGNoMzQxLVxcdTAwM2VyeF9idWYgPSBkZXZtX2t6YWxsb2MoXFx1MDAyNmludGYtXFx1MDAzZWRldiwgY2gzNDEtXFx1MDAzZXJ4X2xlbiwgR0ZQX0tFUk5FTCk7XFxuIDE2NzpcXHRcXHRpZiAoIWNoMzQxLVxcdTAwM2VyeF9idWYpXFxuIDE2ODpcXHRcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4gMTY5OlxcdFxcbiAxNzA6XFx0XFx0Y2gzNDEtXFx1MDAzZXJ4X3VyYiA9IHVzYl9hbGxvY191cmIoMCwgR0ZQX0tFUk5FTCk7XFxuIDE3MTpcXHRcXHRpZiAoIWNoMzQxLVxcdTAwM2VyeF91cmIpXFxuIDE3MjpcXHRcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4gMTczOlxcdFxcbiAxNzQ6XFx0XFx0Y2gzNDEtXFx1MDAzZXR4X2J1ZiA9IGRldm1fa3phbGxvYyhcXHUwMDI2aW50Zi1cXHUwMDNlZGV2LCBDSDM0MV9QQUNLRVRfTEVOR1RILCBHRlBfS0VSTkVMKTtcXG4gMTc1OlxcdFxcdGlmICghY2gzNDEtXFx1MDAzZXR4X2J1Zikge1xcbiAxNzY6XFx0XFx0XFx0cmV0ID0gLUVOT01FTTtcXG4gMTc3OlxcdFxcdFxcdGdvdG8gZXJyX2ZyZWVfdXJiO1xcbiAxNzg6XFx0XFx0fVxcbiAxNzk6XFx0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIyVDA0OjUxOjU0LjkwNzk3ODU0NloiLCJTZXEiOjQ3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDc0ODM1Nzg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipJbnZlc3RpZ2F0aW5nIFNQSSBCcmlkZ2UgU2VsZWN0aW9uKipcblxuUmlnaHQsIHNvIHRoZSBzeXN0ZW0gaGFzIGNsZWFybHkgb3B0ZWQgZm9yIGBzcGktY2gzNDFhYC4gVGhhdCdzIHRoZSBkcml2ZXIgdGhhdCdzIGJlZW4gYnJvdWdodCBpbnRvIHBsYXkuIEludGVyZXN0aW5nLCBubyBzaWduIG9mIGBsYW44NjV4YCB0aG91Z2guIEkgd29uZGVyIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgVVNCLXRvLVNQSSBicmlkZ2VzIGluIHRoZSBzeXN0ZW0gdGhhdCBtaWdodCBiZSBpbiBwbGF5LiBJIG5lZWQgdG8gbWFrZSBzdXJlIEknbSBnZXR0aW5nIHRoZSBjb21wbGV0ZSBwaWN0dXJlIGhlcmUsIHNvIEkgbmVlZCB0byBjaGVjayBvdGhlciBwb3NzaWJpbGl0aWVzLiBUaGUgYHNwaS1kbG4yLmNgIGRyaXZlciBzcHJpbmdzIHRvIG1pbmQuIEhhdmUgSSBtaXNzZWQgYW55dGhpbmc/IEkgd2lsbCBjaGVjayBvbiB0aGlzIHRvIGVuc3VyZSBhbGwgdGhlIGJhc2VzIGFyZSBjb3ZlcmVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2OTIwOCwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ0LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjJUMDQ6NTE6NTguMzgyODE3NzMzWiIsIlNlcSI6NDgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk0MjEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvc3BpL3NwaS1kbG4yLmNcIixcbiAgXCJGaXJzdExpbmVcIjogNzUwLFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgNzUwOlxcdFxcdFxcdHJldHVybiByZXQ7XFxuIDc1MTpcXHRcXHR9XFxuIDc1MjpcXHRcXG4gNzUzOlxcdFxcdHBtX3J1bnRpbWVfc2V0X2F1dG9zdXNwZW5kX2RlbGF5KFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsXFxuIDc1NDpcXHRcXHRcXHRcXHRcXHRcXHQgRExOMl9SUE1fQVVUT1NVU1BFTkRfVElNRU9VVCk7XFxuIDc1NTpcXHRcXHRwbV9ydW50aW1lX3VzZV9hdXRvc3VzcGVuZChcXHUwMDI2cGRldi1cXHUwMDNlZGV2KTtcXG4gNzU2OlxcdFxcdHBtX3J1bnRpbWVfc2V0X2FjdGl2ZShcXHUwMDI2cGRldi1cXHUwMDNlZGV2KTtcXG4gNzU3OlxcdFxcdHBtX3J1bnRpbWVfZW5hYmxlKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYpO1xcbiA3NTg6XFx0XFxuIDc1OTpcXHRcXHRyZXQgPSBzcGlfcmVnaXN0ZXJfY29udHJvbGxlcihob3N0KTtcXG4gNzYwOlxcdFxcdGlmIChyZXQgXFx1MDAzYyAwKSB7XFxuIDc2MTpcXHRcXHRcXHRkZXZfZXJyKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIFxcXCJGYWlsZWQgdG8gcmVnaXN0ZXIgaG9zdFxcXFxuXFxcIik7XFxuIDc2MjpcXHRcXHRcXHRnb3RvIGV4aXRfcmVnaXN0ZXI7XFxuIDc2MzpcXHRcXHR9XFxuIDc2NDpcXHRcXG4gNzY1OlxcdFxcdHJldHVybiByZXQ7XFxuIDc2NjpcXHRcXG4gNzY3OlxcdGV4aXRfcmVnaXN0ZXI6XFxuIDc2ODpcXHRcXHRwbV9ydW50aW1lX2Rpc2FibGUoXFx1MDAyNnBkZXYtXFx1MDAzZWRldik7XFxuIDc2OTpcXHRcXHRwbV9ydW50aW1lX3NldF9zdXNwZW5kZWQoXFx1MDAyNnBkZXYtXFx1MDAzZWRldik7XFxuIDc3MDpcXHRcXG4gNzcxOlxcdFxcdGlmIChkbG4yX3NwaV9lbmFibGUoZGxuMiwgZmFsc2UpIFxcdTAwM2MgMClcXG4gNzcyOlxcdFxcdFxcdGRldl9lcnIoXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgXFxcIkZhaWxlZCB0byBkaXNhYmxlIFNQSSBtb2R1bGVcXFxcblxcXCIpO1xcbiA3NzM6XFx0XFxuIDc3NDpcXHRcXHRyZXR1cm4gcmV0O1xcbiA3NzU6XFx0fVxcbiA3NzY6XFx0XFxuIDc3NzpcXHRzdGF0aWMgdm9pZCBkbG4yX3NwaV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4gNzc4OlxcdHtcXG4gNzc5OlxcdFxcdHN0cnVjdCBzcGlfY29udHJvbGxlciAqaG9zdCA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpO1xcbiA3ODA6XFx0XFx0c3RydWN0IGRsbjJfc3BpICpkbG4yID0gc3BpX2NvbnRyb2xsZXJfZ2V0X2RldmRhdGEoaG9zdCk7XFxuIDc4MTpcXHRcXG4gNzgyOlxcdFxcdHNwaV91bnJlZ2lzdGVyX2NvbnRyb2xsZXIoaG9zdCk7XFxuIDc4MzpcXHRcXG4gNzg0OlxcdFxcdHBtX3J1bnRpbWVfZGlzYWJsZShcXHUwMDI2cGRldi1cXHUwMDNlZGV2KTtcXG4gNzg1OlxcdFxcbiA3ODY6XFx0XFx0aWYgKGRsbjJfc3BpX2VuYWJsZShkbG4yLCBmYWxzZSkgXFx1MDAzYyAwKVxcbiA3ODc6XFx0XFx0XFx0ZGV2X2VycihcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBcXFwiRmFpbGVkIHRvIGRpc2FibGUgU1BJIG1vZHVsZVxcXFxuXFxcIik7XFxuIDc4ODpcXHR9XFxuIDc4OTpcXHRcXG4gNzkwOlxcdCNpZmRlZiBDT05GSUdfUE1fU0xFRVBcXG4gNzkxOlxcdHN0YXRpYyBpbnQgZGxuMl9zcGlfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpXFxuIDc5MjpcXHR7XFxuIDc5MzpcXHRcXHRpbnQgcmV0O1xcbiA3OTQ6XFx0XFx0c3RydWN0IHNwaV9jb250cm9sbGVyICpob3N0ID0gZGV2X2dldF9kcnZkYXRhKGRldik7XFxuIDc5NTpcXHRcXHRzdHJ1Y3QgZGxuMl9zcGkgKmRsbjIgPSBzcGlfY29udHJvbGxlcl9nZXRfZGV2ZGF0YShob3N0KTtcXG4gNzk2OlxcdFxcbiA3OTc6XFx0XFx0cmV0ID0gc3BpX2NvbnRyb2xsZXJfc3VzcGVuZChob3N0KTtcXG4gNzk4OlxcdFxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbiA3OTk6XFx0XFx0XFx0cmV0dXJuIHJldDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjJUMDQ6NTE6NTguMzgyOTEzNDczWiIsIlNlcSI6NDksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg1MzcxOTM4NjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgYGxhbjg2NXhgIGluIGEgRnV6emluZyBDb250ZXh0KipcblxuT2theSwgc28gSSdtIHRyeWluZyB0byBmaWd1cmUgb3V0IGlmIHN5emthbGxlciBjYW4gZXZlbiByZWFjaCB0aGUgY29kZSBmb3IgdGhlIGBsYW44NjV4YCBkcml2ZXIsIGFuZCBpZiBpdCdzIHdvcnRoIHRoZSBlZmZvcnQuIE15IGZpcnN0IHRob3VnaHQgaXMganVzdCB0aGF0IHRoZSBob3N0IGlzIHJlZ2lzdGVyZWQuIEJ1dCBJIG5lZWQgYSB3YXkgdG8gaW5zdGFudGlhdGUgYW4gU1BJIGRldmljZSBmcm9tIHVzZXJzcGFjZS4gQ2FuIHN5emthbGxlciBkbyB0aGF0PyBJcyB0aGVyZSBhIHdheT8gSSBrbm93IEkndmUgc2VlbiBgc3BpX25ld19kZXZpY2VgIHVzZWQgdmlhIHN5c2ZzLi4uIGJ1dCB3YWl0LCBJIGp1c3QgY2hlY2tlZCwgYW5kIHRoZSBkcml2ZXJzL3NwaS8gZGlyZWN0b3J5IGRvZXNuJ3QgaGF2ZSBhIHN5c2ZzIGF0dHJpYnV0ZSBmb3IgYG5ld19kZXZpY2VgLiBIbW0sIHdoYXQgYWJvdXQgYW4gaW9jdGwgaW4gYHNwaWRldmA/IE5vLCB0aGF0IGp1c3QgbGV0cyB1c2Vyc3BhY2UgdGFsayAqdG8qIGFuIGV4aXN0aW5nIGRldmljZS4gSXMgdGhlcmUgYW5vdGhlciB3YXk/XG5cblBlcmhhcHMgYGxhbjg2NXhgIGlzIGp1c3QgdW5yZWFjaGFibGUgaW4gc3l6a2FsbGVyLiBUaGVuIGFnYWluLCBJIHdvbmRlciBpZiBzeXprYWxsZXIgY2FuIGluamVjdCBkZXZpY2UgdHJlZSBub2Rlcz8gTm8sIGl0IGRvZXNuJ3QgaGF2ZSBhIGdlbmVyaWMgZGV2aWNlIHRyZWUgaW5qZWN0b3IuIEFDUEkgaW5qZWN0aW9uPyBOb3BlLCBub3RoaW5nIGR5bmFtaWNhbGx5IHRoZXJlIGVpdGhlci4gV2FpdC4uLiBkaWQgdGhleSByZWNlbnRseSBhZGQgc29tZXRoaW5nIGxpa2UgYHN5el9kZXZfaW5pdGA/IE5vcGUsIG5vdCB0aGF0IEknbSBhd2FyZSBvZi4gQnV0LCBpZiBgbGFuODY1eGAgaXMgY29tcGlsZWQgYW5kIHJlYWNoYWJsZSwgdGhlbiBzeXprYWxsZXIgKmNhbiogZnV6eiBpdC4gVGhlIG1haW4gcXVlc3Rpb24gcmVtYWluczogaXMgaXQgcmVhY2hhYmxlP1xuXG5JIHNob3VsZCBzZWUgaWYgdGhlcmUgaXMgYW55IG90aGVyIHdheSBgbGFuODY1eGAgY291bGQgYmUgaW5zdGFudGlhdGVkLiBSaWdodCwgaXQncyBhbiBTUEkgZHJpdmVyLCBzbyBpZiB0aGVyZSdzIG5vIGluc3RhbnRpYXRpb24gbWV0aG9kLCB0aGVuIGl0J3MgdW5yZWFjaGFibGUuIEJ1dCB3YWl0LCB3aGF0IGlmIGl0J3MgYSBuZXRkZXYgZHJpdmVyPyBZZXMsIGl0IGlzISBCdXQgaXQncyBhbiBTUEkgZGV2aWNlIGRyaXZlciB0aGF0IHJlZ2lzdGVycyBhIG5ldGRldi4gSWYgdGhlIFNQSSBkZXZpY2UgaXMgbmV2ZXIgcHJvYmVkLCB0aGUgbmV0ZGV2IGlzbid0IHJlZ2lzdGVyZWQuIElmIHRoZSBuZXRkZXYgaXNuJ3QgcmVnaXN0ZXJlZCwgdGhlbiB0aGUgY29kZSBJJ20gaW50ZXJlc3RlZCBpbiwgaW4gYG9hX3RjNi5jYCwgbmV2ZXIgZ2V0cyBleGVjdXRlZC4gU28sIGFyZSB3ZSBzYXlpbmcgYFdvcnRoRnV6emluZz1mYWxzZWA/XG5cbkkgbmVlZCB0byBkb3VibGUtY2hlY2suIEkgcmVjYWxsIHNvbWUgcmVjZW50IFNQSSBmdXp6aW5nIHN1cHBvcnQgYmVpbmcgYWRkZWQgdG8gc3l6a2FsbGVyLCBsaWtlIGluIDIwMjMgb3IgMjAyNC4gTGV0J3Mgc2VhcmNoIGZvciBgc3l6X3NwaWAgYW5kIHNlZSB3aGF0IGNvbWVzIHVwLiBUaGF0IHNob3VsZCBnaXZlIG1lIGEgZGVmaW5pdGl2ZSBhbnN3ZXIsIG9uZSB3YXkgb3IgYW5vdGhlci5cblxuXG4iLCJJbnB1dFRva2VucyI6NzAxOTYsIk91dHB1dFRva2VucyI6MjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MzgsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yMlQwNDo1MjowNi45MjAxMTAxNTNaIiwiU2VxIjo1MCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5Mzc3NzU0NTksIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN5el9zcGlcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMlQwNDo1MjowOC44NTc4OTM1ODJaIiwiU2VxIjo1MSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjEzMDk3MTE2MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipTUEkgRHJpdmVyIEZ1enppbmcgUXVhbmRhcnkqKlxuXG5Pa2F5LCBzbyBJJ20gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgdGhlIGJlc3Qgd2F5IHRvIGZ1enogdGhlIGBsYW44NjV4YCBTUEkgZHJpdmVyLiBNeSBpbml0aWFsIHRob3VnaHQgd2FzIHRvIHVzZSBzb21ldGhpbmcgbGlrZSBgdmhjaWAgZm9yIFNQSSwgc2ltaWxhciB0byBob3cgd2Ugc2ltdWxhdGUgdmlydHVhbCBoYXJkd2FyZSBmb3Igb3RoZXIgYnVzZXMsIGJ1dCB0aGF0IHdvbid0IHdvcmsuIERhcm4uIElzIHRoZXJlIGFuIGFuYWxvZ291cyBgbWFjODAyMTFfaHdzaW1gIGZvciBTUEk/IE5vcGUsIG5vdGhpbmcgbGlrZSB0aGF0IGV4aXN0cy5cblxuQWxyaWdodCwgYSBkaWZmZXJlbnQgYXBwcm9hY2ggdGhlbi4gSSByZW1lbWJlciBzeXprYWxsZXIgY2FuIGZ1enogU1BJIGRyaXZlcnMsIGlmIHRoZSB0YXJnZXQgZHJpdmVyIGlzIGluc3RhbnRpYXRlZC4gVGhlIGtleSBpcyBpbnN0YW50aWF0aW9uLCBzbyBhcmUgdGhlcmUgYW55IFNQSSBkZXZpY2VzIGluc3RhbnRpYXRlZCBpbiB0aGUgZGVmYXVsdCBzeXprYWxsZXIgUUVNVSBlbnZpcm9ubWVudD8gUHJvYmFibHkgbm90LiBXZSdyZSB1c2luZyBgcWVtdS1zeXN0ZW0teDg2XzY0YCB3aXRoIGBwY2Agb3IgYHEzNWAgbWFjaGluZSB0eXBlcywgd2hpY2ggbWVhbnMgbm8gYGxhbjg2NXhgIFNQSSBkZXZpY2VzIHByZXNlbnQuIFVubGVzcyBpdCdzIGEgc3BlY2lmaWMgYm9hcmQsIHdoaWNoIGl0IGlzbid0LlxuXG5TaG9vdCwgdGhpcyBpcyB0cmlja2llciB0aGFuIEkgdGhvdWdodC4gSG9sZCBvbiwgY291bGQgSSBzb21laG93IGdldCB0aGUgYGxhbjg2NXhgIGRldmljZSBpbnN0YW50aWF0ZWQgdGhyb3VnaCBQQ0k/IE5vLCB0aGF0J3Mgbm90IGhvdyBpdCB3b3Jrcy4gSXQncyBhbiBTUEkgZGV2aWNlLiBPciBVU0I/IE5vLCB0aGF0J3MgYSBkZWFkIGVuZCB0b28uIEFyZSB0aGVyZSBhbnkgb3RoZXIgYnVzZXMgdGhhdCBjb3VsZCB3b3JrPyBNYXliZSwgbGV0J3MgdGFrZSBhIGNsb3NlciBsb29rIGF0IHRoZSBgbGFuODY1eF9kcml2ZXJgIHNvdXJjZSBjb2RlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3MTE3MSwiT3V0cHV0VG9rZW5zIjo1MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yMlQwNDo1MjoxNC45ODg4NjkxMjRaIiwiU2VxIjo1MiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTY2MTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDQzMCxcbiAgXCJMaW5lQ291bnRcIjogMzBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDQzMDpcXHRcXHR7IC5uYW1lID0gXFxcImxhbjg2NTFcXFwiIH0sXFxuIDQzMTpcXHRcXHR7fSxcXG4gNDMyOlxcdH07XFxuIDQzMzpcXHRNT0RVTEVfREVWSUNFX1RBQkxFKHNwaSwgbGFuODY1eF9pZHMpO1xcbiA0MzQ6XFx0XFxuIDQzNTpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBsYW44NjV4X2R0X2lkc1tdID0ge1xcbiA0MzY6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtaWNyb2NoaXAsbGFuODY1MFxcXCIgfSxcXG4gNDM3OlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwibWljcm9jaGlwLGxhbjg2NTFcXFwiIH0sXFxuIDQzODpcXHRcXHR7IC8qIFNlbnRpbmVsICovIH1cXG4gNDM5OlxcdH07XFxuIDQ0MDpcXHRNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBsYW44NjV4X2R0X2lkcyk7XFxuIDQ0MTpcXHRcXG4gNDQyOlxcdHN0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBsYW44NjV4X2RyaXZlciA9IHtcXG4gNDQzOlxcdFxcdC5kcml2ZXIgPSB7XFxuIDQ0NDpcXHRcXHRcXHQubmFtZSA9IERSVl9OQU1FLFxcbiA0NDU6XFx0XFx0XFx0Lm9mX21hdGNoX3RhYmxlID0gbGFuODY1eF9kdF9pZHMsXFxuIDQ0NjpcXHRcXHQgfSxcXG4gNDQ3OlxcdFxcdC5wcm9iZSA9IGxhbjg2NXhfcHJvYmUsXFxuIDQ0ODpcXHRcXHQucmVtb3ZlID0gbGFuODY1eF9yZW1vdmUsXFxuIDQ0OTpcXHRcXHQuaWRfdGFibGUgPSBsYW44NjV4X2lkcyxcXG4gNDUwOlxcdH07XFxuIDQ1MTpcXHRtb2R1bGVfc3BpX2RyaXZlcihsYW44NjV4X2RyaXZlcik7XFxuIDQ1MjpcXHRcXG4gNDUzOlxcdE1PRFVMRV9ERVNDUklQVElPTihEUlZfTkFNRSBcXFwiIDEwQmFzZS1UMVMgTUFDUEhZIEV0aGVybmV0IERyaXZlclxcXCIpO1xcbiA0NTQ6XFx0TU9EVUxFX0FVVEhPUihcXFwiUGFydGhpYmFuIFZlZXJhc29vcmFuIFxcdTAwM2NwYXJ0aGliYW4udmVlcmFzb29yYW5AbWljcm9jaGlwLmNvbVxcdTAwM2VcXFwiKTtcXG4gNDU1OlxcdE1PRFVMRV9MSUNFTlNFKFxcXCJHUExcXFwiKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjJUMDQ6NTI6MTQuOTg4OTY3MTUzWiIsIlNlcSI6NTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQxNjc1OTMzMDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyBEeW5hbWljIFNQSSBEZXZpY2UgSW5zdGFudGlhdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGFuIFNQSSBkcml2ZXIgaGVyZS4gVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiBpbiBteSBtaW5kIGlzLCBcIkNhbiBJIGluc3RhbnRpYXRlIGFuIFNQSSBkZXZpY2UgZHluYW1pY2FsbHkgaW4gTGludXg/XCIgSSBrbm93IEkgKmNhbiogZG8gaXQgZnJvbSBrZXJuZWwgY29kZSB1c2luZyBgc3BpX2JvYXJkX2luZm9gIGFuZCBgc3BpX25ld19kZXZpY2UoKWAsIHRoYXQncyBzdHJhaWdodGZvcndhcmQgZW5vdWdoLiBCdXQsIHRoZSBtb3JlIGludGVyZXN0aW5nIHF1ZXN0aW9uIGlzOiBcIklzIHRoZXJlIGFueSAqdXNlcnNwYWNlKiBpbnRlcmZhY2UgZm9yIGRvaW5nIHRoaXM/XCJcblxuTXkgbWVtb3J5IGlzIG51ZGdpbmcgbWUg4oCTIEkgc2VlbSB0byByZWNhbGwgdGhhdCBJMkMgcHJvdmlkZXMgYSBuaWNlIHVzZXJzcGFjZSBtZWNoYW5pc20gd2l0aCBgL3N5cy9idXMvaTJjL2RldmljZXMvaTJjLTAvbmV3X2RldmljZWAuIFRoYXQncyByZWFsbHkgaGFuZHkuIFNvLCB0aGUgZm9sbG93IHVwIHF1ZXN0aW9uIHRoZW4gaXMsIFwiRG9lcyBTUEkgaGF2ZSBhIHNpbWlsYXIgY29uc3RydWN0P1wiIEl0J3MgZGVmaW5pdGVseSB3b3J0aCBjaGVja2luZy5cblxuSSdsbCBkaWcgaW50byB0aGUga2VybmVsIHNvdXJjZSB0byBzZWUgaWYgdGhlcmUncyBhbnl0aGluZyBhbmFsb2dvdXMuIExldCdzIHNlZSBpZiB0aGUgYGRyaXZlcnMvc3BpL3NwaS5jYCBmaWxlIGhvbGRzIGFueSBjbHVlcywgc3BlY2lmaWNhbGx5IGxvb2tpbmcgZm9yIGFueSBpbmRpY2F0aW9uIG9mIGEgYG5ld19kZXZpY2VgIGludGVyZmFjZS4gVGhhdCdzIHRoZSBtb3N0IGxvZ2ljYWwgcGxhY2UgdG8gc3RhcnQuIExldCdzIHNlZSB3aGF0IHRoYXQgZmlsZSByZXZlYWxzLi4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjcyMTUxLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTIxLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjJUMDQ6NTI6MTkuMTU2NTYyOTI2WiIsIlNlcSI6NTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MjUzMTk1OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuZXdfZGV2aWNlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvc3BpL3NwaS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvc3BpL3NwaS5jPTc4OD1FWFBPUlRfU1lNQk9MX0dQTChzcGlfYWRkX2RldmljZSk7XFxuLS1cXG5kcml2ZXJzL3NwaS9zcGkuYy03OTAtLyoqXFxuZHJpdmVycy9zcGkvc3BpLmM6NzkxOiAqIHNwaV9uZXdfZGV2aWNlIC0gaW5zdGFudGlhdGUgb25lIG5ldyBTUEkgZGV2aWNlXFxuZHJpdmVycy9zcGkvc3BpLmMtNzkyLSAqIEBjdGxyOiBDb250cm9sbGVyIHRvIHdoaWNoIGRldmljZSBpcyBjb25uZWN0ZWRcXG4tLVxcbmRyaXZlcnMvc3BpL3NwaS5jLTgwMy0gKi9cXG5kcml2ZXJzL3NwaS9zcGkuYzo4MDQ6c3RydWN0IHNwaV9kZXZpY2UgKnNwaV9uZXdfZGV2aWNlKHN0cnVjdCBzcGlfY29udHJvbGxlciAqY3RscixcXG5kcml2ZXJzL3NwaS9zcGkuYy04MDUtXFx0XFx0XFx0XFx0ICBzdHJ1Y3Qgc3BpX2JvYXJkX2luZm8gKmNoaXApXFxuLS1cXG5kcml2ZXJzL3NwaS9zcGkuYy04NTktfVxcbmRyaXZlcnMvc3BpL3NwaS5jOjg2MDpFWFBPUlRfU1lNQk9MX0dQTChzcGlfbmV3X2RldmljZSk7XFxuZHJpdmVycy9zcGkvc3BpLmMtODYxLVxcbi0tXFxuZHJpdmVycy9zcGkvc3BpLmM9ODkwPXN0YXRpYyB2b2lkIHNwaV9tYXRjaF9jb250cm9sbGVyX3RvX2JvYXJkaW5mbyhzdHJ1Y3Qgc3BpX2NvbnRyb2xsZXIgKmN0bHIsXFxuLS1cXG5kcml2ZXJzL3NwaS9zcGkuYy04OTctXFxuZHJpdmVycy9zcGkvc3BpLmM6ODk4OlxcdGRldiA9IHNwaV9uZXdfZGV2aWNlKGN0bHIsIGJpKTtcXG5kcml2ZXJzL3NwaS9zcGkuYy04OTktXFx0aWYgKCFkZXYpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIyVDA0OjUyOjE5LjIxOTEwMDI5NVoiLCJTZXEiOjU1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0ODk1NTIxODk3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IExpbmUgb2YgUmVhc29uaW5nKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgaG93IHdlIGNhbiBnZXQgYSBuZXcgU1BJIGRldmljZSBkZWZpbmVkLCBzcGVjaWZpY2FsbHkgdGhpbmtpbmcgYWJvdXQgc3lzZnMgZm9yIGEgYG5ld19kZXZpY2VgIGNhbGwsIGJ1dCB0aGF0J3MgYSBkZWFkIGVuZC4gTm8gbHVjayB0aGVyZS4gSG1tbSwgd2hhdCBhYm91dCBgQ09ORklHX1NQSV9TTEFWRWA/IE5vcGUsIHRoYXQncyBub3QgdGhlIHBhdGggZWl0aGVyLiBBbHJpZ2h0LCBsZXQncyBwaXZvdCB0byBhIGRpZmZlcmVudCBhcHByb2FjaC4gRG9lcyBgQ09ORklHX09GX0RZTkFNSUNgIG9mZmVyIGFueSBvcHBvcnR1bml0aWVzPyBBaCwgd2FpdCBhIG1pbnV0ZSwgdGhlIGxpZ2h0YnVsYiBpcyBmbGlja2VyaW5nIOKAkyBjb3VsZCB3ZSBsZXZlcmFnZSBjb25maWdmcyBmb3IgbG9hZGluZyBkZXZpY2UgdHJlZSBvdmVybGF5cz8gVGhhdCdzIHRoZSBrZXksIHllcywgZGV2aWNlIHRyZWUgb3ZlcmxheXMgKmNhbiogYmUgbG9hZGVkIHRocm91Z2ggY29uZmlnZnMhXG5cbk5vdywgdGhlIG5leHQgbG9naWNhbCBzdGVwIGlzIHRvIHNlZSBpZiBzeXprYWxsZXIgaXMgYWxyZWFkeSBtYWtpbmcgdXNlIG9mIGNvbmZpZ2ZzIHRvIGxvYWQgdGhlc2Ugb3ZlcmxheXMuIElkZWFsbHksIGl0J3MgYSBnZW5lcmljIGFuZCBlYXNpbHkgYXBwbGllZCBmdXp6ZXIuIFVuZm9ydHVuYXRlbHksIGl0IGRvZXNuJ3QgYXBwZWFyIHN5emthbGxlciBoYXMgYSBicm9hZCBmdXp6ZXIgZm9yIGRldmljZSB0cmVlIG92ZXJsYXlzIGF0IHRoZSBtb21lbnQuIFdoaWNoIG1lYW5zIGRyaXZlcnMgbGlrZSBgbGFuODY1eGAgYW5kIGBvYV90YzZgIGFyZSBlZmZlY3RpdmVseSB1bnJlYWNoYWJsZSBpbiBzeXprYWxsZXIncyBjdXJyZW50IGNvbmZpZ3VyYXRpb24uIEJ1dCBob2xkIG9uLCBiZWZvcmUgSSBkZWZpbml0aXZlbHkgc2h1dCBkb3duIHRoZSBgb2FfdGM2YCBwYXRod2F5LCBJIHNob3VsZCBxdWlja2x5IGNoZWNrIGlmIGl0J3MgYmVpbmcgdXNlZCBieSBhbnkgKm90aGVyKiBkcml2ZXJzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3Mjg3MCwiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yMlQwNDo1MjoyNC4xMTQ2MjkxMjFaIiwiU2VxIjo1NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkxMjEzMDU5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJvYV90YzZfaW5pdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM9MzMzPXN0YXRpYyBpbnQgbGFuODY1eF9wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjg2NXgvbGFuODY1eC5jLTM0OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmM6MzQ5OlxcdHByaXYtXFx1MDAzZXRjNiA9IG9hX3RjNl9pbml0KHNwaSwgbmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuODY1eC9sYW44NjV4LmMtMzUwLVxcdGlmICghcHJpdi1cXHUwMDNldGM2KSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYz0xMjk0PUVYUE9SVF9TWU1CT0xfR1BMKG9hX3RjNl9zdGFydF94bWl0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTEyOTYtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvb2FfdGM2LmM6MTI5NzogKiBvYV90YzZfaW5pdCAtIGFsbG9jYXRlcyBhbmQgaW5pdGlhbGl6ZXMgb2FfdGM2IHN0cnVjdHVyZS5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0xMjk4LSAqIEBzcGk6IGRldmljZSB3aXRoIHdoaWNoIGRhdGEgd2lsbCBiZSBleGNoYW5nZWQuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0xMzAzLSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjEzMDQ6c3RydWN0IG9hX3RjNiAqb2FfdGM2X2luaXQoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9vYV90YzYuYy0xMzA1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTE0MDgtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jOjE0MDk6RVhQT1JUX1NZTUJPTF9HUEwob2FfdGM2X2luaXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L29hX3RjNi5jLTE0MTAtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIyVDA0OjUyOjI1LjAyNjc3OTQ1MloiLCJTZXEiOjU3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyMzE2NTg0NTQwMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipVbnJlYWNoYWJsZSBDb2RlIEFuYWx5c2lzOiBgbGFuODY1eGAgU1BJIERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0J3MgbW9kaWZ5aW5nIGNvZGUgd2l0aGluIHRoZSBgb2FfdGM2YCBmcmFtZXdvcmsuIE15IGluaXRpYWwgdGhvdWdodCBpcywgXCJXaG8gdXNlcyB0aGlzIGBvYV90YzZgIHN0dWZmP1wiLiAgQSBxdWljayBjaGVjayByZXZlYWxzIGl0J3MgZXhjbHVzaXZlbHkgdXNlZCBieSB0aGUgYGxhbjg2NXhgIGRyaXZlciwgd2hpY2ggaXMgYW4gU1BJIGRldmljZS4gVGhhdCdzIGEgcmVkIGZsYWcuIFNQSSBkZXZpY2VzIGluIGEgc3RhbmRhcmQgdmlydHVhbGl6ZWQgUUVNVSBzZXR1cCBhcmVuJ3QgZWFzaWx5IGJyb3VnaHQgdXAgZnJvbSB1c2VyIHNwYWNlLiBUaGVyZSdzIG5vIHN0YW5kYXJkIHdheSB0byBqdXN0IG1hZ2ljYWxseSBpbnN0YW50aWF0ZSB0aGVtLlxuXG5NeSBtaW5kIGltbWVkaWF0ZWx5IHN0YXJ0cyBydW5uaW5nIHRocm91Z2ggcG9zc2libGUgXCJlc2NhcGUgaGF0Y2hlcy5cIiAgQ291bGQgYW5vdGhlciBkcml2ZXIgaW5zdGFudGlhdGUgYGxhbjg2NXhgIGluZGlyZWN0bHk/IE5vcGUuIFN5emthbGxlciBpdHNlbGYgaGF2ZSBzb21lIHdheSB0byB0cmlnZ2VyIFNQSSBkZXZpY2UgaW5zdGFudGlhdGlvbj8gSSBzY2FubmVkIGZvciBhbnkgc3l6XyogZnVuY3Rpb25zIHJlbGF0ZWQgdG8gU1BJLCBidXQgY2FtZSB1cCBlbXB0eS4gQ291bGQgaXQgdXNlIGBzcGlkZXZgPyBObyBsdWNrLiBXaGF0IGFib3V0IGxldmVyYWdpbmcgb3RoZXIgZGV2aWNlIHR5cGVzIGxpa2UgYG1hYzgwMjExX2h3c2ltYCwgYHZoY2lgLCBgdWlucHV0YCwgYHZjYW5gLCBgdHVuYC9gdGFwYCwgYG5ldGxpbmtgLCBgY29uZmlnZnNgLCBvciBgc3lzZnNgPyAgTm8gZGljZS4gIFNvLCBpdCBzZWVtcyB3ZSdyZSBzdHVjay5cblxuQnV0IHdhaXQsIGxldCBtZSBnbyB0aHJvdWdoIGFsbCBvZiB0aGUgcGxhdGZvcm0gZGV2aWNlcywgYnV0IG5vLiBJcyBgbGFuODY1eGAgYSBwbGF0Zm9ybSBkZXZpY2U/IE5vcGUsIGl0J3MgU1BJLiBBQ1BJPyBVbmxlc3MgdGhlIFFFTVUgQUNQSSB0YWJsZXMgYXJlIHNwZWNpZmljYWxseSBjb25maWd1cmVkLCBuby4gUENJPyBOby4gVVNCPyBEZWZpbml0ZWx5IG5vdC4gVGhlIGNvZGUncyB1bnJlYWNoYWJsZSBpbiB0aGVzZSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdGhhdCBzeXprYWxsZXIgbm9ybWFsbHkgdXNlcyBsaWtlIEdDRSBvciBRRU1VLlxuXG5JIG5lZWQgdG8gY29uZmlybSB0aGlzLiBJIHdpbGwgbWFyayB0aGlzIGNvZGUgYXMgYFdvcnRoRnV6emluZz1mYWxzZWAuIFRoZSByZWFzb25pbmcgSSdsbCBwcm92aWRlIGlzIHRoYXQgdGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgb2FfdGM2YCBmcmFtZXdvcmssIHdoaWNoIGlzIHRpZWQgdG8gdGhlIGBsYW44NjV4YCBTUEkgbmV0d29yayBkcml2ZXIuIFNQSSBkZXZpY2VzIHJlcXVpcmUgc3BlY2lmaWMgaGFyZHdhcmUgaW5zdGFudGlhdGlvbiAobGlrZSB2aWEgYSBEZXZpY2UgVHJlZSBvciBBQ1BJKSBhbmQgY2FuJ3QgYmUgc3B1biB1cCBkeW5hbWljYWxseSBmcm9tIHVzZXJzcGFjZSBpbiB0aGVzZSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIG1ha2luZyB0aGVtIG9mZi1saW1pdHMgZm9yIHRoZSBmdXp6ZXIuXG5cbk9rYXksIGp1c3QgdG8gYmUgZXh0cmEgc3VyZSwgbGV0IG1lIGRvdWJsZS1jaGVjayBpZiB0aGVyZSdzIGFueSAqb3RoZXIqIHdheSBgb2FfdGM2YCBpcyBlbXBsb3llZC4gIEEgc2VhcmNoIGZvciBgb2FfdGM2X2luaXRgIGNvbmZpcm1zIHRoYXQgb25seSBgbGFuODY1eGAgdXNlcyBpdC4gIElzIGBsYW44NjV4YCBkZXBlbmRlbnQgb24gYW55dGhpbmcgZWxzZT8gTm8uXG5cbkFscmlnaHQsIGxldCdzIHpvb20gYmFjayBpbiBvbiB0aGUgcGF0Y2ggaXRzZWxmLiBJdCdzIHRvdWNoaW5nIGZ1bmN0aW9ucyBsaWtlIGBvYV90YzZfY2xlYW51cF93YWl0aW5nX3R4X3NrYmAsIGBvYV90YzZfbG9va19mb3JfbmV3X2ZyYW1lYCwgYW5kIGEgYnVuY2ggb2Ygb3RoZXIgYG9hX3RjNl9wcmNzXypgIGFuZCBgb2FfdGM2X3N0YXJ0X3htaXRgIGZ1bmN0aW9ucyDigJMgYWxsIGNvcmUgdG8gdGhlIGBvYV90YzZgIGZyYW1ld29yay4gU2luY2UgYG9hX3RjNmAgaXMgc29sZWx5IHVzZWQgYnkgYGxhbjg2NXhgLCBhbmQgYGxhbjg2NXhgIGlzIFNQSSwgaXQgcmVpbmZvcmNlcyBteSBpbml0aWFsIGNvbmNsdXNpb246IHVucmVhY2hhYmxlLlxuXG5Ob3csIGxldCBtZSBzb2xpZGlmeSB0aGUgcmF0aW9uYWxlIGZvciB0aGUgcmVwb3J0LlxuXG5cIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYG9hX3RjNmAgKE9QRU4gQWxsaWFuY2UgMTBCQVNFLVQxeCBNQUMtUEhZIFNlcmlhbCBJbnRlcmZhY2UpIGZyYW1ld29yaywgd2hpY2ggaXMgY3VycmVudGx5IG9ubHkgdXNlZCBieSB0aGUgYGxhbjg2NXhgIFNQSSBuZXR3b3JrIGRyaXZlci4gU2luY2UgYGxhbjg2NXhgIGlzIGFuIFNQSSBkZXZpY2UsIGl0IHJlcXVpcmVzIHNwZWNpZmljIGhhcmR3YXJlIGluc3RhbnRpYXRpb24gKGUuZy4sIHZpYSBEZXZpY2UgVHJlZSBvciBBQ1BJKSBhbmQgY2Fubm90IGJlIGR5bmFtaWNhbGx5IGluc3RhbnRpYXRlZCBmcm9tIHVzZXJzcGFjZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgUUVNVS9HQ0UpIHVzZWQgYnkgc3l6a2FsbGVyLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHVucmVhY2hhYmxlIGZvciB0aGUgZnV6emVyLlwiXG5cbkp1c3QgdG8gZG90IGFsbCB0aGUgaSdzIGFuZCBjcm9zcyBhbGwgdGhlIHQncywgaXMgdGhlcmUgYW55IGBsYW44NjV4YCBlbXVsYXRvciBpbiBRRU1VPyBOby4gQW55IGBsYW44NjV4YCBtb2NrIGluIHRoZSBrZXJuZWw/IE5vLiBBbnkgYG9hX3RjNmAgbW9jayBpbiB0aGUga2VybmVsPyBOby4gQW55IGdlbmVyYWwgYHNwaWAgbW9jayB0aGF0IGNvdWxkIGNvbmp1cmUgYXJiaXRyYXJ5IFNQSSBkZXZpY2VzPyBOb3BlLlxuXG5JJ20gbm93IGNvbmZpZGVudC4gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3Mzc4OCwiT3V0cHV0VG9rZW5zIjoxNDksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDAzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIyVDA0OjUyOjQ4LjE5MjYyNzMxNVoiLCJTZXEiOjU4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2MzUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgb2FfdGM2YCAoT1BFTiBBbGxpYW5jZSAxMEJBU0UtVDF4IE1BQy1QSFkgU2VyaWFsIEludGVyZmFjZSkgZnJhbWV3b3JrLCB3aGljaCBpcyBjdXJyZW50bHkgb25seSB1c2VkIGJ5IHRoZSBgbGFuODY1eGAgU1BJIG5ldHdvcmsgZHJpdmVyLiBTaW5jZSBgbGFuODY1eGAgaXMgYW4gU1BJIGRldmljZSwgaXQgcmVxdWlyZXMgc3BlY2lmaWMgaGFyZHdhcmUgaW5zdGFudGlhdGlvbiAoZS5nLiwgdmlhIERldmljZSBUcmVlIG9yIEFDUEkpIGFuZCBjYW5ub3QgYmUgZHluYW1pY2FsbHkgaW5zdGFudGlhdGVkIGZyb20gdXNlcnNwYWNlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBRRU1VL0dDRSkgdXNlZCBieSBzeXprYWxsZXIuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgZm9yIHRoZSBmdXp6ZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYG9hX3RjNmAgKE9QRU4gQWxsaWFuY2UgMTBCQVNFLVQxeCBNQUMtUEhZIFNlcmlhbCBJbnRlcmZhY2UpIGZyYW1ld29yaywgd2hpY2ggaXMgY3VycmVudGx5IG9ubHkgdXNlZCBieSB0aGUgYGxhbjg2NXhgIFNQSSBuZXR3b3JrIGRyaXZlci4gU2luY2UgYGxhbjg2NXhgIGlzIGFuIFNQSSBkZXZpY2UsIGl0IHJlcXVpcmVzIHNwZWNpZmljIGhhcmR3YXJlIGluc3RhbnRpYXRpb24gKGUuZy4sIHZpYSBEZXZpY2UgVHJlZSBvciBBQ1BJKSBhbmQgY2Fubm90IGJlIGR5bmFtaWNhbGx5IGluc3RhbnRpYXRlZCBmcm9tIHVzZXJzcGFjZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgUUVNVS9HQ0UpIHVzZWQgYnkgc3l6a2FsbGVyLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHVucmVhY2hhYmxlIGZvciB0aGUgZnV6emVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:nil,}