Name: series-workflowsvqhw Phase: Failed StartedAt: 2026-09-02 08:50:08 +0000 UTC FinishedAt: 2026-09-02 08:54:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsvqhw[0] Phase: Succeeded StartedAt: 2026-09-02 08:50:08 +0000 UTC FinishedAt: 2026-09-02 08:54:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsvqhw[0].run-triage Phase: Succeeded StartedAt: 2026-09-02 08:50:08 +0000 UTC FinishedAt: 2026-09-02 08:54:17 +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+CgkJCTx0ZD4yMDI2LzA5LzAyIDA4OjUyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgY2hhbmdlcyBhcmUgY29uZmluZWQgdG8gZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIHdpcmVsZXNzIGRyaXZlciBmb3IgTWVkaWFUZWsgTVQ3OTk2L01UNzk5Mi9NVDc5OTAgZGV2aWNlcy4gVGhlc2UgUENJZSBkZXZpY2VzIHJlcXVpcmUgc3BlY2lmaWMgcGh5c2ljYWwgaGFyZHdhcmUgYW5kIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChzdWNoIGFzIFFFTVUvR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMiAwODo1MjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDY4NGIwMmU3ZDU2MTcyMDRlOWQ4ZjAwZDgwMjNmZTQ5MDhjY2Q1ZjNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIFNlcCAyIDA4OjUyOjA5IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcbmluZGV4IDFjYmEzODFhNzhiODIuLmZlN2EzMWIwYmM2ODcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcbkBAIC05MzIsNyAmIzQzOzkzMiw3IEBAIHZvaWQgbXQ3OTk2X21hY193cml0ZV90eHdpKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIF9fbGUzMiAqdHh3aSxcbiBcdH0gZWxzZSBpZiAoYmVhY29uKSB7XG4gXHRcdHBfZm10ID0gTVRfVFhfVFlQRV9GVztcbiBcdFx0cV9pZHggPSBNVF9MTUFDX0JDTjA7XG4tXHR9IGVsc2UgaWYgKHFpZCBcdTAwM2U9IE1UX1RYUV9QU0QpIHtcbiYjNDM7XHR9IGVsc2UgaWYgKHFpZCBcdTAwM2U9IE1UX1RYUV9QU0QgfHwgKCEod2NpZC1cdTAwM2V0eF9pbmZvIFx1MDAyNiBNVF9XQ0lEX1RYX0lORk9fU0VUKSkpIHtcbiBcdFx0cF9mbXQgPSBNVF9UWF9UWVBFX0NUO1xuIFx0XHRxX2lkeCA9IE1UX0xNQUNfQUxUWDA7XG4gXHR9IGVsc2Uge1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uY1xuaW5kZXggZTIxODg1NmIwYzQ1NC4uMDBkZGI5ZDMxZWQzMiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jXG5AQCAtMTQxNSw2ICYjNDM7MTQxNSw3IEBAIG10Nzk5Nl9tYWNfc3RhX2V2ZW50KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG4gXHRcdFx0XHRnb3RvIHVubG9jaztcbiBcdFx0XHRicmVhaztcbiBcdFx0Y2FzZSBNVDc2X1NUQV9FVkVOVF9ESVNBU1NPQzpcbiYjNDM7XHRcdFx0bXN0YV9saW5rLVx1MDAzZXdjaWQudHhfaW5mbyBcdTAwMjY9IH5NVF9XQ0lEX1RYX0lORk9fU0VUO1xuIFx0XHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUobXN0YV9saW5rLVx1MDAzZXR3dC5mbG93KTsgaSYjNDM7JiM0MzspXG4gXHRcdFx0XHRtdDc5OTZfbWFjX3R3dF90ZWFyZG93bl9mbG93KGRldiwgbGluayxcbiBcdFx0XHRcdFx0XHRcdCAgICAgbXN0YV9saW5rLCBpKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmNcbmluZGV4IGZiZmJiOTZhNzQyZjcuLjRlMzM1ZTYwMTU4MTQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uY1xuQEAgLTM5MSwyOSAmIzQzOzM5MSwzMSBAQCB2b2lkIG10Nzk5Nl9tZW1jcHlfZnJvbWlvKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHZvaWQgKmJ1ZiwgdTMyIG9mZnNldCxcbiBcdFx0XHQgIHNpemVfdCBsZW4pXG4ge1xuIFx0dTMyIGFkZHIgPSBfX210Nzk5Nl9yZWdfYWRkcihkZXYsIG9mZnNldCk7XG4mIzQzO1x0dW5zaWduZWQgbG9uZyBmbGFncztcbiBcbiBcdGlmIChhZGRyICE9IElOVkFMSURfUkVHX0FERFIpIHtcbiBcdFx0bWVtY3B5X2Zyb21pbyhidWYsIGRldi1cdTAwM2VtdDc2Lm1taW8ucmVncyAmIzQzOyBhZGRyLCBsZW4pO1xuIFx0XHRyZXR1cm47XG4gXHR9XG4gXG4tXHRzcGluX2xvY2tfYmgoXHUwMDI2ZGV2LVx1MDAzZXJlZ19sb2NrKTtcbiYjNDM7XHRzcGluX2xvY2tfaXJxc2F2ZShcdTAwMjZkZXYtXHUwMDNlcmVnX2xvY2ssIGZsYWdzKTtcbiBcdG1lbWNweV9mcm9taW8oYnVmLCBkZXYtXHUwMDNlbXQ3Ni5tbWlvLnJlZ3MgJiM0MztcbiBcdFx0XHQgICBfX210Nzk5Nl9yZWdfcmVtYXBfYWRkcihkZXYsIG9mZnNldCksIGxlbik7XG4tXHRzcGluX3VubG9ja19iaChcdTAwMjZkZXYtXHUwMDNlcmVnX2xvY2spO1xuJiM0MztcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2ZGV2LVx1MDAzZXJlZ19sb2NrLCBmbGFncyk7XG4gfVxuIFxuIHN0YXRpYyB1MzIgbXQ3OTk2X3JyKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdTMyIG9mZnNldClcbiB7XG4gXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc5OTZfZGV2LCBtdDc2KTtcbiBcdHUzMiBhZGRyID0gX19tdDc5OTZfcmVnX2FkZHIoZGV2LCBvZmZzZXQpLCB2YWw7XG4mIzQzO1x0dW5zaWduZWQgbG9uZyBmbGFncztcbiBcbiBcdGlmIChhZGRyICE9IElOVkFMSURfUkVHX0FERFIpXG4gXHRcdHJldHVybiBkZXYtXHUwMDNlYnVzX29wcy1cdTAwM2VycihtZGV2LCBhZGRyKTtcbiBcbi1cdHNwaW5fbG9ja19iaChcdTAwMjZkZXYtXHUwMDNlcmVnX2xvY2spO1xuJiM0MztcdHNwaW5fbG9ja19pcnFzYXZlKFx1MDAyNmRldi1cdTAwM2VyZWdfbG9jaywgZmxhZ3MpO1xuIFx0dmFsID0gZGV2LVx1MDAzZWJ1c19vcHMtXHUwMDNlcnIobWRldiwgX19tdDc5OTZfcmVnX3JlbWFwX2FkZHIoZGV2LCBvZmZzZXQpKTtcbi1cdHNwaW5fdW5sb2NrX2JoKFx1MDAyNmRldi1cdTAwM2VyZWdfbG9jayk7XG4mIzQzO1x0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZkZXYtXHUwMDNlcmVnX2xvY2ssIGZsYWdzKTtcbiBcbiBcdHJldHVybiB2YWw7XG4gfVxuQEAgLTQyMiwyOCAmIzQzOzQyNCwzMCBAQCBzdGF0aWMgdm9pZCBtdDc5OTZfd3Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCB1MzIgb2Zmc2V0LCB1MzIgdmFsKVxuIHtcbiBcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBjb250YWluZXJfb2YobWRldiwgc3RydWN0IG10Nzk5Nl9kZXYsIG10NzYpO1xuIFx0dTMyIGFkZHIgPSBfX210Nzk5Nl9yZWdfYWRkcihkZXYsIG9mZnNldCk7XG4mIzQzO1x0dW5zaWduZWQgbG9uZyBmbGFncztcbiBcbiBcdGlmIChhZGRyICE9IElOVkFMSURfUkVHX0FERFIpIHtcbiBcdFx0ZGV2LVx1MDAzZWJ1c19vcHMtXHUwMDNld3IobWRldiwgYWRkciwgdmFsKTtcbiBcdFx0cmV0dXJuO1xuIFx0fVxuIFxuLVx0c3Bpbl9sb2NrX2JoKFx1MDAyNmRldi1cdTAwM2VyZWdfbG9jayk7XG4mIzQzO1x0c3Bpbl9sb2NrX2lycXNhdmUoXHUwMDI2ZGV2LVx1MDAzZXJlZ19sb2NrLCBmbGFncyk7XG4gXHRkZXYtXHUwMDNlYnVzX29wcy1cdTAwM2V3cihtZGV2LCBfX210Nzk5Nl9yZWdfcmVtYXBfYWRkcihkZXYsIG9mZnNldCksIHZhbCk7XG4tXHRzcGluX3VubG9ja19iaChcdTAwMjZkZXYtXHUwMDNlcmVnX2xvY2spO1xuJiM0MztcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2ZGV2LVx1MDAzZXJlZ19sb2NrLCBmbGFncyk7XG4gfVxuIFxuIHN0YXRpYyB1MzIgbXQ3OTk2X3JtdyhzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHUzMiBvZmZzZXQsIHUzMiBtYXNrLCB1MzIgdmFsKVxuIHtcbiBcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBjb250YWluZXJfb2YobWRldiwgc3RydWN0IG10Nzk5Nl9kZXYsIG10NzYpO1xuIFx0dTMyIGFkZHIgPSBfX210Nzk5Nl9yZWdfYWRkcihkZXYsIG9mZnNldCk7XG4mIzQzO1x0dW5zaWduZWQgbG9uZyBmbGFncztcbiBcbiBcdGlmIChhZGRyICE9IElOVkFMSURfUkVHX0FERFIpXG4gXHRcdHJldHVybiBkZXYtXHUwMDNlYnVzX29wcy1cdTAwM2VybXcobWRldiwgYWRkciwgbWFzaywgdmFsKTtcbiBcbi1cdHNwaW5fbG9ja19iaChcdTAwMjZkZXYtXHUwMDNlcmVnX2xvY2spO1xuJiM0MztcdHNwaW5fbG9ja19pcnFzYXZlKFx1MDAyNmRldi1cdTAwM2VyZWdfbG9jaywgZmxhZ3MpO1xuIFx0dmFsID0gZGV2LVx1MDAzZWJ1c19vcHMtXHUwMDNlcm13KG1kZXYsIF9fbXQ3OTk2X3JlZ19yZW1hcF9hZGRyKGRldiwgb2Zmc2V0KSwgbWFzaywgdmFsKTtcbi1cdHNwaW5fdW5sb2NrX2JoKFx1MDAyNmRldi1cdTAwM2VyZWdfbG9jayk7XG4mIzQzO1x0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZkZXYtXHUwMDNlcmVnX2xvY2ssIGZsYWdzKTtcbiBcbiBcdHJldHVybiB2YWw7XG4gfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAyIDA4OjUyPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIGNoYW5nZXMgYXJlIGNvbmZpbmVkIHRvIGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2Lywgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSB3aXJlbGVzcyBkcml2ZXIgZm9yIE1lZGlhVGVrIE1UNzk5Ni9NVDc5OTIvTVQ3OTkwIGRldmljZXMuIFRoZXNlIFBDSWUgZGV2aWNlcyByZXF1aXJlIHNwZWNpZmljIHBoeXNpY2FsIGhhcmR3YXJlIGFuZCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoc3VjaCBhcyBRRU1VL0dDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA2ODRiMDJlN2Q1NjE3MjA0ZTlkOGYwMGQ4MDIzZmU0OTA4Y2NkNWYzCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBTZXAgMiAwODo1MjowOSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMKaW5kZXggMWNiYTM4MWE3OGI4Mi4uZmU3YTMxYjBiYzY4NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMKQEAgLTkzMiw3ICYjNDM7OTMyLDcgQEAgdm9pZCBtdDc5OTZfbWFjX3dyaXRlX3R4d2koc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgX19sZTMyICp0eHdpLAogCX0gZWxzZSBpZiAoYmVhY29uKSB7CiAJCXBfZm10ID0gTVRfVFhfVFlQRV9GVzsKIAkJcV9pZHggPSBNVF9MTUFDX0JDTjA7Ci0JfSBlbHNlIGlmIChxaWQgJmd0Oz0gTVRfVFhRX1BTRCkgewomIzQzOwl9IGVsc2UgaWYgKHFpZCAmZ3Q7PSBNVF9UWFFfUFNEIHx8ICghKHdjaWQtJmd0O3R4X2luZm8gJmFtcDsgTVRfV0NJRF9UWF9JTkZPX1NFVCkpKSB7CiAJCXBfZm10ID0gTVRfVFhfVFlQRV9DVDsKIAkJcV9pZHggPSBNVF9MTUFDX0FMVFgwOwogCX0gZWxzZSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmMKaW5kZXggZTIxODg1NmIwYzQ1NC4uMDBkZGI5ZDMxZWQzMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYwpAQCAtMTQxNSw2ICYjNDM7MTQxNSw3IEBAIG10Nzk5Nl9tYWNfc3RhX2V2ZW50KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsCiAJCQkJZ290byB1bmxvY2s7CiAJCQlicmVhazsKIAkJY2FzZSBNVDc2X1NUQV9FVkVOVF9ESVNBU1NPQzoKJiM0MzsJCQltc3RhX2xpbmstJmd0O3djaWQudHhfaW5mbyAmYW1wOz0gfk1UX1dDSURfVFhfSU5GT19TRVQ7CiAJCQlmb3IgKGkgPSAwOyBpICZsdDsgQVJSQVlfU0laRShtc3RhX2xpbmstJmd0O3R3dC5mbG93KTsgaSYjNDM7JiM0MzspCiAJCQkJbXQ3OTk2X21hY190d3RfdGVhcmRvd25fZmxvdyhkZXYsIGxpbmssCiAJCQkJCQkJICAgICBtc3RhX2xpbmssIGkpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jCmluZGV4IGZiZmJiOTZhNzQyZjcuLjRlMzM1ZTYwMTU4MTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMKQEAgLTM5MSwyOSAmIzQzOzM5MSwzMSBAQCB2b2lkIG10Nzk5Nl9tZW1jcHlfZnJvbWlvKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHZvaWQgKmJ1ZiwgdTMyIG9mZnNldCwKIAkJCSAgc2l6ZV90IGxlbikKIHsKIAl1MzIgYWRkciA9IF9fbXQ3OTk2X3JlZ19hZGRyKGRldiwgb2Zmc2V0KTsKJiM0MzsJdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCWlmIChhZGRyICE9IElOVkFMSURfUkVHX0FERFIpIHsKIAkJbWVtY3B5X2Zyb21pbyhidWYsIGRldi0mZ3Q7bXQ3Ni5tbWlvLnJlZ3MgJiM0MzsgYWRkciwgbGVuKTsKIAkJcmV0dXJuOwogCX0KIAotCXNwaW5fbG9ja19iaCgmYW1wO2Rldi0mZ3Q7cmVnX2xvY2spOwomIzQzOwlzcGluX2xvY2tfaXJxc2F2ZSgmYW1wO2Rldi0mZ3Q7cmVnX2xvY2ssIGZsYWdzKTsKIAltZW1jcHlfZnJvbWlvKGJ1ZiwgZGV2LSZndDttdDc2Lm1taW8ucmVncyAmIzQzOwogCQkJICAgX19tdDc5OTZfcmVnX3JlbWFwX2FkZHIoZGV2LCBvZmZzZXQpLCBsZW4pOwotCXNwaW5fdW5sb2NrX2JoKCZhbXA7ZGV2LSZndDtyZWdfbG9jayk7CiYjNDM7CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFtcDtkZXYtJmd0O3JlZ19sb2NrLCBmbGFncyk7CiB9CiAKIHN0YXRpYyB1MzIgbXQ3OTk2X3JyKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdTMyIG9mZnNldCkKIHsKIAlzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc5OTZfZGV2LCBtdDc2KTsKIAl1MzIgYWRkciA9IF9fbXQ3OTk2X3JlZ19hZGRyKGRldiwgb2Zmc2V0KSwgdmFsOwomIzQzOwl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJaWYgKGFkZHIgIT0gSU5WQUxJRF9SRUdfQUREUikKIAkJcmV0dXJuIGRldi0mZ3Q7YnVzX29wcy0mZ3Q7cnIobWRldiwgYWRkcik7CiAKLQlzcGluX2xvY2tfYmgoJmFtcDtkZXYtJmd0O3JlZ19sb2NrKTsKJiM0MzsJc3Bpbl9sb2NrX2lycXNhdmUoJmFtcDtkZXYtJmd0O3JlZ19sb2NrLCBmbGFncyk7CiAJdmFsID0gZGV2LSZndDtidXNfb3BzLSZndDtycihtZGV2LCBfX210Nzk5Nl9yZWdfcmVtYXBfYWRkcihkZXYsIG9mZnNldCkpOwotCXNwaW5fdW5sb2NrX2JoKCZhbXA7ZGV2LSZndDtyZWdfbG9jayk7CiYjNDM7CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFtcDtkZXYtJmd0O3JlZ19sb2NrLCBmbGFncyk7CiAKIAlyZXR1cm4gdmFsOwogfQpAQCAtNDIyLDI4ICYjNDM7NDI0LDMwIEBAIHN0YXRpYyB2b2lkIG10Nzk5Nl93cihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHUzMiBvZmZzZXQsIHUzMiB2YWwpCiB7CiAJc3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3OTk2X2RldiwgbXQ3Nik7CiAJdTMyIGFkZHIgPSBfX210Nzk5Nl9yZWdfYWRkcihkZXYsIG9mZnNldCk7CiYjNDM7CXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKIAlpZiAoYWRkciAhPSBJTlZBTElEX1JFR19BRERSKSB7CiAJCWRldi0mZ3Q7YnVzX29wcy0mZ3Q7d3IobWRldiwgYWRkciwgdmFsKTsKIAkJcmV0dXJuOwogCX0KIAotCXNwaW5fbG9ja19iaCgmYW1wO2Rldi0mZ3Q7cmVnX2xvY2spOwomIzQzOwlzcGluX2xvY2tfaXJxc2F2ZSgmYW1wO2Rldi0mZ3Q7cmVnX2xvY2ssIGZsYWdzKTsKIAlkZXYtJmd0O2J1c19vcHMtJmd0O3dyKG1kZXYsIF9fbXQ3OTk2X3JlZ19yZW1hcF9hZGRyKGRldiwgb2Zmc2V0KSwgdmFsKTsKLQlzcGluX3VubG9ja19iaCgmYW1wO2Rldi0mZ3Q7cmVnX2xvY2spOwomIzQzOwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZhbXA7ZGV2LSZndDtyZWdfbG9jaywgZmxhZ3MpOwogfQogCiBzdGF0aWMgdTMyIG10Nzk5Nl9ybXcoc3RydWN0IG10NzZfZGV2ICptZGV2LCB1MzIgb2Zmc2V0LCB1MzIgbWFzaywgdTMyIHZhbCkKIHsKIAlzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc5OTZfZGV2LCBtdDc2KTsKIAl1MzIgYWRkciA9IF9fbXQ3OTk2X3JlZ19hZGRyKGRldiwgb2Zmc2V0KTsKJiM0MzsJdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCWlmIChhZGRyICE9IElOVkFMSURfUkVHX0FERFIpCiAJCXJldHVybiBkZXYtJmd0O2J1c19vcHMtJmd0O3JtdyhtZGV2LCBhZGRyLCBtYXNrLCB2YWwpOwogCi0Jc3Bpbl9sb2NrX2JoKCZhbXA7ZGV2LSZndDtyZWdfbG9jayk7CiYjNDM7CXNwaW5fbG9ja19pcnFzYXZlKCZhbXA7ZGV2LSZndDtyZWdfbG9jaywgZmxhZ3MpOwogCXZhbCA9IGRldi0mZ3Q7YnVzX29wcy0mZ3Q7cm13KG1kZXYsIF9fbXQ3OTk2X3JlZ19yZW1hcF9hZGRyKGRldiwgb2Zmc2V0KSwgbWFzaywgdmFsKTsKLQlzcGluX3VubG9ja19iaCgmYW1wO2Rldi0mZ3Q7cmVnX2xvY2spOwomIzQzOwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZhbXA7ZGV2LSZndDtyZWdfbG9jaywgZmxhZ3MpOwogCiAJcmV0dXJuIHZhbDsKIH0KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDIgMDg6NTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzY2NAoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDE3MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBwYXRjaCBhbmQgZmlndXJlIG91dCBpdHMgcG90ZW50aWFsIGZ1enppbmcgdmFsdWUuIE15IGZpcnN0IHRob3VnaHQgaXMgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgaW50cm9kdWNlcyBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRoYXQgYXJlIHJpcGUgZm9yIGZ1enppbmcuIFRoZSBmYWN0IHRoYXQgaXQmIzM5O3MgdG91Y2hpbmcgd2lyZWxlc3MgbmV0d29yayBkcml2ZXJzLCBzcGVjaWZpY2FsbHkgdGhlIGBtdDc5OTZgIGZhbWlseSwgaW1tZWRpYXRlbHkgcGlxdWVzIG15IGludGVyZXN0LiBJIG5lZWQgdG8gcXVpY2tseSBlc3RhYmxpc2ggaWYgdGhpcyBjb2RlIGlzIHJlbGV2YW50IHRvIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBRRU1VLCBvciBpZiBpdCYjMzk7cyBwcmltYXJpbHkgdGllZCB0byBoYXJkd2FyZSBpbnRlcmFjdGlvbnMgdGhhdCB3b3VsZCBiZSBkaWZmaWN1bHQgb3IgaW1wb3NzaWJsZSB0byByZWFjaCB3aXRob3V0IHNwZWNpZmljIGhhcmR3YXJlLgoKVG8gZG8gdGhpcywgSSYjMzk7bGwgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBNVDc5OTYgY2hpcHNldCBhIGJpdCBiZXR0ZXIuIFdoYXQgYnVzIGRvZXMgaXQgdXRpbGl6ZT8gSXMgaXQgUENJZSwgVVNCLCBzb21ldGhpbmcgZWxzZT8gSSYjMzk7bGwgcHJvYmFibHkgZmlyZSB1cCBgZ3JlcHBlcmAgKG9yIHVzZSBteSBwcmVmZXJyZWQgY29kZSBzZWFyY2ggdG9vbCBpZiBpdCYjMzk7cyBub3QgYXZhaWxhYmxlKSBhbmQgc2VhcmNoIHRoZSBjb2RlYmFzZSBmb3IgcmVmZXJlbmNlcyB0byBNVDc5OTYsIHBheWluZyBjbG9zZSBhdHRlbnRpb24gdG8gYW55IG1lbnRpb25zIG9mIGJ1cy1yZWxhdGVkIGNvbmZpZ3VyYXRpb25zLiBBbHRlcm5hdGl2ZWx5LCBJIHNob3VsZCBiZSBhYmxlIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGVzIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2AgZGlyZWN0b3J5IHRvIGdldCBhIHNlbnNlIG9mIHRoZSBoYXJkd2FyZSBkZXBlbmRlbmNpZXMuIEtub3dpbmcgdGhlIGJ1cyB0eXBlIHdpbGwgYmUgY3J1Y2lhbCBpbiBkZWNpZGluZyBpZiBJIGNhbiBlZmZlY3RpdmVseSBmdXp6IHRoaXMgd2l0aGluIGEgc3RhbmRhcmQgUUVNVSBzZXR1cC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMiAwODo1MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtDT05GSUdfTVQ3OTk2JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3NiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlPTUwPW9iai0kKENPTkZJR19NVDc5MjFfQ09NTU9OKSAmIzQzOz0gbXQ3OTIxL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZTo1MTpvYmotJChDT05GSUdfTVQ3OTk2RSkgJiM0Mzs9IG10Nzk5Ni9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtNTItb2JqLSQoQ09ORklHX01UNzkyNV9DT01NT04pICYjNDM7PSBtdDc5MjUvXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX01UNzk5NkUpICYjNDM7PSBtdDc5OTZlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZT01PW10Nzk5NmUteSA6PSBwY2kubyBpbml0Lm8gZG1hLm8gZWVwcm9tLm8gbWFpbi5vIG1jdS5vIG1hYy5vIFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlOjg6bXQ3OTk2ZS0kKENPTkZJR19NVDc5OTZfTlBVKSAmIzQzOz0gbnB1Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTktbXQ3OTk2ZS0kKENPTkZJR19ERVZfQ09SRURVTVApICYjNDM7PSBjb3JlZHVtcC5vXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jPTIzOTk9bXQ3OTk2X25ldF9maWxsX2ZvcndhcmRfcGF0aChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmMtMjQ1Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYzoyNDU3OiNpZiBkZWZpbmVkKENPTkZJR19ORVRfTUVESUFURUtfU09DX1dFRCkgfHwgZGVmaW5lZChDT05GSUdfTVQ3OTk2X05QVSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYy0yNDU4LXN0YXRpYyBpbnRcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM9MjU0Nj1jb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc5OTZfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYy0yNjAwLVx0Lm5ldF9maWxsX2ZvcndhcmRfcGF0aCA9IG10Nzk5Nl9uZXRfZmlsbF9mb3J3YXJkX3BhdGgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM6MjYwMTojaWYgZGVmaW5lZChDT05GSUdfTkVUX01FRElBVEVLX1NPQ19XRUQpIHx8IGRlZmluZWQoQ09ORklHX01UNzk5Nl9OUFUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmMtMjYwMi1cdC5uZXRfc2V0dXBfdGMgPSBtdDc5OTZfbmV0X3NldHVwX3RjLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oPTk1MD12b2lkIG10Nzk5Nl9kbWFfcnJvX3N0YXJ0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtOTUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg6OTUyOiNpZmRlZiBDT05GSUdfTVQ3OTk2X05QVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtOTUzLWludCBfX210Nzk5Nl9ucHVfaHdfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaD05NzM9c3RhdGljIGlubGluZSBpbnQgbXQ3OTk2X25wdV9yeF9xdWV1ZXNfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oLTk3Ni19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo5Nzc6I2VuZGlmIC8qIENPTkZJR19NVDc5OTZfTlBVICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaC05NzgtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDIgMDg6NTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTMwNwoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDIxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHM6CgoqKkFuYWx5emluZyB0aGUgTWVkaWF0ZWsgV2lyZWxlc3MgRHJpdmVyIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gSSBuZWVkIHRvIGRpdmUgaW50byB0aGUgTWVkaWF0ZWsgd2lyZWxlc3MgZHJpdmVyIHNpdHVhdGlvbi4gTXkgaW1tZWRpYXRlIGluc3RpbmN0IGlzIHRvIGxvb2sgYXQgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSwgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZ2AuIFRoYXQmIzM5O3Mgd2hlcmUgYWxsIHRoZSBidWlsZCBvcHRpb25zIGFuZCBkZXBlbmRlbmNpZXMgZm9yIHRoYXQgc3BlY2lmaWMgZHJpdmVyIHNob3VsZCBiZSBkZWZpbmVkLiBGcm9tIHRoZSBLY29uZmlnLCBJIGNhbiBkZXRlcm1pbmUgd2hpY2ggZmVhdHVyZXMgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdCwgd2hhdCBtb2R1bGVzIGFyZSBhdmFpbGFibGUsIGhvdyB0byBlbmFibGUvZGlzYWJsZSBzcGVjaWZpYyBoYXJkd2FyZSBzdXBwb3J0LCBhbmQgd2hhdCBvdGhlciBrZXJuZWwgY29tcG9uZW50cyBpdCBtaWdodCBkZXBlbmQgb24uIFRoaXMgd2lsbCBnaXZlIG1lIGEgc29saWQgYmFzZSB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGlzIGRyaXZlciBpcyBzdHJ1Y3R1cmVkIGFuZCBob3cgdG8gY29udHJvbCBpdCBkdXJpbmcgdGhlIGJ1aWxkIHByb2Nlc3MuIEl0JiMzOTtzIHRoZSBsb2dpY2FsIHN0YXJ0aW5nIHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIGhvdyB0aGlzIGRyaXZlciBpbnRlZ3JhdGVzIGludG8gdGhlIGtlcm5lbCBjb25maWd1cmF0aW9uLiBLbm93aW5nIGhvdyBpdCYjMzk7cyBjb25maWd1cmVkIGlzIGtleSB0byBtYWtpbmcgYW55IHByb2dyZXNzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAyIDA4OjUyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O01UNzk5NiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDE1ODIgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU9NTA9b2JqLSQoQ09ORklHX01UNzkyMV9DT01NT04pICYjNDM7PSBtdDc5MjEvXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjUxOm9iai0kKENPTkZJR19NVDc5OTZFKSAmIzQzOz0gbXQ3OTk2L1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZS01Mi1vYmotJChDT05GSUdfTVQ3OTI1X0NPTU1PTikgJiM0Mzs9IG10NzkyNS9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjI6Y29uZmlnIE1UNzk5NkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6MzpcdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzk5NiAoUENJZSkgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy00LVx0c2VsZWN0IE1UNzZfQ09OTkFDX0xJQlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctOS1cdGhlbHBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6MTA6XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5OTYtYmFzZWQgUENJZSB3aXJlbGVzcyBkZXZpY2VzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy0xMS1cdCAgd2hpY2ggc3VwcG9ydCBjb25jdXJyZW50IHRyaS1iYW5kIG9wZXJhdGlvbiBhdCA2R0h6LCA1R0h6LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctMTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjE2OmNvbmZpZyBNVDc5OTZfTlBVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjE3Olx0Ym9vbCBcJiMzNDtNVDc5OTYgKFBDSWUpIE5QVSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjE4Olx0ZGVwZW5kcyBvbiBNVDc5OTZFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTE5LVx0ZGVwZW5kcyBvbiBORVRfQUlST0hBX05QVT15IHx8IE1UNzZfQ09SRT1ORVRfQUlST0hBX05QVVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTozOm9iai0kKENPTkZJR19NVDc5OTZFKSAmIzQzOz0gbXQ3OTk2ZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS00LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU9NT1tdDc5OTZlLXkgOj0gcGNpLm8gaW5pdC5vIGRtYS5vIGVlcHJvbS5vIG1haW4ubyBtY3UubyBtYWMubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTo4Om10Nzk5NmUtJChDT05GSUdfTVQ3OTk2X05QVSkgJiM0Mzs9IG5wdS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS05LW10Nzk5NmUtJChDT05GSUdfREVWX0NPUkVEVU1QKSAmIzQzOz0gY29yZWR1bXAub1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM9NDg9bXQ3OTk2X2NvcmVkdW1wX2dldF9tZW1fbGF5b3V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHUzMiAqbnVtKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNTAtXHRzd2l0Y2ggKG10NzZfY2hpcChcdTAwMjZkZXYtXHUwMDNlbXQ3NikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NTE6XHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjUyOlx0Y2FzZSBNVDc5OTZfREVWSUNFX0lEXzI6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTUzLVx0XHQqbnVtID0gQVJSQVlfU0laRShtdDc5OTZfbWVtX3JlZ2lvbnMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jPTQ2PXN0YXRpYyB2b2lkIG10Nzk5Nl9kbWFfY29uZmlnKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTktXHQvKiByeCBxdWV1ZSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjA6XHRSWFFfQ09ORklHKE1UX1JYUV9NQ1UsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfV00sIE1UNzk5Nl9SWFFfTUNVX1dNKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYxLVx0LyogZm9yIG10Nzk5MCwgUlggcmluZyAxIGlzIGZvciBTRE8gaW5zdGVhZCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjI6XHRSWFFfQ09ORklHKE1UX1JYUV9NQ1VfV0EsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfV0EsIE1UNzk5Nl9SWFFfTUNVX1dBKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjYzOlx0UlhRX0NPTkZJRyhNVF9SWFFfTUFJTiwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9CQU5EMCwgTVQ3OTk2X1JYUV9CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02NC1cdGlmIChtdDc5OTZfaGFzX3dhKGRldikpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02NS1cdFx0UlhRX0NPTkZJRyhNVF9SWFFfTUFJTl9XQSwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9XQV9NQUlOLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjY6XHRcdFx0ICAgTVQ3OTk2X1JYUV9NQ1VfV0FfTUFJTik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02Ny1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02OS1cdGNhc2UgTVQ3OTkyX0RFVklDRV9JRDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjcwOlx0XHRSWFFfQ09ORklHKE1UX1JYUV9CQU5EMV9XQSwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9XQV9FWFQsIE1UNzk5Nl9SWFFfTUNVX1dBX0VYVCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3MTpcdFx0UlhRX0NPTkZJRyhNVF9SWFFfQkFORDEsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfQkFORDEsIE1UNzk5Nl9SWFFfQkFORDEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzItXHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzMtXHRjYXNlIE1UNzk5MF9ERVZJQ0VfSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3NDpcdFx0UlhRX0NPTkZJRyhNVF9SWFFfQkFORDEsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfQkFORDEsIE1UNzk5Nl9SWFFfQkFORDEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzUtXHRcdFJYUV9DT05GSUcoTVRfUlhRX1RYRlJFRV9CQU5EMCwgV0ZETUEwLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgwLVx0XHRicmVhaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjgxOlx0Y2FzZSBNVDc5OTZfREVWSUNFX0lEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODItXHRkZWZhdWx0OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODMtXHRcdC8qIG10Nzk5NiBiYW5kMiAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODQ6XHRcdFJYUV9DT05GSUcoTVRfUlhRX0JBTkQyX1dBLCBXRkRNQTAsIE1UX0lOVF9SWF9ET05FX1dBX1RSSSwgTVQ3OTk2X1JYUV9NQ1VfV0FfVFJJKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg1Olx0XHRSWFFfQ09ORklHKE1UX1JYUV9CQU5EMiwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9CQU5EMiwgTVQ3OTk2X1JYUV9CQU5EMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04Ni1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTEtXHRcdFJYUV9DT05GSUcoTVRfUlhRX1JST19CQU5EMCwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9SUk9fQkFORDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo5MjpcdFx0XHQgICBNVDc5OTZfUlhRX1JST19CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05My1cdFx0aWYgKGRldi1cdTAwM2VtdDc2Lmh3cnJvX21vZGUgPT0gTVQ3Nl9IV1JST19WMylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05NS1cdFx0XHRcdCAgIE1UX0lOVF9SWF9ET05FX01TRFVfUEdfQkFORDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo5NjpcdFx0XHRcdCAgIE1UNzk5Nl9SWFFfTVNEVV9QR19CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05Ny1cdFx0aWYgKGlzX210Nzk5NihcdTAwMjZkZXYtXHUwMDNlbXQ3NikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTk4LVx0XHRcdFJYUV9DT05GSUcoTVRfUlhRX1RYRlJFRV9CQU5EMCwgV0ZETUEwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTk6XHRcdFx0XHQgICBNVF9JTlRfUlhfVFhGUkVFX01BSU4sIE1UNzk5Nl9SWFFfVFhGUkVFMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDAtXHRcdFx0LyogYmFuZDEgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDItXHRcdFx0XHQgICBNVF9JTlRfUlhfRE9ORV9NU0RVX1BHX0JBTkQxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTAzOlx0XHRcdFx0ICAgTVQ3OTk2X1JYUV9NU0RVX1BHX0JBTkQxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwNC1cdFx0XHQvKiBiYW5kMiAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwNi1cdFx0XHRcdCAgIE1UX0lOVF9SWF9ET05FX1JST19CQU5EMixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwNzpcdFx0XHRcdCAgIE1UNzk5Nl9SWFFfUlJPX0JBTkQyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwOC1cdFx0XHRSWFFfQ09ORklHKE1UX1JYUV9NU0RVX1BBR0VfQkFORDIsIFdGRE1BMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwOS1cdFx0XHRcdCAgIE1UX0lOVF9SWF9ET05FX01TRFVfUEdfQkFORDIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMTA6XHRcdFx0XHQgICBNVDc5OTZfUlhRX01TRFVfUEdfQkFORDIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTExLVx0XHRcdFJYUV9DT05GSUcoTVRfUlhRX1RYRlJFRV9CQU5EMiwgV0ZETUEwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTEyOlx0XHRcdFx0ICAgTVRfSU5UX1JYX1RYRlJFRV9UUkksIE1UNzk5Nl9SWFFfVFhGUkVFMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMTMtXHRcdH0gZWxzZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTE1LVx0XHRcdFx0ICAgTVRfSU5UX1JYX0RPTkVfUlJPX0JBTkQxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTE2Olx0XHRcdFx0ICAgTVQ3OTk2X1JYUV9SUk9fQkFORDEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTE3LVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTIxLVx0XHRcdFx0ICAgTVRfSU5UX1JYX0RPTkVfUlJPX0lORCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEyMjpcdFx0XHRcdCAgIE1UNzk5Nl9SWFFfUlJPX0lORCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMjMtXHRcdGVsc2Vcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMjUtXHRcdFx0XHQgICBNVF9JTlRfUlhfRE9ORV9SUk9fUlhETUFEX0MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMjY6XHRcdFx0XHQgICBNVDc5OTZfUlhRX1JST19SWERNQURfQyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMjctXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTMzLVx0XHRcdFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTM0Olx0XHRcdFx0XHQgICBNVDc5OTZfVFhRX0JBTkQyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEzNS1cdFx0XHRcdFRYUV9DT05GSUcoMSwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEzNjpcdFx0XHRcdFx0ICAgTVQ3OTk2X1RYUV9CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMzctXHRcdFx0XHRUWFFfQ09ORklHKDIsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfQkFORDEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMzg6XHRcdFx0XHRcdCAgIE1UNzk5Nl9UWFFfQkFORDEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTM5LVx0XHRcdH0gZWxzZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTQxLVx0XHRcdFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTQyOlx0XHRcdFx0XHQgICBNVDc5OTZfVFhRX0JBTkQwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTE0My1cdFx0XHRcdFRYUV9DT05GSUcoMSwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE0NDpcdFx0XHRcdFx0ICAgTVQ3OTk2X1RYUV9CQU5EMSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNDUtXHRcdFx0XHRUWFFfQ09ORklHKDIsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfQkFORDIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxNDY6XHRcdFx0XHRcdCAgIE1UNzk5Nl9UWFFfQkFORDIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTQ3LVx0XHRcdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNTAtXHRcdFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTUxOlx0XHRcdFx0ICAgTVQ3OTk2X1RYUV9CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNTItXHRcdFx0VFhRX0NPTkZJRygyLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTUzOlx0XHRcdFx0ICAgTVQ3OTk2X1RYUV9CQU5EMSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNTQtXHRcdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNTgtXHRcdFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTU5Olx0XHRcdFx0ICAgTVQ3OTk2X1RYUV9CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNjAtXHRcdFx0VFhRX0NPTkZJRygxLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTYxOlx0XHRcdFx0ICAgTVQ3OTk2X1RYUV9CQU5EMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNjItXHRcdH0gZWxzZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTY0LVx0XHRcdFRYUV9DT05GSUcoMCwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE2NTpcdFx0XHRcdCAgIE1UNzk5Nl9UWFFfQkFORDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTY2LVx0XHRcdFRYUV9DT05GSUcoMSwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE2NzpcdFx0XHRcdCAgIE1UNzk5Nl9UWFFfQkFORDEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTY4LVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTcxLVx0LyogbWN1IHR4IHF1ZXVlICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxNzI6XHRNQ1VRX0NPTkZJRyhNVF9NQ1VRX0ZXREwsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfRldETCwgTVQ3OTk2X1RYUV9GV0RMKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE3MzpcdE1DVVFfQ09ORklHKE1UX01DVVFfV00sIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfTUNVX1dNLCBNVDc5OTZfVFhRX01DVV9XTSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNzQtXHRpZiAobXQ3OTk2X2hhc193YShkZXYpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTc1LVx0XHRNQ1VRX0NPTkZJRyhNVF9NQ1VRX1dBLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX01DVV9XQSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE3NjpcdFx0XHQgICAgTVQ3OTk2X1RYUV9NQ1VfV0EpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTc3LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz01MjE9aW50IG10Nzk5Nl9kbWFfcnJvX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01MzUtXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9SUk9fUlhETUFEX0MpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTM2Olx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1Mzc6XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX0JVRl9TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTM4LVx0XHRcdFx0ICAgICAgIE1UX1JYUV9SUk9fQVBfUklOR19CQVNFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NjEtXHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfUlJPX0lORCksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1NjI6XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NjMtXHRcdFx0ICAgICAgIDAsIE1UX1JYUV9SUk9fSU5EX1JJTkdfQkFTRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTc0LVx0c2l6ZSA9IGlzX210Nzk5NihtZGV2KSBcdTAwMjZcdTAwMjYgbXQ3Nl9ucHVfZGV2aWNlX2FjdGl2ZShtZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTc1Olx0ICAgICAgID8gTVQ3OTk2X05QVV9SWF9SSU5HX1NJWkUgLyA0IDogTVQ3OTk2X1JYX1JJTkdfU0laRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU3Ni1cdHJldCA9IG10NzZfcXVldWVfYWxsb2MoZGV2LCBcdTAwMjZtZGV2LVx1MDAzZXFfcnhbTVRfUlhRX01TRFVfUEFHRV9CQU5EMF0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NzctXHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfTVNEVV9QQUdFX0JBTkQwKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjU3ODpcdFx0XHQgICAgICAgc2l6ZSwgTVQ3OTk2X1JYX01TRFVfUEFHRV9TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTc5LVx0XHRcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9NU0RVX1BBR0VfQkFORDApKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01OTEtXHRcdHNpemUgPSBpc19tdDc5OTYobWRldikgXHUwMDI2XHUwMDI2IG10NzZfbnB1X2RldmljZV9hY3RpdmUobWRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjU5MjpcdFx0ICAgICAgID8gTVQ3OTk2X05QVV9SWF9SSU5HX1NJWkUgLyAyIDogTVQ3OTk2X1JYX1JJTkdfU0laRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU5My1cdFx0cmV0ID0gbXQ3Nl9xdWV1ZV9hbGxvYyhkZXYsIFx1MDAyNm1kZXYtXHUwMDNlcV9yeFtNVF9SWFFfTVNEVV9QQUdFX0JBTkQxXSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU5NC1cdFx0XHRcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX01TRFVfUEFHRV9CQU5EMSksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1OTU6XHRcdFx0XHQgICAgICAgc2l6ZSwgTVQ3OTk2X1JYX01TRFVfUEFHRV9TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTk2LVx0XHRcdFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX01TRFVfUEFHRV9CQU5EMSkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYwOS1cdFx0c2l6ZSA9IGlzX210Nzk5NihtZGV2KSBcdTAwMjZcdTAwMjYgbXQ3Nl9ucHVfZGV2aWNlX2FjdGl2ZShtZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjEwOlx0XHQgICAgICAgPyBNVDc5OTZfTlBVX1JYX1JJTkdfU0laRSA6IE1UNzk5Nl9SWF9SSU5HX1NJWkU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02MTEtXHRcdHJldCA9IG10NzZfcXVldWVfYWxsb2MoZGV2LCBcdTAwMjZtZGV2LVx1MDAzZXFfcnhbTVRfUlhRX01TRFVfUEFHRV9CQU5EMl0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02MTItXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9NU0RVX1BBR0VfQkFORDIpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjEzOlx0XHRcdFx0ICAgICAgIHNpemUsIE1UNzk5Nl9SWF9NU0RVX1BBR0VfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYxNC1cdFx0XHRcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9NU0RVX1BBR0VfQkFORDIpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz02NjQ9aW50IG10Nzk5Nl9kbWFfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY4My1cdFx0cmV0ID0gbXQ3OTk2X2luaXRfdHhfcXVldWVzKFx1MDAyNmRldi1cdTAwM2VwaHksIE1UX1RYUV9JRCgwKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjY4NDpcdFx0XHRcdFx0ICAgIE1UNzk5Nl9OUFVfVFhfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjg1LVx0XHRcdFx0XHQgICAgTVRfVFhRX1JJTkdfQkFTRSgwKSAmIzQzOyBoaWYxX29mcyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02ODktXHRcdFx0XHRcdCAgICBNVF9UWFFfSUQoZGV2LVx1MDAzZW1waHkuYmFuZF9pZHgpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjkwOlx0XHRcdFx0XHQgICAgTVQ3OTk2X1RYX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY5MS1cdFx0XHRcdFx0ICAgIE1UX1RYUV9SSU5HX0JBU0UoMCksIHdlZCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjk3LVx0XHRcdFx0ICBNVF9NQ1VRX0lEKE1UX01DVVFfV00pLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6Njk4Olx0XHRcdFx0ICBNVDc5OTZfVFhfTUNVX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY5OS1cdFx0XHRcdCAgTVRfTUNVUV9SSU5HX0JBU0UoTVRfTUNVUV9XTSkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTcwNi1cdFx0XHRcdFx0ICBNVF9NQ1VRX0lEKE1UX01DVVFfV0EpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzA3Olx0XHRcdFx0XHQgIE1UNzk5Nl9UWF9NQ1VfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzA4LVx0XHRcdFx0XHQgIE1UX01DVVFfUklOR19CQVNFKE1UX01DVVFfV0EpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03MTUtXHRcdFx0XHQgIE1UX01DVVFfSUQoTVRfTUNVUV9GV0RMKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjcxNjpcdFx0XHRcdCAgTVQ3OTk2X1RYX0ZXRExfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzE3LVx0XHRcdFx0ICBNVF9NQ1VRX1JJTkdfQkFTRShNVF9NQ1VRX0ZXREwpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03MjMtXHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfTUNVKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjcyNDpcdFx0XHQgICAgICAgTVQ3OTk2X1JYX01DVV9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3MjU6XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfQlVGX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03MjYtXHRcdFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX01DVSkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTczMi1cdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9NQ1VfV0EpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzMzOlx0XHRcdCAgICAgICBNVDc5OTZfUlhfTUNVX1JJTkdfU0laRV9XQSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjczNDpcdFx0XHQgICAgICAgTVQ3OTk2X1JYX01DVV9CVUZfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTczNS1cdFx0XHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfTUNVX1dBKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzQ2LVx0XHRcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX01BSU4pLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzQ3Olx0XHRcdCAgICAgICBNVDc5OTZfUlhfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzQ4LVx0XHRcdCAgICAgICBNVF9SWF9CVUZfU0laRSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03NjYtXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9NQUlOX1dBKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjc2NzpcdFx0XHRcdCAgICAgICBNVDc5OTZfUlhfTUNVX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc2OC1cdFx0XHRcdCAgICAgICBNVF9SWF9CVUZfU0laRSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03NzgtXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9UWEZSRUVfQkFORDApLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6Nzc5Olx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzgwOlx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9CVUZfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc4MS1cdFx0XHRcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9UWEZSRUVfQkFORDApKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03OTItXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9UWEZSRUVfQkFORDEpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzkzOlx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6Nzk0Olx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9CVUZfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc5NS1cdFx0XHRcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9UWEZSRUVfQkFORDEpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MDQtXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9CQU5EMiksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4MDU6XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgwNi1cdFx0XHRcdCAgICAgICBNVF9SWF9CVUZfU0laRSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MjAtXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9CQU5EMl9XQSksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4MjE6XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX01DVV9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MjItXHRcdFx0XHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODM1LVx0XHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfQkFORDEpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODM2Olx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MzctXHRcdFx0XHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODUyLVx0XHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9CQU5EMV9XQSksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4NTM6XHRcdFx0XHRcdCAgICAgICBNVDc5OTZfUlhfTUNVX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg1NC1cdFx0XHRcdFx0ICAgICAgIE1UX1JYX0JVRl9TSVpFLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg2OC1cdFx0XHRcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX1JST19CQU5EMCksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4Njk6XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg3MDpcdFx0XHRcdCAgICAgICBNVDc5OTZfUlhfQlVGX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04NzEtXHRcdFx0XHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfUlJPX0JBTkQwKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODgzLVx0XHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9SUk9fQkFORDEpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODg0Olx0XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg4NTpcdFx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9CVUZfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg4Ni1cdFx0XHRcdFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX1JST19CQU5EMSkgJiM0MzsgaGlmMV9vZnMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkwMC1cdFx0XHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfVFhGUkVFX0JBTkQwKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjkwMTpcdFx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTAyOlx0XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX0JVRl9TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTAzLVx0XHRcdFx0XHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfVFhGUkVFX0JBTkQwKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTE5LVx0XHRcdCAgICAgICBtdDc2X25wdV9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtdDc2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTIwOlx0XHRcdCAgICAgICA/IE1UNzk5Nl9OUFVfUlhfUklOR19TSVpFIDogTVQ3OTk2X1JYX1JJTkdfU0laRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkyMS1cdFx0XHRyZXQgPSBtdDc2X3F1ZXVlX2FsbG9jKGRldiwgXHUwMDI2ZGV2LVx1MDAzZW10NzYucV9yeFtNVF9SWFFfUlJPX0JBTkQyXSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkyMi1cdFx0XHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfUlJPX0JBTkQyKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjkyMzpcdFx0XHRcdFx0ICAgICAgIHNpemUsIE1UNzk5Nl9SWF9CVUZfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkyNC1cdFx0XHRcdFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX1JST19CQU5EMikgJiM0MzsgaGlmMV9vZnMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkzNC1cdFx0XHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfVFhGUkVFX0JBTkQyKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjkzNTpcdFx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTM2Olx0XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX0JVRl9TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTM3LVx0XHRcdFx0XHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfVFhGUkVFX0JBTkQyKSAmIzQzOyBoaWYxX29mcyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM9MTA9c3RhdGljIGludCBtdDc5OTZfY2hlY2tfZWVwcm9tKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTUtXHRzd2l0Y2ggKHZhbCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTY6XHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xNy1cdFx0cmV0dXJuIGlzX210Nzk5NihcdTAwMjZkZXYtXHUwMDNlbXQ3NikgPyAwIDogLUVJTlZBTDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYz0yNz1zdGF0aWMgY2hhciAqbXQ3OTk2X2VlcHJvbV9uYW1lKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMzItXHRcdGNhc2UgTVQ3OTkyX1ZBUl9UWVBFXzIzOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MzM6XHRcdFx0aWYgKGRldi1cdTAwM2V2YXIuZmVtID09IE1UNzk5Nl9GRU1fSU5UKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMzQtXHRcdFx0XHRyZXR1cm4gTVQ3OTkyX0VFUFJPTV9ERUZBVUxUXzIzX0lOVDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0zOS1cdFx0ZGVmYXVsdDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjQwOlx0XHRcdGlmIChkZXYtXHUwMDNldmFyLmZlbSA9PSBNVDc5OTZfRkVNX0lOVClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTQxLVx0XHRcdFx0cmV0dXJuIE1UNzk5Ml9FRVBST01fREVGQVVMVF9JTlQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo0MjpcdFx0XHRpZiAoZGV2LVx1MDAzZXZhci5mZW0gPT0gTVQ3OTk2X0ZFTV9NSVgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy00My1cdFx0XHRcdHJldHVybiBNVDc5OTJfRUVQUk9NX0RFRkFVTFRfTUlYO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTQ2LVx0Y2FzZSBNVDc5OTBfREVWSUNFX0lEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NDc6XHRcdGlmIChkZXYtXHUwMDNldmFyLmZlbSA9PSBNVDc5OTZfRkVNX0lOVClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTQ4LVx0XHRcdHJldHVybiBNVDc5OTBfRUVQUk9NX0RFRkFVTFRfSU5UO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtNDktXHRcdHJldHVybiBNVDc5OTBfRUVQUk9NX0RFRkFVTFQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo1MDpcdGNhc2UgTVQ3OTk2X0RFVklDRV9JRDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTUxLVx0ZGVmYXVsdDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTUyLVx0XHRzd2l0Y2ggKGRldi1cdTAwM2V2YXIudHlwZSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NTM6XHRcdGNhc2UgTVQ3OTk2X1ZBUl9UWVBFXzIzMzpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjU0Olx0XHRcdGlmIChkZXYtXHUwMDNldmFyLmZlbSA9PSBNVDc5OTZfRkVNX0lOVClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjU1Olx0XHRcdFx0cmV0dXJuIE1UNzk5Nl9FRVBST01fREVGQVVMVF8yMzNfSU5UO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NTY6XHRcdFx0cmV0dXJuIE1UNzk5Nl9FRVBST01fREVGQVVMVF8yMzM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo1NzpcdFx0Y2FzZSBNVDc5OTZfVkFSX1RZUEVfNDQ0OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtNTgtXHRcdGRlZmF1bHQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo1OTpcdFx0XHRpZiAoZGV2LVx1MDAzZXZhci5mZW0gPT0gTVQ3OTk2X0ZFTV9JTlQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo2MDpcdFx0XHRcdHJldHVybiBNVDc5OTZfRUVQUk9NX0RFRkFVTFRfSU5UO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NjE6XHRcdFx0cmV0dXJuIE1UNzk5Nl9FRVBST01fREVGQVVMVDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTYyLVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM9OTg9c3RhdGljIGJvb2wgbXQ3OTk2X2VlcHJvbV92YXJpYW50X3ZhbGlkKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGNvbnN0IHU4ICpkZWYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTA4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTA5Olx0aWYgKGRldi1cdTAwM2V2YXIuZmVtID09IE1UNzk5Nl9GRU1fRVhUIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTEwLVx0ICAgICEoZmVtWzBdID09IEZFTV9FWFQgXHUwMDI2XHUwMDI2IGZlbVsxXSA9PSBGRU1fRVhUKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTExMS1cdFx0cmV0dXJuIGZhbHNlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTEyOlx0ZWxzZSBpZiAoZGV2LVx1MDAzZXZhci5mZW0gPT0gTVQ3OTk2X0ZFTV9JTlQgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xMTMtXHRcdCAhKGZlbVswXSA9PSBGRU1fSU5UIFx1MDAyNlx1MDAyNiBmZW1bMV0gPT0gRkVNX0lOVCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xMTQtXHRcdHJldHVybiBmYWxzZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjExNTpcdGVsc2UgaWYgKGRldi1cdTAwM2V2YXIuZmVtID09IE1UNzk5Nl9GRU1fTUlYIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTE2LVx0XHQgIShmZW1bMF0gPT0gRkVNX0lOVCBcdTAwMjZcdTAwMjYgZmVtWzFdID09IEZFTV9FWFQpKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jPTEzNz1tdDc5OTZfZWVwcm9tX2NoZWNrX29yX3VzZV9kZWZhdWx0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGJvb2wgdXNlX2RlZmF1bHQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTUyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTUzOlx0aWYgKGZ3LVx1MDAzZXNpemUgXHUwMDNjIE1UNzk5Nl9FRVBST01fU0laRSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTU0LVx0XHRkZXZfZXJyKGRldi1cdTAwM2VtdDc2LmRldiwgXCYjMzQ7SW52YWxpZCBkZWZhdWx0IGJpbiBzaXplXFxuXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xNjItXHRkZXZfd2FybihkZXYtXHUwMDNlbXQ3Ni5kZXYsIFwmIzM0O2VlcHJvbSBsb2FkIGZhaWwsIHVzZSBkZWZhdWx0IGJpblxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzoxNjM6XHRtZW1jcHkoZWVwcm9tLCBmdy1cdTAwM2VkYXRhLCBNVDc5OTZfRUVQUk9NX1NJWkUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTY0LVx0ZGV2LVx1MDAzZWVlcHJvbV9tb2RlID0gRUVQUk9NX01PREVfREVGQVVMVF9CSU47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM9MTcyPXN0YXRpYyBpbnQgbXQ3OTk2X2VlcHJvbV9sb2FkKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTc4Olx0cmV0ID0gbXQ3Nl9lZXByb21faW5pdChcdTAwMjZkZXYtXHUwMDNlbXQ3NiwgTVQ3OTk2X0VFUFJPTV9TSVpFKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE3OS1cdGlmIChyZXQgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTg2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTg3Olx0bWVtc2V0KGRldi1cdTAwM2VtdDc2LmVlcHJvbS5kYXRhLCAwLCBNVDc5OTZfRUVQUk9NX1NJWkUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTg4LVx0aWYgKG10Nzk5Nl9oYXNfZXh0X2VlcHJvbShkZXYpKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTkwLVx0XHRkZXYtXHUwMDNlZWVwcm9tX21vZGUgPSBFRVBST01fTU9ERV9FWFQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzoxOTE6XHRcdGVlcHJvbV9ibGtfc2l6ZSA9IE1UNzk5Nl9FWFRfRUVQUk9NX0JMT0NLX1NJWkU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xOTItXHR9IGVsc2Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE5Ni1cdFx0ZGV2LVx1MDAzZWVlcHJvbV9tb2RlID0gRUVQUk9NX01PREVfRUZVU0U7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzoxOTc6XHRcdGVlcHJvbV9ibGtfc2l6ZSA9IE1UNzk5Nl9FRVBST01fQkxPQ0tfU0laRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE5OC1cdFx0cmV0ID0gbXQ3OTk2X21jdV9nZXRfZWZ1c2VfZnJlZV9ibG9jayhkZXYsIFx1MDAyNmZyZWVfYmxvY2tfbnVtKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0yMTctXHQvKiByZWFkIGVlcHJvbSBkYXRhIGZyb20gZncgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjIxODpcdGJsb2NrX251bSA9IERJVl9ST1VORF9VUChNVDc5OTZfRUVQUk9NX1NJWkUsIGVlcHJvbV9ibGtfc2l6ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0yMTktXHRmb3IgKGkgPSAxOyBpIFx1MDAzYyBibG9ja19udW07IGkmIzQzOyYjNDM7KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMjIyLVx0XHRpZiAoaSA9PSBibG9ja19udW0gLSAxKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MjIzOlx0XHRcdGxlbiA9IE1UNzk5Nl9FRVBST01fU0laRSAlIGVlcHJvbV9ibGtfc2l6ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTIyNC1cdFx0cmV0ID0gbXQ3OTk2X21jdV9nZXRfZWVwcm9tKGRldiwgaSAqIGVlcHJvbV9ibGtfc2l6ZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYz0zOTU9Ym9vbCBtdDc5OTZfZWVwcm9tX2hhc19iYWNrZ3JvdW5kX3JhZGFyKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMzk3LVx0c3dpdGNoIChtdDc2X2NoaXAoXHUwMDI2ZGV2LVx1MDAzZW10NzYpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzozOTg6XHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzozOTk6XHRcdGlmIChkZXYtXHUwMDNldmFyLnR5cGUgPT0gTVQ3OTk2X1ZBUl9UWVBFXzIzMylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTQwMC1cdFx0XHRyZXR1cm4gZmFsc2U7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmgtNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5oOjY6I2lmbmRlZiBfX01UNzk5Nl9FRVBST01fSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmg6NzojZGVmaW5lIF9fTVQ3OTk2X0VFUFJPTV9IXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uaC04LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNz1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNfZ2xvYmFsID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE4Olx0Lm1heCA9IE1UNzk5Nl9NQVhfSU5URVJGQUNFUyAqIE1UNzk5Nl9NQVhfUkFESU9TLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE5LVx0LnR5cGVzID0gQklUKE5MODAyMTFfSUZUWVBFX1NUQVRJT04pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTI3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2NvbWJpbmF0aW9uIGlmX2NvbWJfZ2xvYmFsID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yOS1cdC5uX2xpbWl0cyA9IDEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MzA6XHQubWF4X2ludGVyZmFjZXMgPSBNVDc5OTZfTUFYX0lOVEVSRkFDRVMgKiBNVDc5OTZfTUFYX1JBRElPUyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzozMTpcdC5udW1fZGlmZmVyZW50X2NoYW5uZWxzID0gTVQ3OTk2X01BWF9SQURJT1MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMzItXHQucmFkYXJfZGV0ZWN0X3dpZHRocyA9IEJJVChOTDgwMjExX0NIQU5fV0lEVEhfMjBfTk9IVCkgfFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0zOT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9jb21iaW5hdGlvbiBpZl9jb21iX2dsb2JhbF83OTkyID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy00Mi1cdC5tYXhfaW50ZXJmYWNlcyA9IDMyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjQzOlx0Lm51bV9kaWZmZXJlbnRfY2hhbm5lbHMgPSBNVDc5OTZfTUFYX1JBRElPUyAtIDEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDQtXHQucmFkYXJfZGV0ZWN0X3dpZHRocyA9IEJJVChOTDgwMjExX0NIQU5fV0lEVEhfMjBfTk9IVCkgfFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz01MT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNTgtXHR9LCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NTk6XHRcdC5tYXggPSBNVDc5OTZfTUFYX0lOVEVSRkFDRVMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNjAtXHRcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9TVEFUSU9OKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz02ND1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9jb21iaW5hdGlvbiBpZl9jb21iID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy02Ni1cdC5uX2xpbWl0cyA9IEFSUkFZX1NJWkUoaWZfbGltaXRzKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo2NzpcdC5tYXhfaW50ZXJmYWNlcyA9IE1UNzk5Nl9NQVhfSU5URVJGQUNFUyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy02OC1cdC5udW1fZGlmZmVyZW50X2NoYW5uZWxzID0gMSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9ODQ9c3RhdGljIGNvbnN0IHN0cnVjdCB3aXBoeV9pZnR5cGVfZXh0X2NhcGFiIGlmdHlwZXNfZXh0X2NhcGFbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtOTItXHRcdFx0RklFTERfUFJFUF9DT05TVChJRUVFODAyMTFfTUxEX0NBUF9PUF9NQVhfU0lNVUxfTElOS1MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6OTM6XHRcdFx0XHRcdCBNVDc5OTZfTUFYX1JBRElPUyAtIDEpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk0LVx0fSwge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDEtXHRcdFx0RklFTERfUFJFUF9DT05TVChJRUVFODAyMTFfTUxEX0NBUF9PUF9NQVhfU0lNVUxfTElOS1MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTAyOlx0XHRcdFx0XHQgTVQ3OTk2X01BWF9SQURJT1MgLSAxKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDMtXHR9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xMzI9c3RhdGljIHNzaXplX3QgbXQ3OTk2X3RoZXJtYWxfdGVtcF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE0Ny1cdC8qIGFkZCBhIHNhZmV0eSBtYXJnaW4gfjEwICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTQ4Olx0aWYgKChpIC0gMSA9PSBNVDc5OTZfQ1JJVF9URU1QX0lEWCBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNDk6XHQgICAgIHZhbCBcdTAwM2UgcGh5LVx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTk2X01BWF9URU1QX0lEWF0gLSAxMCkgfHxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNTA6XHQgICAgKGkgLSAxID09IE1UNzk5Nl9NQVhfVEVNUF9JRFggXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTUxOlx0ICAgICB2YWwgLSAxMCBcdTAwM2MgcGh5LVx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTk2X0NSSVRfVEVNUF9JRFhdKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE1Mi1cdFx0ZGV2X2VycihwaHktXHUwMDNlZGV2LVx1MDAzZW10NzYuZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xODM9bXQ3OTk2X3RoZXJtYWxfZ2V0X21heF90aHJvdHRsZV9zdGF0ZShzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqY2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTg1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxODY6XHQqc3RhdGUgPSBNVDc5OTZfQ0RFVl9USFJPVFRMRV9NQVg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTg3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0yMDM9bXQ3OTk2X3RoZXJtYWxfc2V0X2N1cl90aHJvdHRsZV9zdGF0ZShzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqY2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMjA2LVx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IGNkZXYtXHUwMDNlZGV2ZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoyMDc6XHR1OCB0aHJvdHRsaW5nID0gTVQ3OTk2X1RIRVJNQUxfVEhST1RUTEVfTUFYIC0gc3RhdGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMjA4LVx0aW50IHJldDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yMDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MjEwOlx0aWYgKHN0YXRlIFx1MDAzZSBNVDc5OTZfQ0RFVl9USFJPVFRMRV9NQVgpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yMTEtXHRcdGRldl9lcnIocGh5LVx1MDAzZWRldi1cdTAwM2VtdDc2LmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MjUwPXN0YXRpYyBpbnQgbXQ3OTk2X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yNzQtXHQvKiBpbml0aWFsaXplIGNyaXRpY2FsL21heGltdW0gaGlnaCB0ZW1wZXJhdHVyZSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjI3NTpcdHBoeS1cdTAwM2V0aHJvdHRsZV90ZW1wW01UNzk5Nl9DUklUX1RFTVBfSURYXSA9IE1UNzk5Nl9DUklUX1RFTVA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6Mjc2Olx0cGh5LVx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTk2X01BWF9URU1QX0lEWF0gPSBNVDc5OTZfTUFYX1RFTVA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMjc3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz02MDM9c3RhdGljIHZvaWQgbXQ3OTk2X21hY19pbml0X2Jhc2ljX3JhdGVzKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTYwOS1cdFx0Lyogb2RkIGluZGV4IGZvciBkcml2ZXIsIGV2ZW4gaW5kZXggZm9yIGZpcm13YXJlICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NjEwOlx0XHR1MTYgaWR4ID0gTVQ3OTk2X0JBU0lDX1JBVEVTX1RCTCAmIzQzOyAyICogaTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy02MTEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTY5MD1zdGF0aWMgaW50IG10Nzk5Nl9yZWdpc3Rlcl9waHkoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgZW51bSBtdDc2X2JhbmRfaWQgYmFuZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzUzLVx0XHRcdCAgIG10NzZfbnB1X2RldmljZV9hY3RpdmUoXHUwMDI2ZGV2LVx1MDAzZW10NzYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NzU0Olx0XHRcdCAgID8gTVQ3OTk2X05QVV9UWF9SSU5HX1NJWkUgLyAyIDogTVQ3OTk2X1RYX1JJTkdfU0laRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03NTUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTgzMz1zdGF0aWMgdm9pZCBtdDc5OTZfcnJvX2h3X2luaXRfdjMoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtODQzLVx0XHR3ZWQtXHUwMDNld2xhbi5pbmRfY21kLndpbl9zaXplID1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo4NDQ6XHRcdFx0ZmZzKE1UNzk5Nl9SUk9fV0lORE9XX01BWF9MRU4pIC0gNjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy04NDUtXHRcdGlmIChpc19tdDc5OTYoXHUwMDI2ZGV2LVx1MDAzZW10NzYpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg0Ni1cdFx0XHR3ZWQtXHUwMDNld2xhbi5pbmRfY21kLnBhcnRpY3VsYXJfc2lkID1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo4NDc6XHRcdFx0XHRNVDc5OTZfUlJPX01BWF9TRVNTSU9OO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg0OC1cdFx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy04NTEtXHRcdFx0ZGV2LVx1MDAzZXdlZF9ycm8uc2Vzc2lvbi5waHlfYWRkcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo4NTI6XHRcdHdlZC1cdTAwM2V3bGFuLmluZF9jbWQuc2VfZ3JvdXBfbnVtcyA9IE1UNzk5Nl9SUk9fQUREUl9FTEVNX0xFTjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy04NTMtXHRcdHdlZC1cdTAwM2V3bGFuLmluZF9jbWQuYWNrX3NuX2FkZHIgPSBNVF9SUk9fQUNLX1NOX0NUUkw7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg2OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo4NzA6XHRzZXNzaW9uX2lkID0gaXNfbXQ3OTk2KFx1MDAyNmRldi1cdTAwM2VtdDc2KSA/IE1UNzk5Nl9SUk9fTUFYX1NFU1NJT04gOiAxO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg3MS1cdG10NzZfd3IoZGV2LCBNVF9SUk9fUEFSVElDVUxBUl9DRkcxLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz05NTc9c3RhdGljIGludCBtdDc5OTZfd2VkX3Jyb19pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk2OS1cdFx0XHRwdHIgPSBkbWFtX2FsbG9jX2NvaGVyZW50KGRldi1cdTAwM2VtdDc2LmRtYV9kZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6OTcwOlx0XHRcdFx0XHRcdCAgTVQ3OTk2X1JST19CQV9CSVRNQVBfQ1JfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy05NzEtXHRcdFx0XHRcdFx0ICBcdTAwMjZkZXYtXHUwMDNld2VkX3Jyby5iYV9iaXRtYXBbaV0ucGh5X2FkZHIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk4My1cdFx0cHRyID0gZG1hbV9hbGxvY19jb2hlcmVudChkZXYtXHUwMDNlbXQ3Ni5kbWFfZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjk4NDpcdFx0XHRcdE1UNzk5Nl9SUk9fV0lORE9XX01BWF9TSVpFICogc2l6ZW9mKCphZGRyKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy05ODUtXHRcdFx0XHRcdTAwMjZkZXYtXHUwMDNld2VkX3Jyby5hZGRyX2VsZW1baV0ucGh5X2FkZHIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk5MS1cdFx0bWVtc2V0KGRldi1cdTAwM2V3ZWRfcnJvLmFkZHJfZWxlbVtpXS5wdHIsIDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6OTkyOlx0XHQgICAgICAgTVQ3OTk2X1JST19XSU5ET1dfTUFYX1NJWkUgKiBzaXplb2YoKmFkZHIpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy05OTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtOTk0LVx0XHRhZGRyID0gZGV2LVx1MDAzZXdlZF9ycm8uYWRkcl9lbGVtW2ldLnB0cjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo5OTU6XHRcdGZvciAoaiA9IDA7IGogXHUwMDNjIE1UNzk5Nl9SUk9fV0lORE9XX01BWF9TSVpFOyBqJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk5Ni1cdFx0XHRhZGRyLVx1MDAzZWRhdGEgPSBjcHVfdG9fbGUzMih2YWwpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDE4LVx0XHRwdHIgPSBkbWFtX2FsbG9jX2NvaGVyZW50KGRldi1cdTAwM2VtdDc2LmRtYV9kZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTAxOTpcdFx0XHRcdFx0ICBNVDc5OTZfUlJPX01TRFVfUEdfU0laRV9QRVJfQ1IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTAyMC1cdFx0XHRcdFx0ICBcdTAwMjZkZXYtXHUwMDNld2VkX3Jyby5tc2R1X3BnW2ldLnBoeV9hZGRyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDI3LVx0XHRtZW1zZXQoZGV2LVx1MDAzZXdlZF9ycm8ubXNkdV9wZ1tpXS5wdHIsIDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTAyODpcdFx0ICAgICAgIE1UNzk5Nl9SUk9fTVNEVV9QR19TSVpFX1BFUl9DUik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTAyOS1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTA1Mi1cdHB0ciA9IGRtYW1fYWxsb2NfY29oZXJlbnQoZGV2LVx1MDAzZW10NzYuZG1hX2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxMDUzOlx0XHRcdFx0ICBNVDc5OTZfUlJPX1dJTkRPV19NQVhfTEVOICogc2l6ZW9mKCphZGRyKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDU0LVx0XHRcdFx0ICBcdTAwMjZkZXYtXHUwMDNld2VkX3Jyby5zZXNzaW9uLnBoeV9hZGRyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDYwLVx0YWRkciA9IGRldi1cdTAwM2V3ZWRfcnJvLnNlc3Npb24ucHRyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjEwNjE6XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBNVDc5OTZfUlJPX1dJTkRPV19NQVhfTEVOOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEwNjItXHRcdGFkZHItXHUwMDNlZGF0YSA9IGNwdV90b19sZTMyKHZhbCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTEwNzU9c3RhdGljIHZvaWQgbXQ3OTk2X3dlZF9ycm9fZnJlZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDg2LVx0XHRkbWFtX2ZyZWVfY29oZXJlbnQoZGV2LVx1MDAzZW10NzYuZG1hX2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxMDg3Olx0XHRcdFx0ICAgTVQ3OTk2X1JST19CQV9CSVRNQVBfQ1JfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDg4LVx0XHRcdFx0ICAgZGV2LVx1MDAzZXdlZF9ycm8uYmFfYml0bWFwW2ldLnB0cixcbi0tXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMiAwODo1MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzcyMwoJCQkJCQkJb3V0cHV0OiA1MAoJCQkJCQkJdGhvdWdodHM6IDk3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTVQ3OTk2IERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlIGBtdDc5OTZgIGRyaXZlciwgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgTWVkaWFUZWsgV2lGaSBzdWl0ZSwgdW5kZXIgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2AuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBQQ0kgZGV2aWNlIHNwZWNpZmljcyBvZiB0aGlzLiBNeSBuZXh0IHN0ZXAgaXMgdG8gZHJpbGwgZG93biBpbnRvIGBwY2kuY2Agd2l0aGluIHRoYXQgZGlyZWN0b3J5LiBJJiMzOTttIGhvcGluZyB0byBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIHdoYXQgUENJIGRldmljZXMgYXJlIHN1cHBvcnRlZCBhbmQsIGNyaXRpY2FsbHksIHdoZXRoZXIgdGhpcyBkcml2ZXIgaGFuZGxlcyBzb2xlbHkgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSwgb3IgaWYgaXQgbWlnaHQgYWxzbyBpbmNvcnBvcmF0ZSBzb21lIGZvcm0gb2YgZW11bGF0aW9uLiBVbmRlcnN0YW5kaW5nIHRoaXMgZGlzdGluY3Rpb24gaXMgY3J1Y2lhbCBmb3IgbXkgY3VycmVudCB0YXNrLCBzbyBgcGNpLmNgIGl0IGlzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAyIDA4OjUzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuICAgMjpcdC8qXG4gICAzOlx0ICogQ29weXJpZ2h0IChDKSAyMDIyIE1lZGlhVGVrIEluYy5cbiAgIDQ6XHQgKi9cbiAgIDU6XHRcbiAgIDY6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9rZXJuZWwuaFx1MDAzZVxuICAgNzpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L21vZHVsZS5oXHUwMDNlXG4gICA4Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvcGNpLmhcdTAwM2VcbiAgIDk6XHRcbiAgMTA6XHQjaW5jbHVkZSBcJiMzNDttdDc5OTYuaFwmIzM0O1xuICAxMTpcdCNpbmNsdWRlIFwmIzM0O21hYy5oXCYjMzQ7XG4gIDEyOlx0I2luY2x1ZGUgXCYjMzQ7Li4vdHJhY2UuaFwmIzM0O1xuICAxMzpcdFxuICAxNDpcdHN0YXRpYyBMSVNUX0hFQUQoaGlmX2xpc3QpO1xuICAxNTpcdHN0YXRpYyBERUZJTkVfU1BJTkxPQ0soaGlmX2xvY2spO1xuICAxNjpcdHN0YXRpYyB1MzIgaGlmX2lkeDtcbiAgMTc6XHRcbiAgMTg6XHRzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgbXQ3OTk2X3BjaV9kZXZpY2VfdGFibGVbXSA9IHtcbiAgMTk6XHRcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01FRElBVEVLLCBNVDc5OTZfREVWSUNFX0lEKSB9LFxuICAyMDpcdFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5Ml9ERVZJQ0VfSUQpIH0sXG4gIDIxOlx0XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgTVQ3OTkwX0RFVklDRV9JRCkgfSxcbiAgMjI6XHRcdHsgfSxcbiAgMjM6XHR9O1xuICAyNDpcdFxuICAyNTpcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBtdDc5OTZfaGlmX2RldmljZV90YWJsZVtdID0ge1xuICAyNjpcdFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5Nl9ERVZJQ0VfSURfMikgfSxcbiAgMjc6XHRcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01FRElBVEVLLCBNVDc5OTJfREVWSUNFX0lEXzIpIH0sXG4gIDI4Olx0XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgTVQ3OTkwX0RFVklDRV9JRF8yKSB9LFxuICAyOTpcdFx0eyB9LFxuICAzMDpcdH07XG4gIDMxOlx0XG4gIDMyOlx0c3RhdGljIHN0cnVjdCBtdDc5OTZfaGlmICptdDc5OTZfcGNpX2dldF9oaWYyKHUzMiBpZHgpXG4gIDMzOlx0e1xuICAzNDpcdFx0c3RydWN0IG10Nzk5Nl9oaWYgKmhpZjtcbiAgMzU6XHRcdHUzMiB2YWw7XG4gIDM2Olx0XG4gIDM3Olx0XHRzcGluX2xvY2tfYmgoXHUwMDI2aGlmX2xvY2spO1xuICAzODpcdFxuICAzOTpcdFx0bGlzdF9mb3JfZWFjaF9lbnRyeShoaWYsIFx1MDAyNmhpZl9saXN0LCBsaXN0KSB7XG4gIDQwOlx0XHRcdHZhbCA9IHJlYWRsKGhpZi1cdTAwM2VyZWdzICYjNDM7IE1UX1BDSUVfUkVDT0dfSUQpO1xuICA0MTpcdFx0XHR2YWwgXHUwMDI2PSBNVF9QQ0lFX1JFQ09HX0lEX01BU0s7XG4gIDQyOlx0XHRcdGlmICh2YWwgIT0gaWR4KVxuICA0MzpcdFx0XHRcdGNvbnRpbnVlO1xuICA0NDpcdFxuICA0NTpcdFx0XHRnZXRfZGV2aWNlKGhpZi1cdTAwM2VkZXYpO1xuICA0NjpcdFx0XHRnb3RvIG91dDtcbiAgNDc6XHRcdH1cbiAgNDg6XHRcdGhpZiA9IE5VTEw7XG4gIDQ5Olx0XG4gIDUwOlx0b3V0OlxuICA1MTpcdFx0c3Bpbl91bmxvY2tfYmgoXHUwMDI2aGlmX2xvY2spO1xuICA1MjpcdFxuICA1MzpcdFx0cmV0dXJuIGhpZjtcbiAgNTQ6XHR9XG4gIDU1Olx0XG4gIDU2Olx0c3RhdGljIHZvaWQgbXQ3OTk2X3B1dF9oaWYyKHN0cnVjdCBtdDc5OTZfaGlmICpoaWYpXG4gIDU3Olx0e1xuICA1ODpcdFx0aWYgKCFoaWYpXG4gIDU5Olx0XHRcdHJldHVybjtcbiAgNjA6XHRcbiAgNjE6XHRcdHB1dF9kZXZpY2UoaGlmLVx1MDAzZWRldik7XG4gIDYyOlx0fVxuICA2MzpcdFxuICA2NDpcdHN0YXRpYyBzdHJ1Y3QgbXQ3OTk2X2hpZiAqbXQ3OTk2X3BjaV9pbml0X2hpZjIoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4gIDY1Olx0e1xuICA2NjpcdFx0aGlmX2lkeCYjNDM7JiM0Mzs7XG4gIDY3Olx0XG4gIDY4Olx0XHRpZiAoIXBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5Nl9ERVZJQ0VfSURfMiwgTlVMTCkgXHUwMDI2XHUwMDI2XG4gIDY5Olx0XHQgICAgIXBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5Ml9ERVZJQ0VfSURfMiwgTlVMTCkgXHUwMDI2XHUwMDI2XG4gIDcwOlx0XHQgICAgIXBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5MF9ERVZJQ0VfSURfMiwgTlVMTCkpXG4gIDcxOlx0XHRcdHJldHVybiBOVUxMO1xuICA3MjpcdFxuICA3MzpcdFx0d3JpdGVsKGhpZl9pZHggfCBNVF9QQ0lFX1JFQ09HX0lEX1NFTSxcbiAgNzQ6XHRcdCAgICAgICBwY2ltX2lvbWFwX3RhYmxlKHBkZXYpWzBdICYjNDM7IE1UX1BDSUVfUkVDT0dfSUQpO1xuICA3NTpcdFxuICA3NjpcdFx0cmV0dXJuIG10Nzk5Nl9wY2lfZ2V0X2hpZjIoaGlmX2lkeCk7XG4gIDc3Olx0fVxuICA3ODpcdFxuICA3OTpcdHN0YXRpYyBpbnQgbXQ3OTk2X3BjaV9oaWYyX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuICA4MDpcdHtcbiAgODE6XHRcdHN0cnVjdCBtdDc5OTZfaGlmICpoaWY7XG4gIDgyOlx0XG4gIDgzOlx0XHRoaWYgPSBkZXZtX2t6YWxsb2MoXHUwMDI2cGRldi1cdTAwM2VkZXYsIHNpemVvZigqaGlmKSwgR0ZQX0tFUk5FTCk7XG4gIDg0Olx0XHRpZiAoIWhpZilcbiAgODU6XHRcdFx0cmV0dXJuIC1FTk9NRU07XG4gIDg2Olx0XG4gIDg3Olx0XHRoaWYtXHUwMDNlZGV2ID0gXHUwMDI2cGRldi1cdTAwM2VkZXY7XG4gIDg4Olx0XHRoaWYtXHUwMDNlcmVncyA9IHBjaW1faW9tYXBfdGFibGUocGRldilbMF07XG4gIDg5Olx0XHRoaWYtXHUwMDNlaXJxID0gcGRldi1cdTAwM2VpcnE7XG4gIDkwOlx0XHRwY2llX2JhbmR3aWR0aF9hdmFpbGFibGUocGRldiwgTlVMTCwgXHUwMDI2aGlmLVx1MDAzZXNwZWVkLCBcdTAwMjZoaWYtXHUwMDNld2lkdGgpO1xuICA5MTpcdFx0c3Bpbl9sb2NrX2JoKFx1MDAyNmhpZl9sb2NrKTtcbiAgOTI6XHRcdGxpc3RfYWRkKFx1MDAyNmhpZi1cdTAwM2VsaXN0LCBcdTAwMjZoaWZfbGlzdCk7XG4gIDkzOlx0XHRzcGluX3VubG9ja19iaChcdTAwMjZoaWZfbG9jayk7XG4gIDk0Olx0XHRwY2lfc2V0X2RydmRhdGEocGRldiwgaGlmKTtcbiAgOTU6XHRcbiAgOTY6XHRcdHJldHVybiAwO1xuICA5NzpcdH1cbiAgOTg6XHRcbiAgOTk6XHRzdGF0aWMgaW50IG10Nzk5Nl9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4gMTAwOlx0XHRcdFx0ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMiAwODo1MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTYwMgoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDM3NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCYjMzk7cyBGdXp6aW5nIFdvcnRoaW5lc3MqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIHRoZSBpbnN0cnVjdGlvbnMgYXJlIHByZXR0eSBjbGVhcjogY2VydGFpbiBtb2RpZmljYXRpb25zIGF1dG9tYXRpY2FsbHkgbWVhbiAmIzM0O25vJiMzNDsgdG8gZnV6emluZy4gSXQmIzM5O3MgZXNzZW50aWFsbHkgYSBsaXN0IG9mIHRoaW5ncyB0aGF0IGRvbiYjMzk7dCBpbnRyb2R1Y2UgbmV3IGV4ZWN1dGlvbiBwYXRocyB0aGF0IGEgZnV6emVyIHdvdWxkIGNhcmUgYWJvdXQuIERvY3VtZW50YXRpb24sIGNvbW1lbnRzLCBkZWNvcmF0aXZlIGxvZ2dpbmcsIGluY29uc2VxdWVudGlhbCBudW1lcmljIGNoYW5nZXMsIHVucmVhY2hhYmxlIGNvZGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXJzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gZW11bGF0ZSwgYW5kIHRlYXJkb3duIGNhbGxiYWNrcyAtIGFsbCBuby1nb3MuCgpOb3csIG15IGluaXRpYWwgdGhvdWdodDogaXMgdGhpcyBwYXRjaCBmb2N1c2VkIG9uIGEgTWVkaWFUZWsgV2lGaSBkcml2ZXIsIHNwZWNpZmljYWxseSBtdDc5OTY/IElmIHNvLCBpcyBpdCBsaW1pdGVkIHRvIFBDSWUgaGFyZHdhcmU/IFRoYXQmIzM5O3MgdGhlIGNyaXRpY2FsIHF1ZXN0aW9uLiBJIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIGl0JiMzOTtzIHN0cmljdGx5IGRlcGVuZGVudCBvbiBwaHlzaWNhbCBoYXJkd2FyZSBvciBpZiB0aGVyZSYjMzk7cyBhbnkgcGF0aHdheSB0byByZWFjaCBpdCB0aHJvdWdoIFVTQiwgYG1hYzgwMjExX2h3c2ltYCwgb3IgYW55IG90aGVyIG1ldGhvZCB0aGF0ICpjYW4qIGJlIHVzZWQgaW4gYSB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50LgoKTXkgbmV4dCBzdGVwIGlzIHRvIGRpdmUgaW50byB0aGUgY29kZS4gSSYjMzk7bSBnb2luZyB0byBleGhhdXN0aXZlbHkgZXhhbWluZSBhbGwgdGhlIGZpbGVzIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2AgZGlyZWN0b3J5LiBUaGlzIHdpbGwgYmUgbXkgZGVjaXNpdmUgc3RlcCBpbiBkZXRlcm1pbmluZyB3aGV0aGVyIHRoaXMgaXMgd29ydGggdGhlIGVmZm9ydCB0byBmdXp6LiBJIG5lZWQgdG8gYXNjZXJ0YWluIGlmIHRoZSBjb2RlIHRvdWNoZXMgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMgdGhhdCBhcmUgcmVhbGlzdGljYWxseSBleGVjdXRhYmxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMiAwODo1MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmNvZGVzZWFyY2gtZGlyLWluZGV4PC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtEaXImIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5NiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlcyYjMzQ7OiBbCiAgICAmIzM0O2NvcmVkdW1wLmMmIzM0OywKICAgICYjMzQ7Y29yZWR1bXAuaCYjMzQ7LAogICAgJiMzNDtkZWJ1Z2ZzLmMmIzM0OywKICAgICYjMzQ7ZG1hLmMmIzM0OywKICAgICYjMzQ7ZWVwcm9tLmMmIzM0OywKICAgICYjMzQ7ZWVwcm9tLmgmIzM0OywKICAgICYjMzQ7aW5pdC5jJiMzNDssCiAgICAmIzM0O21hYy5jJiMzNDssCiAgICAmIzM0O21hYy5oJiMzNDssCiAgICAmIzM0O21haW4uYyYjMzQ7LAogICAgJiMzNDttY3UuYyYjMzQ7LAogICAgJiMzNDttY3UuaCYjMzQ7LAogICAgJiMzNDttbWlvLmMmIzM0OywKICAgICYjMzQ7bXQ3OTk2LmgmIzM0OywKICAgICYjMzQ7bnB1LmMmIzM0OywKICAgICYjMzQ7cGNpLmMmIzM0OywKICAgICYjMzQ7cmVncy5oJiMzNDsKICBdLAogICYjMzQ7U3ViZGlycyYjMzQ7OiBudWxsCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDIgMDg6NTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY0MzQKCQkJCQkJCW91dHB1dDogNTUKCQkJCQkJCXRob3VnaHRzOiA0MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBIZXJlJiMzOTtzIGhvdyBJJiMzOTtkIGFwcHJvYWNoIHRoYXQgZmlsZS4uLgoKKipBbmFseXppbmcgbXQ3OTk2JiMzOTtzIFBDSSBEcml2ZXIqKgoKQWxyaWdodCwgYmVmb3JlIEkgZ2V0IHRvbyBkZWVwIGludG8gdGhpcyBwYXJ0aWN1bGFyIG1vZHVsZSAoYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jYCksIEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSB0aGUgc2NvcGUgb2YgaXRzIGJ1cyBzdXBwb3J0LiBJdCYjMzk7cyB0aXRsZWQgJiMzNDtwY2kuYywmIzM0OyBzbyB0aGUgb2J2aW91cyBhc3N1bXB0aW9uIGlzIFBDSS4gQnV0LCB3aXRoIHRoZXNlIG5ld2VyIE1lZGlhdGVrIGltcGxlbWVudGF0aW9ucywgdGhleSBvZnRlbiBzaGFyZSBjb3JlIGNvZGUgYWNyb3NzIGRpZmZlcmVudCBidXMgaW50ZXJmYWNlcy4gU28sIEkgbmVlZCB0byBjb25maXJtIHRoYXQgdGhpcyBmaWxlIGlzICpvbmx5KiBkZWFsaW5nIHdpdGggUENJLCBvciBpZiB0aGVyZSYjMzk7cyBzb21lIGFic3RyYWN0aW9uIGdvaW5nIG9uLiBJJiMzOTttIGdvaW5nIHRvIHNjYW4gdGhlIGNvZGUgZm9yIGFueXRoaW5nIHRoYXQgbWlnaHQgaW5kaWNhdGUgc3VwcG9ydCBmb3Igb3RoZXIgYnVzIHR5cGVzIGxpa2UgU0RJTyBvciBVU0IuIEkmIzM5O2xsIGJlIGxvb2tpbmcgZm9yIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uLCBkZXZpY2UgSUQgY2hlY2tzLCBvciBhbnkga2luZCBvZiBidXMtc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gcm91dGluZXMgdGhhdCBoaW50IGF0IG11bHRpLWJ1cyBzdXBwb3J0IHdpdGhpbiB0aGlzIG1vZHVsZS4gSWYgaXQmIzM5O3Mgc29sZWx5IFBDSSwgdGhhdCBzaW1wbGlmaWVzIHRoaW5ncyBhIGJpdCwgYnV0IEkgc3RpbGwgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aWdodGx5IGNvdXBsZWQgaXQgaXMgdG8gdGhlIFBDSS1zcGVjaWZpYyBmZWF0dXJlcyBhbmQgdGhlIE1lZGlhdGVrIHdpcmVsZXNzIGNoaXBzZXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAyIDA4OjUzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21vZHVsZV9pbml0fG1vZHVsZV9wY2lfZHJpdmVyfHBjaV9yZWdpc3Rlcl9kcml2ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5NiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODg5PXN0YXRpYyBpbnQgX19pbml0IG10Nzk5Nl9pbml0KHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg5Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4OTM6XHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10Nzk5Nl9oaWZfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04OTQtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04OTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODk3Olx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZtdDc5OTZfcGNpX2RyaXZlcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODk4LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9OTA0PXN0YXRpYyB2b2lkIF9fZXhpdCBtdDc5OTZfZXhpdCh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy05MDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6OTEwOm1vZHVsZV9pbml0KG10Nzk5Nl9pbml0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy05MTEtbW9kdWxlX2V4aXQobXQ3OTk2X2V4aXQpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMiAwODo1MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNzIxNQoJCQkJCQkJb3V0cHV0OiAxMjIKCQkJCQkJCXRob3VnaHRzOiA2ODYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgc28gSSYjMzk7dmUgbG9va2VkIGF0IHRoaXMgcGF0Y2ggYW5kIEkmIzM5O20gcHJldHR5IGNlcnRhaW4gaXQmIzM5O3Mgbm90IGdvaW5nIHRvIGJlIGZydWl0ZnVsIGZvciBmdXp6aW5nIGluIGEgc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnQuIExldCYjMzk7cyBicmVhayBpdCBkb3duOiBgbXQ3OTk2YCBpcyBleGNsdXNpdmVseSBhIFBDSWUgZHJpdmVyLCByaWdodD8gV2UmIzM5O3JlIHRhbGtpbmcgYWJvdXQgc3BlY2lmaWMgTWVkaWFUZWsgUENJZSB3aXJlbGVzcyBjYXJkcyDigJMgdGhvc2Ugc3BlY2lmaWMgZGV2aWNlIElEcyAoMHg3OTk2LCAweDc5OTIsIDB4Nzk5MCB3aXRoIHZlbmRvciAweDE0YzMpLiBOb3csIHRoZSBwcm9ibGVtIGlzLCBhbmQgdGhpcyBpcyB0aGUgY3J1eCBvZiB0aGUgbWF0dGVyLCBRRU1VIGFuZCBHQ0UganVzdCBkb24mIzM5O3QgZW11bGF0ZSB0aG9zZSBNZWRpYVRlayBQQ0llIFdpLUZpIE5JQ3MuIE5vIGRpY2UuCgpJIHF1aWNrbHkgY2hlY2tlZCwgdGhlcmUmIzM5O3Mgbm8gdmlydHVhbGl6ZWQgb3IgZW11bGF0ZWQgc3VwcG9ydCBmb3IgdGhhdCBoYXJkd2FyZSBpbiBRRU1VLiBVU0IgaXMgYSBkZWFkIGVuZCBoZXJlLiBXZSBjb3VsZCBsb29rIGF0IFVTQiBnYWRnZXQgb3IgcmF3LWdhZGdldCAvIGR1bW15X2hjZCwgYnV0IHRoYXQmIzM5O3Mgbm90IHJlbGV2YW50OyB0aGlzIGlzIHN0cmljdGx5IFBDSWUuIE1hYzgwMjExIGh3c2ltLCB3aGljaCBlbXVsYXRlcyBtYWM4MDIxMSByYWRpb3MgZGlyZWN0bHksIGFsc28gYnlwYXNzZXMgdmVuZG9yIGRyaXZlcnMgbGlrZSBgbXQ3OTk2YCwgc28gaXQmIzM5O3MgaXJyZWxldmFudC4KClRoZW4sIEkgZG91YmxlLWNoZWNrZWQgdGhlIGd1aWRlbGluZXMuIFdlJiMzOTtyZSBleHBsaWNpdGx5IHRvbGQgdG8gYXZvaWQgY29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgZXZlbiB3aXRoIHNvZnR3YXJlIGVtdWxhdGlvbi4gV2UgYXJlIGFsc28gdG9sZCB0byBzdGF5IGF3YXkgZnJvbSBzcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIHRoYXQgcmVxdWlyZSByZWFsIGhhcmR3YXJlIG5vdCBhdmFpbGFibGUgaW4gc3RhbmRhcmQgUUVNVS4gVGhhdCYjMzk7cyBleGFjdGx5IHdoZXJlIHdlIGFyZTogYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBXaS1GaSBkcml2ZXIuCgpUaGUgY2hhbmdlcyBpbiB0aGlzIHBhdGNoIHNlcmllcyBhcmUgYWxsIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9gIC0gYG1hYy5jYCwgYG1haW4uY2AsIGFuZCBgbW1pby5jYC4gVGhhdCYjMzk7cyB0aGUgYG10Nzk5NmVgIG1vZHVsZSwgYW5kIHRoYXQmIzM5O3MgdGhlIHZlbmRvciBkcml2ZXIuIFdpdGhvdXQgdGhlIGFjdHVhbCBNZWRpYVRlayBQQ0llIGhhcmR3YXJlLCB0aGlzIGRyaXZlciB3b24mIzM5O3QgZXZlbiBwcm9iZSwgbWFraW5nIGl0cyBmdW5jdGlvbnMgY29tcGxldGVseSB1bnJlYWNoYWJsZSBpbiBhIFFFTVUvR0NFIGZ1enppbmcgc2V0dXAuCgpUaGVyZWZvcmUsIGZvciBhbGwgdGhlc2UgcmVhc29ucyBJIGhhdmUgdG8gY29uY2x1ZGUgdGhhdCBgV29ydGhGdXp6aW5nYCBzaG91bGQgYmUgYGZhbHNlYC4KClNvLCBoZXJlJiMzOTtzIG15IHByZXBhcmVkIHJlYXNvbmluZzoKCiogICBUaGUgbW9kaWZpY2F0aW9ucyBhcmUgbG9jYXRlZCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvYCBkaXJlY3RvcnksIHNwZWNpZmljYWxseSB3aXRoaW4gdGhlIE1lZGlhVGVrIFBDSWUgZHJpdmVyIHRoYXQgc3VwcG9ydHMgdGhlIE1UNzk5NiAvIE1UNzk5MiAvIE1UNzk5MCBXaS1GaSBkZXZpY2VzLgoqICAgVGhlIHJlcXVpcmVkIHBoeXNpY2FsIFBDSWUgZGV2aWNlcyBhcmUgbm90IGVtdWxhdGVkIGluIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIHN1Y2ggYXMgUUVNVSBvciBHQ0UuIFNvZnR3YXJlIGVtdWxhdGlvbiBhbHNvIHdvbiYjMzk7dCB3b3JrOiBVU0IgZ2FkZ2V0cyBvciBtYWM4MDIxMVxfaHdzaW0gYXJlbiYjMzk7dCByZWxldmFudC4KKiAgIEFzIGEgcmVzdWx0LCB0aGUgY29kZSBpcyB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4KCkFuZCBub3cgSSYjMzk7bSBnb2luZyB0byBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAyIDA4OjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgY2hhbmdlcyBhcmUgY29uZmluZWQgdG8gZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIHdpcmVsZXNzIGRyaXZlciBmb3IgTWVkaWFUZWsgTVQ3OTk2L01UNzk5Mi9NVDc5OTAgZGV2aWNlcy4gVGhlc2UgUENJZSBkZXZpY2VzIHJlcXVpcmUgc3BlY2lmaWMgcGh5c2ljYWwgaGFyZHdhcmUgYW5kIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChzdWNoIGFzIFFFTVUvR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgY2hhbmdlcyBhcmUgY29uZmluZWQgdG8gZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIHdpcmVsZXNzIGRyaXZlciBmb3IgTWVkaWFUZWsgTVQ3OTk2L01UNzk5Mi9NVDc5OTAgZGV2aWNlcy4gVGhlc2UgUENJZSBkZXZpY2VzIHJlcXVpcmUgc3BlY2lmaWMgcGh5c2ljYWwgaGFyZHdhcmUgYW5kIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChzdWNoIGFzIFFFTVUvR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDIgMDg6NTQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAyVDA4OjUyOjEwLjQwMTk3ODA1NVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNTA4ODg5ODgxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIGNoYW5nZXMgYXJlIGNvbmZpbmVkIHRvIGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2Lywgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSB3aXJlbGVzcyBkcml2ZXIgZm9yIE1lZGlhVGVrIE1UNzk5Ni9NVDc5OTIvTVQ3OTkwIGRldmljZXMuIFRoZXNlIFBDSWUgZGV2aWNlcyByZXF1aXJlIHNwZWNpZmljIHBoeXNpY2FsIGhhcmR3YXJlIGFuZCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoc3VjaCBhcyBRRU1VL0dDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAyVDA4OjUyOjEwLjQwMTk4NzQ1NVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDgyMzE5ODQzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNjg0YjAyZTdkNTYxNzIwNGU5ZDhmMDBkODAyM2ZlNDkwOGNjZDVmM1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgV2VkIFNlcCAyIDA4OjUyOjA5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcXG5pbmRleCAxY2JhMzgxYTc4YjgyLi5mZTdhMzFiMGJjNjg3IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcXG5AQCAtOTMyLDcgKzkzMiw3IEBAIHZvaWQgbXQ3OTk2X21hY193cml0ZV90eHdpKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIF9fbGUzMiAqdHh3aSxcXG4gXFx0fSBlbHNlIGlmIChiZWFjb24pIHtcXG4gXFx0XFx0cF9mbXQgPSBNVF9UWF9UWVBFX0ZXO1xcbiBcXHRcXHRxX2lkeCA9IE1UX0xNQUNfQkNOMDtcXG4tXFx0fSBlbHNlIGlmIChxaWQgXFx1MDAzZT0gTVRfVFhRX1BTRCkge1xcbitcXHR9IGVsc2UgaWYgKHFpZCBcXHUwMDNlPSBNVF9UWFFfUFNEIHx8ICghKHdjaWQtXFx1MDAzZXR4X2luZm8gXFx1MDAyNiBNVF9XQ0lEX1RYX0lORk9fU0VUKSkpIHtcXG4gXFx0XFx0cF9mbXQgPSBNVF9UWF9UWVBFX0NUO1xcbiBcXHRcXHRxX2lkeCA9IE1UX0xNQUNfQUxUWDA7XFxuIFxcdH0gZWxzZSB7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uY1xcbmluZGV4IGUyMTg4NTZiMGM0NTQuLjAwZGRiOWQzMWVkMzIgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jXFxuQEAgLTE0MTUsNiArMTQxNSw3IEBAIG10Nzk5Nl9tYWNfc3RhX2V2ZW50KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuIFxcdFxcdFxcdFxcdGdvdG8gdW5sb2NrO1xcbiBcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0Y2FzZSBNVDc2X1NUQV9FVkVOVF9ESVNBU1NPQzpcXG4rXFx0XFx0XFx0bXN0YV9saW5rLVxcdTAwM2V3Y2lkLnR4X2luZm8gXFx1MDAyNj0gfk1UX1dDSURfVFhfSU5GT19TRVQ7XFxuIFxcdFxcdFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBUlJBWV9TSVpFKG1zdGFfbGluay1cXHUwMDNldHd0LmZsb3cpOyBpKyspXFxuIFxcdFxcdFxcdFxcdG10Nzk5Nl9tYWNfdHd0X3RlYXJkb3duX2Zsb3coZGV2LCBsaW5rLFxcbiBcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgIG1zdGFfbGluaywgaSk7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uY1xcbmluZGV4IGZiZmJiOTZhNzQyZjcuLjRlMzM1ZTYwMTU4MTQgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jXFxuQEAgLTM5MSwyOSArMzkxLDMxIEBAIHZvaWQgbXQ3OTk2X21lbWNweV9mcm9taW8oc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgdm9pZCAqYnVmLCB1MzIgb2Zmc2V0LFxcbiBcXHRcXHRcXHQgIHNpemVfdCBsZW4pXFxuIHtcXG4gXFx0dTMyIGFkZHIgPSBfX210Nzk5Nl9yZWdfYWRkcihkZXYsIG9mZnNldCk7XFxuK1xcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XFxuIFxcbiBcXHRpZiAoYWRkciAhPSBJTlZBTElEX1JFR19BRERSKSB7XFxuIFxcdFxcdG1lbWNweV9mcm9taW8oYnVmLCBkZXYtXFx1MDAzZW10NzYubW1pby5yZWdzICsgYWRkciwgbGVuKTtcXG4gXFx0XFx0cmV0dXJuO1xcbiBcXHR9XFxuIFxcbi1cXHRzcGluX2xvY2tfYmgoXFx1MDAyNmRldi1cXHUwMDNlcmVnX2xvY2spO1xcbitcXHRzcGluX2xvY2tfaXJxc2F2ZShcXHUwMDI2ZGV2LVxcdTAwM2VyZWdfbG9jaywgZmxhZ3MpO1xcbiBcXHRtZW1jcHlfZnJvbWlvKGJ1ZiwgZGV2LVxcdTAwM2VtdDc2Lm1taW8ucmVncyArXFxuIFxcdFxcdFxcdCAgIF9fbXQ3OTk2X3JlZ19yZW1hcF9hZGRyKGRldiwgb2Zmc2V0KSwgbGVuKTtcXG4tXFx0c3Bpbl91bmxvY2tfYmgoXFx1MDAyNmRldi1cXHUwMDNlcmVnX2xvY2spO1xcbitcXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFxcdTAwMjZkZXYtXFx1MDAzZXJlZ19sb2NrLCBmbGFncyk7XFxuIH1cXG4gXFxuIHN0YXRpYyB1MzIgbXQ3OTk2X3JyKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdTMyIG9mZnNldClcXG4ge1xcbiBcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc5OTZfZGV2LCBtdDc2KTtcXG4gXFx0dTMyIGFkZHIgPSBfX210Nzk5Nl9yZWdfYWRkcihkZXYsIG9mZnNldCksIHZhbDtcXG4rXFx0dW5zaWduZWQgbG9uZyBmbGFncztcXG4gXFxuIFxcdGlmIChhZGRyICE9IElOVkFMSURfUkVHX0FERFIpXFxuIFxcdFxcdHJldHVybiBkZXYtXFx1MDAzZWJ1c19vcHMtXFx1MDAzZXJyKG1kZXYsIGFkZHIpO1xcbiBcXG4tXFx0c3Bpbl9sb2NrX2JoKFxcdTAwMjZkZXYtXFx1MDAzZXJlZ19sb2NrKTtcXG4rXFx0c3Bpbl9sb2NrX2lycXNhdmUoXFx1MDAyNmRldi1cXHUwMDNlcmVnX2xvY2ssIGZsYWdzKTtcXG4gXFx0dmFsID0gZGV2LVxcdTAwM2VidXNfb3BzLVxcdTAwM2VycihtZGV2LCBfX210Nzk5Nl9yZWdfcmVtYXBfYWRkcihkZXYsIG9mZnNldCkpO1xcbi1cXHRzcGluX3VubG9ja19iaChcXHUwMDI2ZGV2LVxcdTAwM2VyZWdfbG9jayk7XFxuK1xcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXFx1MDAyNmRldi1cXHUwMDNlcmVnX2xvY2ssIGZsYWdzKTtcXG4gXFxuIFxcdHJldHVybiB2YWw7XFxuIH1cXG5AQCAtNDIyLDI4ICs0MjQsMzAgQEAgc3RhdGljIHZvaWQgbXQ3OTk2X3dyKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdTMyIG9mZnNldCwgdTMyIHZhbClcXG4ge1xcbiBcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc5OTZfZGV2LCBtdDc2KTtcXG4gXFx0dTMyIGFkZHIgPSBfX210Nzk5Nl9yZWdfYWRkcihkZXYsIG9mZnNldCk7XFxuK1xcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XFxuIFxcbiBcXHRpZiAoYWRkciAhPSBJTlZBTElEX1JFR19BRERSKSB7XFxuIFxcdFxcdGRldi1cXHUwMDNlYnVzX29wcy1cXHUwMDNld3IobWRldiwgYWRkciwgdmFsKTtcXG4gXFx0XFx0cmV0dXJuO1xcbiBcXHR9XFxuIFxcbi1cXHRzcGluX2xvY2tfYmgoXFx1MDAyNmRldi1cXHUwMDNlcmVnX2xvY2spO1xcbitcXHRzcGluX2xvY2tfaXJxc2F2ZShcXHUwMDI2ZGV2LVxcdTAwM2VyZWdfbG9jaywgZmxhZ3MpO1xcbiBcXHRkZXYtXFx1MDAzZWJ1c19vcHMtXFx1MDAzZXdyKG1kZXYsIF9fbXQ3OTk2X3JlZ19yZW1hcF9hZGRyKGRldiwgb2Zmc2V0KSwgdmFsKTtcXG4tXFx0c3Bpbl91bmxvY2tfYmgoXFx1MDAyNmRldi1cXHUwMDNlcmVnX2xvY2spO1xcbitcXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFxcdTAwMjZkZXYtXFx1MDAzZXJlZ19sb2NrLCBmbGFncyk7XFxuIH1cXG4gXFxuIHN0YXRpYyB1MzIgbXQ3OTk2X3JtdyhzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHUzMiBvZmZzZXQsIHUzMiBtYXNrLCB1MzIgdmFsKVxcbiB7XFxuIFxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBjb250YWluZXJfb2YobWRldiwgc3RydWN0IG10Nzk5Nl9kZXYsIG10NzYpO1xcbiBcXHR1MzIgYWRkciA9IF9fbXQ3OTk2X3JlZ19hZGRyKGRldiwgb2Zmc2V0KTtcXG4rXFx0dW5zaWduZWQgbG9uZyBmbGFncztcXG4gXFxuIFxcdGlmIChhZGRyICE9IElOVkFMSURfUkVHX0FERFIpXFxuIFxcdFxcdHJldHVybiBkZXYtXFx1MDAzZWJ1c19vcHMtXFx1MDAzZXJtdyhtZGV2LCBhZGRyLCBtYXNrLCB2YWwpO1xcbiBcXG4tXFx0c3Bpbl9sb2NrX2JoKFxcdTAwMjZkZXYtXFx1MDAzZXJlZ19sb2NrKTtcXG4rXFx0c3Bpbl9sb2NrX2lycXNhdmUoXFx1MDAyNmRldi1cXHUwMDNlcmVnX2xvY2ssIGZsYWdzKTtcXG4gXFx0dmFsID0gZGV2LVxcdTAwM2VidXNfb3BzLVxcdTAwM2VybXcobWRldiwgX19tdDc5OTZfcmVnX3JlbWFwX2FkZHIoZGV2LCBvZmZzZXQpLCBtYXNrLCB2YWwpO1xcbi1cXHRzcGluX3VubG9ja19iaChcXHUwMDI2ZGV2LVxcdTAwM2VyZWdfbG9jayk7XFxuK1xcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXFx1MDAyNmRldi1cXHUwMDNlcmVnX2xvY2ssIGZsYWdzKTtcXG4gXFxuIFxcdHJldHVybiB2YWw7XFxuIH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDJUMDg6NTI6MTAuODg1MTAwNTE4WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjoxMTQ2MDU3NjMwMTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIGNoYW5nZXMgYXJlIGNvbmZpbmVkIHRvIGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2Lywgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSB3aXJlbGVzcyBkcml2ZXIgZm9yIE1lZGlhVGVrIE1UNzk5Ni9NVDc5OTIvTVQ3OTkwIGRldmljZXMuIFRoZXNlIFBDSWUgZGV2aWNlcyByZXF1aXJlIHNwZWNpZmljIHBoeXNpY2FsIGhhcmR3YXJlIGFuZCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoc3VjaCBhcyBRRU1VL0dDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDY4NGIwMmU3ZDU2MTcyMDRlOWQ4ZjAwZDgwMjNmZTQ5MDhjY2Q1ZjNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIFNlcCAyIDA4OjUyOjA5IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuY1xuaW5kZXggMWNiYTM4MWE3OGI4Mi4uZmU3YTMxYjBiYzY4NyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuY1xuQEAgLTkzMiw3ICs5MzIsNyBAQCB2b2lkIG10Nzk5Nl9tYWNfd3JpdGVfdHh3aShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBfX2xlMzIgKnR4d2ksXG4gXHR9IGVsc2UgaWYgKGJlYWNvbikge1xuIFx0XHRwX2ZtdCA9IE1UX1RYX1RZUEVfRlc7XG4gXHRcdHFfaWR4ID0gTVRfTE1BQ19CQ04wO1xuLVx0fSBlbHNlIGlmIChxaWQgXHUwMDNlPSBNVF9UWFFfUFNEKSB7XG4rXHR9IGVsc2UgaWYgKHFpZCBcdTAwM2U9IE1UX1RYUV9QU0QgfHwgKCEod2NpZC1cdTAwM2V0eF9pbmZvIFx1MDAyNiBNVF9XQ0lEX1RYX0lORk9fU0VUKSkpIHtcbiBcdFx0cF9mbXQgPSBNVF9UWF9UWVBFX0NUO1xuIFx0XHRxX2lkeCA9IE1UX0xNQUNfQUxUWDA7XG4gXHR9IGVsc2Uge1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uY1xuaW5kZXggZTIxODg1NmIwYzQ1NC4uMDBkZGI5ZDMxZWQzMiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jXG5AQCAtMTQxNSw2ICsxNDE1LDcgQEAgbXQ3OTk2X21hY19zdGFfZXZlbnQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbiBcdFx0XHRcdGdvdG8gdW5sb2NrO1xuIFx0XHRcdGJyZWFrO1xuIFx0XHRjYXNlIE1UNzZfU1RBX0VWRU5UX0RJU0FTU09DOlxuK1x0XHRcdG1zdGFfbGluay1cdTAwM2V3Y2lkLnR4X2luZm8gXHUwMDI2PSB+TVRfV0NJRF9UWF9JTkZPX1NFVDtcbiBcdFx0XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKG1zdGFfbGluay1cdTAwM2V0d3QuZmxvdyk7IGkrKylcbiBcdFx0XHRcdG10Nzk5Nl9tYWNfdHd0X3RlYXJkb3duX2Zsb3coZGV2LCBsaW5rLFxuIFx0XHRcdFx0XHRcdFx0ICAgICBtc3RhX2xpbmssIGkpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uY1xuaW5kZXggZmJmYmI5NmE3NDJmNy4uNGUzMzVlNjAxNTgxNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jXG5AQCAtMzkxLDI5ICszOTEsMzEgQEAgdm9pZCBtdDc5OTZfbWVtY3B5X2Zyb21pbyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCB2b2lkICpidWYsIHUzMiBvZmZzZXQsXG4gXHRcdFx0ICBzaXplX3QgbGVuKVxuIHtcbiBcdHUzMiBhZGRyID0gX19tdDc5OTZfcmVnX2FkZHIoZGV2LCBvZmZzZXQpO1xuK1x0dW5zaWduZWQgbG9uZyBmbGFncztcbiBcbiBcdGlmIChhZGRyICE9IElOVkFMSURfUkVHX0FERFIpIHtcbiBcdFx0bWVtY3B5X2Zyb21pbyhidWYsIGRldi1cdTAwM2VtdDc2Lm1taW8ucmVncyArIGFkZHIsIGxlbik7XG4gXHRcdHJldHVybjtcbiBcdH1cbiBcbi1cdHNwaW5fbG9ja19iaChcdTAwMjZkZXYtXHUwMDNlcmVnX2xvY2spO1xuK1x0c3Bpbl9sb2NrX2lycXNhdmUoXHUwMDI2ZGV2LVx1MDAzZXJlZ19sb2NrLCBmbGFncyk7XG4gXHRtZW1jcHlfZnJvbWlvKGJ1ZiwgZGV2LVx1MDAzZW10NzYubW1pby5yZWdzICtcbiBcdFx0XHQgICBfX210Nzk5Nl9yZWdfcmVtYXBfYWRkcihkZXYsIG9mZnNldCksIGxlbik7XG4tXHRzcGluX3VubG9ja19iaChcdTAwMjZkZXYtXHUwMDNlcmVnX2xvY2spO1xuK1x0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZkZXYtXHUwMDNlcmVnX2xvY2ssIGZsYWdzKTtcbiB9XG4gXG4gc3RhdGljIHUzMiBtdDc5OTZfcnIoc3RydWN0IG10NzZfZGV2ICptZGV2LCB1MzIgb2Zmc2V0KVxuIHtcbiBcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBjb250YWluZXJfb2YobWRldiwgc3RydWN0IG10Nzk5Nl9kZXYsIG10NzYpO1xuIFx0dTMyIGFkZHIgPSBfX210Nzk5Nl9yZWdfYWRkcihkZXYsIG9mZnNldCksIHZhbDtcbitcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XG4gXG4gXHRpZiAoYWRkciAhPSBJTlZBTElEX1JFR19BRERSKVxuIFx0XHRyZXR1cm4gZGV2LVx1MDAzZWJ1c19vcHMtXHUwMDNlcnIobWRldiwgYWRkcik7XG4gXG4tXHRzcGluX2xvY2tfYmgoXHUwMDI2ZGV2LVx1MDAzZXJlZ19sb2NrKTtcbitcdHNwaW5fbG9ja19pcnFzYXZlKFx1MDAyNmRldi1cdTAwM2VyZWdfbG9jaywgZmxhZ3MpO1xuIFx0dmFsID0gZGV2LVx1MDAzZWJ1c19vcHMtXHUwMDNlcnIobWRldiwgX19tdDc5OTZfcmVnX3JlbWFwX2FkZHIoZGV2LCBvZmZzZXQpKTtcbi1cdHNwaW5fdW5sb2NrX2JoKFx1MDAyNmRldi1cdTAwM2VyZWdfbG9jayk7XG4rXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNmRldi1cdTAwM2VyZWdfbG9jaywgZmxhZ3MpO1xuIFxuIFx0cmV0dXJuIHZhbDtcbiB9XG5AQCAtNDIyLDI4ICs0MjQsMzAgQEAgc3RhdGljIHZvaWQgbXQ3OTk2X3dyKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdTMyIG9mZnNldCwgdTMyIHZhbClcbiB7XG4gXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc5OTZfZGV2LCBtdDc2KTtcbiBcdHUzMiBhZGRyID0gX19tdDc5OTZfcmVnX2FkZHIoZGV2LCBvZmZzZXQpO1xuK1x0dW5zaWduZWQgbG9uZyBmbGFncztcbiBcbiBcdGlmIChhZGRyICE9IElOVkFMSURfUkVHX0FERFIpIHtcbiBcdFx0ZGV2LVx1MDAzZWJ1c19vcHMtXHUwMDNld3IobWRldiwgYWRkciwgdmFsKTtcbiBcdFx0cmV0dXJuO1xuIFx0fVxuIFxuLVx0c3Bpbl9sb2NrX2JoKFx1MDAyNmRldi1cdTAwM2VyZWdfbG9jayk7XG4rXHRzcGluX2xvY2tfaXJxc2F2ZShcdTAwMjZkZXYtXHUwMDNlcmVnX2xvY2ssIGZsYWdzKTtcbiBcdGRldi1cdTAwM2VidXNfb3BzLVx1MDAzZXdyKG1kZXYsIF9fbXQ3OTk2X3JlZ19yZW1hcF9hZGRyKGRldiwgb2Zmc2V0KSwgdmFsKTtcbi1cdHNwaW5fdW5sb2NrX2JoKFx1MDAyNmRldi1cdTAwM2VyZWdfbG9jayk7XG4rXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNmRldi1cdTAwM2VyZWdfbG9jaywgZmxhZ3MpO1xuIH1cbiBcbiBzdGF0aWMgdTMyIG10Nzk5Nl9ybXcoc3RydWN0IG10NzZfZGV2ICptZGV2LCB1MzIgb2Zmc2V0LCB1MzIgbWFzaywgdTMyIHZhbClcbiB7XG4gXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc5OTZfZGV2LCBtdDc2KTtcbiBcdHUzMiBhZGRyID0gX19tdDc5OTZfcmVnX2FkZHIoZGV2LCBvZmZzZXQpO1xuK1x0dW5zaWduZWQgbG9uZyBmbGFncztcbiBcbiBcdGlmIChhZGRyICE9IElOVkFMSURfUkVHX0FERFIpXG4gXHRcdHJldHVybiBkZXYtXHUwMDNlYnVzX29wcy1cdTAwM2VybXcobWRldiwgYWRkciwgbWFzaywgdmFsKTtcbiBcbi1cdHNwaW5fbG9ja19iaChcdTAwMjZkZXYtXHUwMDNlcmVnX2xvY2spO1xuK1x0c3Bpbl9sb2NrX2lycXNhdmUoXHUwMDI2ZGV2LVx1MDAzZXJlZ19sb2NrLCBmbGFncyk7XG4gXHR2YWwgPSBkZXYtXHUwMDNlYnVzX29wcy1cdTAwM2VybXcobWRldiwgX19tdDc5OTZfcmVnX3JlbWFwX2FkZHIoZGV2LCBvZmZzZXQpLCBtYXNrLCB2YWwpO1xuLVx0c3Bpbl91bmxvY2tfYmgoXHUwMDI2ZGV2LVx1MDAzZXJlZ19sb2NrKTtcbitcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2ZGV2LVx1MDAzZXJlZ19sb2NrLCBmbGFncyk7XG4gXG4gXHRyZXR1cm4gdmFsO1xuIH1cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAyVDA4OjUyOjEwLjg4NTEwMjMxOFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjIzNDMzODAyMjgxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEluaXRpYWwgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gqKlxuXG5Pa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcyBwYXRjaCBhbmQgZmlndXJlIG91dCBpdHMgcG90ZW50aWFsIGZ1enppbmcgdmFsdWUuIE15IGZpcnN0IHRob3VnaHQgaXMgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgaW50cm9kdWNlcyBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRoYXQgYXJlIHJpcGUgZm9yIGZ1enppbmcuIFRoZSBmYWN0IHRoYXQgaXQncyB0b3VjaGluZyB3aXJlbGVzcyBuZXR3b3JrIGRyaXZlcnMsIHNwZWNpZmljYWxseSB0aGUgYG10Nzk5NmAgZmFtaWx5LCBpbW1lZGlhdGVseSBwaXF1ZXMgbXkgaW50ZXJlc3QuIEkgbmVlZCB0byBxdWlja2x5IGVzdGFibGlzaCBpZiB0aGlzIGNvZGUgaXMgcmVsZXZhbnQgdG8gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUsIG9yIGlmIGl0J3MgcHJpbWFyaWx5IHRpZWQgdG8gaGFyZHdhcmUgaW50ZXJhY3Rpb25zIHRoYXQgd291bGQgYmUgZGlmZmljdWx0IG9yIGltcG9zc2libGUgdG8gcmVhY2ggd2l0aG91dCBzcGVjaWZpYyBoYXJkd2FyZS5cblxuVG8gZG8gdGhpcywgSSdsbCBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIE1UNzk5NiBjaGlwc2V0IGEgYml0IGJldHRlci4gV2hhdCBidXMgZG9lcyBpdCB1dGlsaXplPyBJcyBpdCBQQ0llLCBVU0IsIHNvbWV0aGluZyBlbHNlPyBJJ2xsIHByb2JhYmx5IGZpcmUgdXAgYGdyZXBwZXJgIChvciB1c2UgbXkgcHJlZmVycmVkIGNvZGUgc2VhcmNoIHRvb2wgaWYgaXQncyBub3QgYXZhaWxhYmxlKSBhbmQgc2VhcmNoIHRoZSBjb2RlYmFzZSBmb3IgcmVmZXJlbmNlcyB0byBNVDc5OTYsIHBheWluZyBjbG9zZSBhdHRlbnRpb24gdG8gYW55IG1lbnRpb25zIG9mIGJ1cy1yZWxhdGVkIGNvbmZpZ3VyYXRpb25zLiBBbHRlcm5hdGl2ZWx5LCBJIHNob3VsZCBiZSBhYmxlIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGVzIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2AgZGlyZWN0b3J5IHRvIGdldCBhIHNlbnNlIG9mIHRoZSBoYXJkd2FyZSBkZXBlbmRlbmNpZXMuIEtub3dpbmcgdGhlIGJ1cyB0eXBlIHdpbGwgYmUgY3J1Y2lhbCBpbiBkZWNpZGluZyBpZiBJIGNhbiBlZmZlY3RpdmVseSBmdXp6IHRoaXMgd2l0aGluIGEgc3RhbmRhcmQgUUVNVSBzZXR1cC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzY2NCwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAyVDA4OjUyOjM0LjMxODkwODAyOVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzA4MTE2MzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiQ09ORklHX01UNzk5NlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU9NTA9b2JqLSQoQ09ORklHX01UNzkyMV9DT01NT04pICs9IG10NzkyMS9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjUxOm9iai0kKENPTkZJR19NVDc5OTZFKSArPSBtdDc5OTYvXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZS01Mi1vYmotJChDT05GSUdfTVQ3OTI1X0NPTU1PTikgKz0gbXQ3OTI1L1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTozOm9iai0kKENPTkZJR19NVDc5OTZFKSArPSBtdDc5OTZlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS00LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlPTU9bXQ3OTk2ZS15IDo9IHBjaS5vIGluaXQubyBkbWEubyBlZXByb20ubyBtYWluLm8gbWN1Lm8gbWFjLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTo4Om10Nzk5NmUtJChDT05GSUdfTVQ3OTk2X05QVSkgKz0gbnB1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS05LW10Nzk5NmUtJChDT05GSUdfREVWX0NPUkVEVU1QKSArPSBjb3JlZHVtcC5vXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM9MjM5OT1tdDc5OTZfbmV0X2ZpbGxfZm9yd2FyZF9wYXRoKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jLTI0NTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jOjI0NTc6I2lmIGRlZmluZWQoQ09ORklHX05FVF9NRURJQVRFS19TT0NfV0VEKSB8fCBkZWZpbmVkKENPTkZJR19NVDc5OTZfTlBVKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYy0yNDU4LXN0YXRpYyBpbnRcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYz0yNTQ2PWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10Nzk5Nl9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmMtMjYwMC1cXHQubmV0X2ZpbGxfZm9yd2FyZF9wYXRoID0gbXQ3OTk2X25ldF9maWxsX2ZvcndhcmRfcGF0aCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM6MjYwMTojaWYgZGVmaW5lZChDT05GSUdfTkVUX01FRElBVEVLX1NPQ19XRUQpIHx8IGRlZmluZWQoQ09ORklHX01UNzk5Nl9OUFUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jLTI2MDItXFx0Lm5ldF9zZXR1cF90YyA9IG10Nzk5Nl9uZXRfc2V0dXBfdGMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaD05NTA9dm9pZCBtdDc5OTZfZG1hX3Jyb19zdGFydChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaC05NTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg6OTUyOiNpZmRlZiBDT05GSUdfTVQ3OTk2X05QVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oLTk1My1pbnQgX19tdDc5OTZfbnB1X2h3X2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaD05NzM9c3RhdGljIGlubGluZSBpbnQgbXQ3OTk2X25wdV9yeF9xdWV1ZXNfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtOTc2LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo5Nzc6I2VuZGlmIC8qIENPTkZJR19NVDc5OTZfTlBVICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtOTc4LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wMlQwODo1MjozNC41ODk3MjQ5NzlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyMDg1NDk4NzcyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0czpcblxuKipBbmFseXppbmcgdGhlIE1lZGlhdGVrIFdpcmVsZXNzIERyaXZlciBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSBuZWVkIHRvIGRpdmUgaW50byB0aGUgTWVkaWF0ZWsgd2lyZWxlc3MgZHJpdmVyIHNpdHVhdGlvbi4gTXkgaW1tZWRpYXRlIGluc3RpbmN0IGlzIHRvIGxvb2sgYXQgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSwgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZ2AuIFRoYXQncyB3aGVyZSBhbGwgdGhlIGJ1aWxkIG9wdGlvbnMgYW5kIGRlcGVuZGVuY2llcyBmb3IgdGhhdCBzcGVjaWZpYyBkcml2ZXIgc2hvdWxkIGJlIGRlZmluZWQuIEZyb20gdGhlIEtjb25maWcsIEkgY2FuIGRldGVybWluZSB3aGljaCBmZWF0dXJlcyBhcmUgZW5hYmxlZCBieSBkZWZhdWx0LCB3aGF0IG1vZHVsZXMgYXJlIGF2YWlsYWJsZSwgaG93IHRvIGVuYWJsZS9kaXNhYmxlIHNwZWNpZmljIGhhcmR3YXJlIHN1cHBvcnQsIGFuZCB3aGF0IG90aGVyIGtlcm5lbCBjb21wb25lbnRzIGl0IG1pZ2h0IGRlcGVuZCBvbi4gVGhpcyB3aWxsIGdpdmUgbWUgYSBzb2xpZCBiYXNlIHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoaXMgZHJpdmVyIGlzIHN0cnVjdHVyZWQgYW5kIGhvdyB0byBjb250cm9sIGl0IGR1cmluZyB0aGUgYnVpbGQgcHJvY2Vzcy4gSXQncyB0aGUgbG9naWNhbCBzdGFydGluZyBwb2ludCBmb3IgdW5kZXJzdGFuZGluZyBob3cgdGhpcyBkcml2ZXIgaW50ZWdyYXRlcyBpbnRvIHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbi4gS25vd2luZyBob3cgaXQncyBjb25maWd1cmVkIGlzIGtleSB0byBtYWtpbmcgYW55IHByb2dyZXNzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MzA3LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDJUMDg6NTI6MzYuNjc1MjI1NjIxWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5ODE1OTY3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk1UNzk5NlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTU4MiBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZT01MD1vYmotJChDT05GSUdfTVQ3OTIxX0NPTU1PTikgKz0gbXQ3OTIxL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU6NTE6b2JqLSQoQ09ORklHX01UNzk5NkUpICs9IG10Nzk5Ni9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlLTUyLW9iai0kKENPTkZJR19NVDc5MjVfQ09NTU9OKSArPSBtdDc5MjUvXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZzoyOmNvbmZpZyBNVDc5OTZFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZzozOlxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5OTYgKFBDSWUpIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy00LVxcdHNlbGVjdCBNVDc2X0NPTk5BQ19MSUJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctOS1cXHRoZWxwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZzoxMDpcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5OTYtYmFzZWQgUENJZSB3aXJlbGVzcyBkZXZpY2VzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctMTEtXFx0ICB3aGljaCBzdXBwb3J0IGNvbmN1cnJlbnQgdHJpLWJhbmQgb3BlcmF0aW9uIGF0IDZHSHosIDVHSHosXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTE1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6MTY6Y29uZmlnIE1UNzk5Nl9OUFVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjE3OlxcdGJvb2wgXFxcIk1UNzk5NiAoUENJZSkgTlBVIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZzoxODpcXHRkZXBlbmRzIG9uIE1UNzk5NkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTE5LVxcdGRlcGVuZHMgb24gTkVUX0FJUk9IQV9OUFU9eSB8fCBNVDc2X0NPUkU9TkVUX0FJUk9IQV9OUFVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfTVQ3OTk2RSkgKz0gbXQ3OTk2ZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZT01PW10Nzk5NmUteSA6PSBwY2kubyBpbml0Lm8gZG1hLm8gZWVwcm9tLm8gbWFpbi5vIG1jdS5vIG1hYy5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6ODptdDc5OTZlLSQoQ09ORklHX01UNzk5Nl9OUFUpICs9IG5wdS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtOS1tdDc5OTZlLSQoQ09ORklHX0RFVl9DT1JFRFVNUCkgKz0gY29yZWR1bXAub1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYz00OD1tdDc5OTZfY29yZWR1bXBfZ2V0X21lbV9sYXlvdXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgdTMyICpudW0pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTUwLVxcdHN3aXRjaCAobXQ3Nl9jaGlwKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo1MTpcXHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSUQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo1MjpcXHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSURfMjpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTUzLVxcdFxcdCpudW0gPSBBUlJBWV9TSVpFKG10Nzk5Nl9tZW1fcmVnaW9ucyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz00Nj1zdGF0aWMgdm9pZCBtdDc5OTZfZG1hX2NvbmZpZyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTktXFx0LyogcnggcXVldWUgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2MDpcXHRSWFFfQ09ORklHKE1UX1JYUV9NQ1UsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfV00sIE1UNzk5Nl9SWFFfTUNVX1dNKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02MS1cXHQvKiBmb3IgbXQ3OTkwLCBSWCByaW5nIDEgaXMgZm9yIFNETyBpbnN0ZWFkICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjI6XFx0UlhRX0NPTkZJRyhNVF9SWFFfTUNVX1dBLCBXRkRNQTAsIE1UX0lOVF9SWF9ET05FX1dBLCBNVDc5OTZfUlhRX01DVV9XQSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjM6XFx0UlhRX0NPTkZJRyhNVF9SWFFfTUFJTiwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9CQU5EMCwgTVQ3OTk2X1JYUV9CQU5EMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjQtXFx0aWYgKG10Nzk5Nl9oYXNfd2EoZGV2KSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02NS1cXHRcXHRSWFFfQ09ORklHKE1UX1JYUV9NQUlOX1dBLCBXRkRNQTAsIE1UX0lOVF9SWF9ET05FX1dBX01BSU4sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjY6XFx0XFx0XFx0ICAgTVQ3OTk2X1JYUV9NQ1VfV0FfTUFJTik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02OS1cXHRjYXNlIE1UNzk5Ml9ERVZJQ0VfSUQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzA6XFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfQkFORDFfV0EsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfV0FfRVhULCBNVDc5OTZfUlhRX01DVV9XQV9FWFQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjcxOlxcdFxcdFJYUV9DT05GSUcoTVRfUlhRX0JBTkQxLCBXRkRNQTAsIE1UX0lOVF9SWF9ET05FX0JBTkQxLCBNVDc5OTZfUlhRX0JBTkQxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03Mi1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03My1cXHRjYXNlIE1UNzk5MF9ERVZJQ0VfSUQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzQ6XFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfQkFORDEsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfQkFORDEsIE1UNzk5Nl9SWFFfQkFORDEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc1LVxcdFxcdFJYUV9DT05GSUcoTVRfUlhRX1RYRlJFRV9CQU5EMCwgV0ZETUEwLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODAtXFx0XFx0YnJlYWs7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODE6XFx0Y2FzZSBNVDc5OTZfREVWSUNFX0lEOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgyLVxcdGRlZmF1bHQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODMtXFx0XFx0LyogbXQ3OTk2IGJhbmQyICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODQ6XFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfQkFORDJfV0EsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfV0FfVFJJLCBNVDc5OTZfUlhRX01DVV9XQV9UUkkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg1OlxcdFxcdFJYUV9DT05GSUcoTVRfUlhRX0JBTkQyLCBXRkRNQTAsIE1UX0lOVF9SWF9ET05FX0JBTkQyLCBNVDc5OTZfUlhRX0JBTkQyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04Ni1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkxLVxcdFxcdFJYUV9DT05GSUcoTVRfUlhRX1JST19CQU5EMCwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9SUk9fQkFORDAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTI6XFx0XFx0XFx0ICAgTVQ3OTk2X1JYUV9SUk9fQkFORDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkzLVxcdFxcdGlmIChkZXYtXFx1MDAzZW10NzYuaHdycm9fbW9kZSA9PSBNVDc2X0hXUlJPX1YzKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTUtXFx0XFx0XFx0XFx0ICAgTVRfSU5UX1JYX0RPTkVfTVNEVV9QR19CQU5EMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo5NjpcXHRcXHRcXHRcXHQgICBNVDc5OTZfUlhRX01TRFVfUEdfQkFORDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTk3LVxcdFxcdGlmIChpc19tdDc5OTYoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05OC1cXHRcXHRcXHRSWFFfQ09ORklHKE1UX1JYUV9UWEZSRUVfQkFORDAsIFdGRE1BMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo5OTpcXHRcXHRcXHRcXHQgICBNVF9JTlRfUlhfVFhGUkVFX01BSU4sIE1UNzk5Nl9SWFFfVFhGUkVFMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTAwLVxcdFxcdFxcdC8qIGJhbmQxICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDItXFx0XFx0XFx0XFx0ICAgTVRfSU5UX1JYX0RPTkVfTVNEVV9QR19CQU5EMSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMDM6XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1JYUV9NU0RVX1BHX0JBTkQxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDQtXFx0XFx0XFx0LyogYmFuZDIgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwNi1cXHRcXHRcXHRcXHQgICBNVF9JTlRfUlhfRE9ORV9SUk9fQkFORDIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTA3OlxcdFxcdFxcdFxcdCAgIE1UNzk5Nl9SWFFfUlJPX0JBTkQyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDgtXFx0XFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfTVNEVV9QQUdFX0JBTkQyLCBXRkRNQTAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTA5LVxcdFxcdFxcdFxcdCAgIE1UX0lOVF9SWF9ET05FX01TRFVfUEdfQkFORDIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTEwOlxcdFxcdFxcdFxcdCAgIE1UNzk5Nl9SWFFfTVNEVV9QR19CQU5EMik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTExLVxcdFxcdFxcdFJYUV9DT05GSUcoTVRfUlhRX1RYRlJFRV9CQU5EMiwgV0ZETUEwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjExMjpcXHRcXHRcXHRcXHQgICBNVF9JTlRfUlhfVFhGUkVFX1RSSSwgTVQ3OTk2X1JYUV9UWEZSRUUyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMTMtXFx0XFx0fSBlbHNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTExNS1cXHRcXHRcXHRcXHQgICBNVF9JTlRfUlhfRE9ORV9SUk9fQkFORDEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTE2OlxcdFxcdFxcdFxcdCAgIE1UNzk5Nl9SWFFfUlJPX0JBTkQxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMTctXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTIxLVxcdFxcdFxcdFxcdCAgIE1UX0lOVF9SWF9ET05FX1JST19JTkQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTIyOlxcdFxcdFxcdFxcdCAgIE1UNzk5Nl9SWFFfUlJPX0lORCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTIzLVxcdFxcdGVsc2VcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEyNS1cXHRcXHRcXHRcXHQgICBNVF9JTlRfUlhfRE9ORV9SUk9fUlhETUFEX0MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTI2OlxcdFxcdFxcdFxcdCAgIE1UNzk5Nl9SWFFfUlJPX1JYRE1BRF9DKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMjctXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTMzLVxcdFxcdFxcdFxcdFRYUV9DT05GSUcoMCwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMzQ6XFx0XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1RYUV9CQU5EMik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTM1LVxcdFxcdFxcdFxcdFRYUV9DT05GSUcoMSwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMzY6XFx0XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1RYUV9CQU5EMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTM3LVxcdFxcdFxcdFxcdFRYUV9DT05GSUcoMiwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMzg6XFx0XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1RYUV9CQU5EMSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTM5LVxcdFxcdFxcdH0gZWxzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNDEtXFx0XFx0XFx0XFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE0MjpcXHRcXHRcXHRcXHRcXHQgICBNVDc5OTZfVFhRX0JBTkQwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNDMtXFx0XFx0XFx0XFx0VFhRX0NPTkZJRygxLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE0NDpcXHRcXHRcXHRcXHRcXHQgICBNVDc5OTZfVFhRX0JBTkQxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNDUtXFx0XFx0XFx0XFx0VFhRX0NPTkZJRygyLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE0NjpcXHRcXHRcXHRcXHRcXHQgICBNVDc5OTZfVFhRX0JBTkQyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNDctXFx0XFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTUwLVxcdFxcdFxcdFRYUV9DT05GSUcoMCwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxNTE6XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1RYUV9CQU5EMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTUyLVxcdFxcdFxcdFRYUV9DT05GSUcoMiwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxNTM6XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1RYUV9CQU5EMSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTU0LVxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTE1OC1cXHRcXHRcXHRUWFFfQ09ORklHKDAsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfQkFORDAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTU5OlxcdFxcdFxcdFxcdCAgIE1UNzk5Nl9UWFFfQkFORDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTE2MC1cXHRcXHRcXHRUWFFfQ09ORklHKDEsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfQkFORDIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTYxOlxcdFxcdFxcdFxcdCAgIE1UNzk5Nl9UWFFfQkFORDIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTE2Mi1cXHRcXHR9IGVsc2Uge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTY0LVxcdFxcdFxcdFRYUV9DT05GSUcoMCwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxNjU6XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1RYUV9CQU5EMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTY2LVxcdFxcdFxcdFRYUV9DT05GSUcoMSwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxNjc6XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1RYUV9CQU5EMSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTY4LVxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTE3MS1cXHQvKiBtY3UgdHggcXVldWUgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxNzI6XFx0TUNVUV9DT05GSUcoTVRfTUNVUV9GV0RMLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0ZXREwsIE1UNzk5Nl9UWFFfRldETCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTczOlxcdE1DVVFfQ09ORklHKE1UX01DVVFfV00sIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfTUNVX1dNLCBNVDc5OTZfVFhRX01DVV9XTSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTc0LVxcdGlmIChtdDc5OTZfaGFzX3dhKGRldikpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTc1LVxcdFxcdE1DVVFfQ09ORklHKE1UX01DVVFfV0EsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfTUNVX1dBLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE3NjpcXHRcXHRcXHQgICAgTVQ3OTk2X1RYUV9NQ1VfV0EpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTE3Ny19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz01MjE9aW50IG10Nzk5Nl9kbWFfcnJvX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTUzNS1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9SUk9fUlhETUFEX0MpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjUzNjpcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1Mzc6XFx0XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9CVUZfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01MzgtXFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9SUk9fQVBfUklOR19CQVNFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU2MS1cXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9SUk9fSU5EKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1NjI6XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTYzLVxcdFxcdFxcdCAgICAgICAwLCBNVF9SWFFfUlJPX0lORF9SSU5HX0JBU0UpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTc0LVxcdHNpemUgPSBpc19tdDc5OTYobWRldikgXFx1MDAyNlxcdTAwMjYgbXQ3Nl9ucHVfZGV2aWNlX2FjdGl2ZShtZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjU3NTpcXHQgICAgICAgPyBNVDc5OTZfTlBVX1JYX1JJTkdfU0laRSAvIDQgOiBNVDc5OTZfUlhfUklOR19TSVpFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU3Ni1cXHRyZXQgPSBtdDc2X3F1ZXVlX2FsbG9jKGRldiwgXFx1MDAyNm1kZXYtXFx1MDAzZXFfcnhbTVRfUlhRX01TRFVfUEFHRV9CQU5EMF0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTc3LVxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX01TRFVfUEFHRV9CQU5EMCksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTc4OlxcdFxcdFxcdCAgICAgICBzaXplLCBNVDc5OTZfUlhfTVNEVV9QQUdFX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTc5LVxcdFxcdFxcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9NU0RVX1BBR0VfQkFORDApKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU5MS1cXHRcXHRzaXplID0gaXNfbXQ3OTk2KG1kZXYpIFxcdTAwMjZcXHUwMDI2IG10NzZfbnB1X2RldmljZV9hY3RpdmUobWRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1OTI6XFx0XFx0ICAgICAgID8gTVQ3OTk2X05QVV9SWF9SSU5HX1NJWkUgLyAyIDogTVQ3OTk2X1JYX1JJTkdfU0laRTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01OTMtXFx0XFx0cmV0ID0gbXQ3Nl9xdWV1ZV9hbGxvYyhkZXYsIFxcdTAwMjZtZGV2LVxcdTAwM2VxX3J4W01UX1JYUV9NU0RVX1BBR0VfQkFORDFdLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU5NC1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9NU0RVX1BBR0VfQkFORDEpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjU5NTpcXHRcXHRcXHRcXHQgICAgICAgc2l6ZSwgTVQ3OTk2X1JYX01TRFVfUEFHRV9TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU5Ni1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfTVNEVV9QQUdFX0JBTkQxKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02MDktXFx0XFx0c2l6ZSA9IGlzX210Nzk5NihtZGV2KSBcXHUwMDI2XFx1MDAyNiBtdDc2X25wdV9kZXZpY2VfYWN0aXZlKG1kZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjEwOlxcdFxcdCAgICAgICA/IE1UNzk5Nl9OUFVfUlhfUklOR19TSVpFIDogTVQ3OTk2X1JYX1JJTkdfU0laRTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02MTEtXFx0XFx0cmV0ID0gbXQ3Nl9xdWV1ZV9hbGxvYyhkZXYsIFxcdTAwMjZtZGV2LVxcdTAwM2VxX3J4W01UX1JYUV9NU0RVX1BBR0VfQkFORDJdLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYxMi1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9NU0RVX1BBR0VfQkFORDIpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjYxMzpcXHRcXHRcXHRcXHQgICAgICAgc2l6ZSwgTVQ3OTk2X1JYX01TRFVfUEFHRV9TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYxNC1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfTVNEVV9QQUdFX0JBTkQyKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz02NjQ9aW50IG10Nzk5Nl9kbWFfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjgzLVxcdFxcdHJldCA9IG10Nzk5Nl9pbml0X3R4X3F1ZXVlcyhcXHUwMDI2ZGV2LVxcdTAwM2VwaHksIE1UX1RYUV9JRCgwKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2ODQ6XFx0XFx0XFx0XFx0XFx0ICAgIE1UNzk5Nl9OUFVfVFhfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY4NS1cXHRcXHRcXHRcXHRcXHQgICAgTVRfVFhRX1JJTkdfQkFTRSgwKSArIGhpZjFfb2ZzLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjg5LVxcdFxcdFxcdFxcdFxcdCAgICBNVF9UWFFfSUQoZGV2LVxcdTAwM2VtcGh5LmJhbmRfaWR4KSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2OTA6XFx0XFx0XFx0XFx0XFx0ICAgIE1UNzk5Nl9UWF9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjkxLVxcdFxcdFxcdFxcdFxcdCAgICBNVF9UWFFfUklOR19CQVNFKDApLCB3ZWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjk3LVxcdFxcdFxcdFxcdCAgTVRfTUNVUV9JRChNVF9NQ1VRX1dNKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2OTg6XFx0XFx0XFx0XFx0ICBNVDc5OTZfVFhfTUNVX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02OTktXFx0XFx0XFx0XFx0ICBNVF9NQ1VRX1JJTkdfQkFTRShNVF9NQ1VRX1dNKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03MDYtXFx0XFx0XFx0XFx0XFx0ICBNVF9NQ1VRX0lEKE1UX01DVVFfV0EpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjcwNzpcXHRcXHRcXHRcXHRcXHQgIE1UNzk5Nl9UWF9NQ1VfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTcwOC1cXHRcXHRcXHRcXHRcXHQgIE1UX01DVVFfUklOR19CQVNFKE1UX01DVVFfV0EpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTcxNS1cXHRcXHRcXHRcXHQgIE1UX01DVVFfSUQoTVRfTUNVUV9GV0RMKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3MTY6XFx0XFx0XFx0XFx0ICBNVDc5OTZfVFhfRldETF9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzE3LVxcdFxcdFxcdFxcdCAgTVRfTUNVUV9SSU5HX0JBU0UoTVRfTUNVUV9GV0RMKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03MjMtXFx0XFx0XFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfTUNVKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3MjQ6XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjcyNTpcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX01DVV9CVUZfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03MjYtXFx0XFx0XFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX01DVSkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzMyLVxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX01DVV9XQSksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzMzOlxcdFxcdFxcdCAgICAgICBNVDc5OTZfUlhfTUNVX1JJTkdfU0laRV9XQSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3MzQ6XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfQlVGX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzM1LVxcdFxcdFxcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9NQ1VfV0EpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc0Ni1cXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9NQUlOKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3NDc6XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzQ4LVxcdFxcdFxcdCAgICAgICBNVF9SWF9CVUZfU0laRSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc2Ni1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9NQUlOX1dBKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3Njc6XFx0XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc2OC1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03NzgtXFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfVFhGUkVFX0JBTkQwKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3Nzk6XFx0XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjc4MDpcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX0JVRl9TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc4MS1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfVFhGUkVFX0JBTkQwKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03OTItXFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfVFhGUkVFX0JBTkQxKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3OTM6XFx0XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjc5NDpcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX0JVRl9TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc5NS1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfVFhGUkVFX0JBTkQxKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MDQtXFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfQkFORDIpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjgwNTpcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MDYtXFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYX0JVRl9TSVpFLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODIwLVxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX0JBTkQyX1dBKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4MjE6XFx0XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgyMi1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MzUtXFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfQkFORDEpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjgzNjpcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MzctXFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYX0JVRl9TSVpFLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODUyLVxcdFxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX0JBTkQxX1dBKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4NTM6XFx0XFx0XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg1NC1cXHRcXHRcXHRcXHRcXHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04NjgtXFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfUlJPX0JBTkQwKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4Njk6XFx0XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODcwOlxcdFxcdFxcdFxcdCAgICAgICBNVDc5OTZfUlhfQlVGX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODcxLVxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9SUk9fQkFORDApKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg4My1cXHRcXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9SUk9fQkFORDEpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg4NDpcXHRcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4ODU6XFx0XFx0XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9CVUZfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04ODYtXFx0XFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX1JST19CQU5EMSkgKyBoaWYxX29mcyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05MDAtXFx0XFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfVFhGUkVFX0JBTkQwKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo5MDE6XFx0XFx0XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjkwMjpcXHRcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX0JVRl9TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkwMy1cXHRcXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfVFhGUkVFX0JBTkQwKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05MTktXFx0XFx0XFx0ICAgICAgIG10NzZfbnB1X2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo5MjA6XFx0XFx0XFx0ICAgICAgID8gTVQ3OTk2X05QVV9SWF9SSU5HX1NJWkUgOiBNVDc5OTZfUlhfUklOR19TSVpFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkyMS1cXHRcXHRcXHRyZXQgPSBtdDc2X3F1ZXVlX2FsbG9jKGRldiwgXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5xX3J4W01UX1JYUV9SUk9fQkFORDJdLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkyMi1cXHRcXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9SUk9fQkFORDIpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjkyMzpcXHRcXHRcXHRcXHRcXHQgICAgICAgc2l6ZSwgTVQ3OTk2X1JYX0JVRl9TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkyNC1cXHRcXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfUlJPX0JBTkQyKSArIGhpZjFfb2ZzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkzNC1cXHRcXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9UWEZSRUVfQkFORDIpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjkzNTpcXHRcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX01DVV9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTM2OlxcdFxcdFxcdFxcdFxcdCAgICAgICBNVDc5OTZfUlhfQlVGX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTM3LVxcdFxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9UWEZSRUVfQkFORDIpICsgaGlmMV9vZnMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM9MTA9c3RhdGljIGludCBtdDc5OTZfY2hlY2tfZWVwcm9tKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xNS1cXHRzd2l0Y2ggKHZhbCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjE2OlxcdGNhc2UgTVQ3OTk2X0RFVklDRV9JRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xNy1cXHRcXHRyZXR1cm4gaXNfbXQ3OTk2KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpID8gMCA6IC1FSU5WQUw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYz0yNz1zdGF0aWMgY2hhciAqbXQ3OTk2X2VlcHJvbV9uYW1lKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0zMi1cXHRcXHRjYXNlIE1UNzk5Ml9WQVJfVFlQRV8yMzpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzozMzpcXHRcXHRcXHRpZiAoZGV2LVxcdTAwM2V2YXIuZmVtID09IE1UNzk5Nl9GRU1fSU5UKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTM0LVxcdFxcdFxcdFxcdHJldHVybiBNVDc5OTJfRUVQUk9NX0RFRkFVTFRfMjNfSU5UO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMzktXFx0XFx0ZGVmYXVsdDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo0MDpcXHRcXHRcXHRpZiAoZGV2LVxcdTAwM2V2YXIuZmVtID09IE1UNzk5Nl9GRU1fSU5UKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTQxLVxcdFxcdFxcdFxcdHJldHVybiBNVDc5OTJfRUVQUk9NX0RFRkFVTFRfSU5UO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjQyOlxcdFxcdFxcdGlmIChkZXYtXFx1MDAzZXZhci5mZW0gPT0gTVQ3OTk2X0ZFTV9NSVgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtNDMtXFx0XFx0XFx0XFx0cmV0dXJuIE1UNzk5Ml9FRVBST01fREVGQVVMVF9NSVg7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy00Ni1cXHRjYXNlIE1UNzk5MF9ERVZJQ0VfSUQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NDc6XFx0XFx0aWYgKGRldi1cXHUwMDNldmFyLmZlbSA9PSBNVDc5OTZfRkVNX0lOVClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy00OC1cXHRcXHRcXHRyZXR1cm4gTVQ3OTkwX0VFUFJPTV9ERUZBVUxUX0lOVDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy00OS1cXHRcXHRyZXR1cm4gTVQ3OTkwX0VFUFJPTV9ERUZBVUxUO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjUwOlxcdGNhc2UgTVQ3OTk2X0RFVklDRV9JRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy01MS1cXHRkZWZhdWx0OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTUyLVxcdFxcdHN3aXRjaCAoZGV2LVxcdTAwM2V2YXIudHlwZSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjUzOlxcdFxcdGNhc2UgTVQ3OTk2X1ZBUl9UWVBFXzIzMzpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo1NDpcXHRcXHRcXHRpZiAoZGV2LVxcdTAwM2V2YXIuZmVtID09IE1UNzk5Nl9GRU1fSU5UKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjU1OlxcdFxcdFxcdFxcdHJldHVybiBNVDc5OTZfRUVQUk9NX0RFRkFVTFRfMjMzX0lOVDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo1NjpcXHRcXHRcXHRyZXR1cm4gTVQ3OTk2X0VFUFJPTV9ERUZBVUxUXzIzMztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo1NzpcXHRcXHRjYXNlIE1UNzk5Nl9WQVJfVFlQRV80NDQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtNTgtXFx0XFx0ZGVmYXVsdDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo1OTpcXHRcXHRcXHRpZiAoZGV2LVxcdTAwM2V2YXIuZmVtID09IE1UNzk5Nl9GRU1fSU5UKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjYwOlxcdFxcdFxcdFxcdHJldHVybiBNVDc5OTZfRUVQUk9NX0RFRkFVTFRfSU5UO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjYxOlxcdFxcdFxcdHJldHVybiBNVDc5OTZfRUVQUk9NX0RFRkFVTFQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtNjItXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM9OTg9c3RhdGljIGJvb2wgbXQ3OTk2X2VlcHJvbV92YXJpYW50X3ZhbGlkKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGNvbnN0IHU4ICpkZWYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xMDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTA5OlxcdGlmIChkZXYtXFx1MDAzZXZhci5mZW0gPT0gTVQ3OTk2X0ZFTV9FWFQgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xMTAtXFx0ICAgICEoZmVtWzBdID09IEZFTV9FWFQgXFx1MDAyNlxcdTAwMjYgZmVtWzFdID09IEZFTV9FWFQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTExMS1cXHRcXHRyZXR1cm4gZmFsc2U7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTEyOlxcdGVsc2UgaWYgKGRldi1cXHUwMDNldmFyLmZlbSA9PSBNVDc5OTZfRkVNX0lOVCBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTExMy1cXHRcXHQgIShmZW1bMF0gPT0gRkVNX0lOVCBcXHUwMDI2XFx1MDAyNiBmZW1bMV0gPT0gRkVNX0lOVCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTE0LVxcdFxcdHJldHVybiBmYWxzZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzoxMTU6XFx0ZWxzZSBpZiAoZGV2LVxcdTAwM2V2YXIuZmVtID09IE1UNzk5Nl9GRU1fTUlYIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTE2LVxcdFxcdCAhKGZlbVswXSA9PSBGRU1fSU5UIFxcdTAwMjZcXHUwMDI2IGZlbVsxXSA9PSBGRU1fRVhUKSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jPTEzNz1tdDc5OTZfZWVwcm9tX2NoZWNrX29yX3VzZV9kZWZhdWx0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGJvb2wgdXNlX2RlZmF1bHQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xNTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTUzOlxcdGlmIChmdy1cXHUwMDNlc2l6ZSBcXHUwMDNjIE1UNzk5Nl9FRVBST01fU0laRSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE1NC1cXHRcXHRkZXZfZXJyKGRldi1cXHUwMDNlbXQ3Ni5kZXYsIFxcXCJJbnZhbGlkIGRlZmF1bHQgYmluIHNpemVcXFxcblxcXCIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTYyLVxcdGRldl93YXJuKGRldi1cXHUwMDNlbXQ3Ni5kZXYsIFxcXCJlZXByb20gbG9hZCBmYWlsLCB1c2UgZGVmYXVsdCBiaW5cXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjE2MzpcXHRtZW1jcHkoZWVwcm9tLCBmdy1cXHUwMDNlZGF0YSwgTVQ3OTk2X0VFUFJPTV9TSVpFKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xNjQtXFx0ZGV2LVxcdTAwM2VlZXByb21fbW9kZSA9IEVFUFJPTV9NT0RFX0RFRkFVTFRfQklOO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM9MTcyPXN0YXRpYyBpbnQgbXQ3OTk2X2VlcHJvbV9sb2FkKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xNzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTc4OlxcdHJldCA9IG10NzZfZWVwcm9tX2luaXQoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NiwgTVQ3OTk2X0VFUFJPTV9TSVpFKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xNzktXFx0aWYgKHJldCBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xODYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTg3OlxcdG1lbXNldChkZXYtXFx1MDAzZW10NzYuZWVwcm9tLmRhdGEsIDAsIE1UNzk5Nl9FRVBST01fU0laRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTg4LVxcdGlmIChtdDc5OTZfaGFzX2V4dF9lZXByb20oZGV2KSkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTkwLVxcdFxcdGRldi1cXHUwMDNlZWVwcm9tX21vZGUgPSBFRVBST01fTU9ERV9FWFQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTkxOlxcdFxcdGVlcHJvbV9ibGtfc2l6ZSA9IE1UNzk5Nl9FWFRfRUVQUk9NX0JMT0NLX1NJWkU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTkyLVxcdH0gZWxzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xOTYtXFx0XFx0ZGV2LVxcdTAwM2VlZXByb21fbW9kZSA9IEVFUFJPTV9NT0RFX0VGVVNFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjE5NzpcXHRcXHRlZXByb21fYmxrX3NpemUgPSBNVDc5OTZfRUVQUk9NX0JMT0NLX1NJWkU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTk4LVxcdFxcdHJldCA9IG10Nzk5Nl9tY3VfZ2V0X2VmdXNlX2ZyZWVfYmxvY2soZGV2LCBcXHUwMDI2ZnJlZV9ibG9ja19udW0pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMjE3LVxcdC8qIHJlYWQgZWVwcm9tIGRhdGEgZnJvbSBmdyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjIxODpcXHRibG9ja19udW0gPSBESVZfUk9VTkRfVVAoTVQ3OTk2X0VFUFJPTV9TSVpFLCBlZXByb21fYmxrX3NpemUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTIxOS1cXHRmb3IgKGkgPSAxOyBpIFxcdTAwM2MgYmxvY2tfbnVtOyBpKyspIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTIyMi1cXHRcXHRpZiAoaSA9PSBibG9ja19udW0gLSAxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjIyMzpcXHRcXHRcXHRsZW4gPSBNVDc5OTZfRUVQUk9NX1NJWkUgJSBlZXByb21fYmxrX3NpemU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMjI0LVxcdFxcdHJldCA9IG10Nzk5Nl9tY3VfZ2V0X2VlcHJvbShkZXYsIGkgKiBlZXByb21fYmxrX3NpemUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYz0zOTU9Ym9vbCBtdDc5OTZfZWVwcm9tX2hhc19iYWNrZ3JvdW5kX3JhZGFyKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0zOTctXFx0c3dpdGNoIChtdDc2X2NoaXAoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzozOTg6XFx0Y2FzZSBNVDc5OTZfREVWSUNFX0lEOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjM5OTpcXHRcXHRpZiAoZGV2LVxcdTAwM2V2YXIudHlwZSA9PSBNVDc5OTZfVkFSX1RZUEVfMjMzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTQwMC1cXHRcXHRcXHRyZXR1cm4gZmFsc2U7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uaC01LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5oOjY6I2lmbmRlZiBfX01UNzk5Nl9FRVBST01fSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5oOjc6I2RlZmluZSBfX01UNzk5Nl9FRVBST01fSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5oLTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MTc9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfaWZhY2VfbGltaXQgaWZfbGltaXRzX2dsb2JhbCA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTg6XFx0Lm1heCA9IE1UNzk5Nl9NQVhfSU5URVJGQUNFUyAqIE1UNzk5Nl9NQVhfUkFESU9TLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xOS1cXHQudHlwZXMgPSBCSVQoTkw4MDIxMV9JRlRZUEVfU1RBVElPTilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0yNz1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9jb21iaW5hdGlvbiBpZl9jb21iX2dsb2JhbCA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yOS1cXHQubl9saW1pdHMgPSAxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzozMDpcXHQubWF4X2ludGVyZmFjZXMgPSBNVDc5OTZfTUFYX0lOVEVSRkFDRVMgKiBNVDc5OTZfTUFYX1JBRElPUyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MzE6XFx0Lm51bV9kaWZmZXJlbnRfY2hhbm5lbHMgPSBNVDc5OTZfTUFYX1JBRElPUyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMzItXFx0LnJhZGFyX2RldGVjdF93aWR0aHMgPSBCSVQoTkw4MDIxMV9DSEFOX1dJRFRIXzIwX05PSFQpIHxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0zOT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9jb21iaW5hdGlvbiBpZl9jb21iX2dsb2JhbF83OTkyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTQyLVxcdC5tYXhfaW50ZXJmYWNlcyA9IDMyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo0MzpcXHQubnVtX2RpZmZlcmVudF9jaGFubmVscyA9IE1UNzk5Nl9NQVhfUkFESU9TIC0gMSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDQtXFx0LnJhZGFyX2RldGVjdF93aWR0aHMgPSBCSVQoTkw4MDIxMV9DSEFOX1dJRFRIXzIwX05PSFQpIHxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz01MT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy01OC1cXHR9LCB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjU5OlxcdFxcdC5tYXggPSBNVDc5OTZfTUFYX0lOVEVSRkFDRVMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTYwLVxcdFxcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9TVEFUSU9OKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTY0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2NvbWJpbmF0aW9uIGlmX2NvbWIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNjYtXFx0Lm5fbGltaXRzID0gQVJSQVlfU0laRShpZl9saW1pdHMpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo2NzpcXHQubWF4X2ludGVyZmFjZXMgPSBNVDc5OTZfTUFYX0lOVEVSRkFDRVMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTY4LVxcdC5udW1fZGlmZmVyZW50X2NoYW5uZWxzID0gMSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz04ND1zdGF0aWMgY29uc3Qgc3RydWN0IHdpcGh5X2lmdHlwZV9leHRfY2FwYWIgaWZ0eXBlc19leHRfY2FwYVtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTkyLVxcdFxcdFxcdEZJRUxEX1BSRVBfQ09OU1QoSUVFRTgwMjExX01MRF9DQVBfT1BfTUFYX1NJTVVMX0xJTktTLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo5MzpcXHRcXHRcXHRcXHRcXHQgTVQ3OTk2X01BWF9SQURJT1MgLSAxKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtOTQtXFx0fSwge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEwMS1cXHRcXHRcXHRGSUVMRF9QUkVQX0NPTlNUKElFRUU4MDIxMV9NTERfQ0FQX09QX01BWF9TSU1VTF9MSU5LUyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTAyOlxcdFxcdFxcdFxcdFxcdCBNVDc5OTZfTUFYX1JBRElPUyAtIDEpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDMtXFx0fSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xMzI9c3RhdGljIHNzaXplX3QgbXQ3OTk2X3RoZXJtYWxfdGVtcF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTQ3LVxcdC8qIGFkZCBhIHNhZmV0eSBtYXJnaW4gfjEwICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE0ODpcXHRpZiAoKGkgLSAxID09IE1UNzk5Nl9DUklUX1RFTVBfSURYIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE0OTpcXHQgICAgIHZhbCBcXHUwMDNlIHBoeS1cXHUwMDNldGhyb3R0bGVfdGVtcFtNVDc5OTZfTUFYX1RFTVBfSURYXSAtIDEwKSB8fFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNTA6XFx0ICAgIChpIC0gMSA9PSBNVDc5OTZfTUFYX1RFTVBfSURYIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE1MTpcXHQgICAgIHZhbCAtIDEwIFxcdTAwM2MgcGh5LVxcdTAwM2V0aHJvdHRsZV90ZW1wW01UNzk5Nl9DUklUX1RFTVBfSURYXSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTUyLVxcdFxcdGRldl9lcnIocGh5LVxcdTAwM2VkZXYtXFx1MDAzZW10NzYuZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTE4Mz1tdDc5OTZfdGhlcm1hbF9nZXRfbWF4X3Rocm90dGxlX3N0YXRlKHN0cnVjdCB0aGVybWFsX2Nvb2xpbmdfZGV2aWNlICpjZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE4NS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE4NjpcXHQqc3RhdGUgPSBNVDc5OTZfQ0RFVl9USFJPVFRMRV9NQVg7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE4Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0yMDM9bXQ3OTk2X3RoZXJtYWxfc2V0X2N1cl90aHJvdHRsZV9zdGF0ZShzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqY2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yMDYtXFx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IGNkZXYtXFx1MDAzZWRldmRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjIwNzpcXHR1OCB0aHJvdHRsaW5nID0gTVQ3OTk2X1RIRVJNQUxfVEhST1RUTEVfTUFYIC0gc3RhdGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTIwOC1cXHRpbnQgcmV0O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yMDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjIxMDpcXHRpZiAoc3RhdGUgXFx1MDAzZSBNVDc5OTZfQ0RFVl9USFJPVFRMRV9NQVgpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMjExLVxcdFxcdGRldl9lcnIocGh5LVxcdTAwM2VkZXYtXFx1MDAzZW10NzYuZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTI1MD1zdGF0aWMgaW50IG10Nzk5Nl90aGVybWFsX2luaXQoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yNzQtXFx0LyogaW5pdGlhbGl6ZSBjcml0aWNhbC9tYXhpbXVtIGhpZ2ggdGVtcGVyYXR1cmUgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6Mjc1OlxcdHBoeS1cXHUwMDNldGhyb3R0bGVfdGVtcFtNVDc5OTZfQ1JJVF9URU1QX0lEWF0gPSBNVDc5OTZfQ1JJVF9URU1QO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoyNzY6XFx0cGh5LVxcdTAwM2V0aHJvdHRsZV90ZW1wW01UNzk5Nl9NQVhfVEVNUF9JRFhdID0gTVQ3OTk2X01BWF9URU1QO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yNzctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9NjAzPXN0YXRpYyB2b2lkIG10Nzk5Nl9tYWNfaW5pdF9iYXNpY19yYXRlcyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTYwOS1cXHRcXHQvKiBvZGQgaW5kZXggZm9yIGRyaXZlciwgZXZlbiBpbmRleCBmb3IgZmlybXdhcmUgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NjEwOlxcdFxcdHUxNiBpZHggPSBNVDc5OTZfQkFTSUNfUkFURVNfVEJMICsgMiAqIGk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTYxMS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz02OTA9c3RhdGljIGludCBtdDc5OTZfcmVnaXN0ZXJfcGh5KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGVudW0gbXQ3Nl9iYW5kX2lkIGJhbmQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzUzLVxcdFxcdFxcdCAgIG10NzZfbnB1X2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NzU0OlxcdFxcdFxcdCAgID8gTVQ3OTk2X05QVV9UWF9SSU5HX1NJWkUgLyAyIDogTVQ3OTk2X1RYX1JJTkdfU0laRTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzU1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTgzMz1zdGF0aWMgdm9pZCBtdDc5OTZfcnJvX2h3X2luaXRfdjMoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy04NDMtXFx0XFx0d2VkLVxcdTAwM2V3bGFuLmluZF9jbWQud2luX3NpemUgPVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo4NDQ6XFx0XFx0XFx0ZmZzKE1UNzk5Nl9SUk9fV0lORE9XX01BWF9MRU4pIC0gNjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtODQ1LVxcdFxcdGlmIChpc19tdDc5OTYoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg0Ni1cXHRcXHRcXHR3ZWQtXFx1MDAzZXdsYW4uaW5kX2NtZC5wYXJ0aWN1bGFyX3NpZCA9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjg0NzpcXHRcXHRcXHRcXHRNVDc5OTZfUlJPX01BWF9TRVNTSU9OO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy04NDgtXFx0XFx0ZWxzZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg1MS1cXHRcXHRcXHRkZXYtXFx1MDAzZXdlZF9ycm8uc2Vzc2lvbi5waHlfYWRkcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6ODUyOlxcdFxcdHdlZC1cXHUwMDNld2xhbi5pbmRfY21kLnNlX2dyb3VwX251bXMgPSBNVDc5OTZfUlJPX0FERFJfRUxFTV9MRU47XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg1My1cXHRcXHR3ZWQtXFx1MDAzZXdsYW4uaW5kX2NtZC5hY2tfc25fYWRkciA9IE1UX1JST19BQ0tfU05fQ1RSTDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy04NjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjg3MDpcXHRzZXNzaW9uX2lkID0gaXNfbXQ3OTk2KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpID8gTVQ3OTk2X1JST19NQVhfU0VTU0lPTiA6IDE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg3MS1cXHRtdDc2X3dyKGRldiwgTVRfUlJPX1BBUlRJQ1VMQVJfQ0ZHMSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz05NTc9c3RhdGljIGludCBtdDc5OTZfd2VkX3Jyb19pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtOTY5LVxcdFxcdFxcdHB0ciA9IGRtYW1fYWxsb2NfY29oZXJlbnQoZGV2LVxcdTAwM2VtdDc2LmRtYV9kZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjk3MDpcXHRcXHRcXHRcXHRcXHRcXHQgIE1UNzk5Nl9SUk9fQkFfQklUTUFQX0NSX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk3MS1cXHRcXHRcXHRcXHRcXHRcXHQgIFxcdTAwMjZkZXYtXFx1MDAzZXdlZF9ycm8uYmFfYml0bWFwW2ldLnBoeV9hZGRyLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk4My1cXHRcXHRwdHIgPSBkbWFtX2FsbG9jX2NvaGVyZW50KGRldi1cXHUwMDNlbXQ3Ni5kbWFfZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo5ODQ6XFx0XFx0XFx0XFx0TVQ3OTk2X1JST19XSU5ET1dfTUFYX1NJWkUgKiBzaXplb2YoKmFkZHIpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy05ODUtXFx0XFx0XFx0XFx0XFx1MDAyNmRldi1cXHUwMDNld2VkX3Jyby5hZGRyX2VsZW1baV0ucGh5X2FkZHIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtOTkxLVxcdFxcdG1lbXNldChkZXYtXFx1MDAzZXdlZF9ycm8uYWRkcl9lbGVtW2ldLnB0ciwgMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6OTkyOlxcdFxcdCAgICAgICBNVDc5OTZfUlJPX1dJTkRPV19NQVhfU0laRSAqIHNpemVvZigqYWRkcikpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy05OTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk5NC1cXHRcXHRhZGRyID0gZGV2LVxcdTAwM2V3ZWRfcnJvLmFkZHJfZWxlbVtpXS5wdHI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjk5NTpcXHRcXHRmb3IgKGogPSAwOyBqIFxcdTAwM2MgTVQ3OTk2X1JST19XSU5ET1dfTUFYX1NJWkU7IGorKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy05OTYtXFx0XFx0XFx0YWRkci1cXHUwMDNlZGF0YSA9IGNwdV90b19sZTMyKHZhbCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTAxOC1cXHRcXHRwdHIgPSBkbWFtX2FsbG9jX2NvaGVyZW50KGRldi1cXHUwMDNlbXQ3Ni5kbWFfZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxMDE5OlxcdFxcdFxcdFxcdFxcdCAgTVQ3OTk2X1JST19NU0RVX1BHX1NJWkVfUEVSX0NSLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDIwLVxcdFxcdFxcdFxcdFxcdCAgXFx1MDAyNmRldi1cXHUwMDNld2VkX3Jyby5tc2R1X3BnW2ldLnBoeV9hZGRyLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEwMjctXFx0XFx0bWVtc2V0KGRldi1cXHUwMDNld2VkX3Jyby5tc2R1X3BnW2ldLnB0ciwgMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTAyODpcXHRcXHQgICAgICAgTVQ3OTk2X1JST19NU0RVX1BHX1NJWkVfUEVSX0NSKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTAyOS1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTA1Mi1cXHRwdHIgPSBkbWFtX2FsbG9jX2NvaGVyZW50KGRldi1cXHUwMDNlbXQ3Ni5kbWFfZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxMDUzOlxcdFxcdFxcdFxcdCAgTVQ3OTk2X1JST19XSU5ET1dfTUFYX0xFTiAqIHNpemVvZigqYWRkciksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEwNTQtXFx0XFx0XFx0XFx0ICBcXHUwMDI2ZGV2LVxcdTAwM2V3ZWRfcnJvLnNlc3Npb24ucGh5X2FkZHIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTA2MC1cXHRhZGRyID0gZGV2LVxcdTAwM2V3ZWRfcnJvLnNlc3Npb24ucHRyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxMDYxOlxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBNVDc5OTZfUlJPX1dJTkRPV19NQVhfTEVOOyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTA2Mi1cXHRcXHRhZGRyLVxcdTAwM2VkYXRhID0gY3B1X3RvX2xlMzIodmFsKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xMDc1PXN0YXRpYyB2b2lkIG10Nzk5Nl93ZWRfcnJvX2ZyZWUoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDg2LVxcdFxcdGRtYW1fZnJlZV9jb2hlcmVudChkZXYtXFx1MDAzZW10NzYuZG1hX2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTA4NzpcXHRcXHRcXHRcXHQgICBNVDc5OTZfUlJPX0JBX0JJVE1BUF9DUl9TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDg4LVxcdFxcdFxcdFxcdCAgIGRldi1cXHUwMDNld2VkX3Jyby5iYV9iaXRtYXBbaV0ucHRyLFxcbi0tXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAyVDA4OjUyOjM2LjcyNTA0NzcxOFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQ3NDM1OTk3ODk1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTVQ3OTk2IERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZSBgbXQ3OTk2YCBkcml2ZXIsIHNwZWNpZmljYWxseSB3aXRoaW4gdGhlIE1lZGlhVGVrIFdpRmkgc3VpdGUsIHVuZGVyIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9gLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgUENJIGRldmljZSBzcGVjaWZpY3Mgb2YgdGhpcy4gTXkgbmV4dCBzdGVwIGlzIHRvIGRyaWxsIGRvd24gaW50byBgcGNpLmNgIHdpdGhpbiB0aGF0IGRpcmVjdG9yeS4gSSdtIGhvcGluZyB0byBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIHdoYXQgUENJIGRldmljZXMgYXJlIHN1cHBvcnRlZCBhbmQsIGNyaXRpY2FsbHksIHdoZXRoZXIgdGhpcyBkcml2ZXIgaGFuZGxlcyBzb2xlbHkgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSwgb3IgaWYgaXQgbWlnaHQgYWxzbyBpbmNvcnBvcmF0ZSBzb21lIGZvcm0gb2YgZW11bGF0aW9uLiBVbmRlcnN0YW5kaW5nIHRoaXMgZGlzdGluY3Rpb24gaXMgY3J1Y2lhbCBmb3IgbXkgY3VycmVudCB0YXNrLCBzbyBgcGNpLmNgIGl0IGlzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzcyMywiT3V0cHV0VG9rZW5zIjo1MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAyVDA4OjUzOjI0LjE2MTA3NzU5MloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyMTkxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAxMDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuICAgMjpcXHQvKlxcbiAgIDM6XFx0ICogQ29weXJpZ2h0IChDKSAyMDIyIE1lZGlhVGVrIEluYy5cXG4gICA0OlxcdCAqL1xcbiAgIDU6XFx0XFxuICAgNjpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgva2VybmVsLmhcXHUwMDNlXFxuICAgNzpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvbW9kdWxlLmhcXHUwMDNlXFxuICAgODpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvcGNpLmhcXHUwMDNlXFxuICAgOTpcXHRcXG4gIDEwOlxcdCNpbmNsdWRlIFxcXCJtdDc5OTYuaFxcXCJcXG4gIDExOlxcdCNpbmNsdWRlIFxcXCJtYWMuaFxcXCJcXG4gIDEyOlxcdCNpbmNsdWRlIFxcXCIuLi90cmFjZS5oXFxcIlxcbiAgMTM6XFx0XFxuICAxNDpcXHRzdGF0aWMgTElTVF9IRUFEKGhpZl9saXN0KTtcXG4gIDE1OlxcdHN0YXRpYyBERUZJTkVfU1BJTkxPQ0soaGlmX2xvY2spO1xcbiAgMTY6XFx0c3RhdGljIHUzMiBoaWZfaWR4O1xcbiAgMTc6XFx0XFxuICAxODpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgbXQ3OTk2X3BjaV9kZXZpY2VfdGFibGVbXSA9IHtcXG4gIDE5OlxcdFxcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01FRElBVEVLLCBNVDc5OTZfREVWSUNFX0lEKSB9LFxcbiAgMjA6XFx0XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5Ml9ERVZJQ0VfSUQpIH0sXFxuICAyMTpcXHRcXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgTVQ3OTkwX0RFVklDRV9JRCkgfSxcXG4gIDIyOlxcdFxcdHsgfSxcXG4gIDIzOlxcdH07XFxuICAyNDpcXHRcXG4gIDI1OlxcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBtdDc5OTZfaGlmX2RldmljZV90YWJsZVtdID0ge1xcbiAgMjY6XFx0XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5Nl9ERVZJQ0VfSURfMikgfSxcXG4gIDI3OlxcdFxcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01FRElBVEVLLCBNVDc5OTJfREVWSUNFX0lEXzIpIH0sXFxuICAyODpcXHRcXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgTVQ3OTkwX0RFVklDRV9JRF8yKSB9LFxcbiAgMjk6XFx0XFx0eyB9LFxcbiAgMzA6XFx0fTtcXG4gIDMxOlxcdFxcbiAgMzI6XFx0c3RhdGljIHN0cnVjdCBtdDc5OTZfaGlmICptdDc5OTZfcGNpX2dldF9oaWYyKHUzMiBpZHgpXFxuICAzMzpcXHR7XFxuICAzNDpcXHRcXHRzdHJ1Y3QgbXQ3OTk2X2hpZiAqaGlmO1xcbiAgMzU6XFx0XFx0dTMyIHZhbDtcXG4gIDM2OlxcdFxcbiAgMzc6XFx0XFx0c3Bpbl9sb2NrX2JoKFxcdTAwMjZoaWZfbG9jayk7XFxuICAzODpcXHRcXG4gIDM5OlxcdFxcdGxpc3RfZm9yX2VhY2hfZW50cnkoaGlmLCBcXHUwMDI2aGlmX2xpc3QsIGxpc3QpIHtcXG4gIDQwOlxcdFxcdFxcdHZhbCA9IHJlYWRsKGhpZi1cXHUwMDNlcmVncyArIE1UX1BDSUVfUkVDT0dfSUQpO1xcbiAgNDE6XFx0XFx0XFx0dmFsIFxcdTAwMjY9IE1UX1BDSUVfUkVDT0dfSURfTUFTSztcXG4gIDQyOlxcdFxcdFxcdGlmICh2YWwgIT0gaWR4KVxcbiAgNDM6XFx0XFx0XFx0XFx0Y29udGludWU7XFxuICA0NDpcXHRcXG4gIDQ1OlxcdFxcdFxcdGdldF9kZXZpY2UoaGlmLVxcdTAwM2VkZXYpO1xcbiAgNDY6XFx0XFx0XFx0Z290byBvdXQ7XFxuICA0NzpcXHRcXHR9XFxuICA0ODpcXHRcXHRoaWYgPSBOVUxMO1xcbiAgNDk6XFx0XFxuICA1MDpcXHRvdXQ6XFxuICA1MTpcXHRcXHRzcGluX3VubG9ja19iaChcXHUwMDI2aGlmX2xvY2spO1xcbiAgNTI6XFx0XFxuICA1MzpcXHRcXHRyZXR1cm4gaGlmO1xcbiAgNTQ6XFx0fVxcbiAgNTU6XFx0XFxuICA1NjpcXHRzdGF0aWMgdm9pZCBtdDc5OTZfcHV0X2hpZjIoc3RydWN0IG10Nzk5Nl9oaWYgKmhpZilcXG4gIDU3OlxcdHtcXG4gIDU4OlxcdFxcdGlmICghaGlmKVxcbiAgNTk6XFx0XFx0XFx0cmV0dXJuO1xcbiAgNjA6XFx0XFxuICA2MTpcXHRcXHRwdXRfZGV2aWNlKGhpZi1cXHUwMDNlZGV2KTtcXG4gIDYyOlxcdH1cXG4gIDYzOlxcdFxcbiAgNjQ6XFx0c3RhdGljIHN0cnVjdCBtdDc5OTZfaGlmICptdDc5OTZfcGNpX2luaXRfaGlmMihzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4gIDY1OlxcdHtcXG4gIDY2OlxcdFxcdGhpZl9pZHgrKztcXG4gIDY3OlxcdFxcbiAgNjg6XFx0XFx0aWYgKCFwY2lfZ2V0X2RldmljZShQQ0lfVkVORE9SX0lEX01FRElBVEVLLCBNVDc5OTZfREVWSUNFX0lEXzIsIE5VTEwpIFxcdTAwMjZcXHUwMDI2XFxuICA2OTpcXHRcXHQgICAgIXBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5Ml9ERVZJQ0VfSURfMiwgTlVMTCkgXFx1MDAyNlxcdTAwMjZcXG4gIDcwOlxcdFxcdCAgICAhcGNpX2dldF9kZXZpY2UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgTVQ3OTkwX0RFVklDRV9JRF8yLCBOVUxMKSlcXG4gIDcxOlxcdFxcdFxcdHJldHVybiBOVUxMO1xcbiAgNzI6XFx0XFxuICA3MzpcXHRcXHR3cml0ZWwoaGlmX2lkeCB8IE1UX1BDSUVfUkVDT0dfSURfU0VNLFxcbiAgNzQ6XFx0XFx0ICAgICAgIHBjaW1faW9tYXBfdGFibGUocGRldilbMF0gKyBNVF9QQ0lFX1JFQ09HX0lEKTtcXG4gIDc1OlxcdFxcbiAgNzY6XFx0XFx0cmV0dXJuIG10Nzk5Nl9wY2lfZ2V0X2hpZjIoaGlmX2lkeCk7XFxuICA3NzpcXHR9XFxuICA3ODpcXHRcXG4gIDc5OlxcdHN0YXRpYyBpbnQgbXQ3OTk2X3BjaV9oaWYyX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbiAgODA6XFx0e1xcbiAgODE6XFx0XFx0c3RydWN0IG10Nzk5Nl9oaWYgKmhpZjtcXG4gIDgyOlxcdFxcbiAgODM6XFx0XFx0aGlmID0gZGV2bV9remFsbG9jKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIHNpemVvZigqaGlmKSwgR0ZQX0tFUk5FTCk7XFxuICA4NDpcXHRcXHRpZiAoIWhpZilcXG4gIDg1OlxcdFxcdFxcdHJldHVybiAtRU5PTUVNO1xcbiAgODY6XFx0XFxuICA4NzpcXHRcXHRoaWYtXFx1MDAzZWRldiA9IFxcdTAwMjZwZGV2LVxcdTAwM2VkZXY7XFxuICA4ODpcXHRcXHRoaWYtXFx1MDAzZXJlZ3MgPSBwY2ltX2lvbWFwX3RhYmxlKHBkZXYpWzBdO1xcbiAgODk6XFx0XFx0aGlmLVxcdTAwM2VpcnEgPSBwZGV2LVxcdTAwM2VpcnE7XFxuICA5MDpcXHRcXHRwY2llX2JhbmR3aWR0aF9hdmFpbGFibGUocGRldiwgTlVMTCwgXFx1MDAyNmhpZi1cXHUwMDNlc3BlZWQsIFxcdTAwMjZoaWYtXFx1MDAzZXdpZHRoKTtcXG4gIDkxOlxcdFxcdHNwaW5fbG9ja19iaChcXHUwMDI2aGlmX2xvY2spO1xcbiAgOTI6XFx0XFx0bGlzdF9hZGQoXFx1MDAyNmhpZi1cXHUwMDNlbGlzdCwgXFx1MDAyNmhpZl9saXN0KTtcXG4gIDkzOlxcdFxcdHNwaW5fdW5sb2NrX2JoKFxcdTAwMjZoaWZfbG9jayk7XFxuICA5NDpcXHRcXHRwY2lfc2V0X2RydmRhdGEocGRldiwgaGlmKTtcXG4gIDk1OlxcdFxcbiAgOTY6XFx0XFx0cmV0dXJuIDA7XFxuICA5NzpcXHR9XFxuICA5ODpcXHRcXG4gIDk5OlxcdHN0YXRpYyBpbnQgbXQ3OTk2X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4gMTAwOlxcdFxcdFxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAyVDA4OjUzOjI0LjE2MTUwMjkxMloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQxOTM4NDI5ODMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gncyBGdXp6aW5nIFdvcnRoaW5lc3MqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCB0aGUgaW5zdHJ1Y3Rpb25zIGFyZSBwcmV0dHkgY2xlYXI6IGNlcnRhaW4gbW9kaWZpY2F0aW9ucyBhdXRvbWF0aWNhbGx5IG1lYW4gXCJub1wiIHRvIGZ1enppbmcuIEl0J3MgZXNzZW50aWFsbHkgYSBsaXN0IG9mIHRoaW5ncyB0aGF0IGRvbid0IGludHJvZHVjZSBuZXcgZXhlY3V0aW9uIHBhdGhzIHRoYXQgYSBmdXp6ZXIgd291bGQgY2FyZSBhYm91dC4gRG9jdW1lbnRhdGlvbiwgY29tbWVudHMsIGRlY29yYXRpdmUgbG9nZ2luZywgaW5jb25zZXF1ZW50aWFsIG51bWVyaWMgY2hhbmdlcywgdW5yZWFjaGFibGUgY29kZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlcnMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byBlbXVsYXRlLCBhbmQgdGVhcmRvd24gY2FsbGJhY2tzIC0gYWxsIG5vLWdvcy5cblxuTm93LCBteSBpbml0aWFsIHRob3VnaHQ6IGlzIHRoaXMgcGF0Y2ggZm9jdXNlZCBvbiBhIE1lZGlhVGVrIFdpRmkgZHJpdmVyLCBzcGVjaWZpY2FsbHkgbXQ3OTk2PyBJZiBzbywgaXMgaXQgbGltaXRlZCB0byBQQ0llIGhhcmR3YXJlPyBUaGF0J3MgdGhlIGNyaXRpY2FsIHF1ZXN0aW9uLiBJIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIGl0J3Mgc3RyaWN0bHkgZGVwZW5kZW50IG9uIHBoeXNpY2FsIGhhcmR3YXJlIG9yIGlmIHRoZXJlJ3MgYW55IHBhdGh3YXkgdG8gcmVhY2ggaXQgdGhyb3VnaCBVU0IsIGBtYWM4MDIxMV9od3NpbWAsIG9yIGFueSBvdGhlciBtZXRob2QgdGhhdCAqY2FuKiBiZSB1c2VkIGluIGEgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudC5cblxuTXkgbmV4dCBzdGVwIGlzIHRvIGRpdmUgaW50byB0aGUgY29kZS4gSSdtIGdvaW5nIHRvIGV4aGF1c3RpdmVseSBleGFtaW5lIGFsbCB0aGUgZmlsZXMgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvYCBkaXJlY3RvcnkuIFRoaXMgd2lsbCBiZSBteSBkZWNpc2l2ZSBzdGVwIGluIGRldGVybWluaW5nIHdoZXRoZXIgdGhpcyBpcyB3b3J0aCB0aGUgZWZmb3J0IHRvIGZ1enouIEkgbmVlZCB0byBhc2NlcnRhaW4gaWYgdGhlIGNvZGUgdG91Y2hlcyBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcyB0aGF0IGFyZSByZWFsaXN0aWNhbGx5IGV4ZWN1dGFibGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1NjAyLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzc2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDJUMDg6NTM6MjguMzU1MzQ5MzU1WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImNvZGVzZWFyY2gtZGlyLWluZGV4IiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Nzc5ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJEaXJcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5NlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJGaWxlc1wiOiBbXG4gICAgXCJjb3JlZHVtcC5jXCIsXG4gICAgXCJjb3JlZHVtcC5oXCIsXG4gICAgXCJkZWJ1Z2ZzLmNcIixcbiAgICBcImRtYS5jXCIsXG4gICAgXCJlZXByb20uY1wiLFxuICAgIFwiZWVwcm9tLmhcIixcbiAgICBcImluaXQuY1wiLFxuICAgIFwibWFjLmNcIixcbiAgICBcIm1hYy5oXCIsXG4gICAgXCJtYWluLmNcIixcbiAgICBcIm1jdS5jXCIsXG4gICAgXCJtY3UuaFwiLFxuICAgIFwibW1pby5jXCIsXG4gICAgXCJtdDc5OTYuaFwiLFxuICAgIFwibnB1LmNcIixcbiAgICBcInBjaS5jXCIsXG4gICAgXCJyZWdzLmhcIlxuICBdLFxuICBcIlN1YmRpcnNcIjogbnVsbFxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDJUMDg6NTM6MjguMzU1NDI5MjQ1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjM1NjU1NzkyNjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBIZXJlJ3MgaG93IEknZCBhcHByb2FjaCB0aGF0IGZpbGUuLi5cblxuKipBbmFseXppbmcgbXQ3OTk2J3MgUENJIERyaXZlcioqXG5cbkFscmlnaHQsIGJlZm9yZSBJIGdldCB0b28gZGVlcCBpbnRvIHRoaXMgcGFydGljdWxhciBtb2R1bGUgKGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuY2ApLCBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgdGhlIHNjb3BlIG9mIGl0cyBidXMgc3VwcG9ydC4gSXQncyB0aXRsZWQgXCJwY2kuYyxcIiBzbyB0aGUgb2J2aW91cyBhc3N1bXB0aW9uIGlzIFBDSS4gQnV0LCB3aXRoIHRoZXNlIG5ld2VyIE1lZGlhdGVrIGltcGxlbWVudGF0aW9ucywgdGhleSBvZnRlbiBzaGFyZSBjb3JlIGNvZGUgYWNyb3NzIGRpZmZlcmVudCBidXMgaW50ZXJmYWNlcy4gU28sIEkgbmVlZCB0byBjb25maXJtIHRoYXQgdGhpcyBmaWxlIGlzICpvbmx5KiBkZWFsaW5nIHdpdGggUENJLCBvciBpZiB0aGVyZSdzIHNvbWUgYWJzdHJhY3Rpb24gZ29pbmcgb24uIEknbSBnb2luZyB0byBzY2FuIHRoZSBjb2RlIGZvciBhbnl0aGluZyB0aGF0IG1pZ2h0IGluZGljYXRlIHN1cHBvcnQgZm9yIG90aGVyIGJ1cyB0eXBlcyBsaWtlIFNESU8gb3IgVVNCLiBJJ2xsIGJlIGxvb2tpbmcgZm9yIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uLCBkZXZpY2UgSUQgY2hlY2tzLCBvciBhbnkga2luZCBvZiBidXMtc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gcm91dGluZXMgdGhhdCBoaW50IGF0IG11bHRpLWJ1cyBzdXBwb3J0IHdpdGhpbiB0aGlzIG1vZHVsZS4gSWYgaXQncyBzb2xlbHkgUENJLCB0aGF0IHNpbXBsaWZpZXMgdGhpbmdzIGEgYml0LCBidXQgSSBzdGlsbCBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRpZ2h0bHkgY291cGxlZCBpdCBpcyB0byB0aGUgUENJLXNwZWNpZmljIGZlYXR1cmVzIGFuZCB0aGUgTWVkaWF0ZWsgd2lyZWxlc3MgY2hpcHNldC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY0MzQsIk91dHB1dFRva2VucyI6NTUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MSwiVG9vbENhbGxzIjpbImNvZGVzZWFyY2gtZGlyLWluZGV4Il19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDJUMDg6NTM6MzEuOTIxMDEwNjE0WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozOTA2NzcxMzEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlX2luaXR8bW9kdWxlX3BjaV9kcml2ZXJ8cGNpX3JlZ2lzdGVyX2RyaXZlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5NlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODg5PXN0YXRpYyBpbnQgX19pbml0IG10Nzk5Nl9pbml0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODkyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4OTM6XFx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcXHUwMDI2bXQ3OTk2X2hpZl9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04OTQtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04OTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg5NzpcXHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc5OTZfcGNpX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg5OC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTkwND1zdGF0aWMgdm9pZCBfX2V4aXQgbXQ3OTk2X2V4aXQodm9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy05MDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjkxMDptb2R1bGVfaW5pdChtdDc5OTZfaW5pdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTkxMS1tb2R1bGVfZXhpdChtdDc5OTZfZXhpdCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAyVDA4OjUzOjMyLjMxMTY5NjgyNVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozMzE3OTEzOTAxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEkndmUgbG9va2VkIGF0IHRoaXMgcGF0Y2ggYW5kIEknbSBwcmV0dHkgY2VydGFpbiBpdCdzIG5vdCBnb2luZyB0byBiZSBmcnVpdGZ1bCBmb3IgZnV6emluZyBpbiBhIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50LiBMZXQncyBicmVhayBpdCBkb3duOiBgbXQ3OTk2YCBpcyBleGNsdXNpdmVseSBhIFBDSWUgZHJpdmVyLCByaWdodD8gV2UncmUgdGFsa2luZyBhYm91dCBzcGVjaWZpYyBNZWRpYVRlayBQQ0llIHdpcmVsZXNzIGNhcmRzIOKAkyB0aG9zZSBzcGVjaWZpYyBkZXZpY2UgSURzICgweDc5OTYsIDB4Nzk5MiwgMHg3OTkwIHdpdGggdmVuZG9yIDB4MTRjMykuIE5vdywgdGhlIHByb2JsZW0gaXMsIGFuZCB0aGlzIGlzIHRoZSBjcnV4IG9mIHRoZSBtYXR0ZXIsIFFFTVUgYW5kIEdDRSBqdXN0IGRvbid0IGVtdWxhdGUgdGhvc2UgTWVkaWFUZWsgUENJZSBXaS1GaSBOSUNzLiBObyBkaWNlLlxuXG5JIHF1aWNrbHkgY2hlY2tlZCwgdGhlcmUncyBubyB2aXJ0dWFsaXplZCBvciBlbXVsYXRlZCBzdXBwb3J0IGZvciB0aGF0IGhhcmR3YXJlIGluIFFFTVUuIFVTQiBpcyBhIGRlYWQgZW5kIGhlcmUuIFdlIGNvdWxkIGxvb2sgYXQgVVNCIGdhZGdldCBvciByYXctZ2FkZ2V0IC8gZHVtbXlfaGNkLCBidXQgdGhhdCdzIG5vdCByZWxldmFudDsgdGhpcyBpcyBzdHJpY3RseSBQQ0llLiBNYWM4MDIxMSBod3NpbSwgd2hpY2ggZW11bGF0ZXMgbWFjODAyMTEgcmFkaW9zIGRpcmVjdGx5LCBhbHNvIGJ5cGFzc2VzIHZlbmRvciBkcml2ZXJzIGxpa2UgYG10Nzk5NmAsIHNvIGl0J3MgaXJyZWxldmFudC5cblxuVGhlbiwgSSBkb3VibGUtY2hlY2tlZCB0aGUgZ3VpZGVsaW5lcy4gV2UncmUgZXhwbGljaXRseSB0b2xkIHRvIGF2b2lkIGNvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIGV2ZW4gd2l0aCBzb2Z0d2FyZSBlbXVsYXRpb24uIFdlIGFyZSBhbHNvIHRvbGQgdG8gc3RheSBhd2F5IGZyb20gc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyB0aGF0IHJlcXVpcmUgcmVhbCBoYXJkd2FyZSBub3QgYXZhaWxhYmxlIGluIHN0YW5kYXJkIFFFTVUuIFRoYXQncyBleGFjdGx5IHdoZXJlIHdlIGFyZTogYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBXaS1GaSBkcml2ZXIuXG5cblRoZSBjaGFuZ2VzIGluIHRoaXMgcGF0Y2ggc2VyaWVzIGFyZSBhbGwgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2AgLSBgbWFjLmNgLCBgbWFpbi5jYCwgYW5kIGBtbWlvLmNgLiBUaGF0J3MgdGhlIGBtdDc5OTZlYCBtb2R1bGUsIGFuZCB0aGF0J3MgdGhlIHZlbmRvciBkcml2ZXIuIFdpdGhvdXQgdGhlIGFjdHVhbCBNZWRpYVRlayBQQ0llIGhhcmR3YXJlLCB0aGlzIGRyaXZlciB3b24ndCBldmVuIHByb2JlLCBtYWtpbmcgaXRzIGZ1bmN0aW9ucyBjb21wbGV0ZWx5IHVucmVhY2hhYmxlIGluIGEgUUVNVS9HQ0UgZnV6emluZyBzZXR1cC5cblxuVGhlcmVmb3JlLCBmb3IgYWxsIHRoZXNlIHJlYXNvbnMgSSBoYXZlIHRvIGNvbmNsdWRlIHRoYXQgYFdvcnRoRnV6emluZ2Agc2hvdWxkIGJlIGBmYWxzZWAuXG5cblNvLCBoZXJlJ3MgbXkgcHJlcGFyZWQgcmVhc29uaW5nOlxuXG4qICAgVGhlIG1vZGlmaWNhdGlvbnMgYXJlIGxvY2F0ZWQgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2AgZGlyZWN0b3J5LCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSBNZWRpYVRlayBQQ0llIGRyaXZlciB0aGF0IHN1cHBvcnRzIHRoZSBNVDc5OTYgLyBNVDc5OTIgLyBNVDc5OTAgV2ktRmkgZGV2aWNlcy5cbiogICBUaGUgcmVxdWlyZWQgcGh5c2ljYWwgUENJZSBkZXZpY2VzIGFyZSBub3QgZW11bGF0ZWQgaW4gdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgc3VjaCBhcyBRRU1VIG9yIEdDRS4gU29mdHdhcmUgZW11bGF0aW9uIGFsc28gd29uJ3Qgd29yazogVVNCIGdhZGdldHMgb3IgbWFjODAyMTFcXF9od3NpbSBhcmVuJ3QgcmVsZXZhbnQuXG4qICAgQXMgYSByZXN1bHQsIHRoZSBjb2RlIGlzIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlxuXG5BbmQgbm93IEknbSBnb2luZyB0byBjYWxsIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3MjE1LCJPdXRwdXRUb2tlbnMiOjEyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY4NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wMlQwODo1NDowNS40OTA4MzgyMzdaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzM3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBjaGFuZ2VzIGFyZSBjb25maW5lZCB0byBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni8sIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgd2lyZWxlc3MgZHJpdmVyIGZvciBNZWRpYVRlayBNVDc5OTYvTVQ3OTkyL01UNzk5MCBkZXZpY2VzLiBUaGVzZSBQQ0llIGRldmljZXMgcmVxdWlyZSBzcGVjaWZpYyBwaHlzaWNhbCBoYXJkd2FyZSBhbmQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKHN1Y2ggYXMgUUVNVS9HQ0UpLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgdW5yZWFjaGFibGUgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBjaGFuZ2VzIGFyZSBjb25maW5lZCB0byBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni8sIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgd2lyZWxlc3MgZHJpdmVyIGZvciBNZWRpYVRlayBNVDc5OTYvTVQ3OTkyL01UNzk5MCBkZXZpY2VzLiBUaGVzZSBQQ0llIGRldmljZXMgcmVxdWlyZSBzcGVjaWZpYyBwaHlzaWNhbCBoYXJkd2FyZSBhbmQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKHN1Y2ggYXMgUUVNVS9HQ0UpLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgdW5yZWFjaGFibGUgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wMlQwODo1NDowNS40OTA4NjU2ODdaIiwiU2VxIjoxNSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowsvqhw[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-02 08:50:08 +0000 UTC FinishedAt: 2026-09-02 08:54:07 +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+CgkJCTx0ZD4yMDI2LzA5LzAyIDA4OjUyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgY2hhbmdlcyBhcmUgY29uZmluZWQgdG8gZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIHdpcmVsZXNzIGRyaXZlciBmb3IgTWVkaWFUZWsgTVQ3OTk2L01UNzk5Mi9NVDc5OTAgZGV2aWNlcy4gVGhlc2UgUENJZSBkZXZpY2VzIHJlcXVpcmUgc3BlY2lmaWMgcGh5c2ljYWwgaGFyZHdhcmUgYW5kIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChzdWNoIGFzIFFFTVUvR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMiAwODo1MjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDY4NGIwMmU3ZDU2MTcyMDRlOWQ4ZjAwZDgwMjNmZTQ5MDhjY2Q1ZjNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIFNlcCAyIDA4OjUyOjA5IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcbmluZGV4IDFjYmEzODFhNzhiODIuLmZlN2EzMWIwYmM2ODcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcbkBAIC05MzIsNyAmIzQzOzkzMiw3IEBAIHZvaWQgbXQ3OTk2X21hY193cml0ZV90eHdpKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIF9fbGUzMiAqdHh3aSxcbiBcdH0gZWxzZSBpZiAoYmVhY29uKSB7XG4gXHRcdHBfZm10ID0gTVRfVFhfVFlQRV9GVztcbiBcdFx0cV9pZHggPSBNVF9MTUFDX0JDTjA7XG4tXHR9IGVsc2UgaWYgKHFpZCBcdTAwM2U9IE1UX1RYUV9QU0QpIHtcbiYjNDM7XHR9IGVsc2UgaWYgKHFpZCBcdTAwM2U9IE1UX1RYUV9QU0QgfHwgKCEod2NpZC1cdTAwM2V0eF9pbmZvIFx1MDAyNiBNVF9XQ0lEX1RYX0lORk9fU0VUKSkpIHtcbiBcdFx0cF9mbXQgPSBNVF9UWF9UWVBFX0NUO1xuIFx0XHRxX2lkeCA9IE1UX0xNQUNfQUxUWDA7XG4gXHR9IGVsc2Uge1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uY1xuaW5kZXggZTIxODg1NmIwYzQ1NC4uMDBkZGI5ZDMxZWQzMiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jXG5AQCAtMTQxNSw2ICYjNDM7MTQxNSw3IEBAIG10Nzk5Nl9tYWNfc3RhX2V2ZW50KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG4gXHRcdFx0XHRnb3RvIHVubG9jaztcbiBcdFx0XHRicmVhaztcbiBcdFx0Y2FzZSBNVDc2X1NUQV9FVkVOVF9ESVNBU1NPQzpcbiYjNDM7XHRcdFx0bXN0YV9saW5rLVx1MDAzZXdjaWQudHhfaW5mbyBcdTAwMjY9IH5NVF9XQ0lEX1RYX0lORk9fU0VUO1xuIFx0XHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUobXN0YV9saW5rLVx1MDAzZXR3dC5mbG93KTsgaSYjNDM7JiM0MzspXG4gXHRcdFx0XHRtdDc5OTZfbWFjX3R3dF90ZWFyZG93bl9mbG93KGRldiwgbGluayxcbiBcdFx0XHRcdFx0XHRcdCAgICAgbXN0YV9saW5rLCBpKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmNcbmluZGV4IGZiZmJiOTZhNzQyZjcuLjRlMzM1ZTYwMTU4MTQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uY1xuQEAgLTM5MSwyOSAmIzQzOzM5MSwzMSBAQCB2b2lkIG10Nzk5Nl9tZW1jcHlfZnJvbWlvKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHZvaWQgKmJ1ZiwgdTMyIG9mZnNldCxcbiBcdFx0XHQgIHNpemVfdCBsZW4pXG4ge1xuIFx0dTMyIGFkZHIgPSBfX210Nzk5Nl9yZWdfYWRkcihkZXYsIG9mZnNldCk7XG4mIzQzO1x0dW5zaWduZWQgbG9uZyBmbGFncztcbiBcbiBcdGlmIChhZGRyICE9IElOVkFMSURfUkVHX0FERFIpIHtcbiBcdFx0bWVtY3B5X2Zyb21pbyhidWYsIGRldi1cdTAwM2VtdDc2Lm1taW8ucmVncyAmIzQzOyBhZGRyLCBsZW4pO1xuIFx0XHRyZXR1cm47XG4gXHR9XG4gXG4tXHRzcGluX2xvY2tfYmgoXHUwMDI2ZGV2LVx1MDAzZXJlZ19sb2NrKTtcbiYjNDM7XHRzcGluX2xvY2tfaXJxc2F2ZShcdTAwMjZkZXYtXHUwMDNlcmVnX2xvY2ssIGZsYWdzKTtcbiBcdG1lbWNweV9mcm9taW8oYnVmLCBkZXYtXHUwMDNlbXQ3Ni5tbWlvLnJlZ3MgJiM0MztcbiBcdFx0XHQgICBfX210Nzk5Nl9yZWdfcmVtYXBfYWRkcihkZXYsIG9mZnNldCksIGxlbik7XG4tXHRzcGluX3VubG9ja19iaChcdTAwMjZkZXYtXHUwMDNlcmVnX2xvY2spO1xuJiM0MztcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2ZGV2LVx1MDAzZXJlZ19sb2NrLCBmbGFncyk7XG4gfVxuIFxuIHN0YXRpYyB1MzIgbXQ3OTk2X3JyKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdTMyIG9mZnNldClcbiB7XG4gXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc5OTZfZGV2LCBtdDc2KTtcbiBcdHUzMiBhZGRyID0gX19tdDc5OTZfcmVnX2FkZHIoZGV2LCBvZmZzZXQpLCB2YWw7XG4mIzQzO1x0dW5zaWduZWQgbG9uZyBmbGFncztcbiBcbiBcdGlmIChhZGRyICE9IElOVkFMSURfUkVHX0FERFIpXG4gXHRcdHJldHVybiBkZXYtXHUwMDNlYnVzX29wcy1cdTAwM2VycihtZGV2LCBhZGRyKTtcbiBcbi1cdHNwaW5fbG9ja19iaChcdTAwMjZkZXYtXHUwMDNlcmVnX2xvY2spO1xuJiM0MztcdHNwaW5fbG9ja19pcnFzYXZlKFx1MDAyNmRldi1cdTAwM2VyZWdfbG9jaywgZmxhZ3MpO1xuIFx0dmFsID0gZGV2LVx1MDAzZWJ1c19vcHMtXHUwMDNlcnIobWRldiwgX19tdDc5OTZfcmVnX3JlbWFwX2FkZHIoZGV2LCBvZmZzZXQpKTtcbi1cdHNwaW5fdW5sb2NrX2JoKFx1MDAyNmRldi1cdTAwM2VyZWdfbG9jayk7XG4mIzQzO1x0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZkZXYtXHUwMDNlcmVnX2xvY2ssIGZsYWdzKTtcbiBcbiBcdHJldHVybiB2YWw7XG4gfVxuQEAgLTQyMiwyOCAmIzQzOzQyNCwzMCBAQCBzdGF0aWMgdm9pZCBtdDc5OTZfd3Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCB1MzIgb2Zmc2V0LCB1MzIgdmFsKVxuIHtcbiBcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBjb250YWluZXJfb2YobWRldiwgc3RydWN0IG10Nzk5Nl9kZXYsIG10NzYpO1xuIFx0dTMyIGFkZHIgPSBfX210Nzk5Nl9yZWdfYWRkcihkZXYsIG9mZnNldCk7XG4mIzQzO1x0dW5zaWduZWQgbG9uZyBmbGFncztcbiBcbiBcdGlmIChhZGRyICE9IElOVkFMSURfUkVHX0FERFIpIHtcbiBcdFx0ZGV2LVx1MDAzZWJ1c19vcHMtXHUwMDNld3IobWRldiwgYWRkciwgdmFsKTtcbiBcdFx0cmV0dXJuO1xuIFx0fVxuIFxuLVx0c3Bpbl9sb2NrX2JoKFx1MDAyNmRldi1cdTAwM2VyZWdfbG9jayk7XG4mIzQzO1x0c3Bpbl9sb2NrX2lycXNhdmUoXHUwMDI2ZGV2LVx1MDAzZXJlZ19sb2NrLCBmbGFncyk7XG4gXHRkZXYtXHUwMDNlYnVzX29wcy1cdTAwM2V3cihtZGV2LCBfX210Nzk5Nl9yZWdfcmVtYXBfYWRkcihkZXYsIG9mZnNldCksIHZhbCk7XG4tXHRzcGluX3VubG9ja19iaChcdTAwMjZkZXYtXHUwMDNlcmVnX2xvY2spO1xuJiM0MztcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2ZGV2LVx1MDAzZXJlZ19sb2NrLCBmbGFncyk7XG4gfVxuIFxuIHN0YXRpYyB1MzIgbXQ3OTk2X3JtdyhzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHUzMiBvZmZzZXQsIHUzMiBtYXNrLCB1MzIgdmFsKVxuIHtcbiBcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBjb250YWluZXJfb2YobWRldiwgc3RydWN0IG10Nzk5Nl9kZXYsIG10NzYpO1xuIFx0dTMyIGFkZHIgPSBfX210Nzk5Nl9yZWdfYWRkcihkZXYsIG9mZnNldCk7XG4mIzQzO1x0dW5zaWduZWQgbG9uZyBmbGFncztcbiBcbiBcdGlmIChhZGRyICE9IElOVkFMSURfUkVHX0FERFIpXG4gXHRcdHJldHVybiBkZXYtXHUwMDNlYnVzX29wcy1cdTAwM2VybXcobWRldiwgYWRkciwgbWFzaywgdmFsKTtcbiBcbi1cdHNwaW5fbG9ja19iaChcdTAwMjZkZXYtXHUwMDNlcmVnX2xvY2spO1xuJiM0MztcdHNwaW5fbG9ja19pcnFzYXZlKFx1MDAyNmRldi1cdTAwM2VyZWdfbG9jaywgZmxhZ3MpO1xuIFx0dmFsID0gZGV2LVx1MDAzZWJ1c19vcHMtXHUwMDNlcm13KG1kZXYsIF9fbXQ3OTk2X3JlZ19yZW1hcF9hZGRyKGRldiwgb2Zmc2V0KSwgbWFzaywgdmFsKTtcbi1cdHNwaW5fdW5sb2NrX2JoKFx1MDAyNmRldi1cdTAwM2VyZWdfbG9jayk7XG4mIzQzO1x0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZkZXYtXHUwMDNlcmVnX2xvY2ssIGZsYWdzKTtcbiBcbiBcdHJldHVybiB2YWw7XG4gfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAyIDA4OjUyPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIGNoYW5nZXMgYXJlIGNvbmZpbmVkIHRvIGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2Lywgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSB3aXJlbGVzcyBkcml2ZXIgZm9yIE1lZGlhVGVrIE1UNzk5Ni9NVDc5OTIvTVQ3OTkwIGRldmljZXMuIFRoZXNlIFBDSWUgZGV2aWNlcyByZXF1aXJlIHNwZWNpZmljIHBoeXNpY2FsIGhhcmR3YXJlIGFuZCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoc3VjaCBhcyBRRU1VL0dDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA2ODRiMDJlN2Q1NjE3MjA0ZTlkOGYwMGQ4MDIzZmU0OTA4Y2NkNWYzCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBTZXAgMiAwODo1MjowOSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMKaW5kZXggMWNiYTM4MWE3OGI4Mi4uZmU3YTMxYjBiYzY4NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMKQEAgLTkzMiw3ICYjNDM7OTMyLDcgQEAgdm9pZCBtdDc5OTZfbWFjX3dyaXRlX3R4d2koc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgX19sZTMyICp0eHdpLAogCX0gZWxzZSBpZiAoYmVhY29uKSB7CiAJCXBfZm10ID0gTVRfVFhfVFlQRV9GVzsKIAkJcV9pZHggPSBNVF9MTUFDX0JDTjA7Ci0JfSBlbHNlIGlmIChxaWQgJmd0Oz0gTVRfVFhRX1BTRCkgewomIzQzOwl9IGVsc2UgaWYgKHFpZCAmZ3Q7PSBNVF9UWFFfUFNEIHx8ICghKHdjaWQtJmd0O3R4X2luZm8gJmFtcDsgTVRfV0NJRF9UWF9JTkZPX1NFVCkpKSB7CiAJCXBfZm10ID0gTVRfVFhfVFlQRV9DVDsKIAkJcV9pZHggPSBNVF9MTUFDX0FMVFgwOwogCX0gZWxzZSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmMKaW5kZXggZTIxODg1NmIwYzQ1NC4uMDBkZGI5ZDMxZWQzMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYwpAQCAtMTQxNSw2ICYjNDM7MTQxNSw3IEBAIG10Nzk5Nl9tYWNfc3RhX2V2ZW50KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsCiAJCQkJZ290byB1bmxvY2s7CiAJCQlicmVhazsKIAkJY2FzZSBNVDc2X1NUQV9FVkVOVF9ESVNBU1NPQzoKJiM0MzsJCQltc3RhX2xpbmstJmd0O3djaWQudHhfaW5mbyAmYW1wOz0gfk1UX1dDSURfVFhfSU5GT19TRVQ7CiAJCQlmb3IgKGkgPSAwOyBpICZsdDsgQVJSQVlfU0laRShtc3RhX2xpbmstJmd0O3R3dC5mbG93KTsgaSYjNDM7JiM0MzspCiAJCQkJbXQ3OTk2X21hY190d3RfdGVhcmRvd25fZmxvdyhkZXYsIGxpbmssCiAJCQkJCQkJICAgICBtc3RhX2xpbmssIGkpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jCmluZGV4IGZiZmJiOTZhNzQyZjcuLjRlMzM1ZTYwMTU4MTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMKQEAgLTM5MSwyOSAmIzQzOzM5MSwzMSBAQCB2b2lkIG10Nzk5Nl9tZW1jcHlfZnJvbWlvKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHZvaWQgKmJ1ZiwgdTMyIG9mZnNldCwKIAkJCSAgc2l6ZV90IGxlbikKIHsKIAl1MzIgYWRkciA9IF9fbXQ3OTk2X3JlZ19hZGRyKGRldiwgb2Zmc2V0KTsKJiM0MzsJdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCWlmIChhZGRyICE9IElOVkFMSURfUkVHX0FERFIpIHsKIAkJbWVtY3B5X2Zyb21pbyhidWYsIGRldi0mZ3Q7bXQ3Ni5tbWlvLnJlZ3MgJiM0MzsgYWRkciwgbGVuKTsKIAkJcmV0dXJuOwogCX0KIAotCXNwaW5fbG9ja19iaCgmYW1wO2Rldi0mZ3Q7cmVnX2xvY2spOwomIzQzOwlzcGluX2xvY2tfaXJxc2F2ZSgmYW1wO2Rldi0mZ3Q7cmVnX2xvY2ssIGZsYWdzKTsKIAltZW1jcHlfZnJvbWlvKGJ1ZiwgZGV2LSZndDttdDc2Lm1taW8ucmVncyAmIzQzOwogCQkJICAgX19tdDc5OTZfcmVnX3JlbWFwX2FkZHIoZGV2LCBvZmZzZXQpLCBsZW4pOwotCXNwaW5fdW5sb2NrX2JoKCZhbXA7ZGV2LSZndDtyZWdfbG9jayk7CiYjNDM7CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFtcDtkZXYtJmd0O3JlZ19sb2NrLCBmbGFncyk7CiB9CiAKIHN0YXRpYyB1MzIgbXQ3OTk2X3JyKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdTMyIG9mZnNldCkKIHsKIAlzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc5OTZfZGV2LCBtdDc2KTsKIAl1MzIgYWRkciA9IF9fbXQ3OTk2X3JlZ19hZGRyKGRldiwgb2Zmc2V0KSwgdmFsOwomIzQzOwl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJaWYgKGFkZHIgIT0gSU5WQUxJRF9SRUdfQUREUikKIAkJcmV0dXJuIGRldi0mZ3Q7YnVzX29wcy0mZ3Q7cnIobWRldiwgYWRkcik7CiAKLQlzcGluX2xvY2tfYmgoJmFtcDtkZXYtJmd0O3JlZ19sb2NrKTsKJiM0MzsJc3Bpbl9sb2NrX2lycXNhdmUoJmFtcDtkZXYtJmd0O3JlZ19sb2NrLCBmbGFncyk7CiAJdmFsID0gZGV2LSZndDtidXNfb3BzLSZndDtycihtZGV2LCBfX210Nzk5Nl9yZWdfcmVtYXBfYWRkcihkZXYsIG9mZnNldCkpOwotCXNwaW5fdW5sb2NrX2JoKCZhbXA7ZGV2LSZndDtyZWdfbG9jayk7CiYjNDM7CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFtcDtkZXYtJmd0O3JlZ19sb2NrLCBmbGFncyk7CiAKIAlyZXR1cm4gdmFsOwogfQpAQCAtNDIyLDI4ICYjNDM7NDI0LDMwIEBAIHN0YXRpYyB2b2lkIG10Nzk5Nl93cihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHUzMiBvZmZzZXQsIHUzMiB2YWwpCiB7CiAJc3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3OTk2X2RldiwgbXQ3Nik7CiAJdTMyIGFkZHIgPSBfX210Nzk5Nl9yZWdfYWRkcihkZXYsIG9mZnNldCk7CiYjNDM7CXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKIAlpZiAoYWRkciAhPSBJTlZBTElEX1JFR19BRERSKSB7CiAJCWRldi0mZ3Q7YnVzX29wcy0mZ3Q7d3IobWRldiwgYWRkciwgdmFsKTsKIAkJcmV0dXJuOwogCX0KIAotCXNwaW5fbG9ja19iaCgmYW1wO2Rldi0mZ3Q7cmVnX2xvY2spOwomIzQzOwlzcGluX2xvY2tfaXJxc2F2ZSgmYW1wO2Rldi0mZ3Q7cmVnX2xvY2ssIGZsYWdzKTsKIAlkZXYtJmd0O2J1c19vcHMtJmd0O3dyKG1kZXYsIF9fbXQ3OTk2X3JlZ19yZW1hcF9hZGRyKGRldiwgb2Zmc2V0KSwgdmFsKTsKLQlzcGluX3VubG9ja19iaCgmYW1wO2Rldi0mZ3Q7cmVnX2xvY2spOwomIzQzOwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZhbXA7ZGV2LSZndDtyZWdfbG9jaywgZmxhZ3MpOwogfQogCiBzdGF0aWMgdTMyIG10Nzk5Nl9ybXcoc3RydWN0IG10NzZfZGV2ICptZGV2LCB1MzIgb2Zmc2V0LCB1MzIgbWFzaywgdTMyIHZhbCkKIHsKIAlzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc5OTZfZGV2LCBtdDc2KTsKIAl1MzIgYWRkciA9IF9fbXQ3OTk2X3JlZ19hZGRyKGRldiwgb2Zmc2V0KTsKJiM0MzsJdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCWlmIChhZGRyICE9IElOVkFMSURfUkVHX0FERFIpCiAJCXJldHVybiBkZXYtJmd0O2J1c19vcHMtJmd0O3JtdyhtZGV2LCBhZGRyLCBtYXNrLCB2YWwpOwogCi0Jc3Bpbl9sb2NrX2JoKCZhbXA7ZGV2LSZndDtyZWdfbG9jayk7CiYjNDM7CXNwaW5fbG9ja19pcnFzYXZlKCZhbXA7ZGV2LSZndDtyZWdfbG9jaywgZmxhZ3MpOwogCXZhbCA9IGRldi0mZ3Q7YnVzX29wcy0mZ3Q7cm13KG1kZXYsIF9fbXQ3OTk2X3JlZ19yZW1hcF9hZGRyKGRldiwgb2Zmc2V0KSwgbWFzaywgdmFsKTsKLQlzcGluX3VubG9ja19iaCgmYW1wO2Rldi0mZ3Q7cmVnX2xvY2spOwomIzQzOwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZhbXA7ZGV2LSZndDtyZWdfbG9jaywgZmxhZ3MpOwogCiAJcmV0dXJuIHZhbDsKIH0KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDIgMDg6NTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzY2NAoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDE3MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBwYXRjaCBhbmQgZmlndXJlIG91dCBpdHMgcG90ZW50aWFsIGZ1enppbmcgdmFsdWUuIE15IGZpcnN0IHRob3VnaHQgaXMgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgaW50cm9kdWNlcyBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRoYXQgYXJlIHJpcGUgZm9yIGZ1enppbmcuIFRoZSBmYWN0IHRoYXQgaXQmIzM5O3MgdG91Y2hpbmcgd2lyZWxlc3MgbmV0d29yayBkcml2ZXJzLCBzcGVjaWZpY2FsbHkgdGhlIGBtdDc5OTZgIGZhbWlseSwgaW1tZWRpYXRlbHkgcGlxdWVzIG15IGludGVyZXN0LiBJIG5lZWQgdG8gcXVpY2tseSBlc3RhYmxpc2ggaWYgdGhpcyBjb2RlIGlzIHJlbGV2YW50IHRvIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBRRU1VLCBvciBpZiBpdCYjMzk7cyBwcmltYXJpbHkgdGllZCB0byBoYXJkd2FyZSBpbnRlcmFjdGlvbnMgdGhhdCB3b3VsZCBiZSBkaWZmaWN1bHQgb3IgaW1wb3NzaWJsZSB0byByZWFjaCB3aXRob3V0IHNwZWNpZmljIGhhcmR3YXJlLgoKVG8gZG8gdGhpcywgSSYjMzk7bGwgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBNVDc5OTYgY2hpcHNldCBhIGJpdCBiZXR0ZXIuIFdoYXQgYnVzIGRvZXMgaXQgdXRpbGl6ZT8gSXMgaXQgUENJZSwgVVNCLCBzb21ldGhpbmcgZWxzZT8gSSYjMzk7bGwgcHJvYmFibHkgZmlyZSB1cCBgZ3JlcHBlcmAgKG9yIHVzZSBteSBwcmVmZXJyZWQgY29kZSBzZWFyY2ggdG9vbCBpZiBpdCYjMzk7cyBub3QgYXZhaWxhYmxlKSBhbmQgc2VhcmNoIHRoZSBjb2RlYmFzZSBmb3IgcmVmZXJlbmNlcyB0byBNVDc5OTYsIHBheWluZyBjbG9zZSBhdHRlbnRpb24gdG8gYW55IG1lbnRpb25zIG9mIGJ1cy1yZWxhdGVkIGNvbmZpZ3VyYXRpb25zLiBBbHRlcm5hdGl2ZWx5LCBJIHNob3VsZCBiZSBhYmxlIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGVzIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2AgZGlyZWN0b3J5IHRvIGdldCBhIHNlbnNlIG9mIHRoZSBoYXJkd2FyZSBkZXBlbmRlbmNpZXMuIEtub3dpbmcgdGhlIGJ1cyB0eXBlIHdpbGwgYmUgY3J1Y2lhbCBpbiBkZWNpZGluZyBpZiBJIGNhbiBlZmZlY3RpdmVseSBmdXp6IHRoaXMgd2l0aGluIGEgc3RhbmRhcmQgUUVNVSBzZXR1cC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMiAwODo1MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtDT05GSUdfTVQ3OTk2JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3NiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlPTUwPW9iai0kKENPTkZJR19NVDc5MjFfQ09NTU9OKSAmIzQzOz0gbXQ3OTIxL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZTo1MTpvYmotJChDT05GSUdfTVQ3OTk2RSkgJiM0Mzs9IG10Nzk5Ni9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtNTItb2JqLSQoQ09ORklHX01UNzkyNV9DT01NT04pICYjNDM7PSBtdDc5MjUvXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX01UNzk5NkUpICYjNDM7PSBtdDc5OTZlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZT01PW10Nzk5NmUteSA6PSBwY2kubyBpbml0Lm8gZG1hLm8gZWVwcm9tLm8gbWFpbi5vIG1jdS5vIG1hYy5vIFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlOjg6bXQ3OTk2ZS0kKENPTkZJR19NVDc5OTZfTlBVKSAmIzQzOz0gbnB1Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTktbXQ3OTk2ZS0kKENPTkZJR19ERVZfQ09SRURVTVApICYjNDM7PSBjb3JlZHVtcC5vXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jPTIzOTk9bXQ3OTk2X25ldF9maWxsX2ZvcndhcmRfcGF0aChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmMtMjQ1Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYzoyNDU3OiNpZiBkZWZpbmVkKENPTkZJR19ORVRfTUVESUFURUtfU09DX1dFRCkgfHwgZGVmaW5lZChDT05GSUdfTVQ3OTk2X05QVSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYy0yNDU4LXN0YXRpYyBpbnRcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM9MjU0Nj1jb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc5OTZfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYy0yNjAwLVx0Lm5ldF9maWxsX2ZvcndhcmRfcGF0aCA9IG10Nzk5Nl9uZXRfZmlsbF9mb3J3YXJkX3BhdGgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM6MjYwMTojaWYgZGVmaW5lZChDT05GSUdfTkVUX01FRElBVEVLX1NPQ19XRUQpIHx8IGRlZmluZWQoQ09ORklHX01UNzk5Nl9OUFUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmMtMjYwMi1cdC5uZXRfc2V0dXBfdGMgPSBtdDc5OTZfbmV0X3NldHVwX3RjLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oPTk1MD12b2lkIG10Nzk5Nl9kbWFfcnJvX3N0YXJ0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtOTUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg6OTUyOiNpZmRlZiBDT05GSUdfTVQ3OTk2X05QVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtOTUzLWludCBfX210Nzk5Nl9ucHVfaHdfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaD05NzM9c3RhdGljIGlubGluZSBpbnQgbXQ3OTk2X25wdV9yeF9xdWV1ZXNfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oLTk3Ni19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo5Nzc6I2VuZGlmIC8qIENPTkZJR19NVDc5OTZfTlBVICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaC05NzgtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDIgMDg6NTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTMwNwoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDIxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHM6CgoqKkFuYWx5emluZyB0aGUgTWVkaWF0ZWsgV2lyZWxlc3MgRHJpdmVyIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gSSBuZWVkIHRvIGRpdmUgaW50byB0aGUgTWVkaWF0ZWsgd2lyZWxlc3MgZHJpdmVyIHNpdHVhdGlvbi4gTXkgaW1tZWRpYXRlIGluc3RpbmN0IGlzIHRvIGxvb2sgYXQgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSwgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZ2AuIFRoYXQmIzM5O3Mgd2hlcmUgYWxsIHRoZSBidWlsZCBvcHRpb25zIGFuZCBkZXBlbmRlbmNpZXMgZm9yIHRoYXQgc3BlY2lmaWMgZHJpdmVyIHNob3VsZCBiZSBkZWZpbmVkLiBGcm9tIHRoZSBLY29uZmlnLCBJIGNhbiBkZXRlcm1pbmUgd2hpY2ggZmVhdHVyZXMgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdCwgd2hhdCBtb2R1bGVzIGFyZSBhdmFpbGFibGUsIGhvdyB0byBlbmFibGUvZGlzYWJsZSBzcGVjaWZpYyBoYXJkd2FyZSBzdXBwb3J0LCBhbmQgd2hhdCBvdGhlciBrZXJuZWwgY29tcG9uZW50cyBpdCBtaWdodCBkZXBlbmQgb24uIFRoaXMgd2lsbCBnaXZlIG1lIGEgc29saWQgYmFzZSB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGlzIGRyaXZlciBpcyBzdHJ1Y3R1cmVkIGFuZCBob3cgdG8gY29udHJvbCBpdCBkdXJpbmcgdGhlIGJ1aWxkIHByb2Nlc3MuIEl0JiMzOTtzIHRoZSBsb2dpY2FsIHN0YXJ0aW5nIHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIGhvdyB0aGlzIGRyaXZlciBpbnRlZ3JhdGVzIGludG8gdGhlIGtlcm5lbCBjb25maWd1cmF0aW9uLiBLbm93aW5nIGhvdyBpdCYjMzk7cyBjb25maWd1cmVkIGlzIGtleSB0byBtYWtpbmcgYW55IHByb2dyZXNzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAyIDA4OjUyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O01UNzk5NiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDE1ODIgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU9NTA9b2JqLSQoQ09ORklHX01UNzkyMV9DT01NT04pICYjNDM7PSBtdDc5MjEvXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjUxOm9iai0kKENPTkZJR19NVDc5OTZFKSAmIzQzOz0gbXQ3OTk2L1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZS01Mi1vYmotJChDT05GSUdfTVQ3OTI1X0NPTU1PTikgJiM0Mzs9IG10NzkyNS9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjI6Y29uZmlnIE1UNzk5NkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6MzpcdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzk5NiAoUENJZSkgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy00LVx0c2VsZWN0IE1UNzZfQ09OTkFDX0xJQlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctOS1cdGhlbHBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6MTA6XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5OTYtYmFzZWQgUENJZSB3aXJlbGVzcyBkZXZpY2VzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy0xMS1cdCAgd2hpY2ggc3VwcG9ydCBjb25jdXJyZW50IHRyaS1iYW5kIG9wZXJhdGlvbiBhdCA2R0h6LCA1R0h6LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctMTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjE2OmNvbmZpZyBNVDc5OTZfTlBVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjE3Olx0Ym9vbCBcJiMzNDtNVDc5OTYgKFBDSWUpIE5QVSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjE4Olx0ZGVwZW5kcyBvbiBNVDc5OTZFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTE5LVx0ZGVwZW5kcyBvbiBORVRfQUlST0hBX05QVT15IHx8IE1UNzZfQ09SRT1ORVRfQUlST0hBX05QVVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTozOm9iai0kKENPTkZJR19NVDc5OTZFKSAmIzQzOz0gbXQ3OTk2ZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS00LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU9NT1tdDc5OTZlLXkgOj0gcGNpLm8gaW5pdC5vIGRtYS5vIGVlcHJvbS5vIG1haW4ubyBtY3UubyBtYWMubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTo4Om10Nzk5NmUtJChDT05GSUdfTVQ3OTk2X05QVSkgJiM0Mzs9IG5wdS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS05LW10Nzk5NmUtJChDT05GSUdfREVWX0NPUkVEVU1QKSAmIzQzOz0gY29yZWR1bXAub1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM9NDg9bXQ3OTk2X2NvcmVkdW1wX2dldF9tZW1fbGF5b3V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHUzMiAqbnVtKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNTAtXHRzd2l0Y2ggKG10NzZfY2hpcChcdTAwMjZkZXYtXHUwMDNlbXQ3NikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NTE6XHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjUyOlx0Y2FzZSBNVDc5OTZfREVWSUNFX0lEXzI6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTUzLVx0XHQqbnVtID0gQVJSQVlfU0laRShtdDc5OTZfbWVtX3JlZ2lvbnMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jPTQ2PXN0YXRpYyB2b2lkIG10Nzk5Nl9kbWFfY29uZmlnKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTktXHQvKiByeCBxdWV1ZSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjA6XHRSWFFfQ09ORklHKE1UX1JYUV9NQ1UsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfV00sIE1UNzk5Nl9SWFFfTUNVX1dNKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYxLVx0LyogZm9yIG10Nzk5MCwgUlggcmluZyAxIGlzIGZvciBTRE8gaW5zdGVhZCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjI6XHRSWFFfQ09ORklHKE1UX1JYUV9NQ1VfV0EsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfV0EsIE1UNzk5Nl9SWFFfTUNVX1dBKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjYzOlx0UlhRX0NPTkZJRyhNVF9SWFFfTUFJTiwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9CQU5EMCwgTVQ3OTk2X1JYUV9CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02NC1cdGlmIChtdDc5OTZfaGFzX3dhKGRldikpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02NS1cdFx0UlhRX0NPTkZJRyhNVF9SWFFfTUFJTl9XQSwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9XQV9NQUlOLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjY6XHRcdFx0ICAgTVQ3OTk2X1JYUV9NQ1VfV0FfTUFJTik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02Ny1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02OS1cdGNhc2UgTVQ3OTkyX0RFVklDRV9JRDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjcwOlx0XHRSWFFfQ09ORklHKE1UX1JYUV9CQU5EMV9XQSwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9XQV9FWFQsIE1UNzk5Nl9SWFFfTUNVX1dBX0VYVCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3MTpcdFx0UlhRX0NPTkZJRyhNVF9SWFFfQkFORDEsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfQkFORDEsIE1UNzk5Nl9SWFFfQkFORDEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzItXHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzMtXHRjYXNlIE1UNzk5MF9ERVZJQ0VfSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3NDpcdFx0UlhRX0NPTkZJRyhNVF9SWFFfQkFORDEsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfQkFORDEsIE1UNzk5Nl9SWFFfQkFORDEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzUtXHRcdFJYUV9DT05GSUcoTVRfUlhRX1RYRlJFRV9CQU5EMCwgV0ZETUEwLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgwLVx0XHRicmVhaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjgxOlx0Y2FzZSBNVDc5OTZfREVWSUNFX0lEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODItXHRkZWZhdWx0OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODMtXHRcdC8qIG10Nzk5NiBiYW5kMiAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODQ6XHRcdFJYUV9DT05GSUcoTVRfUlhRX0JBTkQyX1dBLCBXRkRNQTAsIE1UX0lOVF9SWF9ET05FX1dBX1RSSSwgTVQ3OTk2X1JYUV9NQ1VfV0FfVFJJKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg1Olx0XHRSWFFfQ09ORklHKE1UX1JYUV9CQU5EMiwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9CQU5EMiwgTVQ3OTk2X1JYUV9CQU5EMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04Ni1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTEtXHRcdFJYUV9DT05GSUcoTVRfUlhRX1JST19CQU5EMCwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9SUk9fQkFORDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo5MjpcdFx0XHQgICBNVDc5OTZfUlhRX1JST19CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05My1cdFx0aWYgKGRldi1cdTAwM2VtdDc2Lmh3cnJvX21vZGUgPT0gTVQ3Nl9IV1JST19WMylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05NS1cdFx0XHRcdCAgIE1UX0lOVF9SWF9ET05FX01TRFVfUEdfQkFORDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo5NjpcdFx0XHRcdCAgIE1UNzk5Nl9SWFFfTVNEVV9QR19CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05Ny1cdFx0aWYgKGlzX210Nzk5NihcdTAwMjZkZXYtXHUwMDNlbXQ3NikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTk4LVx0XHRcdFJYUV9DT05GSUcoTVRfUlhRX1RYRlJFRV9CQU5EMCwgV0ZETUEwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTk6XHRcdFx0XHQgICBNVF9JTlRfUlhfVFhGUkVFX01BSU4sIE1UNzk5Nl9SWFFfVFhGUkVFMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDAtXHRcdFx0LyogYmFuZDEgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDItXHRcdFx0XHQgICBNVF9JTlRfUlhfRE9ORV9NU0RVX1BHX0JBTkQxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTAzOlx0XHRcdFx0ICAgTVQ3OTk2X1JYUV9NU0RVX1BHX0JBTkQxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwNC1cdFx0XHQvKiBiYW5kMiAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwNi1cdFx0XHRcdCAgIE1UX0lOVF9SWF9ET05FX1JST19CQU5EMixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwNzpcdFx0XHRcdCAgIE1UNzk5Nl9SWFFfUlJPX0JBTkQyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwOC1cdFx0XHRSWFFfQ09ORklHKE1UX1JYUV9NU0RVX1BBR0VfQkFORDIsIFdGRE1BMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwOS1cdFx0XHRcdCAgIE1UX0lOVF9SWF9ET05FX01TRFVfUEdfQkFORDIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMTA6XHRcdFx0XHQgICBNVDc5OTZfUlhRX01TRFVfUEdfQkFORDIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTExLVx0XHRcdFJYUV9DT05GSUcoTVRfUlhRX1RYRlJFRV9CQU5EMiwgV0ZETUEwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTEyOlx0XHRcdFx0ICAgTVRfSU5UX1JYX1RYRlJFRV9UUkksIE1UNzk5Nl9SWFFfVFhGUkVFMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMTMtXHRcdH0gZWxzZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTE1LVx0XHRcdFx0ICAgTVRfSU5UX1JYX0RPTkVfUlJPX0JBTkQxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTE2Olx0XHRcdFx0ICAgTVQ3OTk2X1JYUV9SUk9fQkFORDEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTE3LVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTIxLVx0XHRcdFx0ICAgTVRfSU5UX1JYX0RPTkVfUlJPX0lORCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEyMjpcdFx0XHRcdCAgIE1UNzk5Nl9SWFFfUlJPX0lORCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMjMtXHRcdGVsc2Vcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMjUtXHRcdFx0XHQgICBNVF9JTlRfUlhfRE9ORV9SUk9fUlhETUFEX0MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMjY6XHRcdFx0XHQgICBNVDc5OTZfUlhRX1JST19SWERNQURfQyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMjctXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTMzLVx0XHRcdFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTM0Olx0XHRcdFx0XHQgICBNVDc5OTZfVFhRX0JBTkQyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEzNS1cdFx0XHRcdFRYUV9DT05GSUcoMSwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEzNjpcdFx0XHRcdFx0ICAgTVQ3OTk2X1RYUV9CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMzctXHRcdFx0XHRUWFFfQ09ORklHKDIsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfQkFORDEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMzg6XHRcdFx0XHRcdCAgIE1UNzk5Nl9UWFFfQkFORDEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTM5LVx0XHRcdH0gZWxzZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTQxLVx0XHRcdFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTQyOlx0XHRcdFx0XHQgICBNVDc5OTZfVFhRX0JBTkQwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTE0My1cdFx0XHRcdFRYUV9DT05GSUcoMSwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE0NDpcdFx0XHRcdFx0ICAgTVQ3OTk2X1RYUV9CQU5EMSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNDUtXHRcdFx0XHRUWFFfQ09ORklHKDIsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfQkFORDIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxNDY6XHRcdFx0XHRcdCAgIE1UNzk5Nl9UWFFfQkFORDIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTQ3LVx0XHRcdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNTAtXHRcdFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTUxOlx0XHRcdFx0ICAgTVQ3OTk2X1RYUV9CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNTItXHRcdFx0VFhRX0NPTkZJRygyLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTUzOlx0XHRcdFx0ICAgTVQ3OTk2X1RYUV9CQU5EMSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNTQtXHRcdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNTgtXHRcdFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTU5Olx0XHRcdFx0ICAgTVQ3OTk2X1RYUV9CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNjAtXHRcdFx0VFhRX0NPTkZJRygxLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTYxOlx0XHRcdFx0ICAgTVQ3OTk2X1RYUV9CQU5EMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNjItXHRcdH0gZWxzZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTY0LVx0XHRcdFRYUV9DT05GSUcoMCwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE2NTpcdFx0XHRcdCAgIE1UNzk5Nl9UWFFfQkFORDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTY2LVx0XHRcdFRYUV9DT05GSUcoMSwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE2NzpcdFx0XHRcdCAgIE1UNzk5Nl9UWFFfQkFORDEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTY4LVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTcxLVx0LyogbWN1IHR4IHF1ZXVlICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxNzI6XHRNQ1VRX0NPTkZJRyhNVF9NQ1VRX0ZXREwsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfRldETCwgTVQ3OTk2X1RYUV9GV0RMKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE3MzpcdE1DVVFfQ09ORklHKE1UX01DVVFfV00sIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfTUNVX1dNLCBNVDc5OTZfVFhRX01DVV9XTSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNzQtXHRpZiAobXQ3OTk2X2hhc193YShkZXYpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTc1LVx0XHRNQ1VRX0NPTkZJRyhNVF9NQ1VRX1dBLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX01DVV9XQSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE3NjpcdFx0XHQgICAgTVQ3OTk2X1RYUV9NQ1VfV0EpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTc3LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz01MjE9aW50IG10Nzk5Nl9kbWFfcnJvX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01MzUtXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9SUk9fUlhETUFEX0MpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTM2Olx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1Mzc6XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX0JVRl9TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTM4LVx0XHRcdFx0ICAgICAgIE1UX1JYUV9SUk9fQVBfUklOR19CQVNFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NjEtXHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfUlJPX0lORCksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1NjI6XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NjMtXHRcdFx0ICAgICAgIDAsIE1UX1JYUV9SUk9fSU5EX1JJTkdfQkFTRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTc0LVx0c2l6ZSA9IGlzX210Nzk5NihtZGV2KSBcdTAwMjZcdTAwMjYgbXQ3Nl9ucHVfZGV2aWNlX2FjdGl2ZShtZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTc1Olx0ICAgICAgID8gTVQ3OTk2X05QVV9SWF9SSU5HX1NJWkUgLyA0IDogTVQ3OTk2X1JYX1JJTkdfU0laRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU3Ni1cdHJldCA9IG10NzZfcXVldWVfYWxsb2MoZGV2LCBcdTAwMjZtZGV2LVx1MDAzZXFfcnhbTVRfUlhRX01TRFVfUEFHRV9CQU5EMF0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NzctXHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfTVNEVV9QQUdFX0JBTkQwKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjU3ODpcdFx0XHQgICAgICAgc2l6ZSwgTVQ3OTk2X1JYX01TRFVfUEFHRV9TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTc5LVx0XHRcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9NU0RVX1BBR0VfQkFORDApKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01OTEtXHRcdHNpemUgPSBpc19tdDc5OTYobWRldikgXHUwMDI2XHUwMDI2IG10NzZfbnB1X2RldmljZV9hY3RpdmUobWRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjU5MjpcdFx0ICAgICAgID8gTVQ3OTk2X05QVV9SWF9SSU5HX1NJWkUgLyAyIDogTVQ3OTk2X1JYX1JJTkdfU0laRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU5My1cdFx0cmV0ID0gbXQ3Nl9xdWV1ZV9hbGxvYyhkZXYsIFx1MDAyNm1kZXYtXHUwMDNlcV9yeFtNVF9SWFFfTVNEVV9QQUdFX0JBTkQxXSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU5NC1cdFx0XHRcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX01TRFVfUEFHRV9CQU5EMSksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1OTU6XHRcdFx0XHQgICAgICAgc2l6ZSwgTVQ3OTk2X1JYX01TRFVfUEFHRV9TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTk2LVx0XHRcdFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX01TRFVfUEFHRV9CQU5EMSkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYwOS1cdFx0c2l6ZSA9IGlzX210Nzk5NihtZGV2KSBcdTAwMjZcdTAwMjYgbXQ3Nl9ucHVfZGV2aWNlX2FjdGl2ZShtZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjEwOlx0XHQgICAgICAgPyBNVDc5OTZfTlBVX1JYX1JJTkdfU0laRSA6IE1UNzk5Nl9SWF9SSU5HX1NJWkU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02MTEtXHRcdHJldCA9IG10NzZfcXVldWVfYWxsb2MoZGV2LCBcdTAwMjZtZGV2LVx1MDAzZXFfcnhbTVRfUlhRX01TRFVfUEFHRV9CQU5EMl0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02MTItXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9NU0RVX1BBR0VfQkFORDIpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjEzOlx0XHRcdFx0ICAgICAgIHNpemUsIE1UNzk5Nl9SWF9NU0RVX1BBR0VfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYxNC1cdFx0XHRcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9NU0RVX1BBR0VfQkFORDIpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz02NjQ9aW50IG10Nzk5Nl9kbWFfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY4My1cdFx0cmV0ID0gbXQ3OTk2X2luaXRfdHhfcXVldWVzKFx1MDAyNmRldi1cdTAwM2VwaHksIE1UX1RYUV9JRCgwKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjY4NDpcdFx0XHRcdFx0ICAgIE1UNzk5Nl9OUFVfVFhfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjg1LVx0XHRcdFx0XHQgICAgTVRfVFhRX1JJTkdfQkFTRSgwKSAmIzQzOyBoaWYxX29mcyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02ODktXHRcdFx0XHRcdCAgICBNVF9UWFFfSUQoZGV2LVx1MDAzZW1waHkuYmFuZF9pZHgpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjkwOlx0XHRcdFx0XHQgICAgTVQ3OTk2X1RYX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY5MS1cdFx0XHRcdFx0ICAgIE1UX1RYUV9SSU5HX0JBU0UoMCksIHdlZCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjk3LVx0XHRcdFx0ICBNVF9NQ1VRX0lEKE1UX01DVVFfV00pLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6Njk4Olx0XHRcdFx0ICBNVDc5OTZfVFhfTUNVX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY5OS1cdFx0XHRcdCAgTVRfTUNVUV9SSU5HX0JBU0UoTVRfTUNVUV9XTSkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTcwNi1cdFx0XHRcdFx0ICBNVF9NQ1VRX0lEKE1UX01DVVFfV0EpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzA3Olx0XHRcdFx0XHQgIE1UNzk5Nl9UWF9NQ1VfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzA4LVx0XHRcdFx0XHQgIE1UX01DVVFfUklOR19CQVNFKE1UX01DVVFfV0EpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03MTUtXHRcdFx0XHQgIE1UX01DVVFfSUQoTVRfTUNVUV9GV0RMKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjcxNjpcdFx0XHRcdCAgTVQ3OTk2X1RYX0ZXRExfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzE3LVx0XHRcdFx0ICBNVF9NQ1VRX1JJTkdfQkFTRShNVF9NQ1VRX0ZXREwpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03MjMtXHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfTUNVKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjcyNDpcdFx0XHQgICAgICAgTVQ3OTk2X1JYX01DVV9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3MjU6XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfQlVGX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03MjYtXHRcdFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX01DVSkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTczMi1cdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9NQ1VfV0EpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzMzOlx0XHRcdCAgICAgICBNVDc5OTZfUlhfTUNVX1JJTkdfU0laRV9XQSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjczNDpcdFx0XHQgICAgICAgTVQ3OTk2X1JYX01DVV9CVUZfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTczNS1cdFx0XHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfTUNVX1dBKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzQ2LVx0XHRcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX01BSU4pLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzQ3Olx0XHRcdCAgICAgICBNVDc5OTZfUlhfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzQ4LVx0XHRcdCAgICAgICBNVF9SWF9CVUZfU0laRSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03NjYtXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9NQUlOX1dBKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjc2NzpcdFx0XHRcdCAgICAgICBNVDc5OTZfUlhfTUNVX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc2OC1cdFx0XHRcdCAgICAgICBNVF9SWF9CVUZfU0laRSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03NzgtXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9UWEZSRUVfQkFORDApLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6Nzc5Olx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzgwOlx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9CVUZfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc4MS1cdFx0XHRcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9UWEZSRUVfQkFORDApKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03OTItXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9UWEZSRUVfQkFORDEpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzkzOlx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6Nzk0Olx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9CVUZfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc5NS1cdFx0XHRcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9UWEZSRUVfQkFORDEpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MDQtXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9CQU5EMiksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4MDU6XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgwNi1cdFx0XHRcdCAgICAgICBNVF9SWF9CVUZfU0laRSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MjAtXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9CQU5EMl9XQSksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4MjE6XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX01DVV9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MjItXHRcdFx0XHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODM1LVx0XHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfQkFORDEpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODM2Olx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MzctXHRcdFx0XHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODUyLVx0XHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9CQU5EMV9XQSksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4NTM6XHRcdFx0XHRcdCAgICAgICBNVDc5OTZfUlhfTUNVX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg1NC1cdFx0XHRcdFx0ICAgICAgIE1UX1JYX0JVRl9TSVpFLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg2OC1cdFx0XHRcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX1JST19CQU5EMCksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4Njk6XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg3MDpcdFx0XHRcdCAgICAgICBNVDc5OTZfUlhfQlVGX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04NzEtXHRcdFx0XHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfUlJPX0JBTkQwKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODgzLVx0XHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9SUk9fQkFORDEpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODg0Olx0XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg4NTpcdFx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9CVUZfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg4Ni1cdFx0XHRcdFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX1JST19CQU5EMSkgJiM0MzsgaGlmMV9vZnMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkwMC1cdFx0XHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfVFhGUkVFX0JBTkQwKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjkwMTpcdFx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTAyOlx0XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX0JVRl9TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTAzLVx0XHRcdFx0XHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfVFhGUkVFX0JBTkQwKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTE5LVx0XHRcdCAgICAgICBtdDc2X25wdV9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtdDc2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTIwOlx0XHRcdCAgICAgICA/IE1UNzk5Nl9OUFVfUlhfUklOR19TSVpFIDogTVQ3OTk2X1JYX1JJTkdfU0laRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkyMS1cdFx0XHRyZXQgPSBtdDc2X3F1ZXVlX2FsbG9jKGRldiwgXHUwMDI2ZGV2LVx1MDAzZW10NzYucV9yeFtNVF9SWFFfUlJPX0JBTkQyXSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkyMi1cdFx0XHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfUlJPX0JBTkQyKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjkyMzpcdFx0XHRcdFx0ICAgICAgIHNpemUsIE1UNzk5Nl9SWF9CVUZfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkyNC1cdFx0XHRcdFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX1JST19CQU5EMikgJiM0MzsgaGlmMV9vZnMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkzNC1cdFx0XHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfVFhGUkVFX0JBTkQyKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjkzNTpcdFx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTM2Olx0XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX0JVRl9TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTM3LVx0XHRcdFx0XHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfVFhGUkVFX0JBTkQyKSAmIzQzOyBoaWYxX29mcyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM9MTA9c3RhdGljIGludCBtdDc5OTZfY2hlY2tfZWVwcm9tKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTUtXHRzd2l0Y2ggKHZhbCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTY6XHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xNy1cdFx0cmV0dXJuIGlzX210Nzk5NihcdTAwMjZkZXYtXHUwMDNlbXQ3NikgPyAwIDogLUVJTlZBTDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYz0yNz1zdGF0aWMgY2hhciAqbXQ3OTk2X2VlcHJvbV9uYW1lKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMzItXHRcdGNhc2UgTVQ3OTkyX1ZBUl9UWVBFXzIzOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MzM6XHRcdFx0aWYgKGRldi1cdTAwM2V2YXIuZmVtID09IE1UNzk5Nl9GRU1fSU5UKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMzQtXHRcdFx0XHRyZXR1cm4gTVQ3OTkyX0VFUFJPTV9ERUZBVUxUXzIzX0lOVDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0zOS1cdFx0ZGVmYXVsdDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjQwOlx0XHRcdGlmIChkZXYtXHUwMDNldmFyLmZlbSA9PSBNVDc5OTZfRkVNX0lOVClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTQxLVx0XHRcdFx0cmV0dXJuIE1UNzk5Ml9FRVBST01fREVGQVVMVF9JTlQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo0MjpcdFx0XHRpZiAoZGV2LVx1MDAzZXZhci5mZW0gPT0gTVQ3OTk2X0ZFTV9NSVgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy00My1cdFx0XHRcdHJldHVybiBNVDc5OTJfRUVQUk9NX0RFRkFVTFRfTUlYO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTQ2LVx0Y2FzZSBNVDc5OTBfREVWSUNFX0lEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NDc6XHRcdGlmIChkZXYtXHUwMDNldmFyLmZlbSA9PSBNVDc5OTZfRkVNX0lOVClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTQ4LVx0XHRcdHJldHVybiBNVDc5OTBfRUVQUk9NX0RFRkFVTFRfSU5UO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtNDktXHRcdHJldHVybiBNVDc5OTBfRUVQUk9NX0RFRkFVTFQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo1MDpcdGNhc2UgTVQ3OTk2X0RFVklDRV9JRDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTUxLVx0ZGVmYXVsdDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTUyLVx0XHRzd2l0Y2ggKGRldi1cdTAwM2V2YXIudHlwZSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NTM6XHRcdGNhc2UgTVQ3OTk2X1ZBUl9UWVBFXzIzMzpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjU0Olx0XHRcdGlmIChkZXYtXHUwMDNldmFyLmZlbSA9PSBNVDc5OTZfRkVNX0lOVClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjU1Olx0XHRcdFx0cmV0dXJuIE1UNzk5Nl9FRVBST01fREVGQVVMVF8yMzNfSU5UO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NTY6XHRcdFx0cmV0dXJuIE1UNzk5Nl9FRVBST01fREVGQVVMVF8yMzM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo1NzpcdFx0Y2FzZSBNVDc5OTZfVkFSX1RZUEVfNDQ0OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtNTgtXHRcdGRlZmF1bHQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo1OTpcdFx0XHRpZiAoZGV2LVx1MDAzZXZhci5mZW0gPT0gTVQ3OTk2X0ZFTV9JTlQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo2MDpcdFx0XHRcdHJldHVybiBNVDc5OTZfRUVQUk9NX0RFRkFVTFRfSU5UO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NjE6XHRcdFx0cmV0dXJuIE1UNzk5Nl9FRVBST01fREVGQVVMVDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTYyLVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM9OTg9c3RhdGljIGJvb2wgbXQ3OTk2X2VlcHJvbV92YXJpYW50X3ZhbGlkKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGNvbnN0IHU4ICpkZWYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTA4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTA5Olx0aWYgKGRldi1cdTAwM2V2YXIuZmVtID09IE1UNzk5Nl9GRU1fRVhUIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTEwLVx0ICAgICEoZmVtWzBdID09IEZFTV9FWFQgXHUwMDI2XHUwMDI2IGZlbVsxXSA9PSBGRU1fRVhUKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTExMS1cdFx0cmV0dXJuIGZhbHNlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTEyOlx0ZWxzZSBpZiAoZGV2LVx1MDAzZXZhci5mZW0gPT0gTVQ3OTk2X0ZFTV9JTlQgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xMTMtXHRcdCAhKGZlbVswXSA9PSBGRU1fSU5UIFx1MDAyNlx1MDAyNiBmZW1bMV0gPT0gRkVNX0lOVCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xMTQtXHRcdHJldHVybiBmYWxzZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjExNTpcdGVsc2UgaWYgKGRldi1cdTAwM2V2YXIuZmVtID09IE1UNzk5Nl9GRU1fTUlYIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTE2LVx0XHQgIShmZW1bMF0gPT0gRkVNX0lOVCBcdTAwMjZcdTAwMjYgZmVtWzFdID09IEZFTV9FWFQpKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jPTEzNz1tdDc5OTZfZWVwcm9tX2NoZWNrX29yX3VzZV9kZWZhdWx0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGJvb2wgdXNlX2RlZmF1bHQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTUyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTUzOlx0aWYgKGZ3LVx1MDAzZXNpemUgXHUwMDNjIE1UNzk5Nl9FRVBST01fU0laRSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTU0LVx0XHRkZXZfZXJyKGRldi1cdTAwM2VtdDc2LmRldiwgXCYjMzQ7SW52YWxpZCBkZWZhdWx0IGJpbiBzaXplXFxuXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xNjItXHRkZXZfd2FybihkZXYtXHUwMDNlbXQ3Ni5kZXYsIFwmIzM0O2VlcHJvbSBsb2FkIGZhaWwsIHVzZSBkZWZhdWx0IGJpblxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzoxNjM6XHRtZW1jcHkoZWVwcm9tLCBmdy1cdTAwM2VkYXRhLCBNVDc5OTZfRUVQUk9NX1NJWkUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTY0LVx0ZGV2LVx1MDAzZWVlcHJvbV9tb2RlID0gRUVQUk9NX01PREVfREVGQVVMVF9CSU47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM9MTcyPXN0YXRpYyBpbnQgbXQ3OTk2X2VlcHJvbV9sb2FkKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTc4Olx0cmV0ID0gbXQ3Nl9lZXByb21faW5pdChcdTAwMjZkZXYtXHUwMDNlbXQ3NiwgTVQ3OTk2X0VFUFJPTV9TSVpFKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE3OS1cdGlmIChyZXQgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTg2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTg3Olx0bWVtc2V0KGRldi1cdTAwM2VtdDc2LmVlcHJvbS5kYXRhLCAwLCBNVDc5OTZfRUVQUk9NX1NJWkUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTg4LVx0aWYgKG10Nzk5Nl9oYXNfZXh0X2VlcHJvbShkZXYpKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTkwLVx0XHRkZXYtXHUwMDNlZWVwcm9tX21vZGUgPSBFRVBST01fTU9ERV9FWFQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzoxOTE6XHRcdGVlcHJvbV9ibGtfc2l6ZSA9IE1UNzk5Nl9FWFRfRUVQUk9NX0JMT0NLX1NJWkU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xOTItXHR9IGVsc2Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE5Ni1cdFx0ZGV2LVx1MDAzZWVlcHJvbV9tb2RlID0gRUVQUk9NX01PREVfRUZVU0U7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzoxOTc6XHRcdGVlcHJvbV9ibGtfc2l6ZSA9IE1UNzk5Nl9FRVBST01fQkxPQ0tfU0laRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE5OC1cdFx0cmV0ID0gbXQ3OTk2X21jdV9nZXRfZWZ1c2VfZnJlZV9ibG9jayhkZXYsIFx1MDAyNmZyZWVfYmxvY2tfbnVtKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0yMTctXHQvKiByZWFkIGVlcHJvbSBkYXRhIGZyb20gZncgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjIxODpcdGJsb2NrX251bSA9IERJVl9ST1VORF9VUChNVDc5OTZfRUVQUk9NX1NJWkUsIGVlcHJvbV9ibGtfc2l6ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0yMTktXHRmb3IgKGkgPSAxOyBpIFx1MDAzYyBibG9ja19udW07IGkmIzQzOyYjNDM7KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMjIyLVx0XHRpZiAoaSA9PSBibG9ja19udW0gLSAxKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MjIzOlx0XHRcdGxlbiA9IE1UNzk5Nl9FRVBST01fU0laRSAlIGVlcHJvbV9ibGtfc2l6ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTIyNC1cdFx0cmV0ID0gbXQ3OTk2X21jdV9nZXRfZWVwcm9tKGRldiwgaSAqIGVlcHJvbV9ibGtfc2l6ZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYz0zOTU9Ym9vbCBtdDc5OTZfZWVwcm9tX2hhc19iYWNrZ3JvdW5kX3JhZGFyKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMzk3LVx0c3dpdGNoIChtdDc2X2NoaXAoXHUwMDI2ZGV2LVx1MDAzZW10NzYpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzozOTg6XHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzozOTk6XHRcdGlmIChkZXYtXHUwMDNldmFyLnR5cGUgPT0gTVQ3OTk2X1ZBUl9UWVBFXzIzMylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTQwMC1cdFx0XHRyZXR1cm4gZmFsc2U7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmgtNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5oOjY6I2lmbmRlZiBfX01UNzk5Nl9FRVBST01fSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmg6NzojZGVmaW5lIF9fTVQ3OTk2X0VFUFJPTV9IXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uaC04LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNz1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNfZ2xvYmFsID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE4Olx0Lm1heCA9IE1UNzk5Nl9NQVhfSU5URVJGQUNFUyAqIE1UNzk5Nl9NQVhfUkFESU9TLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE5LVx0LnR5cGVzID0gQklUKE5MODAyMTFfSUZUWVBFX1NUQVRJT04pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTI3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2NvbWJpbmF0aW9uIGlmX2NvbWJfZ2xvYmFsID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yOS1cdC5uX2xpbWl0cyA9IDEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MzA6XHQubWF4X2ludGVyZmFjZXMgPSBNVDc5OTZfTUFYX0lOVEVSRkFDRVMgKiBNVDc5OTZfTUFYX1JBRElPUyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzozMTpcdC5udW1fZGlmZmVyZW50X2NoYW5uZWxzID0gTVQ3OTk2X01BWF9SQURJT1MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMzItXHQucmFkYXJfZGV0ZWN0X3dpZHRocyA9IEJJVChOTDgwMjExX0NIQU5fV0lEVEhfMjBfTk9IVCkgfFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0zOT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9jb21iaW5hdGlvbiBpZl9jb21iX2dsb2JhbF83OTkyID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy00Mi1cdC5tYXhfaW50ZXJmYWNlcyA9IDMyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjQzOlx0Lm51bV9kaWZmZXJlbnRfY2hhbm5lbHMgPSBNVDc5OTZfTUFYX1JBRElPUyAtIDEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDQtXHQucmFkYXJfZGV0ZWN0X3dpZHRocyA9IEJJVChOTDgwMjExX0NIQU5fV0lEVEhfMjBfTk9IVCkgfFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz01MT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNTgtXHR9LCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NTk6XHRcdC5tYXggPSBNVDc5OTZfTUFYX0lOVEVSRkFDRVMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNjAtXHRcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9TVEFUSU9OKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz02ND1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9jb21iaW5hdGlvbiBpZl9jb21iID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy02Ni1cdC5uX2xpbWl0cyA9IEFSUkFZX1NJWkUoaWZfbGltaXRzKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo2NzpcdC5tYXhfaW50ZXJmYWNlcyA9IE1UNzk5Nl9NQVhfSU5URVJGQUNFUyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy02OC1cdC5udW1fZGlmZmVyZW50X2NoYW5uZWxzID0gMSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9ODQ9c3RhdGljIGNvbnN0IHN0cnVjdCB3aXBoeV9pZnR5cGVfZXh0X2NhcGFiIGlmdHlwZXNfZXh0X2NhcGFbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtOTItXHRcdFx0RklFTERfUFJFUF9DT05TVChJRUVFODAyMTFfTUxEX0NBUF9PUF9NQVhfU0lNVUxfTElOS1MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6OTM6XHRcdFx0XHRcdCBNVDc5OTZfTUFYX1JBRElPUyAtIDEpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk0LVx0fSwge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDEtXHRcdFx0RklFTERfUFJFUF9DT05TVChJRUVFODAyMTFfTUxEX0NBUF9PUF9NQVhfU0lNVUxfTElOS1MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTAyOlx0XHRcdFx0XHQgTVQ3OTk2X01BWF9SQURJT1MgLSAxKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDMtXHR9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xMzI9c3RhdGljIHNzaXplX3QgbXQ3OTk2X3RoZXJtYWxfdGVtcF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE0Ny1cdC8qIGFkZCBhIHNhZmV0eSBtYXJnaW4gfjEwICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTQ4Olx0aWYgKChpIC0gMSA9PSBNVDc5OTZfQ1JJVF9URU1QX0lEWCBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNDk6XHQgICAgIHZhbCBcdTAwM2UgcGh5LVx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTk2X01BWF9URU1QX0lEWF0gLSAxMCkgfHxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNTA6XHQgICAgKGkgLSAxID09IE1UNzk5Nl9NQVhfVEVNUF9JRFggXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTUxOlx0ICAgICB2YWwgLSAxMCBcdTAwM2MgcGh5LVx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTk2X0NSSVRfVEVNUF9JRFhdKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE1Mi1cdFx0ZGV2X2VycihwaHktXHUwMDNlZGV2LVx1MDAzZW10NzYuZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xODM9bXQ3OTk2X3RoZXJtYWxfZ2V0X21heF90aHJvdHRsZV9zdGF0ZShzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqY2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTg1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxODY6XHQqc3RhdGUgPSBNVDc5OTZfQ0RFVl9USFJPVFRMRV9NQVg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTg3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0yMDM9bXQ3OTk2X3RoZXJtYWxfc2V0X2N1cl90aHJvdHRsZV9zdGF0ZShzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqY2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMjA2LVx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IGNkZXYtXHUwMDNlZGV2ZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoyMDc6XHR1OCB0aHJvdHRsaW5nID0gTVQ3OTk2X1RIRVJNQUxfVEhST1RUTEVfTUFYIC0gc3RhdGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMjA4LVx0aW50IHJldDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yMDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MjEwOlx0aWYgKHN0YXRlIFx1MDAzZSBNVDc5OTZfQ0RFVl9USFJPVFRMRV9NQVgpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yMTEtXHRcdGRldl9lcnIocGh5LVx1MDAzZWRldi1cdTAwM2VtdDc2LmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MjUwPXN0YXRpYyBpbnQgbXQ3OTk2X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yNzQtXHQvKiBpbml0aWFsaXplIGNyaXRpY2FsL21heGltdW0gaGlnaCB0ZW1wZXJhdHVyZSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjI3NTpcdHBoeS1cdTAwM2V0aHJvdHRsZV90ZW1wW01UNzk5Nl9DUklUX1RFTVBfSURYXSA9IE1UNzk5Nl9DUklUX1RFTVA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6Mjc2Olx0cGh5LVx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTk2X01BWF9URU1QX0lEWF0gPSBNVDc5OTZfTUFYX1RFTVA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMjc3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz02MDM9c3RhdGljIHZvaWQgbXQ3OTk2X21hY19pbml0X2Jhc2ljX3JhdGVzKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTYwOS1cdFx0Lyogb2RkIGluZGV4IGZvciBkcml2ZXIsIGV2ZW4gaW5kZXggZm9yIGZpcm13YXJlICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NjEwOlx0XHR1MTYgaWR4ID0gTVQ3OTk2X0JBU0lDX1JBVEVTX1RCTCAmIzQzOyAyICogaTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy02MTEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTY5MD1zdGF0aWMgaW50IG10Nzk5Nl9yZWdpc3Rlcl9waHkoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgZW51bSBtdDc2X2JhbmRfaWQgYmFuZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzUzLVx0XHRcdCAgIG10NzZfbnB1X2RldmljZV9hY3RpdmUoXHUwMDI2ZGV2LVx1MDAzZW10NzYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NzU0Olx0XHRcdCAgID8gTVQ3OTk2X05QVV9UWF9SSU5HX1NJWkUgLyAyIDogTVQ3OTk2X1RYX1JJTkdfU0laRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03NTUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTgzMz1zdGF0aWMgdm9pZCBtdDc5OTZfcnJvX2h3X2luaXRfdjMoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtODQzLVx0XHR3ZWQtXHUwMDNld2xhbi5pbmRfY21kLndpbl9zaXplID1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo4NDQ6XHRcdFx0ZmZzKE1UNzk5Nl9SUk9fV0lORE9XX01BWF9MRU4pIC0gNjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy04NDUtXHRcdGlmIChpc19tdDc5OTYoXHUwMDI2ZGV2LVx1MDAzZW10NzYpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg0Ni1cdFx0XHR3ZWQtXHUwMDNld2xhbi5pbmRfY21kLnBhcnRpY3VsYXJfc2lkID1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo4NDc6XHRcdFx0XHRNVDc5OTZfUlJPX01BWF9TRVNTSU9OO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg0OC1cdFx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy04NTEtXHRcdFx0ZGV2LVx1MDAzZXdlZF9ycm8uc2Vzc2lvbi5waHlfYWRkcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo4NTI6XHRcdHdlZC1cdTAwM2V3bGFuLmluZF9jbWQuc2VfZ3JvdXBfbnVtcyA9IE1UNzk5Nl9SUk9fQUREUl9FTEVNX0xFTjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy04NTMtXHRcdHdlZC1cdTAwM2V3bGFuLmluZF9jbWQuYWNrX3NuX2FkZHIgPSBNVF9SUk9fQUNLX1NOX0NUUkw7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg2OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo4NzA6XHRzZXNzaW9uX2lkID0gaXNfbXQ3OTk2KFx1MDAyNmRldi1cdTAwM2VtdDc2KSA/IE1UNzk5Nl9SUk9fTUFYX1NFU1NJT04gOiAxO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg3MS1cdG10NzZfd3IoZGV2LCBNVF9SUk9fUEFSVElDVUxBUl9DRkcxLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz05NTc9c3RhdGljIGludCBtdDc5OTZfd2VkX3Jyb19pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk2OS1cdFx0XHRwdHIgPSBkbWFtX2FsbG9jX2NvaGVyZW50KGRldi1cdTAwM2VtdDc2LmRtYV9kZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6OTcwOlx0XHRcdFx0XHRcdCAgTVQ3OTk2X1JST19CQV9CSVRNQVBfQ1JfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy05NzEtXHRcdFx0XHRcdFx0ICBcdTAwMjZkZXYtXHUwMDNld2VkX3Jyby5iYV9iaXRtYXBbaV0ucGh5X2FkZHIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk4My1cdFx0cHRyID0gZG1hbV9hbGxvY19jb2hlcmVudChkZXYtXHUwMDNlbXQ3Ni5kbWFfZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjk4NDpcdFx0XHRcdE1UNzk5Nl9SUk9fV0lORE9XX01BWF9TSVpFICogc2l6ZW9mKCphZGRyKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy05ODUtXHRcdFx0XHRcdTAwMjZkZXYtXHUwMDNld2VkX3Jyby5hZGRyX2VsZW1baV0ucGh5X2FkZHIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk5MS1cdFx0bWVtc2V0KGRldi1cdTAwM2V3ZWRfcnJvLmFkZHJfZWxlbVtpXS5wdHIsIDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6OTkyOlx0XHQgICAgICAgTVQ3OTk2X1JST19XSU5ET1dfTUFYX1NJWkUgKiBzaXplb2YoKmFkZHIpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy05OTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtOTk0LVx0XHRhZGRyID0gZGV2LVx1MDAzZXdlZF9ycm8uYWRkcl9lbGVtW2ldLnB0cjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo5OTU6XHRcdGZvciAoaiA9IDA7IGogXHUwMDNjIE1UNzk5Nl9SUk9fV0lORE9XX01BWF9TSVpFOyBqJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk5Ni1cdFx0XHRhZGRyLVx1MDAzZWRhdGEgPSBjcHVfdG9fbGUzMih2YWwpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDE4LVx0XHRwdHIgPSBkbWFtX2FsbG9jX2NvaGVyZW50KGRldi1cdTAwM2VtdDc2LmRtYV9kZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTAxOTpcdFx0XHRcdFx0ICBNVDc5OTZfUlJPX01TRFVfUEdfU0laRV9QRVJfQ1IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTAyMC1cdFx0XHRcdFx0ICBcdTAwMjZkZXYtXHUwMDNld2VkX3Jyby5tc2R1X3BnW2ldLnBoeV9hZGRyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDI3LVx0XHRtZW1zZXQoZGV2LVx1MDAzZXdlZF9ycm8ubXNkdV9wZ1tpXS5wdHIsIDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTAyODpcdFx0ICAgICAgIE1UNzk5Nl9SUk9fTVNEVV9QR19TSVpFX1BFUl9DUik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTAyOS1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTA1Mi1cdHB0ciA9IGRtYW1fYWxsb2NfY29oZXJlbnQoZGV2LVx1MDAzZW10NzYuZG1hX2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxMDUzOlx0XHRcdFx0ICBNVDc5OTZfUlJPX1dJTkRPV19NQVhfTEVOICogc2l6ZW9mKCphZGRyKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDU0LVx0XHRcdFx0ICBcdTAwMjZkZXYtXHUwMDNld2VkX3Jyby5zZXNzaW9uLnBoeV9hZGRyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDYwLVx0YWRkciA9IGRldi1cdTAwM2V3ZWRfcnJvLnNlc3Npb24ucHRyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjEwNjE6XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBNVDc5OTZfUlJPX1dJTkRPV19NQVhfTEVOOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEwNjItXHRcdGFkZHItXHUwMDNlZGF0YSA9IGNwdV90b19sZTMyKHZhbCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTEwNzU9c3RhdGljIHZvaWQgbXQ3OTk2X3dlZF9ycm9fZnJlZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDg2LVx0XHRkbWFtX2ZyZWVfY29oZXJlbnQoZGV2LVx1MDAzZW10NzYuZG1hX2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxMDg3Olx0XHRcdFx0ICAgTVQ3OTk2X1JST19CQV9CSVRNQVBfQ1JfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDg4LVx0XHRcdFx0ICAgZGV2LVx1MDAzZXdlZF9ycm8uYmFfYml0bWFwW2ldLnB0cixcbi0tXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMiAwODo1MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzcyMwoJCQkJCQkJb3V0cHV0OiA1MAoJCQkJCQkJdGhvdWdodHM6IDk3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTVQ3OTk2IERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlIGBtdDc5OTZgIGRyaXZlciwgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgTWVkaWFUZWsgV2lGaSBzdWl0ZSwgdW5kZXIgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2AuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBQQ0kgZGV2aWNlIHNwZWNpZmljcyBvZiB0aGlzLiBNeSBuZXh0IHN0ZXAgaXMgdG8gZHJpbGwgZG93biBpbnRvIGBwY2kuY2Agd2l0aGluIHRoYXQgZGlyZWN0b3J5LiBJJiMzOTttIGhvcGluZyB0byBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIHdoYXQgUENJIGRldmljZXMgYXJlIHN1cHBvcnRlZCBhbmQsIGNyaXRpY2FsbHksIHdoZXRoZXIgdGhpcyBkcml2ZXIgaGFuZGxlcyBzb2xlbHkgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSwgb3IgaWYgaXQgbWlnaHQgYWxzbyBpbmNvcnBvcmF0ZSBzb21lIGZvcm0gb2YgZW11bGF0aW9uLiBVbmRlcnN0YW5kaW5nIHRoaXMgZGlzdGluY3Rpb24gaXMgY3J1Y2lhbCBmb3IgbXkgY3VycmVudCB0YXNrLCBzbyBgcGNpLmNgIGl0IGlzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAyIDA4OjUzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuICAgMjpcdC8qXG4gICAzOlx0ICogQ29weXJpZ2h0IChDKSAyMDIyIE1lZGlhVGVrIEluYy5cbiAgIDQ6XHQgKi9cbiAgIDU6XHRcbiAgIDY6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9rZXJuZWwuaFx1MDAzZVxuICAgNzpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L21vZHVsZS5oXHUwMDNlXG4gICA4Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvcGNpLmhcdTAwM2VcbiAgIDk6XHRcbiAgMTA6XHQjaW5jbHVkZSBcJiMzNDttdDc5OTYuaFwmIzM0O1xuICAxMTpcdCNpbmNsdWRlIFwmIzM0O21hYy5oXCYjMzQ7XG4gIDEyOlx0I2luY2x1ZGUgXCYjMzQ7Li4vdHJhY2UuaFwmIzM0O1xuICAxMzpcdFxuICAxNDpcdHN0YXRpYyBMSVNUX0hFQUQoaGlmX2xpc3QpO1xuICAxNTpcdHN0YXRpYyBERUZJTkVfU1BJTkxPQ0soaGlmX2xvY2spO1xuICAxNjpcdHN0YXRpYyB1MzIgaGlmX2lkeDtcbiAgMTc6XHRcbiAgMTg6XHRzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgbXQ3OTk2X3BjaV9kZXZpY2VfdGFibGVbXSA9IHtcbiAgMTk6XHRcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01FRElBVEVLLCBNVDc5OTZfREVWSUNFX0lEKSB9LFxuICAyMDpcdFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5Ml9ERVZJQ0VfSUQpIH0sXG4gIDIxOlx0XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgTVQ3OTkwX0RFVklDRV9JRCkgfSxcbiAgMjI6XHRcdHsgfSxcbiAgMjM6XHR9O1xuICAyNDpcdFxuICAyNTpcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBtdDc5OTZfaGlmX2RldmljZV90YWJsZVtdID0ge1xuICAyNjpcdFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5Nl9ERVZJQ0VfSURfMikgfSxcbiAgMjc6XHRcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01FRElBVEVLLCBNVDc5OTJfREVWSUNFX0lEXzIpIH0sXG4gIDI4Olx0XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgTVQ3OTkwX0RFVklDRV9JRF8yKSB9LFxuICAyOTpcdFx0eyB9LFxuICAzMDpcdH07XG4gIDMxOlx0XG4gIDMyOlx0c3RhdGljIHN0cnVjdCBtdDc5OTZfaGlmICptdDc5OTZfcGNpX2dldF9oaWYyKHUzMiBpZHgpXG4gIDMzOlx0e1xuICAzNDpcdFx0c3RydWN0IG10Nzk5Nl9oaWYgKmhpZjtcbiAgMzU6XHRcdHUzMiB2YWw7XG4gIDM2Olx0XG4gIDM3Olx0XHRzcGluX2xvY2tfYmgoXHUwMDI2aGlmX2xvY2spO1xuICAzODpcdFxuICAzOTpcdFx0bGlzdF9mb3JfZWFjaF9lbnRyeShoaWYsIFx1MDAyNmhpZl9saXN0LCBsaXN0KSB7XG4gIDQwOlx0XHRcdHZhbCA9IHJlYWRsKGhpZi1cdTAwM2VyZWdzICYjNDM7IE1UX1BDSUVfUkVDT0dfSUQpO1xuICA0MTpcdFx0XHR2YWwgXHUwMDI2PSBNVF9QQ0lFX1JFQ09HX0lEX01BU0s7XG4gIDQyOlx0XHRcdGlmICh2YWwgIT0gaWR4KVxuICA0MzpcdFx0XHRcdGNvbnRpbnVlO1xuICA0NDpcdFxuICA0NTpcdFx0XHRnZXRfZGV2aWNlKGhpZi1cdTAwM2VkZXYpO1xuICA0NjpcdFx0XHRnb3RvIG91dDtcbiAgNDc6XHRcdH1cbiAgNDg6XHRcdGhpZiA9IE5VTEw7XG4gIDQ5Olx0XG4gIDUwOlx0b3V0OlxuICA1MTpcdFx0c3Bpbl91bmxvY2tfYmgoXHUwMDI2aGlmX2xvY2spO1xuICA1MjpcdFxuICA1MzpcdFx0cmV0dXJuIGhpZjtcbiAgNTQ6XHR9XG4gIDU1Olx0XG4gIDU2Olx0c3RhdGljIHZvaWQgbXQ3OTk2X3B1dF9oaWYyKHN0cnVjdCBtdDc5OTZfaGlmICpoaWYpXG4gIDU3Olx0e1xuICA1ODpcdFx0aWYgKCFoaWYpXG4gIDU5Olx0XHRcdHJldHVybjtcbiAgNjA6XHRcbiAgNjE6XHRcdHB1dF9kZXZpY2UoaGlmLVx1MDAzZWRldik7XG4gIDYyOlx0fVxuICA2MzpcdFxuICA2NDpcdHN0YXRpYyBzdHJ1Y3QgbXQ3OTk2X2hpZiAqbXQ3OTk2X3BjaV9pbml0X2hpZjIoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4gIDY1Olx0e1xuICA2NjpcdFx0aGlmX2lkeCYjNDM7JiM0Mzs7XG4gIDY3Olx0XG4gIDY4Olx0XHRpZiAoIXBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5Nl9ERVZJQ0VfSURfMiwgTlVMTCkgXHUwMDI2XHUwMDI2XG4gIDY5Olx0XHQgICAgIXBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5Ml9ERVZJQ0VfSURfMiwgTlVMTCkgXHUwMDI2XHUwMDI2XG4gIDcwOlx0XHQgICAgIXBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5MF9ERVZJQ0VfSURfMiwgTlVMTCkpXG4gIDcxOlx0XHRcdHJldHVybiBOVUxMO1xuICA3MjpcdFxuICA3MzpcdFx0d3JpdGVsKGhpZl9pZHggfCBNVF9QQ0lFX1JFQ09HX0lEX1NFTSxcbiAgNzQ6XHRcdCAgICAgICBwY2ltX2lvbWFwX3RhYmxlKHBkZXYpWzBdICYjNDM7IE1UX1BDSUVfUkVDT0dfSUQpO1xuICA3NTpcdFxuICA3NjpcdFx0cmV0dXJuIG10Nzk5Nl9wY2lfZ2V0X2hpZjIoaGlmX2lkeCk7XG4gIDc3Olx0fVxuICA3ODpcdFxuICA3OTpcdHN0YXRpYyBpbnQgbXQ3OTk2X3BjaV9oaWYyX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuICA4MDpcdHtcbiAgODE6XHRcdHN0cnVjdCBtdDc5OTZfaGlmICpoaWY7XG4gIDgyOlx0XG4gIDgzOlx0XHRoaWYgPSBkZXZtX2t6YWxsb2MoXHUwMDI2cGRldi1cdTAwM2VkZXYsIHNpemVvZigqaGlmKSwgR0ZQX0tFUk5FTCk7XG4gIDg0Olx0XHRpZiAoIWhpZilcbiAgODU6XHRcdFx0cmV0dXJuIC1FTk9NRU07XG4gIDg2Olx0XG4gIDg3Olx0XHRoaWYtXHUwMDNlZGV2ID0gXHUwMDI2cGRldi1cdTAwM2VkZXY7XG4gIDg4Olx0XHRoaWYtXHUwMDNlcmVncyA9IHBjaW1faW9tYXBfdGFibGUocGRldilbMF07XG4gIDg5Olx0XHRoaWYtXHUwMDNlaXJxID0gcGRldi1cdTAwM2VpcnE7XG4gIDkwOlx0XHRwY2llX2JhbmR3aWR0aF9hdmFpbGFibGUocGRldiwgTlVMTCwgXHUwMDI2aGlmLVx1MDAzZXNwZWVkLCBcdTAwMjZoaWYtXHUwMDNld2lkdGgpO1xuICA5MTpcdFx0c3Bpbl9sb2NrX2JoKFx1MDAyNmhpZl9sb2NrKTtcbiAgOTI6XHRcdGxpc3RfYWRkKFx1MDAyNmhpZi1cdTAwM2VsaXN0LCBcdTAwMjZoaWZfbGlzdCk7XG4gIDkzOlx0XHRzcGluX3VubG9ja19iaChcdTAwMjZoaWZfbG9jayk7XG4gIDk0Olx0XHRwY2lfc2V0X2RydmRhdGEocGRldiwgaGlmKTtcbiAgOTU6XHRcbiAgOTY6XHRcdHJldHVybiAwO1xuICA5NzpcdH1cbiAgOTg6XHRcbiAgOTk6XHRzdGF0aWMgaW50IG10Nzk5Nl9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4gMTAwOlx0XHRcdFx0ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMiAwODo1MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTYwMgoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDM3NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCYjMzk7cyBGdXp6aW5nIFdvcnRoaW5lc3MqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIHRoZSBpbnN0cnVjdGlvbnMgYXJlIHByZXR0eSBjbGVhcjogY2VydGFpbiBtb2RpZmljYXRpb25zIGF1dG9tYXRpY2FsbHkgbWVhbiAmIzM0O25vJiMzNDsgdG8gZnV6emluZy4gSXQmIzM5O3MgZXNzZW50aWFsbHkgYSBsaXN0IG9mIHRoaW5ncyB0aGF0IGRvbiYjMzk7dCBpbnRyb2R1Y2UgbmV3IGV4ZWN1dGlvbiBwYXRocyB0aGF0IGEgZnV6emVyIHdvdWxkIGNhcmUgYWJvdXQuIERvY3VtZW50YXRpb24sIGNvbW1lbnRzLCBkZWNvcmF0aXZlIGxvZ2dpbmcsIGluY29uc2VxdWVudGlhbCBudW1lcmljIGNoYW5nZXMsIHVucmVhY2hhYmxlIGNvZGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXJzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gZW11bGF0ZSwgYW5kIHRlYXJkb3duIGNhbGxiYWNrcyAtIGFsbCBuby1nb3MuCgpOb3csIG15IGluaXRpYWwgdGhvdWdodDogaXMgdGhpcyBwYXRjaCBmb2N1c2VkIG9uIGEgTWVkaWFUZWsgV2lGaSBkcml2ZXIsIHNwZWNpZmljYWxseSBtdDc5OTY/IElmIHNvLCBpcyBpdCBsaW1pdGVkIHRvIFBDSWUgaGFyZHdhcmU/IFRoYXQmIzM5O3MgdGhlIGNyaXRpY2FsIHF1ZXN0aW9uLiBJIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIGl0JiMzOTtzIHN0cmljdGx5IGRlcGVuZGVudCBvbiBwaHlzaWNhbCBoYXJkd2FyZSBvciBpZiB0aGVyZSYjMzk7cyBhbnkgcGF0aHdheSB0byByZWFjaCBpdCB0aHJvdWdoIFVTQiwgYG1hYzgwMjExX2h3c2ltYCwgb3IgYW55IG90aGVyIG1ldGhvZCB0aGF0ICpjYW4qIGJlIHVzZWQgaW4gYSB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50LgoKTXkgbmV4dCBzdGVwIGlzIHRvIGRpdmUgaW50byB0aGUgY29kZS4gSSYjMzk7bSBnb2luZyB0byBleGhhdXN0aXZlbHkgZXhhbWluZSBhbGwgdGhlIGZpbGVzIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2AgZGlyZWN0b3J5LiBUaGlzIHdpbGwgYmUgbXkgZGVjaXNpdmUgc3RlcCBpbiBkZXRlcm1pbmluZyB3aGV0aGVyIHRoaXMgaXMgd29ydGggdGhlIGVmZm9ydCB0byBmdXp6LiBJIG5lZWQgdG8gYXNjZXJ0YWluIGlmIHRoZSBjb2RlIHRvdWNoZXMgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMgdGhhdCBhcmUgcmVhbGlzdGljYWxseSBleGVjdXRhYmxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMiAwODo1MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmNvZGVzZWFyY2gtZGlyLWluZGV4PC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtEaXImIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5NiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlcyYjMzQ7OiBbCiAgICAmIzM0O2NvcmVkdW1wLmMmIzM0OywKICAgICYjMzQ7Y29yZWR1bXAuaCYjMzQ7LAogICAgJiMzNDtkZWJ1Z2ZzLmMmIzM0OywKICAgICYjMzQ7ZG1hLmMmIzM0OywKICAgICYjMzQ7ZWVwcm9tLmMmIzM0OywKICAgICYjMzQ7ZWVwcm9tLmgmIzM0OywKICAgICYjMzQ7aW5pdC5jJiMzNDssCiAgICAmIzM0O21hYy5jJiMzNDssCiAgICAmIzM0O21hYy5oJiMzNDssCiAgICAmIzM0O21haW4uYyYjMzQ7LAogICAgJiMzNDttY3UuYyYjMzQ7LAogICAgJiMzNDttY3UuaCYjMzQ7LAogICAgJiMzNDttbWlvLmMmIzM0OywKICAgICYjMzQ7bXQ3OTk2LmgmIzM0OywKICAgICYjMzQ7bnB1LmMmIzM0OywKICAgICYjMzQ7cGNpLmMmIzM0OywKICAgICYjMzQ7cmVncy5oJiMzNDsKICBdLAogICYjMzQ7U3ViZGlycyYjMzQ7OiBudWxsCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDIgMDg6NTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY0MzQKCQkJCQkJCW91dHB1dDogNTUKCQkJCQkJCXRob3VnaHRzOiA0MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBIZXJlJiMzOTtzIGhvdyBJJiMzOTtkIGFwcHJvYWNoIHRoYXQgZmlsZS4uLgoKKipBbmFseXppbmcgbXQ3OTk2JiMzOTtzIFBDSSBEcml2ZXIqKgoKQWxyaWdodCwgYmVmb3JlIEkgZ2V0IHRvbyBkZWVwIGludG8gdGhpcyBwYXJ0aWN1bGFyIG1vZHVsZSAoYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jYCksIEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSB0aGUgc2NvcGUgb2YgaXRzIGJ1cyBzdXBwb3J0LiBJdCYjMzk7cyB0aXRsZWQgJiMzNDtwY2kuYywmIzM0OyBzbyB0aGUgb2J2aW91cyBhc3N1bXB0aW9uIGlzIFBDSS4gQnV0LCB3aXRoIHRoZXNlIG5ld2VyIE1lZGlhdGVrIGltcGxlbWVudGF0aW9ucywgdGhleSBvZnRlbiBzaGFyZSBjb3JlIGNvZGUgYWNyb3NzIGRpZmZlcmVudCBidXMgaW50ZXJmYWNlcy4gU28sIEkgbmVlZCB0byBjb25maXJtIHRoYXQgdGhpcyBmaWxlIGlzICpvbmx5KiBkZWFsaW5nIHdpdGggUENJLCBvciBpZiB0aGVyZSYjMzk7cyBzb21lIGFic3RyYWN0aW9uIGdvaW5nIG9uLiBJJiMzOTttIGdvaW5nIHRvIHNjYW4gdGhlIGNvZGUgZm9yIGFueXRoaW5nIHRoYXQgbWlnaHQgaW5kaWNhdGUgc3VwcG9ydCBmb3Igb3RoZXIgYnVzIHR5cGVzIGxpa2UgU0RJTyBvciBVU0IuIEkmIzM5O2xsIGJlIGxvb2tpbmcgZm9yIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uLCBkZXZpY2UgSUQgY2hlY2tzLCBvciBhbnkga2luZCBvZiBidXMtc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gcm91dGluZXMgdGhhdCBoaW50IGF0IG11bHRpLWJ1cyBzdXBwb3J0IHdpdGhpbiB0aGlzIG1vZHVsZS4gSWYgaXQmIzM5O3Mgc29sZWx5IFBDSSwgdGhhdCBzaW1wbGlmaWVzIHRoaW5ncyBhIGJpdCwgYnV0IEkgc3RpbGwgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aWdodGx5IGNvdXBsZWQgaXQgaXMgdG8gdGhlIFBDSS1zcGVjaWZpYyBmZWF0dXJlcyBhbmQgdGhlIE1lZGlhdGVrIHdpcmVsZXNzIGNoaXBzZXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAyIDA4OjUzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21vZHVsZV9pbml0fG1vZHVsZV9wY2lfZHJpdmVyfHBjaV9yZWdpc3Rlcl9kcml2ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5NiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODg5PXN0YXRpYyBpbnQgX19pbml0IG10Nzk5Nl9pbml0KHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg5Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4OTM6XHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10Nzk5Nl9oaWZfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04OTQtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04OTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODk3Olx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZtdDc5OTZfcGNpX2RyaXZlcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODk4LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9OTA0PXN0YXRpYyB2b2lkIF9fZXhpdCBtdDc5OTZfZXhpdCh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy05MDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6OTEwOm1vZHVsZV9pbml0KG10Nzk5Nl9pbml0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy05MTEtbW9kdWxlX2V4aXQobXQ3OTk2X2V4aXQpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMiAwODo1MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNzIxNQoJCQkJCQkJb3V0cHV0OiAxMjIKCQkJCQkJCXRob3VnaHRzOiA2ODYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgc28gSSYjMzk7dmUgbG9va2VkIGF0IHRoaXMgcGF0Y2ggYW5kIEkmIzM5O20gcHJldHR5IGNlcnRhaW4gaXQmIzM5O3Mgbm90IGdvaW5nIHRvIGJlIGZydWl0ZnVsIGZvciBmdXp6aW5nIGluIGEgc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnQuIExldCYjMzk7cyBicmVhayBpdCBkb3duOiBgbXQ3OTk2YCBpcyBleGNsdXNpdmVseSBhIFBDSWUgZHJpdmVyLCByaWdodD8gV2UmIzM5O3JlIHRhbGtpbmcgYWJvdXQgc3BlY2lmaWMgTWVkaWFUZWsgUENJZSB3aXJlbGVzcyBjYXJkcyDigJMgdGhvc2Ugc3BlY2lmaWMgZGV2aWNlIElEcyAoMHg3OTk2LCAweDc5OTIsIDB4Nzk5MCB3aXRoIHZlbmRvciAweDE0YzMpLiBOb3csIHRoZSBwcm9ibGVtIGlzLCBhbmQgdGhpcyBpcyB0aGUgY3J1eCBvZiB0aGUgbWF0dGVyLCBRRU1VIGFuZCBHQ0UganVzdCBkb24mIzM5O3QgZW11bGF0ZSB0aG9zZSBNZWRpYVRlayBQQ0llIFdpLUZpIE5JQ3MuIE5vIGRpY2UuCgpJIHF1aWNrbHkgY2hlY2tlZCwgdGhlcmUmIzM5O3Mgbm8gdmlydHVhbGl6ZWQgb3IgZW11bGF0ZWQgc3VwcG9ydCBmb3IgdGhhdCBoYXJkd2FyZSBpbiBRRU1VLiBVU0IgaXMgYSBkZWFkIGVuZCBoZXJlLiBXZSBjb3VsZCBsb29rIGF0IFVTQiBnYWRnZXQgb3IgcmF3LWdhZGdldCAvIGR1bW15X2hjZCwgYnV0IHRoYXQmIzM5O3Mgbm90IHJlbGV2YW50OyB0aGlzIGlzIHN0cmljdGx5IFBDSWUuIE1hYzgwMjExIGh3c2ltLCB3aGljaCBlbXVsYXRlcyBtYWM4MDIxMSByYWRpb3MgZGlyZWN0bHksIGFsc28gYnlwYXNzZXMgdmVuZG9yIGRyaXZlcnMgbGlrZSBgbXQ3OTk2YCwgc28gaXQmIzM5O3MgaXJyZWxldmFudC4KClRoZW4sIEkgZG91YmxlLWNoZWNrZWQgdGhlIGd1aWRlbGluZXMuIFdlJiMzOTtyZSBleHBsaWNpdGx5IHRvbGQgdG8gYXZvaWQgY29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgZXZlbiB3aXRoIHNvZnR3YXJlIGVtdWxhdGlvbi4gV2UgYXJlIGFsc28gdG9sZCB0byBzdGF5IGF3YXkgZnJvbSBzcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIHRoYXQgcmVxdWlyZSByZWFsIGhhcmR3YXJlIG5vdCBhdmFpbGFibGUgaW4gc3RhbmRhcmQgUUVNVS4gVGhhdCYjMzk7cyBleGFjdGx5IHdoZXJlIHdlIGFyZTogYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBXaS1GaSBkcml2ZXIuCgpUaGUgY2hhbmdlcyBpbiB0aGlzIHBhdGNoIHNlcmllcyBhcmUgYWxsIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9gIC0gYG1hYy5jYCwgYG1haW4uY2AsIGFuZCBgbW1pby5jYC4gVGhhdCYjMzk7cyB0aGUgYG10Nzk5NmVgIG1vZHVsZSwgYW5kIHRoYXQmIzM5O3MgdGhlIHZlbmRvciBkcml2ZXIuIFdpdGhvdXQgdGhlIGFjdHVhbCBNZWRpYVRlayBQQ0llIGhhcmR3YXJlLCB0aGlzIGRyaXZlciB3b24mIzM5O3QgZXZlbiBwcm9iZSwgbWFraW5nIGl0cyBmdW5jdGlvbnMgY29tcGxldGVseSB1bnJlYWNoYWJsZSBpbiBhIFFFTVUvR0NFIGZ1enppbmcgc2V0dXAuCgpUaGVyZWZvcmUsIGZvciBhbGwgdGhlc2UgcmVhc29ucyBJIGhhdmUgdG8gY29uY2x1ZGUgdGhhdCBgV29ydGhGdXp6aW5nYCBzaG91bGQgYmUgYGZhbHNlYC4KClNvLCBoZXJlJiMzOTtzIG15IHByZXBhcmVkIHJlYXNvbmluZzoKCiogICBUaGUgbW9kaWZpY2F0aW9ucyBhcmUgbG9jYXRlZCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvYCBkaXJlY3RvcnksIHNwZWNpZmljYWxseSB3aXRoaW4gdGhlIE1lZGlhVGVrIFBDSWUgZHJpdmVyIHRoYXQgc3VwcG9ydHMgdGhlIE1UNzk5NiAvIE1UNzk5MiAvIE1UNzk5MCBXaS1GaSBkZXZpY2VzLgoqICAgVGhlIHJlcXVpcmVkIHBoeXNpY2FsIFBDSWUgZGV2aWNlcyBhcmUgbm90IGVtdWxhdGVkIGluIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIHN1Y2ggYXMgUUVNVSBvciBHQ0UuIFNvZnR3YXJlIGVtdWxhdGlvbiBhbHNvIHdvbiYjMzk7dCB3b3JrOiBVU0IgZ2FkZ2V0cyBvciBtYWM4MDIxMVxfaHdzaW0gYXJlbiYjMzk7dCByZWxldmFudC4KKiAgIEFzIGEgcmVzdWx0LCB0aGUgY29kZSBpcyB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4KCkFuZCBub3cgSSYjMzk7bSBnb2luZyB0byBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAyIDA4OjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgY2hhbmdlcyBhcmUgY29uZmluZWQgdG8gZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIHdpcmVsZXNzIGRyaXZlciBmb3IgTWVkaWFUZWsgTVQ3OTk2L01UNzk5Mi9NVDc5OTAgZGV2aWNlcy4gVGhlc2UgUENJZSBkZXZpY2VzIHJlcXVpcmUgc3BlY2lmaWMgcGh5c2ljYWwgaGFyZHdhcmUgYW5kIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChzdWNoIGFzIFFFTVUvR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgY2hhbmdlcyBhcmUgY29uZmluZWQgdG8gZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIHdpcmVsZXNzIGRyaXZlciBmb3IgTWVkaWFUZWsgTVQ3OTk2L01UNzk5Mi9NVDc5OTAgZGV2aWNlcy4gVGhlc2UgUENJZSBkZXZpY2VzIHJlcXVpcmUgc3BlY2lmaWMgcGh5c2ljYWwgaGFyZHdhcmUgYW5kIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChzdWNoIGFzIFFFTVUvR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDIgMDg6NTQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAyVDA4OjUyOjEwLjQwMTk3ODA1NVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNTA4ODg5ODgxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIGNoYW5nZXMgYXJlIGNvbmZpbmVkIHRvIGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2Lywgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSB3aXJlbGVzcyBkcml2ZXIgZm9yIE1lZGlhVGVrIE1UNzk5Ni9NVDc5OTIvTVQ3OTkwIGRldmljZXMuIFRoZXNlIFBDSWUgZGV2aWNlcyByZXF1aXJlIHNwZWNpZmljIHBoeXNpY2FsIGhhcmR3YXJlIGFuZCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoc3VjaCBhcyBRRU1VL0dDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAyVDA4OjUyOjEwLjQwMTk4NzQ1NVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDgyMzE5ODQzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNjg0YjAyZTdkNTYxNzIwNGU5ZDhmMDBkODAyM2ZlNDkwOGNjZDVmM1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgV2VkIFNlcCAyIDA4OjUyOjA5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcXG5pbmRleCAxY2JhMzgxYTc4YjgyLi5mZTdhMzFiMGJjNjg3IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcXG5AQCAtOTMyLDcgKzkzMiw3IEBAIHZvaWQgbXQ3OTk2X21hY193cml0ZV90eHdpKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIF9fbGUzMiAqdHh3aSxcXG4gXFx0fSBlbHNlIGlmIChiZWFjb24pIHtcXG4gXFx0XFx0cF9mbXQgPSBNVF9UWF9UWVBFX0ZXO1xcbiBcXHRcXHRxX2lkeCA9IE1UX0xNQUNfQkNOMDtcXG4tXFx0fSBlbHNlIGlmIChxaWQgXFx1MDAzZT0gTVRfVFhRX1BTRCkge1xcbitcXHR9IGVsc2UgaWYgKHFpZCBcXHUwMDNlPSBNVF9UWFFfUFNEIHx8ICghKHdjaWQtXFx1MDAzZXR4X2luZm8gXFx1MDAyNiBNVF9XQ0lEX1RYX0lORk9fU0VUKSkpIHtcXG4gXFx0XFx0cF9mbXQgPSBNVF9UWF9UWVBFX0NUO1xcbiBcXHRcXHRxX2lkeCA9IE1UX0xNQUNfQUxUWDA7XFxuIFxcdH0gZWxzZSB7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uY1xcbmluZGV4IGUyMTg4NTZiMGM0NTQuLjAwZGRiOWQzMWVkMzIgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jXFxuQEAgLTE0MTUsNiArMTQxNSw3IEBAIG10Nzk5Nl9tYWNfc3RhX2V2ZW50KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuIFxcdFxcdFxcdFxcdGdvdG8gdW5sb2NrO1xcbiBcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0Y2FzZSBNVDc2X1NUQV9FVkVOVF9ESVNBU1NPQzpcXG4rXFx0XFx0XFx0bXN0YV9saW5rLVxcdTAwM2V3Y2lkLnR4X2luZm8gXFx1MDAyNj0gfk1UX1dDSURfVFhfSU5GT19TRVQ7XFxuIFxcdFxcdFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBUlJBWV9TSVpFKG1zdGFfbGluay1cXHUwMDNldHd0LmZsb3cpOyBpKyspXFxuIFxcdFxcdFxcdFxcdG10Nzk5Nl9tYWNfdHd0X3RlYXJkb3duX2Zsb3coZGV2LCBsaW5rLFxcbiBcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgIG1zdGFfbGluaywgaSk7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uY1xcbmluZGV4IGZiZmJiOTZhNzQyZjcuLjRlMzM1ZTYwMTU4MTQgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jXFxuQEAgLTM5MSwyOSArMzkxLDMxIEBAIHZvaWQgbXQ3OTk2X21lbWNweV9mcm9taW8oc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgdm9pZCAqYnVmLCB1MzIgb2Zmc2V0LFxcbiBcXHRcXHRcXHQgIHNpemVfdCBsZW4pXFxuIHtcXG4gXFx0dTMyIGFkZHIgPSBfX210Nzk5Nl9yZWdfYWRkcihkZXYsIG9mZnNldCk7XFxuK1xcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XFxuIFxcbiBcXHRpZiAoYWRkciAhPSBJTlZBTElEX1JFR19BRERSKSB7XFxuIFxcdFxcdG1lbWNweV9mcm9taW8oYnVmLCBkZXYtXFx1MDAzZW10NzYubW1pby5yZWdzICsgYWRkciwgbGVuKTtcXG4gXFx0XFx0cmV0dXJuO1xcbiBcXHR9XFxuIFxcbi1cXHRzcGluX2xvY2tfYmgoXFx1MDAyNmRldi1cXHUwMDNlcmVnX2xvY2spO1xcbitcXHRzcGluX2xvY2tfaXJxc2F2ZShcXHUwMDI2ZGV2LVxcdTAwM2VyZWdfbG9jaywgZmxhZ3MpO1xcbiBcXHRtZW1jcHlfZnJvbWlvKGJ1ZiwgZGV2LVxcdTAwM2VtdDc2Lm1taW8ucmVncyArXFxuIFxcdFxcdFxcdCAgIF9fbXQ3OTk2X3JlZ19yZW1hcF9hZGRyKGRldiwgb2Zmc2V0KSwgbGVuKTtcXG4tXFx0c3Bpbl91bmxvY2tfYmgoXFx1MDAyNmRldi1cXHUwMDNlcmVnX2xvY2spO1xcbitcXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFxcdTAwMjZkZXYtXFx1MDAzZXJlZ19sb2NrLCBmbGFncyk7XFxuIH1cXG4gXFxuIHN0YXRpYyB1MzIgbXQ3OTk2X3JyKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdTMyIG9mZnNldClcXG4ge1xcbiBcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc5OTZfZGV2LCBtdDc2KTtcXG4gXFx0dTMyIGFkZHIgPSBfX210Nzk5Nl9yZWdfYWRkcihkZXYsIG9mZnNldCksIHZhbDtcXG4rXFx0dW5zaWduZWQgbG9uZyBmbGFncztcXG4gXFxuIFxcdGlmIChhZGRyICE9IElOVkFMSURfUkVHX0FERFIpXFxuIFxcdFxcdHJldHVybiBkZXYtXFx1MDAzZWJ1c19vcHMtXFx1MDAzZXJyKG1kZXYsIGFkZHIpO1xcbiBcXG4tXFx0c3Bpbl9sb2NrX2JoKFxcdTAwMjZkZXYtXFx1MDAzZXJlZ19sb2NrKTtcXG4rXFx0c3Bpbl9sb2NrX2lycXNhdmUoXFx1MDAyNmRldi1cXHUwMDNlcmVnX2xvY2ssIGZsYWdzKTtcXG4gXFx0dmFsID0gZGV2LVxcdTAwM2VidXNfb3BzLVxcdTAwM2VycihtZGV2LCBfX210Nzk5Nl9yZWdfcmVtYXBfYWRkcihkZXYsIG9mZnNldCkpO1xcbi1cXHRzcGluX3VubG9ja19iaChcXHUwMDI2ZGV2LVxcdTAwM2VyZWdfbG9jayk7XFxuK1xcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXFx1MDAyNmRldi1cXHUwMDNlcmVnX2xvY2ssIGZsYWdzKTtcXG4gXFxuIFxcdHJldHVybiB2YWw7XFxuIH1cXG5AQCAtNDIyLDI4ICs0MjQsMzAgQEAgc3RhdGljIHZvaWQgbXQ3OTk2X3dyKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdTMyIG9mZnNldCwgdTMyIHZhbClcXG4ge1xcbiBcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc5OTZfZGV2LCBtdDc2KTtcXG4gXFx0dTMyIGFkZHIgPSBfX210Nzk5Nl9yZWdfYWRkcihkZXYsIG9mZnNldCk7XFxuK1xcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XFxuIFxcbiBcXHRpZiAoYWRkciAhPSBJTlZBTElEX1JFR19BRERSKSB7XFxuIFxcdFxcdGRldi1cXHUwMDNlYnVzX29wcy1cXHUwMDNld3IobWRldiwgYWRkciwgdmFsKTtcXG4gXFx0XFx0cmV0dXJuO1xcbiBcXHR9XFxuIFxcbi1cXHRzcGluX2xvY2tfYmgoXFx1MDAyNmRldi1cXHUwMDNlcmVnX2xvY2spO1xcbitcXHRzcGluX2xvY2tfaXJxc2F2ZShcXHUwMDI2ZGV2LVxcdTAwM2VyZWdfbG9jaywgZmxhZ3MpO1xcbiBcXHRkZXYtXFx1MDAzZWJ1c19vcHMtXFx1MDAzZXdyKG1kZXYsIF9fbXQ3OTk2X3JlZ19yZW1hcF9hZGRyKGRldiwgb2Zmc2V0KSwgdmFsKTtcXG4tXFx0c3Bpbl91bmxvY2tfYmgoXFx1MDAyNmRldi1cXHUwMDNlcmVnX2xvY2spO1xcbitcXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFxcdTAwMjZkZXYtXFx1MDAzZXJlZ19sb2NrLCBmbGFncyk7XFxuIH1cXG4gXFxuIHN0YXRpYyB1MzIgbXQ3OTk2X3JtdyhzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHUzMiBvZmZzZXQsIHUzMiBtYXNrLCB1MzIgdmFsKVxcbiB7XFxuIFxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBjb250YWluZXJfb2YobWRldiwgc3RydWN0IG10Nzk5Nl9kZXYsIG10NzYpO1xcbiBcXHR1MzIgYWRkciA9IF9fbXQ3OTk2X3JlZ19hZGRyKGRldiwgb2Zmc2V0KTtcXG4rXFx0dW5zaWduZWQgbG9uZyBmbGFncztcXG4gXFxuIFxcdGlmIChhZGRyICE9IElOVkFMSURfUkVHX0FERFIpXFxuIFxcdFxcdHJldHVybiBkZXYtXFx1MDAzZWJ1c19vcHMtXFx1MDAzZXJtdyhtZGV2LCBhZGRyLCBtYXNrLCB2YWwpO1xcbiBcXG4tXFx0c3Bpbl9sb2NrX2JoKFxcdTAwMjZkZXYtXFx1MDAzZXJlZ19sb2NrKTtcXG4rXFx0c3Bpbl9sb2NrX2lycXNhdmUoXFx1MDAyNmRldi1cXHUwMDNlcmVnX2xvY2ssIGZsYWdzKTtcXG4gXFx0dmFsID0gZGV2LVxcdTAwM2VidXNfb3BzLVxcdTAwM2VybXcobWRldiwgX19tdDc5OTZfcmVnX3JlbWFwX2FkZHIoZGV2LCBvZmZzZXQpLCBtYXNrLCB2YWwpO1xcbi1cXHRzcGluX3VubG9ja19iaChcXHUwMDI2ZGV2LVxcdTAwM2VyZWdfbG9jayk7XFxuK1xcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXFx1MDAyNmRldi1cXHUwMDNlcmVnX2xvY2ssIGZsYWdzKTtcXG4gXFxuIFxcdHJldHVybiB2YWw7XFxuIH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDJUMDg6NTI6MTAuODg1MTAwNTE4WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjoxMTQ2MDU3NjMwMTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIGNoYW5nZXMgYXJlIGNvbmZpbmVkIHRvIGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2Lywgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSB3aXJlbGVzcyBkcml2ZXIgZm9yIE1lZGlhVGVrIE1UNzk5Ni9NVDc5OTIvTVQ3OTkwIGRldmljZXMuIFRoZXNlIFBDSWUgZGV2aWNlcyByZXF1aXJlIHNwZWNpZmljIHBoeXNpY2FsIGhhcmR3YXJlIGFuZCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoc3VjaCBhcyBRRU1VL0dDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDY4NGIwMmU3ZDU2MTcyMDRlOWQ4ZjAwZDgwMjNmZTQ5MDhjY2Q1ZjNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIFNlcCAyIDA4OjUyOjA5IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuY1xuaW5kZXggMWNiYTM4MWE3OGI4Mi4uZmU3YTMxYjBiYzY4NyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuY1xuQEAgLTkzMiw3ICs5MzIsNyBAQCB2b2lkIG10Nzk5Nl9tYWNfd3JpdGVfdHh3aShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBfX2xlMzIgKnR4d2ksXG4gXHR9IGVsc2UgaWYgKGJlYWNvbikge1xuIFx0XHRwX2ZtdCA9IE1UX1RYX1RZUEVfRlc7XG4gXHRcdHFfaWR4ID0gTVRfTE1BQ19CQ04wO1xuLVx0fSBlbHNlIGlmIChxaWQgXHUwMDNlPSBNVF9UWFFfUFNEKSB7XG4rXHR9IGVsc2UgaWYgKHFpZCBcdTAwM2U9IE1UX1RYUV9QU0QgfHwgKCEod2NpZC1cdTAwM2V0eF9pbmZvIFx1MDAyNiBNVF9XQ0lEX1RYX0lORk9fU0VUKSkpIHtcbiBcdFx0cF9mbXQgPSBNVF9UWF9UWVBFX0NUO1xuIFx0XHRxX2lkeCA9IE1UX0xNQUNfQUxUWDA7XG4gXHR9IGVsc2Uge1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uY1xuaW5kZXggZTIxODg1NmIwYzQ1NC4uMDBkZGI5ZDMxZWQzMiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jXG5AQCAtMTQxNSw2ICsxNDE1LDcgQEAgbXQ3OTk2X21hY19zdGFfZXZlbnQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbiBcdFx0XHRcdGdvdG8gdW5sb2NrO1xuIFx0XHRcdGJyZWFrO1xuIFx0XHRjYXNlIE1UNzZfU1RBX0VWRU5UX0RJU0FTU09DOlxuK1x0XHRcdG1zdGFfbGluay1cdTAwM2V3Y2lkLnR4X2luZm8gXHUwMDI2PSB+TVRfV0NJRF9UWF9JTkZPX1NFVDtcbiBcdFx0XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKG1zdGFfbGluay1cdTAwM2V0d3QuZmxvdyk7IGkrKylcbiBcdFx0XHRcdG10Nzk5Nl9tYWNfdHd0X3RlYXJkb3duX2Zsb3coZGV2LCBsaW5rLFxuIFx0XHRcdFx0XHRcdFx0ICAgICBtc3RhX2xpbmssIGkpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uY1xuaW5kZXggZmJmYmI5NmE3NDJmNy4uNGUzMzVlNjAxNTgxNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jXG5AQCAtMzkxLDI5ICszOTEsMzEgQEAgdm9pZCBtdDc5OTZfbWVtY3B5X2Zyb21pbyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCB2b2lkICpidWYsIHUzMiBvZmZzZXQsXG4gXHRcdFx0ICBzaXplX3QgbGVuKVxuIHtcbiBcdHUzMiBhZGRyID0gX19tdDc5OTZfcmVnX2FkZHIoZGV2LCBvZmZzZXQpO1xuK1x0dW5zaWduZWQgbG9uZyBmbGFncztcbiBcbiBcdGlmIChhZGRyICE9IElOVkFMSURfUkVHX0FERFIpIHtcbiBcdFx0bWVtY3B5X2Zyb21pbyhidWYsIGRldi1cdTAwM2VtdDc2Lm1taW8ucmVncyArIGFkZHIsIGxlbik7XG4gXHRcdHJldHVybjtcbiBcdH1cbiBcbi1cdHNwaW5fbG9ja19iaChcdTAwMjZkZXYtXHUwMDNlcmVnX2xvY2spO1xuK1x0c3Bpbl9sb2NrX2lycXNhdmUoXHUwMDI2ZGV2LVx1MDAzZXJlZ19sb2NrLCBmbGFncyk7XG4gXHRtZW1jcHlfZnJvbWlvKGJ1ZiwgZGV2LVx1MDAzZW10NzYubW1pby5yZWdzICtcbiBcdFx0XHQgICBfX210Nzk5Nl9yZWdfcmVtYXBfYWRkcihkZXYsIG9mZnNldCksIGxlbik7XG4tXHRzcGluX3VubG9ja19iaChcdTAwMjZkZXYtXHUwMDNlcmVnX2xvY2spO1xuK1x0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZkZXYtXHUwMDNlcmVnX2xvY2ssIGZsYWdzKTtcbiB9XG4gXG4gc3RhdGljIHUzMiBtdDc5OTZfcnIoc3RydWN0IG10NzZfZGV2ICptZGV2LCB1MzIgb2Zmc2V0KVxuIHtcbiBcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBjb250YWluZXJfb2YobWRldiwgc3RydWN0IG10Nzk5Nl9kZXYsIG10NzYpO1xuIFx0dTMyIGFkZHIgPSBfX210Nzk5Nl9yZWdfYWRkcihkZXYsIG9mZnNldCksIHZhbDtcbitcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XG4gXG4gXHRpZiAoYWRkciAhPSBJTlZBTElEX1JFR19BRERSKVxuIFx0XHRyZXR1cm4gZGV2LVx1MDAzZWJ1c19vcHMtXHUwMDNlcnIobWRldiwgYWRkcik7XG4gXG4tXHRzcGluX2xvY2tfYmgoXHUwMDI2ZGV2LVx1MDAzZXJlZ19sb2NrKTtcbitcdHNwaW5fbG9ja19pcnFzYXZlKFx1MDAyNmRldi1cdTAwM2VyZWdfbG9jaywgZmxhZ3MpO1xuIFx0dmFsID0gZGV2LVx1MDAzZWJ1c19vcHMtXHUwMDNlcnIobWRldiwgX19tdDc5OTZfcmVnX3JlbWFwX2FkZHIoZGV2LCBvZmZzZXQpKTtcbi1cdHNwaW5fdW5sb2NrX2JoKFx1MDAyNmRldi1cdTAwM2VyZWdfbG9jayk7XG4rXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNmRldi1cdTAwM2VyZWdfbG9jaywgZmxhZ3MpO1xuIFxuIFx0cmV0dXJuIHZhbDtcbiB9XG5AQCAtNDIyLDI4ICs0MjQsMzAgQEAgc3RhdGljIHZvaWQgbXQ3OTk2X3dyKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdTMyIG9mZnNldCwgdTMyIHZhbClcbiB7XG4gXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc5OTZfZGV2LCBtdDc2KTtcbiBcdHUzMiBhZGRyID0gX19tdDc5OTZfcmVnX2FkZHIoZGV2LCBvZmZzZXQpO1xuK1x0dW5zaWduZWQgbG9uZyBmbGFncztcbiBcbiBcdGlmIChhZGRyICE9IElOVkFMSURfUkVHX0FERFIpIHtcbiBcdFx0ZGV2LVx1MDAzZWJ1c19vcHMtXHUwMDNld3IobWRldiwgYWRkciwgdmFsKTtcbiBcdFx0cmV0dXJuO1xuIFx0fVxuIFxuLVx0c3Bpbl9sb2NrX2JoKFx1MDAyNmRldi1cdTAwM2VyZWdfbG9jayk7XG4rXHRzcGluX2xvY2tfaXJxc2F2ZShcdTAwMjZkZXYtXHUwMDNlcmVnX2xvY2ssIGZsYWdzKTtcbiBcdGRldi1cdTAwM2VidXNfb3BzLVx1MDAzZXdyKG1kZXYsIF9fbXQ3OTk2X3JlZ19yZW1hcF9hZGRyKGRldiwgb2Zmc2V0KSwgdmFsKTtcbi1cdHNwaW5fdW5sb2NrX2JoKFx1MDAyNmRldi1cdTAwM2VyZWdfbG9jayk7XG4rXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNmRldi1cdTAwM2VyZWdfbG9jaywgZmxhZ3MpO1xuIH1cbiBcbiBzdGF0aWMgdTMyIG10Nzk5Nl9ybXcoc3RydWN0IG10NzZfZGV2ICptZGV2LCB1MzIgb2Zmc2V0LCB1MzIgbWFzaywgdTMyIHZhbClcbiB7XG4gXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc5OTZfZGV2LCBtdDc2KTtcbiBcdHUzMiBhZGRyID0gX19tdDc5OTZfcmVnX2FkZHIoZGV2LCBvZmZzZXQpO1xuK1x0dW5zaWduZWQgbG9uZyBmbGFncztcbiBcbiBcdGlmIChhZGRyICE9IElOVkFMSURfUkVHX0FERFIpXG4gXHRcdHJldHVybiBkZXYtXHUwMDNlYnVzX29wcy1cdTAwM2VybXcobWRldiwgYWRkciwgbWFzaywgdmFsKTtcbiBcbi1cdHNwaW5fbG9ja19iaChcdTAwMjZkZXYtXHUwMDNlcmVnX2xvY2spO1xuK1x0c3Bpbl9sb2NrX2lycXNhdmUoXHUwMDI2ZGV2LVx1MDAzZXJlZ19sb2NrLCBmbGFncyk7XG4gXHR2YWwgPSBkZXYtXHUwMDNlYnVzX29wcy1cdTAwM2VybXcobWRldiwgX19tdDc5OTZfcmVnX3JlbWFwX2FkZHIoZGV2LCBvZmZzZXQpLCBtYXNrLCB2YWwpO1xuLVx0c3Bpbl91bmxvY2tfYmgoXHUwMDI2ZGV2LVx1MDAzZXJlZ19sb2NrKTtcbitcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2ZGV2LVx1MDAzZXJlZ19sb2NrLCBmbGFncyk7XG4gXG4gXHRyZXR1cm4gdmFsO1xuIH1cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAyVDA4OjUyOjEwLjg4NTEwMjMxOFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjIzNDMzODAyMjgxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEluaXRpYWwgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gqKlxuXG5Pa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcyBwYXRjaCBhbmQgZmlndXJlIG91dCBpdHMgcG90ZW50aWFsIGZ1enppbmcgdmFsdWUuIE15IGZpcnN0IHRob3VnaHQgaXMgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgaW50cm9kdWNlcyBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRoYXQgYXJlIHJpcGUgZm9yIGZ1enppbmcuIFRoZSBmYWN0IHRoYXQgaXQncyB0b3VjaGluZyB3aXJlbGVzcyBuZXR3b3JrIGRyaXZlcnMsIHNwZWNpZmljYWxseSB0aGUgYG10Nzk5NmAgZmFtaWx5LCBpbW1lZGlhdGVseSBwaXF1ZXMgbXkgaW50ZXJlc3QuIEkgbmVlZCB0byBxdWlja2x5IGVzdGFibGlzaCBpZiB0aGlzIGNvZGUgaXMgcmVsZXZhbnQgdG8gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUsIG9yIGlmIGl0J3MgcHJpbWFyaWx5IHRpZWQgdG8gaGFyZHdhcmUgaW50ZXJhY3Rpb25zIHRoYXQgd291bGQgYmUgZGlmZmljdWx0IG9yIGltcG9zc2libGUgdG8gcmVhY2ggd2l0aG91dCBzcGVjaWZpYyBoYXJkd2FyZS5cblxuVG8gZG8gdGhpcywgSSdsbCBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIE1UNzk5NiBjaGlwc2V0IGEgYml0IGJldHRlci4gV2hhdCBidXMgZG9lcyBpdCB1dGlsaXplPyBJcyBpdCBQQ0llLCBVU0IsIHNvbWV0aGluZyBlbHNlPyBJJ2xsIHByb2JhYmx5IGZpcmUgdXAgYGdyZXBwZXJgIChvciB1c2UgbXkgcHJlZmVycmVkIGNvZGUgc2VhcmNoIHRvb2wgaWYgaXQncyBub3QgYXZhaWxhYmxlKSBhbmQgc2VhcmNoIHRoZSBjb2RlYmFzZSBmb3IgcmVmZXJlbmNlcyB0byBNVDc5OTYsIHBheWluZyBjbG9zZSBhdHRlbnRpb24gdG8gYW55IG1lbnRpb25zIG9mIGJ1cy1yZWxhdGVkIGNvbmZpZ3VyYXRpb25zLiBBbHRlcm5hdGl2ZWx5LCBJIHNob3VsZCBiZSBhYmxlIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGVzIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2AgZGlyZWN0b3J5IHRvIGdldCBhIHNlbnNlIG9mIHRoZSBoYXJkd2FyZSBkZXBlbmRlbmNpZXMuIEtub3dpbmcgdGhlIGJ1cyB0eXBlIHdpbGwgYmUgY3J1Y2lhbCBpbiBkZWNpZGluZyBpZiBJIGNhbiBlZmZlY3RpdmVseSBmdXp6IHRoaXMgd2l0aGluIGEgc3RhbmRhcmQgUUVNVSBzZXR1cC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzY2NCwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAyVDA4OjUyOjM0LjMxODkwODAyOVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzA4MTE2MzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiQ09ORklHX01UNzk5NlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU9NTA9b2JqLSQoQ09ORklHX01UNzkyMV9DT01NT04pICs9IG10NzkyMS9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjUxOm9iai0kKENPTkZJR19NVDc5OTZFKSArPSBtdDc5OTYvXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZS01Mi1vYmotJChDT05GSUdfTVQ3OTI1X0NPTU1PTikgKz0gbXQ3OTI1L1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTozOm9iai0kKENPTkZJR19NVDc5OTZFKSArPSBtdDc5OTZlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS00LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlPTU9bXQ3OTk2ZS15IDo9IHBjaS5vIGluaXQubyBkbWEubyBlZXByb20ubyBtYWluLm8gbWN1Lm8gbWFjLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTo4Om10Nzk5NmUtJChDT05GSUdfTVQ3OTk2X05QVSkgKz0gbnB1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS05LW10Nzk5NmUtJChDT05GSUdfREVWX0NPUkVEVU1QKSArPSBjb3JlZHVtcC5vXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM9MjM5OT1tdDc5OTZfbmV0X2ZpbGxfZm9yd2FyZF9wYXRoKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jLTI0NTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jOjI0NTc6I2lmIGRlZmluZWQoQ09ORklHX05FVF9NRURJQVRFS19TT0NfV0VEKSB8fCBkZWZpbmVkKENPTkZJR19NVDc5OTZfTlBVKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYy0yNDU4LXN0YXRpYyBpbnRcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYz0yNTQ2PWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10Nzk5Nl9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmMtMjYwMC1cXHQubmV0X2ZpbGxfZm9yd2FyZF9wYXRoID0gbXQ3OTk2X25ldF9maWxsX2ZvcndhcmRfcGF0aCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM6MjYwMTojaWYgZGVmaW5lZChDT05GSUdfTkVUX01FRElBVEVLX1NPQ19XRUQpIHx8IGRlZmluZWQoQ09ORklHX01UNzk5Nl9OUFUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jLTI2MDItXFx0Lm5ldF9zZXR1cF90YyA9IG10Nzk5Nl9uZXRfc2V0dXBfdGMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaD05NTA9dm9pZCBtdDc5OTZfZG1hX3Jyb19zdGFydChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaC05NTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg6OTUyOiNpZmRlZiBDT05GSUdfTVQ3OTk2X05QVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oLTk1My1pbnQgX19tdDc5OTZfbnB1X2h3X2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaD05NzM9c3RhdGljIGlubGluZSBpbnQgbXQ3OTk2X25wdV9yeF9xdWV1ZXNfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtOTc2LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo5Nzc6I2VuZGlmIC8qIENPTkZJR19NVDc5OTZfTlBVICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtOTc4LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wMlQwODo1MjozNC41ODk3MjQ5NzlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyMDg1NDk4NzcyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0czpcblxuKipBbmFseXppbmcgdGhlIE1lZGlhdGVrIFdpcmVsZXNzIERyaXZlciBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSBuZWVkIHRvIGRpdmUgaW50byB0aGUgTWVkaWF0ZWsgd2lyZWxlc3MgZHJpdmVyIHNpdHVhdGlvbi4gTXkgaW1tZWRpYXRlIGluc3RpbmN0IGlzIHRvIGxvb2sgYXQgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSwgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZ2AuIFRoYXQncyB3aGVyZSBhbGwgdGhlIGJ1aWxkIG9wdGlvbnMgYW5kIGRlcGVuZGVuY2llcyBmb3IgdGhhdCBzcGVjaWZpYyBkcml2ZXIgc2hvdWxkIGJlIGRlZmluZWQuIEZyb20gdGhlIEtjb25maWcsIEkgY2FuIGRldGVybWluZSB3aGljaCBmZWF0dXJlcyBhcmUgZW5hYmxlZCBieSBkZWZhdWx0LCB3aGF0IG1vZHVsZXMgYXJlIGF2YWlsYWJsZSwgaG93IHRvIGVuYWJsZS9kaXNhYmxlIHNwZWNpZmljIGhhcmR3YXJlIHN1cHBvcnQsIGFuZCB3aGF0IG90aGVyIGtlcm5lbCBjb21wb25lbnRzIGl0IG1pZ2h0IGRlcGVuZCBvbi4gVGhpcyB3aWxsIGdpdmUgbWUgYSBzb2xpZCBiYXNlIHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoaXMgZHJpdmVyIGlzIHN0cnVjdHVyZWQgYW5kIGhvdyB0byBjb250cm9sIGl0IGR1cmluZyB0aGUgYnVpbGQgcHJvY2Vzcy4gSXQncyB0aGUgbG9naWNhbCBzdGFydGluZyBwb2ludCBmb3IgdW5kZXJzdGFuZGluZyBob3cgdGhpcyBkcml2ZXIgaW50ZWdyYXRlcyBpbnRvIHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbi4gS25vd2luZyBob3cgaXQncyBjb25maWd1cmVkIGlzIGtleSB0byBtYWtpbmcgYW55IHByb2dyZXNzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MzA3LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDJUMDg6NTI6MzYuNjc1MjI1NjIxWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5ODE1OTY3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk1UNzk5NlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTU4MiBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZT01MD1vYmotJChDT05GSUdfTVQ3OTIxX0NPTU1PTikgKz0gbXQ3OTIxL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU6NTE6b2JqLSQoQ09ORklHX01UNzk5NkUpICs9IG10Nzk5Ni9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlLTUyLW9iai0kKENPTkZJR19NVDc5MjVfQ09NTU9OKSArPSBtdDc5MjUvXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZzoyOmNvbmZpZyBNVDc5OTZFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZzozOlxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5OTYgKFBDSWUpIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy00LVxcdHNlbGVjdCBNVDc2X0NPTk5BQ19MSUJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctOS1cXHRoZWxwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZzoxMDpcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5OTYtYmFzZWQgUENJZSB3aXJlbGVzcyBkZXZpY2VzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctMTEtXFx0ICB3aGljaCBzdXBwb3J0IGNvbmN1cnJlbnQgdHJpLWJhbmQgb3BlcmF0aW9uIGF0IDZHSHosIDVHSHosXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTE1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6MTY6Y29uZmlnIE1UNzk5Nl9OUFVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjE3OlxcdGJvb2wgXFxcIk1UNzk5NiAoUENJZSkgTlBVIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZzoxODpcXHRkZXBlbmRzIG9uIE1UNzk5NkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTE5LVxcdGRlcGVuZHMgb24gTkVUX0FJUk9IQV9OUFU9eSB8fCBNVDc2X0NPUkU9TkVUX0FJUk9IQV9OUFVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfTVQ3OTk2RSkgKz0gbXQ3OTk2ZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZT01PW10Nzk5NmUteSA6PSBwY2kubyBpbml0Lm8gZG1hLm8gZWVwcm9tLm8gbWFpbi5vIG1jdS5vIG1hYy5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6ODptdDc5OTZlLSQoQ09ORklHX01UNzk5Nl9OUFUpICs9IG5wdS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtOS1tdDc5OTZlLSQoQ09ORklHX0RFVl9DT1JFRFVNUCkgKz0gY29yZWR1bXAub1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYz00OD1tdDc5OTZfY29yZWR1bXBfZ2V0X21lbV9sYXlvdXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgdTMyICpudW0pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTUwLVxcdHN3aXRjaCAobXQ3Nl9jaGlwKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo1MTpcXHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSUQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo1MjpcXHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSURfMjpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTUzLVxcdFxcdCpudW0gPSBBUlJBWV9TSVpFKG10Nzk5Nl9tZW1fcmVnaW9ucyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz00Nj1zdGF0aWMgdm9pZCBtdDc5OTZfZG1hX2NvbmZpZyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTktXFx0LyogcnggcXVldWUgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2MDpcXHRSWFFfQ09ORklHKE1UX1JYUV9NQ1UsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfV00sIE1UNzk5Nl9SWFFfTUNVX1dNKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02MS1cXHQvKiBmb3IgbXQ3OTkwLCBSWCByaW5nIDEgaXMgZm9yIFNETyBpbnN0ZWFkICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjI6XFx0UlhRX0NPTkZJRyhNVF9SWFFfTUNVX1dBLCBXRkRNQTAsIE1UX0lOVF9SWF9ET05FX1dBLCBNVDc5OTZfUlhRX01DVV9XQSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjM6XFx0UlhRX0NPTkZJRyhNVF9SWFFfTUFJTiwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9CQU5EMCwgTVQ3OTk2X1JYUV9CQU5EMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjQtXFx0aWYgKG10Nzk5Nl9oYXNfd2EoZGV2KSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02NS1cXHRcXHRSWFFfQ09ORklHKE1UX1JYUV9NQUlOX1dBLCBXRkRNQTAsIE1UX0lOVF9SWF9ET05FX1dBX01BSU4sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjY6XFx0XFx0XFx0ICAgTVQ3OTk2X1JYUV9NQ1VfV0FfTUFJTik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02OS1cXHRjYXNlIE1UNzk5Ml9ERVZJQ0VfSUQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzA6XFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfQkFORDFfV0EsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfV0FfRVhULCBNVDc5OTZfUlhRX01DVV9XQV9FWFQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjcxOlxcdFxcdFJYUV9DT05GSUcoTVRfUlhRX0JBTkQxLCBXRkRNQTAsIE1UX0lOVF9SWF9ET05FX0JBTkQxLCBNVDc5OTZfUlhRX0JBTkQxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03Mi1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03My1cXHRjYXNlIE1UNzk5MF9ERVZJQ0VfSUQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzQ6XFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfQkFORDEsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfQkFORDEsIE1UNzk5Nl9SWFFfQkFORDEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc1LVxcdFxcdFJYUV9DT05GSUcoTVRfUlhRX1RYRlJFRV9CQU5EMCwgV0ZETUEwLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODAtXFx0XFx0YnJlYWs7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODE6XFx0Y2FzZSBNVDc5OTZfREVWSUNFX0lEOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgyLVxcdGRlZmF1bHQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODMtXFx0XFx0LyogbXQ3OTk2IGJhbmQyICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODQ6XFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfQkFORDJfV0EsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfV0FfVFJJLCBNVDc5OTZfUlhRX01DVV9XQV9UUkkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg1OlxcdFxcdFJYUV9DT05GSUcoTVRfUlhRX0JBTkQyLCBXRkRNQTAsIE1UX0lOVF9SWF9ET05FX0JBTkQyLCBNVDc5OTZfUlhRX0JBTkQyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04Ni1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkxLVxcdFxcdFJYUV9DT05GSUcoTVRfUlhRX1JST19CQU5EMCwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9SUk9fQkFORDAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTI6XFx0XFx0XFx0ICAgTVQ3OTk2X1JYUV9SUk9fQkFORDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkzLVxcdFxcdGlmIChkZXYtXFx1MDAzZW10NzYuaHdycm9fbW9kZSA9PSBNVDc2X0hXUlJPX1YzKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTUtXFx0XFx0XFx0XFx0ICAgTVRfSU5UX1JYX0RPTkVfTVNEVV9QR19CQU5EMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo5NjpcXHRcXHRcXHRcXHQgICBNVDc5OTZfUlhRX01TRFVfUEdfQkFORDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTk3LVxcdFxcdGlmIChpc19tdDc5OTYoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05OC1cXHRcXHRcXHRSWFFfQ09ORklHKE1UX1JYUV9UWEZSRUVfQkFORDAsIFdGRE1BMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo5OTpcXHRcXHRcXHRcXHQgICBNVF9JTlRfUlhfVFhGUkVFX01BSU4sIE1UNzk5Nl9SWFFfVFhGUkVFMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTAwLVxcdFxcdFxcdC8qIGJhbmQxICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDItXFx0XFx0XFx0XFx0ICAgTVRfSU5UX1JYX0RPTkVfTVNEVV9QR19CQU5EMSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMDM6XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1JYUV9NU0RVX1BHX0JBTkQxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDQtXFx0XFx0XFx0LyogYmFuZDIgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwNi1cXHRcXHRcXHRcXHQgICBNVF9JTlRfUlhfRE9ORV9SUk9fQkFORDIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTA3OlxcdFxcdFxcdFxcdCAgIE1UNzk5Nl9SWFFfUlJPX0JBTkQyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDgtXFx0XFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfTVNEVV9QQUdFX0JBTkQyLCBXRkRNQTAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTA5LVxcdFxcdFxcdFxcdCAgIE1UX0lOVF9SWF9ET05FX01TRFVfUEdfQkFORDIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTEwOlxcdFxcdFxcdFxcdCAgIE1UNzk5Nl9SWFFfTVNEVV9QR19CQU5EMik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTExLVxcdFxcdFxcdFJYUV9DT05GSUcoTVRfUlhRX1RYRlJFRV9CQU5EMiwgV0ZETUEwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjExMjpcXHRcXHRcXHRcXHQgICBNVF9JTlRfUlhfVFhGUkVFX1RSSSwgTVQ3OTk2X1JYUV9UWEZSRUUyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMTMtXFx0XFx0fSBlbHNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTExNS1cXHRcXHRcXHRcXHQgICBNVF9JTlRfUlhfRE9ORV9SUk9fQkFORDEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTE2OlxcdFxcdFxcdFxcdCAgIE1UNzk5Nl9SWFFfUlJPX0JBTkQxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMTctXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTIxLVxcdFxcdFxcdFxcdCAgIE1UX0lOVF9SWF9ET05FX1JST19JTkQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTIyOlxcdFxcdFxcdFxcdCAgIE1UNzk5Nl9SWFFfUlJPX0lORCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTIzLVxcdFxcdGVsc2VcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEyNS1cXHRcXHRcXHRcXHQgICBNVF9JTlRfUlhfRE9ORV9SUk9fUlhETUFEX0MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTI2OlxcdFxcdFxcdFxcdCAgIE1UNzk5Nl9SWFFfUlJPX1JYRE1BRF9DKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMjctXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTMzLVxcdFxcdFxcdFxcdFRYUV9DT05GSUcoMCwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMzQ6XFx0XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1RYUV9CQU5EMik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTM1LVxcdFxcdFxcdFxcdFRYUV9DT05GSUcoMSwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMzY6XFx0XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1RYUV9CQU5EMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTM3LVxcdFxcdFxcdFxcdFRYUV9DT05GSUcoMiwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMzg6XFx0XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1RYUV9CQU5EMSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTM5LVxcdFxcdFxcdH0gZWxzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNDEtXFx0XFx0XFx0XFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE0MjpcXHRcXHRcXHRcXHRcXHQgICBNVDc5OTZfVFhRX0JBTkQwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNDMtXFx0XFx0XFx0XFx0VFhRX0NPTkZJRygxLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE0NDpcXHRcXHRcXHRcXHRcXHQgICBNVDc5OTZfVFhRX0JBTkQxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNDUtXFx0XFx0XFx0XFx0VFhRX0NPTkZJRygyLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE0NjpcXHRcXHRcXHRcXHRcXHQgICBNVDc5OTZfVFhRX0JBTkQyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNDctXFx0XFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTUwLVxcdFxcdFxcdFRYUV9DT05GSUcoMCwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxNTE6XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1RYUV9CQU5EMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTUyLVxcdFxcdFxcdFRYUV9DT05GSUcoMiwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxNTM6XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1RYUV9CQU5EMSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTU0LVxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTE1OC1cXHRcXHRcXHRUWFFfQ09ORklHKDAsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfQkFORDAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTU5OlxcdFxcdFxcdFxcdCAgIE1UNzk5Nl9UWFFfQkFORDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTE2MC1cXHRcXHRcXHRUWFFfQ09ORklHKDEsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfQkFORDIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTYxOlxcdFxcdFxcdFxcdCAgIE1UNzk5Nl9UWFFfQkFORDIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTE2Mi1cXHRcXHR9IGVsc2Uge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTY0LVxcdFxcdFxcdFRYUV9DT05GSUcoMCwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxNjU6XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1RYUV9CQU5EMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTY2LVxcdFxcdFxcdFRYUV9DT05GSUcoMSwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxNjc6XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1RYUV9CQU5EMSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTY4LVxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTE3MS1cXHQvKiBtY3UgdHggcXVldWUgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxNzI6XFx0TUNVUV9DT05GSUcoTVRfTUNVUV9GV0RMLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0ZXREwsIE1UNzk5Nl9UWFFfRldETCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTczOlxcdE1DVVFfQ09ORklHKE1UX01DVVFfV00sIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfTUNVX1dNLCBNVDc5OTZfVFhRX01DVV9XTSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTc0LVxcdGlmIChtdDc5OTZfaGFzX3dhKGRldikpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTc1LVxcdFxcdE1DVVFfQ09ORklHKE1UX01DVVFfV0EsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfTUNVX1dBLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE3NjpcXHRcXHRcXHQgICAgTVQ3OTk2X1RYUV9NQ1VfV0EpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTE3Ny19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz01MjE9aW50IG10Nzk5Nl9kbWFfcnJvX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTUzNS1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9SUk9fUlhETUFEX0MpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjUzNjpcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1Mzc6XFx0XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9CVUZfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01MzgtXFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9SUk9fQVBfUklOR19CQVNFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU2MS1cXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9SUk9fSU5EKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1NjI6XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTYzLVxcdFxcdFxcdCAgICAgICAwLCBNVF9SWFFfUlJPX0lORF9SSU5HX0JBU0UpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTc0LVxcdHNpemUgPSBpc19tdDc5OTYobWRldikgXFx1MDAyNlxcdTAwMjYgbXQ3Nl9ucHVfZGV2aWNlX2FjdGl2ZShtZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjU3NTpcXHQgICAgICAgPyBNVDc5OTZfTlBVX1JYX1JJTkdfU0laRSAvIDQgOiBNVDc5OTZfUlhfUklOR19TSVpFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU3Ni1cXHRyZXQgPSBtdDc2X3F1ZXVlX2FsbG9jKGRldiwgXFx1MDAyNm1kZXYtXFx1MDAzZXFfcnhbTVRfUlhRX01TRFVfUEFHRV9CQU5EMF0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTc3LVxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX01TRFVfUEFHRV9CQU5EMCksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTc4OlxcdFxcdFxcdCAgICAgICBzaXplLCBNVDc5OTZfUlhfTVNEVV9QQUdFX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTc5LVxcdFxcdFxcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9NU0RVX1BBR0VfQkFORDApKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU5MS1cXHRcXHRzaXplID0gaXNfbXQ3OTk2KG1kZXYpIFxcdTAwMjZcXHUwMDI2IG10NzZfbnB1X2RldmljZV9hY3RpdmUobWRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1OTI6XFx0XFx0ICAgICAgID8gTVQ3OTk2X05QVV9SWF9SSU5HX1NJWkUgLyAyIDogTVQ3OTk2X1JYX1JJTkdfU0laRTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01OTMtXFx0XFx0cmV0ID0gbXQ3Nl9xdWV1ZV9hbGxvYyhkZXYsIFxcdTAwMjZtZGV2LVxcdTAwM2VxX3J4W01UX1JYUV9NU0RVX1BBR0VfQkFORDFdLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU5NC1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9NU0RVX1BBR0VfQkFORDEpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjU5NTpcXHRcXHRcXHRcXHQgICAgICAgc2l6ZSwgTVQ3OTk2X1JYX01TRFVfUEFHRV9TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU5Ni1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfTVNEVV9QQUdFX0JBTkQxKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02MDktXFx0XFx0c2l6ZSA9IGlzX210Nzk5NihtZGV2KSBcXHUwMDI2XFx1MDAyNiBtdDc2X25wdV9kZXZpY2VfYWN0aXZlKG1kZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjEwOlxcdFxcdCAgICAgICA/IE1UNzk5Nl9OUFVfUlhfUklOR19TSVpFIDogTVQ3OTk2X1JYX1JJTkdfU0laRTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02MTEtXFx0XFx0cmV0ID0gbXQ3Nl9xdWV1ZV9hbGxvYyhkZXYsIFxcdTAwMjZtZGV2LVxcdTAwM2VxX3J4W01UX1JYUV9NU0RVX1BBR0VfQkFORDJdLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYxMi1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9NU0RVX1BBR0VfQkFORDIpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjYxMzpcXHRcXHRcXHRcXHQgICAgICAgc2l6ZSwgTVQ3OTk2X1JYX01TRFVfUEFHRV9TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYxNC1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfTVNEVV9QQUdFX0JBTkQyKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz02NjQ9aW50IG10Nzk5Nl9kbWFfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjgzLVxcdFxcdHJldCA9IG10Nzk5Nl9pbml0X3R4X3F1ZXVlcyhcXHUwMDI2ZGV2LVxcdTAwM2VwaHksIE1UX1RYUV9JRCgwKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2ODQ6XFx0XFx0XFx0XFx0XFx0ICAgIE1UNzk5Nl9OUFVfVFhfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY4NS1cXHRcXHRcXHRcXHRcXHQgICAgTVRfVFhRX1JJTkdfQkFTRSgwKSArIGhpZjFfb2ZzLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjg5LVxcdFxcdFxcdFxcdFxcdCAgICBNVF9UWFFfSUQoZGV2LVxcdTAwM2VtcGh5LmJhbmRfaWR4KSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2OTA6XFx0XFx0XFx0XFx0XFx0ICAgIE1UNzk5Nl9UWF9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjkxLVxcdFxcdFxcdFxcdFxcdCAgICBNVF9UWFFfUklOR19CQVNFKDApLCB3ZWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjk3LVxcdFxcdFxcdFxcdCAgTVRfTUNVUV9JRChNVF9NQ1VRX1dNKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2OTg6XFx0XFx0XFx0XFx0ICBNVDc5OTZfVFhfTUNVX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02OTktXFx0XFx0XFx0XFx0ICBNVF9NQ1VRX1JJTkdfQkFTRShNVF9NQ1VRX1dNKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03MDYtXFx0XFx0XFx0XFx0XFx0ICBNVF9NQ1VRX0lEKE1UX01DVVFfV0EpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjcwNzpcXHRcXHRcXHRcXHRcXHQgIE1UNzk5Nl9UWF9NQ1VfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTcwOC1cXHRcXHRcXHRcXHRcXHQgIE1UX01DVVFfUklOR19CQVNFKE1UX01DVVFfV0EpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTcxNS1cXHRcXHRcXHRcXHQgIE1UX01DVVFfSUQoTVRfTUNVUV9GV0RMKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3MTY6XFx0XFx0XFx0XFx0ICBNVDc5OTZfVFhfRldETF9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzE3LVxcdFxcdFxcdFxcdCAgTVRfTUNVUV9SSU5HX0JBU0UoTVRfTUNVUV9GV0RMKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03MjMtXFx0XFx0XFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfTUNVKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3MjQ6XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjcyNTpcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX01DVV9CVUZfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03MjYtXFx0XFx0XFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX01DVSkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzMyLVxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX01DVV9XQSksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzMzOlxcdFxcdFxcdCAgICAgICBNVDc5OTZfUlhfTUNVX1JJTkdfU0laRV9XQSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3MzQ6XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfQlVGX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzM1LVxcdFxcdFxcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9NQ1VfV0EpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc0Ni1cXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9NQUlOKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3NDc6XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzQ4LVxcdFxcdFxcdCAgICAgICBNVF9SWF9CVUZfU0laRSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc2Ni1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9NQUlOX1dBKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3Njc6XFx0XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc2OC1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03NzgtXFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfVFhGUkVFX0JBTkQwKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3Nzk6XFx0XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjc4MDpcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX0JVRl9TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc4MS1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfVFhGUkVFX0JBTkQwKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03OTItXFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfVFhGUkVFX0JBTkQxKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3OTM6XFx0XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjc5NDpcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX0JVRl9TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc5NS1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfVFhGUkVFX0JBTkQxKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MDQtXFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfQkFORDIpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjgwNTpcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MDYtXFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYX0JVRl9TSVpFLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODIwLVxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX0JBTkQyX1dBKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4MjE6XFx0XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgyMi1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MzUtXFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfQkFORDEpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjgzNjpcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MzctXFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYX0JVRl9TSVpFLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODUyLVxcdFxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX0JBTkQxX1dBKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4NTM6XFx0XFx0XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg1NC1cXHRcXHRcXHRcXHRcXHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04NjgtXFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfUlJPX0JBTkQwKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4Njk6XFx0XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODcwOlxcdFxcdFxcdFxcdCAgICAgICBNVDc5OTZfUlhfQlVGX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODcxLVxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9SUk9fQkFORDApKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg4My1cXHRcXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9SUk9fQkFORDEpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg4NDpcXHRcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4ODU6XFx0XFx0XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9CVUZfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04ODYtXFx0XFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX1JST19CQU5EMSkgKyBoaWYxX29mcyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05MDAtXFx0XFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfVFhGUkVFX0JBTkQwKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo5MDE6XFx0XFx0XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjkwMjpcXHRcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX0JVRl9TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkwMy1cXHRcXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfVFhGUkVFX0JBTkQwKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05MTktXFx0XFx0XFx0ICAgICAgIG10NzZfbnB1X2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo5MjA6XFx0XFx0XFx0ICAgICAgID8gTVQ3OTk2X05QVV9SWF9SSU5HX1NJWkUgOiBNVDc5OTZfUlhfUklOR19TSVpFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkyMS1cXHRcXHRcXHRyZXQgPSBtdDc2X3F1ZXVlX2FsbG9jKGRldiwgXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5xX3J4W01UX1JYUV9SUk9fQkFORDJdLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkyMi1cXHRcXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9SUk9fQkFORDIpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjkyMzpcXHRcXHRcXHRcXHRcXHQgICAgICAgc2l6ZSwgTVQ3OTk2X1JYX0JVRl9TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkyNC1cXHRcXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfUlJPX0JBTkQyKSArIGhpZjFfb2ZzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkzNC1cXHRcXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9UWEZSRUVfQkFORDIpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjkzNTpcXHRcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX01DVV9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTM2OlxcdFxcdFxcdFxcdFxcdCAgICAgICBNVDc5OTZfUlhfQlVGX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTM3LVxcdFxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9UWEZSRUVfQkFORDIpICsgaGlmMV9vZnMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM9MTA9c3RhdGljIGludCBtdDc5OTZfY2hlY2tfZWVwcm9tKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xNS1cXHRzd2l0Y2ggKHZhbCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjE2OlxcdGNhc2UgTVQ3OTk2X0RFVklDRV9JRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xNy1cXHRcXHRyZXR1cm4gaXNfbXQ3OTk2KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpID8gMCA6IC1FSU5WQUw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYz0yNz1zdGF0aWMgY2hhciAqbXQ3OTk2X2VlcHJvbV9uYW1lKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0zMi1cXHRcXHRjYXNlIE1UNzk5Ml9WQVJfVFlQRV8yMzpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzozMzpcXHRcXHRcXHRpZiAoZGV2LVxcdTAwM2V2YXIuZmVtID09IE1UNzk5Nl9GRU1fSU5UKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTM0LVxcdFxcdFxcdFxcdHJldHVybiBNVDc5OTJfRUVQUk9NX0RFRkFVTFRfMjNfSU5UO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMzktXFx0XFx0ZGVmYXVsdDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo0MDpcXHRcXHRcXHRpZiAoZGV2LVxcdTAwM2V2YXIuZmVtID09IE1UNzk5Nl9GRU1fSU5UKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTQxLVxcdFxcdFxcdFxcdHJldHVybiBNVDc5OTJfRUVQUk9NX0RFRkFVTFRfSU5UO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjQyOlxcdFxcdFxcdGlmIChkZXYtXFx1MDAzZXZhci5mZW0gPT0gTVQ3OTk2X0ZFTV9NSVgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtNDMtXFx0XFx0XFx0XFx0cmV0dXJuIE1UNzk5Ml9FRVBST01fREVGQVVMVF9NSVg7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy00Ni1cXHRjYXNlIE1UNzk5MF9ERVZJQ0VfSUQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NDc6XFx0XFx0aWYgKGRldi1cXHUwMDNldmFyLmZlbSA9PSBNVDc5OTZfRkVNX0lOVClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy00OC1cXHRcXHRcXHRyZXR1cm4gTVQ3OTkwX0VFUFJPTV9ERUZBVUxUX0lOVDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy00OS1cXHRcXHRyZXR1cm4gTVQ3OTkwX0VFUFJPTV9ERUZBVUxUO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjUwOlxcdGNhc2UgTVQ3OTk2X0RFVklDRV9JRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy01MS1cXHRkZWZhdWx0OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTUyLVxcdFxcdHN3aXRjaCAoZGV2LVxcdTAwM2V2YXIudHlwZSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjUzOlxcdFxcdGNhc2UgTVQ3OTk2X1ZBUl9UWVBFXzIzMzpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo1NDpcXHRcXHRcXHRpZiAoZGV2LVxcdTAwM2V2YXIuZmVtID09IE1UNzk5Nl9GRU1fSU5UKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjU1OlxcdFxcdFxcdFxcdHJldHVybiBNVDc5OTZfRUVQUk9NX0RFRkFVTFRfMjMzX0lOVDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo1NjpcXHRcXHRcXHRyZXR1cm4gTVQ3OTk2X0VFUFJPTV9ERUZBVUxUXzIzMztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo1NzpcXHRcXHRjYXNlIE1UNzk5Nl9WQVJfVFlQRV80NDQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtNTgtXFx0XFx0ZGVmYXVsdDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo1OTpcXHRcXHRcXHRpZiAoZGV2LVxcdTAwM2V2YXIuZmVtID09IE1UNzk5Nl9GRU1fSU5UKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjYwOlxcdFxcdFxcdFxcdHJldHVybiBNVDc5OTZfRUVQUk9NX0RFRkFVTFRfSU5UO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjYxOlxcdFxcdFxcdHJldHVybiBNVDc5OTZfRUVQUk9NX0RFRkFVTFQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtNjItXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM9OTg9c3RhdGljIGJvb2wgbXQ3OTk2X2VlcHJvbV92YXJpYW50X3ZhbGlkKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGNvbnN0IHU4ICpkZWYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xMDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTA5OlxcdGlmIChkZXYtXFx1MDAzZXZhci5mZW0gPT0gTVQ3OTk2X0ZFTV9FWFQgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xMTAtXFx0ICAgICEoZmVtWzBdID09IEZFTV9FWFQgXFx1MDAyNlxcdTAwMjYgZmVtWzFdID09IEZFTV9FWFQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTExMS1cXHRcXHRyZXR1cm4gZmFsc2U7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTEyOlxcdGVsc2UgaWYgKGRldi1cXHUwMDNldmFyLmZlbSA9PSBNVDc5OTZfRkVNX0lOVCBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTExMy1cXHRcXHQgIShmZW1bMF0gPT0gRkVNX0lOVCBcXHUwMDI2XFx1MDAyNiBmZW1bMV0gPT0gRkVNX0lOVCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTE0LVxcdFxcdHJldHVybiBmYWxzZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzoxMTU6XFx0ZWxzZSBpZiAoZGV2LVxcdTAwM2V2YXIuZmVtID09IE1UNzk5Nl9GRU1fTUlYIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTE2LVxcdFxcdCAhKGZlbVswXSA9PSBGRU1fSU5UIFxcdTAwMjZcXHUwMDI2IGZlbVsxXSA9PSBGRU1fRVhUKSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jPTEzNz1tdDc5OTZfZWVwcm9tX2NoZWNrX29yX3VzZV9kZWZhdWx0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGJvb2wgdXNlX2RlZmF1bHQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xNTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTUzOlxcdGlmIChmdy1cXHUwMDNlc2l6ZSBcXHUwMDNjIE1UNzk5Nl9FRVBST01fU0laRSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE1NC1cXHRcXHRkZXZfZXJyKGRldi1cXHUwMDNlbXQ3Ni5kZXYsIFxcXCJJbnZhbGlkIGRlZmF1bHQgYmluIHNpemVcXFxcblxcXCIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTYyLVxcdGRldl93YXJuKGRldi1cXHUwMDNlbXQ3Ni5kZXYsIFxcXCJlZXByb20gbG9hZCBmYWlsLCB1c2UgZGVmYXVsdCBiaW5cXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjE2MzpcXHRtZW1jcHkoZWVwcm9tLCBmdy1cXHUwMDNlZGF0YSwgTVQ3OTk2X0VFUFJPTV9TSVpFKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xNjQtXFx0ZGV2LVxcdTAwM2VlZXByb21fbW9kZSA9IEVFUFJPTV9NT0RFX0RFRkFVTFRfQklOO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM9MTcyPXN0YXRpYyBpbnQgbXQ3OTk2X2VlcHJvbV9sb2FkKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xNzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTc4OlxcdHJldCA9IG10NzZfZWVwcm9tX2luaXQoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NiwgTVQ3OTk2X0VFUFJPTV9TSVpFKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xNzktXFx0aWYgKHJldCBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xODYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTg3OlxcdG1lbXNldChkZXYtXFx1MDAzZW10NzYuZWVwcm9tLmRhdGEsIDAsIE1UNzk5Nl9FRVBST01fU0laRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTg4LVxcdGlmIChtdDc5OTZfaGFzX2V4dF9lZXByb20oZGV2KSkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTkwLVxcdFxcdGRldi1cXHUwMDNlZWVwcm9tX21vZGUgPSBFRVBST01fTU9ERV9FWFQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTkxOlxcdFxcdGVlcHJvbV9ibGtfc2l6ZSA9IE1UNzk5Nl9FWFRfRUVQUk9NX0JMT0NLX1NJWkU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTkyLVxcdH0gZWxzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xOTYtXFx0XFx0ZGV2LVxcdTAwM2VlZXByb21fbW9kZSA9IEVFUFJPTV9NT0RFX0VGVVNFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjE5NzpcXHRcXHRlZXByb21fYmxrX3NpemUgPSBNVDc5OTZfRUVQUk9NX0JMT0NLX1NJWkU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTk4LVxcdFxcdHJldCA9IG10Nzk5Nl9tY3VfZ2V0X2VmdXNlX2ZyZWVfYmxvY2soZGV2LCBcXHUwMDI2ZnJlZV9ibG9ja19udW0pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMjE3LVxcdC8qIHJlYWQgZWVwcm9tIGRhdGEgZnJvbSBmdyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjIxODpcXHRibG9ja19udW0gPSBESVZfUk9VTkRfVVAoTVQ3OTk2X0VFUFJPTV9TSVpFLCBlZXByb21fYmxrX3NpemUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTIxOS1cXHRmb3IgKGkgPSAxOyBpIFxcdTAwM2MgYmxvY2tfbnVtOyBpKyspIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTIyMi1cXHRcXHRpZiAoaSA9PSBibG9ja19udW0gLSAxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjIyMzpcXHRcXHRcXHRsZW4gPSBNVDc5OTZfRUVQUk9NX1NJWkUgJSBlZXByb21fYmxrX3NpemU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMjI0LVxcdFxcdHJldCA9IG10Nzk5Nl9tY3VfZ2V0X2VlcHJvbShkZXYsIGkgKiBlZXByb21fYmxrX3NpemUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYz0zOTU9Ym9vbCBtdDc5OTZfZWVwcm9tX2hhc19iYWNrZ3JvdW5kX3JhZGFyKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0zOTctXFx0c3dpdGNoIChtdDc2X2NoaXAoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzozOTg6XFx0Y2FzZSBNVDc5OTZfREVWSUNFX0lEOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjM5OTpcXHRcXHRpZiAoZGV2LVxcdTAwM2V2YXIudHlwZSA9PSBNVDc5OTZfVkFSX1RZUEVfMjMzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTQwMC1cXHRcXHRcXHRyZXR1cm4gZmFsc2U7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uaC01LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5oOjY6I2lmbmRlZiBfX01UNzk5Nl9FRVBST01fSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5oOjc6I2RlZmluZSBfX01UNzk5Nl9FRVBST01fSFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5oLTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MTc9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfaWZhY2VfbGltaXQgaWZfbGltaXRzX2dsb2JhbCA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTg6XFx0Lm1heCA9IE1UNzk5Nl9NQVhfSU5URVJGQUNFUyAqIE1UNzk5Nl9NQVhfUkFESU9TLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xOS1cXHQudHlwZXMgPSBCSVQoTkw4MDIxMV9JRlRZUEVfU1RBVElPTilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0yNz1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9jb21iaW5hdGlvbiBpZl9jb21iX2dsb2JhbCA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yOS1cXHQubl9saW1pdHMgPSAxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzozMDpcXHQubWF4X2ludGVyZmFjZXMgPSBNVDc5OTZfTUFYX0lOVEVSRkFDRVMgKiBNVDc5OTZfTUFYX1JBRElPUyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MzE6XFx0Lm51bV9kaWZmZXJlbnRfY2hhbm5lbHMgPSBNVDc5OTZfTUFYX1JBRElPUyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMzItXFx0LnJhZGFyX2RldGVjdF93aWR0aHMgPSBCSVQoTkw4MDIxMV9DSEFOX1dJRFRIXzIwX05PSFQpIHxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0zOT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9jb21iaW5hdGlvbiBpZl9jb21iX2dsb2JhbF83OTkyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTQyLVxcdC5tYXhfaW50ZXJmYWNlcyA9IDMyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo0MzpcXHQubnVtX2RpZmZlcmVudF9jaGFubmVscyA9IE1UNzk5Nl9NQVhfUkFESU9TIC0gMSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDQtXFx0LnJhZGFyX2RldGVjdF93aWR0aHMgPSBCSVQoTkw4MDIxMV9DSEFOX1dJRFRIXzIwX05PSFQpIHxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz01MT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy01OC1cXHR9LCB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjU5OlxcdFxcdC5tYXggPSBNVDc5OTZfTUFYX0lOVEVSRkFDRVMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTYwLVxcdFxcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9TVEFUSU9OKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTY0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2NvbWJpbmF0aW9uIGlmX2NvbWIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNjYtXFx0Lm5fbGltaXRzID0gQVJSQVlfU0laRShpZl9saW1pdHMpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo2NzpcXHQubWF4X2ludGVyZmFjZXMgPSBNVDc5OTZfTUFYX0lOVEVSRkFDRVMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTY4LVxcdC5udW1fZGlmZmVyZW50X2NoYW5uZWxzID0gMSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz04ND1zdGF0aWMgY29uc3Qgc3RydWN0IHdpcGh5X2lmdHlwZV9leHRfY2FwYWIgaWZ0eXBlc19leHRfY2FwYVtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTkyLVxcdFxcdFxcdEZJRUxEX1BSRVBfQ09OU1QoSUVFRTgwMjExX01MRF9DQVBfT1BfTUFYX1NJTVVMX0xJTktTLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo5MzpcXHRcXHRcXHRcXHRcXHQgTVQ3OTk2X01BWF9SQURJT1MgLSAxKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtOTQtXFx0fSwge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEwMS1cXHRcXHRcXHRGSUVMRF9QUkVQX0NPTlNUKElFRUU4MDIxMV9NTERfQ0FQX09QX01BWF9TSU1VTF9MSU5LUyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTAyOlxcdFxcdFxcdFxcdFxcdCBNVDc5OTZfTUFYX1JBRElPUyAtIDEpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDMtXFx0fSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xMzI9c3RhdGljIHNzaXplX3QgbXQ3OTk2X3RoZXJtYWxfdGVtcF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTQ3LVxcdC8qIGFkZCBhIHNhZmV0eSBtYXJnaW4gfjEwICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE0ODpcXHRpZiAoKGkgLSAxID09IE1UNzk5Nl9DUklUX1RFTVBfSURYIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE0OTpcXHQgICAgIHZhbCBcXHUwMDNlIHBoeS1cXHUwMDNldGhyb3R0bGVfdGVtcFtNVDc5OTZfTUFYX1RFTVBfSURYXSAtIDEwKSB8fFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNTA6XFx0ICAgIChpIC0gMSA9PSBNVDc5OTZfTUFYX1RFTVBfSURYIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE1MTpcXHQgICAgIHZhbCAtIDEwIFxcdTAwM2MgcGh5LVxcdTAwM2V0aHJvdHRsZV90ZW1wW01UNzk5Nl9DUklUX1RFTVBfSURYXSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTUyLVxcdFxcdGRldl9lcnIocGh5LVxcdTAwM2VkZXYtXFx1MDAzZW10NzYuZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTE4Mz1tdDc5OTZfdGhlcm1hbF9nZXRfbWF4X3Rocm90dGxlX3N0YXRlKHN0cnVjdCB0aGVybWFsX2Nvb2xpbmdfZGV2aWNlICpjZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE4NS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE4NjpcXHQqc3RhdGUgPSBNVDc5OTZfQ0RFVl9USFJPVFRMRV9NQVg7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE4Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0yMDM9bXQ3OTk2X3RoZXJtYWxfc2V0X2N1cl90aHJvdHRsZV9zdGF0ZShzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqY2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yMDYtXFx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IGNkZXYtXFx1MDAzZWRldmRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjIwNzpcXHR1OCB0aHJvdHRsaW5nID0gTVQ3OTk2X1RIRVJNQUxfVEhST1RUTEVfTUFYIC0gc3RhdGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTIwOC1cXHRpbnQgcmV0O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yMDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjIxMDpcXHRpZiAoc3RhdGUgXFx1MDAzZSBNVDc5OTZfQ0RFVl9USFJPVFRMRV9NQVgpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMjExLVxcdFxcdGRldl9lcnIocGh5LVxcdTAwM2VkZXYtXFx1MDAzZW10NzYuZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTI1MD1zdGF0aWMgaW50IG10Nzk5Nl90aGVybWFsX2luaXQoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yNzQtXFx0LyogaW5pdGlhbGl6ZSBjcml0aWNhbC9tYXhpbXVtIGhpZ2ggdGVtcGVyYXR1cmUgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6Mjc1OlxcdHBoeS1cXHUwMDNldGhyb3R0bGVfdGVtcFtNVDc5OTZfQ1JJVF9URU1QX0lEWF0gPSBNVDc5OTZfQ1JJVF9URU1QO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoyNzY6XFx0cGh5LVxcdTAwM2V0aHJvdHRsZV90ZW1wW01UNzk5Nl9NQVhfVEVNUF9JRFhdID0gTVQ3OTk2X01BWF9URU1QO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yNzctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9NjAzPXN0YXRpYyB2b2lkIG10Nzk5Nl9tYWNfaW5pdF9iYXNpY19yYXRlcyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTYwOS1cXHRcXHQvKiBvZGQgaW5kZXggZm9yIGRyaXZlciwgZXZlbiBpbmRleCBmb3IgZmlybXdhcmUgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NjEwOlxcdFxcdHUxNiBpZHggPSBNVDc5OTZfQkFTSUNfUkFURVNfVEJMICsgMiAqIGk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTYxMS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz02OTA9c3RhdGljIGludCBtdDc5OTZfcmVnaXN0ZXJfcGh5KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGVudW0gbXQ3Nl9iYW5kX2lkIGJhbmQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzUzLVxcdFxcdFxcdCAgIG10NzZfbnB1X2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NzU0OlxcdFxcdFxcdCAgID8gTVQ3OTk2X05QVV9UWF9SSU5HX1NJWkUgLyAyIDogTVQ3OTk2X1RYX1JJTkdfU0laRTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzU1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTgzMz1zdGF0aWMgdm9pZCBtdDc5OTZfcnJvX2h3X2luaXRfdjMoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy04NDMtXFx0XFx0d2VkLVxcdTAwM2V3bGFuLmluZF9jbWQud2luX3NpemUgPVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo4NDQ6XFx0XFx0XFx0ZmZzKE1UNzk5Nl9SUk9fV0lORE9XX01BWF9MRU4pIC0gNjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtODQ1LVxcdFxcdGlmIChpc19tdDc5OTYoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg0Ni1cXHRcXHRcXHR3ZWQtXFx1MDAzZXdsYW4uaW5kX2NtZC5wYXJ0aWN1bGFyX3NpZCA9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjg0NzpcXHRcXHRcXHRcXHRNVDc5OTZfUlJPX01BWF9TRVNTSU9OO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy04NDgtXFx0XFx0ZWxzZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg1MS1cXHRcXHRcXHRkZXYtXFx1MDAzZXdlZF9ycm8uc2Vzc2lvbi5waHlfYWRkcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6ODUyOlxcdFxcdHdlZC1cXHUwMDNld2xhbi5pbmRfY21kLnNlX2dyb3VwX251bXMgPSBNVDc5OTZfUlJPX0FERFJfRUxFTV9MRU47XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg1My1cXHRcXHR3ZWQtXFx1MDAzZXdsYW4uaW5kX2NtZC5hY2tfc25fYWRkciA9IE1UX1JST19BQ0tfU05fQ1RSTDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy04NjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjg3MDpcXHRzZXNzaW9uX2lkID0gaXNfbXQ3OTk2KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpID8gTVQ3OTk2X1JST19NQVhfU0VTU0lPTiA6IDE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg3MS1cXHRtdDc2X3dyKGRldiwgTVRfUlJPX1BBUlRJQ1VMQVJfQ0ZHMSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz05NTc9c3RhdGljIGludCBtdDc5OTZfd2VkX3Jyb19pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtOTY5LVxcdFxcdFxcdHB0ciA9IGRtYW1fYWxsb2NfY29oZXJlbnQoZGV2LVxcdTAwM2VtdDc2LmRtYV9kZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjk3MDpcXHRcXHRcXHRcXHRcXHRcXHQgIE1UNzk5Nl9SUk9fQkFfQklUTUFQX0NSX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk3MS1cXHRcXHRcXHRcXHRcXHRcXHQgIFxcdTAwMjZkZXYtXFx1MDAzZXdlZF9ycm8uYmFfYml0bWFwW2ldLnBoeV9hZGRyLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk4My1cXHRcXHRwdHIgPSBkbWFtX2FsbG9jX2NvaGVyZW50KGRldi1cXHUwMDNlbXQ3Ni5kbWFfZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo5ODQ6XFx0XFx0XFx0XFx0TVQ3OTk2X1JST19XSU5ET1dfTUFYX1NJWkUgKiBzaXplb2YoKmFkZHIpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy05ODUtXFx0XFx0XFx0XFx0XFx1MDAyNmRldi1cXHUwMDNld2VkX3Jyby5hZGRyX2VsZW1baV0ucGh5X2FkZHIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtOTkxLVxcdFxcdG1lbXNldChkZXYtXFx1MDAzZXdlZF9ycm8uYWRkcl9lbGVtW2ldLnB0ciwgMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6OTkyOlxcdFxcdCAgICAgICBNVDc5OTZfUlJPX1dJTkRPV19NQVhfU0laRSAqIHNpemVvZigqYWRkcikpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy05OTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk5NC1cXHRcXHRhZGRyID0gZGV2LVxcdTAwM2V3ZWRfcnJvLmFkZHJfZWxlbVtpXS5wdHI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjk5NTpcXHRcXHRmb3IgKGogPSAwOyBqIFxcdTAwM2MgTVQ3OTk2X1JST19XSU5ET1dfTUFYX1NJWkU7IGorKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy05OTYtXFx0XFx0XFx0YWRkci1cXHUwMDNlZGF0YSA9IGNwdV90b19sZTMyKHZhbCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTAxOC1cXHRcXHRwdHIgPSBkbWFtX2FsbG9jX2NvaGVyZW50KGRldi1cXHUwMDNlbXQ3Ni5kbWFfZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxMDE5OlxcdFxcdFxcdFxcdFxcdCAgTVQ3OTk2X1JST19NU0RVX1BHX1NJWkVfUEVSX0NSLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDIwLVxcdFxcdFxcdFxcdFxcdCAgXFx1MDAyNmRldi1cXHUwMDNld2VkX3Jyby5tc2R1X3BnW2ldLnBoeV9hZGRyLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEwMjctXFx0XFx0bWVtc2V0KGRldi1cXHUwMDNld2VkX3Jyby5tc2R1X3BnW2ldLnB0ciwgMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTAyODpcXHRcXHQgICAgICAgTVQ3OTk2X1JST19NU0RVX1BHX1NJWkVfUEVSX0NSKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTAyOS1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTA1Mi1cXHRwdHIgPSBkbWFtX2FsbG9jX2NvaGVyZW50KGRldi1cXHUwMDNlbXQ3Ni5kbWFfZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxMDUzOlxcdFxcdFxcdFxcdCAgTVQ3OTk2X1JST19XSU5ET1dfTUFYX0xFTiAqIHNpemVvZigqYWRkciksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEwNTQtXFx0XFx0XFx0XFx0ICBcXHUwMDI2ZGV2LVxcdTAwM2V3ZWRfcnJvLnNlc3Npb24ucGh5X2FkZHIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTA2MC1cXHRhZGRyID0gZGV2LVxcdTAwM2V3ZWRfcnJvLnNlc3Npb24ucHRyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxMDYxOlxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBNVDc5OTZfUlJPX1dJTkRPV19NQVhfTEVOOyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTA2Mi1cXHRcXHRhZGRyLVxcdTAwM2VkYXRhID0gY3B1X3RvX2xlMzIodmFsKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xMDc1PXN0YXRpYyB2b2lkIG10Nzk5Nl93ZWRfcnJvX2ZyZWUoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDg2LVxcdFxcdGRtYW1fZnJlZV9jb2hlcmVudChkZXYtXFx1MDAzZW10NzYuZG1hX2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTA4NzpcXHRcXHRcXHRcXHQgICBNVDc5OTZfUlJPX0JBX0JJVE1BUF9DUl9TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDg4LVxcdFxcdFxcdFxcdCAgIGRldi1cXHUwMDNld2VkX3Jyby5iYV9iaXRtYXBbaV0ucHRyLFxcbi0tXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAyVDA4OjUyOjM2LjcyNTA0NzcxOFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQ3NDM1OTk3ODk1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTVQ3OTk2IERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZSBgbXQ3OTk2YCBkcml2ZXIsIHNwZWNpZmljYWxseSB3aXRoaW4gdGhlIE1lZGlhVGVrIFdpRmkgc3VpdGUsIHVuZGVyIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9gLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgUENJIGRldmljZSBzcGVjaWZpY3Mgb2YgdGhpcy4gTXkgbmV4dCBzdGVwIGlzIHRvIGRyaWxsIGRvd24gaW50byBgcGNpLmNgIHdpdGhpbiB0aGF0IGRpcmVjdG9yeS4gSSdtIGhvcGluZyB0byBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIHdoYXQgUENJIGRldmljZXMgYXJlIHN1cHBvcnRlZCBhbmQsIGNyaXRpY2FsbHksIHdoZXRoZXIgdGhpcyBkcml2ZXIgaGFuZGxlcyBzb2xlbHkgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSwgb3IgaWYgaXQgbWlnaHQgYWxzbyBpbmNvcnBvcmF0ZSBzb21lIGZvcm0gb2YgZW11bGF0aW9uLiBVbmRlcnN0YW5kaW5nIHRoaXMgZGlzdGluY3Rpb24gaXMgY3J1Y2lhbCBmb3IgbXkgY3VycmVudCB0YXNrLCBzbyBgcGNpLmNgIGl0IGlzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzcyMywiT3V0cHV0VG9rZW5zIjo1MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAyVDA4OjUzOjI0LjE2MTA3NzU5MloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyMTkxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAxMDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuICAgMjpcXHQvKlxcbiAgIDM6XFx0ICogQ29weXJpZ2h0IChDKSAyMDIyIE1lZGlhVGVrIEluYy5cXG4gICA0OlxcdCAqL1xcbiAgIDU6XFx0XFxuICAgNjpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgva2VybmVsLmhcXHUwMDNlXFxuICAgNzpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvbW9kdWxlLmhcXHUwMDNlXFxuICAgODpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvcGNpLmhcXHUwMDNlXFxuICAgOTpcXHRcXG4gIDEwOlxcdCNpbmNsdWRlIFxcXCJtdDc5OTYuaFxcXCJcXG4gIDExOlxcdCNpbmNsdWRlIFxcXCJtYWMuaFxcXCJcXG4gIDEyOlxcdCNpbmNsdWRlIFxcXCIuLi90cmFjZS5oXFxcIlxcbiAgMTM6XFx0XFxuICAxNDpcXHRzdGF0aWMgTElTVF9IRUFEKGhpZl9saXN0KTtcXG4gIDE1OlxcdHN0YXRpYyBERUZJTkVfU1BJTkxPQ0soaGlmX2xvY2spO1xcbiAgMTY6XFx0c3RhdGljIHUzMiBoaWZfaWR4O1xcbiAgMTc6XFx0XFxuICAxODpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgbXQ3OTk2X3BjaV9kZXZpY2VfdGFibGVbXSA9IHtcXG4gIDE5OlxcdFxcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01FRElBVEVLLCBNVDc5OTZfREVWSUNFX0lEKSB9LFxcbiAgMjA6XFx0XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5Ml9ERVZJQ0VfSUQpIH0sXFxuICAyMTpcXHRcXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgTVQ3OTkwX0RFVklDRV9JRCkgfSxcXG4gIDIyOlxcdFxcdHsgfSxcXG4gIDIzOlxcdH07XFxuICAyNDpcXHRcXG4gIDI1OlxcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBtdDc5OTZfaGlmX2RldmljZV90YWJsZVtdID0ge1xcbiAgMjY6XFx0XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5Nl9ERVZJQ0VfSURfMikgfSxcXG4gIDI3OlxcdFxcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01FRElBVEVLLCBNVDc5OTJfREVWSUNFX0lEXzIpIH0sXFxuICAyODpcXHRcXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgTVQ3OTkwX0RFVklDRV9JRF8yKSB9LFxcbiAgMjk6XFx0XFx0eyB9LFxcbiAgMzA6XFx0fTtcXG4gIDMxOlxcdFxcbiAgMzI6XFx0c3RhdGljIHN0cnVjdCBtdDc5OTZfaGlmICptdDc5OTZfcGNpX2dldF9oaWYyKHUzMiBpZHgpXFxuICAzMzpcXHR7XFxuICAzNDpcXHRcXHRzdHJ1Y3QgbXQ3OTk2X2hpZiAqaGlmO1xcbiAgMzU6XFx0XFx0dTMyIHZhbDtcXG4gIDM2OlxcdFxcbiAgMzc6XFx0XFx0c3Bpbl9sb2NrX2JoKFxcdTAwMjZoaWZfbG9jayk7XFxuICAzODpcXHRcXG4gIDM5OlxcdFxcdGxpc3RfZm9yX2VhY2hfZW50cnkoaGlmLCBcXHUwMDI2aGlmX2xpc3QsIGxpc3QpIHtcXG4gIDQwOlxcdFxcdFxcdHZhbCA9IHJlYWRsKGhpZi1cXHUwMDNlcmVncyArIE1UX1BDSUVfUkVDT0dfSUQpO1xcbiAgNDE6XFx0XFx0XFx0dmFsIFxcdTAwMjY9IE1UX1BDSUVfUkVDT0dfSURfTUFTSztcXG4gIDQyOlxcdFxcdFxcdGlmICh2YWwgIT0gaWR4KVxcbiAgNDM6XFx0XFx0XFx0XFx0Y29udGludWU7XFxuICA0NDpcXHRcXG4gIDQ1OlxcdFxcdFxcdGdldF9kZXZpY2UoaGlmLVxcdTAwM2VkZXYpO1xcbiAgNDY6XFx0XFx0XFx0Z290byBvdXQ7XFxuICA0NzpcXHRcXHR9XFxuICA0ODpcXHRcXHRoaWYgPSBOVUxMO1xcbiAgNDk6XFx0XFxuICA1MDpcXHRvdXQ6XFxuICA1MTpcXHRcXHRzcGluX3VubG9ja19iaChcXHUwMDI2aGlmX2xvY2spO1xcbiAgNTI6XFx0XFxuICA1MzpcXHRcXHRyZXR1cm4gaGlmO1xcbiAgNTQ6XFx0fVxcbiAgNTU6XFx0XFxuICA1NjpcXHRzdGF0aWMgdm9pZCBtdDc5OTZfcHV0X2hpZjIoc3RydWN0IG10Nzk5Nl9oaWYgKmhpZilcXG4gIDU3OlxcdHtcXG4gIDU4OlxcdFxcdGlmICghaGlmKVxcbiAgNTk6XFx0XFx0XFx0cmV0dXJuO1xcbiAgNjA6XFx0XFxuICA2MTpcXHRcXHRwdXRfZGV2aWNlKGhpZi1cXHUwMDNlZGV2KTtcXG4gIDYyOlxcdH1cXG4gIDYzOlxcdFxcbiAgNjQ6XFx0c3RhdGljIHN0cnVjdCBtdDc5OTZfaGlmICptdDc5OTZfcGNpX2luaXRfaGlmMihzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4gIDY1OlxcdHtcXG4gIDY2OlxcdFxcdGhpZl9pZHgrKztcXG4gIDY3OlxcdFxcbiAgNjg6XFx0XFx0aWYgKCFwY2lfZ2V0X2RldmljZShQQ0lfVkVORE9SX0lEX01FRElBVEVLLCBNVDc5OTZfREVWSUNFX0lEXzIsIE5VTEwpIFxcdTAwMjZcXHUwMDI2XFxuICA2OTpcXHRcXHQgICAgIXBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5Ml9ERVZJQ0VfSURfMiwgTlVMTCkgXFx1MDAyNlxcdTAwMjZcXG4gIDcwOlxcdFxcdCAgICAhcGNpX2dldF9kZXZpY2UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgTVQ3OTkwX0RFVklDRV9JRF8yLCBOVUxMKSlcXG4gIDcxOlxcdFxcdFxcdHJldHVybiBOVUxMO1xcbiAgNzI6XFx0XFxuICA3MzpcXHRcXHR3cml0ZWwoaGlmX2lkeCB8IE1UX1BDSUVfUkVDT0dfSURfU0VNLFxcbiAgNzQ6XFx0XFx0ICAgICAgIHBjaW1faW9tYXBfdGFibGUocGRldilbMF0gKyBNVF9QQ0lFX1JFQ09HX0lEKTtcXG4gIDc1OlxcdFxcbiAgNzY6XFx0XFx0cmV0dXJuIG10Nzk5Nl9wY2lfZ2V0X2hpZjIoaGlmX2lkeCk7XFxuICA3NzpcXHR9XFxuICA3ODpcXHRcXG4gIDc5OlxcdHN0YXRpYyBpbnQgbXQ3OTk2X3BjaV9oaWYyX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbiAgODA6XFx0e1xcbiAgODE6XFx0XFx0c3RydWN0IG10Nzk5Nl9oaWYgKmhpZjtcXG4gIDgyOlxcdFxcbiAgODM6XFx0XFx0aGlmID0gZGV2bV9remFsbG9jKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIHNpemVvZigqaGlmKSwgR0ZQX0tFUk5FTCk7XFxuICA4NDpcXHRcXHRpZiAoIWhpZilcXG4gIDg1OlxcdFxcdFxcdHJldHVybiAtRU5PTUVNO1xcbiAgODY6XFx0XFxuICA4NzpcXHRcXHRoaWYtXFx1MDAzZWRldiA9IFxcdTAwMjZwZGV2LVxcdTAwM2VkZXY7XFxuICA4ODpcXHRcXHRoaWYtXFx1MDAzZXJlZ3MgPSBwY2ltX2lvbWFwX3RhYmxlKHBkZXYpWzBdO1xcbiAgODk6XFx0XFx0aGlmLVxcdTAwM2VpcnEgPSBwZGV2LVxcdTAwM2VpcnE7XFxuICA5MDpcXHRcXHRwY2llX2JhbmR3aWR0aF9hdmFpbGFibGUocGRldiwgTlVMTCwgXFx1MDAyNmhpZi1cXHUwMDNlc3BlZWQsIFxcdTAwMjZoaWYtXFx1MDAzZXdpZHRoKTtcXG4gIDkxOlxcdFxcdHNwaW5fbG9ja19iaChcXHUwMDI2aGlmX2xvY2spO1xcbiAgOTI6XFx0XFx0bGlzdF9hZGQoXFx1MDAyNmhpZi1cXHUwMDNlbGlzdCwgXFx1MDAyNmhpZl9saXN0KTtcXG4gIDkzOlxcdFxcdHNwaW5fdW5sb2NrX2JoKFxcdTAwMjZoaWZfbG9jayk7XFxuICA5NDpcXHRcXHRwY2lfc2V0X2RydmRhdGEocGRldiwgaGlmKTtcXG4gIDk1OlxcdFxcbiAgOTY6XFx0XFx0cmV0dXJuIDA7XFxuICA5NzpcXHR9XFxuICA5ODpcXHRcXG4gIDk5OlxcdHN0YXRpYyBpbnQgbXQ3OTk2X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4gMTAwOlxcdFxcdFxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAyVDA4OjUzOjI0LjE2MTUwMjkxMloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQxOTM4NDI5ODMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gncyBGdXp6aW5nIFdvcnRoaW5lc3MqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCB0aGUgaW5zdHJ1Y3Rpb25zIGFyZSBwcmV0dHkgY2xlYXI6IGNlcnRhaW4gbW9kaWZpY2F0aW9ucyBhdXRvbWF0aWNhbGx5IG1lYW4gXCJub1wiIHRvIGZ1enppbmcuIEl0J3MgZXNzZW50aWFsbHkgYSBsaXN0IG9mIHRoaW5ncyB0aGF0IGRvbid0IGludHJvZHVjZSBuZXcgZXhlY3V0aW9uIHBhdGhzIHRoYXQgYSBmdXp6ZXIgd291bGQgY2FyZSBhYm91dC4gRG9jdW1lbnRhdGlvbiwgY29tbWVudHMsIGRlY29yYXRpdmUgbG9nZ2luZywgaW5jb25zZXF1ZW50aWFsIG51bWVyaWMgY2hhbmdlcywgdW5yZWFjaGFibGUgY29kZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlcnMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byBlbXVsYXRlLCBhbmQgdGVhcmRvd24gY2FsbGJhY2tzIC0gYWxsIG5vLWdvcy5cblxuTm93LCBteSBpbml0aWFsIHRob3VnaHQ6IGlzIHRoaXMgcGF0Y2ggZm9jdXNlZCBvbiBhIE1lZGlhVGVrIFdpRmkgZHJpdmVyLCBzcGVjaWZpY2FsbHkgbXQ3OTk2PyBJZiBzbywgaXMgaXQgbGltaXRlZCB0byBQQ0llIGhhcmR3YXJlPyBUaGF0J3MgdGhlIGNyaXRpY2FsIHF1ZXN0aW9uLiBJIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIGl0J3Mgc3RyaWN0bHkgZGVwZW5kZW50IG9uIHBoeXNpY2FsIGhhcmR3YXJlIG9yIGlmIHRoZXJlJ3MgYW55IHBhdGh3YXkgdG8gcmVhY2ggaXQgdGhyb3VnaCBVU0IsIGBtYWM4MDIxMV9od3NpbWAsIG9yIGFueSBvdGhlciBtZXRob2QgdGhhdCAqY2FuKiBiZSB1c2VkIGluIGEgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudC5cblxuTXkgbmV4dCBzdGVwIGlzIHRvIGRpdmUgaW50byB0aGUgY29kZS4gSSdtIGdvaW5nIHRvIGV4aGF1c3RpdmVseSBleGFtaW5lIGFsbCB0aGUgZmlsZXMgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvYCBkaXJlY3RvcnkuIFRoaXMgd2lsbCBiZSBteSBkZWNpc2l2ZSBzdGVwIGluIGRldGVybWluaW5nIHdoZXRoZXIgdGhpcyBpcyB3b3J0aCB0aGUgZWZmb3J0IHRvIGZ1enouIEkgbmVlZCB0byBhc2NlcnRhaW4gaWYgdGhlIGNvZGUgdG91Y2hlcyBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcyB0aGF0IGFyZSByZWFsaXN0aWNhbGx5IGV4ZWN1dGFibGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1NjAyLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzc2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDJUMDg6NTM6MjguMzU1MzQ5MzU1WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImNvZGVzZWFyY2gtZGlyLWluZGV4IiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Nzc5ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJEaXJcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5NlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJGaWxlc1wiOiBbXG4gICAgXCJjb3JlZHVtcC5jXCIsXG4gICAgXCJjb3JlZHVtcC5oXCIsXG4gICAgXCJkZWJ1Z2ZzLmNcIixcbiAgICBcImRtYS5jXCIsXG4gICAgXCJlZXByb20uY1wiLFxuICAgIFwiZWVwcm9tLmhcIixcbiAgICBcImluaXQuY1wiLFxuICAgIFwibWFjLmNcIixcbiAgICBcIm1hYy5oXCIsXG4gICAgXCJtYWluLmNcIixcbiAgICBcIm1jdS5jXCIsXG4gICAgXCJtY3UuaFwiLFxuICAgIFwibW1pby5jXCIsXG4gICAgXCJtdDc5OTYuaFwiLFxuICAgIFwibnB1LmNcIixcbiAgICBcInBjaS5jXCIsXG4gICAgXCJyZWdzLmhcIlxuICBdLFxuICBcIlN1YmRpcnNcIjogbnVsbFxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDJUMDg6NTM6MjguMzU1NDI5MjQ1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjM1NjU1NzkyNjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBIZXJlJ3MgaG93IEknZCBhcHByb2FjaCB0aGF0IGZpbGUuLi5cblxuKipBbmFseXppbmcgbXQ3OTk2J3MgUENJIERyaXZlcioqXG5cbkFscmlnaHQsIGJlZm9yZSBJIGdldCB0b28gZGVlcCBpbnRvIHRoaXMgcGFydGljdWxhciBtb2R1bGUgKGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuY2ApLCBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgdGhlIHNjb3BlIG9mIGl0cyBidXMgc3VwcG9ydC4gSXQncyB0aXRsZWQgXCJwY2kuYyxcIiBzbyB0aGUgb2J2aW91cyBhc3N1bXB0aW9uIGlzIFBDSS4gQnV0LCB3aXRoIHRoZXNlIG5ld2VyIE1lZGlhdGVrIGltcGxlbWVudGF0aW9ucywgdGhleSBvZnRlbiBzaGFyZSBjb3JlIGNvZGUgYWNyb3NzIGRpZmZlcmVudCBidXMgaW50ZXJmYWNlcy4gU28sIEkgbmVlZCB0byBjb25maXJtIHRoYXQgdGhpcyBmaWxlIGlzICpvbmx5KiBkZWFsaW5nIHdpdGggUENJLCBvciBpZiB0aGVyZSdzIHNvbWUgYWJzdHJhY3Rpb24gZ29pbmcgb24uIEknbSBnb2luZyB0byBzY2FuIHRoZSBjb2RlIGZvciBhbnl0aGluZyB0aGF0IG1pZ2h0IGluZGljYXRlIHN1cHBvcnQgZm9yIG90aGVyIGJ1cyB0eXBlcyBsaWtlIFNESU8gb3IgVVNCLiBJJ2xsIGJlIGxvb2tpbmcgZm9yIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uLCBkZXZpY2UgSUQgY2hlY2tzLCBvciBhbnkga2luZCBvZiBidXMtc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gcm91dGluZXMgdGhhdCBoaW50IGF0IG11bHRpLWJ1cyBzdXBwb3J0IHdpdGhpbiB0aGlzIG1vZHVsZS4gSWYgaXQncyBzb2xlbHkgUENJLCB0aGF0IHNpbXBsaWZpZXMgdGhpbmdzIGEgYml0LCBidXQgSSBzdGlsbCBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRpZ2h0bHkgY291cGxlZCBpdCBpcyB0byB0aGUgUENJLXNwZWNpZmljIGZlYXR1cmVzIGFuZCB0aGUgTWVkaWF0ZWsgd2lyZWxlc3MgY2hpcHNldC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY0MzQsIk91dHB1dFRva2VucyI6NTUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MSwiVG9vbENhbGxzIjpbImNvZGVzZWFyY2gtZGlyLWluZGV4Il19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDJUMDg6NTM6MzEuOTIxMDEwNjE0WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozOTA2NzcxMzEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlX2luaXR8bW9kdWxlX3BjaV9kcml2ZXJ8cGNpX3JlZ2lzdGVyX2RyaXZlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5NlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODg5PXN0YXRpYyBpbnQgX19pbml0IG10Nzk5Nl9pbml0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODkyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4OTM6XFx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcXHUwMDI2bXQ3OTk2X2hpZl9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04OTQtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04OTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg5NzpcXHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc5OTZfcGNpX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg5OC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTkwND1zdGF0aWMgdm9pZCBfX2V4aXQgbXQ3OTk2X2V4aXQodm9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy05MDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjkxMDptb2R1bGVfaW5pdChtdDc5OTZfaW5pdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTkxMS1tb2R1bGVfZXhpdChtdDc5OTZfZXhpdCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAyVDA4OjUzOjMyLjMxMTY5NjgyNVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozMzE3OTEzOTAxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEkndmUgbG9va2VkIGF0IHRoaXMgcGF0Y2ggYW5kIEknbSBwcmV0dHkgY2VydGFpbiBpdCdzIG5vdCBnb2luZyB0byBiZSBmcnVpdGZ1bCBmb3IgZnV6emluZyBpbiBhIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50LiBMZXQncyBicmVhayBpdCBkb3duOiBgbXQ3OTk2YCBpcyBleGNsdXNpdmVseSBhIFBDSWUgZHJpdmVyLCByaWdodD8gV2UncmUgdGFsa2luZyBhYm91dCBzcGVjaWZpYyBNZWRpYVRlayBQQ0llIHdpcmVsZXNzIGNhcmRzIOKAkyB0aG9zZSBzcGVjaWZpYyBkZXZpY2UgSURzICgweDc5OTYsIDB4Nzk5MiwgMHg3OTkwIHdpdGggdmVuZG9yIDB4MTRjMykuIE5vdywgdGhlIHByb2JsZW0gaXMsIGFuZCB0aGlzIGlzIHRoZSBjcnV4IG9mIHRoZSBtYXR0ZXIsIFFFTVUgYW5kIEdDRSBqdXN0IGRvbid0IGVtdWxhdGUgdGhvc2UgTWVkaWFUZWsgUENJZSBXaS1GaSBOSUNzLiBObyBkaWNlLlxuXG5JIHF1aWNrbHkgY2hlY2tlZCwgdGhlcmUncyBubyB2aXJ0dWFsaXplZCBvciBlbXVsYXRlZCBzdXBwb3J0IGZvciB0aGF0IGhhcmR3YXJlIGluIFFFTVUuIFVTQiBpcyBhIGRlYWQgZW5kIGhlcmUuIFdlIGNvdWxkIGxvb2sgYXQgVVNCIGdhZGdldCBvciByYXctZ2FkZ2V0IC8gZHVtbXlfaGNkLCBidXQgdGhhdCdzIG5vdCByZWxldmFudDsgdGhpcyBpcyBzdHJpY3RseSBQQ0llLiBNYWM4MDIxMSBod3NpbSwgd2hpY2ggZW11bGF0ZXMgbWFjODAyMTEgcmFkaW9zIGRpcmVjdGx5LCBhbHNvIGJ5cGFzc2VzIHZlbmRvciBkcml2ZXJzIGxpa2UgYG10Nzk5NmAsIHNvIGl0J3MgaXJyZWxldmFudC5cblxuVGhlbiwgSSBkb3VibGUtY2hlY2tlZCB0aGUgZ3VpZGVsaW5lcy4gV2UncmUgZXhwbGljaXRseSB0b2xkIHRvIGF2b2lkIGNvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIGV2ZW4gd2l0aCBzb2Z0d2FyZSBlbXVsYXRpb24uIFdlIGFyZSBhbHNvIHRvbGQgdG8gc3RheSBhd2F5IGZyb20gc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyB0aGF0IHJlcXVpcmUgcmVhbCBoYXJkd2FyZSBub3QgYXZhaWxhYmxlIGluIHN0YW5kYXJkIFFFTVUuIFRoYXQncyBleGFjdGx5IHdoZXJlIHdlIGFyZTogYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBXaS1GaSBkcml2ZXIuXG5cblRoZSBjaGFuZ2VzIGluIHRoaXMgcGF0Y2ggc2VyaWVzIGFyZSBhbGwgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2AgLSBgbWFjLmNgLCBgbWFpbi5jYCwgYW5kIGBtbWlvLmNgLiBUaGF0J3MgdGhlIGBtdDc5OTZlYCBtb2R1bGUsIGFuZCB0aGF0J3MgdGhlIHZlbmRvciBkcml2ZXIuIFdpdGhvdXQgdGhlIGFjdHVhbCBNZWRpYVRlayBQQ0llIGhhcmR3YXJlLCB0aGlzIGRyaXZlciB3b24ndCBldmVuIHByb2JlLCBtYWtpbmcgaXRzIGZ1bmN0aW9ucyBjb21wbGV0ZWx5IHVucmVhY2hhYmxlIGluIGEgUUVNVS9HQ0UgZnV6emluZyBzZXR1cC5cblxuVGhlcmVmb3JlLCBmb3IgYWxsIHRoZXNlIHJlYXNvbnMgSSBoYXZlIHRvIGNvbmNsdWRlIHRoYXQgYFdvcnRoRnV6emluZ2Agc2hvdWxkIGJlIGBmYWxzZWAuXG5cblNvLCBoZXJlJ3MgbXkgcHJlcGFyZWQgcmVhc29uaW5nOlxuXG4qICAgVGhlIG1vZGlmaWNhdGlvbnMgYXJlIGxvY2F0ZWQgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2AgZGlyZWN0b3J5LCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSBNZWRpYVRlayBQQ0llIGRyaXZlciB0aGF0IHN1cHBvcnRzIHRoZSBNVDc5OTYgLyBNVDc5OTIgLyBNVDc5OTAgV2ktRmkgZGV2aWNlcy5cbiogICBUaGUgcmVxdWlyZWQgcGh5c2ljYWwgUENJZSBkZXZpY2VzIGFyZSBub3QgZW11bGF0ZWQgaW4gdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgc3VjaCBhcyBRRU1VIG9yIEdDRS4gU29mdHdhcmUgZW11bGF0aW9uIGFsc28gd29uJ3Qgd29yazogVVNCIGdhZGdldHMgb3IgbWFjODAyMTFcXF9od3NpbSBhcmVuJ3QgcmVsZXZhbnQuXG4qICAgQXMgYSByZXN1bHQsIHRoZSBjb2RlIGlzIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlxuXG5BbmQgbm93IEknbSBnb2luZyB0byBjYWxsIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3MjE1LCJPdXRwdXRUb2tlbnMiOjEyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY4NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wMlQwODo1NDowNS40OTA4MzgyMzdaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzM3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBjaGFuZ2VzIGFyZSBjb25maW5lZCB0byBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni8sIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgd2lyZWxlc3MgZHJpdmVyIGZvciBNZWRpYVRlayBNVDc5OTYvTVQ3OTkyL01UNzk5MCBkZXZpY2VzLiBUaGVzZSBQQ0llIGRldmljZXMgcmVxdWlyZSBzcGVjaWZpYyBwaHlzaWNhbCBoYXJkd2FyZSBhbmQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKHN1Y2ggYXMgUUVNVS9HQ0UpLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgdW5yZWFjaGFibGUgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBjaGFuZ2VzIGFyZSBjb25maW5lZCB0byBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni8sIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgd2lyZWxlc3MgZHJpdmVyIGZvciBNZWRpYVRlayBNVDc5OTYvTVQ3OTkyL01UNzk5MCBkZXZpY2VzLiBUaGVzZSBQQ0llIGRldmljZXMgcmVxdWlyZSBzcGVjaWZpYyBwaHlzaWNhbCBoYXJkd2FyZSBhbmQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKHN1Y2ggYXMgUUVNVS9HQ0UpLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgdW5yZWFjaGFibGUgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wMlQwODo1NDowNS40OTA4NjU2ODdaIiwiU2VxIjoxNSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowsvqhw[1] Phase: Running StartedAt: 2026-09-02 08:54:17 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsvqhw[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-02 08:54:17 +0000 UTC FinishedAt: 2026-09-02 08:54:21 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}