Name: series-workflowvczfm Phase: Failed StartedAt: 2026-06-28 05:54:48 +0000 UTC FinishedAt: 2026-06-28 06:03:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvczfm[0] Phase: Succeeded StartedAt: 2026-06-28 05:54:48 +0000 UTC FinishedAt: 2026-06-28 06:03:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvczfm[0].run-triage Phase: Succeeded StartedAt: 2026-06-28 05:54:48 +0000 UTC FinishedAt: 2026-06-28 06:03:36 +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+CgkJCTx0ZD4yMDI2LzA2LzI4IDA2OjAyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlciAocHRwX29jcCkgZm9yIHRoZSBPcGVuIENvbXB1dGUgUHJvamVjdCBUaW1lIENhcmQuIFRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBkZXZpY2UgaW4gdGhlIGtlcm5lbCBvciBzdGFuZGFyZCBRRU1VLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBBZGRpdGlvbmFsbHksIHRoZSBjaGFuZ2VzIGFyZSB0cml2aWFsIHN5c2ZzIHdyYXBwZXJzIGFyb3VuZCBNTUlPIHJlYWRzL3dyaXRlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMDY6MDI8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA0ZGM5NjAzMGFjNjE1NmVhNDQ2MzQwODAwYzVjNjM3YThmNGRlYzBlXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBKdW4gMjggMDY6MDI6NDggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9wdHAvcHRwX29jcC5jIGIvZHJpdmVycy9wdHAvcHRwX29jcC5jXG5pbmRleCAzNWU5MTFmMWFkNzhjMC4uMWI0Y2NiNGZlY2E1NDkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3B0cC9wdHBfb2NwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvcHRwL3B0cF9vY3AuY1xuQEAgLTQyMjQsNiAmIzQzOzQyMjQsMzQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvY3BfYXR0cl9ncm91cCBhcnRfdGltZWNhcmRfZ3JvdXBzW10gPSB7XG4gXHR7IH0sXG4gfTtcbiBcbiYjNDM7c3RhdGljIHNzaXplX3RcbiYjNDM7aTJjX2J1c19jdHJsX3Nob3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IHB0cF9vY3AgKmJwID0gZGV2X2dldF9kcnZkYXRhKGRldik7XG4mIzQzO1xuJiM0MztcdGlmICghYnAtXHUwMDNlcHBzX3NlbGVjdClcbiYjNDM7XHRcdHJldHVybiAtRU5PREVWO1xuJiM0MztcdHJldHVybiBzeXNmc19lbWl0KGJ1ZiwgXCYjMzQ7MHglMDh4XFxuXCYjMzQ7LFxuJiM0MztcdFx0XHQgIGlvcmVhZDMyKFx1MDAyNmJwLVx1MDAzZXBwc19zZWxlY3QtXHUwMDNlX19wYWQxKSk7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyBzc2l6ZV90XG4mIzQzO2kyY19idXNfY3RybF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLFxuJiM0MztcdFx0ICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgcHRwX29jcCAqYnAgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTtcbiYjNDM7XHR1MzIgdmFsO1xuJiM0MztcbiYjNDM7XHRpZiAoIWJwLVx1MDAzZXBwc19zZWxlY3QpXG4mIzQzO1x0XHRyZXR1cm4gLUVOT0RFVjtcbiYjNDM7XHRpZiAoa3N0cnRvdTMyKGJ1ZiwgMCwgXHUwMDI2dmFsKSlcbiYjNDM7XHRcdHJldHVybiAtRUlOVkFMO1xuJiM0MztcdGlvd3JpdGUzMih2YWwsIFx1MDAyNmJwLVx1MDAzZXBwc19zZWxlY3QtXHUwMDNlX19wYWQxKTtcbiYjNDM7XHRyZXR1cm4gY291bnQ7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyBERVZJQ0VfQVRUUl9SVyhpMmNfYnVzX2N0cmwpO1xuJiM0MztcbiBzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqYWR2YV90aW1lY2FyZF9hdHRyc1tdID0ge1xuIFx0XHUwMDI2ZGV2X2F0dHJfc2VyaWFsbnVtLmF0dHIsXG4gXHRcdTAwMjZkZXZfYXR0cl9nbnNzX3N5bmMuYXR0cixcbkBAIC00MjcyLDYgJiM0Mzs0MzAwLDcgQEAgc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmFkdmFfdGltZWNhcmRfeDFfYXR0cnNbXSA9IHtcbiBcdFx1MDAyNmRldl9hdHRyX3RzX3dpbmRvd19hZGp1c3QuYXR0cixcbiBcdFx1MDAyNmRldl9hdHRyX3V0Y190YWlfb2Zmc2V0LmF0dHIsXG4gXHRcdTAwMjZkZXZfYXR0cl90b2RfY29ycmVjdGlvbi5hdHRyLFxuJiM0MztcdFx1MDAyNmRldl9hdHRyX2kyY19idXNfY3RybC5hdHRyLFxuIFx0TlVMTCxcbiB9O1xuIFxuQEAgLTUyMzUsNiAmIzQzOzUyNjQsNyBAQCBwdHBfb2NwX2luaXQodm9pZClcbiBcdGNvbnN0IGNoYXIgKndoYXQ7XG4gXHRpbnQgZXJyO1xuIFxuJiM0MztcdHJlcXVlc3RfbW9kdWxlKFwmIzM0O2kyYy1kZXZcJiMzNDspO1xuIFx0cHRwX29jcF9kZWJ1Z2ZzX2luaXQoKTtcbiBcbiBcdHdoYXQgPSBcJiMzNDt0aW1lY2FyZCBjbGFzc1wmIzM0OztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAwNjowMjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIgKHB0cF9vY3ApIGZvciB0aGUgT3BlbiBDb21wdXRlIFByb2plY3QgVGltZSBDYXJkLiBUaGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgZGV2aWNlIGluIHRoZSBrZXJuZWwgb3Igc3RhbmRhcmQgUUVNVSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gQWRkaXRpb25hbGx5LCB0aGUgY2hhbmdlcyBhcmUgdHJpdmlhbCBzeXNmcyB3cmFwcGVycyBhcm91bmQgTU1JTyByZWFkcy93cml0ZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA0ZGM5NjAzMGFjNjE1NmVhNDQ2MzQwODAwYzVjNjM3YThmNGRlYzBlCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFN1biBKdW4gMjggMDY6MDI6NDggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3B0cC9wdHBfb2NwLmMgYi9kcml2ZXJzL3B0cC9wdHBfb2NwLmMKaW5kZXggMzVlOTExZjFhZDc4YzAuLjFiNGNjYjRmZWNhNTQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3B0cC9wdHBfb2NwLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9wdHAvcHRwX29jcC5jCkBAIC00MjI0LDYgJiM0Mzs0MjI0LDM0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2NwX2F0dHJfZ3JvdXAgYXJ0X3RpbWVjYXJkX2dyb3Vwc1tdID0gewogCXsgfSwKIH07CiAKJiM0MztzdGF0aWMgc3NpemVfdAomIzQzO2kyY19idXNfY3RybF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKJiM0Mzt7CiYjNDM7CXN0cnVjdCBwdHBfb2NwICpicCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwomIzQzOwomIzQzOwlpZiAoIWJwLSZndDtwcHNfc2VsZWN0KQomIzQzOwkJcmV0dXJuIC1FTk9ERVY7CiYjNDM7CXJldHVybiBzeXNmc19lbWl0KGJ1ZiwgJiMzNDsweCUwOHhcbiYjMzQ7LAomIzQzOwkJCSAgaW9yZWFkMzIoJmFtcDticC0mZ3Q7cHBzX3NlbGVjdC0mZ3Q7X19wYWQxKSk7CiYjNDM7fQomIzQzOwomIzQzO3N0YXRpYyBzc2l6ZV90CiYjNDM7aTJjX2J1c19jdHJsX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiYjNDM7CQkgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKJiM0Mzt7CiYjNDM7CXN0cnVjdCBwdHBfb2NwICpicCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwomIzQzOwl1MzIgdmFsOwomIzQzOwomIzQzOwlpZiAoIWJwLSZndDtwcHNfc2VsZWN0KQomIzQzOwkJcmV0dXJuIC1FTk9ERVY7CiYjNDM7CWlmIChrc3RydG91MzIoYnVmLCAwLCAmYW1wO3ZhbCkpCiYjNDM7CQlyZXR1cm4gLUVJTlZBTDsKJiM0MzsJaW93cml0ZTMyKHZhbCwgJmFtcDticC0mZ3Q7cHBzX3NlbGVjdC0mZ3Q7X19wYWQxKTsKJiM0MzsJcmV0dXJuIGNvdW50OwomIzQzO30KJiM0MzsKJiM0MztzdGF0aWMgREVWSUNFX0FUVFJfUlcoaTJjX2J1c19jdHJsKTsKJiM0MzsKIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphZHZhX3RpbWVjYXJkX2F0dHJzW10gPSB7CiAJJmFtcDtkZXZfYXR0cl9zZXJpYWxudW0uYXR0ciwKIAkmYW1wO2Rldl9hdHRyX2duc3Nfc3luYy5hdHRyLApAQCAtNDI3Miw2ICYjNDM7NDMwMCw3IEBAIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphZHZhX3RpbWVjYXJkX3gxX2F0dHJzW10gPSB7CiAJJmFtcDtkZXZfYXR0cl90c193aW5kb3dfYWRqdXN0LmF0dHIsCiAJJmFtcDtkZXZfYXR0cl91dGNfdGFpX29mZnNldC5hdHRyLAogCSZhbXA7ZGV2X2F0dHJfdG9kX2NvcnJlY3Rpb24uYXR0ciwKJiM0MzsJJmFtcDtkZXZfYXR0cl9pMmNfYnVzX2N0cmwuYXR0ciwKIAlOVUxMLAogfTsKIApAQCAtNTIzNSw2ICYjNDM7NTI2NCw3IEBAIHB0cF9vY3BfaW5pdCh2b2lkKQogCWNvbnN0IGNoYXIgKndoYXQ7CiAJaW50IGVycjsKIAomIzQzOwlyZXF1ZXN0X21vZHVsZSgmIzM0O2kyYy1kZXYmIzM0Oyk7CiAJcHRwX29jcF9kZWJ1Z2ZzX2luaXQoKTsKIAogCXdoYXQgPSAmIzM0O3RpbWVjYXJkIGNsYXNzJiMzNDs7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDA2OjAyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyOTUKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAxNzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUGF0Y2ggdG8gdGhlIFBUUCBPQ1AgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQmIzM5O3MgYmVlbiBhcHBsaWVkIHRvIGBkcml2ZXJzL3B0cC9wdHBfb2NwLmNgLiBJdCBsb29rcyBsaWtlIGl0JiMzOTtzIGFkZGluZyBhIG5ldyBzeXNmcyBhdHRyaWJ1dGUsIGBpMmNfYnVzX2N0cmxgLCB0byBgYWR2YV90aW1lY2FyZF94MV9hdHRyc2AuIFRoYXQmIzM5O3MgaW50ZXJlc3RpbmcsIGFuZCBhbHNvLCBpdCBsb29rcyBsaWtlIGByZXF1ZXN0X21vZHVsZSgmIzM0O2kyYy1kZXYmIzM0Oyk7YCBoYXMgYmVlbiBhZGRlZCB0byBgcHRwX29jcF9pbml0KClgLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtIb3cgcmVhY2hhYmxlIGlzIHRoaXMgZHJpdmVyIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/JiMzNDsuCgpHaXZlbiB0aGF0IGBkcml2ZXJzL3B0cC9wdHBfb2NwLmNgIGlzIHNwZWNpZmljYWxseSBmb3IgdGhlIE9wZW4gQ29tcHV0ZSBQcm9qZWN0IFRpbWUgQ2FyZCwgd2hpY2ggaXMgYSBQQ0kgZGV2aWNlLCB0aGUgcXVlc3Rpb24gbm93IGlzIGhvdyBlYXNpbHkgaXQgY2FuIGJlIGVtdWxhdGVkLiBSZWFsaXN0aWNhbGx5LCBjb21wbGV0ZSBlbXVsYXRpb24gaXMgcHJvYmFibHkgYSBwYWluLiBCdXQsIHNpbmNlIGl0ICppcyogUENJLCBpdCBvcGVucyB1cCBzb21lIGF2ZW51ZXMsIHJpZ2h0PyBJJiMzOTttIHRoaW5raW5nIGFib3V0IGZ1enppbmcgdGhpcyBkcml2ZXIuIE5vdywgaWYgSSByZW1lbWJlciBjb3JyZWN0bHksIHN5emthbGxlciBkb2VzIGhhdmUgUENJIGZ1enppbmcgY2FwYWJpbGl0aWVzLCBhbmQgdGhhdCBtaWdodCBiZSBvdXIgYmVzdCByb3V0ZS4KCk9rYXksIGxldCBtZSBqdXN0IGRvdWJsZS1jaGVjayB0aGUgS2NvbmZpZyBlbnRyeSBmb3IgYHB0cF9vY3BgIHRvIG1ha2Ugc3VyZSBmdXp6aW5nIGlzIGFuIG9wdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAwNjowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3B0cF9vY3AmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3B0cC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAwNjowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNzkwCgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkludmVzdGlnYXRpbmcgdGhlIGBwdHBfb2NwYCBEcml2ZXIgSW1wbGVtZW50YXRpb24qKgoKUmlnaHQsIHNvIEkgbmVlZCB0byBmaW5kIHdoZXJlIHRoaXMgYHB0cF9vY3BgIGRyaXZlciBpcyBkZWZpbmVkLCBvciBhdCBsZWFzdCBob3cgaXQmIzM5O3MgaGFuZGxlZCBpbiB0aGUgYnVpbGQgc3lzdGVtLiBHaXZlbiBpdHMgbGlrZWx5IHJvbGUgaW4gUHJlY2lzaW9uIFRpbWUgUHJvdG9jb2wgKFBUUCksIG15IGZpcnN0IGluc3RpbmN0IGlzIHRvIGNoZWNrIHRoZSB1c3VhbCBzdXNwZWN0cyBpbiB0aGUga2VybmVsIHNvdXJjZSB0cmVlLiBUaGUgb2J2aW91cyBzdGFydGluZyBwb2ludHMgYXJlIHRoZSBgZHJpdmVycy9wdHAvTWFrZWZpbGVgIGFuZCBgZHJpdmVycy9wdHAvS2NvbmZpZ2AgZmlsZXMuIFRoZSBNYWtlZmlsZSBzaG91bGQgaGFuZGxlIHRoZSBkcml2ZXImIzM5O3MgYnVpbGQgcHJvY2VzcywgcG90ZW50aWFsbHkgaW5jbHVkaW5nIGl0IG9yIGV4Y2x1ZGluZyBpdCBiYXNlZCBvbiBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFRoZSBLY29uZmlnIGZpbGUgaXMgd2hlcmUgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGVtc2VsdmVzIGFyZSBkZWZpbmVkLCBsaWtlIGEgYENPTkZJR19QVFBfT0NQYCB3aGljaCBpcyBleGFjdGx5IHdoYXQgSSYjMzk7bSBsb29raW5nIGZvciEgSSYjMzk7bSBleHBlY3RpbmcgdG8gZmluZCBlaXRoZXIgYSBjbGVhciBkZWZpbml0aW9uIG9mIGBwdHBfb2NwYCBpbiB0aGUgTWFrZWZpbGUsIHBvc3NpYmx5IHdpdGggYSBjb3JyZXNwb25kaW5nIGVudHJ5IGluIEtjb25maWcgdG8gY29udHJvbCBpdHMgaW5jbHVzaW9uLCBvciBhdCBsZWFzdCBhIGNvbmRpdGlvbmFsIHN0YXRlbWVudCB0aWVkIHRvIGEgY29uZmlndXJhdGlvbiBzeW1ib2wuIEhvcGVmdWxseSwgaXQmIzM5O3MgYSBzdHJhaWdodGZvcndhcmQgY2FzZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAwNjowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwdHBfb2NwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9wdHAvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAyMDE5IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL3B0cC9NYWtlZmlsZT0yMD1vYmotJChDT05GSUdfUFRQXzE1ODhfQ0xPQ0tfVk1XKVx0JiM0Mzs9IHB0cF92bXcub1xuZHJpdmVycy9wdHAvTWFrZWZpbGU6MjE6b2JqLSQoQ09ORklHX1BUUF8xNTg4X0NMT0NLX09DUClcdCYjNDM7PSBwdHBfb2NwLm9cbmRyaXZlcnMvcHRwL01ha2VmaWxlLTIyLW9iai0kKENPTkZJR19QVFBfREZMX1RPRClcdFx0JiM0Mzs9IHB0cF9kZmxfdG9kLm9cbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM9NDQ9c3RydWN0IG9jcF9yZWcge1xuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02OC1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo2OTpzdHJ1Y3QgcHRwX29jcF9zZXJ2b19jb25mIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy03MC1cdHUzMlx0c2Vydm9fb2Zmc2V0X3A7XG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTc3LSAqIENvbWJpbmVkIHNlcnZvICYjNDM7IGJvYXJkLXZhcmlhbnQgcGFyYW1ldGVycyBmb3IgQURWQSBib2FyZHMuXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6Nzg6ICogRW1iZWRkZWQgaW4gdGhlIHJlc291cmNlIHRhYmxlIC5leHRyYSBzbyBhIHNpbmdsZSBwdHBfb2NwX2FkdmFfYm9hcmRfaW5pdCgpXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzktICogY2FuIGhhbmRsZSBib3RoIEFEVkEgYW5kIEFEVkEtWDEgd2l0aG91dCBwZXItdmFyaWFudCBpbml0IGZ1bmN0aW9ucy5cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04MC0gKi9cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4MTpzdHJ1Y3QgcHRwX29jcF9hZHZhX2luZm8ge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjgyOlx0c3RydWN0IHB0cF9vY3Bfc2Vydm9fY29uZlx0c2Vydm87XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODMtXHR1MzJcdFx0XHRcdGZsYXNoX3N0YXJ0O1xuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYz0yMzY9c3RydWN0IGJvYXJkX2NvbmZpZ19yZWcge1xuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yNDQtXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MjQ1OnN0cnVjdCBwdHBfb2NwX2ZsYXNoX2luZm8ge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTI0Ni1cdGNvbnN0IGNoYXIgKm5hbWU7XG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTI1MS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoyNTI6c3RydWN0IHB0cF9vY3BfZmlybXdhcmVfaGVhZGVyIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yNTMtXHRjaGFyIG1hZ2ljWzRdO1xuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yNjItXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MjYzOnN0cnVjdCBwdHBfb2NwX2kyY19pbmZvIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yNjQtXHRjb25zdCBjaGFyICpuYW1lO1xuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yNjktXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MjcwOnN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yNzEtXHRpbnQgaW5kZXg7XG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTI3NS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoyNzY6c3RydWN0IHB0cF9vY3BfZXh0X3NyYyB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMjc3LVx0dm9pZCBfX2lvbWVtXHRcdCptZW07XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6Mjc4Olx0c3RydWN0IHB0cF9vY3BcdFx0KmJwO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjI3OTpcdHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvXHQqaW5mbztcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yODAtXHRpbnRcdFx0XHRpcnFfdmVjO1xuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yODItXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MjgzOmVudW0gcHRwX29jcF9zbWFfbW9kZSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMjg0LVx0U01BX01PREVfSU4sXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTI4Ny1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoyODg6c3RhdGljIHN0cnVjdCBkcGxsX3Bpbl9mcmVxdWVuY3kgcHRwX29jcF9zbWFfZnJlcVtdID0ge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTI4OS1cdERQTExfUElOX0ZSRVFVRU5DWV8xUFBTLFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yOTQtXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6Mjk1OnN0cnVjdCBwdHBfb2NwX3NtYV9jb25uZWN0b3Ige1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjI5NjpcdGVudW1cdHB0cF9vY3Bfc21hX21vZGUgbW9kZTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yOTctXHRib29sXHRmaXhlZF9mY247XG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jPTMxNz1zdHJ1Y3Qgb2NwX3NtYV9vcCB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzE4LVx0Y29uc3Qgc3RydWN0IG9jcF9zZWxlY3RvciAqdGJsWzJdO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjMxOTpcdHZvaWQgKCppbml0KShzdHJ1Y3QgcHRwX29jcCAqYnApO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjMyMDpcdHUzMiAoKmdldCkoc3RydWN0IHB0cF9vY3AgKmJwLCBpbnQgc21hX25yKTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozMjE6XHRpbnQgKCpzZXRfaW5wdXRzKShzdHJ1Y3QgcHRwX29jcCAqYnAsIGludCBzbWFfbnIsIHUzMiB2YWwpO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjMyMjpcdGludCAoKnNldF9vdXRwdXQpKHN0cnVjdCBwdHBfb2NwICpicCwgaW50IHNtYV9uciwgdTMyIHZhbCk7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzIzLX07XG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTMyOC1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozMjk6c3RydWN0IHB0cF9vY3Bfc2lnbmFsIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0zMzAtXHRrdGltZV90XHRcdHBlcmlvZDtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzM4LVxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjMzOTpzdHJ1Y3QgcHRwX29jcF9zZXJpYWxfcG9ydCB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzQwLVx0aW50IGxpbmU7XG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jPTM1MD1lbnVtIHtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzU4LVxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjM1OTpzdHJ1Y3QgcHRwX29jcCB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzYwLVx0c3RydWN0IHBjaV9kZXZcdFx0KnBkZXY7XG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTM3Ni1cdHN0cnVjdCBmcmVxdWVuY3lfcmVnXHRfX2lvbWVtICpmcmVxX2luW09DUF9GUkVRX05VTV07XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6Mzc3Olx0c3RydWN0IHB0cF9vY3BfZXh0X3NyY1x0KnNpZ25hbF9vdXRbT0NQX1NJR05BTF9OVU1dO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjM3ODpcdHN0cnVjdCBwdHBfb2NwX2V4dF9zcmNcdCpwcHM7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6Mzc5Olx0c3RydWN0IHB0cF9vY3BfZXh0X3NyY1x0KnRzMDtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozODA6XHRzdHJ1Y3QgcHRwX29jcF9leHRfc3JjXHQqdHMxO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjM4MTpcdHN0cnVjdCBwdHBfb2NwX2V4dF9zcmNcdCp0czI7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MzgyOlx0c3RydWN0IHB0cF9vY3BfZXh0X3NyY1x0KnRzMztcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozODM6XHRzdHJ1Y3QgcHRwX29jcF9leHRfc3JjXHQqdHM0O1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTM4NC1cdHN0cnVjdCBvY3BfYXJ0X2dwaW9fcmVnIF9faW9tZW0gKmFydF9zbWE7XG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTM5Mi1cdGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKiphdHRyX2dyb3VwO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjM5MzpcdGNvbnN0IHN0cnVjdCBwdHBfb2NwX2VlcHJvbV9tYXAgKmVlcHJvbV9tYXA7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzk0LVx0c3RydWN0IGRlbnRyeVx0XHQqZGVidWdfcm9vdDtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzk5LVx0aW50XHRcdFx0bl9pcnFzO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQwMDpcdHN0cnVjdCBwdHBfb2NwX3NlcmlhbF9wb3J0XHRwb3J0W19fUE9SVF9DT1VOVF07XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNDAxLVx0Ym9vbFx0XHRcdGZ3X2xvYWRlcjtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNDExLVx0dTY0XHRcdFx0ZndfY2FwO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQxMjpcdHN0cnVjdCBwdHBfb2NwX3NpZ25hbFx0c2lnbmFsW09DUF9TSUdOQUxfTlVNXTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0MTM6XHRzdHJ1Y3QgcHRwX29jcF9zbWFfY29ubmVjdG9yIHNtYVtPQ1BfU01BX05VTV07XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNDE0LVx0Y29uc3Qgc3RydWN0IG9jcF9zbWFfb3AgKnNtYV9vcDtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM9NDI0PXN0cnVjdCBvY3BfcmVzb3VyY2Uge1xuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00MjctXHRpbnQgaXJxX3ZlYztcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0Mjg6XHRpbnQgKCpzZXR1cCkoc3RydWN0IHB0cF9vY3AgKmJwLCBzdHJ1Y3Qgb2NwX3Jlc291cmNlICpyKTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00MjktXHR2b2lkICpleHRyYTtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNDMzLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQzNDpzdGF0aWMgaW50IHB0cF9vY3BfcmVnaXN0ZXJfbWVtKHN0cnVjdCBwdHBfb2NwICpicCwgc3RydWN0IG9jcF9yZXNvdXJjZSAqcik7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NDM1OnN0YXRpYyBpbnQgcHRwX29jcF9yZWdpc3Rlcl9pMmMoc3RydWN0IHB0cF9vY3AgKmJwLCBzdHJ1Y3Qgb2NwX3Jlc291cmNlICpyKTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0MzY6c3RhdGljIGludCBwdHBfb2NwX3JlZ2lzdGVyX3NwaShzdHJ1Y3QgcHRwX29jcCAqYnAsIHN0cnVjdCBvY3BfcmVzb3VyY2UgKnIpO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQzNzpzdGF0aWMgaW50IHB0cF9vY3BfcmVnaXN0ZXJfc2VyaWFsKHN0cnVjdCBwdHBfb2NwICpicCwgc3RydWN0IG9jcF9yZXNvdXJjZSAqcik7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NDM4OnN0YXRpYyBpbnQgcHRwX29jcF9yZWdpc3Rlcl9leHQoc3RydWN0IHB0cF9vY3AgKmJwLCBzdHJ1Y3Qgb2NwX3Jlc291cmNlICpyKTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0Mzk6c3RhdGljIGludCBwdHBfb2NwX2ZiX2JvYXJkX2luaXQoc3RydWN0IHB0cF9vY3AgKmJwLCBzdHJ1Y3Qgb2NwX3Jlc291cmNlICpyKTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0NDA6c3RhdGljIGlycXJldHVybl90IHB0cF9vY3BfdHNfaXJxKGludCBpcnEsIHZvaWQgKnByaXYpO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQ0MTpzdGF0aWMgaXJxcmV0dXJuX3QgcHRwX29jcF9zaWduYWxfaXJxKGludCBpcnEsIHZvaWQgKnByaXYpO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQ0MjpzdGF0aWMgaW50IHB0cF9vY3BfdHNfZW5hYmxlKHZvaWQgKnByaXYsIHUzMiByZXEsIGJvb2wgZW5hYmxlKTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0NDM6c3RhdGljIGludCBwdHBfb2NwX3NpZ25hbF9mcm9tX3Blcm91dChzdHJ1Y3QgcHRwX29jcCAqYnAsIGludCBnZW4sXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNDQ0LVx0XHRcdFx0ICAgICAgc3RydWN0IHB0cF9wZXJvdXRfcmVxdWVzdCAqcmVxKTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0NDU6c3RhdGljIGludCBwdHBfb2NwX3NpZ25hbF9lbmFibGUodm9pZCAqcHJpdiwgdTMyIHJlcSwgYm9vbCBlbmFibGUpO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQ0NjpzdGF0aWMgaW50IHB0cF9vY3Bfc21hX3N0b3JlKHN0cnVjdCBwdHBfb2NwICpicCwgY29uc3QgY2hhciAqYnVmLCBpbnQgc21hX25yKTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00NDctXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NDQ4OnN0YXRpYyBpbnQgcHRwX29jcF9hcnRfYm9hcmRfaW5pdChzdHJ1Y3QgcHRwX29jcCAqYnAsIHN0cnVjdCBvY3BfcmVzb3VyY2UgKnIpO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQ0OS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0NTA6c3RhdGljIGludCBwdHBfb2NwX2FkdmFfYm9hcmRfaW5pdChzdHJ1Y3QgcHRwX29jcCAqYnAsIHN0cnVjdCBvY3BfcmVzb3VyY2UgKnIpO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQ1MS1cbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM9NDYxPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2NwX2F0dHJfZ3JvdXAgYWR2YV90aW1lY2FyZF94MV9ncm91cHNbXTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00NjItXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NDYzOnN0cnVjdCBwdHBfb2NwX2VlcHJvbV9tYXAge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQ2NC1cdHUxNlx0b2ZmO1xuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00NzEtXHQub2ZmID0gYWRkcixcdFx0XHRcdFx0XHRcXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQ3MjpcdC5sZW4gPSBzaXplb2ZfZmllbGQoc3RydWN0IHB0cF9vY3AsIG1lbWJlciksXHRcdFxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NDczOlx0LmJwX29mZnNldCA9IG9mZnNldG9mKHN0cnVjdCBwdHBfb2NwLCBtZW1iZXIpXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNDc0LVxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00NzgtXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NDc5OnN0YXRpYyBzdHJ1Y3QgcHRwX29jcF9lZXByb21fbWFwIGZiX2VlcHJvbV9tYXBbXSA9IHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00ODAtXHR7IEVFUFJPTV9FTlRSWSgweDQzLCBib2FyZF9pZCkgfSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNDg0LVxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQ4NTpzdGF0aWMgc3RydWN0IHB0cF9vY3BfZWVwcm9tX21hcCBhcnRfZWVwcm9tX21hcFtdID0ge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQ4Ni1cdHsgRUVQUk9NX0VOVFJZKDB4MjAwICYjNDM7IDB4NDMsIGJvYXJkX2lkKSB9LFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00OTYtI2RlZmluZSBPQ1BfUkVTX0xPQ0FUSU9OKG1lbWJlcikgXFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0OTc6XHQubmFtZSA9ICNtZW1iZXIsIC5icF9vZmZzZXQgPSBvZmZzZXRvZihzdHJ1Y3QgcHRwX29jcCwgbWVtYmVyKVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQ5OC1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00OTktI2RlZmluZSBPQ1BfTUVNX1JFU09VUkNFKG1lbWJlcikgXFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1MDA6XHRPQ1BfUkVTX0xPQ0FUSU9OKG1lbWJlciksIC5zZXR1cCA9IHB0cF9vY3BfcmVnaXN0ZXJfbWVtXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTAxLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTUwMi0jZGVmaW5lIE9DUF9TRVJJQUxfUkVTT1VSQ0UobWVtYmVyKSBcXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjUwMzpcdE9DUF9SRVNfTE9DQVRJT04obWVtYmVyKSwgLnNldHVwID0gcHRwX29jcF9yZWdpc3Rlcl9zZXJpYWxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01MDQtXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTA1LSNkZWZpbmUgT0NQX0kyQ19SRVNPVVJDRShtZW1iZXIpIFxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTA2Olx0T0NQX1JFU19MT0NBVElPTihtZW1iZXIpLCAuc2V0dXAgPSBwdHBfb2NwX3JlZ2lzdGVyX2kyY1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTUwNy1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01MDgtI2RlZmluZSBPQ1BfU1BJX1JFU09VUkNFKG1lbWJlcikgXFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1MDk6XHRPQ1BfUkVTX0xPQ0FUSU9OKG1lbWJlciksIC5zZXR1cCA9IHB0cF9vY3BfcmVnaXN0ZXJfc3BpXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTEwLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTUxMS0jZGVmaW5lIE9DUF9FWFRfUkVTT1VSQ0UobWVtYmVyKSBcXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjUxMjpcdE9DUF9SRVNfTE9DQVRJT04obWVtYmVyKSwgLnNldHVwID0gcHRwX29jcF9yZWdpc3Rlcl9leHRcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01MTMtXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jPTU0MT1zdGF0aWMgc3RydWN0IG9jcF9yZXNvdXJjZSBvY3BfZmJfcmVzb3VyY2VbXSA9IHtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTQ4LVx0XHQub2Zmc2V0ID0gMHgwMTAxMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTQ5Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01NTAtXHRcdFx0LmluZGV4ID0gMCxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1NTE6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1NTI6XHRcdFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTU1My1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTU3LVx0XHQub2Zmc2V0ID0gMHgwMTAyMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDIsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTU4Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01NTktXHRcdFx0LmluZGV4ID0gMSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1NjA6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1NjE6XHRcdFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTU2Mi1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTY2LVx0XHQub2Zmc2V0ID0gMHgwMTA2MDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDYsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTY3Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01NjgtXHRcdFx0LmluZGV4ID0gMixcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1Njk6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1NzA6XHRcdFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTU3MS1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTc1LVx0XHQub2Zmc2V0ID0gMHgwMTExMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDE1LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjU3NjpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTc3LVx0XHRcdC5pbmRleCA9IDMsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTc4Olx0XHRcdC5pcnFfZmNuID0gcHRwX29jcF90c19pcnEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTc5Olx0XHRcdC5lbmFibGUgPSBwdHBfb2NwX3RzX2VuYWJsZSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01ODAtXHRcdH0sXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTU4NC1cdFx0Lm9mZnNldCA9IDB4MDExMjAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAxNixcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1ODU6XHRcdC5leHRyYSA9IFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTU4Ni1cdFx0XHQuaW5kZXggPSA0LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjU4NzpcdFx0XHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjU4ODpcdFx0XHQuZW5hYmxlID0gcHRwX29jcF90c19lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTg5LVx0XHR9LFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01OTQtXHRcdC5vZmZzZXQgPSAweDAxMEMwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMCxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1OTU6XHRcdC5leHRyYSA9IFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTU5Ni1cdFx0XHQuaW5kZXggPSA1LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjU5NzpcdFx0XHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjU5ODpcdFx0XHQuZW5hYmxlID0gcHRwX29jcF90c19lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTk5LVx0XHR9LFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02MDMtXHRcdC5vZmZzZXQgPSAweDAxMEQwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMTEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NjA0Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02MDUtXHRcdFx0LmluZGV4ID0gMSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo2MDY6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3NpZ25hbF9pcnEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NjA3Olx0XHRcdC5lbmFibGUgPSBwdHBfb2NwX3NpZ25hbF9lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNjA4LVx0XHR9LFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02MTItXHRcdC5vZmZzZXQgPSAweDAxMEUwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMTIsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NjEzOlx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02MTQtXHRcdFx0LmluZGV4ID0gMixcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo2MTU6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3NpZ25hbF9pcnEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NjE2Olx0XHRcdC5lbmFibGUgPSBwdHBfb2NwX3NpZ25hbF9lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNjE3LVx0XHR9LFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02MjEtXHRcdC5vZmZzZXQgPSAweDAxMEYwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMTMsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NjIyOlx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02MjMtXHRcdFx0LmluZGV4ID0gMyxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo2MjQ6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3NpZ25hbF9pcnEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NjI1Olx0XHRcdC5lbmFibGUgPSBwdHBfb2NwX3NpZ25hbF9lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNjI2LVx0XHR9LFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02MzAtXHRcdC5vZmZzZXQgPSAweDAxMTAwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMTQsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NjMxOlx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02MzItXHRcdFx0LmluZGV4ID0gNCxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo2MzM6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3NpZ25hbF9pcnEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NjM0Olx0XHRcdC5lbmFibGUgPSBwdHBfb2NwX3NpZ25hbF9lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNjM1LVx0XHR9LFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02ODctXHRcdC5vZmZzZXQgPSAweDAwMTUwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gNyxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo2ODg6XHRcdC5leHRyYSA9IFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9pMmNfaW5mbykge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTY4OS1cdFx0XHQubmFtZSA9IFwmIzM0O3hpaWMtaTJjXCYjMzQ7LFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy03MDQtXHRcdC5vZmZzZXQgPSAweDAwMTYwMDAwICYjNDM7IDB4MTAwMCwgLmlycV92ZWMgPSAzLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjcwNTpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX3NlcmlhbF9wb3J0KSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzA2LVx0XHRcdC5iYXVkID0gMTE1MjAwLFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy03MTEtXHRcdC5vZmZzZXQgPSAweDAwMTcwMDAwICYjNDM7IDB4MTAwMCwgLmlycV92ZWMgPSA0LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjcxMjpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX3NlcmlhbF9wb3J0KSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzEzLVx0XHRcdC5iYXVkID0gMTE1MjAwLFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy03MTgtXHRcdC5vZmZzZXQgPSAweDAwMTgwMDAwICYjNDM7IDB4MTAwMCwgLmlycV92ZWMgPSA1LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjcxOTpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX3NlcmlhbF9wb3J0KSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzIwLVx0XHRcdC5iYXVkID0gNTc2MDAsXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTcyOS1cdFx0Lm9mZnNldCA9IDB4MDAzMTAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSA5LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjczMDpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2ZsYXNoX2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy03MzEtXHRcdFx0Lm5hbWUgPSBcJiMzNDt4aWxpbnhfc3BpXCYjMzQ7LCAucGNpX29mZnNldCA9IDAsXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTc2MC1cdHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo3NjE6XHRcdC5zZXR1cCA9IHB0cF9vY3BfZmJfYm9hcmRfaW5pdCxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo3NjI6XHRcdC5leHRyYSA9IFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9zZXJ2b19jb25mKSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzYzLVx0XHRcdC5zZXJ2b19vZmZzZXRfcCA9IDB4MjAwMCxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM9NzgyPXN0YXRpYyBzdHJ1Y3Qgb2NwX3Jlc291cmNlIG9jcF9hcnRfcmVzb3VyY2VbXSA9IHtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzg5LVx0XHQub2Zmc2V0ID0gMHgwMDE2MDAwMCAmIzQzOyAweDEwMDAsIC5pcnFfdmVjID0gMyxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo3OTA6XHRcdC5leHRyYSA9IFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9zZXJpYWxfcG9ydCkge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTc5MS1cdFx0XHQuYmF1ZCA9IDExNTIwMCxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODAxLVx0XHQub2Zmc2V0ID0gMHgzNjAwMDAsIC5zaXplID0gMHgyMCwgLmlycV92ZWMgPSAxMixcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4MDI6XHRcdC5leHRyYSA9IFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTgwMy1cdFx0XHQuaW5kZXggPSAwLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjgwNDpcdFx0XHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjgwNTpcdFx0XHQuZW5hYmxlID0gcHRwX29jcF90c19lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODA2LVx0XHR9LFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04MTAtXHRcdC5vZmZzZXQgPSAweDM4MDAwMCwgLnNpemUgPSAweDIwLCAuaXJxX3ZlYyA9IDgsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODExOlx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04MTItXHRcdFx0LmluZGV4ID0gMSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4MTM6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4MTQ6XHRcdFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTgxNS1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODE5LVx0XHQub2Zmc2V0ID0gMHgzOTAwMDAsIC5zaXplID0gMHgyMCwgLmlycV92ZWMgPSAxMCxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4MjA6XHRcdC5leHRyYSA9IFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTgyMS1cdFx0XHQuaW5kZXggPSAyLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjgyMjpcdFx0XHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjgyMzpcdFx0XHQuZW5hYmxlID0gcHRwX29jcF90c19lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODI0LVx0XHR9LFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04MjgtXHRcdC5vZmZzZXQgPSAweDNBMDAwMCwgLnNpemUgPSAweDIwLCAuaXJxX3ZlYyA9IDE0LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjgyOTpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODMwLVx0XHRcdC5pbmRleCA9IDMsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODMxOlx0XHRcdC5pcnFfZmNuID0gcHRwX29jcF90c19pcnEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODMyOlx0XHRcdC5lbmFibGUgPSBwdHBfb2NwX3RzX2VuYWJsZSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04MzMtXHRcdH0sXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTgzNy1cdFx0Lm9mZnNldCA9IDB4M0IwMDAwLCAuc2l6ZSA9IDB4MjAsIC5pcnFfdmVjID0gMTUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODM4Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04MzktXHRcdFx0LmluZGV4ID0gNCxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4NDA6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4NDE6XHRcdFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTg0Mi1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODQ3LVx0XHQub2Zmc2V0ID0gMHgwMDMzMDAwMCwgLnNpemUgPSAweDIwLCAuaXJxX3ZlYyA9IDExLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjg0ODpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODQ5LVx0XHRcdC5pbmRleCA9IDUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODUwOlx0XHRcdC5pcnFfZmNuID0gcHRwX29jcF90c19pcnEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODUxOlx0XHRcdC5lbmFibGUgPSBwdHBfb2NwX3RzX2VuYWJsZSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04NTItXHRcdH0sXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTg1Ni1cdFx0Lm9mZnNldCA9IDB4MDAzMTAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSA5LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjg1NzpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2ZsYXNoX2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04NTgtXHRcdFx0Lm5hbWUgPSBcJiMzNDtzcGlfYWx0ZXJhXCYjMzQ7LCAucGNpX29mZnNldCA9IDAsXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTg3MS1cdFx0Lm9mZnNldCA9IDB4MzUwMDAwLCAuc2l6ZSA9IDB4MTAwLCAuaXJxX3ZlYyA9IDQsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODcyOlx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfaTJjX2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04NzMtXHRcdFx0Lm5hbWUgPSBcJiMzNDtvY29yZXMtaTJjXCYjMzQ7LFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04ODgtXHRcdC5vZmZzZXQgPSAweDAwMTkwMDAwLCAuaXJxX3ZlYyA9IDcsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODg5Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3Bfc2VyaWFsX3BvcnQpIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04OTAtXHRcdFx0LmJhdWQgPSA5NjAwLFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04OTctXHR7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODk4Olx0XHQuc2V0dXAgPSBwdHBfb2NwX2FydF9ib2FyZF9pbml0LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjg5OTpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX3NlcnZvX2NvbmYpIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy05MDAtXHRcdFx0LnNlcnZvX29mZnNldF9wID0gMHgyMDAwLFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYz05MDk9c3RhdGljIHN0cnVjdCBvY3BfcmVzb3VyY2Ugb2NwX2FkdmFfcmVzb3VyY2VbXSA9IHtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTE2LVx0XHQub2Zmc2V0ID0gMHgwMTAxMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6OTE3Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy05MTgtXHRcdFx0LmluZGV4ID0gMCxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo5MTk6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo5MjA6XHRcdFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTkyMS1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTI1LVx0XHQub2Zmc2V0ID0gMHgwMTAyMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDIsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6OTI2Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy05MjctXHRcdFx0LmluZGV4ID0gMSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo5Mjg6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo5Mjk6XHRcdFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTkzMC1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTM0LVx0XHQub2Zmc2V0ID0gMHgwMTA2MDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDYsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6OTM1Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy05MzYtXHRcdFx0LmluZGV4ID0gMixcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo5Mzc6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo5Mzg6XHRcdFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTkzOS1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTQ0LVx0XHQub2Zmc2V0ID0gMHgwMTBDMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDAsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6OTQ1Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy05NDYtXHRcdFx0LmluZGV4ID0gNSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo5NDc6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo5NDg6XHRcdFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTk0OS1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTUzLVx0XHQub2Zmc2V0ID0gMHgwMTBEMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDExLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjk1NDpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTU1LVx0XHRcdC5pbmRleCA9IDEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6OTU2Olx0XHRcdC5pcnFfZmNuID0gcHRwX29jcF9zaWduYWxfaXJxLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjk1NzpcdFx0XHQuZW5hYmxlID0gcHRwX29jcF9zaWduYWxfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTk1OC1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTYyLVx0XHQub2Zmc2V0ID0gMHgwMTBFMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDEyLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjk2MzpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTY0LVx0XHRcdC5pbmRleCA9IDIsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6OTY1Olx0XHRcdC5pcnFfZmNuID0gcHRwX29jcF9zaWduYWxfaXJxLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjk2NjpcdFx0XHQuZW5hYmxlID0gcHRwX29jcF9zaWduYWxfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTk2Ny1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTk5LVx0XHQub2Zmc2V0ID0gMHgwMDE2MDAwMCAmIzQzOyAweDEwMDAsIC5pcnFfdmVjID0gMyxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMDAwOlx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3Bfc2VyaWFsX3BvcnQpIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMDAxLVx0XHRcdC5iYXVkID0gOTYwMCxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTAwNi1cdFx0Lm9mZnNldCA9IDB4MDAxODAwMDAgJiM0MzsgMHgxMDAwLCAuaXJxX3ZlYyA9IDUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTAwNzpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX3NlcmlhbF9wb3J0KSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTAwOC1cdFx0XHQuYmF1ZCA9IDExNTIwMCxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTAyMS1cdFx0Lm9mZnNldCA9IDB4MDAzMTA0MDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSA5LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEwMjI6XHRcdC5leHRyYSA9IFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9mbGFzaF9pbmZvKSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTAyMy1cdFx0XHQubmFtZSA9IFwmIzM0O3NwaV9hbHRlcmFcJiMzNDssIC5wY2lfb2Zmc2V0ID0gMCxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTAzNi1cdFx0Lm9mZnNldCA9IDB4MTUwMDAwLCAuc2l6ZSA9IDB4MTAwLCAuaXJxX3ZlYyA9IDcsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTAzNzpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2kyY19pbmZvKSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTAzOC1cdFx0XHQubmFtZSA9IFwmIzM0O29jb3Jlcy1pMmNcJiMzNDssXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEwNTUtXHR7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTA1NjpcdFx0LnNldHVwID0gcHRwX29jcF9hZHZhX2JvYXJkX2luaXQsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTA1NzpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2FkdmFfaW5mbykge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEwNTgtXHRcdFx0LnNlcnZvID0ge1xuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYz0xMDc0PXN0YXRpYyBzdHJ1Y3Qgb2NwX3Jlc291cmNlIG9jcF9hZHZhX3gxX3Jlc291cmNlW10gPSB7XG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEwODEtXHRcdC5vZmZzZXQgPSAweDAxMDEwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMDgyOlx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMDgzLVx0XHRcdC5pbmRleCA9IDAsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTA4NDpcdFx0XHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEwODU6XHRcdFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEwODYtXHRcdH0sXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEwOTAtXHRcdC5vZmZzZXQgPSAweDAxMDIwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMixcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMDkxOlx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMDkyLVx0XHRcdC5pbmRleCA9IDEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTA5MzpcdFx0XHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEwOTQ6XHRcdFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEwOTUtXHRcdH0sXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEwOTktXHRcdC5vZmZzZXQgPSAweDAxMDYwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gNixcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTAwOlx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTAxLVx0XHRcdC5pbmRleCA9IDIsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTEwMjpcdFx0XHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjExMDM6XHRcdFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTExMDQtXHRcdH0sXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTExMDgtXHRcdC5vZmZzZXQgPSAweDAxMTEwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMTUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTEwOTpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTExMC1cdFx0XHQuaW5kZXggPSAzLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjExMTE6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTEyOlx0XHRcdC5lbmFibGUgPSBwdHBfb2NwX3RzX2VuYWJsZSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTEzLVx0XHR9LFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTE3LVx0XHQub2Zmc2V0ID0gMHgwMTEyMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDE2LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjExMTg6XHRcdC5leHRyYSA9IFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTExMTktXHRcdFx0LmluZGV4ID0gNCxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTIwOlx0XHRcdC5pcnFfZmNuID0gcHRwX29jcF90c19pcnEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTEyMTpcdFx0XHQuZW5hYmxlID0gcHRwX29jcF90c19lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTEyMi1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTEyNy1cdFx0Lm9mZnNldCA9IDB4MDEwQzAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAwLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjExMjg6XHRcdC5leHRyYSA9IFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTExMjktXHRcdFx0LmluZGV4ID0gNSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTMwOlx0XHRcdC5pcnFfZmNuID0gcHRwX29jcF90c19pcnEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTEzMTpcdFx0XHQuZW5hYmxlID0gcHRwX29jcF90c19lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTEzMi1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTEzNi1cdFx0Lm9mZnNldCA9IDB4MDEwRDAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAxMSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTM3Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTM4LVx0XHRcdC5pbmRleCA9IDEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTEzOTpcdFx0XHQuaXJxX2ZjbiA9IHB0cF9vY3Bfc2lnbmFsX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTQwOlx0XHRcdC5lbmFibGUgPSBwdHBfb2NwX3NpZ25hbF9lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTE0MS1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTE0NS1cdFx0Lm9mZnNldCA9IDB4MDEwRTAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAxMixcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTQ2Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTQ3LVx0XHRcdC5pbmRleCA9IDIsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTE0ODpcdFx0XHQuaXJxX2ZjbiA9IHB0cF9vY3Bfc2lnbmFsX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTQ5Olx0XHRcdC5lbmFibGUgPSBwdHBfb2NwX3NpZ25hbF9lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTE1MC1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTE1NC1cdFx0Lm9mZnNldCA9IDB4MDEwRjAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAxMyxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTU1Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTU2LVx0XHRcdC5pbmRleCA9IDMsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTE1NzpcdFx0XHQuaXJxX2ZjbiA9IHB0cF9vY3Bfc2lnbmFsX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTU4Olx0XHRcdC5lbmFibGUgPSBwdHBfb2NwX3NpZ25hbF9lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTE1OS1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTE2My1cdFx0Lm9mZnNldCA9IDB4MDExMDAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAxNCxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTY0Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTY1LVx0XHRcdC5pbmRleCA9IDQsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTE2NjpcdFx0XHQuaXJxX2ZjbiA9IHB0cF9vY3Bfc2lnbmFsX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTY3Olx0XHRcdC5lbmFibGUgPSBwdHBfb2NwX3NpZ25hbF9lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTE2OC1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTIwMC1cdFx0Lm9mZnNldCA9IDB4MDAxNjAwMDAgJiM0MzsgMHgxMDAwLCAuaXJxX3ZlYyA9IDMsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTIwMTpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX3NlcmlhbF9wb3J0KSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTIwMi1cdFx0XHQuYmF1ZCA9IDk2MDAsXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEyMDctXHRcdC5vZmZzZXQgPSAweDAwMTgwMDAwICYjNDM7IDB4MTAwMCwgLmlycV92ZWMgPSA1LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEyMDg6XHRcdC5leHRyYSA9IFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9zZXJpYWxfcG9ydCkge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEyMDktXHRcdFx0LmJhdWQgPSAxMTUyMDAsXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEyMzAtXHRcdC5vZmZzZXQgPSAweDAwMzEwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gOSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMjMxOlx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZmxhc2hfaW5mbykge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEyMzItXHRcdFx0Lm5hbWUgPSBcJiMzNDt4aWxpbnhfc3BpXCYjMzQ7LCAucGNpX29mZnNldCA9IDAsXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEyNDctXHRcdC5vZmZzZXQgPSAweDAwMTUwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gNyxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMjQ4Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfaTJjX2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMjQ5LVx0XHRcdC5uYW1lID0gXCYjMzQ7eGlpYy1pMmNcJiMzNDssXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEyNjItXHR7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTI2MzpcdFx0LnNldHVwID0gcHRwX29jcF9hZHZhX2JvYXJkX2luaXQsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTI2NDpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2FkdmFfaW5mbykge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEyNjUtXHRcdFx0LnNlcnZvID0ge1xuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMjgwLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEyODE6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHB0cF9vY3BfcGNpZGV2X2lkW10gPSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTI4Mi1cdHsgUENJX0RFVklDRV9EQVRBKE1FVEEsIFRJTUVDQVJELCBcdTAwMjZvY3BfZmJfcmVzb3VyY2UpIH0sXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEyODgtfTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMjg5Ok1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBwdHBfb2NwX3BjaWRldl9pZCk7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTI5MC1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMjkxOnN0YXRpYyBERUZJTkVfTVVURVgocHRwX29jcF9sb2NrKTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMjkyOnN0YXRpYyBERUZJTkVfSURSKHB0cF9vY3BfaWRyKTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMjkzLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEyOTQ6c3RhdGljIGNvbnN0IHN0cnVjdCBvY3Bfc2VsZWN0b3IgcHRwX29jcF9jbG9ja1tdID0ge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEyOTUtXHR7IC5uYW1lID0gXCYjMzQ7Tk9ORVwmIzM0OyxcdC52YWx1ZSA9IDAgfSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTMxMC1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMzExOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2NwX3NlbGVjdG9yIHB0cF9vY3Bfc21hX2luW10gPSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTMxMi1cdHsgLm5hbWUgPSBcJiMzNDsxME1oelwmIzM0OywgIC52YWx1ZSA9IDB4MDAwMCwgICAgICAuZnJlcXVlbmN5ID0gMTAwMDAwMDAgfSxcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDA2OjAyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE3MDY2CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogODYwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoIEZ1enppbmcgRGVjaXNpb246IFVuY2VydGFpbiwgTGVhbmluZyBUb3dhcmRzICYjMzQ7Tm8mIzM0OyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgdGhlIGBDT05GSUdfUFRQXzE1ODhfQ0xPQ0tfT0NQYCBjb25maWcuIEl0IGFkZHMgYHJlcXVlc3RfbW9kdWxlKCYjMzQ7aTJjLWRldiYjMzQ7KTtgIHRvIGBwdHBfb2NwX2luaXQoKWAgYW5kIGEgc3lzZnMgYXR0cmlidXRlLCBgaTJjX2J1c19jdHJsYCwgdGhhdCByZWFkcyBhbmQgd3JpdGVzIHRvIGBicC0mZ3Q7cHBzX3NlbGVjdC0mZ3Q7X19wYWQxYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCAmIzM0O0lzIHRoaXMgZXZlbiB3b3J0aCBmdXp6aW5nPyYjMzQ7CgpTeXprYWxsZXIgKmNhbiogZnV6eiBzeXNmcyBhdHRyaWJ1dGVzLCB0aGF0JiMzOTtzIGEga25vd24uIEJ1dCwgdW5sZXNzIHRoZXJlIGFyZSBkZXZpY2UgZGVzY3JpcHRpb25zIG9yIHRoZSBnZW5lcmljIHN5c2ZzIGZ1enplciBpcyB1c2VkLCBpdCBkb2VzbiYjMzk7dCB0YXJnZXQgc3BlY2lmaWMgUENJIGRldmljZXMgYnkgdGhlaXIgc3lzZnMgYXR0cmlidXRlcy4gVGhlIGNvZGUgaXRzZWxmIGlzIHJlYWxseSBzaW1wbGUgdGhvdWdoLiBXZSYjMzk7cmUgdGFsa2luZyBhIHRyaXZpYWwgc3lzZnMgcmVhZC93cml0ZSB3cmFwcGVyIGFyb3VuZCBhbiBNTUlPIHJlZ2lzdGVyOgoKYGBgYwpzdGF0aWMgc3NpemVfdAppMmNfYnVzX2N0cmxfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCnsKCXN0cnVjdCBwdHBfb2NwICpicCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwoKCWlmICghYnAtJmd0O3Bwc19zZWxlY3QpCgkJcmV0dXJuIC1FTk9ERVY7CglyZXR1cm4gc3lzZnNfZW1pdChidWYsICYjMzQ7MHglMDh4XG4mIzM0OywKCQkJICBpb3JlYWQzMigmYW1wO2JwLSZndDtwcHNfc2VsZWN0LSZndDtfX3BhZDEpKTsKfQoKc3RhdGljIHNzaXplX3QKaTJjX2J1c19jdHJsX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCgkJICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCnsKCXN0cnVjdCBwdHBfb2NwICpicCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwoJdTMyIHZhbDsKCglpZiAoIWJwLSZndDtwcHNfc2VsZWN0KQoJCXJldHVybiAtRU5PREVWOwoJaWYgKGtzdHJ0b3UzMihidWYsIDAsICZhbXA7dmFsKSkKCQlyZXR1cm4gLUVJTlZBTDsKCWlvd3JpdGUzMih2YWwsICZhbXA7YnAtJmd0O3Bwc19zZWxlY3QtJmd0O19fcGFkMSk7CglyZXR1cm4gY291bnQ7Cn0KYGBgCgpJcyB0aGlzIGZ1bmN0aW9uYWwgbG9naWMgdGhhdCAqbmVlZHMqIGZ1enppbmc/IEl0JiMzOTtzIGp1c3QgcmVnaXN0ZXIgcmVhZC93cml0ZSEgIFRoZSBgcmVxdWVzdF9tb2R1bGUoJiMzNDtpMmMtZGV2JiMzNDspO2AgY2FsbCwgSSYjMzk7bSB0aGlua2luZywgaXMgcHJvYmFibHkgbm90IHdoZXJlIHRoZSBqdWljeSBidWdzIGFyZS4KClRoZSBwcm9tcHTigJlzIGRlZmluaXRpb24gb2Ygd2hhdCYjMzk7cyAqbm90KiB3b3J0aCBmdXp6aW5nIGNvbWVzIHRvIG1pbmQ6IGRvY3VtZW50YXRpb24sIEtjb25maWcsIGNvbW1lbnRzLCBsb2dnaW5nIGNoYW5nZXMsIGNvbnN0YW50IG1vZGlmaWNhdGlvbnMgdGhhdCBkb24mIzM5O3QgYWx0ZXIgZmxvdywgYW5kIGNvZGUgdGhhdCYjMzk7cyB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuICBUaGlzIGlzIGEgUENJIGRyaXZlciwgYHB0cF9vY3BgIGZvciB0aGUgT3BlbiBDb21wdXRlIFByb2plY3QgVGltZSBDYXJkLiBDYW4gdGhpcyBldmVuIGJlIHByb2JlZCBpbiBRRU1VPwoKV2FpdCwgU3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6ZXIgY2FuIGVtdWxhdGUgUENJIGRldmljZXMsIGludGVyY2VwdGluZyBhY2Nlc3Nlcy4gQnV0IGl0IG5lZWRzIHRoZSBQQ0kgZGV2aWNlIElELCBvciBpdCBjYW4gYmUgZ3Vlc3NlZC4gIEFoLCBoZXJlIHdlIGdvOiBgUENJX0RFVklDRV9EQVRBKE1FVEEsIFRJTUVDQVJELCAmYW1wO29jcF9mYl9yZXNvdXJjZSlgLCBNRVRBIGlzIEZhY2Vib29rICh2ZW5kb3IgSUQgMHgxZDliKS4gU28sIGlmIHRoZSBQQ0kgZnV6emVyIGlzIGVuYWJsZWQsIGl0ICpjYW4qIHByb2JlIGl0LgoKQnV0IGlzIGl0IHdvcnRoIHRoZSBlZmZvcnQ/IFR3byBzeXNmcyBtZXRob2RzIGZvciBhIDMyLWJpdCByZWdpc3RlciBhbmQgYSBgcmVxdWVzdF9tb2R1bGVgIGNhbGwuIEkgZG9uJiMzOTt0IHNlZSBhbnkgY29tcGxleCBsb2dpYyBoZXJlLiBJIHN0aWxsIG5lZWQgdG8gZG91YmxlLWNoZWNrIGlmIHRoZXJlIGlzIGFueXRoaW5nIGVsc2UuICBTbywgSSBhbSBsZWFuaW5nIHRvd2FyZCAmIzM0O25vLCYjMzQ7IGJ1dCBJIG5lZWQgdG8gbWFrZSBzdXJlIEkmIzM5O20gbm90IG1pc3Npbmcgc29tZXRoaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDA2OjAzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2kyY19idXNfY3RybF9zdG9yZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvcHRwL3B0cF9vY3AuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3B0cC9wdHBfb2NwLmM9NDIzOD1zdGF0aWMgc3NpemVfdFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQyMzk6aTJjX2J1c19jdHJsX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNDI0MC1cdFx0ICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMDY6MDM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTg4MjQKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiA1OTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nIERlY2lzaW9uIGZvciBJMkMgQnVzIENvbnRyb2wgaW4gYWR2YV90aW1lY2FyZF94MSoqCgpPa2F5LCBsZXQgbWUgdGhpbmsgdGhpcyB0aHJvdWdoLiBUaGlzIHBhdGNoIGludHJvZHVjZXMgYGkyY19idXNfY3RybF9zaG93YCBhbmQgYGkyY19idXNfY3RybF9zdG9yZWAsIGFkZHMgaXQgdG8gYGFkdmFfdGltZWNhcmRfeDFfYXR0cnNgLCBhbmQgYWxzbyBjYWxscyBgcmVxdWVzdF9tb2R1bGUoJiMzNDtpMmMtZGV2JiMzNDspO2Agd2l0aGluIGBwdHBfb2NwX2luaXQoKWAuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gbGVhbiB0b3dhcmRzIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgY29yZSBsb2dpYyBvZiBgaTJjX2J1c19jdHJsX3N0b3JlYCBpcyBleHRyZW1lbHkgc2ltcGxlOiBhIGBrc3RydG91MzJgLCBhIGRpcmVjdCBNTUlPIHdyaXRlIHVzaW5nIGBpb3dyaXRlMzJgLCBhbmQgYSBjb3VudCByZXR1cm4uIE5vIGNvbXBsZXggY29uZGl0aW9uYWwgc3RhdGVtZW50cywgbm8gZHluYW1pYyBtZW1vcnkgYWxsb2NhdGlvbiwgbm8gbG9ja2luZyBjb21wbGljYXRpb25zLCBhbmQgbm8gbG9vcHMgdG8gZ2V0IGh1bmcgdXAgaW4uIEl0JiMzOTtzIGVzc2VudGlhbGx5IGEgdHJpdmlhbCBzeXNmcyB3cmFwcGVyIGFyb3VuZCBhbiBNTUlPIG9wZXJhdGlvbiwgYWxvbmcgd2l0aCBhIG1vZHVsZSBsb2FkLgoKSG93ZXZlciwgdGhlIHByb21wdCBzYXlzIEkgbmVlZCB0byBjb25zaWRlciByZWFjaGFiaWxpdHkgYW5kIGlmIGl0IHRvdWNoZXMgY29yZSBrZXJuZWwgbG9naWMuIFRoZSBkcml2ZXIgaW4gcXVlc3Rpb24gcmVsaWVzIG9uIHRoZSBwcmVzZW5jZSBvZiBhIHNwZWNpZmljIFBDSSBkZXZpY2UuIE5vdywgU3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6ZXIgY2FuIHRlY2huaWNhbGx5IGVtdWxhdGUgdGhpcyBQQ0kgZGV2aWNlLiBUaGUgcXVlc3Rpb24gaXMsIGlzIGl0ICpyZWFsbHkqIHdvcnRoIHRoZSBlZmZvcnQ/CgpUaGUgcHJvbXB0IHN0YXRlcyBJIHNob3VsZCByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVS4gU3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6aW5nIHN0cmF0ZWd5IGRvZXNuJiMzOTt0IHJlYWRpbHkgZml0IHRoYXQgZGVmaW5pdGlvbi4gV2hpbGUgaXQgY2FuIGluamVjdCBNTUlPIHJlYWRzL3dyaXRlcywgaXQgZG9lc24mIzM5O3Qgb2ZmZXIgZnVsbCBkZXZpY2UgZW11bGF0aW9uIHdpdGhpbiBRRU1VIGluIHRoZSBzYW1lIHdheSBgbWFjODAyMTFfaHdzaW1gIG9yIGBkdW1teV9oY2RgIGZvciBVU0IgZG9lcy4gVXBzdHJlYW0ga2VybmVscyBkb24mIzM5O3QgaGF2ZSBhIGdlbmVyaWMgUENJIGVtdWxhdG9yIHRoYXQgY291bGQgaW5zdGFudGlhdGUgYXJiaXRyYXJ5IFBDSSBkZXZpY2VzIHdpdGggc3BlY2lmaWMgdmVuZG9yL2RldmljZSBJRHMgZWFzaWx5LiBTeXprYWxsZXIgdXNlcyB0aGUgYC9kZXYvcmF3LXBjaWAgdHlwZSBvZiBpbnRlcmZhY2UsIHdoaWNoIGFsbG93cyBmb3IgdGVzdGluZyBpZiB0aGUgZGV2aWNlIHByb2Jlcy4gSWYgdGhlcmUmIzM5O3Mgbm8gUUVNVSBlbXVsYXRpb24gZm9yIHRoZSBPQ1AgVGltZWNhcmQsIHRoZSBkcml2ZXIgd29uJiMzOTt0IHByb2JlIGluIGEgc3RhbmRhcmQgVk0gc2V0dXAuCgpUaGVyZWZvcmUsIGJlY2F1c2UgdGhpcyBkcml2ZXIgc2VlbXMgcmVsaWFudCBvbiBhIHJlYWwgb3IgdmVyeSBzcGVjaWZpYyBQQ0kgZGV2aWNlLCBhbmQgYmVjYXVzZSBhIGdlbmVyaWMgZW11bGF0b3IgaXNuJiMzOTt0IHJlYWRpbHkgYXZhaWxhYmxlIGluIHRoZSB1cHN0cmVhbSBrZXJuZWwgZm9yIFFFTVUsIEkmIzM5O20gbGVhbmluZyBiYWNrIHRvd2FyZHMgYFdvcnRoRnV6emluZz1mYWxzZWAuIEkgbmVlZCB0byBlbnN1cmUgdGhlIHRhcmdldCBpcyByZWFjaGFibGUgdG8gYmVnaW4gd2l0aCBhbmQgSSYjMzk7bSBub3QgY29udmluY2VkIGl0IGlzLiBMZXQgbWUgY2hlY2sgaWYgdGhlcmUgaXMgYW55IHNvZnR3YXJlIGVtdWxhdGlvbiBhdmFpbGFibGUgZmlyc3QgdG8gYmUgc3VyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMDY6MDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7VElNRUNBUkQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9wdHAvcHRwX29jcC5jLTI3LVxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjI4OiNkZWZpbmUgUENJX0RFVklDRV9JRF9NRVRBX1RJTUVDQVJEXHRcdDB4MDQwMFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTI5LVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTMwLSNkZWZpbmUgUENJX1ZFTkRPUl9JRF9DRUxFU1RJQ0FcdFx0XHQweDE4ZDRcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozMTojZGVmaW5lIFBDSV9ERVZJQ0VfSURfQ0VMRVNUSUNBX1RJTUVDQVJEXHQweDEwMDhcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0zMi1cbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzYtI2RlZmluZSBQQ0lfVkVORE9SX0lEX0FEVkFcdFx0XHQweGFkNWFcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozNzojZGVmaW5lIFBDSV9ERVZJQ0VfSURfQURWQV9USU1FQ0FSRFx0XHQweDA0MDBcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozODojZGVmaW5lIFBDSV9ERVZJQ0VfSURfQURWQV9USU1FQ0FSRF9YMVx0XHQweDA0MTBcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0zOS1cbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM9MTI4MT1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgcHRwX29jcF9wY2lkZXZfaWRbXSA9IHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMjgyOlx0eyBQQ0lfREVWSUNFX0RBVEEoTUVUQSwgVElNRUNBUkQsIFx1MDAyNm9jcF9mYl9yZXNvdXJjZSkgfSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMjgzOlx0eyBQQ0lfREVWSUNFX0RBVEEoQ0VMRVNUSUNBLCBUSU1FQ0FSRCwgXHUwMDI2b2NwX2ZiX3Jlc291cmNlKSB9LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEyODQtXHR7IFBDSV9ERVZJQ0VfREFUQShPUk9MSUEsIEFSVENBUkQsIFx1MDAyNm9jcF9hcnRfcmVzb3VyY2UpIH0sXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTI4NTpcdHsgUENJX0RFVklDRV9EQVRBKEFEVkEsIFRJTUVDQVJELCBcdTAwMjZvY3BfYWR2YV9yZXNvdXJjZSkgfSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMjg2Olx0eyBQQ0lfREVWSUNFX0RBVEEoQURWQSwgVElNRUNBUkRfWDEsIFx1MDAyNm9jcF9hZHZhX3gxX3Jlc291cmNlKSB9LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEyODctXHR7IH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMDY6MDM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA1NjIKCQkJCQkJCW91dHB1dDogOTkKCQkJCQkJCXRob3VnaHRzOiA4OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50OiBVbnRlc3RhYmxlIGluIFZpcnR1YWxpemVkIEVudmlyb25tZW50cyoqCgpPa2F5LCBzbyBsb29raW5nIGF0IHRoaXMgUENJIGRldmljZSBkcml2ZXIsIHRoZSBjb25jbHVzaW9uIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIFRoZXJlJiMzOTtzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBhdmFpbGFibGUgZm9yIHRoaXMgdGhpbmcgd2l0aGluIHRoZSBrZXJuZWwuIFRoYXQgbWVhbnMsIHVubGVzcyBJJiMzOTt2ZSBnb3QgdGhlIGFjdHVhbCBoYXJkd2FyZSBwcmVzZW50IG9yIGEgbWV0aWN1bG91c2x5IGNyYWZ0ZWQgUUVNVSBkZXZpY2UgbW9kZWwgZm9yIGl0LCB0aGVyZSYjMzk7cyBhYnNvbHV0ZWx5IG5vIHdheSB0byBhY3R1YWxseSAqcHJvYmUqIHRoZSBkcml2ZXIuIEluIG90aGVyIHdvcmRzLCB0aGUgY29yZSBjb2RlIHBhdGhzIGFyZSBlZmZlY3RpdmVseSBkZWFkIGVuZHMgaW4gZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIHRoZSBzdGFuZGFyZCBRRU1VIHNldHVwLiBTaW5jZSBteSBnb2FsIGlzIGZ1enppbmcsIGFuZCB0aGlzIGRyaXZlciBpcyB1bnRvdWNoYWJsZSBpbiBhIGZ1enppbmcgZnJpZW5kbHkgZW52aXJvbm1lbnQsIEkmIzM5O20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgcmVhc29uaW5nIGlzIHNvbGlkOiBpdCYjMzk7cyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIsIGFuZCB3aXRob3V0IHByb3BlciBzb2Z0d2FyZSBlbXVsYXRpb24sIGl0JiMzOTtzIGp1c3Qgc2ltcGx5IG5vdCByZWFjaGFibGUgZHVyaW5nIHRlc3RpbmcgaW4gdGhlIGtpbmQgb2YgdmlydHVhbGl6YXRpb24gSSB0eXBpY2FsbHkgZGVhbCB3aXRoLiBObyBwb2ludCBpbiB3YXN0aW5nIGN5Y2xlcyBvbiBpdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMDY6MDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIgKHB0cF9vY3ApIGZvciB0aGUgT3BlbiBDb21wdXRlIFByb2plY3QgVGltZSBDYXJkLiBUaGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgZGV2aWNlIGluIHRoZSBrZXJuZWwgb3Igc3RhbmRhcmQgUUVNVSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gQWRkaXRpb25hbGx5LCB0aGUgY2hhbmdlcyBhcmUgdHJpdmlhbCBzeXNmcyB3cmFwcGVycyBhcm91bmQgTU1JTyByZWFkcy93cml0ZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIgKHB0cF9vY3ApIGZvciB0aGUgT3BlbiBDb21wdXRlIFByb2plY3QgVGltZSBDYXJkLiBUaGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgZGV2aWNlIGluIHRoZSBrZXJuZWwgb3Igc3RhbmRhcmQgUUVNVSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gQWRkaXRpb25hbGx5LCB0aGUgY2hhbmdlcyBhcmUgdHJpdmlhbCBzeXNmcyB3cmFwcGVycyBhcm91bmQgTU1JTyByZWFkcy93cml0ZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDYtMjhUMDY6MDI6NDkuMDgxNjQ1Nzk2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzUwMTIyMzk4MjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlciAocHRwX29jcCkgZm9yIHRoZSBPcGVuIENvbXB1dGUgUHJvamVjdCBUaW1lIENhcmQuIFRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBkZXZpY2UgaW4gdGhlIGtlcm5lbCBvciBzdGFuZGFyZCBRRU1VLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBBZGRpdGlvbmFsbHksIHRoZSBjaGFuZ2VzIGFyZSB0cml2aWFsIHN5c2ZzIHdyYXBwZXJzIGFyb3VuZCBNTUlPIHJlYWRzL3dyaXRlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDA2OjAyOjQ5LjA4MTY1MDgzNloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mzg5NjIyOTMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNGRjOTYwMzBhYzYxNTZlYTQ0NjM0MDgwMGM1YzYzN2E4ZjRkZWMwZVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU3VuIEp1biAyOCAwNjowMjo0OCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3B0cC9wdHBfb2NwLmMgYi9kcml2ZXJzL3B0cC9wdHBfb2NwLmNcXG5pbmRleCAzNWU5MTFmMWFkNzhjMC4uMWI0Y2NiNGZlY2E1NDkgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9wdHAvcHRwX29jcC5jXFxuKysrIGIvZHJpdmVycy9wdHAvcHRwX29jcC5jXFxuQEAgLTQyMjQsNiArNDIyNCwzNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9jcF9hdHRyX2dyb3VwIGFydF90aW1lY2FyZF9ncm91cHNbXSA9IHtcXG4gXFx0eyB9LFxcbiB9O1xcbiBcXG4rc3RhdGljIHNzaXplX3RcXG4raTJjX2J1c19jdHJsX3Nob3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKVxcbit7XFxuK1xcdHN0cnVjdCBwdHBfb2NwICpicCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpO1xcbitcXG4rXFx0aWYgKCFicC1cXHUwMDNlcHBzX3NlbGVjdClcXG4rXFx0XFx0cmV0dXJuIC1FTk9ERVY7XFxuK1xcdHJldHVybiBzeXNmc19lbWl0KGJ1ZiwgXFxcIjB4JTA4eFxcXFxuXFxcIixcXG4rXFx0XFx0XFx0ICBpb3JlYWQzMihcXHUwMDI2YnAtXFx1MDAzZXBwc19zZWxlY3QtXFx1MDAzZV9fcGFkMSkpO1xcbit9XFxuK1xcbitzdGF0aWMgc3NpemVfdFxcbitpMmNfYnVzX2N0cmxfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0cixcXG4rXFx0XFx0ICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpXFxuK3tcXG4rXFx0c3RydWN0IHB0cF9vY3AgKmJwID0gZGV2X2dldF9kcnZkYXRhKGRldik7XFxuK1xcdHUzMiB2YWw7XFxuK1xcbitcXHRpZiAoIWJwLVxcdTAwM2VwcHNfc2VsZWN0KVxcbitcXHRcXHRyZXR1cm4gLUVOT0RFVjtcXG4rXFx0aWYgKGtzdHJ0b3UzMihidWYsIDAsIFxcdTAwMjZ2YWwpKVxcbitcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4rXFx0aW93cml0ZTMyKHZhbCwgXFx1MDAyNmJwLVxcdTAwM2VwcHNfc2VsZWN0LVxcdTAwM2VfX3BhZDEpO1xcbitcXHRyZXR1cm4gY291bnQ7XFxuK31cXG4rXFxuK3N0YXRpYyBERVZJQ0VfQVRUUl9SVyhpMmNfYnVzX2N0cmwpO1xcbitcXG4gc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmFkdmFfdGltZWNhcmRfYXR0cnNbXSA9IHtcXG4gXFx0XFx1MDAyNmRldl9hdHRyX3NlcmlhbG51bS5hdHRyLFxcbiBcXHRcXHUwMDI2ZGV2X2F0dHJfZ25zc19zeW5jLmF0dHIsXFxuQEAgLTQyNzIsNiArNDMwMCw3IEBAIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphZHZhX3RpbWVjYXJkX3gxX2F0dHJzW10gPSB7XFxuIFxcdFxcdTAwMjZkZXZfYXR0cl90c193aW5kb3dfYWRqdXN0LmF0dHIsXFxuIFxcdFxcdTAwMjZkZXZfYXR0cl91dGNfdGFpX29mZnNldC5hdHRyLFxcbiBcXHRcXHUwMDI2ZGV2X2F0dHJfdG9kX2NvcnJlY3Rpb24uYXR0cixcXG4rXFx0XFx1MDAyNmRldl9hdHRyX2kyY19idXNfY3RybC5hdHRyLFxcbiBcXHROVUxMLFxcbiB9O1xcbiBcXG5AQCAtNTIzNSw2ICs1MjY0LDcgQEAgcHRwX29jcF9pbml0KHZvaWQpXFxuIFxcdGNvbnN0IGNoYXIgKndoYXQ7XFxuIFxcdGludCBlcnI7XFxuIFxcbitcXHRyZXF1ZXN0X21vZHVsZShcXFwiaTJjLWRldlxcXCIpO1xcbiBcXHRwdHBfb2NwX2RlYnVnZnNfaW5pdCgpO1xcbiBcXG4gXFx0d2hhdCA9IFxcXCJ0aW1lY2FyZCBjbGFzc1xcXCI7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDA2OjAyOjQ5LjQ3MjA2NzAzOFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQ2MjE4MTIyMTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlciAocHRwX29jcCkgZm9yIHRoZSBPcGVuIENvbXB1dGUgUHJvamVjdCBUaW1lIENhcmQuIFRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBkZXZpY2UgaW4gdGhlIGtlcm5lbCBvciBzdGFuZGFyZCBRRU1VLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBBZGRpdGlvbmFsbHksIHRoZSBjaGFuZ2VzIGFyZSB0cml2aWFsIHN5c2ZzIHdyYXBwZXJzIGFyb3VuZCBNTUlPIHJlYWRzL3dyaXRlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNGRjOTYwMzBhYzYxNTZlYTQ0NjM0MDgwMGM1YzYzN2E4ZjRkZWMwZVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gSnVuIDI4IDA2OjAyOjQ4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9wdHAvcHRwX29jcC5jIGIvZHJpdmVycy9wdHAvcHRwX29jcC5jXG5pbmRleCAzNWU5MTFmMWFkNzhjMC4uMWI0Y2NiNGZlY2E1NDkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3B0cC9wdHBfb2NwLmNcbisrKyBiL2RyaXZlcnMvcHRwL3B0cF9vY3AuY1xuQEAgLTQyMjQsNiArNDIyNCwzNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9jcF9hdHRyX2dyb3VwIGFydF90aW1lY2FyZF9ncm91cHNbXSA9IHtcbiBcdHsgfSxcbiB9O1xuIFxuK3N0YXRpYyBzc2l6ZV90XG4raTJjX2J1c19jdHJsX3Nob3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKVxuK3tcbitcdHN0cnVjdCBwdHBfb2NwICpicCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpO1xuK1xuK1x0aWYgKCFicC1cdTAwM2VwcHNfc2VsZWN0KVxuK1x0XHRyZXR1cm4gLUVOT0RFVjtcbitcdHJldHVybiBzeXNmc19lbWl0KGJ1ZiwgXCIweCUwOHhcXG5cIixcbitcdFx0XHQgIGlvcmVhZDMyKFx1MDAyNmJwLVx1MDAzZXBwc19zZWxlY3QtXHUwMDNlX19wYWQxKSk7XG4rfVxuK1xuK3N0YXRpYyBzc2l6ZV90XG4raTJjX2J1c19jdHJsX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsXG4rXHRcdCAgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KVxuK3tcbitcdHN0cnVjdCBwdHBfb2NwICpicCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpO1xuK1x0dTMyIHZhbDtcbitcbitcdGlmICghYnAtXHUwMDNlcHBzX3NlbGVjdClcbitcdFx0cmV0dXJuIC1FTk9ERVY7XG4rXHRpZiAoa3N0cnRvdTMyKGJ1ZiwgMCwgXHUwMDI2dmFsKSlcbitcdFx0cmV0dXJuIC1FSU5WQUw7XG4rXHRpb3dyaXRlMzIodmFsLCBcdTAwMjZicC1cdTAwM2VwcHNfc2VsZWN0LVx1MDAzZV9fcGFkMSk7XG4rXHRyZXR1cm4gY291bnQ7XG4rfVxuK1xuK3N0YXRpYyBERVZJQ0VfQVRUUl9SVyhpMmNfYnVzX2N0cmwpO1xuK1xuIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphZHZhX3RpbWVjYXJkX2F0dHJzW10gPSB7XG4gXHRcdTAwMjZkZXZfYXR0cl9zZXJpYWxudW0uYXR0cixcbiBcdFx1MDAyNmRldl9hdHRyX2duc3Nfc3luYy5hdHRyLFxuQEAgLTQyNzIsNiArNDMwMCw3IEBAIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphZHZhX3RpbWVjYXJkX3gxX2F0dHJzW10gPSB7XG4gXHRcdTAwMjZkZXZfYXR0cl90c193aW5kb3dfYWRqdXN0LmF0dHIsXG4gXHRcdTAwMjZkZXZfYXR0cl91dGNfdGFpX29mZnNldC5hdHRyLFxuIFx0XHUwMDI2ZGV2X2F0dHJfdG9kX2NvcnJlY3Rpb24uYXR0cixcbitcdFx1MDAyNmRldl9hdHRyX2kyY19idXNfY3RybC5hdHRyLFxuIFx0TlVMTCxcbiB9O1xuIFxuQEAgLTUyMzUsNiArNTI2NCw3IEBAIHB0cF9vY3BfaW5pdCh2b2lkKVxuIFx0Y29uc3QgY2hhciAqd2hhdDtcbiBcdGludCBlcnI7XG4gXG4rXHRyZXF1ZXN0X21vZHVsZShcImkyYy1kZXZcIik7XG4gXHRwdHBfb2NwX2RlYnVnZnNfaW5pdCgpO1xuIFxuIFx0d2hhdCA9IFwidGltZWNhcmQgY2xhc3NcIjtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDA2OjAyOjQ5LjQ3MjA2ODI0OFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyNzU5NjkwNTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgUGF0Y2ggdG8gdGhlIFBUUCBPQ1AgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0J3MgYmVlbiBhcHBsaWVkIHRvIGBkcml2ZXJzL3B0cC9wdHBfb2NwLmNgLiBJdCBsb29rcyBsaWtlIGl0J3MgYWRkaW5nIGEgbmV3IHN5c2ZzIGF0dHJpYnV0ZSwgYGkyY19idXNfY3RybGAsIHRvIGBhZHZhX3RpbWVjYXJkX3gxX2F0dHJzYC4gVGhhdCdzIGludGVyZXN0aW5nLCBhbmQgYWxzbywgaXQgbG9va3MgbGlrZSBgcmVxdWVzdF9tb2R1bGUoXCJpMmMtZGV2XCIpO2AgaGFzIGJlZW4gYWRkZWQgdG8gYHB0cF9vY3BfaW5pdCgpYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiSG93IHJlYWNoYWJsZSBpcyB0aGlzIGRyaXZlciBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50P1wiLlxuXG5HaXZlbiB0aGF0IGBkcml2ZXJzL3B0cC9wdHBfb2NwLmNgIGlzIHNwZWNpZmljYWxseSBmb3IgdGhlIE9wZW4gQ29tcHV0ZSBQcm9qZWN0IFRpbWUgQ2FyZCwgd2hpY2ggaXMgYSBQQ0kgZGV2aWNlLCB0aGUgcXVlc3Rpb24gbm93IGlzIGhvdyBlYXNpbHkgaXQgY2FuIGJlIGVtdWxhdGVkLiBSZWFsaXN0aWNhbGx5LCBjb21wbGV0ZSBlbXVsYXRpb24gaXMgcHJvYmFibHkgYSBwYWluLiBCdXQsIHNpbmNlIGl0ICppcyogUENJLCBpdCBvcGVucyB1cCBzb21lIGF2ZW51ZXMsIHJpZ2h0PyBJJ20gdGhpbmtpbmcgYWJvdXQgZnV6emluZyB0aGlzIGRyaXZlci4gTm93LCBpZiBJIHJlbWVtYmVyIGNvcnJlY3RseSwgc3l6a2FsbGVyIGRvZXMgaGF2ZSBQQ0kgZnV6emluZyBjYXBhYmlsaXRpZXMsIGFuZCB0aGF0IG1pZ2h0IGJlIG91ciBiZXN0IHJvdXRlLlxuXG5Pa2F5LCBsZXQgbWUganVzdCBkb3VibGUtY2hlY2sgdGhlIEtjb25maWcgZW50cnkgZm9yIGBwdHBfb2NwYCB0byBtYWtlIHN1cmUgZnV6emluZyBpcyBhbiBvcHRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyOTUsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNzksIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQwNjowMjo1My43NDgwMzg5MjRaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQ1NTg3ODUsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInB0cF9vY3BcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9wdHAvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMDY6MDI6NTMuODAyNjA4NTM5WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzI1MDk5ODE5NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQncyBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgYHB0cF9vY3BgIERyaXZlciBJbXBsZW1lbnRhdGlvbioqXG5cblJpZ2h0LCBzbyBJIG5lZWQgdG8gZmluZCB3aGVyZSB0aGlzIGBwdHBfb2NwYCBkcml2ZXIgaXMgZGVmaW5lZCwgb3IgYXQgbGVhc3QgaG93IGl0J3MgaGFuZGxlZCBpbiB0aGUgYnVpbGQgc3lzdGVtLiBHaXZlbiBpdHMgbGlrZWx5IHJvbGUgaW4gUHJlY2lzaW9uIFRpbWUgUHJvdG9jb2wgKFBUUCksIG15IGZpcnN0IGluc3RpbmN0IGlzIHRvIGNoZWNrIHRoZSB1c3VhbCBzdXNwZWN0cyBpbiB0aGUga2VybmVsIHNvdXJjZSB0cmVlLiBUaGUgb2J2aW91cyBzdGFydGluZyBwb2ludHMgYXJlIHRoZSBgZHJpdmVycy9wdHAvTWFrZWZpbGVgIGFuZCBgZHJpdmVycy9wdHAvS2NvbmZpZ2AgZmlsZXMuIFRoZSBNYWtlZmlsZSBzaG91bGQgaGFuZGxlIHRoZSBkcml2ZXIncyBidWlsZCBwcm9jZXNzLCBwb3RlbnRpYWxseSBpbmNsdWRpbmcgaXQgb3IgZXhjbHVkaW5nIGl0IGJhc2VkIG9uIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gVGhlIEtjb25maWcgZmlsZSBpcyB3aGVyZSB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHRoZW1zZWx2ZXMgYXJlIGRlZmluZWQsIGxpa2UgYSBgQ09ORklHX1BUUF9PQ1BgIHdoaWNoIGlzIGV4YWN0bHkgd2hhdCBJJ20gbG9va2luZyBmb3IhIEknbSBleHBlY3RpbmcgdG8gZmluZCBlaXRoZXIgYSBjbGVhciBkZWZpbml0aW9uIG9mIGBwdHBfb2NwYCBpbiB0aGUgTWFrZWZpbGUsIHBvc3NpYmx5IHdpdGggYSBjb3JyZXNwb25kaW5nIGVudHJ5IGluIEtjb25maWcgdG8gY29udHJvbCBpdHMgaW5jbHVzaW9uLCBvciBhdCBsZWFzdCBhIGNvbmRpdGlvbmFsIHN0YXRlbWVudCB0aWVkIHRvIGEgY29uZmlndXJhdGlvbiBzeW1ib2wuIEhvcGVmdWxseSwgaXQncyBhIHN0cmFpZ2h0Zm9yd2FyZCBjYXNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNzkwLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMDY6MDI6NTcuMDUzNjA4NjU0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3MTU1Mzk0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInB0cF9vY3BcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9wdHAvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMjAxOSBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9wdHAvTWFrZWZpbGU9MjA9b2JqLSQoQ09ORklHX1BUUF8xNTg4X0NMT0NLX1ZNVylcXHQrPSBwdHBfdm13Lm9cXG5kcml2ZXJzL3B0cC9NYWtlZmlsZToyMTpvYmotJChDT05GSUdfUFRQXzE1ODhfQ0xPQ0tfT0NQKVxcdCs9IHB0cF9vY3Aub1xcbmRyaXZlcnMvcHRwL01ha2VmaWxlLTIyLW9iai0kKENPTkZJR19QVFBfREZMX1RPRClcXHRcXHQrPSBwdHBfZGZsX3RvZC5vXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM9NDQ9c3RydWN0IG9jcF9yZWcge1xcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTY4LVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo2OTpzdHJ1Y3QgcHRwX29jcF9zZXJ2b19jb25mIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzAtXFx0dTMyXFx0c2Vydm9fb2Zmc2V0X3A7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzctICogQ29tYmluZWQgc2Vydm8gKyBib2FyZC12YXJpYW50IHBhcmFtZXRlcnMgZm9yIEFEVkEgYm9hcmRzLlxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo3ODogKiBFbWJlZGRlZCBpbiB0aGUgcmVzb3VyY2UgdGFibGUgLmV4dHJhIHNvIGEgc2luZ2xlIHB0cF9vY3BfYWR2YV9ib2FyZF9pbml0KClcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzktICogY2FuIGhhbmRsZSBib3RoIEFEVkEgYW5kIEFEVkEtWDEgd2l0aG91dCBwZXItdmFyaWFudCBpbml0IGZ1bmN0aW9ucy5cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODAtICovXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjgxOnN0cnVjdCBwdHBfb2NwX2FkdmFfaW5mbyB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjgyOlxcdHN0cnVjdCBwdHBfb2NwX3NlcnZvX2NvbmZcXHRzZXJ2bztcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODMtXFx0dTMyXFx0XFx0XFx0XFx0Zmxhc2hfc3RhcnQ7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM9MjM2PXN0cnVjdCBib2FyZF9jb25maWdfcmVnIHtcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yNDQtXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjI0NTpzdHJ1Y3QgcHRwX29jcF9mbGFzaF9pbmZvIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMjQ2LVxcdGNvbnN0IGNoYXIgKm5hbWU7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMjUxLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoyNTI6c3RydWN0IHB0cF9vY3BfZmlybXdhcmVfaGVhZGVyIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMjUzLVxcdGNoYXIgbWFnaWNbNF07XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMjYyLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoyNjM6c3RydWN0IHB0cF9vY3BfaTJjX2luZm8ge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yNjQtXFx0Y29uc3QgY2hhciAqbmFtZTtcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yNjktXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjI3MDpzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbyB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTI3MS1cXHRpbnQgaW5kZXg7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMjc1LVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoyNzY6c3RydWN0IHB0cF9vY3BfZXh0X3NyYyB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTI3Ny1cXHR2b2lkIF9faW9tZW1cXHRcXHQqbWVtO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoyNzg6XFx0c3RydWN0IHB0cF9vY3BcXHRcXHQqYnA7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjI3OTpcXHRzdHJ1Y3QgcHRwX29jcF9leHRfaW5mb1xcdCppbmZvO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yODAtXFx0aW50XFx0XFx0XFx0aXJxX3ZlYztcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yODItXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjI4MzplbnVtIHB0cF9vY3Bfc21hX21vZGUge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yODQtXFx0U01BX01PREVfSU4sXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMjg3LVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoyODg6c3RhdGljIHN0cnVjdCBkcGxsX3Bpbl9mcmVxdWVuY3kgcHRwX29jcF9zbWFfZnJlcVtdID0ge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yODktXFx0RFBMTF9QSU5fRlJFUVVFTkNZXzFQUFMsXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMjk0LVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoyOTU6c3RydWN0IHB0cF9vY3Bfc21hX2Nvbm5lY3RvciB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjI5NjpcXHRlbnVtXFx0cHRwX29jcF9zbWFfbW9kZSBtb2RlO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yOTctXFx0Ym9vbFxcdGZpeGVkX2ZjbjtcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYz0zMTc9c3RydWN0IG9jcF9zbWFfb3Age1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0zMTgtXFx0Y29uc3Qgc3RydWN0IG9jcF9zZWxlY3RvciAqdGJsWzJdO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozMTk6XFx0dm9pZCAoKmluaXQpKHN0cnVjdCBwdHBfb2NwICpicCk7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjMyMDpcXHR1MzIgKCpnZXQpKHN0cnVjdCBwdHBfb2NwICpicCwgaW50IHNtYV9ucik7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjMyMTpcXHRpbnQgKCpzZXRfaW5wdXRzKShzdHJ1Y3QgcHRwX29jcCAqYnAsIGludCBzbWFfbnIsIHUzMiB2YWwpO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozMjI6XFx0aW50ICgqc2V0X291dHB1dCkoc3RydWN0IHB0cF9vY3AgKmJwLCBpbnQgc21hX25yLCB1MzIgdmFsKTtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzIzLX07XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzI4LVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozMjk6c3RydWN0IHB0cF9vY3Bfc2lnbmFsIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzMwLVxcdGt0aW1lX3RcXHRcXHRwZXJpb2Q7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzM4LVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozMzk6c3RydWN0IHB0cF9vY3Bfc2VyaWFsX3BvcnQge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0zNDAtXFx0aW50IGxpbmU7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM9MzUwPWVudW0ge1xcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTM1OC1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MzU5OnN0cnVjdCBwdHBfb2NwIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzYwLVxcdHN0cnVjdCBwY2lfZGV2XFx0XFx0KnBkZXY7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzc2LVxcdHN0cnVjdCBmcmVxdWVuY3lfcmVnXFx0X19pb21lbSAqZnJlcV9pbltPQ1BfRlJFUV9OVU1dO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozNzc6XFx0c3RydWN0IHB0cF9vY3BfZXh0X3NyY1xcdCpzaWduYWxfb3V0W09DUF9TSUdOQUxfTlVNXTtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6Mzc4OlxcdHN0cnVjdCBwdHBfb2NwX2V4dF9zcmNcXHQqcHBzO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozNzk6XFx0c3RydWN0IHB0cF9vY3BfZXh0X3NyY1xcdCp0czA7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjM4MDpcXHRzdHJ1Y3QgcHRwX29jcF9leHRfc3JjXFx0KnRzMTtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MzgxOlxcdHN0cnVjdCBwdHBfb2NwX2V4dF9zcmNcXHQqdHMyO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozODI6XFx0c3RydWN0IHB0cF9vY3BfZXh0X3NyY1xcdCp0czM7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjM4MzpcXHRzdHJ1Y3QgcHRwX29jcF9leHRfc3JjXFx0KnRzNDtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzg0LVxcdHN0cnVjdCBvY3BfYXJ0X2dwaW9fcmVnIF9faW9tZW0gKmFydF9zbWE7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzkyLVxcdGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKiphdHRyX2dyb3VwO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozOTM6XFx0Y29uc3Qgc3RydWN0IHB0cF9vY3BfZWVwcm9tX21hcCAqZWVwcm9tX21hcDtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzk0LVxcdHN0cnVjdCBkZW50cnlcXHRcXHQqZGVidWdfcm9vdDtcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0zOTktXFx0aW50XFx0XFx0XFx0bl9pcnFzO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0MDA6XFx0c3RydWN0IHB0cF9vY3Bfc2VyaWFsX3BvcnRcXHRwb3J0W19fUE9SVF9DT1VOVF07XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQwMS1cXHRib29sXFx0XFx0XFx0ZndfbG9hZGVyO1xcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQxMS1cXHR1NjRcXHRcXHRcXHRmd19jYXA7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQxMjpcXHRzdHJ1Y3QgcHRwX29jcF9zaWduYWxcXHRzaWduYWxbT0NQX1NJR05BTF9OVU1dO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0MTM6XFx0c3RydWN0IHB0cF9vY3Bfc21hX2Nvbm5lY3RvciBzbWFbT0NQX1NNQV9OVU1dO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00MTQtXFx0Y29uc3Qgc3RydWN0IG9jcF9zbWFfb3AgKnNtYV9vcDtcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYz00MjQ9c3RydWN0IG9jcF9yZXNvdXJjZSB7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNDI3LVxcdGludCBpcnFfdmVjO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0Mjg6XFx0aW50ICgqc2V0dXApKHN0cnVjdCBwdHBfb2NwICpicCwgc3RydWN0IG9jcF9yZXNvdXJjZSAqcik7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQyOS1cXHR2b2lkICpleHRyYTtcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00MzMtXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQzNDpzdGF0aWMgaW50IHB0cF9vY3BfcmVnaXN0ZXJfbWVtKHN0cnVjdCBwdHBfb2NwICpicCwgc3RydWN0IG9jcF9yZXNvdXJjZSAqcik7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQzNTpzdGF0aWMgaW50IHB0cF9vY3BfcmVnaXN0ZXJfaTJjKHN0cnVjdCBwdHBfb2NwICpicCwgc3RydWN0IG9jcF9yZXNvdXJjZSAqcik7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQzNjpzdGF0aWMgaW50IHB0cF9vY3BfcmVnaXN0ZXJfc3BpKHN0cnVjdCBwdHBfb2NwICpicCwgc3RydWN0IG9jcF9yZXNvdXJjZSAqcik7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQzNzpzdGF0aWMgaW50IHB0cF9vY3BfcmVnaXN0ZXJfc2VyaWFsKHN0cnVjdCBwdHBfb2NwICpicCwgc3RydWN0IG9jcF9yZXNvdXJjZSAqcik7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQzODpzdGF0aWMgaW50IHB0cF9vY3BfcmVnaXN0ZXJfZXh0KHN0cnVjdCBwdHBfb2NwICpicCwgc3RydWN0IG9jcF9yZXNvdXJjZSAqcik7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQzOTpzdGF0aWMgaW50IHB0cF9vY3BfZmJfYm9hcmRfaW5pdChzdHJ1Y3QgcHRwX29jcCAqYnAsIHN0cnVjdCBvY3BfcmVzb3VyY2UgKnIpO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0NDA6c3RhdGljIGlycXJldHVybl90IHB0cF9vY3BfdHNfaXJxKGludCBpcnEsIHZvaWQgKnByaXYpO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0NDE6c3RhdGljIGlycXJldHVybl90IHB0cF9vY3Bfc2lnbmFsX2lycShpbnQgaXJxLCB2b2lkICpwcml2KTtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NDQyOnN0YXRpYyBpbnQgcHRwX29jcF90c19lbmFibGUodm9pZCAqcHJpdiwgdTMyIHJlcSwgYm9vbCBlbmFibGUpO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0NDM6c3RhdGljIGludCBwdHBfb2NwX3NpZ25hbF9mcm9tX3Blcm91dChzdHJ1Y3QgcHRwX29jcCAqYnAsIGludCBnZW4sXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQ0NC1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgcHRwX3Blcm91dF9yZXF1ZXN0ICpyZXEpO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0NDU6c3RhdGljIGludCBwdHBfb2NwX3NpZ25hbF9lbmFibGUodm9pZCAqcHJpdiwgdTMyIHJlcSwgYm9vbCBlbmFibGUpO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0NDY6c3RhdGljIGludCBwdHBfb2NwX3NtYV9zdG9yZShzdHJ1Y3QgcHRwX29jcCAqYnAsIGNvbnN0IGNoYXIgKmJ1ZiwgaW50IHNtYV9ucik7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQ0Ny1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NDQ4OnN0YXRpYyBpbnQgcHRwX29jcF9hcnRfYm9hcmRfaW5pdChzdHJ1Y3QgcHRwX29jcCAqYnAsIHN0cnVjdCBvY3BfcmVzb3VyY2UgKnIpO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00NDktXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQ1MDpzdGF0aWMgaW50IHB0cF9vY3BfYWR2YV9ib2FyZF9pbml0KHN0cnVjdCBwdHBfb2NwICpicCwgc3RydWN0IG9jcF9yZXNvdXJjZSAqcik7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQ1MS1cXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYz00NjE9c3RhdGljIGNvbnN0IHN0cnVjdCBvY3BfYXR0cl9ncm91cCBhZHZhX3RpbWVjYXJkX3gxX2dyb3Vwc1tdO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00NjItXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQ2MzpzdHJ1Y3QgcHRwX29jcF9lZXByb21fbWFwIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNDY0LVxcdHUxNlxcdG9mZjtcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00NzEtXFx0Lm9mZiA9IGFkZHIsXFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0NzI6XFx0LmxlbiA9IHNpemVvZl9maWVsZChzdHJ1Y3QgcHRwX29jcCwgbWVtYmVyKSxcXHRcXHRcXFxcXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQ3MzpcXHQuYnBfb2Zmc2V0ID0gb2Zmc2V0b2Yoc3RydWN0IHB0cF9vY3AsIG1lbWJlcilcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNDc0LVxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQ3OC1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NDc5OnN0YXRpYyBzdHJ1Y3QgcHRwX29jcF9lZXByb21fbWFwIGZiX2VlcHJvbV9tYXBbXSA9IHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNDgwLVxcdHsgRUVQUk9NX0VOVFJZKDB4NDMsIGJvYXJkX2lkKSB9LFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQ4NC1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NDg1OnN0YXRpYyBzdHJ1Y3QgcHRwX29jcF9lZXByb21fbWFwIGFydF9lZXByb21fbWFwW10gPSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQ4Ni1cXHR7IEVFUFJPTV9FTlRSWSgweDIwMCArIDB4NDMsIGJvYXJkX2lkKSB9LFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQ5Ni0jZGVmaW5lIE9DUF9SRVNfTE9DQVRJT04obWVtYmVyKSBcXFxcXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQ5NzpcXHQubmFtZSA9ICNtZW1iZXIsIC5icF9vZmZzZXQgPSBvZmZzZXRvZihzdHJ1Y3QgcHRwX29jcCwgbWVtYmVyKVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00OTgtXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQ5OS0jZGVmaW5lIE9DUF9NRU1fUkVTT1VSQ0UobWVtYmVyKSBcXFxcXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjUwMDpcXHRPQ1BfUkVTX0xPQ0FUSU9OKG1lbWJlciksIC5zZXR1cCA9IHB0cF9vY3BfcmVnaXN0ZXJfbWVtXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTUwMS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTAyLSNkZWZpbmUgT0NQX1NFUklBTF9SRVNPVVJDRShtZW1iZXIpIFxcXFxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTAzOlxcdE9DUF9SRVNfTE9DQVRJT04obWVtYmVyKSwgLnNldHVwID0gcHRwX29jcF9yZWdpc3Rlcl9zZXJpYWxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTA0LVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01MDUtI2RlZmluZSBPQ1BfSTJDX1JFU09VUkNFKG1lbWJlcikgXFxcXFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1MDY6XFx0T0NQX1JFU19MT0NBVElPTihtZW1iZXIpLCAuc2V0dXAgPSBwdHBfb2NwX3JlZ2lzdGVyX2kyY1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01MDctXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTUwOC0jZGVmaW5lIE9DUF9TUElfUkVTT1VSQ0UobWVtYmVyKSBcXFxcXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjUwOTpcXHRPQ1BfUkVTX0xPQ0FUSU9OKG1lbWJlciksIC5zZXR1cCA9IHB0cF9vY3BfcmVnaXN0ZXJfc3BpXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTUxMC1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTExLSNkZWZpbmUgT0NQX0VYVF9SRVNPVVJDRShtZW1iZXIpIFxcXFxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTEyOlxcdE9DUF9SRVNfTE9DQVRJT04obWVtYmVyKSwgLnNldHVwID0gcHRwX29jcF9yZWdpc3Rlcl9leHRcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTEzLVxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jPTU0MT1zdGF0aWMgc3RydWN0IG9jcF9yZXNvdXJjZSBvY3BfZmJfcmVzb3VyY2VbXSA9IHtcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01NDgtXFx0XFx0Lm9mZnNldCA9IDB4MDEwMTAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1NDk6XFx0XFx0LmV4dHJhID0gXFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01NTAtXFx0XFx0XFx0LmluZGV4ID0gMCxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTUxOlxcdFxcdFxcdC5pcnFfZmNuID0gcHRwX29jcF90c19pcnEsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjU1MjpcXHRcXHRcXHQuZW5hYmxlID0gcHRwX29jcF90c19lbmFibGUsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTU1My1cXHRcXHR9LFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTU1Ny1cXHRcXHQub2Zmc2V0ID0gMHgwMTAyMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDIsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjU1ODpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTU1OS1cXHRcXHRcXHQuaW5kZXggPSAxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1NjA6XFx0XFx0XFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTYxOlxcdFxcdFxcdC5lbmFibGUgPSBwdHBfb2NwX3RzX2VuYWJsZSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTYyLVxcdFxcdH0sXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTY2LVxcdFxcdC5vZmZzZXQgPSAweDAxMDYwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gNixcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTY3OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTY4LVxcdFxcdFxcdC5pbmRleCA9IDIsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjU2OTpcXHRcXHRcXHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1NzA6XFx0XFx0XFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01NzEtXFx0XFx0fSxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01NzUtXFx0XFx0Lm9mZnNldCA9IDB4MDExMTAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAxNSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTc2OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTc3LVxcdFxcdFxcdC5pbmRleCA9IDMsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjU3ODpcXHRcXHRcXHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1Nzk6XFx0XFx0XFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01ODAtXFx0XFx0fSxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01ODQtXFx0XFx0Lm9mZnNldCA9IDB4MDExMjAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAxNixcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTg1OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTg2LVxcdFxcdFxcdC5pbmRleCA9IDQsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjU4NzpcXHRcXHRcXHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1ODg6XFx0XFx0XFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01ODktXFx0XFx0fSxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01OTQtXFx0XFx0Lm9mZnNldCA9IDB4MDEwQzAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAwLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1OTU6XFx0XFx0LmV4dHJhID0gXFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01OTYtXFx0XFx0XFx0LmluZGV4ID0gNSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTk3OlxcdFxcdFxcdC5pcnFfZmNuID0gcHRwX29jcF90c19pcnEsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjU5ODpcXHRcXHRcXHQuZW5hYmxlID0gcHRwX29jcF90c19lbmFibGUsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTU5OS1cXHRcXHR9LFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTYwMy1cXHRcXHQub2Zmc2V0ID0gMHgwMTBEMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDExLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo2MDQ6XFx0XFx0LmV4dHJhID0gXFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02MDUtXFx0XFx0XFx0LmluZGV4ID0gMSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NjA2OlxcdFxcdFxcdC5pcnFfZmNuID0gcHRwX29jcF9zaWduYWxfaXJxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo2MDc6XFx0XFx0XFx0LmVuYWJsZSA9IHB0cF9vY3Bfc2lnbmFsX2VuYWJsZSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNjA4LVxcdFxcdH0sXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNjEyLVxcdFxcdC5vZmZzZXQgPSAweDAxMEUwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMTIsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjYxMzpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTYxNC1cXHRcXHRcXHQuaW5kZXggPSAyLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo2MTU6XFx0XFx0XFx0LmlycV9mY24gPSBwdHBfb2NwX3NpZ25hbF9pcnEsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjYxNjpcXHRcXHRcXHQuZW5hYmxlID0gcHRwX29jcF9zaWduYWxfZW5hYmxlLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02MTctXFx0XFx0fSxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02MjEtXFx0XFx0Lm9mZnNldCA9IDB4MDEwRjAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAxMyxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NjIyOlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNjIzLVxcdFxcdFxcdC5pbmRleCA9IDMsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjYyNDpcXHRcXHRcXHQuaXJxX2ZjbiA9IHB0cF9vY3Bfc2lnbmFsX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NjI1OlxcdFxcdFxcdC5lbmFibGUgPSBwdHBfb2NwX3NpZ25hbF9lbmFibGUsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTYyNi1cXHRcXHR9LFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTYzMC1cXHRcXHQub2Zmc2V0ID0gMHgwMTEwMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDE0LFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo2MzE6XFx0XFx0LmV4dHJhID0gXFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02MzItXFx0XFx0XFx0LmluZGV4ID0gNCxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NjMzOlxcdFxcdFxcdC5pcnFfZmNuID0gcHRwX29jcF9zaWduYWxfaXJxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo2MzQ6XFx0XFx0XFx0LmVuYWJsZSA9IHB0cF9vY3Bfc2lnbmFsX2VuYWJsZSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNjM1LVxcdFxcdH0sXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNjg3LVxcdFxcdC5vZmZzZXQgPSAweDAwMTUwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gNyxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6Njg4OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3BfaTJjX2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNjg5LVxcdFxcdFxcdC5uYW1lID0gXFxcInhpaWMtaTJjXFxcIixcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy03MDQtXFx0XFx0Lm9mZnNldCA9IDB4MDAxNjAwMDAgKyAweDEwMDAsIC5pcnFfdmVjID0gMyxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NzA1OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3Bfc2VyaWFsX3BvcnQpIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzA2LVxcdFxcdFxcdC5iYXVkID0gMTE1MjAwLFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTcxMS1cXHRcXHQub2Zmc2V0ID0gMHgwMDE3MDAwMCArIDB4MTAwMCwgLmlycV92ZWMgPSA0LFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo3MTI6XFx0XFx0LmV4dHJhID0gXFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9zZXJpYWxfcG9ydCkge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy03MTMtXFx0XFx0XFx0LmJhdWQgPSAxMTUyMDAsXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzE4LVxcdFxcdC5vZmZzZXQgPSAweDAwMTgwMDAwICsgMHgxMDAwLCAuaXJxX3ZlYyA9IDUsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjcxOTpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX3NlcmlhbF9wb3J0KSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTcyMC1cXHRcXHRcXHQuYmF1ZCA9IDU3NjAwLFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTcyOS1cXHRcXHQub2Zmc2V0ID0gMHgwMDMxMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDksXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjczMDpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2ZsYXNoX2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzMxLVxcdFxcdFxcdC5uYW1lID0gXFxcInhpbGlueF9zcGlcXFwiLCAucGNpX29mZnNldCA9IDAsXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzYwLVxcdHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NzYxOlxcdFxcdC5zZXR1cCA9IHB0cF9vY3BfZmJfYm9hcmRfaW5pdCxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NzYyOlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3Bfc2Vydm9fY29uZikge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy03NjMtXFx0XFx0XFx0LnNlcnZvX29mZnNldF9wID0gMHgyMDAwLFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jPTc4Mj1zdGF0aWMgc3RydWN0IG9jcF9yZXNvdXJjZSBvY3BfYXJ0X3Jlc291cmNlW10gPSB7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzg5LVxcdFxcdC5vZmZzZXQgPSAweDAwMTYwMDAwICsgMHgxMDAwLCAuaXJxX3ZlYyA9IDMsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjc5MDpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX3NlcmlhbF9wb3J0KSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTc5MS1cXHRcXHRcXHQuYmF1ZCA9IDExNTIwMCxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04MDEtXFx0XFx0Lm9mZnNldCA9IDB4MzYwMDAwLCAuc2l6ZSA9IDB4MjAsIC5pcnFfdmVjID0gMTIsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjgwMjpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTgwMy1cXHRcXHRcXHQuaW5kZXggPSAwLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4MDQ6XFx0XFx0XFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODA1OlxcdFxcdFxcdC5lbmFibGUgPSBwdHBfb2NwX3RzX2VuYWJsZSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODA2LVxcdFxcdH0sXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODEwLVxcdFxcdC5vZmZzZXQgPSAweDM4MDAwMCwgLnNpemUgPSAweDIwLCAuaXJxX3ZlYyA9IDgsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjgxMTpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTgxMi1cXHRcXHRcXHQuaW5kZXggPSAxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4MTM6XFx0XFx0XFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODE0OlxcdFxcdFxcdC5lbmFibGUgPSBwdHBfb2NwX3RzX2VuYWJsZSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODE1LVxcdFxcdH0sXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODE5LVxcdFxcdC5vZmZzZXQgPSAweDM5MDAwMCwgLnNpemUgPSAweDIwLCAuaXJxX3ZlYyA9IDEwLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4MjA6XFx0XFx0LmV4dHJhID0gXFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04MjEtXFx0XFx0XFx0LmluZGV4ID0gMixcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODIyOlxcdFxcdFxcdC5pcnFfZmNuID0gcHRwX29jcF90c19pcnEsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjgyMzpcXHRcXHRcXHQuZW5hYmxlID0gcHRwX29jcF90c19lbmFibGUsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTgyNC1cXHRcXHR9LFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTgyOC1cXHRcXHQub2Zmc2V0ID0gMHgzQTAwMDAsIC5zaXplID0gMHgyMCwgLmlycV92ZWMgPSAxNCxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODI5OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODMwLVxcdFxcdFxcdC5pbmRleCA9IDMsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjgzMTpcXHRcXHRcXHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4MzI6XFx0XFx0XFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04MzMtXFx0XFx0fSxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04MzctXFx0XFx0Lm9mZnNldCA9IDB4M0IwMDAwLCAuc2l6ZSA9IDB4MjAsIC5pcnFfdmVjID0gMTUsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjgzODpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTgzOS1cXHRcXHRcXHQuaW5kZXggPSA0LFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4NDA6XFx0XFx0XFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODQxOlxcdFxcdFxcdC5lbmFibGUgPSBwdHBfb2NwX3RzX2VuYWJsZSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODQyLVxcdFxcdH0sXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODQ3LVxcdFxcdC5vZmZzZXQgPSAweDAwMzMwMDAwLCAuc2l6ZSA9IDB4MjAsIC5pcnFfdmVjID0gMTEsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjg0ODpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTg0OS1cXHRcXHRcXHQuaW5kZXggPSA1LFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4NTA6XFx0XFx0XFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODUxOlxcdFxcdFxcdC5lbmFibGUgPSBwdHBfb2NwX3RzX2VuYWJsZSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODUyLVxcdFxcdH0sXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODU2LVxcdFxcdC5vZmZzZXQgPSAweDAwMzEwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gOSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODU3OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3BfZmxhc2hfaW5mbykge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04NTgtXFx0XFx0XFx0Lm5hbWUgPSBcXFwic3BpX2FsdGVyYVxcXCIsIC5wY2lfb2Zmc2V0ID0gMCxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04NzEtXFx0XFx0Lm9mZnNldCA9IDB4MzUwMDAwLCAuc2l6ZSA9IDB4MTAwLCAuaXJxX3ZlYyA9IDQsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjg3MjpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2kyY19pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTg3My1cXHRcXHRcXHQubmFtZSA9IFxcXCJvY29yZXMtaTJjXFxcIixcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04ODgtXFx0XFx0Lm9mZnNldCA9IDB4MDAxOTAwMDAsIC5pcnFfdmVjID0gNyxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODg5OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3Bfc2VyaWFsX3BvcnQpIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODkwLVxcdFxcdFxcdC5iYXVkID0gOTYwMCxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04OTctXFx0e1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4OTg6XFx0XFx0LnNldHVwID0gcHRwX29jcF9hcnRfYm9hcmRfaW5pdCxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODk5OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3Bfc2Vydm9fY29uZikge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy05MDAtXFx0XFx0XFx0LnNlcnZvX29mZnNldF9wID0gMHgyMDAwLFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jPTkwOT1zdGF0aWMgc3RydWN0IG9jcF9yZXNvdXJjZSBvY3BfYWR2YV9yZXNvdXJjZVtdID0ge1xcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTkxNi1cXHRcXHQub2Zmc2V0ID0gMHgwMTAxMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDEsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjkxNzpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTkxOC1cXHRcXHRcXHQuaW5kZXggPSAwLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo5MTk6XFx0XFx0XFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6OTIwOlxcdFxcdFxcdC5lbmFibGUgPSBwdHBfb2NwX3RzX2VuYWJsZSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTIxLVxcdFxcdH0sXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTI1LVxcdFxcdC5vZmZzZXQgPSAweDAxMDIwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMixcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6OTI2OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTI3LVxcdFxcdFxcdC5pbmRleCA9IDEsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjkyODpcXHRcXHRcXHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo5Mjk6XFx0XFx0XFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy05MzAtXFx0XFx0fSxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy05MzQtXFx0XFx0Lm9mZnNldCA9IDB4MDEwNjAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSA2LFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo5MzU6XFx0XFx0LmV4dHJhID0gXFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy05MzYtXFx0XFx0XFx0LmluZGV4ID0gMixcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6OTM3OlxcdFxcdFxcdC5pcnFfZmNuID0gcHRwX29jcF90c19pcnEsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjkzODpcXHRcXHRcXHQuZW5hYmxlID0gcHRwX29jcF90c19lbmFibGUsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTkzOS1cXHRcXHR9LFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTk0NC1cXHRcXHQub2Zmc2V0ID0gMHgwMTBDMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDAsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjk0NTpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTk0Ni1cXHRcXHRcXHQuaW5kZXggPSA1LFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo5NDc6XFx0XFx0XFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6OTQ4OlxcdFxcdFxcdC5lbmFibGUgPSBwdHBfb2NwX3RzX2VuYWJsZSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTQ5LVxcdFxcdH0sXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTUzLVxcdFxcdC5vZmZzZXQgPSAweDAxMEQwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMTEsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjk1NDpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTk1NS1cXHRcXHRcXHQuaW5kZXggPSAxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo5NTY6XFx0XFx0XFx0LmlycV9mY24gPSBwdHBfb2NwX3NpZ25hbF9pcnEsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjk1NzpcXHRcXHRcXHQuZW5hYmxlID0gcHRwX29jcF9zaWduYWxfZW5hYmxlLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy05NTgtXFx0XFx0fSxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy05NjItXFx0XFx0Lm9mZnNldCA9IDB4MDEwRTAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAxMixcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6OTYzOlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTY0LVxcdFxcdFxcdC5pbmRleCA9IDIsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjk2NTpcXHRcXHRcXHQuaXJxX2ZjbiA9IHB0cF9vY3Bfc2lnbmFsX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6OTY2OlxcdFxcdFxcdC5lbmFibGUgPSBwdHBfb2NwX3NpZ25hbF9lbmFibGUsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTk2Ny1cXHRcXHR9LFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTk5OS1cXHRcXHQub2Zmc2V0ID0gMHgwMDE2MDAwMCArIDB4MTAwMCwgLmlycV92ZWMgPSAzLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMDAwOlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3Bfc2VyaWFsX3BvcnQpIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTAwMS1cXHRcXHRcXHQuYmF1ZCA9IDk2MDAsXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTAwNi1cXHRcXHQub2Zmc2V0ID0gMHgwMDE4MDAwMCArIDB4MTAwMCwgLmlycV92ZWMgPSA1LFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMDA3OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3Bfc2VyaWFsX3BvcnQpIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTAwOC1cXHRcXHRcXHQuYmF1ZCA9IDExNTIwMCxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMDIxLVxcdFxcdC5vZmZzZXQgPSAweDAwMzEwNDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gOSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTAyMjpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2ZsYXNoX2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTAyMy1cXHRcXHRcXHQubmFtZSA9IFxcXCJzcGlfYWx0ZXJhXFxcIiwgLnBjaV9vZmZzZXQgPSAwLFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEwMzYtXFx0XFx0Lm9mZnNldCA9IDB4MTUwMDAwLCAuc2l6ZSA9IDB4MTAwLCAuaXJxX3ZlYyA9IDcsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEwMzc6XFx0XFx0LmV4dHJhID0gXFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9pMmNfaW5mbykge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMDM4LVxcdFxcdFxcdC5uYW1lID0gXFxcIm9jb3Jlcy1pMmNcXFwiLFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEwNTUtXFx0e1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMDU2OlxcdFxcdC5zZXR1cCA9IHB0cF9vY3BfYWR2YV9ib2FyZF9pbml0LFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMDU3OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3BfYWR2YV9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEwNTgtXFx0XFx0XFx0LnNlcnZvID0ge1xcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jPTEwNzQ9c3RhdGljIHN0cnVjdCBvY3BfcmVzb3VyY2Ugb2NwX2FkdmFfeDFfcmVzb3VyY2VbXSA9IHtcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMDgxLVxcdFxcdC5vZmZzZXQgPSAweDAxMDEwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTA4MjpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEwODMtXFx0XFx0XFx0LmluZGV4ID0gMCxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTA4NDpcXHRcXHRcXHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMDg1OlxcdFxcdFxcdC5lbmFibGUgPSBwdHBfb2NwX3RzX2VuYWJsZSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTA4Ni1cXHRcXHR9LFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEwOTAtXFx0XFx0Lm9mZnNldCA9IDB4MDEwMjAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAyLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMDkxOlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTA5Mi1cXHRcXHRcXHQuaW5kZXggPSAxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMDkzOlxcdFxcdFxcdC5pcnFfZmNuID0gcHRwX29jcF90c19pcnEsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEwOTQ6XFx0XFx0XFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMDk1LVxcdFxcdH0sXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTA5OS1cXHRcXHQub2Zmc2V0ID0gMHgwMTA2MDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDYsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjExMDA6XFx0XFx0LmV4dHJhID0gXFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTAxLVxcdFxcdFxcdC5pbmRleCA9IDIsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjExMDI6XFx0XFx0XFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTEwMzpcXHRcXHRcXHQuZW5hYmxlID0gcHRwX29jcF90c19lbmFibGUsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTExMDQtXFx0XFx0fSxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTA4LVxcdFxcdC5vZmZzZXQgPSAweDAxMTEwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMTUsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjExMDk6XFx0XFx0LmV4dHJhID0gXFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTEwLVxcdFxcdFxcdC5pbmRleCA9IDMsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjExMTE6XFx0XFx0XFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTExMjpcXHRcXHRcXHQuZW5hYmxlID0gcHRwX29jcF90c19lbmFibGUsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTExMTMtXFx0XFx0fSxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTE3LVxcdFxcdC5vZmZzZXQgPSAweDAxMTIwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMTYsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjExMTg6XFx0XFx0LmV4dHJhID0gXFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTE5LVxcdFxcdFxcdC5pbmRleCA9IDQsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjExMjA6XFx0XFx0XFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTEyMTpcXHRcXHRcXHQuZW5hYmxlID0gcHRwX29jcF90c19lbmFibGUsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTExMjItXFx0XFx0fSxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTI3LVxcdFxcdC5vZmZzZXQgPSAweDAxMEMwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMCxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTEyODpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTExMjktXFx0XFx0XFx0LmluZGV4ID0gNSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTEzMDpcXHRcXHRcXHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTMxOlxcdFxcdFxcdC5lbmFibGUgPSBwdHBfb2NwX3RzX2VuYWJsZSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTEzMi1cXHRcXHR9LFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTExMzYtXFx0XFx0Lm9mZnNldCA9IDB4MDEwRDAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAxMSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTEzNzpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTExMzgtXFx0XFx0XFx0LmluZGV4ID0gMSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTEzOTpcXHRcXHRcXHQuaXJxX2ZjbiA9IHB0cF9vY3Bfc2lnbmFsX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTE0MDpcXHRcXHRcXHQuZW5hYmxlID0gcHRwX29jcF9zaWduYWxfZW5hYmxlLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTQxLVxcdFxcdH0sXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTE0NS1cXHRcXHQub2Zmc2V0ID0gMHgwMTBFMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDEyLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTQ2OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTE0Ny1cXHRcXHRcXHQuaW5kZXggPSAyLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTQ4OlxcdFxcdFxcdC5pcnFfZmNuID0gcHRwX29jcF9zaWduYWxfaXJxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTQ5OlxcdFxcdFxcdC5lbmFibGUgPSBwdHBfb2NwX3NpZ25hbF9lbmFibGUsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTExNTAtXFx0XFx0fSxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTU0LVxcdFxcdC5vZmZzZXQgPSAweDAxMEYwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMTMsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjExNTU6XFx0XFx0LmV4dHJhID0gXFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTU2LVxcdFxcdFxcdC5pbmRleCA9IDMsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjExNTc6XFx0XFx0XFx0LmlycV9mY24gPSBwdHBfb2NwX3NpZ25hbF9pcnEsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjExNTg6XFx0XFx0XFx0LmVuYWJsZSA9IHB0cF9vY3Bfc2lnbmFsX2VuYWJsZSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTE1OS1cXHRcXHR9LFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTExNjMtXFx0XFx0Lm9mZnNldCA9IDB4MDExMDAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAxNCxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTE2NDpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTExNjUtXFx0XFx0XFx0LmluZGV4ID0gNCxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTE2NjpcXHRcXHRcXHQuaXJxX2ZjbiA9IHB0cF9vY3Bfc2lnbmFsX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTE2NzpcXHRcXHRcXHQuZW5hYmxlID0gcHRwX29jcF9zaWduYWxfZW5hYmxlLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTY4LVxcdFxcdH0sXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTIwMC1cXHRcXHQub2Zmc2V0ID0gMHgwMDE2MDAwMCArIDB4MTAwMCwgLmlycV92ZWMgPSAzLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMjAxOlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3Bfc2VyaWFsX3BvcnQpIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTIwMi1cXHRcXHRcXHQuYmF1ZCA9IDk2MDAsXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTIwNy1cXHRcXHQub2Zmc2V0ID0gMHgwMDE4MDAwMCArIDB4MTAwMCwgLmlycV92ZWMgPSA1LFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMjA4OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3Bfc2VyaWFsX3BvcnQpIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTIwOS1cXHRcXHRcXHQuYmF1ZCA9IDExNTIwMCxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMjMwLVxcdFxcdC5vZmZzZXQgPSAweDAwMzEwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gOSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTIzMTpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2ZsYXNoX2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTIzMi1cXHRcXHRcXHQubmFtZSA9IFxcXCJ4aWxpbnhfc3BpXFxcIiwgLnBjaV9vZmZzZXQgPSAwLFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEyNDctXFx0XFx0Lm9mZnNldCA9IDB4MDAxNTAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSA3LFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMjQ4OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3BfaTJjX2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTI0OS1cXHRcXHRcXHQubmFtZSA9IFxcXCJ4aWljLWkyY1xcXCIsXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTI2Mi1cXHR7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEyNjM6XFx0XFx0LnNldHVwID0gcHRwX29jcF9hZHZhX2JvYXJkX2luaXQsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEyNjQ6XFx0XFx0LmV4dHJhID0gXFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9hZHZhX2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTI2NS1cXHRcXHRcXHQuc2Vydm8gPSB7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTI4MC1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTI4MTpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgcHRwX29jcF9wY2lkZXZfaWRbXSA9IHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTI4Mi1cXHR7IFBDSV9ERVZJQ0VfREFUQShNRVRBLCBUSU1FQ0FSRCwgXFx1MDAyNm9jcF9mYl9yZXNvdXJjZSkgfSxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMjg4LX07XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEyODk6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIHB0cF9vY3BfcGNpZGV2X2lkKTtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTI5MC1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTI5MTpzdGF0aWMgREVGSU5FX01VVEVYKHB0cF9vY3BfbG9jayk7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEyOTI6c3RhdGljIERFRklORV9JRFIocHRwX29jcF9pZHIpO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMjkzLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMjk0OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2NwX3NlbGVjdG9yIHB0cF9vY3BfY2xvY2tbXSA9IHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTI5NS1cXHR7IC5uYW1lID0gXFxcIk5PTkVcXFwiLFxcdC52YWx1ZSA9IDAgfSxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMzEwLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMzExOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2NwX3NlbGVjdG9yIHB0cF9vY3Bfc21hX2luW10gPSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEzMTItXFx0eyAubmFtZSA9IFxcXCIxME1oelxcXCIsICAudmFsdWUgPSAweDAwMDAsICAgICAgLmZyZXF1ZW5jeSA9IDEwMDAwMDAwIH0sXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDA2OjAyOjU3LjExMDc2Njg4OVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwNDg5MzQ1MjE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoIEZ1enppbmcgRGVjaXNpb246IFVuY2VydGFpbiwgTGVhbmluZyBUb3dhcmRzIFwiTm9cIioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIHRoZSBgQ09ORklHX1BUUF8xNTg4X0NMT0NLX09DUGAgY29uZmlnLiBJdCBhZGRzIGByZXF1ZXN0X21vZHVsZShcImkyYy1kZXZcIik7YCB0byBgcHRwX29jcF9pbml0KClgIGFuZCBhIHN5c2ZzIGF0dHJpYnV0ZSwgYGkyY19idXNfY3RybGAsIHRoYXQgcmVhZHMgYW5kIHdyaXRlcyB0byBgYnAtXHUwMDNlcHBzX3NlbGVjdC1cdTAwM2VfX3BhZDFgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIFwiSXMgdGhpcyBldmVuIHdvcnRoIGZ1enppbmc/XCJcblxuU3l6a2FsbGVyICpjYW4qIGZ1enogc3lzZnMgYXR0cmlidXRlcywgdGhhdCdzIGEga25vd24uIEJ1dCwgdW5sZXNzIHRoZXJlIGFyZSBkZXZpY2UgZGVzY3JpcHRpb25zIG9yIHRoZSBnZW5lcmljIHN5c2ZzIGZ1enplciBpcyB1c2VkLCBpdCBkb2Vzbid0IHRhcmdldCBzcGVjaWZpYyBQQ0kgZGV2aWNlcyBieSB0aGVpciBzeXNmcyBhdHRyaWJ1dGVzLiBUaGUgY29kZSBpdHNlbGYgaXMgcmVhbGx5IHNpbXBsZSB0aG91Z2guIFdlJ3JlIHRhbGtpbmcgYSB0cml2aWFsIHN5c2ZzIHJlYWQvd3JpdGUgd3JhcHBlciBhcm91bmQgYW4gTU1JTyByZWdpc3RlcjpcblxuYGBgY1xuc3RhdGljIHNzaXplX3RcbmkyY19idXNfY3RybF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1Zilcbntcblx0c3RydWN0IHB0cF9vY3AgKmJwID0gZGV2X2dldF9kcnZkYXRhKGRldik7XG5cblx0aWYgKCFicC1cdTAwM2VwcHNfc2VsZWN0KVxuXHRcdHJldHVybiAtRU5PREVWO1xuXHRyZXR1cm4gc3lzZnNfZW1pdChidWYsIFwiMHglMDh4XFxuXCIsXG5cdFx0XHQgIGlvcmVhZDMyKFx1MDAyNmJwLVx1MDAzZXBwc19zZWxlY3QtXHUwMDNlX19wYWQxKSk7XG59XG5cbnN0YXRpYyBzc2l6ZV90XG5pMmNfYnVzX2N0cmxfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0cixcblx0XHQgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudClcbntcblx0c3RydWN0IHB0cF9vY3AgKmJwID0gZGV2X2dldF9kcnZkYXRhKGRldik7XG5cdHUzMiB2YWw7XG5cblx0aWYgKCFicC1cdTAwM2VwcHNfc2VsZWN0KVxuXHRcdHJldHVybiAtRU5PREVWO1xuXHRpZiAoa3N0cnRvdTMyKGJ1ZiwgMCwgXHUwMDI2dmFsKSlcblx0XHRyZXR1cm4gLUVJTlZBTDtcblx0aW93cml0ZTMyKHZhbCwgXHUwMDI2YnAtXHUwMDNlcHBzX3NlbGVjdC1cdTAwM2VfX3BhZDEpO1xuXHRyZXR1cm4gY291bnQ7XG59XG5gYGBcblxuSXMgdGhpcyBmdW5jdGlvbmFsIGxvZ2ljIHRoYXQgKm5lZWRzKiBmdXp6aW5nPyBJdCdzIGp1c3QgcmVnaXN0ZXIgcmVhZC93cml0ZSEgIFRoZSBgcmVxdWVzdF9tb2R1bGUoXCJpMmMtZGV2XCIpO2AgY2FsbCwgSSdtIHRoaW5raW5nLCBpcyBwcm9iYWJseSBub3Qgd2hlcmUgdGhlIGp1aWN5IGJ1Z3MgYXJlLlxuXG5UaGUgcHJvbXB04oCZcyBkZWZpbml0aW9uIG9mIHdoYXQncyAqbm90KiB3b3J0aCBmdXp6aW5nIGNvbWVzIHRvIG1pbmQ6IGRvY3VtZW50YXRpb24sIEtjb25maWcsIGNvbW1lbnRzLCBsb2dnaW5nIGNoYW5nZXMsIGNvbnN0YW50IG1vZGlmaWNhdGlvbnMgdGhhdCBkb24ndCBhbHRlciBmbG93LCBhbmQgY29kZSB0aGF0J3MgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiAgVGhpcyBpcyBhIFBDSSBkcml2ZXIsIGBwdHBfb2NwYCBmb3IgdGhlIE9wZW4gQ29tcHV0ZSBQcm9qZWN0IFRpbWUgQ2FyZC4gQ2FuIHRoaXMgZXZlbiBiZSBwcm9iZWQgaW4gUUVNVT9cblxuV2FpdCwgU3l6a2FsbGVyJ3MgUENJIGZ1enplciBjYW4gZW11bGF0ZSBQQ0kgZGV2aWNlcywgaW50ZXJjZXB0aW5nIGFjY2Vzc2VzLiBCdXQgaXQgbmVlZHMgdGhlIFBDSSBkZXZpY2UgSUQsIG9yIGl0IGNhbiBiZSBndWVzc2VkLiAgQWgsIGhlcmUgd2UgZ286IGBQQ0lfREVWSUNFX0RBVEEoTUVUQSwgVElNRUNBUkQsIFx1MDAyNm9jcF9mYl9yZXNvdXJjZSlgLCBNRVRBIGlzIEZhY2Vib29rICh2ZW5kb3IgSUQgMHgxZDliKS4gU28sIGlmIHRoZSBQQ0kgZnV6emVyIGlzIGVuYWJsZWQsIGl0ICpjYW4qIHByb2JlIGl0LlxuXG5CdXQgaXMgaXQgd29ydGggdGhlIGVmZm9ydD8gVHdvIHN5c2ZzIG1ldGhvZHMgZm9yIGEgMzItYml0IHJlZ2lzdGVyIGFuZCBhIGByZXF1ZXN0X21vZHVsZWAgY2FsbC4gSSBkb24ndCBzZWUgYW55IGNvbXBsZXggbG9naWMgaGVyZS4gSSBzdGlsbCBuZWVkIHRvIGRvdWJsZS1jaGVjayBpZiB0aGVyZSBpcyBhbnl0aGluZyBlbHNlLiAgU28sIEkgYW0gbGVhbmluZyB0b3dhcmQgXCJubyxcIiBidXQgSSBuZWVkIHRvIG1ha2Ugc3VyZSBJJ20gbm90IG1pc3Npbmcgc29tZXRoaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNzA2NiwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg2MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQwNjowMzowNy42MDAxMTM5OTVaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTg4Njc1OTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaTJjX2J1c19jdHJsX3N0b3JlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvcHRwL3B0cF9vY3AuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3B0cC9wdHBfb2NwLmM9NDIzOD1zdGF0aWMgc3NpemVfdFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0MjM5OmkyY19idXNfY3RybF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00MjQwLVxcdFxcdCAgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQwNjowMzowNy42NTg5ODU1ODlaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5NDQwMzY0OTQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZyBEZWNpc2lvbiBmb3IgSTJDIEJ1cyBDb250cm9sIGluIGFkdmFfdGltZWNhcmRfeDEqKlxuXG5Pa2F5LCBsZXQgbWUgdGhpbmsgdGhpcyB0aHJvdWdoLiBUaGlzIHBhdGNoIGludHJvZHVjZXMgYGkyY19idXNfY3RybF9zaG93YCBhbmQgYGkyY19idXNfY3RybF9zdG9yZWAsIGFkZHMgaXQgdG8gYGFkdmFfdGltZWNhcmRfeDFfYXR0cnNgLCBhbmQgYWxzbyBjYWxscyBgcmVxdWVzdF9tb2R1bGUoXCJpMmMtZGV2XCIpO2Agd2l0aGluIGBwdHBfb2NwX2luaXQoKWAuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gbGVhbiB0b3dhcmRzIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgY29yZSBsb2dpYyBvZiBgaTJjX2J1c19jdHJsX3N0b3JlYCBpcyBleHRyZW1lbHkgc2ltcGxlOiBhIGBrc3RydG91MzJgLCBhIGRpcmVjdCBNTUlPIHdyaXRlIHVzaW5nIGBpb3dyaXRlMzJgLCBhbmQgYSBjb3VudCByZXR1cm4uIE5vIGNvbXBsZXggY29uZGl0aW9uYWwgc3RhdGVtZW50cywgbm8gZHluYW1pYyBtZW1vcnkgYWxsb2NhdGlvbiwgbm8gbG9ja2luZyBjb21wbGljYXRpb25zLCBhbmQgbm8gbG9vcHMgdG8gZ2V0IGh1bmcgdXAgaW4uIEl0J3MgZXNzZW50aWFsbHkgYSB0cml2aWFsIHN5c2ZzIHdyYXBwZXIgYXJvdW5kIGFuIE1NSU8gb3BlcmF0aW9uLCBhbG9uZyB3aXRoIGEgbW9kdWxlIGxvYWQuXG5cbkhvd2V2ZXIsIHRoZSBwcm9tcHQgc2F5cyBJIG5lZWQgdG8gY29uc2lkZXIgcmVhY2hhYmlsaXR5IGFuZCBpZiBpdCB0b3VjaGVzIGNvcmUga2VybmVsIGxvZ2ljLiBUaGUgZHJpdmVyIGluIHF1ZXN0aW9uIHJlbGllcyBvbiB0aGUgcHJlc2VuY2Ugb2YgYSBzcGVjaWZpYyBQQ0kgZGV2aWNlLiBOb3csIFN5emthbGxlcidzIFBDSSBmdXp6ZXIgY2FuIHRlY2huaWNhbGx5IGVtdWxhdGUgdGhpcyBQQ0kgZGV2aWNlLiBUaGUgcXVlc3Rpb24gaXMsIGlzIGl0ICpyZWFsbHkqIHdvcnRoIHRoZSBlZmZvcnQ/XG5cblRoZSBwcm9tcHQgc3RhdGVzIEkgc2hvdWxkIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiB0aGUgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VLiBTeXprYWxsZXIncyBQQ0kgZnV6emluZyBzdHJhdGVneSBkb2Vzbid0IHJlYWRpbHkgZml0IHRoYXQgZGVmaW5pdGlvbi4gV2hpbGUgaXQgY2FuIGluamVjdCBNTUlPIHJlYWRzL3dyaXRlcywgaXQgZG9lc24ndCBvZmZlciBmdWxsIGRldmljZSBlbXVsYXRpb24gd2l0aGluIFFFTVUgaW4gdGhlIHNhbWUgd2F5IGBtYWM4MDIxMV9od3NpbWAgb3IgYGR1bW15X2hjZGAgZm9yIFVTQiBkb2VzLiBVcHN0cmVhbSBrZXJuZWxzIGRvbid0IGhhdmUgYSBnZW5lcmljIFBDSSBlbXVsYXRvciB0aGF0IGNvdWxkIGluc3RhbnRpYXRlIGFyYml0cmFyeSBQQ0kgZGV2aWNlcyB3aXRoIHNwZWNpZmljIHZlbmRvci9kZXZpY2UgSURzIGVhc2lseS4gU3l6a2FsbGVyIHVzZXMgdGhlIGAvZGV2L3Jhdy1wY2lgIHR5cGUgb2YgaW50ZXJmYWNlLCB3aGljaCBhbGxvd3MgZm9yIHRlc3RpbmcgaWYgdGhlIGRldmljZSBwcm9iZXMuIElmIHRoZXJlJ3Mgbm8gUUVNVSBlbXVsYXRpb24gZm9yIHRoZSBPQ1AgVGltZWNhcmQsIHRoZSBkcml2ZXIgd29uJ3QgcHJvYmUgaW4gYSBzdGFuZGFyZCBWTSBzZXR1cC5cblxuVGhlcmVmb3JlLCBiZWNhdXNlIHRoaXMgZHJpdmVyIHNlZW1zIHJlbGlhbnQgb24gYSByZWFsIG9yIHZlcnkgc3BlY2lmaWMgUENJIGRldmljZSwgYW5kIGJlY2F1c2UgYSBnZW5lcmljIGVtdWxhdG9yIGlzbid0IHJlYWRpbHkgYXZhaWxhYmxlIGluIHRoZSB1cHN0cmVhbSBrZXJuZWwgZm9yIFFFTVUsIEknbSBsZWFuaW5nIGJhY2sgdG93YXJkcyBgV29ydGhGdXp6aW5nPWZhbHNlYC4gSSBuZWVkIHRvIGVuc3VyZSB0aGUgdGFyZ2V0IGlzIHJlYWNoYWJsZSB0byBiZWdpbiB3aXRoIGFuZCBJJ20gbm90IGNvbnZpbmNlZCBpdCBpcy4gTGV0IG1lIGNoZWNrIGlmIHRoZXJlIGlzIGFueSBzb2Z0d2FyZSBlbXVsYXRpb24gYXZhaWxhYmxlIGZpcnN0IHRvIGJlIHN1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4ODI0LCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTk2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDA2OjAzOjE3LjA5OTM1MjQ5NloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjE5MjUyMjA2OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJUSU1FQ0FSRFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9wdHAvcHRwX29jcC5jLTI3LVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoyODojZGVmaW5lIFBDSV9ERVZJQ0VfSURfTUVUQV9USU1FQ0FSRFxcdFxcdDB4MDQwMFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yOS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzAtI2RlZmluZSBQQ0lfVkVORE9SX0lEX0NFTEVTVElDQVxcdFxcdFxcdDB4MThkNFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozMTojZGVmaW5lIFBDSV9ERVZJQ0VfSURfQ0VMRVNUSUNBX1RJTUVDQVJEXFx0MHgxMDA4XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTMyLVxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTM2LSNkZWZpbmUgUENJX1ZFTkRPUl9JRF9BRFZBXFx0XFx0XFx0MHhhZDVhXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjM3OiNkZWZpbmUgUENJX0RFVklDRV9JRF9BRFZBX1RJTUVDQVJEXFx0XFx0MHgwNDAwXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjM4OiNkZWZpbmUgUENJX0RFVklDRV9JRF9BRFZBX1RJTUVDQVJEX1gxXFx0XFx0MHgwNDEwXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTM5LVxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jPTEyODE9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHB0cF9vY3BfcGNpZGV2X2lkW10gPSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEyODI6XFx0eyBQQ0lfREVWSUNFX0RBVEEoTUVUQSwgVElNRUNBUkQsIFxcdTAwMjZvY3BfZmJfcmVzb3VyY2UpIH0sXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEyODM6XFx0eyBQQ0lfREVWSUNFX0RBVEEoQ0VMRVNUSUNBLCBUSU1FQ0FSRCwgXFx1MDAyNm9jcF9mYl9yZXNvdXJjZSkgfSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTI4NC1cXHR7IFBDSV9ERVZJQ0VfREFUQShPUk9MSUEsIEFSVENBUkQsIFxcdTAwMjZvY3BfYXJ0X3Jlc291cmNlKSB9LFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMjg1OlxcdHsgUENJX0RFVklDRV9EQVRBKEFEVkEsIFRJTUVDQVJELCBcXHUwMDI2b2NwX2FkdmFfcmVzb3VyY2UpIH0sXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEyODY6XFx0eyBQQ0lfREVWSUNFX0RBVEEoQURWQSwgVElNRUNBUkRfWDEsIFxcdTAwMjZvY3BfYWR2YV94MV9yZXNvdXJjZSkgfSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTI4Ny1cXHR7IH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMDY6MDM6MTkuMjkxODc5NDA0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4MDE5NzI5MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudDogVW50ZXN0YWJsZSBpbiBWaXJ0dWFsaXplZCBFbnZpcm9ubWVudHMqKlxuXG5Pa2F5LCBzbyBsb29raW5nIGF0IHRoaXMgUENJIGRldmljZSBkcml2ZXIsIHRoZSBjb25jbHVzaW9uIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIFRoZXJlJ3Mgbm8gc29mdHdhcmUgZW11bGF0aW9uIGF2YWlsYWJsZSBmb3IgdGhpcyB0aGluZyB3aXRoaW4gdGhlIGtlcm5lbC4gVGhhdCBtZWFucywgdW5sZXNzIEkndmUgZ290IHRoZSBhY3R1YWwgaGFyZHdhcmUgcHJlc2VudCBvciBhIG1ldGljdWxvdXNseSBjcmFmdGVkIFFFTVUgZGV2aWNlIG1vZGVsIGZvciBpdCwgdGhlcmUncyBhYnNvbHV0ZWx5IG5vIHdheSB0byBhY3R1YWxseSAqcHJvYmUqIHRoZSBkcml2ZXIuIEluIG90aGVyIHdvcmRzLCB0aGUgY29yZSBjb2RlIHBhdGhzIGFyZSBlZmZlY3RpdmVseSBkZWFkIGVuZHMgaW4gZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIHRoZSBzdGFuZGFyZCBRRU1VIHNldHVwLiBTaW5jZSBteSBnb2FsIGlzIGZ1enppbmcsIGFuZCB0aGlzIGRyaXZlciBpcyB1bnRvdWNoYWJsZSBpbiBhIGZ1enppbmcgZnJpZW5kbHkgZW52aXJvbm1lbnQsIEknbSBnb2luZyB0byBzZXQgYFdvcnRoRnV6emluZz1mYWxzZWAuIFRoZSByZWFzb25pbmcgaXMgc29saWQ6IGl0J3MgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kgZHJpdmVyLCBhbmQgd2l0aG91dCBwcm9wZXIgc29mdHdhcmUgZW11bGF0aW9uLCBpdCdzIGp1c3Qgc2ltcGx5IG5vdCByZWFjaGFibGUgZHVyaW5nIHRlc3RpbmcgaW4gdGhlIGtpbmQgb2YgdmlydHVhbGl6YXRpb24gSSB0eXBpY2FsbHkgZGVhbCB3aXRoLiBObyBwb2ludCBpbiB3YXN0aW5nIGN5Y2xlcyBvbiBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjA1NjIsIk91dHB1dFRva2VucyI6OTksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQwNjowMzoyNC4wOTM4NTQ3MVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzNDMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlciAocHRwX29jcCkgZm9yIHRoZSBPcGVuIENvbXB1dGUgUHJvamVjdCBUaW1lIENhcmQuIFRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBkZXZpY2UgaW4gdGhlIGtlcm5lbCBvciBzdGFuZGFyZCBRRU1VLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBBZGRpdGlvbmFsbHksIHRoZSBjaGFuZ2VzIGFyZSB0cml2aWFsIHN5c2ZzIHdyYXBwZXJzIGFyb3VuZCBNTUlPIHJlYWRzL3dyaXRlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlciAocHRwX29jcCkgZm9yIHRoZSBPcGVuIENvbXB1dGUgUHJvamVjdCBUaW1lIENhcmQuIFRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBkZXZpY2UgaW4gdGhlIGtlcm5lbCBvciBzdGFuZGFyZCBRRU1VLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBBZGRpdGlvbmFsbHksIHRoZSBjaGFuZ2VzIGFyZSB0cml2aWFsIHN5c2ZzIHdyYXBwZXJzIGFyb3VuZCBNTUlPIHJlYWRzL3dyaXRlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowvczfm[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-28 05:54:48 +0000 UTC FinishedAt: 2026-06-28 06:03:26 +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+CgkJCTx0ZD4yMDI2LzA2LzI4IDA2OjAyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlciAocHRwX29jcCkgZm9yIHRoZSBPcGVuIENvbXB1dGUgUHJvamVjdCBUaW1lIENhcmQuIFRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBkZXZpY2UgaW4gdGhlIGtlcm5lbCBvciBzdGFuZGFyZCBRRU1VLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBBZGRpdGlvbmFsbHksIHRoZSBjaGFuZ2VzIGFyZSB0cml2aWFsIHN5c2ZzIHdyYXBwZXJzIGFyb3VuZCBNTUlPIHJlYWRzL3dyaXRlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMDY6MDI8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA0ZGM5NjAzMGFjNjE1NmVhNDQ2MzQwODAwYzVjNjM3YThmNGRlYzBlXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBKdW4gMjggMDY6MDI6NDggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9wdHAvcHRwX29jcC5jIGIvZHJpdmVycy9wdHAvcHRwX29jcC5jXG5pbmRleCAzNWU5MTFmMWFkNzhjMC4uMWI0Y2NiNGZlY2E1NDkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3B0cC9wdHBfb2NwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvcHRwL3B0cF9vY3AuY1xuQEAgLTQyMjQsNiAmIzQzOzQyMjQsMzQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvY3BfYXR0cl9ncm91cCBhcnRfdGltZWNhcmRfZ3JvdXBzW10gPSB7XG4gXHR7IH0sXG4gfTtcbiBcbiYjNDM7c3RhdGljIHNzaXplX3RcbiYjNDM7aTJjX2J1c19jdHJsX3Nob3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IHB0cF9vY3AgKmJwID0gZGV2X2dldF9kcnZkYXRhKGRldik7XG4mIzQzO1xuJiM0MztcdGlmICghYnAtXHUwMDNlcHBzX3NlbGVjdClcbiYjNDM7XHRcdHJldHVybiAtRU5PREVWO1xuJiM0MztcdHJldHVybiBzeXNmc19lbWl0KGJ1ZiwgXCYjMzQ7MHglMDh4XFxuXCYjMzQ7LFxuJiM0MztcdFx0XHQgIGlvcmVhZDMyKFx1MDAyNmJwLVx1MDAzZXBwc19zZWxlY3QtXHUwMDNlX19wYWQxKSk7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyBzc2l6ZV90XG4mIzQzO2kyY19idXNfY3RybF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLFxuJiM0MztcdFx0ICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgcHRwX29jcCAqYnAgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTtcbiYjNDM7XHR1MzIgdmFsO1xuJiM0MztcbiYjNDM7XHRpZiAoIWJwLVx1MDAzZXBwc19zZWxlY3QpXG4mIzQzO1x0XHRyZXR1cm4gLUVOT0RFVjtcbiYjNDM7XHRpZiAoa3N0cnRvdTMyKGJ1ZiwgMCwgXHUwMDI2dmFsKSlcbiYjNDM7XHRcdHJldHVybiAtRUlOVkFMO1xuJiM0MztcdGlvd3JpdGUzMih2YWwsIFx1MDAyNmJwLVx1MDAzZXBwc19zZWxlY3QtXHUwMDNlX19wYWQxKTtcbiYjNDM7XHRyZXR1cm4gY291bnQ7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyBERVZJQ0VfQVRUUl9SVyhpMmNfYnVzX2N0cmwpO1xuJiM0MztcbiBzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqYWR2YV90aW1lY2FyZF9hdHRyc1tdID0ge1xuIFx0XHUwMDI2ZGV2X2F0dHJfc2VyaWFsbnVtLmF0dHIsXG4gXHRcdTAwMjZkZXZfYXR0cl9nbnNzX3N5bmMuYXR0cixcbkBAIC00MjcyLDYgJiM0Mzs0MzAwLDcgQEAgc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmFkdmFfdGltZWNhcmRfeDFfYXR0cnNbXSA9IHtcbiBcdFx1MDAyNmRldl9hdHRyX3RzX3dpbmRvd19hZGp1c3QuYXR0cixcbiBcdFx1MDAyNmRldl9hdHRyX3V0Y190YWlfb2Zmc2V0LmF0dHIsXG4gXHRcdTAwMjZkZXZfYXR0cl90b2RfY29ycmVjdGlvbi5hdHRyLFxuJiM0MztcdFx1MDAyNmRldl9hdHRyX2kyY19idXNfY3RybC5hdHRyLFxuIFx0TlVMTCxcbiB9O1xuIFxuQEAgLTUyMzUsNiAmIzQzOzUyNjQsNyBAQCBwdHBfb2NwX2luaXQodm9pZClcbiBcdGNvbnN0IGNoYXIgKndoYXQ7XG4gXHRpbnQgZXJyO1xuIFxuJiM0MztcdHJlcXVlc3RfbW9kdWxlKFwmIzM0O2kyYy1kZXZcJiMzNDspO1xuIFx0cHRwX29jcF9kZWJ1Z2ZzX2luaXQoKTtcbiBcbiBcdHdoYXQgPSBcJiMzNDt0aW1lY2FyZCBjbGFzc1wmIzM0OztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAwNjowMjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIgKHB0cF9vY3ApIGZvciB0aGUgT3BlbiBDb21wdXRlIFByb2plY3QgVGltZSBDYXJkLiBUaGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgZGV2aWNlIGluIHRoZSBrZXJuZWwgb3Igc3RhbmRhcmQgUUVNVSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gQWRkaXRpb25hbGx5LCB0aGUgY2hhbmdlcyBhcmUgdHJpdmlhbCBzeXNmcyB3cmFwcGVycyBhcm91bmQgTU1JTyByZWFkcy93cml0ZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA0ZGM5NjAzMGFjNjE1NmVhNDQ2MzQwODAwYzVjNjM3YThmNGRlYzBlCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFN1biBKdW4gMjggMDY6MDI6NDggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3B0cC9wdHBfb2NwLmMgYi9kcml2ZXJzL3B0cC9wdHBfb2NwLmMKaW5kZXggMzVlOTExZjFhZDc4YzAuLjFiNGNjYjRmZWNhNTQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3B0cC9wdHBfb2NwLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9wdHAvcHRwX29jcC5jCkBAIC00MjI0LDYgJiM0Mzs0MjI0LDM0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2NwX2F0dHJfZ3JvdXAgYXJ0X3RpbWVjYXJkX2dyb3Vwc1tdID0gewogCXsgfSwKIH07CiAKJiM0MztzdGF0aWMgc3NpemVfdAomIzQzO2kyY19idXNfY3RybF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKJiM0Mzt7CiYjNDM7CXN0cnVjdCBwdHBfb2NwICpicCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwomIzQzOwomIzQzOwlpZiAoIWJwLSZndDtwcHNfc2VsZWN0KQomIzQzOwkJcmV0dXJuIC1FTk9ERVY7CiYjNDM7CXJldHVybiBzeXNmc19lbWl0KGJ1ZiwgJiMzNDsweCUwOHhcbiYjMzQ7LAomIzQzOwkJCSAgaW9yZWFkMzIoJmFtcDticC0mZ3Q7cHBzX3NlbGVjdC0mZ3Q7X19wYWQxKSk7CiYjNDM7fQomIzQzOwomIzQzO3N0YXRpYyBzc2l6ZV90CiYjNDM7aTJjX2J1c19jdHJsX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiYjNDM7CQkgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkKJiM0Mzt7CiYjNDM7CXN0cnVjdCBwdHBfb2NwICpicCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwomIzQzOwl1MzIgdmFsOwomIzQzOwomIzQzOwlpZiAoIWJwLSZndDtwcHNfc2VsZWN0KQomIzQzOwkJcmV0dXJuIC1FTk9ERVY7CiYjNDM7CWlmIChrc3RydG91MzIoYnVmLCAwLCAmYW1wO3ZhbCkpCiYjNDM7CQlyZXR1cm4gLUVJTlZBTDsKJiM0MzsJaW93cml0ZTMyKHZhbCwgJmFtcDticC0mZ3Q7cHBzX3NlbGVjdC0mZ3Q7X19wYWQxKTsKJiM0MzsJcmV0dXJuIGNvdW50OwomIzQzO30KJiM0MzsKJiM0MztzdGF0aWMgREVWSUNFX0FUVFJfUlcoaTJjX2J1c19jdHJsKTsKJiM0MzsKIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphZHZhX3RpbWVjYXJkX2F0dHJzW10gPSB7CiAJJmFtcDtkZXZfYXR0cl9zZXJpYWxudW0uYXR0ciwKIAkmYW1wO2Rldl9hdHRyX2duc3Nfc3luYy5hdHRyLApAQCAtNDI3Miw2ICYjNDM7NDMwMCw3IEBAIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphZHZhX3RpbWVjYXJkX3gxX2F0dHJzW10gPSB7CiAJJmFtcDtkZXZfYXR0cl90c193aW5kb3dfYWRqdXN0LmF0dHIsCiAJJmFtcDtkZXZfYXR0cl91dGNfdGFpX29mZnNldC5hdHRyLAogCSZhbXA7ZGV2X2F0dHJfdG9kX2NvcnJlY3Rpb24uYXR0ciwKJiM0MzsJJmFtcDtkZXZfYXR0cl9pMmNfYnVzX2N0cmwuYXR0ciwKIAlOVUxMLAogfTsKIApAQCAtNTIzNSw2ICYjNDM7NTI2NCw3IEBAIHB0cF9vY3BfaW5pdCh2b2lkKQogCWNvbnN0IGNoYXIgKndoYXQ7CiAJaW50IGVycjsKIAomIzQzOwlyZXF1ZXN0X21vZHVsZSgmIzM0O2kyYy1kZXYmIzM0Oyk7CiAJcHRwX29jcF9kZWJ1Z2ZzX2luaXQoKTsKIAogCXdoYXQgPSAmIzM0O3RpbWVjYXJkIGNsYXNzJiMzNDs7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDA2OjAyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyOTUKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAxNzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUGF0Y2ggdG8gdGhlIFBUUCBPQ1AgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQmIzM5O3MgYmVlbiBhcHBsaWVkIHRvIGBkcml2ZXJzL3B0cC9wdHBfb2NwLmNgLiBJdCBsb29rcyBsaWtlIGl0JiMzOTtzIGFkZGluZyBhIG5ldyBzeXNmcyBhdHRyaWJ1dGUsIGBpMmNfYnVzX2N0cmxgLCB0byBgYWR2YV90aW1lY2FyZF94MV9hdHRyc2AuIFRoYXQmIzM5O3MgaW50ZXJlc3RpbmcsIGFuZCBhbHNvLCBpdCBsb29rcyBsaWtlIGByZXF1ZXN0X21vZHVsZSgmIzM0O2kyYy1kZXYmIzM0Oyk7YCBoYXMgYmVlbiBhZGRlZCB0byBgcHRwX29jcF9pbml0KClgLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtIb3cgcmVhY2hhYmxlIGlzIHRoaXMgZHJpdmVyIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/JiMzNDsuCgpHaXZlbiB0aGF0IGBkcml2ZXJzL3B0cC9wdHBfb2NwLmNgIGlzIHNwZWNpZmljYWxseSBmb3IgdGhlIE9wZW4gQ29tcHV0ZSBQcm9qZWN0IFRpbWUgQ2FyZCwgd2hpY2ggaXMgYSBQQ0kgZGV2aWNlLCB0aGUgcXVlc3Rpb24gbm93IGlzIGhvdyBlYXNpbHkgaXQgY2FuIGJlIGVtdWxhdGVkLiBSZWFsaXN0aWNhbGx5LCBjb21wbGV0ZSBlbXVsYXRpb24gaXMgcHJvYmFibHkgYSBwYWluLiBCdXQsIHNpbmNlIGl0ICppcyogUENJLCBpdCBvcGVucyB1cCBzb21lIGF2ZW51ZXMsIHJpZ2h0PyBJJiMzOTttIHRoaW5raW5nIGFib3V0IGZ1enppbmcgdGhpcyBkcml2ZXIuIE5vdywgaWYgSSByZW1lbWJlciBjb3JyZWN0bHksIHN5emthbGxlciBkb2VzIGhhdmUgUENJIGZ1enppbmcgY2FwYWJpbGl0aWVzLCBhbmQgdGhhdCBtaWdodCBiZSBvdXIgYmVzdCByb3V0ZS4KCk9rYXksIGxldCBtZSBqdXN0IGRvdWJsZS1jaGVjayB0aGUgS2NvbmZpZyBlbnRyeSBmb3IgYHB0cF9vY3BgIHRvIG1ha2Ugc3VyZSBmdXp6aW5nIGlzIGFuIG9wdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAwNjowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3B0cF9vY3AmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3B0cC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAwNjowMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNzkwCgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkludmVzdGlnYXRpbmcgdGhlIGBwdHBfb2NwYCBEcml2ZXIgSW1wbGVtZW50YXRpb24qKgoKUmlnaHQsIHNvIEkgbmVlZCB0byBmaW5kIHdoZXJlIHRoaXMgYHB0cF9vY3BgIGRyaXZlciBpcyBkZWZpbmVkLCBvciBhdCBsZWFzdCBob3cgaXQmIzM5O3MgaGFuZGxlZCBpbiB0aGUgYnVpbGQgc3lzdGVtLiBHaXZlbiBpdHMgbGlrZWx5IHJvbGUgaW4gUHJlY2lzaW9uIFRpbWUgUHJvdG9jb2wgKFBUUCksIG15IGZpcnN0IGluc3RpbmN0IGlzIHRvIGNoZWNrIHRoZSB1c3VhbCBzdXNwZWN0cyBpbiB0aGUga2VybmVsIHNvdXJjZSB0cmVlLiBUaGUgb2J2aW91cyBzdGFydGluZyBwb2ludHMgYXJlIHRoZSBgZHJpdmVycy9wdHAvTWFrZWZpbGVgIGFuZCBgZHJpdmVycy9wdHAvS2NvbmZpZ2AgZmlsZXMuIFRoZSBNYWtlZmlsZSBzaG91bGQgaGFuZGxlIHRoZSBkcml2ZXImIzM5O3MgYnVpbGQgcHJvY2VzcywgcG90ZW50aWFsbHkgaW5jbHVkaW5nIGl0IG9yIGV4Y2x1ZGluZyBpdCBiYXNlZCBvbiBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFRoZSBLY29uZmlnIGZpbGUgaXMgd2hlcmUgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGVtc2VsdmVzIGFyZSBkZWZpbmVkLCBsaWtlIGEgYENPTkZJR19QVFBfT0NQYCB3aGljaCBpcyBleGFjdGx5IHdoYXQgSSYjMzk7bSBsb29raW5nIGZvciEgSSYjMzk7bSBleHBlY3RpbmcgdG8gZmluZCBlaXRoZXIgYSBjbGVhciBkZWZpbml0aW9uIG9mIGBwdHBfb2NwYCBpbiB0aGUgTWFrZWZpbGUsIHBvc3NpYmx5IHdpdGggYSBjb3JyZXNwb25kaW5nIGVudHJ5IGluIEtjb25maWcgdG8gY29udHJvbCBpdHMgaW5jbHVzaW9uLCBvciBhdCBsZWFzdCBhIGNvbmRpdGlvbmFsIHN0YXRlbWVudCB0aWVkIHRvIGEgY29uZmlndXJhdGlvbiBzeW1ib2wuIEhvcGVmdWxseSwgaXQmIzM5O3MgYSBzdHJhaWdodGZvcndhcmQgY2FzZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAwNjowMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwdHBfb2NwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9wdHAvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAyMDE5IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL3B0cC9NYWtlZmlsZT0yMD1vYmotJChDT05GSUdfUFRQXzE1ODhfQ0xPQ0tfVk1XKVx0JiM0Mzs9IHB0cF92bXcub1xuZHJpdmVycy9wdHAvTWFrZWZpbGU6MjE6b2JqLSQoQ09ORklHX1BUUF8xNTg4X0NMT0NLX09DUClcdCYjNDM7PSBwdHBfb2NwLm9cbmRyaXZlcnMvcHRwL01ha2VmaWxlLTIyLW9iai0kKENPTkZJR19QVFBfREZMX1RPRClcdFx0JiM0Mzs9IHB0cF9kZmxfdG9kLm9cbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM9NDQ9c3RydWN0IG9jcF9yZWcge1xuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02OC1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo2OTpzdHJ1Y3QgcHRwX29jcF9zZXJ2b19jb25mIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy03MC1cdHUzMlx0c2Vydm9fb2Zmc2V0X3A7XG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTc3LSAqIENvbWJpbmVkIHNlcnZvICYjNDM7IGJvYXJkLXZhcmlhbnQgcGFyYW1ldGVycyBmb3IgQURWQSBib2FyZHMuXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6Nzg6ICogRW1iZWRkZWQgaW4gdGhlIHJlc291cmNlIHRhYmxlIC5leHRyYSBzbyBhIHNpbmdsZSBwdHBfb2NwX2FkdmFfYm9hcmRfaW5pdCgpXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzktICogY2FuIGhhbmRsZSBib3RoIEFEVkEgYW5kIEFEVkEtWDEgd2l0aG91dCBwZXItdmFyaWFudCBpbml0IGZ1bmN0aW9ucy5cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04MC0gKi9cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4MTpzdHJ1Y3QgcHRwX29jcF9hZHZhX2luZm8ge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjgyOlx0c3RydWN0IHB0cF9vY3Bfc2Vydm9fY29uZlx0c2Vydm87XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODMtXHR1MzJcdFx0XHRcdGZsYXNoX3N0YXJ0O1xuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYz0yMzY9c3RydWN0IGJvYXJkX2NvbmZpZ19yZWcge1xuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yNDQtXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MjQ1OnN0cnVjdCBwdHBfb2NwX2ZsYXNoX2luZm8ge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTI0Ni1cdGNvbnN0IGNoYXIgKm5hbWU7XG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTI1MS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoyNTI6c3RydWN0IHB0cF9vY3BfZmlybXdhcmVfaGVhZGVyIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yNTMtXHRjaGFyIG1hZ2ljWzRdO1xuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yNjItXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MjYzOnN0cnVjdCBwdHBfb2NwX2kyY19pbmZvIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yNjQtXHRjb25zdCBjaGFyICpuYW1lO1xuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yNjktXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MjcwOnN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yNzEtXHRpbnQgaW5kZXg7XG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTI3NS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoyNzY6c3RydWN0IHB0cF9vY3BfZXh0X3NyYyB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMjc3LVx0dm9pZCBfX2lvbWVtXHRcdCptZW07XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6Mjc4Olx0c3RydWN0IHB0cF9vY3BcdFx0KmJwO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjI3OTpcdHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvXHQqaW5mbztcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yODAtXHRpbnRcdFx0XHRpcnFfdmVjO1xuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yODItXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MjgzOmVudW0gcHRwX29jcF9zbWFfbW9kZSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMjg0LVx0U01BX01PREVfSU4sXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTI4Ny1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoyODg6c3RhdGljIHN0cnVjdCBkcGxsX3Bpbl9mcmVxdWVuY3kgcHRwX29jcF9zbWFfZnJlcVtdID0ge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTI4OS1cdERQTExfUElOX0ZSRVFVRU5DWV8xUFBTLFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yOTQtXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6Mjk1OnN0cnVjdCBwdHBfb2NwX3NtYV9jb25uZWN0b3Ige1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjI5NjpcdGVudW1cdHB0cF9vY3Bfc21hX21vZGUgbW9kZTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yOTctXHRib29sXHRmaXhlZF9mY247XG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jPTMxNz1zdHJ1Y3Qgb2NwX3NtYV9vcCB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzE4LVx0Y29uc3Qgc3RydWN0IG9jcF9zZWxlY3RvciAqdGJsWzJdO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjMxOTpcdHZvaWQgKCppbml0KShzdHJ1Y3QgcHRwX29jcCAqYnApO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjMyMDpcdHUzMiAoKmdldCkoc3RydWN0IHB0cF9vY3AgKmJwLCBpbnQgc21hX25yKTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozMjE6XHRpbnQgKCpzZXRfaW5wdXRzKShzdHJ1Y3QgcHRwX29jcCAqYnAsIGludCBzbWFfbnIsIHUzMiB2YWwpO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjMyMjpcdGludCAoKnNldF9vdXRwdXQpKHN0cnVjdCBwdHBfb2NwICpicCwgaW50IHNtYV9uciwgdTMyIHZhbCk7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzIzLX07XG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTMyOC1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozMjk6c3RydWN0IHB0cF9vY3Bfc2lnbmFsIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0zMzAtXHRrdGltZV90XHRcdHBlcmlvZDtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzM4LVxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjMzOTpzdHJ1Y3QgcHRwX29jcF9zZXJpYWxfcG9ydCB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzQwLVx0aW50IGxpbmU7XG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jPTM1MD1lbnVtIHtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzU4LVxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjM1OTpzdHJ1Y3QgcHRwX29jcCB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzYwLVx0c3RydWN0IHBjaV9kZXZcdFx0KnBkZXY7XG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTM3Ni1cdHN0cnVjdCBmcmVxdWVuY3lfcmVnXHRfX2lvbWVtICpmcmVxX2luW09DUF9GUkVRX05VTV07XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6Mzc3Olx0c3RydWN0IHB0cF9vY3BfZXh0X3NyY1x0KnNpZ25hbF9vdXRbT0NQX1NJR05BTF9OVU1dO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjM3ODpcdHN0cnVjdCBwdHBfb2NwX2V4dF9zcmNcdCpwcHM7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6Mzc5Olx0c3RydWN0IHB0cF9vY3BfZXh0X3NyY1x0KnRzMDtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozODA6XHRzdHJ1Y3QgcHRwX29jcF9leHRfc3JjXHQqdHMxO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjM4MTpcdHN0cnVjdCBwdHBfb2NwX2V4dF9zcmNcdCp0czI7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MzgyOlx0c3RydWN0IHB0cF9vY3BfZXh0X3NyY1x0KnRzMztcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozODM6XHRzdHJ1Y3QgcHRwX29jcF9leHRfc3JjXHQqdHM0O1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTM4NC1cdHN0cnVjdCBvY3BfYXJ0X2dwaW9fcmVnIF9faW9tZW0gKmFydF9zbWE7XG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTM5Mi1cdGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKiphdHRyX2dyb3VwO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjM5MzpcdGNvbnN0IHN0cnVjdCBwdHBfb2NwX2VlcHJvbV9tYXAgKmVlcHJvbV9tYXA7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzk0LVx0c3RydWN0IGRlbnRyeVx0XHQqZGVidWdfcm9vdDtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzk5LVx0aW50XHRcdFx0bl9pcnFzO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQwMDpcdHN0cnVjdCBwdHBfb2NwX3NlcmlhbF9wb3J0XHRwb3J0W19fUE9SVF9DT1VOVF07XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNDAxLVx0Ym9vbFx0XHRcdGZ3X2xvYWRlcjtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNDExLVx0dTY0XHRcdFx0ZndfY2FwO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQxMjpcdHN0cnVjdCBwdHBfb2NwX3NpZ25hbFx0c2lnbmFsW09DUF9TSUdOQUxfTlVNXTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0MTM6XHRzdHJ1Y3QgcHRwX29jcF9zbWFfY29ubmVjdG9yIHNtYVtPQ1BfU01BX05VTV07XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNDE0LVx0Y29uc3Qgc3RydWN0IG9jcF9zbWFfb3AgKnNtYV9vcDtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM9NDI0PXN0cnVjdCBvY3BfcmVzb3VyY2Uge1xuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00MjctXHRpbnQgaXJxX3ZlYztcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0Mjg6XHRpbnQgKCpzZXR1cCkoc3RydWN0IHB0cF9vY3AgKmJwLCBzdHJ1Y3Qgb2NwX3Jlc291cmNlICpyKTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00MjktXHR2b2lkICpleHRyYTtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNDMzLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQzNDpzdGF0aWMgaW50IHB0cF9vY3BfcmVnaXN0ZXJfbWVtKHN0cnVjdCBwdHBfb2NwICpicCwgc3RydWN0IG9jcF9yZXNvdXJjZSAqcik7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NDM1OnN0YXRpYyBpbnQgcHRwX29jcF9yZWdpc3Rlcl9pMmMoc3RydWN0IHB0cF9vY3AgKmJwLCBzdHJ1Y3Qgb2NwX3Jlc291cmNlICpyKTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0MzY6c3RhdGljIGludCBwdHBfb2NwX3JlZ2lzdGVyX3NwaShzdHJ1Y3QgcHRwX29jcCAqYnAsIHN0cnVjdCBvY3BfcmVzb3VyY2UgKnIpO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQzNzpzdGF0aWMgaW50IHB0cF9vY3BfcmVnaXN0ZXJfc2VyaWFsKHN0cnVjdCBwdHBfb2NwICpicCwgc3RydWN0IG9jcF9yZXNvdXJjZSAqcik7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NDM4OnN0YXRpYyBpbnQgcHRwX29jcF9yZWdpc3Rlcl9leHQoc3RydWN0IHB0cF9vY3AgKmJwLCBzdHJ1Y3Qgb2NwX3Jlc291cmNlICpyKTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0Mzk6c3RhdGljIGludCBwdHBfb2NwX2ZiX2JvYXJkX2luaXQoc3RydWN0IHB0cF9vY3AgKmJwLCBzdHJ1Y3Qgb2NwX3Jlc291cmNlICpyKTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0NDA6c3RhdGljIGlycXJldHVybl90IHB0cF9vY3BfdHNfaXJxKGludCBpcnEsIHZvaWQgKnByaXYpO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQ0MTpzdGF0aWMgaXJxcmV0dXJuX3QgcHRwX29jcF9zaWduYWxfaXJxKGludCBpcnEsIHZvaWQgKnByaXYpO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQ0MjpzdGF0aWMgaW50IHB0cF9vY3BfdHNfZW5hYmxlKHZvaWQgKnByaXYsIHUzMiByZXEsIGJvb2wgZW5hYmxlKTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0NDM6c3RhdGljIGludCBwdHBfb2NwX3NpZ25hbF9mcm9tX3Blcm91dChzdHJ1Y3QgcHRwX29jcCAqYnAsIGludCBnZW4sXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNDQ0LVx0XHRcdFx0ICAgICAgc3RydWN0IHB0cF9wZXJvdXRfcmVxdWVzdCAqcmVxKTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0NDU6c3RhdGljIGludCBwdHBfb2NwX3NpZ25hbF9lbmFibGUodm9pZCAqcHJpdiwgdTMyIHJlcSwgYm9vbCBlbmFibGUpO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQ0NjpzdGF0aWMgaW50IHB0cF9vY3Bfc21hX3N0b3JlKHN0cnVjdCBwdHBfb2NwICpicCwgY29uc3QgY2hhciAqYnVmLCBpbnQgc21hX25yKTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00NDctXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NDQ4OnN0YXRpYyBpbnQgcHRwX29jcF9hcnRfYm9hcmRfaW5pdChzdHJ1Y3QgcHRwX29jcCAqYnAsIHN0cnVjdCBvY3BfcmVzb3VyY2UgKnIpO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQ0OS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0NTA6c3RhdGljIGludCBwdHBfb2NwX2FkdmFfYm9hcmRfaW5pdChzdHJ1Y3QgcHRwX29jcCAqYnAsIHN0cnVjdCBvY3BfcmVzb3VyY2UgKnIpO1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQ1MS1cbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM9NDYxPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2NwX2F0dHJfZ3JvdXAgYWR2YV90aW1lY2FyZF94MV9ncm91cHNbXTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00NjItXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NDYzOnN0cnVjdCBwdHBfb2NwX2VlcHJvbV9tYXAge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQ2NC1cdHUxNlx0b2ZmO1xuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00NzEtXHQub2ZmID0gYWRkcixcdFx0XHRcdFx0XHRcXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQ3MjpcdC5sZW4gPSBzaXplb2ZfZmllbGQoc3RydWN0IHB0cF9vY3AsIG1lbWJlciksXHRcdFxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NDczOlx0LmJwX29mZnNldCA9IG9mZnNldG9mKHN0cnVjdCBwdHBfb2NwLCBtZW1iZXIpXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNDc0LVxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00NzgtXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NDc5OnN0YXRpYyBzdHJ1Y3QgcHRwX29jcF9lZXByb21fbWFwIGZiX2VlcHJvbV9tYXBbXSA9IHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00ODAtXHR7IEVFUFJPTV9FTlRSWSgweDQzLCBib2FyZF9pZCkgfSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNDg0LVxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQ4NTpzdGF0aWMgc3RydWN0IHB0cF9vY3BfZWVwcm9tX21hcCBhcnRfZWVwcm9tX21hcFtdID0ge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQ4Ni1cdHsgRUVQUk9NX0VOVFJZKDB4MjAwICYjNDM7IDB4NDMsIGJvYXJkX2lkKSB9LFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00OTYtI2RlZmluZSBPQ1BfUkVTX0xPQ0FUSU9OKG1lbWJlcikgXFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0OTc6XHQubmFtZSA9ICNtZW1iZXIsIC5icF9vZmZzZXQgPSBvZmZzZXRvZihzdHJ1Y3QgcHRwX29jcCwgbWVtYmVyKVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQ5OC1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00OTktI2RlZmluZSBPQ1BfTUVNX1JFU09VUkNFKG1lbWJlcikgXFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1MDA6XHRPQ1BfUkVTX0xPQ0FUSU9OKG1lbWJlciksIC5zZXR1cCA9IHB0cF9vY3BfcmVnaXN0ZXJfbWVtXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTAxLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTUwMi0jZGVmaW5lIE9DUF9TRVJJQUxfUkVTT1VSQ0UobWVtYmVyKSBcXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjUwMzpcdE9DUF9SRVNfTE9DQVRJT04obWVtYmVyKSwgLnNldHVwID0gcHRwX29jcF9yZWdpc3Rlcl9zZXJpYWxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01MDQtXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTA1LSNkZWZpbmUgT0NQX0kyQ19SRVNPVVJDRShtZW1iZXIpIFxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTA2Olx0T0NQX1JFU19MT0NBVElPTihtZW1iZXIpLCAuc2V0dXAgPSBwdHBfb2NwX3JlZ2lzdGVyX2kyY1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTUwNy1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01MDgtI2RlZmluZSBPQ1BfU1BJX1JFU09VUkNFKG1lbWJlcikgXFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1MDk6XHRPQ1BfUkVTX0xPQ0FUSU9OKG1lbWJlciksIC5zZXR1cCA9IHB0cF9vY3BfcmVnaXN0ZXJfc3BpXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTEwLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTUxMS0jZGVmaW5lIE9DUF9FWFRfUkVTT1VSQ0UobWVtYmVyKSBcXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjUxMjpcdE9DUF9SRVNfTE9DQVRJT04obWVtYmVyKSwgLnNldHVwID0gcHRwX29jcF9yZWdpc3Rlcl9leHRcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01MTMtXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jPTU0MT1zdGF0aWMgc3RydWN0IG9jcF9yZXNvdXJjZSBvY3BfZmJfcmVzb3VyY2VbXSA9IHtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTQ4LVx0XHQub2Zmc2V0ID0gMHgwMTAxMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTQ5Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01NTAtXHRcdFx0LmluZGV4ID0gMCxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1NTE6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1NTI6XHRcdFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTU1My1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTU3LVx0XHQub2Zmc2V0ID0gMHgwMTAyMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDIsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTU4Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01NTktXHRcdFx0LmluZGV4ID0gMSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1NjA6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1NjE6XHRcdFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTU2Mi1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTY2LVx0XHQub2Zmc2V0ID0gMHgwMTA2MDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDYsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTY3Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01NjgtXHRcdFx0LmluZGV4ID0gMixcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1Njk6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1NzA6XHRcdFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTU3MS1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTc1LVx0XHQub2Zmc2V0ID0gMHgwMTExMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDE1LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjU3NjpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTc3LVx0XHRcdC5pbmRleCA9IDMsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTc4Olx0XHRcdC5pcnFfZmNuID0gcHRwX29jcF90c19pcnEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTc5Olx0XHRcdC5lbmFibGUgPSBwdHBfb2NwX3RzX2VuYWJsZSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01ODAtXHRcdH0sXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTU4NC1cdFx0Lm9mZnNldCA9IDB4MDExMjAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAxNixcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1ODU6XHRcdC5leHRyYSA9IFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTU4Ni1cdFx0XHQuaW5kZXggPSA0LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjU4NzpcdFx0XHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjU4ODpcdFx0XHQuZW5hYmxlID0gcHRwX29jcF90c19lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTg5LVx0XHR9LFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01OTQtXHRcdC5vZmZzZXQgPSAweDAxMEMwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMCxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1OTU6XHRcdC5leHRyYSA9IFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTU5Ni1cdFx0XHQuaW5kZXggPSA1LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjU5NzpcdFx0XHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjU5ODpcdFx0XHQuZW5hYmxlID0gcHRwX29jcF90c19lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTk5LVx0XHR9LFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02MDMtXHRcdC5vZmZzZXQgPSAweDAxMEQwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMTEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NjA0Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02MDUtXHRcdFx0LmluZGV4ID0gMSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo2MDY6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3NpZ25hbF9pcnEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NjA3Olx0XHRcdC5lbmFibGUgPSBwdHBfb2NwX3NpZ25hbF9lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNjA4LVx0XHR9LFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02MTItXHRcdC5vZmZzZXQgPSAweDAxMEUwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMTIsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NjEzOlx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02MTQtXHRcdFx0LmluZGV4ID0gMixcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo2MTU6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3NpZ25hbF9pcnEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NjE2Olx0XHRcdC5lbmFibGUgPSBwdHBfb2NwX3NpZ25hbF9lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNjE3LVx0XHR9LFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02MjEtXHRcdC5vZmZzZXQgPSAweDAxMEYwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMTMsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NjIyOlx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02MjMtXHRcdFx0LmluZGV4ID0gMyxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo2MjQ6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3NpZ25hbF9pcnEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NjI1Olx0XHRcdC5lbmFibGUgPSBwdHBfb2NwX3NpZ25hbF9lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNjI2LVx0XHR9LFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02MzAtXHRcdC5vZmZzZXQgPSAweDAxMTAwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMTQsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NjMxOlx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02MzItXHRcdFx0LmluZGV4ID0gNCxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo2MzM6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3NpZ25hbF9pcnEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NjM0Olx0XHRcdC5lbmFibGUgPSBwdHBfb2NwX3NpZ25hbF9lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNjM1LVx0XHR9LFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02ODctXHRcdC5vZmZzZXQgPSAweDAwMTUwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gNyxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo2ODg6XHRcdC5leHRyYSA9IFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9pMmNfaW5mbykge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTY4OS1cdFx0XHQubmFtZSA9IFwmIzM0O3hpaWMtaTJjXCYjMzQ7LFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy03MDQtXHRcdC5vZmZzZXQgPSAweDAwMTYwMDAwICYjNDM7IDB4MTAwMCwgLmlycV92ZWMgPSAzLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjcwNTpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX3NlcmlhbF9wb3J0KSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzA2LVx0XHRcdC5iYXVkID0gMTE1MjAwLFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy03MTEtXHRcdC5vZmZzZXQgPSAweDAwMTcwMDAwICYjNDM7IDB4MTAwMCwgLmlycV92ZWMgPSA0LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjcxMjpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX3NlcmlhbF9wb3J0KSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzEzLVx0XHRcdC5iYXVkID0gMTE1MjAwLFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy03MTgtXHRcdC5vZmZzZXQgPSAweDAwMTgwMDAwICYjNDM7IDB4MTAwMCwgLmlycV92ZWMgPSA1LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjcxOTpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX3NlcmlhbF9wb3J0KSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzIwLVx0XHRcdC5iYXVkID0gNTc2MDAsXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTcyOS1cdFx0Lm9mZnNldCA9IDB4MDAzMTAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSA5LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjczMDpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2ZsYXNoX2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy03MzEtXHRcdFx0Lm5hbWUgPSBcJiMzNDt4aWxpbnhfc3BpXCYjMzQ7LCAucGNpX29mZnNldCA9IDAsXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTc2MC1cdHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo3NjE6XHRcdC5zZXR1cCA9IHB0cF9vY3BfZmJfYm9hcmRfaW5pdCxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo3NjI6XHRcdC5leHRyYSA9IFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9zZXJ2b19jb25mKSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzYzLVx0XHRcdC5zZXJ2b19vZmZzZXRfcCA9IDB4MjAwMCxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM9NzgyPXN0YXRpYyBzdHJ1Y3Qgb2NwX3Jlc291cmNlIG9jcF9hcnRfcmVzb3VyY2VbXSA9IHtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzg5LVx0XHQub2Zmc2V0ID0gMHgwMDE2MDAwMCAmIzQzOyAweDEwMDAsIC5pcnFfdmVjID0gMyxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo3OTA6XHRcdC5leHRyYSA9IFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9zZXJpYWxfcG9ydCkge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTc5MS1cdFx0XHQuYmF1ZCA9IDExNTIwMCxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODAxLVx0XHQub2Zmc2V0ID0gMHgzNjAwMDAsIC5zaXplID0gMHgyMCwgLmlycV92ZWMgPSAxMixcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4MDI6XHRcdC5leHRyYSA9IFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTgwMy1cdFx0XHQuaW5kZXggPSAwLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjgwNDpcdFx0XHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjgwNTpcdFx0XHQuZW5hYmxlID0gcHRwX29jcF90c19lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODA2LVx0XHR9LFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04MTAtXHRcdC5vZmZzZXQgPSAweDM4MDAwMCwgLnNpemUgPSAweDIwLCAuaXJxX3ZlYyA9IDgsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODExOlx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04MTItXHRcdFx0LmluZGV4ID0gMSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4MTM6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4MTQ6XHRcdFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTgxNS1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODE5LVx0XHQub2Zmc2V0ID0gMHgzOTAwMDAsIC5zaXplID0gMHgyMCwgLmlycV92ZWMgPSAxMCxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4MjA6XHRcdC5leHRyYSA9IFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTgyMS1cdFx0XHQuaW5kZXggPSAyLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjgyMjpcdFx0XHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjgyMzpcdFx0XHQuZW5hYmxlID0gcHRwX29jcF90c19lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODI0LVx0XHR9LFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04MjgtXHRcdC5vZmZzZXQgPSAweDNBMDAwMCwgLnNpemUgPSAweDIwLCAuaXJxX3ZlYyA9IDE0LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjgyOTpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODMwLVx0XHRcdC5pbmRleCA9IDMsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODMxOlx0XHRcdC5pcnFfZmNuID0gcHRwX29jcF90c19pcnEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODMyOlx0XHRcdC5lbmFibGUgPSBwdHBfb2NwX3RzX2VuYWJsZSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04MzMtXHRcdH0sXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTgzNy1cdFx0Lm9mZnNldCA9IDB4M0IwMDAwLCAuc2l6ZSA9IDB4MjAsIC5pcnFfdmVjID0gMTUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODM4Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04MzktXHRcdFx0LmluZGV4ID0gNCxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4NDA6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4NDE6XHRcdFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTg0Mi1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODQ3LVx0XHQub2Zmc2V0ID0gMHgwMDMzMDAwMCwgLnNpemUgPSAweDIwLCAuaXJxX3ZlYyA9IDExLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjg0ODpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODQ5LVx0XHRcdC5pbmRleCA9IDUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODUwOlx0XHRcdC5pcnFfZmNuID0gcHRwX29jcF90c19pcnEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODUxOlx0XHRcdC5lbmFibGUgPSBwdHBfb2NwX3RzX2VuYWJsZSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04NTItXHRcdH0sXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTg1Ni1cdFx0Lm9mZnNldCA9IDB4MDAzMTAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSA5LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjg1NzpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2ZsYXNoX2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04NTgtXHRcdFx0Lm5hbWUgPSBcJiMzNDtzcGlfYWx0ZXJhXCYjMzQ7LCAucGNpX29mZnNldCA9IDAsXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTg3MS1cdFx0Lm9mZnNldCA9IDB4MzUwMDAwLCAuc2l6ZSA9IDB4MTAwLCAuaXJxX3ZlYyA9IDQsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODcyOlx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfaTJjX2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04NzMtXHRcdFx0Lm5hbWUgPSBcJiMzNDtvY29yZXMtaTJjXCYjMzQ7LFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04ODgtXHRcdC5vZmZzZXQgPSAweDAwMTkwMDAwLCAuaXJxX3ZlYyA9IDcsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODg5Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3Bfc2VyaWFsX3BvcnQpIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04OTAtXHRcdFx0LmJhdWQgPSA5NjAwLFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04OTctXHR7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODk4Olx0XHQuc2V0dXAgPSBwdHBfb2NwX2FydF9ib2FyZF9pbml0LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjg5OTpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX3NlcnZvX2NvbmYpIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy05MDAtXHRcdFx0LnNlcnZvX29mZnNldF9wID0gMHgyMDAwLFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYz05MDk9c3RhdGljIHN0cnVjdCBvY3BfcmVzb3VyY2Ugb2NwX2FkdmFfcmVzb3VyY2VbXSA9IHtcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTE2LVx0XHQub2Zmc2V0ID0gMHgwMTAxMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6OTE3Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy05MTgtXHRcdFx0LmluZGV4ID0gMCxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo5MTk6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo5MjA6XHRcdFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTkyMS1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTI1LVx0XHQub2Zmc2V0ID0gMHgwMTAyMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDIsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6OTI2Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy05MjctXHRcdFx0LmluZGV4ID0gMSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo5Mjg6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo5Mjk6XHRcdFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTkzMC1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTM0LVx0XHQub2Zmc2V0ID0gMHgwMTA2MDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDYsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6OTM1Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy05MzYtXHRcdFx0LmluZGV4ID0gMixcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo5Mzc6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo5Mzg6XHRcdFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTkzOS1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTQ0LVx0XHQub2Zmc2V0ID0gMHgwMTBDMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDAsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6OTQ1Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy05NDYtXHRcdFx0LmluZGV4ID0gNSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo5NDc6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo5NDg6XHRcdFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTk0OS1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTUzLVx0XHQub2Zmc2V0ID0gMHgwMTBEMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDExLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjk1NDpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTU1LVx0XHRcdC5pbmRleCA9IDEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6OTU2Olx0XHRcdC5pcnFfZmNuID0gcHRwX29jcF9zaWduYWxfaXJxLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjk1NzpcdFx0XHQuZW5hYmxlID0gcHRwX29jcF9zaWduYWxfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTk1OC1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTYyLVx0XHQub2Zmc2V0ID0gMHgwMTBFMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDEyLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjk2MzpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTY0LVx0XHRcdC5pbmRleCA9IDIsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6OTY1Olx0XHRcdC5pcnFfZmNuID0gcHRwX29jcF9zaWduYWxfaXJxLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjk2NjpcdFx0XHQuZW5hYmxlID0gcHRwX29jcF9zaWduYWxfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTk2Ny1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTk5LVx0XHQub2Zmc2V0ID0gMHgwMDE2MDAwMCAmIzQzOyAweDEwMDAsIC5pcnFfdmVjID0gMyxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMDAwOlx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3Bfc2VyaWFsX3BvcnQpIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMDAxLVx0XHRcdC5iYXVkID0gOTYwMCxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTAwNi1cdFx0Lm9mZnNldCA9IDB4MDAxODAwMDAgJiM0MzsgMHgxMDAwLCAuaXJxX3ZlYyA9IDUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTAwNzpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX3NlcmlhbF9wb3J0KSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTAwOC1cdFx0XHQuYmF1ZCA9IDExNTIwMCxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTAyMS1cdFx0Lm9mZnNldCA9IDB4MDAzMTA0MDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSA5LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEwMjI6XHRcdC5leHRyYSA9IFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9mbGFzaF9pbmZvKSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTAyMy1cdFx0XHQubmFtZSA9IFwmIzM0O3NwaV9hbHRlcmFcJiMzNDssIC5wY2lfb2Zmc2V0ID0gMCxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTAzNi1cdFx0Lm9mZnNldCA9IDB4MTUwMDAwLCAuc2l6ZSA9IDB4MTAwLCAuaXJxX3ZlYyA9IDcsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTAzNzpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2kyY19pbmZvKSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTAzOC1cdFx0XHQubmFtZSA9IFwmIzM0O29jb3Jlcy1pMmNcJiMzNDssXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEwNTUtXHR7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTA1NjpcdFx0LnNldHVwID0gcHRwX29jcF9hZHZhX2JvYXJkX2luaXQsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTA1NzpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2FkdmFfaW5mbykge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEwNTgtXHRcdFx0LnNlcnZvID0ge1xuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYz0xMDc0PXN0YXRpYyBzdHJ1Y3Qgb2NwX3Jlc291cmNlIG9jcF9hZHZhX3gxX3Jlc291cmNlW10gPSB7XG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEwODEtXHRcdC5vZmZzZXQgPSAweDAxMDEwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMDgyOlx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMDgzLVx0XHRcdC5pbmRleCA9IDAsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTA4NDpcdFx0XHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEwODU6XHRcdFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEwODYtXHRcdH0sXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEwOTAtXHRcdC5vZmZzZXQgPSAweDAxMDIwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMixcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMDkxOlx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMDkyLVx0XHRcdC5pbmRleCA9IDEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTA5MzpcdFx0XHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEwOTQ6XHRcdFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEwOTUtXHRcdH0sXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEwOTktXHRcdC5vZmZzZXQgPSAweDAxMDYwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gNixcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTAwOlx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTAxLVx0XHRcdC5pbmRleCA9IDIsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTEwMjpcdFx0XHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjExMDM6XHRcdFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTExMDQtXHRcdH0sXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTExMDgtXHRcdC5vZmZzZXQgPSAweDAxMTEwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMTUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTEwOTpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTExMC1cdFx0XHQuaW5kZXggPSAzLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjExMTE6XHRcdFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTEyOlx0XHRcdC5lbmFibGUgPSBwdHBfb2NwX3RzX2VuYWJsZSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTEzLVx0XHR9LFxuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTE3LVx0XHQub2Zmc2V0ID0gMHgwMTEyMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDE2LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjExMTg6XHRcdC5leHRyYSA9IFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTExMTktXHRcdFx0LmluZGV4ID0gNCxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTIwOlx0XHRcdC5pcnFfZmNuID0gcHRwX29jcF90c19pcnEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTEyMTpcdFx0XHQuZW5hYmxlID0gcHRwX29jcF90c19lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTEyMi1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTEyNy1cdFx0Lm9mZnNldCA9IDB4MDEwQzAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAwLFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjExMjg6XHRcdC5leHRyYSA9IFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTExMjktXHRcdFx0LmluZGV4ID0gNSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTMwOlx0XHRcdC5pcnFfZmNuID0gcHRwX29jcF90c19pcnEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTEzMTpcdFx0XHQuZW5hYmxlID0gcHRwX29jcF90c19lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTEzMi1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTEzNi1cdFx0Lm9mZnNldCA9IDB4MDEwRDAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAxMSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTM3Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTM4LVx0XHRcdC5pbmRleCA9IDEsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTEzOTpcdFx0XHQuaXJxX2ZjbiA9IHB0cF9vY3Bfc2lnbmFsX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTQwOlx0XHRcdC5lbmFibGUgPSBwdHBfb2NwX3NpZ25hbF9lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTE0MS1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTE0NS1cdFx0Lm9mZnNldCA9IDB4MDEwRTAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAxMixcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTQ2Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTQ3LVx0XHRcdC5pbmRleCA9IDIsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTE0ODpcdFx0XHQuaXJxX2ZjbiA9IHB0cF9vY3Bfc2lnbmFsX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTQ5Olx0XHRcdC5lbmFibGUgPSBwdHBfb2NwX3NpZ25hbF9lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTE1MC1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTE1NC1cdFx0Lm9mZnNldCA9IDB4MDEwRjAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAxMyxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTU1Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTU2LVx0XHRcdC5pbmRleCA9IDMsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTE1NzpcdFx0XHQuaXJxX2ZjbiA9IHB0cF9vY3Bfc2lnbmFsX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTU4Olx0XHRcdC5lbmFibGUgPSBwdHBfb2NwX3NpZ25hbF9lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTE1OS1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTE2My1cdFx0Lm9mZnNldCA9IDB4MDExMDAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAxNCxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTY0Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTY1LVx0XHRcdC5pbmRleCA9IDQsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTE2NjpcdFx0XHQuaXJxX2ZjbiA9IHB0cF9vY3Bfc2lnbmFsX2lycSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTY3Olx0XHRcdC5lbmFibGUgPSBwdHBfb2NwX3NpZ25hbF9lbmFibGUsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTE2OC1cdFx0fSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTIwMC1cdFx0Lm9mZnNldCA9IDB4MDAxNjAwMDAgJiM0MzsgMHgxMDAwLCAuaXJxX3ZlYyA9IDMsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTIwMTpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX3NlcmlhbF9wb3J0KSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTIwMi1cdFx0XHQuYmF1ZCA9IDk2MDAsXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEyMDctXHRcdC5vZmZzZXQgPSAweDAwMTgwMDAwICYjNDM7IDB4MTAwMCwgLmlycV92ZWMgPSA1LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEyMDg6XHRcdC5leHRyYSA9IFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9zZXJpYWxfcG9ydCkge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEyMDktXHRcdFx0LmJhdWQgPSAxMTUyMDAsXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEyMzAtXHRcdC5vZmZzZXQgPSAweDAwMzEwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gOSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMjMxOlx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfZmxhc2hfaW5mbykge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEyMzItXHRcdFx0Lm5hbWUgPSBcJiMzNDt4aWxpbnhfc3BpXCYjMzQ7LCAucGNpX29mZnNldCA9IDAsXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEyNDctXHRcdC5vZmZzZXQgPSAweDAwMTUwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gNyxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMjQ4Olx0XHQuZXh0cmEgPSBcdTAwMjYoc3RydWN0IHB0cF9vY3BfaTJjX2luZm8pIHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMjQ5LVx0XHRcdC5uYW1lID0gXCYjMzQ7eGlpYy1pMmNcJiMzNDssXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEyNjItXHR7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTI2MzpcdFx0LnNldHVwID0gcHRwX29jcF9hZHZhX2JvYXJkX2luaXQsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTI2NDpcdFx0LmV4dHJhID0gXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2FkdmFfaW5mbykge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEyNjUtXHRcdFx0LnNlcnZvID0ge1xuLS1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMjgwLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEyODE6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHB0cF9vY3BfcGNpZGV2X2lkW10gPSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTI4Mi1cdHsgUENJX0RFVklDRV9EQVRBKE1FVEEsIFRJTUVDQVJELCBcdTAwMjZvY3BfZmJfcmVzb3VyY2UpIH0sXG4tLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEyODgtfTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMjg5Ok1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBwdHBfb2NwX3BjaWRldl9pZCk7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTI5MC1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMjkxOnN0YXRpYyBERUZJTkVfTVVURVgocHRwX29jcF9sb2NrKTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMjkyOnN0YXRpYyBERUZJTkVfSURSKHB0cF9vY3BfaWRyKTtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMjkzLVxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEyOTQ6c3RhdGljIGNvbnN0IHN0cnVjdCBvY3Bfc2VsZWN0b3IgcHRwX29jcF9jbG9ja1tdID0ge1xuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEyOTUtXHR7IC5uYW1lID0gXCYjMzQ7Tk9ORVwmIzM0OyxcdC52YWx1ZSA9IDAgfSxcbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTMxMC1cbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMzExOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2NwX3NlbGVjdG9yIHB0cF9vY3Bfc21hX2luW10gPSB7XG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTMxMi1cdHsgLm5hbWUgPSBcJiMzNDsxME1oelwmIzM0OywgIC52YWx1ZSA9IDB4MDAwMCwgICAgICAuZnJlcXVlbmN5ID0gMTAwMDAwMDAgfSxcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDA2OjAyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE3MDY2CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogODYwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoIEZ1enppbmcgRGVjaXNpb246IFVuY2VydGFpbiwgTGVhbmluZyBUb3dhcmRzICYjMzQ7Tm8mIzM0OyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgdGhlIGBDT05GSUdfUFRQXzE1ODhfQ0xPQ0tfT0NQYCBjb25maWcuIEl0IGFkZHMgYHJlcXVlc3RfbW9kdWxlKCYjMzQ7aTJjLWRldiYjMzQ7KTtgIHRvIGBwdHBfb2NwX2luaXQoKWAgYW5kIGEgc3lzZnMgYXR0cmlidXRlLCBgaTJjX2J1c19jdHJsYCwgdGhhdCByZWFkcyBhbmQgd3JpdGVzIHRvIGBicC0mZ3Q7cHBzX3NlbGVjdC0mZ3Q7X19wYWQxYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCAmIzM0O0lzIHRoaXMgZXZlbiB3b3J0aCBmdXp6aW5nPyYjMzQ7CgpTeXprYWxsZXIgKmNhbiogZnV6eiBzeXNmcyBhdHRyaWJ1dGVzLCB0aGF0JiMzOTtzIGEga25vd24uIEJ1dCwgdW5sZXNzIHRoZXJlIGFyZSBkZXZpY2UgZGVzY3JpcHRpb25zIG9yIHRoZSBnZW5lcmljIHN5c2ZzIGZ1enplciBpcyB1c2VkLCBpdCBkb2VzbiYjMzk7dCB0YXJnZXQgc3BlY2lmaWMgUENJIGRldmljZXMgYnkgdGhlaXIgc3lzZnMgYXR0cmlidXRlcy4gVGhlIGNvZGUgaXRzZWxmIGlzIHJlYWxseSBzaW1wbGUgdGhvdWdoLiBXZSYjMzk7cmUgdGFsa2luZyBhIHRyaXZpYWwgc3lzZnMgcmVhZC93cml0ZSB3cmFwcGVyIGFyb3VuZCBhbiBNTUlPIHJlZ2lzdGVyOgoKYGBgYwpzdGF0aWMgc3NpemVfdAppMmNfYnVzX2N0cmxfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCnsKCXN0cnVjdCBwdHBfb2NwICpicCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwoKCWlmICghYnAtJmd0O3Bwc19zZWxlY3QpCgkJcmV0dXJuIC1FTk9ERVY7CglyZXR1cm4gc3lzZnNfZW1pdChidWYsICYjMzQ7MHglMDh4XG4mIzM0OywKCQkJICBpb3JlYWQzMigmYW1wO2JwLSZndDtwcHNfc2VsZWN0LSZndDtfX3BhZDEpKTsKfQoKc3RhdGljIHNzaXplX3QKaTJjX2J1c19jdHJsX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCgkJICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCnsKCXN0cnVjdCBwdHBfb2NwICpicCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwoJdTMyIHZhbDsKCglpZiAoIWJwLSZndDtwcHNfc2VsZWN0KQoJCXJldHVybiAtRU5PREVWOwoJaWYgKGtzdHJ0b3UzMihidWYsIDAsICZhbXA7dmFsKSkKCQlyZXR1cm4gLUVJTlZBTDsKCWlvd3JpdGUzMih2YWwsICZhbXA7YnAtJmd0O3Bwc19zZWxlY3QtJmd0O19fcGFkMSk7CglyZXR1cm4gY291bnQ7Cn0KYGBgCgpJcyB0aGlzIGZ1bmN0aW9uYWwgbG9naWMgdGhhdCAqbmVlZHMqIGZ1enppbmc/IEl0JiMzOTtzIGp1c3QgcmVnaXN0ZXIgcmVhZC93cml0ZSEgIFRoZSBgcmVxdWVzdF9tb2R1bGUoJiMzNDtpMmMtZGV2JiMzNDspO2AgY2FsbCwgSSYjMzk7bSB0aGlua2luZywgaXMgcHJvYmFibHkgbm90IHdoZXJlIHRoZSBqdWljeSBidWdzIGFyZS4KClRoZSBwcm9tcHTigJlzIGRlZmluaXRpb24gb2Ygd2hhdCYjMzk7cyAqbm90KiB3b3J0aCBmdXp6aW5nIGNvbWVzIHRvIG1pbmQ6IGRvY3VtZW50YXRpb24sIEtjb25maWcsIGNvbW1lbnRzLCBsb2dnaW5nIGNoYW5nZXMsIGNvbnN0YW50IG1vZGlmaWNhdGlvbnMgdGhhdCBkb24mIzM5O3QgYWx0ZXIgZmxvdywgYW5kIGNvZGUgdGhhdCYjMzk7cyB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuICBUaGlzIGlzIGEgUENJIGRyaXZlciwgYHB0cF9vY3BgIGZvciB0aGUgT3BlbiBDb21wdXRlIFByb2plY3QgVGltZSBDYXJkLiBDYW4gdGhpcyBldmVuIGJlIHByb2JlZCBpbiBRRU1VPwoKV2FpdCwgU3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6ZXIgY2FuIGVtdWxhdGUgUENJIGRldmljZXMsIGludGVyY2VwdGluZyBhY2Nlc3Nlcy4gQnV0IGl0IG5lZWRzIHRoZSBQQ0kgZGV2aWNlIElELCBvciBpdCBjYW4gYmUgZ3Vlc3NlZC4gIEFoLCBoZXJlIHdlIGdvOiBgUENJX0RFVklDRV9EQVRBKE1FVEEsIFRJTUVDQVJELCAmYW1wO29jcF9mYl9yZXNvdXJjZSlgLCBNRVRBIGlzIEZhY2Vib29rICh2ZW5kb3IgSUQgMHgxZDliKS4gU28sIGlmIHRoZSBQQ0kgZnV6emVyIGlzIGVuYWJsZWQsIGl0ICpjYW4qIHByb2JlIGl0LgoKQnV0IGlzIGl0IHdvcnRoIHRoZSBlZmZvcnQ/IFR3byBzeXNmcyBtZXRob2RzIGZvciBhIDMyLWJpdCByZWdpc3RlciBhbmQgYSBgcmVxdWVzdF9tb2R1bGVgIGNhbGwuIEkgZG9uJiMzOTt0IHNlZSBhbnkgY29tcGxleCBsb2dpYyBoZXJlLiBJIHN0aWxsIG5lZWQgdG8gZG91YmxlLWNoZWNrIGlmIHRoZXJlIGlzIGFueXRoaW5nIGVsc2UuICBTbywgSSBhbSBsZWFuaW5nIHRvd2FyZCAmIzM0O25vLCYjMzQ7IGJ1dCBJIG5lZWQgdG8gbWFrZSBzdXJlIEkmIzM5O20gbm90IG1pc3Npbmcgc29tZXRoaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDA2OjAzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2kyY19idXNfY3RybF9zdG9yZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvcHRwL3B0cF9vY3AuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3B0cC9wdHBfb2NwLmM9NDIzOD1zdGF0aWMgc3NpemVfdFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQyMzk6aTJjX2J1c19jdHJsX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNDI0MC1cdFx0ICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMDY6MDM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTg4MjQKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiA1OTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nIERlY2lzaW9uIGZvciBJMkMgQnVzIENvbnRyb2wgaW4gYWR2YV90aW1lY2FyZF94MSoqCgpPa2F5LCBsZXQgbWUgdGhpbmsgdGhpcyB0aHJvdWdoLiBUaGlzIHBhdGNoIGludHJvZHVjZXMgYGkyY19idXNfY3RybF9zaG93YCBhbmQgYGkyY19idXNfY3RybF9zdG9yZWAsIGFkZHMgaXQgdG8gYGFkdmFfdGltZWNhcmRfeDFfYXR0cnNgLCBhbmQgYWxzbyBjYWxscyBgcmVxdWVzdF9tb2R1bGUoJiMzNDtpMmMtZGV2JiMzNDspO2Agd2l0aGluIGBwdHBfb2NwX2luaXQoKWAuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gbGVhbiB0b3dhcmRzIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgY29yZSBsb2dpYyBvZiBgaTJjX2J1c19jdHJsX3N0b3JlYCBpcyBleHRyZW1lbHkgc2ltcGxlOiBhIGBrc3RydG91MzJgLCBhIGRpcmVjdCBNTUlPIHdyaXRlIHVzaW5nIGBpb3dyaXRlMzJgLCBhbmQgYSBjb3VudCByZXR1cm4uIE5vIGNvbXBsZXggY29uZGl0aW9uYWwgc3RhdGVtZW50cywgbm8gZHluYW1pYyBtZW1vcnkgYWxsb2NhdGlvbiwgbm8gbG9ja2luZyBjb21wbGljYXRpb25zLCBhbmQgbm8gbG9vcHMgdG8gZ2V0IGh1bmcgdXAgaW4uIEl0JiMzOTtzIGVzc2VudGlhbGx5IGEgdHJpdmlhbCBzeXNmcyB3cmFwcGVyIGFyb3VuZCBhbiBNTUlPIG9wZXJhdGlvbiwgYWxvbmcgd2l0aCBhIG1vZHVsZSBsb2FkLgoKSG93ZXZlciwgdGhlIHByb21wdCBzYXlzIEkgbmVlZCB0byBjb25zaWRlciByZWFjaGFiaWxpdHkgYW5kIGlmIGl0IHRvdWNoZXMgY29yZSBrZXJuZWwgbG9naWMuIFRoZSBkcml2ZXIgaW4gcXVlc3Rpb24gcmVsaWVzIG9uIHRoZSBwcmVzZW5jZSBvZiBhIHNwZWNpZmljIFBDSSBkZXZpY2UuIE5vdywgU3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6ZXIgY2FuIHRlY2huaWNhbGx5IGVtdWxhdGUgdGhpcyBQQ0kgZGV2aWNlLiBUaGUgcXVlc3Rpb24gaXMsIGlzIGl0ICpyZWFsbHkqIHdvcnRoIHRoZSBlZmZvcnQ/CgpUaGUgcHJvbXB0IHN0YXRlcyBJIHNob3VsZCByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVS4gU3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6aW5nIHN0cmF0ZWd5IGRvZXNuJiMzOTt0IHJlYWRpbHkgZml0IHRoYXQgZGVmaW5pdGlvbi4gV2hpbGUgaXQgY2FuIGluamVjdCBNTUlPIHJlYWRzL3dyaXRlcywgaXQgZG9lc24mIzM5O3Qgb2ZmZXIgZnVsbCBkZXZpY2UgZW11bGF0aW9uIHdpdGhpbiBRRU1VIGluIHRoZSBzYW1lIHdheSBgbWFjODAyMTFfaHdzaW1gIG9yIGBkdW1teV9oY2RgIGZvciBVU0IgZG9lcy4gVXBzdHJlYW0ga2VybmVscyBkb24mIzM5O3QgaGF2ZSBhIGdlbmVyaWMgUENJIGVtdWxhdG9yIHRoYXQgY291bGQgaW5zdGFudGlhdGUgYXJiaXRyYXJ5IFBDSSBkZXZpY2VzIHdpdGggc3BlY2lmaWMgdmVuZG9yL2RldmljZSBJRHMgZWFzaWx5LiBTeXprYWxsZXIgdXNlcyB0aGUgYC9kZXYvcmF3LXBjaWAgdHlwZSBvZiBpbnRlcmZhY2UsIHdoaWNoIGFsbG93cyBmb3IgdGVzdGluZyBpZiB0aGUgZGV2aWNlIHByb2Jlcy4gSWYgdGhlcmUmIzM5O3Mgbm8gUUVNVSBlbXVsYXRpb24gZm9yIHRoZSBPQ1AgVGltZWNhcmQsIHRoZSBkcml2ZXIgd29uJiMzOTt0IHByb2JlIGluIGEgc3RhbmRhcmQgVk0gc2V0dXAuCgpUaGVyZWZvcmUsIGJlY2F1c2UgdGhpcyBkcml2ZXIgc2VlbXMgcmVsaWFudCBvbiBhIHJlYWwgb3IgdmVyeSBzcGVjaWZpYyBQQ0kgZGV2aWNlLCBhbmQgYmVjYXVzZSBhIGdlbmVyaWMgZW11bGF0b3IgaXNuJiMzOTt0IHJlYWRpbHkgYXZhaWxhYmxlIGluIHRoZSB1cHN0cmVhbSBrZXJuZWwgZm9yIFFFTVUsIEkmIzM5O20gbGVhbmluZyBiYWNrIHRvd2FyZHMgYFdvcnRoRnV6emluZz1mYWxzZWAuIEkgbmVlZCB0byBlbnN1cmUgdGhlIHRhcmdldCBpcyByZWFjaGFibGUgdG8gYmVnaW4gd2l0aCBhbmQgSSYjMzk7bSBub3QgY29udmluY2VkIGl0IGlzLiBMZXQgbWUgY2hlY2sgaWYgdGhlcmUgaXMgYW55IHNvZnR3YXJlIGVtdWxhdGlvbiBhdmFpbGFibGUgZmlyc3QgdG8gYmUgc3VyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMDY6MDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7VElNRUNBUkQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9wdHAvcHRwX29jcC5jLTI3LVxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjI4OiNkZWZpbmUgUENJX0RFVklDRV9JRF9NRVRBX1RJTUVDQVJEXHRcdDB4MDQwMFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTI5LVxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTMwLSNkZWZpbmUgUENJX1ZFTkRPUl9JRF9DRUxFU1RJQ0FcdFx0XHQweDE4ZDRcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozMTojZGVmaW5lIFBDSV9ERVZJQ0VfSURfQ0VMRVNUSUNBX1RJTUVDQVJEXHQweDEwMDhcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0zMi1cbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzYtI2RlZmluZSBQQ0lfVkVORE9SX0lEX0FEVkFcdFx0XHQweGFkNWFcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozNzojZGVmaW5lIFBDSV9ERVZJQ0VfSURfQURWQV9USU1FQ0FSRFx0XHQweDA0MDBcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozODojZGVmaW5lIFBDSV9ERVZJQ0VfSURfQURWQV9USU1FQ0FSRF9YMVx0XHQweDA0MTBcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0zOS1cbi0tXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM9MTI4MT1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgcHRwX29jcF9wY2lkZXZfaWRbXSA9IHtcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMjgyOlx0eyBQQ0lfREVWSUNFX0RBVEEoTUVUQSwgVElNRUNBUkQsIFx1MDAyNm9jcF9mYl9yZXNvdXJjZSkgfSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMjgzOlx0eyBQQ0lfREVWSUNFX0RBVEEoQ0VMRVNUSUNBLCBUSU1FQ0FSRCwgXHUwMDI2b2NwX2ZiX3Jlc291cmNlKSB9LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEyODQtXHR7IFBDSV9ERVZJQ0VfREFUQShPUk9MSUEsIEFSVENBUkQsIFx1MDAyNm9jcF9hcnRfcmVzb3VyY2UpIH0sXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTI4NTpcdHsgUENJX0RFVklDRV9EQVRBKEFEVkEsIFRJTUVDQVJELCBcdTAwMjZvY3BfYWR2YV9yZXNvdXJjZSkgfSxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMjg2Olx0eyBQQ0lfREVWSUNFX0RBVEEoQURWQSwgVElNRUNBUkRfWDEsIFx1MDAyNm9jcF9hZHZhX3gxX3Jlc291cmNlKSB9LFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEyODctXHR7IH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMDY6MDM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA1NjIKCQkJCQkJCW91dHB1dDogOTkKCQkJCQkJCXRob3VnaHRzOiA4OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50OiBVbnRlc3RhYmxlIGluIFZpcnR1YWxpemVkIEVudmlyb25tZW50cyoqCgpPa2F5LCBzbyBsb29raW5nIGF0IHRoaXMgUENJIGRldmljZSBkcml2ZXIsIHRoZSBjb25jbHVzaW9uIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIFRoZXJlJiMzOTtzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBhdmFpbGFibGUgZm9yIHRoaXMgdGhpbmcgd2l0aGluIHRoZSBrZXJuZWwuIFRoYXQgbWVhbnMsIHVubGVzcyBJJiMzOTt2ZSBnb3QgdGhlIGFjdHVhbCBoYXJkd2FyZSBwcmVzZW50IG9yIGEgbWV0aWN1bG91c2x5IGNyYWZ0ZWQgUUVNVSBkZXZpY2UgbW9kZWwgZm9yIGl0LCB0aGVyZSYjMzk7cyBhYnNvbHV0ZWx5IG5vIHdheSB0byBhY3R1YWxseSAqcHJvYmUqIHRoZSBkcml2ZXIuIEluIG90aGVyIHdvcmRzLCB0aGUgY29yZSBjb2RlIHBhdGhzIGFyZSBlZmZlY3RpdmVseSBkZWFkIGVuZHMgaW4gZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIHRoZSBzdGFuZGFyZCBRRU1VIHNldHVwLiBTaW5jZSBteSBnb2FsIGlzIGZ1enppbmcsIGFuZCB0aGlzIGRyaXZlciBpcyB1bnRvdWNoYWJsZSBpbiBhIGZ1enppbmcgZnJpZW5kbHkgZW52aXJvbm1lbnQsIEkmIzM5O20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgcmVhc29uaW5nIGlzIHNvbGlkOiBpdCYjMzk7cyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIsIGFuZCB3aXRob3V0IHByb3BlciBzb2Z0d2FyZSBlbXVsYXRpb24sIGl0JiMzOTtzIGp1c3Qgc2ltcGx5IG5vdCByZWFjaGFibGUgZHVyaW5nIHRlc3RpbmcgaW4gdGhlIGtpbmQgb2YgdmlydHVhbGl6YXRpb24gSSB0eXBpY2FsbHkgZGVhbCB3aXRoLiBObyBwb2ludCBpbiB3YXN0aW5nIGN5Y2xlcyBvbiBpdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMDY6MDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIgKHB0cF9vY3ApIGZvciB0aGUgT3BlbiBDb21wdXRlIFByb2plY3QgVGltZSBDYXJkLiBUaGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgZGV2aWNlIGluIHRoZSBrZXJuZWwgb3Igc3RhbmRhcmQgUUVNVSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gQWRkaXRpb25hbGx5LCB0aGUgY2hhbmdlcyBhcmUgdHJpdmlhbCBzeXNmcyB3cmFwcGVycyBhcm91bmQgTU1JTyByZWFkcy93cml0ZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIgKHB0cF9vY3ApIGZvciB0aGUgT3BlbiBDb21wdXRlIFByb2plY3QgVGltZSBDYXJkLiBUaGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgZGV2aWNlIGluIHRoZSBrZXJuZWwgb3Igc3RhbmRhcmQgUUVNVSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gQWRkaXRpb25hbGx5LCB0aGUgY2hhbmdlcyBhcmUgdHJpdmlhbCBzeXNmcyB3cmFwcGVycyBhcm91bmQgTU1JTyByZWFkcy93cml0ZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDYtMjhUMDY6MDI6NDkuMDgxNjQ1Nzk2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzUwMTIyMzk4MjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlciAocHRwX29jcCkgZm9yIHRoZSBPcGVuIENvbXB1dGUgUHJvamVjdCBUaW1lIENhcmQuIFRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBkZXZpY2UgaW4gdGhlIGtlcm5lbCBvciBzdGFuZGFyZCBRRU1VLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBBZGRpdGlvbmFsbHksIHRoZSBjaGFuZ2VzIGFyZSB0cml2aWFsIHN5c2ZzIHdyYXBwZXJzIGFyb3VuZCBNTUlPIHJlYWRzL3dyaXRlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDA2OjAyOjQ5LjA4MTY1MDgzNloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mzg5NjIyOTMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNGRjOTYwMzBhYzYxNTZlYTQ0NjM0MDgwMGM1YzYzN2E4ZjRkZWMwZVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU3VuIEp1biAyOCAwNjowMjo0OCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3B0cC9wdHBfb2NwLmMgYi9kcml2ZXJzL3B0cC9wdHBfb2NwLmNcXG5pbmRleCAzNWU5MTFmMWFkNzhjMC4uMWI0Y2NiNGZlY2E1NDkgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9wdHAvcHRwX29jcC5jXFxuKysrIGIvZHJpdmVycy9wdHAvcHRwX29jcC5jXFxuQEAgLTQyMjQsNiArNDIyNCwzNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9jcF9hdHRyX2dyb3VwIGFydF90aW1lY2FyZF9ncm91cHNbXSA9IHtcXG4gXFx0eyB9LFxcbiB9O1xcbiBcXG4rc3RhdGljIHNzaXplX3RcXG4raTJjX2J1c19jdHJsX3Nob3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKVxcbit7XFxuK1xcdHN0cnVjdCBwdHBfb2NwICpicCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpO1xcbitcXG4rXFx0aWYgKCFicC1cXHUwMDNlcHBzX3NlbGVjdClcXG4rXFx0XFx0cmV0dXJuIC1FTk9ERVY7XFxuK1xcdHJldHVybiBzeXNmc19lbWl0KGJ1ZiwgXFxcIjB4JTA4eFxcXFxuXFxcIixcXG4rXFx0XFx0XFx0ICBpb3JlYWQzMihcXHUwMDI2YnAtXFx1MDAzZXBwc19zZWxlY3QtXFx1MDAzZV9fcGFkMSkpO1xcbit9XFxuK1xcbitzdGF0aWMgc3NpemVfdFxcbitpMmNfYnVzX2N0cmxfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0cixcXG4rXFx0XFx0ICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpXFxuK3tcXG4rXFx0c3RydWN0IHB0cF9vY3AgKmJwID0gZGV2X2dldF9kcnZkYXRhKGRldik7XFxuK1xcdHUzMiB2YWw7XFxuK1xcbitcXHRpZiAoIWJwLVxcdTAwM2VwcHNfc2VsZWN0KVxcbitcXHRcXHRyZXR1cm4gLUVOT0RFVjtcXG4rXFx0aWYgKGtzdHJ0b3UzMihidWYsIDAsIFxcdTAwMjZ2YWwpKVxcbitcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4rXFx0aW93cml0ZTMyKHZhbCwgXFx1MDAyNmJwLVxcdTAwM2VwcHNfc2VsZWN0LVxcdTAwM2VfX3BhZDEpO1xcbitcXHRyZXR1cm4gY291bnQ7XFxuK31cXG4rXFxuK3N0YXRpYyBERVZJQ0VfQVRUUl9SVyhpMmNfYnVzX2N0cmwpO1xcbitcXG4gc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmFkdmFfdGltZWNhcmRfYXR0cnNbXSA9IHtcXG4gXFx0XFx1MDAyNmRldl9hdHRyX3NlcmlhbG51bS5hdHRyLFxcbiBcXHRcXHUwMDI2ZGV2X2F0dHJfZ25zc19zeW5jLmF0dHIsXFxuQEAgLTQyNzIsNiArNDMwMCw3IEBAIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphZHZhX3RpbWVjYXJkX3gxX2F0dHJzW10gPSB7XFxuIFxcdFxcdTAwMjZkZXZfYXR0cl90c193aW5kb3dfYWRqdXN0LmF0dHIsXFxuIFxcdFxcdTAwMjZkZXZfYXR0cl91dGNfdGFpX29mZnNldC5hdHRyLFxcbiBcXHRcXHUwMDI2ZGV2X2F0dHJfdG9kX2NvcnJlY3Rpb24uYXR0cixcXG4rXFx0XFx1MDAyNmRldl9hdHRyX2kyY19idXNfY3RybC5hdHRyLFxcbiBcXHROVUxMLFxcbiB9O1xcbiBcXG5AQCAtNTIzNSw2ICs1MjY0LDcgQEAgcHRwX29jcF9pbml0KHZvaWQpXFxuIFxcdGNvbnN0IGNoYXIgKndoYXQ7XFxuIFxcdGludCBlcnI7XFxuIFxcbitcXHRyZXF1ZXN0X21vZHVsZShcXFwiaTJjLWRldlxcXCIpO1xcbiBcXHRwdHBfb2NwX2RlYnVnZnNfaW5pdCgpO1xcbiBcXG4gXFx0d2hhdCA9IFxcXCJ0aW1lY2FyZCBjbGFzc1xcXCI7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDA2OjAyOjQ5LjQ3MjA2NzAzOFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQ2MjE4MTIyMTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlciAocHRwX29jcCkgZm9yIHRoZSBPcGVuIENvbXB1dGUgUHJvamVjdCBUaW1lIENhcmQuIFRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBkZXZpY2UgaW4gdGhlIGtlcm5lbCBvciBzdGFuZGFyZCBRRU1VLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBBZGRpdGlvbmFsbHksIHRoZSBjaGFuZ2VzIGFyZSB0cml2aWFsIHN5c2ZzIHdyYXBwZXJzIGFyb3VuZCBNTUlPIHJlYWRzL3dyaXRlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNGRjOTYwMzBhYzYxNTZlYTQ0NjM0MDgwMGM1YzYzN2E4ZjRkZWMwZVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gSnVuIDI4IDA2OjAyOjQ4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9wdHAvcHRwX29jcC5jIGIvZHJpdmVycy9wdHAvcHRwX29jcC5jXG5pbmRleCAzNWU5MTFmMWFkNzhjMC4uMWI0Y2NiNGZlY2E1NDkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3B0cC9wdHBfb2NwLmNcbisrKyBiL2RyaXZlcnMvcHRwL3B0cF9vY3AuY1xuQEAgLTQyMjQsNiArNDIyNCwzNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9jcF9hdHRyX2dyb3VwIGFydF90aW1lY2FyZF9ncm91cHNbXSA9IHtcbiBcdHsgfSxcbiB9O1xuIFxuK3N0YXRpYyBzc2l6ZV90XG4raTJjX2J1c19jdHJsX3Nob3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKVxuK3tcbitcdHN0cnVjdCBwdHBfb2NwICpicCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpO1xuK1xuK1x0aWYgKCFicC1cdTAwM2VwcHNfc2VsZWN0KVxuK1x0XHRyZXR1cm4gLUVOT0RFVjtcbitcdHJldHVybiBzeXNmc19lbWl0KGJ1ZiwgXCIweCUwOHhcXG5cIixcbitcdFx0XHQgIGlvcmVhZDMyKFx1MDAyNmJwLVx1MDAzZXBwc19zZWxlY3QtXHUwMDNlX19wYWQxKSk7XG4rfVxuK1xuK3N0YXRpYyBzc2l6ZV90XG4raTJjX2J1c19jdHJsX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsXG4rXHRcdCAgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KVxuK3tcbitcdHN0cnVjdCBwdHBfb2NwICpicCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpO1xuK1x0dTMyIHZhbDtcbitcbitcdGlmICghYnAtXHUwMDNlcHBzX3NlbGVjdClcbitcdFx0cmV0dXJuIC1FTk9ERVY7XG4rXHRpZiAoa3N0cnRvdTMyKGJ1ZiwgMCwgXHUwMDI2dmFsKSlcbitcdFx0cmV0dXJuIC1FSU5WQUw7XG4rXHRpb3dyaXRlMzIodmFsLCBcdTAwMjZicC1cdTAwM2VwcHNfc2VsZWN0LVx1MDAzZV9fcGFkMSk7XG4rXHRyZXR1cm4gY291bnQ7XG4rfVxuK1xuK3N0YXRpYyBERVZJQ0VfQVRUUl9SVyhpMmNfYnVzX2N0cmwpO1xuK1xuIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphZHZhX3RpbWVjYXJkX2F0dHJzW10gPSB7XG4gXHRcdTAwMjZkZXZfYXR0cl9zZXJpYWxudW0uYXR0cixcbiBcdFx1MDAyNmRldl9hdHRyX2duc3Nfc3luYy5hdHRyLFxuQEAgLTQyNzIsNiArNDMwMCw3IEBAIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphZHZhX3RpbWVjYXJkX3gxX2F0dHJzW10gPSB7XG4gXHRcdTAwMjZkZXZfYXR0cl90c193aW5kb3dfYWRqdXN0LmF0dHIsXG4gXHRcdTAwMjZkZXZfYXR0cl91dGNfdGFpX29mZnNldC5hdHRyLFxuIFx0XHUwMDI2ZGV2X2F0dHJfdG9kX2NvcnJlY3Rpb24uYXR0cixcbitcdFx1MDAyNmRldl9hdHRyX2kyY19idXNfY3RybC5hdHRyLFxuIFx0TlVMTCxcbiB9O1xuIFxuQEAgLTUyMzUsNiArNTI2NCw3IEBAIHB0cF9vY3BfaW5pdCh2b2lkKVxuIFx0Y29uc3QgY2hhciAqd2hhdDtcbiBcdGludCBlcnI7XG4gXG4rXHRyZXF1ZXN0X21vZHVsZShcImkyYy1kZXZcIik7XG4gXHRwdHBfb2NwX2RlYnVnZnNfaW5pdCgpO1xuIFxuIFx0d2hhdCA9IFwidGltZWNhcmQgY2xhc3NcIjtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDA2OjAyOjQ5LjQ3MjA2ODI0OFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyNzU5NjkwNTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgUGF0Y2ggdG8gdGhlIFBUUCBPQ1AgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0J3MgYmVlbiBhcHBsaWVkIHRvIGBkcml2ZXJzL3B0cC9wdHBfb2NwLmNgLiBJdCBsb29rcyBsaWtlIGl0J3MgYWRkaW5nIGEgbmV3IHN5c2ZzIGF0dHJpYnV0ZSwgYGkyY19idXNfY3RybGAsIHRvIGBhZHZhX3RpbWVjYXJkX3gxX2F0dHJzYC4gVGhhdCdzIGludGVyZXN0aW5nLCBhbmQgYWxzbywgaXQgbG9va3MgbGlrZSBgcmVxdWVzdF9tb2R1bGUoXCJpMmMtZGV2XCIpO2AgaGFzIGJlZW4gYWRkZWQgdG8gYHB0cF9vY3BfaW5pdCgpYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiSG93IHJlYWNoYWJsZSBpcyB0aGlzIGRyaXZlciBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50P1wiLlxuXG5HaXZlbiB0aGF0IGBkcml2ZXJzL3B0cC9wdHBfb2NwLmNgIGlzIHNwZWNpZmljYWxseSBmb3IgdGhlIE9wZW4gQ29tcHV0ZSBQcm9qZWN0IFRpbWUgQ2FyZCwgd2hpY2ggaXMgYSBQQ0kgZGV2aWNlLCB0aGUgcXVlc3Rpb24gbm93IGlzIGhvdyBlYXNpbHkgaXQgY2FuIGJlIGVtdWxhdGVkLiBSZWFsaXN0aWNhbGx5LCBjb21wbGV0ZSBlbXVsYXRpb24gaXMgcHJvYmFibHkgYSBwYWluLiBCdXQsIHNpbmNlIGl0ICppcyogUENJLCBpdCBvcGVucyB1cCBzb21lIGF2ZW51ZXMsIHJpZ2h0PyBJJ20gdGhpbmtpbmcgYWJvdXQgZnV6emluZyB0aGlzIGRyaXZlci4gTm93LCBpZiBJIHJlbWVtYmVyIGNvcnJlY3RseSwgc3l6a2FsbGVyIGRvZXMgaGF2ZSBQQ0kgZnV6emluZyBjYXBhYmlsaXRpZXMsIGFuZCB0aGF0IG1pZ2h0IGJlIG91ciBiZXN0IHJvdXRlLlxuXG5Pa2F5LCBsZXQgbWUganVzdCBkb3VibGUtY2hlY2sgdGhlIEtjb25maWcgZW50cnkgZm9yIGBwdHBfb2NwYCB0byBtYWtlIHN1cmUgZnV6emluZyBpcyBhbiBvcHRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyOTUsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNzksIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQwNjowMjo1My43NDgwMzg5MjRaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQ1NTg3ODUsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInB0cF9vY3BcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9wdHAvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMDY6MDI6NTMuODAyNjA4NTM5WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzI1MDk5ODE5NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQncyBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgYHB0cF9vY3BgIERyaXZlciBJbXBsZW1lbnRhdGlvbioqXG5cblJpZ2h0LCBzbyBJIG5lZWQgdG8gZmluZCB3aGVyZSB0aGlzIGBwdHBfb2NwYCBkcml2ZXIgaXMgZGVmaW5lZCwgb3IgYXQgbGVhc3QgaG93IGl0J3MgaGFuZGxlZCBpbiB0aGUgYnVpbGQgc3lzdGVtLiBHaXZlbiBpdHMgbGlrZWx5IHJvbGUgaW4gUHJlY2lzaW9uIFRpbWUgUHJvdG9jb2wgKFBUUCksIG15IGZpcnN0IGluc3RpbmN0IGlzIHRvIGNoZWNrIHRoZSB1c3VhbCBzdXNwZWN0cyBpbiB0aGUga2VybmVsIHNvdXJjZSB0cmVlLiBUaGUgb2J2aW91cyBzdGFydGluZyBwb2ludHMgYXJlIHRoZSBgZHJpdmVycy9wdHAvTWFrZWZpbGVgIGFuZCBgZHJpdmVycy9wdHAvS2NvbmZpZ2AgZmlsZXMuIFRoZSBNYWtlZmlsZSBzaG91bGQgaGFuZGxlIHRoZSBkcml2ZXIncyBidWlsZCBwcm9jZXNzLCBwb3RlbnRpYWxseSBpbmNsdWRpbmcgaXQgb3IgZXhjbHVkaW5nIGl0IGJhc2VkIG9uIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gVGhlIEtjb25maWcgZmlsZSBpcyB3aGVyZSB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHRoZW1zZWx2ZXMgYXJlIGRlZmluZWQsIGxpa2UgYSBgQ09ORklHX1BUUF9PQ1BgIHdoaWNoIGlzIGV4YWN0bHkgd2hhdCBJJ20gbG9va2luZyBmb3IhIEknbSBleHBlY3RpbmcgdG8gZmluZCBlaXRoZXIgYSBjbGVhciBkZWZpbml0aW9uIG9mIGBwdHBfb2NwYCBpbiB0aGUgTWFrZWZpbGUsIHBvc3NpYmx5IHdpdGggYSBjb3JyZXNwb25kaW5nIGVudHJ5IGluIEtjb25maWcgdG8gY29udHJvbCBpdHMgaW5jbHVzaW9uLCBvciBhdCBsZWFzdCBhIGNvbmRpdGlvbmFsIHN0YXRlbWVudCB0aWVkIHRvIGEgY29uZmlndXJhdGlvbiBzeW1ib2wuIEhvcGVmdWxseSwgaXQncyBhIHN0cmFpZ2h0Zm9yd2FyZCBjYXNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNzkwLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMDY6MDI6NTcuMDUzNjA4NjU0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3MTU1Mzk0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInB0cF9vY3BcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9wdHAvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMjAxOSBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9wdHAvTWFrZWZpbGU9MjA9b2JqLSQoQ09ORklHX1BUUF8xNTg4X0NMT0NLX1ZNVylcXHQrPSBwdHBfdm13Lm9cXG5kcml2ZXJzL3B0cC9NYWtlZmlsZToyMTpvYmotJChDT05GSUdfUFRQXzE1ODhfQ0xPQ0tfT0NQKVxcdCs9IHB0cF9vY3Aub1xcbmRyaXZlcnMvcHRwL01ha2VmaWxlLTIyLW9iai0kKENPTkZJR19QVFBfREZMX1RPRClcXHRcXHQrPSBwdHBfZGZsX3RvZC5vXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM9NDQ9c3RydWN0IG9jcF9yZWcge1xcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTY4LVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo2OTpzdHJ1Y3QgcHRwX29jcF9zZXJ2b19jb25mIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzAtXFx0dTMyXFx0c2Vydm9fb2Zmc2V0X3A7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzctICogQ29tYmluZWQgc2Vydm8gKyBib2FyZC12YXJpYW50IHBhcmFtZXRlcnMgZm9yIEFEVkEgYm9hcmRzLlxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo3ODogKiBFbWJlZGRlZCBpbiB0aGUgcmVzb3VyY2UgdGFibGUgLmV4dHJhIHNvIGEgc2luZ2xlIHB0cF9vY3BfYWR2YV9ib2FyZF9pbml0KClcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzktICogY2FuIGhhbmRsZSBib3RoIEFEVkEgYW5kIEFEVkEtWDEgd2l0aG91dCBwZXItdmFyaWFudCBpbml0IGZ1bmN0aW9ucy5cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODAtICovXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjgxOnN0cnVjdCBwdHBfb2NwX2FkdmFfaW5mbyB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjgyOlxcdHN0cnVjdCBwdHBfb2NwX3NlcnZvX2NvbmZcXHRzZXJ2bztcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODMtXFx0dTMyXFx0XFx0XFx0XFx0Zmxhc2hfc3RhcnQ7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM9MjM2PXN0cnVjdCBib2FyZF9jb25maWdfcmVnIHtcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yNDQtXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjI0NTpzdHJ1Y3QgcHRwX29jcF9mbGFzaF9pbmZvIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMjQ2LVxcdGNvbnN0IGNoYXIgKm5hbWU7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMjUxLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoyNTI6c3RydWN0IHB0cF9vY3BfZmlybXdhcmVfaGVhZGVyIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMjUzLVxcdGNoYXIgbWFnaWNbNF07XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMjYyLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoyNjM6c3RydWN0IHB0cF9vY3BfaTJjX2luZm8ge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yNjQtXFx0Y29uc3QgY2hhciAqbmFtZTtcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yNjktXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjI3MDpzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbyB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTI3MS1cXHRpbnQgaW5kZXg7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMjc1LVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoyNzY6c3RydWN0IHB0cF9vY3BfZXh0X3NyYyB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTI3Ny1cXHR2b2lkIF9faW9tZW1cXHRcXHQqbWVtO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoyNzg6XFx0c3RydWN0IHB0cF9vY3BcXHRcXHQqYnA7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjI3OTpcXHRzdHJ1Y3QgcHRwX29jcF9leHRfaW5mb1xcdCppbmZvO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yODAtXFx0aW50XFx0XFx0XFx0aXJxX3ZlYztcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yODItXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjI4MzplbnVtIHB0cF9vY3Bfc21hX21vZGUge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yODQtXFx0U01BX01PREVfSU4sXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMjg3LVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoyODg6c3RhdGljIHN0cnVjdCBkcGxsX3Bpbl9mcmVxdWVuY3kgcHRwX29jcF9zbWFfZnJlcVtdID0ge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yODktXFx0RFBMTF9QSU5fRlJFUVVFTkNZXzFQUFMsXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMjk0LVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoyOTU6c3RydWN0IHB0cF9vY3Bfc21hX2Nvbm5lY3RvciB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjI5NjpcXHRlbnVtXFx0cHRwX29jcF9zbWFfbW9kZSBtb2RlO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yOTctXFx0Ym9vbFxcdGZpeGVkX2ZjbjtcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYz0zMTc9c3RydWN0IG9jcF9zbWFfb3Age1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0zMTgtXFx0Y29uc3Qgc3RydWN0IG9jcF9zZWxlY3RvciAqdGJsWzJdO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozMTk6XFx0dm9pZCAoKmluaXQpKHN0cnVjdCBwdHBfb2NwICpicCk7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjMyMDpcXHR1MzIgKCpnZXQpKHN0cnVjdCBwdHBfb2NwICpicCwgaW50IHNtYV9ucik7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjMyMTpcXHRpbnQgKCpzZXRfaW5wdXRzKShzdHJ1Y3QgcHRwX29jcCAqYnAsIGludCBzbWFfbnIsIHUzMiB2YWwpO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozMjI6XFx0aW50ICgqc2V0X291dHB1dCkoc3RydWN0IHB0cF9vY3AgKmJwLCBpbnQgc21hX25yLCB1MzIgdmFsKTtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzIzLX07XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzI4LVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozMjk6c3RydWN0IHB0cF9vY3Bfc2lnbmFsIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzMwLVxcdGt0aW1lX3RcXHRcXHRwZXJpb2Q7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzM4LVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozMzk6c3RydWN0IHB0cF9vY3Bfc2VyaWFsX3BvcnQge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0zNDAtXFx0aW50IGxpbmU7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM9MzUwPWVudW0ge1xcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTM1OC1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MzU5OnN0cnVjdCBwdHBfb2NwIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzYwLVxcdHN0cnVjdCBwY2lfZGV2XFx0XFx0KnBkZXY7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzc2LVxcdHN0cnVjdCBmcmVxdWVuY3lfcmVnXFx0X19pb21lbSAqZnJlcV9pbltPQ1BfRlJFUV9OVU1dO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozNzc6XFx0c3RydWN0IHB0cF9vY3BfZXh0X3NyY1xcdCpzaWduYWxfb3V0W09DUF9TSUdOQUxfTlVNXTtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6Mzc4OlxcdHN0cnVjdCBwdHBfb2NwX2V4dF9zcmNcXHQqcHBzO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozNzk6XFx0c3RydWN0IHB0cF9vY3BfZXh0X3NyY1xcdCp0czA7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjM4MDpcXHRzdHJ1Y3QgcHRwX29jcF9leHRfc3JjXFx0KnRzMTtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MzgxOlxcdHN0cnVjdCBwdHBfb2NwX2V4dF9zcmNcXHQqdHMyO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozODI6XFx0c3RydWN0IHB0cF9vY3BfZXh0X3NyY1xcdCp0czM7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjM4MzpcXHRzdHJ1Y3QgcHRwX29jcF9leHRfc3JjXFx0KnRzNDtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzg0LVxcdHN0cnVjdCBvY3BfYXJ0X2dwaW9fcmVnIF9faW9tZW0gKmFydF9zbWE7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzkyLVxcdGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKiphdHRyX2dyb3VwO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozOTM6XFx0Y29uc3Qgc3RydWN0IHB0cF9vY3BfZWVwcm9tX21hcCAqZWVwcm9tX21hcDtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzk0LVxcdHN0cnVjdCBkZW50cnlcXHRcXHQqZGVidWdfcm9vdDtcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0zOTktXFx0aW50XFx0XFx0XFx0bl9pcnFzO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0MDA6XFx0c3RydWN0IHB0cF9vY3Bfc2VyaWFsX3BvcnRcXHRwb3J0W19fUE9SVF9DT1VOVF07XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQwMS1cXHRib29sXFx0XFx0XFx0ZndfbG9hZGVyO1xcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQxMS1cXHR1NjRcXHRcXHRcXHRmd19jYXA7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQxMjpcXHRzdHJ1Y3QgcHRwX29jcF9zaWduYWxcXHRzaWduYWxbT0NQX1NJR05BTF9OVU1dO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0MTM6XFx0c3RydWN0IHB0cF9vY3Bfc21hX2Nvbm5lY3RvciBzbWFbT0NQX1NNQV9OVU1dO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00MTQtXFx0Y29uc3Qgc3RydWN0IG9jcF9zbWFfb3AgKnNtYV9vcDtcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYz00MjQ9c3RydWN0IG9jcF9yZXNvdXJjZSB7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNDI3LVxcdGludCBpcnFfdmVjO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0Mjg6XFx0aW50ICgqc2V0dXApKHN0cnVjdCBwdHBfb2NwICpicCwgc3RydWN0IG9jcF9yZXNvdXJjZSAqcik7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQyOS1cXHR2b2lkICpleHRyYTtcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00MzMtXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQzNDpzdGF0aWMgaW50IHB0cF9vY3BfcmVnaXN0ZXJfbWVtKHN0cnVjdCBwdHBfb2NwICpicCwgc3RydWN0IG9jcF9yZXNvdXJjZSAqcik7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQzNTpzdGF0aWMgaW50IHB0cF9vY3BfcmVnaXN0ZXJfaTJjKHN0cnVjdCBwdHBfb2NwICpicCwgc3RydWN0IG9jcF9yZXNvdXJjZSAqcik7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQzNjpzdGF0aWMgaW50IHB0cF9vY3BfcmVnaXN0ZXJfc3BpKHN0cnVjdCBwdHBfb2NwICpicCwgc3RydWN0IG9jcF9yZXNvdXJjZSAqcik7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQzNzpzdGF0aWMgaW50IHB0cF9vY3BfcmVnaXN0ZXJfc2VyaWFsKHN0cnVjdCBwdHBfb2NwICpicCwgc3RydWN0IG9jcF9yZXNvdXJjZSAqcik7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQzODpzdGF0aWMgaW50IHB0cF9vY3BfcmVnaXN0ZXJfZXh0KHN0cnVjdCBwdHBfb2NwICpicCwgc3RydWN0IG9jcF9yZXNvdXJjZSAqcik7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQzOTpzdGF0aWMgaW50IHB0cF9vY3BfZmJfYm9hcmRfaW5pdChzdHJ1Y3QgcHRwX29jcCAqYnAsIHN0cnVjdCBvY3BfcmVzb3VyY2UgKnIpO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0NDA6c3RhdGljIGlycXJldHVybl90IHB0cF9vY3BfdHNfaXJxKGludCBpcnEsIHZvaWQgKnByaXYpO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0NDE6c3RhdGljIGlycXJldHVybl90IHB0cF9vY3Bfc2lnbmFsX2lycShpbnQgaXJxLCB2b2lkICpwcml2KTtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NDQyOnN0YXRpYyBpbnQgcHRwX29jcF90c19lbmFibGUodm9pZCAqcHJpdiwgdTMyIHJlcSwgYm9vbCBlbmFibGUpO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0NDM6c3RhdGljIGludCBwdHBfb2NwX3NpZ25hbF9mcm9tX3Blcm91dChzdHJ1Y3QgcHRwX29jcCAqYnAsIGludCBnZW4sXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQ0NC1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgcHRwX3Blcm91dF9yZXF1ZXN0ICpyZXEpO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0NDU6c3RhdGljIGludCBwdHBfb2NwX3NpZ25hbF9lbmFibGUodm9pZCAqcHJpdiwgdTMyIHJlcSwgYm9vbCBlbmFibGUpO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0NDY6c3RhdGljIGludCBwdHBfb2NwX3NtYV9zdG9yZShzdHJ1Y3QgcHRwX29jcCAqYnAsIGNvbnN0IGNoYXIgKmJ1ZiwgaW50IHNtYV9ucik7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQ0Ny1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NDQ4OnN0YXRpYyBpbnQgcHRwX29jcF9hcnRfYm9hcmRfaW5pdChzdHJ1Y3QgcHRwX29jcCAqYnAsIHN0cnVjdCBvY3BfcmVzb3VyY2UgKnIpO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00NDktXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQ1MDpzdGF0aWMgaW50IHB0cF9vY3BfYWR2YV9ib2FyZF9pbml0KHN0cnVjdCBwdHBfb2NwICpicCwgc3RydWN0IG9jcF9yZXNvdXJjZSAqcik7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQ1MS1cXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYz00NjE9c3RhdGljIGNvbnN0IHN0cnVjdCBvY3BfYXR0cl9ncm91cCBhZHZhX3RpbWVjYXJkX3gxX2dyb3Vwc1tdO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00NjItXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQ2MzpzdHJ1Y3QgcHRwX29jcF9lZXByb21fbWFwIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNDY0LVxcdHUxNlxcdG9mZjtcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00NzEtXFx0Lm9mZiA9IGFkZHIsXFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0NzI6XFx0LmxlbiA9IHNpemVvZl9maWVsZChzdHJ1Y3QgcHRwX29jcCwgbWVtYmVyKSxcXHRcXHRcXFxcXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQ3MzpcXHQuYnBfb2Zmc2V0ID0gb2Zmc2V0b2Yoc3RydWN0IHB0cF9vY3AsIG1lbWJlcilcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNDc0LVxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQ3OC1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NDc5OnN0YXRpYyBzdHJ1Y3QgcHRwX29jcF9lZXByb21fbWFwIGZiX2VlcHJvbV9tYXBbXSA9IHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNDgwLVxcdHsgRUVQUk9NX0VOVFJZKDB4NDMsIGJvYXJkX2lkKSB9LFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQ4NC1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NDg1OnN0YXRpYyBzdHJ1Y3QgcHRwX29jcF9lZXByb21fbWFwIGFydF9lZXByb21fbWFwW10gPSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQ4Ni1cXHR7IEVFUFJPTV9FTlRSWSgweDIwMCArIDB4NDMsIGJvYXJkX2lkKSB9LFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQ5Ni0jZGVmaW5lIE9DUF9SRVNfTE9DQVRJT04obWVtYmVyKSBcXFxcXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjQ5NzpcXHQubmFtZSA9ICNtZW1iZXIsIC5icF9vZmZzZXQgPSBvZmZzZXRvZihzdHJ1Y3QgcHRwX29jcCwgbWVtYmVyKVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00OTgtXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTQ5OS0jZGVmaW5lIE9DUF9NRU1fUkVTT1VSQ0UobWVtYmVyKSBcXFxcXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjUwMDpcXHRPQ1BfUkVTX0xPQ0FUSU9OKG1lbWJlciksIC5zZXR1cCA9IHB0cF9vY3BfcmVnaXN0ZXJfbWVtXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTUwMS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTAyLSNkZWZpbmUgT0NQX1NFUklBTF9SRVNPVVJDRShtZW1iZXIpIFxcXFxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTAzOlxcdE9DUF9SRVNfTE9DQVRJT04obWVtYmVyKSwgLnNldHVwID0gcHRwX29jcF9yZWdpc3Rlcl9zZXJpYWxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTA0LVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01MDUtI2RlZmluZSBPQ1BfSTJDX1JFU09VUkNFKG1lbWJlcikgXFxcXFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1MDY6XFx0T0NQX1JFU19MT0NBVElPTihtZW1iZXIpLCAuc2V0dXAgPSBwdHBfb2NwX3JlZ2lzdGVyX2kyY1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01MDctXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTUwOC0jZGVmaW5lIE9DUF9TUElfUkVTT1VSQ0UobWVtYmVyKSBcXFxcXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjUwOTpcXHRPQ1BfUkVTX0xPQ0FUSU9OKG1lbWJlciksIC5zZXR1cCA9IHB0cF9vY3BfcmVnaXN0ZXJfc3BpXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTUxMC1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTExLSNkZWZpbmUgT0NQX0VYVF9SRVNPVVJDRShtZW1iZXIpIFxcXFxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTEyOlxcdE9DUF9SRVNfTE9DQVRJT04obWVtYmVyKSwgLnNldHVwID0gcHRwX29jcF9yZWdpc3Rlcl9leHRcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTEzLVxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jPTU0MT1zdGF0aWMgc3RydWN0IG9jcF9yZXNvdXJjZSBvY3BfZmJfcmVzb3VyY2VbXSA9IHtcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01NDgtXFx0XFx0Lm9mZnNldCA9IDB4MDEwMTAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1NDk6XFx0XFx0LmV4dHJhID0gXFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01NTAtXFx0XFx0XFx0LmluZGV4ID0gMCxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTUxOlxcdFxcdFxcdC5pcnFfZmNuID0gcHRwX29jcF90c19pcnEsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjU1MjpcXHRcXHRcXHQuZW5hYmxlID0gcHRwX29jcF90c19lbmFibGUsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTU1My1cXHRcXHR9LFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTU1Ny1cXHRcXHQub2Zmc2V0ID0gMHgwMTAyMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDIsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjU1ODpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTU1OS1cXHRcXHRcXHQuaW5kZXggPSAxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1NjA6XFx0XFx0XFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTYxOlxcdFxcdFxcdC5lbmFibGUgPSBwdHBfb2NwX3RzX2VuYWJsZSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTYyLVxcdFxcdH0sXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTY2LVxcdFxcdC5vZmZzZXQgPSAweDAxMDYwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gNixcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTY3OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTY4LVxcdFxcdFxcdC5pbmRleCA9IDIsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjU2OTpcXHRcXHRcXHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1NzA6XFx0XFx0XFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01NzEtXFx0XFx0fSxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01NzUtXFx0XFx0Lm9mZnNldCA9IDB4MDExMTAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAxNSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTc2OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTc3LVxcdFxcdFxcdC5pbmRleCA9IDMsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjU3ODpcXHRcXHRcXHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1Nzk6XFx0XFx0XFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01ODAtXFx0XFx0fSxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01ODQtXFx0XFx0Lm9mZnNldCA9IDB4MDExMjAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAxNixcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTg1OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNTg2LVxcdFxcdFxcdC5pbmRleCA9IDQsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjU4NzpcXHRcXHRcXHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1ODg6XFx0XFx0XFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01ODktXFx0XFx0fSxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01OTQtXFx0XFx0Lm9mZnNldCA9IDB4MDEwQzAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAwLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo1OTU6XFx0XFx0LmV4dHJhID0gXFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy01OTYtXFx0XFx0XFx0LmluZGV4ID0gNSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NTk3OlxcdFxcdFxcdC5pcnFfZmNuID0gcHRwX29jcF90c19pcnEsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjU5ODpcXHRcXHRcXHQuZW5hYmxlID0gcHRwX29jcF90c19lbmFibGUsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTU5OS1cXHRcXHR9LFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTYwMy1cXHRcXHQub2Zmc2V0ID0gMHgwMTBEMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDExLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo2MDQ6XFx0XFx0LmV4dHJhID0gXFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02MDUtXFx0XFx0XFx0LmluZGV4ID0gMSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NjA2OlxcdFxcdFxcdC5pcnFfZmNuID0gcHRwX29jcF9zaWduYWxfaXJxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo2MDc6XFx0XFx0XFx0LmVuYWJsZSA9IHB0cF9vY3Bfc2lnbmFsX2VuYWJsZSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNjA4LVxcdFxcdH0sXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNjEyLVxcdFxcdC5vZmZzZXQgPSAweDAxMEUwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMTIsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjYxMzpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTYxNC1cXHRcXHRcXHQuaW5kZXggPSAyLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo2MTU6XFx0XFx0XFx0LmlycV9mY24gPSBwdHBfb2NwX3NpZ25hbF9pcnEsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjYxNjpcXHRcXHRcXHQuZW5hYmxlID0gcHRwX29jcF9zaWduYWxfZW5hYmxlLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02MTctXFx0XFx0fSxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02MjEtXFx0XFx0Lm9mZnNldCA9IDB4MDEwRjAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAxMyxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NjIyOlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNjIzLVxcdFxcdFxcdC5pbmRleCA9IDMsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjYyNDpcXHRcXHRcXHQuaXJxX2ZjbiA9IHB0cF9vY3Bfc2lnbmFsX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NjI1OlxcdFxcdFxcdC5lbmFibGUgPSBwdHBfb2NwX3NpZ25hbF9lbmFibGUsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTYyNi1cXHRcXHR9LFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTYzMC1cXHRcXHQub2Zmc2V0ID0gMHgwMTEwMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDE0LFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo2MzE6XFx0XFx0LmV4dHJhID0gXFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy02MzItXFx0XFx0XFx0LmluZGV4ID0gNCxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NjMzOlxcdFxcdFxcdC5pcnFfZmNuID0gcHRwX29jcF9zaWduYWxfaXJxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo2MzQ6XFx0XFx0XFx0LmVuYWJsZSA9IHB0cF9vY3Bfc2lnbmFsX2VuYWJsZSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNjM1LVxcdFxcdH0sXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNjg3LVxcdFxcdC5vZmZzZXQgPSAweDAwMTUwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gNyxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6Njg4OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3BfaTJjX2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNjg5LVxcdFxcdFxcdC5uYW1lID0gXFxcInhpaWMtaTJjXFxcIixcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy03MDQtXFx0XFx0Lm9mZnNldCA9IDB4MDAxNjAwMDAgKyAweDEwMDAsIC5pcnFfdmVjID0gMyxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NzA1OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3Bfc2VyaWFsX3BvcnQpIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzA2LVxcdFxcdFxcdC5iYXVkID0gMTE1MjAwLFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTcxMS1cXHRcXHQub2Zmc2V0ID0gMHgwMDE3MDAwMCArIDB4MTAwMCwgLmlycV92ZWMgPSA0LFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo3MTI6XFx0XFx0LmV4dHJhID0gXFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9zZXJpYWxfcG9ydCkge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy03MTMtXFx0XFx0XFx0LmJhdWQgPSAxMTUyMDAsXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzE4LVxcdFxcdC5vZmZzZXQgPSAweDAwMTgwMDAwICsgMHgxMDAwLCAuaXJxX3ZlYyA9IDUsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjcxOTpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX3NlcmlhbF9wb3J0KSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTcyMC1cXHRcXHRcXHQuYmF1ZCA9IDU3NjAwLFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTcyOS1cXHRcXHQub2Zmc2V0ID0gMHgwMDMxMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDksXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjczMDpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2ZsYXNoX2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzMxLVxcdFxcdFxcdC5uYW1lID0gXFxcInhpbGlueF9zcGlcXFwiLCAucGNpX29mZnNldCA9IDAsXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzYwLVxcdHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NzYxOlxcdFxcdC5zZXR1cCA9IHB0cF9vY3BfZmJfYm9hcmRfaW5pdCxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6NzYyOlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3Bfc2Vydm9fY29uZikge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy03NjMtXFx0XFx0XFx0LnNlcnZvX29mZnNldF9wID0gMHgyMDAwLFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jPTc4Mj1zdGF0aWMgc3RydWN0IG9jcF9yZXNvdXJjZSBvY3BfYXJ0X3Jlc291cmNlW10gPSB7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtNzg5LVxcdFxcdC5vZmZzZXQgPSAweDAwMTYwMDAwICsgMHgxMDAwLCAuaXJxX3ZlYyA9IDMsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjc5MDpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX3NlcmlhbF9wb3J0KSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTc5MS1cXHRcXHRcXHQuYmF1ZCA9IDExNTIwMCxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04MDEtXFx0XFx0Lm9mZnNldCA9IDB4MzYwMDAwLCAuc2l6ZSA9IDB4MjAsIC5pcnFfdmVjID0gMTIsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjgwMjpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTgwMy1cXHRcXHRcXHQuaW5kZXggPSAwLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4MDQ6XFx0XFx0XFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODA1OlxcdFxcdFxcdC5lbmFibGUgPSBwdHBfb2NwX3RzX2VuYWJsZSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODA2LVxcdFxcdH0sXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODEwLVxcdFxcdC5vZmZzZXQgPSAweDM4MDAwMCwgLnNpemUgPSAweDIwLCAuaXJxX3ZlYyA9IDgsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjgxMTpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTgxMi1cXHRcXHRcXHQuaW5kZXggPSAxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4MTM6XFx0XFx0XFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODE0OlxcdFxcdFxcdC5lbmFibGUgPSBwdHBfb2NwX3RzX2VuYWJsZSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODE1LVxcdFxcdH0sXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODE5LVxcdFxcdC5vZmZzZXQgPSAweDM5MDAwMCwgLnNpemUgPSAweDIwLCAuaXJxX3ZlYyA9IDEwLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4MjA6XFx0XFx0LmV4dHJhID0gXFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04MjEtXFx0XFx0XFx0LmluZGV4ID0gMixcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODIyOlxcdFxcdFxcdC5pcnFfZmNuID0gcHRwX29jcF90c19pcnEsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjgyMzpcXHRcXHRcXHQuZW5hYmxlID0gcHRwX29jcF90c19lbmFibGUsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTgyNC1cXHRcXHR9LFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTgyOC1cXHRcXHQub2Zmc2V0ID0gMHgzQTAwMDAsIC5zaXplID0gMHgyMCwgLmlycV92ZWMgPSAxNCxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODI5OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODMwLVxcdFxcdFxcdC5pbmRleCA9IDMsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjgzMTpcXHRcXHRcXHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4MzI6XFx0XFx0XFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04MzMtXFx0XFx0fSxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04MzctXFx0XFx0Lm9mZnNldCA9IDB4M0IwMDAwLCAuc2l6ZSA9IDB4MjAsIC5pcnFfdmVjID0gMTUsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjgzODpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTgzOS1cXHRcXHRcXHQuaW5kZXggPSA0LFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4NDA6XFx0XFx0XFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODQxOlxcdFxcdFxcdC5lbmFibGUgPSBwdHBfb2NwX3RzX2VuYWJsZSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODQyLVxcdFxcdH0sXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODQ3LVxcdFxcdC5vZmZzZXQgPSAweDAwMzMwMDAwLCAuc2l6ZSA9IDB4MjAsIC5pcnFfdmVjID0gMTEsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjg0ODpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTg0OS1cXHRcXHRcXHQuaW5kZXggPSA1LFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4NTA6XFx0XFx0XFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODUxOlxcdFxcdFxcdC5lbmFibGUgPSBwdHBfb2NwX3RzX2VuYWJsZSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODUyLVxcdFxcdH0sXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODU2LVxcdFxcdC5vZmZzZXQgPSAweDAwMzEwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gOSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODU3OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3BfZmxhc2hfaW5mbykge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04NTgtXFx0XFx0XFx0Lm5hbWUgPSBcXFwic3BpX2FsdGVyYVxcXCIsIC5wY2lfb2Zmc2V0ID0gMCxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04NzEtXFx0XFx0Lm9mZnNldCA9IDB4MzUwMDAwLCAuc2l6ZSA9IDB4MTAwLCAuaXJxX3ZlYyA9IDQsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjg3MjpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2kyY19pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTg3My1cXHRcXHRcXHQubmFtZSA9IFxcXCJvY29yZXMtaTJjXFxcIixcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04ODgtXFx0XFx0Lm9mZnNldCA9IDB4MDAxOTAwMDAsIC5pcnFfdmVjID0gNyxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODg5OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3Bfc2VyaWFsX3BvcnQpIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtODkwLVxcdFxcdFxcdC5iYXVkID0gOTYwMCxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy04OTctXFx0e1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo4OTg6XFx0XFx0LnNldHVwID0gcHRwX29jcF9hcnRfYm9hcmRfaW5pdCxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6ODk5OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3Bfc2Vydm9fY29uZikge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy05MDAtXFx0XFx0XFx0LnNlcnZvX29mZnNldF9wID0gMHgyMDAwLFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jPTkwOT1zdGF0aWMgc3RydWN0IG9jcF9yZXNvdXJjZSBvY3BfYWR2YV9yZXNvdXJjZVtdID0ge1xcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTkxNi1cXHRcXHQub2Zmc2V0ID0gMHgwMTAxMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDEsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjkxNzpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTkxOC1cXHRcXHRcXHQuaW5kZXggPSAwLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo5MTk6XFx0XFx0XFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6OTIwOlxcdFxcdFxcdC5lbmFibGUgPSBwdHBfb2NwX3RzX2VuYWJsZSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTIxLVxcdFxcdH0sXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTI1LVxcdFxcdC5vZmZzZXQgPSAweDAxMDIwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMixcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6OTI2OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTI3LVxcdFxcdFxcdC5pbmRleCA9IDEsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjkyODpcXHRcXHRcXHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo5Mjk6XFx0XFx0XFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy05MzAtXFx0XFx0fSxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy05MzQtXFx0XFx0Lm9mZnNldCA9IDB4MDEwNjAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSA2LFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo5MzU6XFx0XFx0LmV4dHJhID0gXFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy05MzYtXFx0XFx0XFx0LmluZGV4ID0gMixcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6OTM3OlxcdFxcdFxcdC5pcnFfZmNuID0gcHRwX29jcF90c19pcnEsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjkzODpcXHRcXHRcXHQuZW5hYmxlID0gcHRwX29jcF90c19lbmFibGUsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTkzOS1cXHRcXHR9LFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTk0NC1cXHRcXHQub2Zmc2V0ID0gMHgwMTBDMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDAsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjk0NTpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTk0Ni1cXHRcXHRcXHQuaW5kZXggPSA1LFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo5NDc6XFx0XFx0XFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6OTQ4OlxcdFxcdFxcdC5lbmFibGUgPSBwdHBfb2NwX3RzX2VuYWJsZSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTQ5LVxcdFxcdH0sXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTUzLVxcdFxcdC5vZmZzZXQgPSAweDAxMEQwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMTEsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjk1NDpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTk1NS1cXHRcXHRcXHQuaW5kZXggPSAxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo5NTY6XFx0XFx0XFx0LmlycV9mY24gPSBwdHBfb2NwX3NpZ25hbF9pcnEsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjk1NzpcXHRcXHRcXHQuZW5hYmxlID0gcHRwX29jcF9zaWduYWxfZW5hYmxlLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy05NTgtXFx0XFx0fSxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy05NjItXFx0XFx0Lm9mZnNldCA9IDB4MDEwRTAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAxMixcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6OTYzOlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtOTY0LVxcdFxcdFxcdC5pbmRleCA9IDIsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjk2NTpcXHRcXHRcXHQuaXJxX2ZjbiA9IHB0cF9vY3Bfc2lnbmFsX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6OTY2OlxcdFxcdFxcdC5lbmFibGUgPSBwdHBfb2NwX3NpZ25hbF9lbmFibGUsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTk2Ny1cXHRcXHR9LFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTk5OS1cXHRcXHQub2Zmc2V0ID0gMHgwMDE2MDAwMCArIDB4MTAwMCwgLmlycV92ZWMgPSAzLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMDAwOlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3Bfc2VyaWFsX3BvcnQpIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTAwMS1cXHRcXHRcXHQuYmF1ZCA9IDk2MDAsXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTAwNi1cXHRcXHQub2Zmc2V0ID0gMHgwMDE4MDAwMCArIDB4MTAwMCwgLmlycV92ZWMgPSA1LFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMDA3OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3Bfc2VyaWFsX3BvcnQpIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTAwOC1cXHRcXHRcXHQuYmF1ZCA9IDExNTIwMCxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMDIxLVxcdFxcdC5vZmZzZXQgPSAweDAwMzEwNDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gOSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTAyMjpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2ZsYXNoX2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTAyMy1cXHRcXHRcXHQubmFtZSA9IFxcXCJzcGlfYWx0ZXJhXFxcIiwgLnBjaV9vZmZzZXQgPSAwLFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEwMzYtXFx0XFx0Lm9mZnNldCA9IDB4MTUwMDAwLCAuc2l6ZSA9IDB4MTAwLCAuaXJxX3ZlYyA9IDcsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEwMzc6XFx0XFx0LmV4dHJhID0gXFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9pMmNfaW5mbykge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMDM4LVxcdFxcdFxcdC5uYW1lID0gXFxcIm9jb3Jlcy1pMmNcXFwiLFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEwNTUtXFx0e1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMDU2OlxcdFxcdC5zZXR1cCA9IHB0cF9vY3BfYWR2YV9ib2FyZF9pbml0LFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMDU3OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3BfYWR2YV9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEwNTgtXFx0XFx0XFx0LnNlcnZvID0ge1xcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jPTEwNzQ9c3RhdGljIHN0cnVjdCBvY3BfcmVzb3VyY2Ugb2NwX2FkdmFfeDFfcmVzb3VyY2VbXSA9IHtcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMDgxLVxcdFxcdC5vZmZzZXQgPSAweDAxMDEwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTA4MjpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEwODMtXFx0XFx0XFx0LmluZGV4ID0gMCxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTA4NDpcXHRcXHRcXHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMDg1OlxcdFxcdFxcdC5lbmFibGUgPSBwdHBfb2NwX3RzX2VuYWJsZSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTA4Ni1cXHRcXHR9LFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEwOTAtXFx0XFx0Lm9mZnNldCA9IDB4MDEwMjAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAyLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMDkxOlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTA5Mi1cXHRcXHRcXHQuaW5kZXggPSAxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMDkzOlxcdFxcdFxcdC5pcnFfZmNuID0gcHRwX29jcF90c19pcnEsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEwOTQ6XFx0XFx0XFx0LmVuYWJsZSA9IHB0cF9vY3BfdHNfZW5hYmxlLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMDk1LVxcdFxcdH0sXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTA5OS1cXHRcXHQub2Zmc2V0ID0gMHgwMTA2MDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDYsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjExMDA6XFx0XFx0LmV4dHJhID0gXFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTAxLVxcdFxcdFxcdC5pbmRleCA9IDIsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjExMDI6XFx0XFx0XFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTEwMzpcXHRcXHRcXHQuZW5hYmxlID0gcHRwX29jcF90c19lbmFibGUsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTExMDQtXFx0XFx0fSxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTA4LVxcdFxcdC5vZmZzZXQgPSAweDAxMTEwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMTUsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjExMDk6XFx0XFx0LmV4dHJhID0gXFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTEwLVxcdFxcdFxcdC5pbmRleCA9IDMsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjExMTE6XFx0XFx0XFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTExMjpcXHRcXHRcXHQuZW5hYmxlID0gcHRwX29jcF90c19lbmFibGUsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTExMTMtXFx0XFx0fSxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTE3LVxcdFxcdC5vZmZzZXQgPSAweDAxMTIwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMTYsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjExMTg6XFx0XFx0LmV4dHJhID0gXFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTE5LVxcdFxcdFxcdC5pbmRleCA9IDQsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjExMjA6XFx0XFx0XFx0LmlycV9mY24gPSBwdHBfb2NwX3RzX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTEyMTpcXHRcXHRcXHQuZW5hYmxlID0gcHRwX29jcF90c19lbmFibGUsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTExMjItXFx0XFx0fSxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTI3LVxcdFxcdC5vZmZzZXQgPSAweDAxMEMwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMCxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTEyODpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTExMjktXFx0XFx0XFx0LmluZGV4ID0gNSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTEzMDpcXHRcXHRcXHQuaXJxX2ZjbiA9IHB0cF9vY3BfdHNfaXJxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTMxOlxcdFxcdFxcdC5lbmFibGUgPSBwdHBfb2NwX3RzX2VuYWJsZSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTEzMi1cXHRcXHR9LFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTExMzYtXFx0XFx0Lm9mZnNldCA9IDB4MDEwRDAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAxMSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTEzNzpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTExMzgtXFx0XFx0XFx0LmluZGV4ID0gMSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTEzOTpcXHRcXHRcXHQuaXJxX2ZjbiA9IHB0cF9vY3Bfc2lnbmFsX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTE0MDpcXHRcXHRcXHQuZW5hYmxlID0gcHRwX29jcF9zaWduYWxfZW5hYmxlLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTQxLVxcdFxcdH0sXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTE0NS1cXHRcXHQub2Zmc2V0ID0gMHgwMTBFMDAwMCwgLnNpemUgPSAweDEwMDAwLCAuaXJxX3ZlYyA9IDEyLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTQ2OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3BfZXh0X2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTE0Ny1cXHRcXHRcXHQuaW5kZXggPSAyLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTQ4OlxcdFxcdFxcdC5pcnFfZmNuID0gcHRwX29jcF9zaWduYWxfaXJxLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMTQ5OlxcdFxcdFxcdC5lbmFibGUgPSBwdHBfb2NwX3NpZ25hbF9lbmFibGUsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTExNTAtXFx0XFx0fSxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTU0LVxcdFxcdC5vZmZzZXQgPSAweDAxMEYwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gMTMsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjExNTU6XFx0XFx0LmV4dHJhID0gXFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9leHRfaW5mbykge1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTU2LVxcdFxcdFxcdC5pbmRleCA9IDMsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjExNTc6XFx0XFx0XFx0LmlycV9mY24gPSBwdHBfb2NwX3NpZ25hbF9pcnEsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjExNTg6XFx0XFx0XFx0LmVuYWJsZSA9IHB0cF9vY3Bfc2lnbmFsX2VuYWJsZSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTE1OS1cXHRcXHR9LFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTExNjMtXFx0XFx0Lm9mZnNldCA9IDB4MDExMDAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSAxNCxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTE2NDpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2V4dF9pbmZvKSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTExNjUtXFx0XFx0XFx0LmluZGV4ID0gNCxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTE2NjpcXHRcXHRcXHQuaXJxX2ZjbiA9IHB0cF9vY3Bfc2lnbmFsX2lycSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTE2NzpcXHRcXHRcXHQuZW5hYmxlID0gcHRwX29jcF9zaWduYWxfZW5hYmxlLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMTY4LVxcdFxcdH0sXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTIwMC1cXHRcXHQub2Zmc2V0ID0gMHgwMDE2MDAwMCArIDB4MTAwMCwgLmlycV92ZWMgPSAzLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMjAxOlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3Bfc2VyaWFsX3BvcnQpIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTIwMi1cXHRcXHRcXHQuYmF1ZCA9IDk2MDAsXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTIwNy1cXHRcXHQub2Zmc2V0ID0gMHgwMDE4MDAwMCArIDB4MTAwMCwgLmlycV92ZWMgPSA1LFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMjA4OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3Bfc2VyaWFsX3BvcnQpIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTIwOS1cXHRcXHRcXHQuYmF1ZCA9IDExNTIwMCxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMjMwLVxcdFxcdC5vZmZzZXQgPSAweDAwMzEwMDAwLCAuc2l6ZSA9IDB4MTAwMDAsIC5pcnFfdmVjID0gOSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTIzMTpcXHRcXHQuZXh0cmEgPSBcXHUwMDI2KHN0cnVjdCBwdHBfb2NwX2ZsYXNoX2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTIzMi1cXHRcXHRcXHQubmFtZSA9IFxcXCJ4aWxpbnhfc3BpXFxcIiwgLnBjaV9vZmZzZXQgPSAwLFxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEyNDctXFx0XFx0Lm9mZnNldCA9IDB4MDAxNTAwMDAsIC5zaXplID0gMHgxMDAwMCwgLmlycV92ZWMgPSA3LFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMjQ4OlxcdFxcdC5leHRyYSA9IFxcdTAwMjYoc3RydWN0IHB0cF9vY3BfaTJjX2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTI0OS1cXHRcXHRcXHQubmFtZSA9IFxcXCJ4aWljLWkyY1xcXCIsXFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTI2Mi1cXHR7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEyNjM6XFx0XFx0LnNldHVwID0gcHRwX29jcF9hZHZhX2JvYXJkX2luaXQsXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEyNjQ6XFx0XFx0LmV4dHJhID0gXFx1MDAyNihzdHJ1Y3QgcHRwX29jcF9hZHZhX2luZm8pIHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTI2NS1cXHRcXHRcXHQuc2Vydm8gPSB7XFxuLS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTI4MC1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTI4MTpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgcHRwX29jcF9wY2lkZXZfaWRbXSA9IHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTI4Mi1cXHR7IFBDSV9ERVZJQ0VfREFUQShNRVRBLCBUSU1FQ0FSRCwgXFx1MDAyNm9jcF9mYl9yZXNvdXJjZSkgfSxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMjg4LX07XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEyODk6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIHB0cF9vY3BfcGNpZGV2X2lkKTtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTI5MC1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmM6MTI5MTpzdGF0aWMgREVGSU5FX01VVEVYKHB0cF9vY3BfbG9jayk7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEyOTI6c3RhdGljIERFRklORV9JRFIocHRwX29jcF9pZHIpO1xcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMjkzLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMjk0OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2NwX3NlbGVjdG9yIHB0cF9vY3BfY2xvY2tbXSA9IHtcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTI5NS1cXHR7IC5uYW1lID0gXFxcIk5PTkVcXFwiLFxcdC52YWx1ZSA9IDAgfSxcXG4tLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0xMzEwLVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMzExOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2NwX3NlbGVjdG9yIHB0cF9vY3Bfc21hX2luW10gPSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTEzMTItXFx0eyAubmFtZSA9IFxcXCIxME1oelxcXCIsICAudmFsdWUgPSAweDAwMDAsICAgICAgLmZyZXF1ZW5jeSA9IDEwMDAwMDAwIH0sXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDA2OjAyOjU3LjExMDc2Njg4OVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwNDg5MzQ1MjE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoIEZ1enppbmcgRGVjaXNpb246IFVuY2VydGFpbiwgTGVhbmluZyBUb3dhcmRzIFwiTm9cIioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIHRoZSBgQ09ORklHX1BUUF8xNTg4X0NMT0NLX09DUGAgY29uZmlnLiBJdCBhZGRzIGByZXF1ZXN0X21vZHVsZShcImkyYy1kZXZcIik7YCB0byBgcHRwX29jcF9pbml0KClgIGFuZCBhIHN5c2ZzIGF0dHJpYnV0ZSwgYGkyY19idXNfY3RybGAsIHRoYXQgcmVhZHMgYW5kIHdyaXRlcyB0byBgYnAtXHUwMDNlcHBzX3NlbGVjdC1cdTAwM2VfX3BhZDFgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIFwiSXMgdGhpcyBldmVuIHdvcnRoIGZ1enppbmc/XCJcblxuU3l6a2FsbGVyICpjYW4qIGZ1enogc3lzZnMgYXR0cmlidXRlcywgdGhhdCdzIGEga25vd24uIEJ1dCwgdW5sZXNzIHRoZXJlIGFyZSBkZXZpY2UgZGVzY3JpcHRpb25zIG9yIHRoZSBnZW5lcmljIHN5c2ZzIGZ1enplciBpcyB1c2VkLCBpdCBkb2Vzbid0IHRhcmdldCBzcGVjaWZpYyBQQ0kgZGV2aWNlcyBieSB0aGVpciBzeXNmcyBhdHRyaWJ1dGVzLiBUaGUgY29kZSBpdHNlbGYgaXMgcmVhbGx5IHNpbXBsZSB0aG91Z2guIFdlJ3JlIHRhbGtpbmcgYSB0cml2aWFsIHN5c2ZzIHJlYWQvd3JpdGUgd3JhcHBlciBhcm91bmQgYW4gTU1JTyByZWdpc3RlcjpcblxuYGBgY1xuc3RhdGljIHNzaXplX3RcbmkyY19idXNfY3RybF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1Zilcbntcblx0c3RydWN0IHB0cF9vY3AgKmJwID0gZGV2X2dldF9kcnZkYXRhKGRldik7XG5cblx0aWYgKCFicC1cdTAwM2VwcHNfc2VsZWN0KVxuXHRcdHJldHVybiAtRU5PREVWO1xuXHRyZXR1cm4gc3lzZnNfZW1pdChidWYsIFwiMHglMDh4XFxuXCIsXG5cdFx0XHQgIGlvcmVhZDMyKFx1MDAyNmJwLVx1MDAzZXBwc19zZWxlY3QtXHUwMDNlX19wYWQxKSk7XG59XG5cbnN0YXRpYyBzc2l6ZV90XG5pMmNfYnVzX2N0cmxfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0cixcblx0XHQgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudClcbntcblx0c3RydWN0IHB0cF9vY3AgKmJwID0gZGV2X2dldF9kcnZkYXRhKGRldik7XG5cdHUzMiB2YWw7XG5cblx0aWYgKCFicC1cdTAwM2VwcHNfc2VsZWN0KVxuXHRcdHJldHVybiAtRU5PREVWO1xuXHRpZiAoa3N0cnRvdTMyKGJ1ZiwgMCwgXHUwMDI2dmFsKSlcblx0XHRyZXR1cm4gLUVJTlZBTDtcblx0aW93cml0ZTMyKHZhbCwgXHUwMDI2YnAtXHUwMDNlcHBzX3NlbGVjdC1cdTAwM2VfX3BhZDEpO1xuXHRyZXR1cm4gY291bnQ7XG59XG5gYGBcblxuSXMgdGhpcyBmdW5jdGlvbmFsIGxvZ2ljIHRoYXQgKm5lZWRzKiBmdXp6aW5nPyBJdCdzIGp1c3QgcmVnaXN0ZXIgcmVhZC93cml0ZSEgIFRoZSBgcmVxdWVzdF9tb2R1bGUoXCJpMmMtZGV2XCIpO2AgY2FsbCwgSSdtIHRoaW5raW5nLCBpcyBwcm9iYWJseSBub3Qgd2hlcmUgdGhlIGp1aWN5IGJ1Z3MgYXJlLlxuXG5UaGUgcHJvbXB04oCZcyBkZWZpbml0aW9uIG9mIHdoYXQncyAqbm90KiB3b3J0aCBmdXp6aW5nIGNvbWVzIHRvIG1pbmQ6IGRvY3VtZW50YXRpb24sIEtjb25maWcsIGNvbW1lbnRzLCBsb2dnaW5nIGNoYW5nZXMsIGNvbnN0YW50IG1vZGlmaWNhdGlvbnMgdGhhdCBkb24ndCBhbHRlciBmbG93LCBhbmQgY29kZSB0aGF0J3MgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiAgVGhpcyBpcyBhIFBDSSBkcml2ZXIsIGBwdHBfb2NwYCBmb3IgdGhlIE9wZW4gQ29tcHV0ZSBQcm9qZWN0IFRpbWUgQ2FyZC4gQ2FuIHRoaXMgZXZlbiBiZSBwcm9iZWQgaW4gUUVNVT9cblxuV2FpdCwgU3l6a2FsbGVyJ3MgUENJIGZ1enplciBjYW4gZW11bGF0ZSBQQ0kgZGV2aWNlcywgaW50ZXJjZXB0aW5nIGFjY2Vzc2VzLiBCdXQgaXQgbmVlZHMgdGhlIFBDSSBkZXZpY2UgSUQsIG9yIGl0IGNhbiBiZSBndWVzc2VkLiAgQWgsIGhlcmUgd2UgZ286IGBQQ0lfREVWSUNFX0RBVEEoTUVUQSwgVElNRUNBUkQsIFx1MDAyNm9jcF9mYl9yZXNvdXJjZSlgLCBNRVRBIGlzIEZhY2Vib29rICh2ZW5kb3IgSUQgMHgxZDliKS4gU28sIGlmIHRoZSBQQ0kgZnV6emVyIGlzIGVuYWJsZWQsIGl0ICpjYW4qIHByb2JlIGl0LlxuXG5CdXQgaXMgaXQgd29ydGggdGhlIGVmZm9ydD8gVHdvIHN5c2ZzIG1ldGhvZHMgZm9yIGEgMzItYml0IHJlZ2lzdGVyIGFuZCBhIGByZXF1ZXN0X21vZHVsZWAgY2FsbC4gSSBkb24ndCBzZWUgYW55IGNvbXBsZXggbG9naWMgaGVyZS4gSSBzdGlsbCBuZWVkIHRvIGRvdWJsZS1jaGVjayBpZiB0aGVyZSBpcyBhbnl0aGluZyBlbHNlLiAgU28sIEkgYW0gbGVhbmluZyB0b3dhcmQgXCJubyxcIiBidXQgSSBuZWVkIHRvIG1ha2Ugc3VyZSBJJ20gbm90IG1pc3Npbmcgc29tZXRoaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNzA2NiwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg2MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQwNjowMzowNy42MDAxMTM5OTVaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTg4Njc1OTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaTJjX2J1c19jdHJsX3N0b3JlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvcHRwL3B0cF9vY3AuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3B0cC9wdHBfb2NwLmM9NDIzOD1zdGF0aWMgc3NpemVfdFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzo0MjM5OmkyY19idXNfY3RybF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy00MjQwLVxcdFxcdCAgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQwNjowMzowNy42NTg5ODU1ODlaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5NDQwMzY0OTQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZyBEZWNpc2lvbiBmb3IgSTJDIEJ1cyBDb250cm9sIGluIGFkdmFfdGltZWNhcmRfeDEqKlxuXG5Pa2F5LCBsZXQgbWUgdGhpbmsgdGhpcyB0aHJvdWdoLiBUaGlzIHBhdGNoIGludHJvZHVjZXMgYGkyY19idXNfY3RybF9zaG93YCBhbmQgYGkyY19idXNfY3RybF9zdG9yZWAsIGFkZHMgaXQgdG8gYGFkdmFfdGltZWNhcmRfeDFfYXR0cnNgLCBhbmQgYWxzbyBjYWxscyBgcmVxdWVzdF9tb2R1bGUoXCJpMmMtZGV2XCIpO2Agd2l0aGluIGBwdHBfb2NwX2luaXQoKWAuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gbGVhbiB0b3dhcmRzIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgY29yZSBsb2dpYyBvZiBgaTJjX2J1c19jdHJsX3N0b3JlYCBpcyBleHRyZW1lbHkgc2ltcGxlOiBhIGBrc3RydG91MzJgLCBhIGRpcmVjdCBNTUlPIHdyaXRlIHVzaW5nIGBpb3dyaXRlMzJgLCBhbmQgYSBjb3VudCByZXR1cm4uIE5vIGNvbXBsZXggY29uZGl0aW9uYWwgc3RhdGVtZW50cywgbm8gZHluYW1pYyBtZW1vcnkgYWxsb2NhdGlvbiwgbm8gbG9ja2luZyBjb21wbGljYXRpb25zLCBhbmQgbm8gbG9vcHMgdG8gZ2V0IGh1bmcgdXAgaW4uIEl0J3MgZXNzZW50aWFsbHkgYSB0cml2aWFsIHN5c2ZzIHdyYXBwZXIgYXJvdW5kIGFuIE1NSU8gb3BlcmF0aW9uLCBhbG9uZyB3aXRoIGEgbW9kdWxlIGxvYWQuXG5cbkhvd2V2ZXIsIHRoZSBwcm9tcHQgc2F5cyBJIG5lZWQgdG8gY29uc2lkZXIgcmVhY2hhYmlsaXR5IGFuZCBpZiBpdCB0b3VjaGVzIGNvcmUga2VybmVsIGxvZ2ljLiBUaGUgZHJpdmVyIGluIHF1ZXN0aW9uIHJlbGllcyBvbiB0aGUgcHJlc2VuY2Ugb2YgYSBzcGVjaWZpYyBQQ0kgZGV2aWNlLiBOb3csIFN5emthbGxlcidzIFBDSSBmdXp6ZXIgY2FuIHRlY2huaWNhbGx5IGVtdWxhdGUgdGhpcyBQQ0kgZGV2aWNlLiBUaGUgcXVlc3Rpb24gaXMsIGlzIGl0ICpyZWFsbHkqIHdvcnRoIHRoZSBlZmZvcnQ/XG5cblRoZSBwcm9tcHQgc3RhdGVzIEkgc2hvdWxkIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiB0aGUgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VLiBTeXprYWxsZXIncyBQQ0kgZnV6emluZyBzdHJhdGVneSBkb2Vzbid0IHJlYWRpbHkgZml0IHRoYXQgZGVmaW5pdGlvbi4gV2hpbGUgaXQgY2FuIGluamVjdCBNTUlPIHJlYWRzL3dyaXRlcywgaXQgZG9lc24ndCBvZmZlciBmdWxsIGRldmljZSBlbXVsYXRpb24gd2l0aGluIFFFTVUgaW4gdGhlIHNhbWUgd2F5IGBtYWM4MDIxMV9od3NpbWAgb3IgYGR1bW15X2hjZGAgZm9yIFVTQiBkb2VzLiBVcHN0cmVhbSBrZXJuZWxzIGRvbid0IGhhdmUgYSBnZW5lcmljIFBDSSBlbXVsYXRvciB0aGF0IGNvdWxkIGluc3RhbnRpYXRlIGFyYml0cmFyeSBQQ0kgZGV2aWNlcyB3aXRoIHNwZWNpZmljIHZlbmRvci9kZXZpY2UgSURzIGVhc2lseS4gU3l6a2FsbGVyIHVzZXMgdGhlIGAvZGV2L3Jhdy1wY2lgIHR5cGUgb2YgaW50ZXJmYWNlLCB3aGljaCBhbGxvd3MgZm9yIHRlc3RpbmcgaWYgdGhlIGRldmljZSBwcm9iZXMuIElmIHRoZXJlJ3Mgbm8gUUVNVSBlbXVsYXRpb24gZm9yIHRoZSBPQ1AgVGltZWNhcmQsIHRoZSBkcml2ZXIgd29uJ3QgcHJvYmUgaW4gYSBzdGFuZGFyZCBWTSBzZXR1cC5cblxuVGhlcmVmb3JlLCBiZWNhdXNlIHRoaXMgZHJpdmVyIHNlZW1zIHJlbGlhbnQgb24gYSByZWFsIG9yIHZlcnkgc3BlY2lmaWMgUENJIGRldmljZSwgYW5kIGJlY2F1c2UgYSBnZW5lcmljIGVtdWxhdG9yIGlzbid0IHJlYWRpbHkgYXZhaWxhYmxlIGluIHRoZSB1cHN0cmVhbSBrZXJuZWwgZm9yIFFFTVUsIEknbSBsZWFuaW5nIGJhY2sgdG93YXJkcyBgV29ydGhGdXp6aW5nPWZhbHNlYC4gSSBuZWVkIHRvIGVuc3VyZSB0aGUgdGFyZ2V0IGlzIHJlYWNoYWJsZSB0byBiZWdpbiB3aXRoIGFuZCBJJ20gbm90IGNvbnZpbmNlZCBpdCBpcy4gTGV0IG1lIGNoZWNrIGlmIHRoZXJlIGlzIGFueSBzb2Z0d2FyZSBlbXVsYXRpb24gYXZhaWxhYmxlIGZpcnN0IHRvIGJlIHN1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4ODI0LCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTk2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDA2OjAzOjE3LjA5OTM1MjQ5NloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjE5MjUyMjA2OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJUSU1FQ0FSRFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9wdHAvcHRwX29jcC5jLTI3LVxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoyODojZGVmaW5lIFBDSV9ERVZJQ0VfSURfTUVUQV9USU1FQ0FSRFxcdFxcdDB4MDQwMFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYy0yOS1cXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMzAtI2RlZmluZSBQQ0lfVkVORE9SX0lEX0NFTEVTVElDQVxcdFxcdFxcdDB4MThkNFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzozMTojZGVmaW5lIFBDSV9ERVZJQ0VfSURfQ0VMRVNUSUNBX1RJTUVDQVJEXFx0MHgxMDA4XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTMyLVxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTM2LSNkZWZpbmUgUENJX1ZFTkRPUl9JRF9BRFZBXFx0XFx0XFx0MHhhZDVhXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjM3OiNkZWZpbmUgUENJX0RFVklDRV9JRF9BRFZBX1RJTUVDQVJEXFx0XFx0MHgwNDAwXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjM4OiNkZWZpbmUgUENJX0RFVklDRV9JRF9BRFZBX1RJTUVDQVJEX1gxXFx0XFx0MHgwNDEwXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jLTM5LVxcbi0tXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jPTEyODE9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHB0cF9vY3BfcGNpZGV2X2lkW10gPSB7XFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEyODI6XFx0eyBQQ0lfREVWSUNFX0RBVEEoTUVUQSwgVElNRUNBUkQsIFxcdTAwMjZvY3BfZmJfcmVzb3VyY2UpIH0sXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEyODM6XFx0eyBQQ0lfREVWSUNFX0RBVEEoQ0VMRVNUSUNBLCBUSU1FQ0FSRCwgXFx1MDAyNm9jcF9mYl9yZXNvdXJjZSkgfSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTI4NC1cXHR7IFBDSV9ERVZJQ0VfREFUQShPUk9MSUEsIEFSVENBUkQsIFxcdTAwMjZvY3BfYXJ0X3Jlc291cmNlKSB9LFxcbmRyaXZlcnMvcHRwL3B0cF9vY3AuYzoxMjg1OlxcdHsgUENJX0RFVklDRV9EQVRBKEFEVkEsIFRJTUVDQVJELCBcXHUwMDI2b2NwX2FkdmFfcmVzb3VyY2UpIH0sXFxuZHJpdmVycy9wdHAvcHRwX29jcC5jOjEyODY6XFx0eyBQQ0lfREVWSUNFX0RBVEEoQURWQSwgVElNRUNBUkRfWDEsIFxcdTAwMjZvY3BfYWR2YV94MV9yZXNvdXJjZSkgfSxcXG5kcml2ZXJzL3B0cC9wdHBfb2NwLmMtMTI4Ny1cXHR7IH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMDY6MDM6MTkuMjkxODc5NDA0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4MDE5NzI5MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudDogVW50ZXN0YWJsZSBpbiBWaXJ0dWFsaXplZCBFbnZpcm9ubWVudHMqKlxuXG5Pa2F5LCBzbyBsb29raW5nIGF0IHRoaXMgUENJIGRldmljZSBkcml2ZXIsIHRoZSBjb25jbHVzaW9uIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIFRoZXJlJ3Mgbm8gc29mdHdhcmUgZW11bGF0aW9uIGF2YWlsYWJsZSBmb3IgdGhpcyB0aGluZyB3aXRoaW4gdGhlIGtlcm5lbC4gVGhhdCBtZWFucywgdW5sZXNzIEkndmUgZ290IHRoZSBhY3R1YWwgaGFyZHdhcmUgcHJlc2VudCBvciBhIG1ldGljdWxvdXNseSBjcmFmdGVkIFFFTVUgZGV2aWNlIG1vZGVsIGZvciBpdCwgdGhlcmUncyBhYnNvbHV0ZWx5IG5vIHdheSB0byBhY3R1YWxseSAqcHJvYmUqIHRoZSBkcml2ZXIuIEluIG90aGVyIHdvcmRzLCB0aGUgY29yZSBjb2RlIHBhdGhzIGFyZSBlZmZlY3RpdmVseSBkZWFkIGVuZHMgaW4gZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIHRoZSBzdGFuZGFyZCBRRU1VIHNldHVwLiBTaW5jZSBteSBnb2FsIGlzIGZ1enppbmcsIGFuZCB0aGlzIGRyaXZlciBpcyB1bnRvdWNoYWJsZSBpbiBhIGZ1enppbmcgZnJpZW5kbHkgZW52aXJvbm1lbnQsIEknbSBnb2luZyB0byBzZXQgYFdvcnRoRnV6emluZz1mYWxzZWAuIFRoZSByZWFzb25pbmcgaXMgc29saWQ6IGl0J3MgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kgZHJpdmVyLCBhbmQgd2l0aG91dCBwcm9wZXIgc29mdHdhcmUgZW11bGF0aW9uLCBpdCdzIGp1c3Qgc2ltcGx5IG5vdCByZWFjaGFibGUgZHVyaW5nIHRlc3RpbmcgaW4gdGhlIGtpbmQgb2YgdmlydHVhbGl6YXRpb24gSSB0eXBpY2FsbHkgZGVhbCB3aXRoLiBObyBwb2ludCBpbiB3YXN0aW5nIGN5Y2xlcyBvbiBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjA1NjIsIk91dHB1dFRva2VucyI6OTksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQwNjowMzoyNC4wOTM4NTQ3MVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzNDMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlciAocHRwX29jcCkgZm9yIHRoZSBPcGVuIENvbXB1dGUgUHJvamVjdCBUaW1lIENhcmQuIFRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBkZXZpY2UgaW4gdGhlIGtlcm5lbCBvciBzdGFuZGFyZCBRRU1VLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBBZGRpdGlvbmFsbHksIHRoZSBjaGFuZ2VzIGFyZSB0cml2aWFsIHN5c2ZzIHdyYXBwZXJzIGFyb3VuZCBNTUlPIHJlYWRzL3dyaXRlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRyaXZlciAocHRwX29jcCkgZm9yIHRoZSBPcGVuIENvbXB1dGUgUHJvamVjdCBUaW1lIENhcmQuIFRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBkZXZpY2UgaW4gdGhlIGtlcm5lbCBvciBzdGFuZGFyZCBRRU1VLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBBZGRpdGlvbmFsbHksIHRoZSBjaGFuZ2VzIGFyZSB0cml2aWFsIHN5c2ZzIHdyYXBwZXJzIGFyb3VuZCBNTUlPIHJlYWRzL3dyaXRlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowvczfm[1] Phase: Running StartedAt: 2026-06-28 06:03:36 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvczfm[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-06-28 06:03:36 +0000 UTC FinishedAt: 2026-06-28 06:03:41 +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,}