Name: series-workflowpj2ts Phase: Failed StartedAt: 2026-07-17 11:58:51 +0000 UTC FinishedAt: 2026-07-17 12:32:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpj2ts[0] Phase: Succeeded StartedAt: 2026-07-17 11:58:51 +0000 UTC FinishedAt: 2026-07-17 12:32:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpj2ts[0].run-triage Phase: Succeeded StartedAt: 2026-07-17 11:58:51 +0000 UTC FinishedAt: 2026-07-17 12:32:44 +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+CgkJCTx0ZD4yMDI2LzA3LzE3IDEyOjMyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBlZ3Jlc3MgcmF0ZSBjb25maWd1cmF0aW9uIGxvZ2ljIGluIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgZHJpdmVyLiBUaGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRldmljZSBkcml2ZXIgdGhhdCBpcyBub3QgcmVhY2hhYmxlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBHQ0Ugb3IgUUVNVSkgdXNlZCBmb3IgZnV6emluZywgYXMgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGF2YWlsYWJsZSBmb3IgdGhpcyBoYXJkd2FyZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMTI6MzI8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBmOTc5YjAyZjEwMGNhNzA0NGRmOGMwODU2YmRlZWJlNGEwMjYyODY0XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMTcgMTI6MzI6MDggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmNcbmluZGV4IDQwMTYyYjA4MDE0ZGQ2Li4wYjQ2ZWMyOWU2NGVhYSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmNcbkBAIC0zMCw2ICYjNDM7MzAsNyBAQFxuICNkZWZpbmUgT1RYMl9VTlNVUFBfTFNFX0RFUFRIXHRcdEdFTk1BU0soNiwgNClcbiBcbiAjZGVmaW5lIE1DQVNUX0lOVkFMSURfR1JQXHRcdCgtMVUpXG4mIzQzOyNkZWZpbmUgUkFURV9NQU5USVNTQV9CSVRTXHRcdDhcbiBcbiBzdGF0aWMgdm9pZCBvdHgyX2dldF9lZ3Jlc3NfYnVyc3RfY2ZnKHN0cnVjdCBvdHgyX25pYyAqbmljLCB1MzIgYnVyc3QsXG4gXHRcdFx0XHQgICAgICB1MzIgKmJ1cnN0X2V4cCwgdTMyICpidXJzdF9tYW50aXNzYSlcbkBAIC02NiwyOCAmIzQzOzY3LDMwIEBAIHN0YXRpYyB2b2lkIG90eDJfZ2V0X2VncmVzc19idXJzdF9jZmcoc3RydWN0IG90eDJfbmljICpuaWMsIHUzMiBidXJzdCxcbiBzdGF0aWMgdm9pZCBvdHgyX2dldF9lZ3Jlc3NfcmF0ZV9jZmcodTY0IG1heHJhdGUsIHUzMiAqZXhwLFxuIFx0XHRcdFx0ICAgICB1MzIgKm1hbnRpc3NhLCB1MzIgKmRpdl9leHApXG4ge1xuLVx0dTY0IHRtcDtcbi1cbiBcdC8qIFJhdGUgY2FsY3VsYXRpb24gYnkgaGFyZHdhcmVcbiBcdCAqXG4gXHQgKiBQSVJfQUREID0gKCgyNTYgJiM0MzsgbWFudGlzc2EpIFx1MDAzY1x1MDAzYyBleHApIC8gMjU2XG4gXHQgKiByYXRlID0gKDIgKiBQSVJfQUREKSAvICggMSBcdTAwM2NcdTAwM2MgZGl2X2V4cClcbiBcdCAqIFRoZSByZXN1bHRhbnQgcmF0ZSBpcyBpbiBNYnBzLlxuJiM0MztcdCAqXG4mIzQzO1x0ICogVXNlIGRpdl9leHAgPSAwIGFuZCBjb21wdXRlIGV4cC9tYW50aXNzYSBmb3IgbWF4cmF0ZSAvIDI7IHRoZVxuJiM0MztcdCAqIGxlYWRpbmcgZmFjdG9yIG9mIHR3byB5aWVsZHMgdGhlIGZ1bGwgcmF0ZS4gUmF0ZXMgYmVsb3cgMiBNYnBzXG4mIzQzO1x0ICogYXJlIGZsb29yZWQgdG8gdGhlIHNtYWxsZXN0IHN0ZXAgKGV4cCA9IDAsIG1hbnRpc3NhID0gMCkuXG4gXHQgKi9cbiBcbi1cdC8qIDJNYnBzIHRvIDEwMEdicHMgY2FuIGJlIGV4cHJlc3NlZCB3aXRoIGRpdl9leHAgPSAwLlxuLVx0ICogU2V0dGluZyB0aGlzIHRvICYjMzk7MCYjMzk7IHdpbGwgZWFzZSB0aGUgY2FsY3VsYXRpb24gb2Zcbi1cdCAqIGV4cG9uZW50IGFuZCBtYW50aXNzYS5cbi1cdCAqL1xuIFx0KmRpdl9leHAgPSAwO1xuLVxuIFx0aWYgKG1heHJhdGUpIHtcbi1cdFx0KmV4cCA9IGlsb2cyKG1heHJhdGUpID8gaWxvZzIobWF4cmF0ZSkgLSAxIDogMDtcbi1cdFx0dG1wID0gbWF4cmF0ZSAtIHJvdW5kZG93bl9wb3dfb2ZfdHdvKG1heHJhdGUpO1xuLVx0XHRpZiAobWF4cmF0ZSBcdTAwM2MgTUFYX1JBVEVfTUFOVElTU0EpXG4tXHRcdFx0Km1hbnRpc3NhID0gdG1wICogMjtcbi1cdFx0ZWxzZVxuLVx0XHRcdCptYW50aXNzYSA9IHRtcCAvICgxVUxMIFx1MDAzY1x1MDAzYyAoKmV4cCAtIDcpKTtcbiYjNDM7XHRcdG1heHJhdGUgPSBtYXhyYXRlIC8gMjtcbiYjNDM7XHRcdGlmICghbWF4cmF0ZSkge1xuJiM0MztcdFx0XHQvKiBSYXRlcyBiZWxvdyAyIE1icHMgbWFwIHRvIHRoZSBzbWFsbGVzdCBzdGVwICovXG4mIzQzO1x0XHRcdCpleHAgPSAwO1xuJiM0MztcdFx0XHQqbWFudGlzc2EgPSAwO1xuJiM0MztcdFx0fSBlbHNlIHtcbiYjNDM7XHRcdFx0KmV4cCA9IGlsb2cyKG1heHJhdGUpO1xuJiM0MztcdFx0XHQvKiBDbGVhciBNU0IgYW5kIGRlcml2ZSBmcmFjdGlvbmFsIGJpdHMgKi9cbiYjNDM7XHRcdFx0bWF4cmF0ZSBcdTAwMjY9IH5CSVQoKmV4cCk7XG4mIzQzO1x0XHRcdCptYW50aXNzYSA9IChtYXhyYXRlIFx1MDAzY1x1MDAzYyBSQVRFX01BTlRJU1NBX0JJVFMpIFx1MDAzZVx1MDAzZSAqZXhwO1xuJiM0MztcdFx0fVxuIFx0fSBlbHNlIHtcbiBcdFx0LyogSW5zdGVhZCBvZiBkaXNhYmxpbmcgcmF0ZSBsaW1pdGluZywgc2V0IGFsbCB2YWx1ZXMgdG8gbWF4ICovXG4gXHRcdCpleHAgPSBNQVhfUkFURV9FWFBPTkVOVDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAxMjozMjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgZWdyZXNzIHJhdGUgY29uZmlndXJhdGlvbiBsb2dpYyBpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgTklDIGRyaXZlci4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkZXZpY2UgZHJpdmVyIHRoYXQgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgR0NFIG9yIFFFTVUpIHVzZWQgZm9yIGZ1enppbmcsIGFzIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBhdmFpbGFibGUgZm9yIHRoaXMgaGFyZHdhcmUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBmOTc5YjAyZjEwMGNhNzA0NGRmOGMwODU2YmRlZWJlNGEwMjYyODY0CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBKdWwgMTcgMTI6MzI6MDggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90Yy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuYwppbmRleCA0MDE2MmIwODAxNGRkNi4uMGI0NmVjMjllNjRlYWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuYwpAQCAtMzAsNiAmIzQzOzMwLDcgQEAKICNkZWZpbmUgT1RYMl9VTlNVUFBfTFNFX0RFUFRICQlHRU5NQVNLKDYsIDQpCiAKICNkZWZpbmUgTUNBU1RfSU5WQUxJRF9HUlAJCSgtMVUpCiYjNDM7I2RlZmluZSBSQVRFX01BTlRJU1NBX0JJVFMJCTgKIAogc3RhdGljIHZvaWQgb3R4Ml9nZXRfZWdyZXNzX2J1cnN0X2NmZyhzdHJ1Y3Qgb3R4Ml9uaWMgKm5pYywgdTMyIGJ1cnN0LAogCQkJCSAgICAgIHUzMiAqYnVyc3RfZXhwLCB1MzIgKmJ1cnN0X21hbnRpc3NhKQpAQCAtNjYsMjggJiM0Mzs2NywzMCBAQCBzdGF0aWMgdm9pZCBvdHgyX2dldF9lZ3Jlc3NfYnVyc3RfY2ZnKHN0cnVjdCBvdHgyX25pYyAqbmljLCB1MzIgYnVyc3QsCiBzdGF0aWMgdm9pZCBvdHgyX2dldF9lZ3Jlc3NfcmF0ZV9jZmcodTY0IG1heHJhdGUsIHUzMiAqZXhwLAogCQkJCSAgICAgdTMyICptYW50aXNzYSwgdTMyICpkaXZfZXhwKQogewotCXU2NCB0bXA7Ci0KIAkvKiBSYXRlIGNhbGN1bGF0aW9uIGJ5IGhhcmR3YXJlCiAJICoKIAkgKiBQSVJfQUREID0gKCgyNTYgJiM0MzsgbWFudGlzc2EpICZsdDsmbHQ7IGV4cCkgLyAyNTYKIAkgKiByYXRlID0gKDIgKiBQSVJfQUREKSAvICggMSAmbHQ7Jmx0OyBkaXZfZXhwKQogCSAqIFRoZSByZXN1bHRhbnQgcmF0ZSBpcyBpbiBNYnBzLgomIzQzOwkgKgomIzQzOwkgKiBVc2UgZGl2X2V4cCA9IDAgYW5kIGNvbXB1dGUgZXhwL21hbnRpc3NhIGZvciBtYXhyYXRlIC8gMjsgdGhlCiYjNDM7CSAqIGxlYWRpbmcgZmFjdG9yIG9mIHR3byB5aWVsZHMgdGhlIGZ1bGwgcmF0ZS4gUmF0ZXMgYmVsb3cgMiBNYnBzCiYjNDM7CSAqIGFyZSBmbG9vcmVkIHRvIHRoZSBzbWFsbGVzdCBzdGVwIChleHAgPSAwLCBtYW50aXNzYSA9IDApLgogCSAqLwogCi0JLyogMk1icHMgdG8gMTAwR2JwcyBjYW4gYmUgZXhwcmVzc2VkIHdpdGggZGl2X2V4cCA9IDAuCi0JICogU2V0dGluZyB0aGlzIHRvICYjMzk7MCYjMzk7IHdpbGwgZWFzZSB0aGUgY2FsY3VsYXRpb24gb2YKLQkgKiBleHBvbmVudCBhbmQgbWFudGlzc2EuCi0JICovCiAJKmRpdl9leHAgPSAwOwotCiAJaWYgKG1heHJhdGUpIHsKLQkJKmV4cCA9IGlsb2cyKG1heHJhdGUpID8gaWxvZzIobWF4cmF0ZSkgLSAxIDogMDsKLQkJdG1wID0gbWF4cmF0ZSAtIHJvdW5kZG93bl9wb3dfb2ZfdHdvKG1heHJhdGUpOwotCQlpZiAobWF4cmF0ZSAmbHQ7IE1BWF9SQVRFX01BTlRJU1NBKQotCQkJKm1hbnRpc3NhID0gdG1wICogMjsKLQkJZWxzZQotCQkJKm1hbnRpc3NhID0gdG1wIC8gKDFVTEwgJmx0OyZsdDsgKCpleHAgLSA3KSk7CiYjNDM7CQltYXhyYXRlID0gbWF4cmF0ZSAvIDI7CiYjNDM7CQlpZiAoIW1heHJhdGUpIHsKJiM0MzsJCQkvKiBSYXRlcyBiZWxvdyAyIE1icHMgbWFwIHRvIHRoZSBzbWFsbGVzdCBzdGVwICovCiYjNDM7CQkJKmV4cCA9IDA7CiYjNDM7CQkJKm1hbnRpc3NhID0gMDsKJiM0MzsJCX0gZWxzZSB7CiYjNDM7CQkJKmV4cCA9IGlsb2cyKG1heHJhdGUpOwomIzQzOwkJCS8qIENsZWFyIE1TQiBhbmQgZGVyaXZlIGZyYWN0aW9uYWwgYml0cyAqLwomIzQzOwkJCW1heHJhdGUgJmFtcDs9IH5CSVQoKmV4cCk7CiYjNDM7CQkJKm1hbnRpc3NhID0gKG1heHJhdGUgJmx0OyZsdDsgUkFURV9NQU5USVNTQV9CSVRTKSAmZ3Q7Jmd0OyAqZXhwOwomIzQzOwkJfQogCX0gZWxzZSB7CiAJCS8qIEluc3RlYWQgb2YgZGlzYWJsaW5nIHJhdGUgbGltaXRpbmcsIHNldCBhbGwgdmFsdWVzIHRvIG1heCAqLwogCQkqZXhwID0gTUFYX1JBVEVfRVhQT05FTlQ7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDEyOjMyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0NzUKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiAyMTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgSGFyZHdhcmUgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgb3R4Ml9nZXRfZWdyZXNzX3JhdGVfY2ZnYCB3aXRoaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmNgLiBJdCYjMzk7cyB0d2Vha2luZyB0aGUgYGV4cGAgYW5kIGBtYW50aXNzYWAgY2FsY3VsYXRpb24gZm9yIGVncmVzcyByYXRlIGNvbmZpZ3VyYXRpb24sIHdoaWNoIGlzIHByZXR0eSBsb3ctbGV2ZWwgc3R1ZmYuIFRoaXMgaXMgYSBNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgZHJpdmVyLCBzcGVjaWZpY2FsbHkgaGFyZHdhcmUuIE15IGZpcnN0IGluc3RpbmN0IGlzLCBjYW4gSSBldmVuICpzZWUqIHRoaXMgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gSGFyZHdhcmUgZHJpdmVycywgZXNwZWNpYWxseSBOSUMgZHJpdmVycywgYXJlIHVzdWFsbHkgb2ZmLWxpbWl0cyB1bmxlc3MgeW91JiMzOTtyZSBzcGVjaWZpY2FsbHkgZW11bGF0aW5nIHRoZSBoYXJkd2FyZSBvciBkb2luZyBzb21lIHNlcmlvdXMgZnV6emluZyB3aXRoIG1vY2tzLgoKVGhlbiBJIHBhdXNlZC4gV2FpdC4uLiBkb2VzIHN5emthbGxlciB0YXJnZXQgdGhpcz8gSSBzaG91bGQgY2hlY2sgaWYgdGhlIGRyaXZlciBldmVuIGdldHMgcHJvYmVkLiBPZnRlbiwgeW91IGNhbiYjMzk7dCByZWFjaCB0aGVzZSBzcGVjaWZpYyBQQ0kgZHJpdmVycyB1bmxlc3MgdGhleSYjMzk7cmUgcnVubmluZyBvbiBhY3R1YWwgaGFyZHdhcmUgb3IgYW4gZW11bGF0b3IuIEkgc2hvdWxkIHN0YXJ0IGJ5IGNhcmVmdWxseSBleGFtaW5pbmcgdGhlIGNvZGUgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmNgIHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcyBhbmQgaG93IG11Y2ggb2YgaXQgaXMgaGFyZHdhcmUtZGVwZW5kZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDEyOjMyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O290eDJfZ2V0X2VncmVzc19yYXRlX2NmZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90Yy5jPTM1PXN0YXRpYyB2b2lkIG90eDJfZ2V0X2VncmVzc19idXJzdF9jZmcoc3RydWN0IG90eDJfbmljICpuaWMsIHUzMiBidXJzdCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90Yy5jLTY2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuYzo2NzpzdGF0aWMgdm9pZCBvdHgyX2dldF9lZ3Jlc3NfcmF0ZV9jZmcodTY0IG1heHJhdGUsIHUzMiAqZXhwLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuYy02OC1cdFx0XHRcdCAgICAgdTMyICptYW50aXNzYSwgdTMyICpkaXZfZXhwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmM9MTAxPXU2NCBvdHgyX2dldF90eHNjaHFfcmF0ZV9yZWd2YWwoc3RydWN0IG90eDJfbmljICpuaWMsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuYy0xMDktXHRvdHgyX2dldF9lZ3Jlc3NfYnVyc3RfY2ZnKG5pYywgYnVyc3QsIFx1MDAyNmJ1cnN0X2V4cCwgXHUwMDI2YnVyc3RfbWFudGlzc2EpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuYzoxMTA6XHRvdHgyX2dldF9lZ3Jlc3NfcmF0ZV9jZmcobWF4cmF0ZSwgXHUwMDI2ZXhwLCBcdTAwMjZtYW50aXNzYSwgXHUwMDI2ZGl2X2V4cCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90Yy5jLTExMS1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAxMjozMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzg5CgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogOTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyB0aGUgT2N0ZW9udHgyIEVncmVzcyBSYXRlIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gSSBzZWUgdGhhdCBgb3R4Ml9nZXRfZWdyZXNzX3JhdGVfY2ZnYCBpcyBiZWluZyBjYWxsZWQgYnkgYG90eDJfZ2V0X3R4c2NocV9yYXRlX3JlZ3ZhbGAuIE1ha2VzIHNlbnNlLCB0aGV5JiMzOTtyZSBsaWtlbHkgcmVsYXRlZCB0byBlZ3Jlc3MgcmF0ZSBsaW1pdGluZyBmb3IgdGhlIHRyYW5zbWl0IHNjaGVkdWxlciBxdWV1ZSwgYWxsIHdpdGhpbiB0aGUgYG9jdGVvbnR4MmAgZHJpdmVyLiBNeSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMsIGlzIHRoaXMgZHJpdmVyIGFjdHVhbGx5IHJlYWNoYWJsZT8gSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIHRoZSBidXMgaXQgb3BlcmF0ZXMgb24uIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jYCBmaWxlLCBvciBzb21ldGhpbmcgc2ltaWxhciB3aXRoaW4gdGhlIGRyaXZlciBkaXJlY3RvcnksIHRvIGZpZ3VyZSBvdXQgd2hhdCB0aGF0IGJ1cyBpbnRlcmFjdGlvbiBsb29rcyBsaWtlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDEyOjMyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O01PRFVMRV9ERVZJQ0VfVEFCTEUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM9NDM9TU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMIHYyXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM6NDQ6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIG90eDJfcGZfaWRfdGFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYy00NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jPTMxPU1PRFVMRV9MSUNFTlNFKFwmIzM0O0dQTCB2MlwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jOjMyOk1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBvdHgyX3ZmX2lkX3RhYmxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmMtMzMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3JlcC5jPTI5PU1PRFVMRV9MSUNFTlNFKFwmIzM0O0dQTFwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvcmVwLmM6MzA6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIHJ2dV9yZXBfaWRfdGFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3JlcC5jLTMxLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDEyOjMyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwNDYKCQkJCQkJCW91dHB1dDogMjcKCQkJCQkJCXRob3VnaHRzOiAxMDgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVW5yZWFjaGFibGUgQ29kZSBpbiBhIFZpcnR1YWxpemVkIFdvcmxkKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIFBDSSBkcml2ZXIuIEl0JiMzOTtzIGZvciBhIE1hcnZlbGwgT2N0ZW9uVFgyIGhhcmR3YXJlLCBhIHByZXR0eSBzcGVjaWZpYyBwaWVjZSBvZiBraXQuIE15IGltbWVkaWF0ZSBjb25jZXJuIGlzIHZpcnR1YWxpemF0aW9uLiBVbmxlc3Mgd2UgaGF2ZSBhIHNvbGlkIFFFTVUgZW11bGF0aW9uIGZvciAqdGhpcyBleGFjdCogUENJIGRldmljZSwgaXQmIzM5O3MgYmFzaWNhbGx5IGdvaW5nIHRvIGJlIGludmlzaWJsZSBpbiBhIHZpcnR1YWwgZW52aXJvbm1lbnQuIE5vdywgSSBrbm93IFN5emthbGxlciBwcmV0dHkgd2VsbCwgYW5kIEkgZG9uJiMzOTt0IHJlY2FsbCBzZWVpbmcgYW55IE9jdGVvblRYMiBlbXVsYXRvciBzdXBwb3J0IHRoZXJlLiBUaGF0IG1lYW5zIHRoaXMgY29kZSBpcyBkZWFkIGluIHRoZSB3YXRlciBmb3IgZnV6emluZyBpbiBhIHBsYWNlIGxpa2UgR0NFIG9yLCBhcyBJIHNhaWQsIGEgc3RhbmRhcmQgUUVNVSBzZXR1cC4gU2luY2UgaXRzIHVucmVhY2hhYmxlIEkgc2hvdWxkIGltbWVkaWF0ZWx5IG1hcmsgdGhpcyBhcyBXb3J0aEZ1enppbmc9ZmFsc2UsIGJlZm9yZSBJIGJ1cm4gYW55IG1vcmUgY3ljbGVzIG9uIGl0LiBCdXQsIGl0JiMzOTtzIGFsd2F5cyBnb29kIHRvIGRvdWJsZS1jaGVjay4gSnVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIGxldCBtZSBkbyBhIHF1aWNrIHN3ZWVwIGFuZCBzZWUgaWYgKmFueSoga2luZCBvZiBzb2Z0d2FyZSBlbXVsYXRpb24gZXhpc3RzIGZvciB0aGlzIHRoaW5nLiBZb3Uga25vdyBob3cgaXQgZ29lczsgaXQmIzM5O3MgYWx3YXlzIGdvb2QgdG8gYmUgdGhvcm91Z2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMTI6MzI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtvY3Rlb250eDImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDt0b29scy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDEyOjMyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ0MTMKCQkJCQkJCW91dHB1dDogMjcKCQkJCQkJCXRob3VnaHRzOiA0NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIHRoZSBNaXNzaW5nIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gSSYjMzk7dmUgaGl0IGEgcm9hZGJsb2NrLiBNeSBpbml0aWFsIHNlYXJjaCBpbiB0aGUgYHRvb2xzL2AgZGlyZWN0b3J5IHR1cm5lZCB1cCBub3RoaW5nIHJlbGF0ZWQgdG8gdGhpcy4gSG1tLCBhbHJpZ2h0LCBJIG5lZWQgdG8gYnJvYWRlbiB0aGUgc2NvcGUgYSBiaXQuIFNpbmNlIHRoaXMgbGlrZWx5IGNvbmNlcm5zIG5ldHdvcmsgZGV2aWNlIGRyaXZlcnMsIHNwZWNpZmljYWxseSBFdGhlcm5ldCwgSSBzaG91bGQgc3RhcnQgcG9raW5nIGFyb3VuZCBpbiB0aGUgYERvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9tYXJ2ZWxsL2AgaGllcmFyY2h5LiBJJiMzOTttIGdvaW5nIHRvIHN0YXJ0IHdpdGggYSBwZWVrIGF0IGBvY3Rlb250eDIucnN0YCAtIHRoYXQgc291bmRzIGxpa2UgYSByZWxldmFudCBzdGFydGluZyBwb2ludC4gSG9wZWZ1bGx5LCB0aGUgZG9jdW1lbnRhdGlvbiBoYXMgc29tZSBjbHVlcyBhYm91dCB3aGF0IEkmIzM5O20gbWlzc2luZyEgSSBuZWVkIHRvIGZpbmQgdGhlIGNvbmZpZ3VyYXRpb24gaXRlbSwgYW5kIHdoeSBpdCYjMzk7cyBub3QgcHJlc2VudC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMTI6MzI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7b2N0ZW9udHgyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi8ucmVuYW1lcy50eHQ9ODE4PW5ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvaW50ZWwvaXhnYmV2ZiBuZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L2ludGVsL2l4Z2JldmZcbkRvY3VtZW50YXRpb24vLnJlbmFtZXMudHh0OjgxOTpuZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL21hcnZlbGwvb2N0ZW9udHgyIG5ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDJcbkRvY3VtZW50YXRpb24vLnJlbmFtZXMudHh0LTgyMC1uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL21pY3Jvc29mdC9uZXR2c2MgbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9taWNyb3NvZnQvbmV0dnNjXG4tLVxuRG9jdW1lbnRhdGlvbi9jcnlwdG8vZGV2aWNlX2RyaXZlcnMvaW5kZXgucnN0PTM9SGFyZHdhcmUgRGV2aWNlIERyaXZlciBTcGVjaWZpYyBEb2N1bWVudGF0aW9uXG4tLVxuRG9jdW1lbnRhdGlvbi9jcnlwdG8vZGV2aWNlX2RyaXZlcnMvaW5kZXgucnN0LTgtXG5Eb2N1bWVudGF0aW9uL2NyeXB0by9kZXZpY2VfZHJpdmVycy9pbmRleC5yc3Q6OTogICBvY3Rlb250eDJcbi0tXG5Eb2N1bWVudGF0aW9uL2NyeXB0by9kZXZpY2VfZHJpdmVycy9vY3Rlb250eDIucnN0LTMtPT09PT09PT09PT09PT09PT09PT09PT09PVxuRG9jdW1lbnRhdGlvbi9jcnlwdG8vZGV2aWNlX2RyaXZlcnMvb2N0ZW9udHgyLnJzdDo0Om9jdGVvbnR4MiBkZXZsaW5rIHN1cHBvcnRcbkRvY3VtZW50YXRpb24vY3J5cHRvL2RldmljZV9kcml2ZXJzL29jdGVvbnR4Mi5yc3QtNS09PT09PT09PT09PT09PT09PT09PT09PT09XG5Eb2N1bWVudGF0aW9uL2NyeXB0by9kZXZpY2VfZHJpdmVycy9vY3Rlb250eDIucnN0LTYtXG5Eb2N1bWVudGF0aW9uL2NyeXB0by9kZXZpY2VfZHJpdmVycy9vY3Rlb250eDIucnN0Ojc6VGhpcyBkb2N1bWVudCBkZXNjcmliZXMgdGhlIGRldmxpbmsgZmVhdHVyZXMgaW1wbGVtZW50ZWQgYnkgdGhlIGBgb2N0ZW9udHgyIENQVGBgXG5Eb2N1bWVudGF0aW9uL2NyeXB0by9kZXZpY2VfZHJpdmVycy9vY3Rlb250eDIucnN0LTgtZGV2aWNlIGRyaXZlcnMuXG4tLVxuRG9jdW1lbnRhdGlvbi9jcnlwdG8vZGV2aWNlX2RyaXZlcnMvb2N0ZW9udHgyLnJzdD0xMD1QYXJhbWV0ZXJzXG4tLVxuRG9jdW1lbnRhdGlvbi9jcnlwdG8vZGV2aWNlX2RyaXZlcnMvb2N0ZW9udHgyLnJzdC0xMi1cbkRvY3VtZW50YXRpb24vY3J5cHRvL2RldmljZV9kcml2ZXJzL29jdGVvbnR4Mi5yc3Q6MTM6VGhlIGBgb2N0ZW9udHgyYGAgZHJpdmVyIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBkcml2ZXItc3BlY2lmaWMgcGFyYW1ldGVycy5cbkRvY3VtZW50YXRpb24vY3J5cHRvL2RldmljZV9kcml2ZXJzL29jdGVvbnR4Mi5yc3QtMTQtXG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L2luZGV4LnJzdD04PUNvbnRlbnRzOlxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9pbmRleC5yc3QtNDItICAgaW50ZWwvaWNlXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvaW5kZXgucnN0OjQzOiAgIG1hcnZlbGwvb2N0ZW9udHgyXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvaW5kZXgucnN0LTQ0LSAgIG1hcnZlbGwvb2N0ZW9uX2VwXG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyLnJzdD0yOTg9SGFyZHdhcmUgYWxnb3JpdGhtcyB1c2VkIGluIHNjaGVkdWxpbmdcbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIucnN0LTMwMC1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi5yc3Q6MzAxOm9jdGVvbnR4MiBzaWxpY29uIGFuZCBDTjEwSyB0cmFuc21pdCBpbnRlcmZhY2UgY29uc2lzdHMgb2YgZml2ZSB0cmFuc21pdCBsZXZlbHNcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi5yc3QtMzAyLXN0YXJ0aW5nIGZyb20gU01RL01EUSwgVEw0IHRvIFRMMS4gRWFjaCBwYWNrZXQgd2lsbCB0cmF2ZXJzZSBNRFEsIFRMNCB0byBUTDFcbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9pbmRleC5yc3Q9Nzc9cGFyYW1ldGVycywgaW5mbyB2ZXJzaW9ucywgYW5kIG90aGVyIGZlYXR1cmVzIGl0IHN1cHBvcnRzLlxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL2luZGV4LnJzdC05OC0gICBuZnBcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL2luZGV4LnJzdDo5OTogICBvY3Rlb250eDJcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL2luZGV4LnJzdC0xMDAtICAgcHJlc3RlcmFcbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9vY3Rlb250eDIucnN0LTMtPT09PT09PT09PT09PT09PT09PT09PT09PVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2Rldmxpbmsvb2N0ZW9udHgyLnJzdDo0Om9jdGVvbnR4MiBkZXZsaW5rIHN1cHBvcnRcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL29jdGVvbnR4Mi5yc3QtNS09PT09PT09PT09PT09PT09PT09PT09PT09XG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9vY3Rlb250eDIucnN0LTYtXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9vY3Rlb250eDIucnN0Ojc6VGhpcyBkb2N1bWVudCBkZXNjcmliZXMgdGhlIGRldmxpbmsgZmVhdHVyZXMgaW1wbGVtZW50ZWQgYnkgdGhlIGBgb2N0ZW9udHgyIEFGLCBQRiBhbmQgVkZgYFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2Rldmxpbmsvb2N0ZW9udHgyLnJzdC04LWRldmljZSBkcml2ZXJzLlxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL29jdGVvbnR4Mi5yc3Q9MTA9UGFyYW1ldGVyc1xuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL29jdGVvbnR4Mi5yc3QtMTItXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9vY3Rlb250eDIucnN0OjEzOlRoZSBgYG9jdGVvbnR4MiBQRiBhbmQgVkZgYCBkcml2ZXJzIGltcGxlbWVudCB0aGUgZm9sbG93aW5nIGRyaXZlci1zcGVjaWZpYyBwYXJhbWV0ZXJzLlxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2Rldmxpbmsvb2N0ZW9udHgyLnJzdC0xNC1cbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9vY3Rlb250eDIucnN0LTI4LVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2Rldmxpbmsvb2N0ZW9udHgyLnJzdDoyOTpUaGUgYGBvY3Rlb250eDIgQUZgYCBkcml2ZXIgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIGRyaXZlci1zcGVjaWZpYyBwYXJhbWV0ZXJzLlxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2Rldmxpbmsvb2N0ZW9udHgyLnJzdC0zMC1cbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9vY3Rlb250eDIucnN0LTY0LVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2Rldmxpbmsvb2N0ZW9udHgyLnJzdDo2NTpUaGUgYGBvY3Rlb250eDIgUEZgYCBkcml2ZXIgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIGRyaXZlci1zcGVjaWZpYyBwYXJhbWV0ZXJzLlxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2Rldmxpbmsvb2N0ZW9udHgyLnJzdC02Ni1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMTI6MzI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTgyNAoJCQkJCQkJb3V0cHV0OiA5NAoJCQkJCQkJdGhvdWdodHM6IDY2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBkcml2ZXIgYW5kIHRoZSBkZXNjcmlwdGlvbiBpbW1lZGlhdGVseSBmbGFncyBpdCBhcyBoYXJkd2FyZS1zcGVjaWZpYy4gSSBzZWUgbWVudGlvbnMgb2YgJiMzNDtvY3Rlb250eDIgc2lsaWNvbiYjMzQ7IGFuZCAmIzM0O0NOMTBLIHRyYW5zbWl0IGludGVyZmFjZSwmIzM0OyB3aGljaCBzY3JlYW1zIGhhcmR3YXJlIGNvbXBvbmVudC4gVGhlIGRldGFpbCBhYm91dCAmIzM0O2ZpdmUgdHJhbnNtaXQgbGV2ZWxzJiMzNDsgZnVydGhlciBjZW1lbnRzIHRoaXMgYXMgYSBsb3ctbGV2ZWwgaW50ZXJhY3Rpb24gd2l0aCBzcGVjaWZpYyBzaWxpY29uLiBUaGlzIGlzbiYjMzk7dCBqdXN0IGEgZ2VuZXJpYyBuZXR3b3JrIGRyaXZlcjsgaXQmIzM5O3MgaW50cmljYXRlbHkgdGllZCB0byBhIHBhcnRpY3VsYXIgaGFyZHdhcmUgaW1wbGVtZW50YXRpb24uCgpHaXZlbiBteSB1bmRlcnN0YW5kaW5nIG9mIHZpcnR1YWxpemF0aW9uLCBJJiMzOTttIGNvbmZpZGVudCBpbiBjb25jbHVkaW5nIHRoYXQgdGhpcyBwYXJ0aWN1bGFyIGRyaXZlciBpcyBnb2luZyB0byBiZSB1bnJlYWNoYWJsZSwgb3IgYXQgdGhlIHZlcnkgbGVhc3QsIGJlaGF2ZSBpbiBhbiB1bnByZWRpY3RhYmxlIG1hbm5lciwgd2l0aGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIFRoZXJlZm9yZSwgSSYjMzk7bSBnb2luZyB0byBzZXQgYFdvcnRoRnV6emluZz1mYWxzZWAuIFRoZSByZWFzb25pbmcgaXMgc3RyYWlnaHRmb3J3YXJkOiB0aGlzIGlzIGEgaGFyZHdhcmUtZGVwZW5kZW50IGRyaXZlciwgYW5kIGZ1enppbmcgaXQgd291bGQgYmUgaW5lZmZlY3RpdmUgaW4gYSB2aXJ0dWFsaXplZCBzZXR0aW5nLCBhbmQgcG90ZW50aWFsbHkgbGVhZCB0byBtaXNsZWFkaW5nIHJlc3VsdHMgb3IgaXNzdWVzLiBJdCB3b3VsZCBub3QgYmUgZWZmaWNpZW50IHVzZSBvZiBteSB0aW1lIG9yIHJlc291cmNlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMTI6MzI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgZWdyZXNzIHJhdGUgY29uZmlndXJhdGlvbiBsb2dpYyBpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgTklDIGRyaXZlci4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkZXZpY2UgZHJpdmVyIHRoYXQgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgR0NFIG9yIFFFTVUpIHVzZWQgZm9yIGZ1enppbmcsIGFzIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBhdmFpbGFibGUgZm9yIHRoaXMgaGFyZHdhcmUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgZWdyZXNzIHJhdGUgY29uZmlndXJhdGlvbiBsb2dpYyBpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgTklDIGRyaXZlci4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkZXZpY2UgZHJpdmVyIHRoYXQgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgR0NFIG9yIFFFTVUpIHVzZWQgZm9yIGZ1enppbmcsIGFzIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBhdmFpbGFibGUgZm9yIHRoaXMgaGFyZHdhcmUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTdUMTI6MzI6MDkuNTA5MzYzNTA2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjMyMDE3MjgwNzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBlZ3Jlc3MgcmF0ZSBjb25maWd1cmF0aW9uIGxvZ2ljIGluIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgZHJpdmVyLiBUaGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRldmljZSBkcml2ZXIgdGhhdCBpcyBub3QgcmVhY2hhYmxlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBHQ0Ugb3IgUUVNVSkgdXNlZCBmb3IgZnV6emluZywgYXMgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGF2YWlsYWJsZSBmb3IgdGhpcyBoYXJkd2FyZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDEyOjMyOjA5LjUwOTM2NzY4NloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDE5ODU2NTcxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZjk3OWIwMmYxMDBjYTcwNDRkZjhjMDg1NmJkZWViZTRhMDI2Mjg2NFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEp1bCAxNyAxMjozMjowOCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90Yy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuY1xcbmluZGV4IDQwMTYyYjA4MDE0ZGQ2Li4wYjQ2ZWMyOWU2NGVhYSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90Yy5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuY1xcbkBAIC0zMCw2ICszMCw3IEBAXFxuICNkZWZpbmUgT1RYMl9VTlNVUFBfTFNFX0RFUFRIXFx0XFx0R0VOTUFTSyg2LCA0KVxcbiBcXG4gI2RlZmluZSBNQ0FTVF9JTlZBTElEX0dSUFxcdFxcdCgtMVUpXFxuKyNkZWZpbmUgUkFURV9NQU5USVNTQV9CSVRTXFx0XFx0OFxcbiBcXG4gc3RhdGljIHZvaWQgb3R4Ml9nZXRfZWdyZXNzX2J1cnN0X2NmZyhzdHJ1Y3Qgb3R4Ml9uaWMgKm5pYywgdTMyIGJ1cnN0LFxcbiBcXHRcXHRcXHRcXHQgICAgICB1MzIgKmJ1cnN0X2V4cCwgdTMyICpidXJzdF9tYW50aXNzYSlcXG5AQCAtNjYsMjggKzY3LDMwIEBAIHN0YXRpYyB2b2lkIG90eDJfZ2V0X2VncmVzc19idXJzdF9jZmcoc3RydWN0IG90eDJfbmljICpuaWMsIHUzMiBidXJzdCxcXG4gc3RhdGljIHZvaWQgb3R4Ml9nZXRfZWdyZXNzX3JhdGVfY2ZnKHU2NCBtYXhyYXRlLCB1MzIgKmV4cCxcXG4gXFx0XFx0XFx0XFx0ICAgICB1MzIgKm1hbnRpc3NhLCB1MzIgKmRpdl9leHApXFxuIHtcXG4tXFx0dTY0IHRtcDtcXG4tXFxuIFxcdC8qIFJhdGUgY2FsY3VsYXRpb24gYnkgaGFyZHdhcmVcXG4gXFx0ICpcXG4gXFx0ICogUElSX0FERCA9ICgoMjU2ICsgbWFudGlzc2EpIFxcdTAwM2NcXHUwMDNjIGV4cCkgLyAyNTZcXG4gXFx0ICogcmF0ZSA9ICgyICogUElSX0FERCkgLyAoIDEgXFx1MDAzY1xcdTAwM2MgZGl2X2V4cClcXG4gXFx0ICogVGhlIHJlc3VsdGFudCByYXRlIGlzIGluIE1icHMuXFxuK1xcdCAqXFxuK1xcdCAqIFVzZSBkaXZfZXhwID0gMCBhbmQgY29tcHV0ZSBleHAvbWFudGlzc2EgZm9yIG1heHJhdGUgLyAyOyB0aGVcXG4rXFx0ICogbGVhZGluZyBmYWN0b3Igb2YgdHdvIHlpZWxkcyB0aGUgZnVsbCByYXRlLiBSYXRlcyBiZWxvdyAyIE1icHNcXG4rXFx0ICogYXJlIGZsb29yZWQgdG8gdGhlIHNtYWxsZXN0IHN0ZXAgKGV4cCA9IDAsIG1hbnRpc3NhID0gMCkuXFxuIFxcdCAqL1xcbiBcXG4tXFx0LyogMk1icHMgdG8gMTAwR2JwcyBjYW4gYmUgZXhwcmVzc2VkIHdpdGggZGl2X2V4cCA9IDAuXFxuLVxcdCAqIFNldHRpbmcgdGhpcyB0byAnMCcgd2lsbCBlYXNlIHRoZSBjYWxjdWxhdGlvbiBvZlxcbi1cXHQgKiBleHBvbmVudCBhbmQgbWFudGlzc2EuXFxuLVxcdCAqL1xcbiBcXHQqZGl2X2V4cCA9IDA7XFxuLVxcbiBcXHRpZiAobWF4cmF0ZSkge1xcbi1cXHRcXHQqZXhwID0gaWxvZzIobWF4cmF0ZSkgPyBpbG9nMihtYXhyYXRlKSAtIDEgOiAwO1xcbi1cXHRcXHR0bXAgPSBtYXhyYXRlIC0gcm91bmRkb3duX3Bvd19vZl90d28obWF4cmF0ZSk7XFxuLVxcdFxcdGlmIChtYXhyYXRlIFxcdTAwM2MgTUFYX1JBVEVfTUFOVElTU0EpXFxuLVxcdFxcdFxcdCptYW50aXNzYSA9IHRtcCAqIDI7XFxuLVxcdFxcdGVsc2VcXG4tXFx0XFx0XFx0Km1hbnRpc3NhID0gdG1wIC8gKDFVTEwgXFx1MDAzY1xcdTAwM2MgKCpleHAgLSA3KSk7XFxuK1xcdFxcdG1heHJhdGUgPSBtYXhyYXRlIC8gMjtcXG4rXFx0XFx0aWYgKCFtYXhyYXRlKSB7XFxuK1xcdFxcdFxcdC8qIFJhdGVzIGJlbG93IDIgTWJwcyBtYXAgdG8gdGhlIHNtYWxsZXN0IHN0ZXAgKi9cXG4rXFx0XFx0XFx0KmV4cCA9IDA7XFxuK1xcdFxcdFxcdCptYW50aXNzYSA9IDA7XFxuK1xcdFxcdH0gZWxzZSB7XFxuK1xcdFxcdFxcdCpleHAgPSBpbG9nMihtYXhyYXRlKTtcXG4rXFx0XFx0XFx0LyogQ2xlYXIgTVNCIGFuZCBkZXJpdmUgZnJhY3Rpb25hbCBiaXRzICovXFxuK1xcdFxcdFxcdG1heHJhdGUgXFx1MDAyNj0gfkJJVCgqZXhwKTtcXG4rXFx0XFx0XFx0Km1hbnRpc3NhID0gKG1heHJhdGUgXFx1MDAzY1xcdTAwM2MgUkFURV9NQU5USVNTQV9CSVRTKSBcXHUwMDNlXFx1MDAzZSAqZXhwO1xcbitcXHRcXHR9XFxuIFxcdH0gZWxzZSB7XFxuIFxcdFxcdC8qIEluc3RlYWQgb2YgZGlzYWJsaW5nIHJhdGUgbGltaXRpbmcsIHNldCBhbGwgdmFsdWVzIHRvIG1heCAqL1xcbiBcXHRcXHQqZXhwID0gTUFYX1JBVEVfRVhQT05FTlQ7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDEyOjMyOjA5LjkyOTk3NDQ3N1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjI3ODExMTE3NzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBlZ3Jlc3MgcmF0ZSBjb25maWd1cmF0aW9uIGxvZ2ljIGluIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgZHJpdmVyLiBUaGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRldmljZSBkcml2ZXIgdGhhdCBpcyBub3QgcmVhY2hhYmxlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBHQ0Ugb3IgUUVNVSkgdXNlZCBmb3IgZnV6emluZywgYXMgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGF2YWlsYWJsZSBmb3IgdGhpcyBoYXJkd2FyZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZjk3OWIwMmYxMDBjYTcwNDRkZjhjMDg1NmJkZWViZTRhMDI2Mjg2NFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDE3IDEyOjMyOjA4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmNcbmluZGV4IDQwMTYyYjA4MDE0ZGQ2Li4wYjQ2ZWMyOWU2NGVhYSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmNcbkBAIC0zMCw2ICszMCw3IEBAXG4gI2RlZmluZSBPVFgyX1VOU1VQUF9MU0VfREVQVEhcdFx0R0VOTUFTSyg2LCA0KVxuIFxuICNkZWZpbmUgTUNBU1RfSU5WQUxJRF9HUlBcdFx0KC0xVSlcbisjZGVmaW5lIFJBVEVfTUFOVElTU0FfQklUU1x0XHQ4XG4gXG4gc3RhdGljIHZvaWQgb3R4Ml9nZXRfZWdyZXNzX2J1cnN0X2NmZyhzdHJ1Y3Qgb3R4Ml9uaWMgKm5pYywgdTMyIGJ1cnN0LFxuIFx0XHRcdFx0ICAgICAgdTMyICpidXJzdF9leHAsIHUzMiAqYnVyc3RfbWFudGlzc2EpXG5AQCAtNjYsMjggKzY3LDMwIEBAIHN0YXRpYyB2b2lkIG90eDJfZ2V0X2VncmVzc19idXJzdF9jZmcoc3RydWN0IG90eDJfbmljICpuaWMsIHUzMiBidXJzdCxcbiBzdGF0aWMgdm9pZCBvdHgyX2dldF9lZ3Jlc3NfcmF0ZV9jZmcodTY0IG1heHJhdGUsIHUzMiAqZXhwLFxuIFx0XHRcdFx0ICAgICB1MzIgKm1hbnRpc3NhLCB1MzIgKmRpdl9leHApXG4ge1xuLVx0dTY0IHRtcDtcbi1cbiBcdC8qIFJhdGUgY2FsY3VsYXRpb24gYnkgaGFyZHdhcmVcbiBcdCAqXG4gXHQgKiBQSVJfQUREID0gKCgyNTYgKyBtYW50aXNzYSkgXHUwMDNjXHUwMDNjIGV4cCkgLyAyNTZcbiBcdCAqIHJhdGUgPSAoMiAqIFBJUl9BREQpIC8gKCAxIFx1MDAzY1x1MDAzYyBkaXZfZXhwKVxuIFx0ICogVGhlIHJlc3VsdGFudCByYXRlIGlzIGluIE1icHMuXG4rXHQgKlxuK1x0ICogVXNlIGRpdl9leHAgPSAwIGFuZCBjb21wdXRlIGV4cC9tYW50aXNzYSBmb3IgbWF4cmF0ZSAvIDI7IHRoZVxuK1x0ICogbGVhZGluZyBmYWN0b3Igb2YgdHdvIHlpZWxkcyB0aGUgZnVsbCByYXRlLiBSYXRlcyBiZWxvdyAyIE1icHNcbitcdCAqIGFyZSBmbG9vcmVkIHRvIHRoZSBzbWFsbGVzdCBzdGVwIChleHAgPSAwLCBtYW50aXNzYSA9IDApLlxuIFx0ICovXG4gXG4tXHQvKiAyTWJwcyB0byAxMDBHYnBzIGNhbiBiZSBleHByZXNzZWQgd2l0aCBkaXZfZXhwID0gMC5cbi1cdCAqIFNldHRpbmcgdGhpcyB0byAnMCcgd2lsbCBlYXNlIHRoZSBjYWxjdWxhdGlvbiBvZlxuLVx0ICogZXhwb25lbnQgYW5kIG1hbnRpc3NhLlxuLVx0ICovXG4gXHQqZGl2X2V4cCA9IDA7XG4tXG4gXHRpZiAobWF4cmF0ZSkge1xuLVx0XHQqZXhwID0gaWxvZzIobWF4cmF0ZSkgPyBpbG9nMihtYXhyYXRlKSAtIDEgOiAwO1xuLVx0XHR0bXAgPSBtYXhyYXRlIC0gcm91bmRkb3duX3Bvd19vZl90d28obWF4cmF0ZSk7XG4tXHRcdGlmIChtYXhyYXRlIFx1MDAzYyBNQVhfUkFURV9NQU5USVNTQSlcbi1cdFx0XHQqbWFudGlzc2EgPSB0bXAgKiAyO1xuLVx0XHRlbHNlXG4tXHRcdFx0Km1hbnRpc3NhID0gdG1wIC8gKDFVTEwgXHUwMDNjXHUwMDNjICgqZXhwIC0gNykpO1xuK1x0XHRtYXhyYXRlID0gbWF4cmF0ZSAvIDI7XG4rXHRcdGlmICghbWF4cmF0ZSkge1xuK1x0XHRcdC8qIFJhdGVzIGJlbG93IDIgTWJwcyBtYXAgdG8gdGhlIHNtYWxsZXN0IHN0ZXAgKi9cbitcdFx0XHQqZXhwID0gMDtcbitcdFx0XHQqbWFudGlzc2EgPSAwO1xuK1x0XHR9IGVsc2Uge1xuK1x0XHRcdCpleHAgPSBpbG9nMihtYXhyYXRlKTtcbitcdFx0XHQvKiBDbGVhciBNU0IgYW5kIGRlcml2ZSBmcmFjdGlvbmFsIGJpdHMgKi9cbitcdFx0XHRtYXhyYXRlIFx1MDAyNj0gfkJJVCgqZXhwKTtcbitcdFx0XHQqbWFudGlzc2EgPSAobWF4cmF0ZSBcdTAwM2NcdTAwM2MgUkFURV9NQU5USVNTQV9CSVRTKSBcdTAwM2VcdTAwM2UgKmV4cDtcbitcdFx0fVxuIFx0fSBlbHNlIHtcbiBcdFx0LyogSW5zdGVhZCBvZiBkaXNhYmxpbmcgcmF0ZSBsaW1pdGluZywgc2V0IGFsbCB2YWx1ZXMgdG8gbWF4ICovXG4gXHRcdCpleHAgPSBNQVhfUkFURV9FWFBPTkVOVDtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDEyOjMyOjA5LjkyOTk3NTkzN1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUyOTU4MjE0NDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgSGFyZHdhcmUgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYG90eDJfZ2V0X2VncmVzc19yYXRlX2NmZ2Agd2l0aGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90Yy5jYC4gSXQncyB0d2Vha2luZyB0aGUgYGV4cGAgYW5kIGBtYW50aXNzYWAgY2FsY3VsYXRpb24gZm9yIGVncmVzcyByYXRlIGNvbmZpZ3VyYXRpb24sIHdoaWNoIGlzIHByZXR0eSBsb3ctbGV2ZWwgc3R1ZmYuIFRoaXMgaXMgYSBNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgZHJpdmVyLCBzcGVjaWZpY2FsbHkgaGFyZHdhcmUuIE15IGZpcnN0IGluc3RpbmN0IGlzLCBjYW4gSSBldmVuICpzZWUqIHRoaXMgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gSGFyZHdhcmUgZHJpdmVycywgZXNwZWNpYWxseSBOSUMgZHJpdmVycywgYXJlIHVzdWFsbHkgb2ZmLWxpbWl0cyB1bmxlc3MgeW91J3JlIHNwZWNpZmljYWxseSBlbXVsYXRpbmcgdGhlIGhhcmR3YXJlIG9yIGRvaW5nIHNvbWUgc2VyaW91cyBmdXp6aW5nIHdpdGggbW9ja3MuXG5cblRoZW4gSSBwYXVzZWQuIFdhaXQuLi4gZG9lcyBzeXprYWxsZXIgdGFyZ2V0IHRoaXM/IEkgc2hvdWxkIGNoZWNrIGlmIHRoZSBkcml2ZXIgZXZlbiBnZXRzIHByb2JlZC4gT2Z0ZW4sIHlvdSBjYW4ndCByZWFjaCB0aGVzZSBzcGVjaWZpYyBQQ0kgZHJpdmVycyB1bmxlc3MgdGhleSdyZSBydW5uaW5nIG9uIGFjdHVhbCBoYXJkd2FyZSBvciBhbiBlbXVsYXRvci4gSSBzaG91bGQgc3RhcnQgYnkgY2FyZWZ1bGx5IGV4YW1pbmluZyB0aGUgY29kZSBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuY2AgdG8gdW5kZXJzdGFuZCB0aGUgZGVwZW5kZW5jaWVzIGFuZCBob3cgbXVjaCBvZiBpdCBpcyBoYXJkd2FyZS1kZXBlbmRlbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0NzUsIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTgsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QxMjozMjoxNS4yMjU4MDAyMVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTUwNjE3MzE5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm90eDJfZ2V0X2VncmVzc19yYXRlX2NmZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90Yy5jPTM1PXN0YXRpYyB2b2lkIG90eDJfZ2V0X2VncmVzc19idXJzdF9jZmcoc3RydWN0IG90eDJfbmljICpuaWMsIHUzMiBidXJzdCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmMtNjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuYzo2NzpzdGF0aWMgdm9pZCBvdHgyX2dldF9lZ3Jlc3NfcmF0ZV9jZmcodTY0IG1heHJhdGUsIHUzMiAqZXhwLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmMtNjgtXFx0XFx0XFx0XFx0ICAgICB1MzIgKm1hbnRpc3NhLCB1MzIgKmRpdl9leHApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90Yy5jPTEwMT11NjQgb3R4Ml9nZXRfdHhzY2hxX3JhdGVfcmVndmFsKHN0cnVjdCBvdHgyX25pYyAqbmljLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuYy0xMDktXFx0b3R4Ml9nZXRfZWdyZXNzX2J1cnN0X2NmZyhuaWMsIGJ1cnN0LCBcXHUwMDI2YnVyc3RfZXhwLCBcXHUwMDI2YnVyc3RfbWFudGlzc2EpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmM6MTEwOlxcdG90eDJfZ2V0X2VncmVzc19yYXRlX2NmZyhtYXhyYXRlLCBcXHUwMDI2ZXhwLCBcXHUwMDI2bWFudGlzc2EsIFxcdTAwMjZkaXZfZXhwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90Yy5jLTExMS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMTI6MzI6MTcuNzc2NDI5ODM4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzI5MDk1MzUxMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIHRoZSBPY3Rlb250eDIgRWdyZXNzIFJhdGUgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIEkgc2VlIHRoYXQgYG90eDJfZ2V0X2VncmVzc19yYXRlX2NmZ2AgaXMgYmVpbmcgY2FsbGVkIGJ5IGBvdHgyX2dldF90eHNjaHFfcmF0ZV9yZWd2YWxgLiBNYWtlcyBzZW5zZSwgdGhleSdyZSBsaWtlbHkgcmVsYXRlZCB0byBlZ3Jlc3MgcmF0ZSBsaW1pdGluZyBmb3IgdGhlIHRyYW5zbWl0IHNjaGVkdWxlciBxdWV1ZSwgYWxsIHdpdGhpbiB0aGUgYG9jdGVvbnR4MmAgZHJpdmVyLiBNeSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMsIGlzIHRoaXMgZHJpdmVyIGFjdHVhbGx5IHJlYWNoYWJsZT8gSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIHRoZSBidXMgaXQgb3BlcmF0ZXMgb24uIEknbGwgbmVlZCB0byBjaGVjayB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmNgIGZpbGUsIG9yIHNvbWV0aGluZyBzaW1pbGFyIHdpdGhpbiB0aGUgZHJpdmVyIGRpcmVjdG9yeSwgdG8gZmlndXJlIG91dCB3aGF0IHRoYXQgYnVzIGludGVyYWN0aW9uIGxvb2tzIGxpa2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzODksIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QxMjozMjoyMS4wNjczODUzNjJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTc5OTUyODksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTU9EVUxFX0RFVklDRV9UQUJMRVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM9NDM9TU9EVUxFX0xJQ0VOU0UoXFxcIkdQTCB2MlxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM6NDQ6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIG90eDJfcGZfaWRfdGFibGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMtNDUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jPTMxPU1PRFVMRV9MSUNFTlNFKFxcXCJHUEwgdjJcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jOjMyOk1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBvdHgyX3ZmX2lkX3RhYmxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jLTMzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3JlcC5jPTI5PU1PRFVMRV9MSUNFTlNFKFxcXCJHUExcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvcmVwLmM6MzA6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIHJ2dV9yZXBfaWRfdGFibGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9yZXAuYy0zMS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMTI6MzI6MjEuMTI1Mzg4MzAxWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzgyODgxMjkzMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipVbnJlYWNoYWJsZSBDb2RlIGluIGEgVmlydHVhbGl6ZWQgV29ybGQqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIFBDSSBkcml2ZXIuIEl0J3MgZm9yIGEgTWFydmVsbCBPY3Rlb25UWDIgaGFyZHdhcmUsIGEgcHJldHR5IHNwZWNpZmljIHBpZWNlIG9mIGtpdC4gTXkgaW1tZWRpYXRlIGNvbmNlcm4gaXMgdmlydHVhbGl6YXRpb24uIFVubGVzcyB3ZSBoYXZlIGEgc29saWQgUUVNVSBlbXVsYXRpb24gZm9yICp0aGlzIGV4YWN0KiBQQ0kgZGV2aWNlLCBpdCdzIGJhc2ljYWxseSBnb2luZyB0byBiZSBpbnZpc2libGUgaW4gYSB2aXJ0dWFsIGVudmlyb25tZW50LiBOb3csIEkga25vdyBTeXprYWxsZXIgcHJldHR5IHdlbGwsIGFuZCBJIGRvbid0IHJlY2FsbCBzZWVpbmcgYW55IE9jdGVvblRYMiBlbXVsYXRvciBzdXBwb3J0IHRoZXJlLiBUaGF0IG1lYW5zIHRoaXMgY29kZSBpcyBkZWFkIGluIHRoZSB3YXRlciBmb3IgZnV6emluZyBpbiBhIHBsYWNlIGxpa2UgR0NFIG9yLCBhcyBJIHNhaWQsIGEgc3RhbmRhcmQgUUVNVSBzZXR1cC4gU2luY2UgaXRzIHVucmVhY2hhYmxlIEkgc2hvdWxkIGltbWVkaWF0ZWx5IG1hcmsgdGhpcyBhcyBXb3J0aEZ1enppbmc9ZmFsc2UsIGJlZm9yZSBJIGJ1cm4gYW55IG1vcmUgY3ljbGVzIG9uIGl0LiBCdXQsIGl0J3MgYWx3YXlzIGdvb2QgdG8gZG91YmxlLWNoZWNrLiBKdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgbGV0IG1lIGRvIGEgcXVpY2sgc3dlZXAgYW5kIHNlZSBpZiAqYW55KiBraW5kIG9mIHNvZnR3YXJlIGVtdWxhdGlvbiBleGlzdHMgZm9yIHRoaXMgdGhpbmcuIFlvdSBrbm93IGhvdyBpdCBnb2VzOyBpdCdzIGFsd2F5cyBnb29kIHRvIGJlIHRob3JvdWdoLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MDQ2LCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTA4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDEyOjMyOjI0Ljk1NDIwMzg1M1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjgwMzM3ODYsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm9jdGVvbnR4MlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJ0b29scy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDEyOjMyOjI1LjE4MjI0NjAyOVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5ODE5Mzg3ODksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyB0aGUgTWlzc2luZyBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSd2ZSBoaXQgYSByb2FkYmxvY2suIE15IGluaXRpYWwgc2VhcmNoIGluIHRoZSBgdG9vbHMvYCBkaXJlY3RvcnkgdHVybmVkIHVwIG5vdGhpbmcgcmVsYXRlZCB0byB0aGlzLiBIbW0sIGFscmlnaHQsIEkgbmVlZCB0byBicm9hZGVuIHRoZSBzY29wZSBhIGJpdC4gU2luY2UgdGhpcyBsaWtlbHkgY29uY2VybnMgbmV0d29yayBkZXZpY2UgZHJpdmVycywgc3BlY2lmaWNhbGx5IEV0aGVybmV0LCBJIHNob3VsZCBzdGFydCBwb2tpbmcgYXJvdW5kIGluIHRoZSBgRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L21hcnZlbGwvYCBoaWVyYXJjaHkuIEknbSBnb2luZyB0byBzdGFydCB3aXRoIGEgcGVlayBhdCBgb2N0ZW9udHgyLnJzdGAgLSB0aGF0IHNvdW5kcyBsaWtlIGEgcmVsZXZhbnQgc3RhcnRpbmcgcG9pbnQuIEhvcGVmdWxseSwgdGhlIGRvY3VtZW50YXRpb24gaGFzIHNvbWUgY2x1ZXMgYWJvdXQgd2hhdCBJJ20gbWlzc2luZyEgSSBuZWVkIHRvIGZpbmQgdGhlIGNvbmZpZ3VyYXRpb24gaXRlbSwgYW5kIHdoeSBpdCdzIG5vdCBwcmVzZW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NDEzLCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMTI6MzI6MjguMTY0MTg2ODg4WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMTY3MjY2NjQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwib2N0ZW9udHgyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIkRvY3VtZW50YXRpb24vXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIkRvY3VtZW50YXRpb24vLnJlbmFtZXMudHh0PTgxOD1uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2ludGVsL2l4Z2JldmYgbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9pbnRlbC9peGdiZXZmXFxuRG9jdW1lbnRhdGlvbi8ucmVuYW1lcy50eHQ6ODE5Om5ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvbWFydmVsbC9vY3Rlb250eDIgbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4MlxcbkRvY3VtZW50YXRpb24vLnJlbmFtZXMudHh0LTgyMC1uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL21pY3Jvc29mdC9uZXR2c2MgbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9taWNyb3NvZnQvbmV0dnNjXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2NyeXB0by9kZXZpY2VfZHJpdmVycy9pbmRleC5yc3Q9Mz1IYXJkd2FyZSBEZXZpY2UgRHJpdmVyIFNwZWNpZmljIERvY3VtZW50YXRpb25cXG4tLVxcbkRvY3VtZW50YXRpb24vY3J5cHRvL2RldmljZV9kcml2ZXJzL2luZGV4LnJzdC04LVxcbkRvY3VtZW50YXRpb24vY3J5cHRvL2RldmljZV9kcml2ZXJzL2luZGV4LnJzdDo5OiAgIG9jdGVvbnR4Mlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9jcnlwdG8vZGV2aWNlX2RyaXZlcnMvb2N0ZW9udHgyLnJzdC0zLT09PT09PT09PT09PT09PT09PT09PT09PT1cXG5Eb2N1bWVudGF0aW9uL2NyeXB0by9kZXZpY2VfZHJpdmVycy9vY3Rlb250eDIucnN0OjQ6b2N0ZW9udHgyIGRldmxpbmsgc3VwcG9ydFxcbkRvY3VtZW50YXRpb24vY3J5cHRvL2RldmljZV9kcml2ZXJzL29jdGVvbnR4Mi5yc3QtNS09PT09PT09PT09PT09PT09PT09PT09PT09XFxuRG9jdW1lbnRhdGlvbi9jcnlwdG8vZGV2aWNlX2RyaXZlcnMvb2N0ZW9udHgyLnJzdC02LVxcbkRvY3VtZW50YXRpb24vY3J5cHRvL2RldmljZV9kcml2ZXJzL29jdGVvbnR4Mi5yc3Q6NzpUaGlzIGRvY3VtZW50IGRlc2NyaWJlcyB0aGUgZGV2bGluayBmZWF0dXJlcyBpbXBsZW1lbnRlZCBieSB0aGUgYGBvY3Rlb250eDIgQ1BUYGBcXG5Eb2N1bWVudGF0aW9uL2NyeXB0by9kZXZpY2VfZHJpdmVycy9vY3Rlb250eDIucnN0LTgtZGV2aWNlIGRyaXZlcnMuXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2NyeXB0by9kZXZpY2VfZHJpdmVycy9vY3Rlb250eDIucnN0PTEwPVBhcmFtZXRlcnNcXG4tLVxcbkRvY3VtZW50YXRpb24vY3J5cHRvL2RldmljZV9kcml2ZXJzL29jdGVvbnR4Mi5yc3QtMTItXFxuRG9jdW1lbnRhdGlvbi9jcnlwdG8vZGV2aWNlX2RyaXZlcnMvb2N0ZW9udHgyLnJzdDoxMzpUaGUgYGBvY3Rlb250eDJgYCBkcml2ZXIgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIGRyaXZlci1zcGVjaWZpYyBwYXJhbWV0ZXJzLlxcbkRvY3VtZW50YXRpb24vY3J5cHRvL2RldmljZV9kcml2ZXJzL29jdGVvbnR4Mi5yc3QtMTQtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvaW5kZXgucnN0PTg9Q29udGVudHM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvaW5kZXgucnN0LTQyLSAgIGludGVsL2ljZVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9pbmRleC5yc3Q6NDM6ICAgbWFydmVsbC9vY3Rlb250eDJcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvaW5kZXgucnN0LTQ0LSAgIG1hcnZlbGwvb2N0ZW9uX2VwXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIucnN0PTI5OD1IYXJkd2FyZSBhbGdvcml0aG1zIHVzZWQgaW4gc2NoZWR1bGluZ1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyLnJzdC0zMDAtXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyLnJzdDozMDE6b2N0ZW9udHgyIHNpbGljb24gYW5kIENOMTBLIHRyYW5zbWl0IGludGVyZmFjZSBjb25zaXN0cyBvZiBmaXZlIHRyYW5zbWl0IGxldmVsc1xcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi5yc3QtMzAyLXN0YXJ0aW5nIGZyb20gU01RL01EUSwgVEw0IHRvIFRMMS4gRWFjaCBwYWNrZXQgd2lsbCB0cmF2ZXJzZSBNRFEsIFRMNCB0byBUTDFcXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL2luZGV4LnJzdD03Nz1wYXJhbWV0ZXJzLCBpbmZvIHZlcnNpb25zLCBhbmQgb3RoZXIgZmVhdHVyZXMgaXQgc3VwcG9ydHMuXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9pbmRleC5yc3QtOTgtICAgbmZwXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmxpbmsvaW5kZXgucnN0Ojk5OiAgIG9jdGVvbnR4MlxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL2luZGV4LnJzdC0xMDAtICAgcHJlc3RlcmFcXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL29jdGVvbnR4Mi5yc3QtMy09PT09PT09PT09PT09PT09PT09PT09PT09XFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2Rldmxpbmsvb2N0ZW9udHgyLnJzdDo0Om9jdGVvbnR4MiBkZXZsaW5rIHN1cHBvcnRcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9vY3Rlb250eDIucnN0LTUtPT09PT09PT09PT09PT09PT09PT09PT09PVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL29jdGVvbnR4Mi5yc3QtNi1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9vY3Rlb250eDIucnN0Ojc6VGhpcyBkb2N1bWVudCBkZXNjcmliZXMgdGhlIGRldmxpbmsgZmVhdHVyZXMgaW1wbGVtZW50ZWQgYnkgdGhlIGBgb2N0ZW9udHgyIEFGLCBQRiBhbmQgVkZgYFxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL29jdGVvbnR4Mi5yc3QtOC1kZXZpY2UgZHJpdmVycy5cXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL29jdGVvbnR4Mi5yc3Q9MTA9UGFyYW1ldGVyc1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2Rldmxpbmsvb2N0ZW9udHgyLnJzdC0xMi1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9vY3Rlb250eDIucnN0OjEzOlRoZSBgYG9jdGVvbnR4MiBQRiBhbmQgVkZgYCBkcml2ZXJzIGltcGxlbWVudCB0aGUgZm9sbG93aW5nIGRyaXZlci1zcGVjaWZpYyBwYXJhbWV0ZXJzLlxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL29jdGVvbnR4Mi5yc3QtMTQtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9vY3Rlb250eDIucnN0LTI4LVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL29jdGVvbnR4Mi5yc3Q6Mjk6VGhlIGBgb2N0ZW9udHgyIEFGYGAgZHJpdmVyIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBkcml2ZXItc3BlY2lmaWMgcGFyYW1ldGVycy5cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9vY3Rlb250eDIucnN0LTMwLVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2Rldmxpbmsvb2N0ZW9udHgyLnJzdC02NC1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9vY3Rlb250eDIucnN0OjY1OlRoZSBgYG9jdGVvbnR4MiBQRmBgIGRyaXZlciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgZHJpdmVyLXNwZWNpZmljIHBhcmFtZXRlcnMuXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2Rldmxpbmsvb2N0ZW9udHgyLnJzdC02Ni1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMTI6MzI6MjguNDgwOTE4NzgyWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyMzAxNDA5NDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBkcml2ZXIgYW5kIHRoZSBkZXNjcmlwdGlvbiBpbW1lZGlhdGVseSBmbGFncyBpdCBhcyBoYXJkd2FyZS1zcGVjaWZpYy4gSSBzZWUgbWVudGlvbnMgb2YgXCJvY3Rlb250eDIgc2lsaWNvblwiIGFuZCBcIkNOMTBLIHRyYW5zbWl0IGludGVyZmFjZSxcIiB3aGljaCBzY3JlYW1zIGhhcmR3YXJlIGNvbXBvbmVudC4gVGhlIGRldGFpbCBhYm91dCBcImZpdmUgdHJhbnNtaXQgbGV2ZWxzXCIgZnVydGhlciBjZW1lbnRzIHRoaXMgYXMgYSBsb3ctbGV2ZWwgaW50ZXJhY3Rpb24gd2l0aCBzcGVjaWZpYyBzaWxpY29uLiBUaGlzIGlzbid0IGp1c3QgYSBnZW5lcmljIG5ldHdvcmsgZHJpdmVyOyBpdCdzIGludHJpY2F0ZWx5IHRpZWQgdG8gYSBwYXJ0aWN1bGFyIGhhcmR3YXJlIGltcGxlbWVudGF0aW9uLlxuXG5HaXZlbiBteSB1bmRlcnN0YW5kaW5nIG9mIHZpcnR1YWxpemF0aW9uLCBJJ20gY29uZmlkZW50IGluIGNvbmNsdWRpbmcgdGhhdCB0aGlzIHBhcnRpY3VsYXIgZHJpdmVyIGlzIGdvaW5nIHRvIGJlIHVucmVhY2hhYmxlLCBvciBhdCB0aGUgdmVyeSBsZWFzdCwgYmVoYXZlIGluIGFuIHVucHJlZGljdGFibGUgbWFubmVyLCB3aXRoaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gVGhlcmVmb3JlLCBJJ20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgcmVhc29uaW5nIGlzIHN0cmFpZ2h0Zm9yd2FyZDogdGhpcyBpcyBhIGhhcmR3YXJlLWRlcGVuZGVudCBkcml2ZXIsIGFuZCBmdXp6aW5nIGl0IHdvdWxkIGJlIGluZWZmZWN0aXZlIGluIGEgdmlydHVhbGl6ZWQgc2V0dGluZywgYW5kIHBvdGVudGlhbGx5IGxlYWQgdG8gbWlzbGVhZGluZyByZXN1bHRzIG9yIGlzc3Vlcy4gSXQgd291bGQgbm90IGJlIGVmZmljaWVudCB1c2Ugb2YgbXkgdGltZSBvciByZXNvdXJjZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU4MjQsIk91dHB1dFRva2VucyI6OTQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QxMjozMjozMi43MTEwNjE2MTZaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzI5MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgZWdyZXNzIHJhdGUgY29uZmlndXJhdGlvbiBsb2dpYyBpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgTklDIGRyaXZlci4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkZXZpY2UgZHJpdmVyIHRoYXQgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgR0NFIG9yIFFFTVUpIHVzZWQgZm9yIGZ1enppbmcsIGFzIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBhdmFpbGFibGUgZm9yIHRoaXMgaGFyZHdhcmUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgZWdyZXNzIHJhdGUgY29uZmlndXJhdGlvbiBsb2dpYyBpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgTklDIGRyaXZlci4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkZXZpY2UgZHJpdmVyIHRoYXQgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgR0NFIG9yIFFFTVUpIHVzZWQgZm9yIGZ1enppbmcsIGFzIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBhdmFpbGFibGUgZm9yIHRoaXMgaGFyZHdhcmUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflowpj2ts[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-17 11:58:51 +0000 UTC FinishedAt: 2026-07-17 12:32:34 +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+CgkJCTx0ZD4yMDI2LzA3LzE3IDEyOjMyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBlZ3Jlc3MgcmF0ZSBjb25maWd1cmF0aW9uIGxvZ2ljIGluIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgZHJpdmVyLiBUaGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRldmljZSBkcml2ZXIgdGhhdCBpcyBub3QgcmVhY2hhYmxlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBHQ0Ugb3IgUUVNVSkgdXNlZCBmb3IgZnV6emluZywgYXMgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGF2YWlsYWJsZSBmb3IgdGhpcyBoYXJkd2FyZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMTI6MzI8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBmOTc5YjAyZjEwMGNhNzA0NGRmOGMwODU2YmRlZWJlNGEwMjYyODY0XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMTcgMTI6MzI6MDggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmNcbmluZGV4IDQwMTYyYjA4MDE0ZGQ2Li4wYjQ2ZWMyOWU2NGVhYSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmNcbkBAIC0zMCw2ICYjNDM7MzAsNyBAQFxuICNkZWZpbmUgT1RYMl9VTlNVUFBfTFNFX0RFUFRIXHRcdEdFTk1BU0soNiwgNClcbiBcbiAjZGVmaW5lIE1DQVNUX0lOVkFMSURfR1JQXHRcdCgtMVUpXG4mIzQzOyNkZWZpbmUgUkFURV9NQU5USVNTQV9CSVRTXHRcdDhcbiBcbiBzdGF0aWMgdm9pZCBvdHgyX2dldF9lZ3Jlc3NfYnVyc3RfY2ZnKHN0cnVjdCBvdHgyX25pYyAqbmljLCB1MzIgYnVyc3QsXG4gXHRcdFx0XHQgICAgICB1MzIgKmJ1cnN0X2V4cCwgdTMyICpidXJzdF9tYW50aXNzYSlcbkBAIC02NiwyOCAmIzQzOzY3LDMwIEBAIHN0YXRpYyB2b2lkIG90eDJfZ2V0X2VncmVzc19idXJzdF9jZmcoc3RydWN0IG90eDJfbmljICpuaWMsIHUzMiBidXJzdCxcbiBzdGF0aWMgdm9pZCBvdHgyX2dldF9lZ3Jlc3NfcmF0ZV9jZmcodTY0IG1heHJhdGUsIHUzMiAqZXhwLFxuIFx0XHRcdFx0ICAgICB1MzIgKm1hbnRpc3NhLCB1MzIgKmRpdl9leHApXG4ge1xuLVx0dTY0IHRtcDtcbi1cbiBcdC8qIFJhdGUgY2FsY3VsYXRpb24gYnkgaGFyZHdhcmVcbiBcdCAqXG4gXHQgKiBQSVJfQUREID0gKCgyNTYgJiM0MzsgbWFudGlzc2EpIFx1MDAzY1x1MDAzYyBleHApIC8gMjU2XG4gXHQgKiByYXRlID0gKDIgKiBQSVJfQUREKSAvICggMSBcdTAwM2NcdTAwM2MgZGl2X2V4cClcbiBcdCAqIFRoZSByZXN1bHRhbnQgcmF0ZSBpcyBpbiBNYnBzLlxuJiM0MztcdCAqXG4mIzQzO1x0ICogVXNlIGRpdl9leHAgPSAwIGFuZCBjb21wdXRlIGV4cC9tYW50aXNzYSBmb3IgbWF4cmF0ZSAvIDI7IHRoZVxuJiM0MztcdCAqIGxlYWRpbmcgZmFjdG9yIG9mIHR3byB5aWVsZHMgdGhlIGZ1bGwgcmF0ZS4gUmF0ZXMgYmVsb3cgMiBNYnBzXG4mIzQzO1x0ICogYXJlIGZsb29yZWQgdG8gdGhlIHNtYWxsZXN0IHN0ZXAgKGV4cCA9IDAsIG1hbnRpc3NhID0gMCkuXG4gXHQgKi9cbiBcbi1cdC8qIDJNYnBzIHRvIDEwMEdicHMgY2FuIGJlIGV4cHJlc3NlZCB3aXRoIGRpdl9leHAgPSAwLlxuLVx0ICogU2V0dGluZyB0aGlzIHRvICYjMzk7MCYjMzk7IHdpbGwgZWFzZSB0aGUgY2FsY3VsYXRpb24gb2Zcbi1cdCAqIGV4cG9uZW50IGFuZCBtYW50aXNzYS5cbi1cdCAqL1xuIFx0KmRpdl9leHAgPSAwO1xuLVxuIFx0aWYgKG1heHJhdGUpIHtcbi1cdFx0KmV4cCA9IGlsb2cyKG1heHJhdGUpID8gaWxvZzIobWF4cmF0ZSkgLSAxIDogMDtcbi1cdFx0dG1wID0gbWF4cmF0ZSAtIHJvdW5kZG93bl9wb3dfb2ZfdHdvKG1heHJhdGUpO1xuLVx0XHRpZiAobWF4cmF0ZSBcdTAwM2MgTUFYX1JBVEVfTUFOVElTU0EpXG4tXHRcdFx0Km1hbnRpc3NhID0gdG1wICogMjtcbi1cdFx0ZWxzZVxuLVx0XHRcdCptYW50aXNzYSA9IHRtcCAvICgxVUxMIFx1MDAzY1x1MDAzYyAoKmV4cCAtIDcpKTtcbiYjNDM7XHRcdG1heHJhdGUgPSBtYXhyYXRlIC8gMjtcbiYjNDM7XHRcdGlmICghbWF4cmF0ZSkge1xuJiM0MztcdFx0XHQvKiBSYXRlcyBiZWxvdyAyIE1icHMgbWFwIHRvIHRoZSBzbWFsbGVzdCBzdGVwICovXG4mIzQzO1x0XHRcdCpleHAgPSAwO1xuJiM0MztcdFx0XHQqbWFudGlzc2EgPSAwO1xuJiM0MztcdFx0fSBlbHNlIHtcbiYjNDM7XHRcdFx0KmV4cCA9IGlsb2cyKG1heHJhdGUpO1xuJiM0MztcdFx0XHQvKiBDbGVhciBNU0IgYW5kIGRlcml2ZSBmcmFjdGlvbmFsIGJpdHMgKi9cbiYjNDM7XHRcdFx0bWF4cmF0ZSBcdTAwMjY9IH5CSVQoKmV4cCk7XG4mIzQzO1x0XHRcdCptYW50aXNzYSA9IChtYXhyYXRlIFx1MDAzY1x1MDAzYyBSQVRFX01BTlRJU1NBX0JJVFMpIFx1MDAzZVx1MDAzZSAqZXhwO1xuJiM0MztcdFx0fVxuIFx0fSBlbHNlIHtcbiBcdFx0LyogSW5zdGVhZCBvZiBkaXNhYmxpbmcgcmF0ZSBsaW1pdGluZywgc2V0IGFsbCB2YWx1ZXMgdG8gbWF4ICovXG4gXHRcdCpleHAgPSBNQVhfUkFURV9FWFBPTkVOVDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAxMjozMjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgZWdyZXNzIHJhdGUgY29uZmlndXJhdGlvbiBsb2dpYyBpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgTklDIGRyaXZlci4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkZXZpY2UgZHJpdmVyIHRoYXQgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgR0NFIG9yIFFFTVUpIHVzZWQgZm9yIGZ1enppbmcsIGFzIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBhdmFpbGFibGUgZm9yIHRoaXMgaGFyZHdhcmUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBmOTc5YjAyZjEwMGNhNzA0NGRmOGMwODU2YmRlZWJlNGEwMjYyODY0CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBKdWwgMTcgMTI6MzI6MDggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90Yy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuYwppbmRleCA0MDE2MmIwODAxNGRkNi4uMGI0NmVjMjllNjRlYWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuYwpAQCAtMzAsNiAmIzQzOzMwLDcgQEAKICNkZWZpbmUgT1RYMl9VTlNVUFBfTFNFX0RFUFRICQlHRU5NQVNLKDYsIDQpCiAKICNkZWZpbmUgTUNBU1RfSU5WQUxJRF9HUlAJCSgtMVUpCiYjNDM7I2RlZmluZSBSQVRFX01BTlRJU1NBX0JJVFMJCTgKIAogc3RhdGljIHZvaWQgb3R4Ml9nZXRfZWdyZXNzX2J1cnN0X2NmZyhzdHJ1Y3Qgb3R4Ml9uaWMgKm5pYywgdTMyIGJ1cnN0LAogCQkJCSAgICAgIHUzMiAqYnVyc3RfZXhwLCB1MzIgKmJ1cnN0X21hbnRpc3NhKQpAQCAtNjYsMjggJiM0Mzs2NywzMCBAQCBzdGF0aWMgdm9pZCBvdHgyX2dldF9lZ3Jlc3NfYnVyc3RfY2ZnKHN0cnVjdCBvdHgyX25pYyAqbmljLCB1MzIgYnVyc3QsCiBzdGF0aWMgdm9pZCBvdHgyX2dldF9lZ3Jlc3NfcmF0ZV9jZmcodTY0IG1heHJhdGUsIHUzMiAqZXhwLAogCQkJCSAgICAgdTMyICptYW50aXNzYSwgdTMyICpkaXZfZXhwKQogewotCXU2NCB0bXA7Ci0KIAkvKiBSYXRlIGNhbGN1bGF0aW9uIGJ5IGhhcmR3YXJlCiAJICoKIAkgKiBQSVJfQUREID0gKCgyNTYgJiM0MzsgbWFudGlzc2EpICZsdDsmbHQ7IGV4cCkgLyAyNTYKIAkgKiByYXRlID0gKDIgKiBQSVJfQUREKSAvICggMSAmbHQ7Jmx0OyBkaXZfZXhwKQogCSAqIFRoZSByZXN1bHRhbnQgcmF0ZSBpcyBpbiBNYnBzLgomIzQzOwkgKgomIzQzOwkgKiBVc2UgZGl2X2V4cCA9IDAgYW5kIGNvbXB1dGUgZXhwL21hbnRpc3NhIGZvciBtYXhyYXRlIC8gMjsgdGhlCiYjNDM7CSAqIGxlYWRpbmcgZmFjdG9yIG9mIHR3byB5aWVsZHMgdGhlIGZ1bGwgcmF0ZS4gUmF0ZXMgYmVsb3cgMiBNYnBzCiYjNDM7CSAqIGFyZSBmbG9vcmVkIHRvIHRoZSBzbWFsbGVzdCBzdGVwIChleHAgPSAwLCBtYW50aXNzYSA9IDApLgogCSAqLwogCi0JLyogMk1icHMgdG8gMTAwR2JwcyBjYW4gYmUgZXhwcmVzc2VkIHdpdGggZGl2X2V4cCA9IDAuCi0JICogU2V0dGluZyB0aGlzIHRvICYjMzk7MCYjMzk7IHdpbGwgZWFzZSB0aGUgY2FsY3VsYXRpb24gb2YKLQkgKiBleHBvbmVudCBhbmQgbWFudGlzc2EuCi0JICovCiAJKmRpdl9leHAgPSAwOwotCiAJaWYgKG1heHJhdGUpIHsKLQkJKmV4cCA9IGlsb2cyKG1heHJhdGUpID8gaWxvZzIobWF4cmF0ZSkgLSAxIDogMDsKLQkJdG1wID0gbWF4cmF0ZSAtIHJvdW5kZG93bl9wb3dfb2ZfdHdvKG1heHJhdGUpOwotCQlpZiAobWF4cmF0ZSAmbHQ7IE1BWF9SQVRFX01BTlRJU1NBKQotCQkJKm1hbnRpc3NhID0gdG1wICogMjsKLQkJZWxzZQotCQkJKm1hbnRpc3NhID0gdG1wIC8gKDFVTEwgJmx0OyZsdDsgKCpleHAgLSA3KSk7CiYjNDM7CQltYXhyYXRlID0gbWF4cmF0ZSAvIDI7CiYjNDM7CQlpZiAoIW1heHJhdGUpIHsKJiM0MzsJCQkvKiBSYXRlcyBiZWxvdyAyIE1icHMgbWFwIHRvIHRoZSBzbWFsbGVzdCBzdGVwICovCiYjNDM7CQkJKmV4cCA9IDA7CiYjNDM7CQkJKm1hbnRpc3NhID0gMDsKJiM0MzsJCX0gZWxzZSB7CiYjNDM7CQkJKmV4cCA9IGlsb2cyKG1heHJhdGUpOwomIzQzOwkJCS8qIENsZWFyIE1TQiBhbmQgZGVyaXZlIGZyYWN0aW9uYWwgYml0cyAqLwomIzQzOwkJCW1heHJhdGUgJmFtcDs9IH5CSVQoKmV4cCk7CiYjNDM7CQkJKm1hbnRpc3NhID0gKG1heHJhdGUgJmx0OyZsdDsgUkFURV9NQU5USVNTQV9CSVRTKSAmZ3Q7Jmd0OyAqZXhwOwomIzQzOwkJfQogCX0gZWxzZSB7CiAJCS8qIEluc3RlYWQgb2YgZGlzYWJsaW5nIHJhdGUgbGltaXRpbmcsIHNldCBhbGwgdmFsdWVzIHRvIG1heCAqLwogCQkqZXhwID0gTUFYX1JBVEVfRVhQT05FTlQ7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDEyOjMyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0NzUKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiAyMTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgSGFyZHdhcmUgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgb3R4Ml9nZXRfZWdyZXNzX3JhdGVfY2ZnYCB3aXRoaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmNgLiBJdCYjMzk7cyB0d2Vha2luZyB0aGUgYGV4cGAgYW5kIGBtYW50aXNzYWAgY2FsY3VsYXRpb24gZm9yIGVncmVzcyByYXRlIGNvbmZpZ3VyYXRpb24sIHdoaWNoIGlzIHByZXR0eSBsb3ctbGV2ZWwgc3R1ZmYuIFRoaXMgaXMgYSBNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgZHJpdmVyLCBzcGVjaWZpY2FsbHkgaGFyZHdhcmUuIE15IGZpcnN0IGluc3RpbmN0IGlzLCBjYW4gSSBldmVuICpzZWUqIHRoaXMgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gSGFyZHdhcmUgZHJpdmVycywgZXNwZWNpYWxseSBOSUMgZHJpdmVycywgYXJlIHVzdWFsbHkgb2ZmLWxpbWl0cyB1bmxlc3MgeW91JiMzOTtyZSBzcGVjaWZpY2FsbHkgZW11bGF0aW5nIHRoZSBoYXJkd2FyZSBvciBkb2luZyBzb21lIHNlcmlvdXMgZnV6emluZyB3aXRoIG1vY2tzLgoKVGhlbiBJIHBhdXNlZC4gV2FpdC4uLiBkb2VzIHN5emthbGxlciB0YXJnZXQgdGhpcz8gSSBzaG91bGQgY2hlY2sgaWYgdGhlIGRyaXZlciBldmVuIGdldHMgcHJvYmVkLiBPZnRlbiwgeW91IGNhbiYjMzk7dCByZWFjaCB0aGVzZSBzcGVjaWZpYyBQQ0kgZHJpdmVycyB1bmxlc3MgdGhleSYjMzk7cmUgcnVubmluZyBvbiBhY3R1YWwgaGFyZHdhcmUgb3IgYW4gZW11bGF0b3IuIEkgc2hvdWxkIHN0YXJ0IGJ5IGNhcmVmdWxseSBleGFtaW5pbmcgdGhlIGNvZGUgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmNgIHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcyBhbmQgaG93IG11Y2ggb2YgaXQgaXMgaGFyZHdhcmUtZGVwZW5kZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDEyOjMyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O290eDJfZ2V0X2VncmVzc19yYXRlX2NmZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90Yy5jPTM1PXN0YXRpYyB2b2lkIG90eDJfZ2V0X2VncmVzc19idXJzdF9jZmcoc3RydWN0IG90eDJfbmljICpuaWMsIHUzMiBidXJzdCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90Yy5jLTY2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuYzo2NzpzdGF0aWMgdm9pZCBvdHgyX2dldF9lZ3Jlc3NfcmF0ZV9jZmcodTY0IG1heHJhdGUsIHUzMiAqZXhwLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuYy02OC1cdFx0XHRcdCAgICAgdTMyICptYW50aXNzYSwgdTMyICpkaXZfZXhwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmM9MTAxPXU2NCBvdHgyX2dldF90eHNjaHFfcmF0ZV9yZWd2YWwoc3RydWN0IG90eDJfbmljICpuaWMsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuYy0xMDktXHRvdHgyX2dldF9lZ3Jlc3NfYnVyc3RfY2ZnKG5pYywgYnVyc3QsIFx1MDAyNmJ1cnN0X2V4cCwgXHUwMDI2YnVyc3RfbWFudGlzc2EpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuYzoxMTA6XHRvdHgyX2dldF9lZ3Jlc3NfcmF0ZV9jZmcobWF4cmF0ZSwgXHUwMDI2ZXhwLCBcdTAwMjZtYW50aXNzYSwgXHUwMDI2ZGl2X2V4cCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90Yy5jLTExMS1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAxMjozMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzg5CgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogOTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyB0aGUgT2N0ZW9udHgyIEVncmVzcyBSYXRlIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gSSBzZWUgdGhhdCBgb3R4Ml9nZXRfZWdyZXNzX3JhdGVfY2ZnYCBpcyBiZWluZyBjYWxsZWQgYnkgYG90eDJfZ2V0X3R4c2NocV9yYXRlX3JlZ3ZhbGAuIE1ha2VzIHNlbnNlLCB0aGV5JiMzOTtyZSBsaWtlbHkgcmVsYXRlZCB0byBlZ3Jlc3MgcmF0ZSBsaW1pdGluZyBmb3IgdGhlIHRyYW5zbWl0IHNjaGVkdWxlciBxdWV1ZSwgYWxsIHdpdGhpbiB0aGUgYG9jdGVvbnR4MmAgZHJpdmVyLiBNeSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMsIGlzIHRoaXMgZHJpdmVyIGFjdHVhbGx5IHJlYWNoYWJsZT8gSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIHRoZSBidXMgaXQgb3BlcmF0ZXMgb24uIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jYCBmaWxlLCBvciBzb21ldGhpbmcgc2ltaWxhciB3aXRoaW4gdGhlIGRyaXZlciBkaXJlY3RvcnksIHRvIGZpZ3VyZSBvdXQgd2hhdCB0aGF0IGJ1cyBpbnRlcmFjdGlvbiBsb29rcyBsaWtlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDEyOjMyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O01PRFVMRV9ERVZJQ0VfVEFCTEUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM9NDM9TU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMIHYyXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM6NDQ6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIG90eDJfcGZfaWRfdGFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYy00NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jPTMxPU1PRFVMRV9MSUNFTlNFKFwmIzM0O0dQTCB2MlwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jOjMyOk1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBvdHgyX3ZmX2lkX3RhYmxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmMtMzMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3JlcC5jPTI5PU1PRFVMRV9MSUNFTlNFKFwmIzM0O0dQTFwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvcmVwLmM6MzA6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIHJ2dV9yZXBfaWRfdGFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3JlcC5jLTMxLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDEyOjMyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwNDYKCQkJCQkJCW91dHB1dDogMjcKCQkJCQkJCXRob3VnaHRzOiAxMDgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVW5yZWFjaGFibGUgQ29kZSBpbiBhIFZpcnR1YWxpemVkIFdvcmxkKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIFBDSSBkcml2ZXIuIEl0JiMzOTtzIGZvciBhIE1hcnZlbGwgT2N0ZW9uVFgyIGhhcmR3YXJlLCBhIHByZXR0eSBzcGVjaWZpYyBwaWVjZSBvZiBraXQuIE15IGltbWVkaWF0ZSBjb25jZXJuIGlzIHZpcnR1YWxpemF0aW9uLiBVbmxlc3Mgd2UgaGF2ZSBhIHNvbGlkIFFFTVUgZW11bGF0aW9uIGZvciAqdGhpcyBleGFjdCogUENJIGRldmljZSwgaXQmIzM5O3MgYmFzaWNhbGx5IGdvaW5nIHRvIGJlIGludmlzaWJsZSBpbiBhIHZpcnR1YWwgZW52aXJvbm1lbnQuIE5vdywgSSBrbm93IFN5emthbGxlciBwcmV0dHkgd2VsbCwgYW5kIEkgZG9uJiMzOTt0IHJlY2FsbCBzZWVpbmcgYW55IE9jdGVvblRYMiBlbXVsYXRvciBzdXBwb3J0IHRoZXJlLiBUaGF0IG1lYW5zIHRoaXMgY29kZSBpcyBkZWFkIGluIHRoZSB3YXRlciBmb3IgZnV6emluZyBpbiBhIHBsYWNlIGxpa2UgR0NFIG9yLCBhcyBJIHNhaWQsIGEgc3RhbmRhcmQgUUVNVSBzZXR1cC4gU2luY2UgaXRzIHVucmVhY2hhYmxlIEkgc2hvdWxkIGltbWVkaWF0ZWx5IG1hcmsgdGhpcyBhcyBXb3J0aEZ1enppbmc9ZmFsc2UsIGJlZm9yZSBJIGJ1cm4gYW55IG1vcmUgY3ljbGVzIG9uIGl0LiBCdXQsIGl0JiMzOTtzIGFsd2F5cyBnb29kIHRvIGRvdWJsZS1jaGVjay4gSnVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIGxldCBtZSBkbyBhIHF1aWNrIHN3ZWVwIGFuZCBzZWUgaWYgKmFueSoga2luZCBvZiBzb2Z0d2FyZSBlbXVsYXRpb24gZXhpc3RzIGZvciB0aGlzIHRoaW5nLiBZb3Uga25vdyBob3cgaXQgZ29lczsgaXQmIzM5O3MgYWx3YXlzIGdvb2QgdG8gYmUgdGhvcm91Z2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMTI6MzI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtvY3Rlb250eDImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDt0b29scy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDEyOjMyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ0MTMKCQkJCQkJCW91dHB1dDogMjcKCQkJCQkJCXRob3VnaHRzOiA0NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIHRoZSBNaXNzaW5nIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gSSYjMzk7dmUgaGl0IGEgcm9hZGJsb2NrLiBNeSBpbml0aWFsIHNlYXJjaCBpbiB0aGUgYHRvb2xzL2AgZGlyZWN0b3J5IHR1cm5lZCB1cCBub3RoaW5nIHJlbGF0ZWQgdG8gdGhpcy4gSG1tLCBhbHJpZ2h0LCBJIG5lZWQgdG8gYnJvYWRlbiB0aGUgc2NvcGUgYSBiaXQuIFNpbmNlIHRoaXMgbGlrZWx5IGNvbmNlcm5zIG5ldHdvcmsgZGV2aWNlIGRyaXZlcnMsIHNwZWNpZmljYWxseSBFdGhlcm5ldCwgSSBzaG91bGQgc3RhcnQgcG9raW5nIGFyb3VuZCBpbiB0aGUgYERvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9tYXJ2ZWxsL2AgaGllcmFyY2h5LiBJJiMzOTttIGdvaW5nIHRvIHN0YXJ0IHdpdGggYSBwZWVrIGF0IGBvY3Rlb250eDIucnN0YCAtIHRoYXQgc291bmRzIGxpa2UgYSByZWxldmFudCBzdGFydGluZyBwb2ludC4gSG9wZWZ1bGx5LCB0aGUgZG9jdW1lbnRhdGlvbiBoYXMgc29tZSBjbHVlcyBhYm91dCB3aGF0IEkmIzM5O20gbWlzc2luZyEgSSBuZWVkIHRvIGZpbmQgdGhlIGNvbmZpZ3VyYXRpb24gaXRlbSwgYW5kIHdoeSBpdCYjMzk7cyBub3QgcHJlc2VudC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMTI6MzI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7b2N0ZW9udHgyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi8ucmVuYW1lcy50eHQ9ODE4PW5ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvaW50ZWwvaXhnYmV2ZiBuZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L2ludGVsL2l4Z2JldmZcbkRvY3VtZW50YXRpb24vLnJlbmFtZXMudHh0OjgxOTpuZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL21hcnZlbGwvb2N0ZW9udHgyIG5ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDJcbkRvY3VtZW50YXRpb24vLnJlbmFtZXMudHh0LTgyMC1uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL21pY3Jvc29mdC9uZXR2c2MgbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9taWNyb3NvZnQvbmV0dnNjXG4tLVxuRG9jdW1lbnRhdGlvbi9jcnlwdG8vZGV2aWNlX2RyaXZlcnMvaW5kZXgucnN0PTM9SGFyZHdhcmUgRGV2aWNlIERyaXZlciBTcGVjaWZpYyBEb2N1bWVudGF0aW9uXG4tLVxuRG9jdW1lbnRhdGlvbi9jcnlwdG8vZGV2aWNlX2RyaXZlcnMvaW5kZXgucnN0LTgtXG5Eb2N1bWVudGF0aW9uL2NyeXB0by9kZXZpY2VfZHJpdmVycy9pbmRleC5yc3Q6OTogICBvY3Rlb250eDJcbi0tXG5Eb2N1bWVudGF0aW9uL2NyeXB0by9kZXZpY2VfZHJpdmVycy9vY3Rlb250eDIucnN0LTMtPT09PT09PT09PT09PT09PT09PT09PT09PVxuRG9jdW1lbnRhdGlvbi9jcnlwdG8vZGV2aWNlX2RyaXZlcnMvb2N0ZW9udHgyLnJzdDo0Om9jdGVvbnR4MiBkZXZsaW5rIHN1cHBvcnRcbkRvY3VtZW50YXRpb24vY3J5cHRvL2RldmljZV9kcml2ZXJzL29jdGVvbnR4Mi5yc3QtNS09PT09PT09PT09PT09PT09PT09PT09PT09XG5Eb2N1bWVudGF0aW9uL2NyeXB0by9kZXZpY2VfZHJpdmVycy9vY3Rlb250eDIucnN0LTYtXG5Eb2N1bWVudGF0aW9uL2NyeXB0by9kZXZpY2VfZHJpdmVycy9vY3Rlb250eDIucnN0Ojc6VGhpcyBkb2N1bWVudCBkZXNjcmliZXMgdGhlIGRldmxpbmsgZmVhdHVyZXMgaW1wbGVtZW50ZWQgYnkgdGhlIGBgb2N0ZW9udHgyIENQVGBgXG5Eb2N1bWVudGF0aW9uL2NyeXB0by9kZXZpY2VfZHJpdmVycy9vY3Rlb250eDIucnN0LTgtZGV2aWNlIGRyaXZlcnMuXG4tLVxuRG9jdW1lbnRhdGlvbi9jcnlwdG8vZGV2aWNlX2RyaXZlcnMvb2N0ZW9udHgyLnJzdD0xMD1QYXJhbWV0ZXJzXG4tLVxuRG9jdW1lbnRhdGlvbi9jcnlwdG8vZGV2aWNlX2RyaXZlcnMvb2N0ZW9udHgyLnJzdC0xMi1cbkRvY3VtZW50YXRpb24vY3J5cHRvL2RldmljZV9kcml2ZXJzL29jdGVvbnR4Mi5yc3Q6MTM6VGhlIGBgb2N0ZW9udHgyYGAgZHJpdmVyIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBkcml2ZXItc3BlY2lmaWMgcGFyYW1ldGVycy5cbkRvY3VtZW50YXRpb24vY3J5cHRvL2RldmljZV9kcml2ZXJzL29jdGVvbnR4Mi5yc3QtMTQtXG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L2luZGV4LnJzdD04PUNvbnRlbnRzOlxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9pbmRleC5yc3QtNDItICAgaW50ZWwvaWNlXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvaW5kZXgucnN0OjQzOiAgIG1hcnZlbGwvb2N0ZW9udHgyXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvaW5kZXgucnN0LTQ0LSAgIG1hcnZlbGwvb2N0ZW9uX2VwXG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyLnJzdD0yOTg9SGFyZHdhcmUgYWxnb3JpdGhtcyB1c2VkIGluIHNjaGVkdWxpbmdcbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIucnN0LTMwMC1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi5yc3Q6MzAxOm9jdGVvbnR4MiBzaWxpY29uIGFuZCBDTjEwSyB0cmFuc21pdCBpbnRlcmZhY2UgY29uc2lzdHMgb2YgZml2ZSB0cmFuc21pdCBsZXZlbHNcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi5yc3QtMzAyLXN0YXJ0aW5nIGZyb20gU01RL01EUSwgVEw0IHRvIFRMMS4gRWFjaCBwYWNrZXQgd2lsbCB0cmF2ZXJzZSBNRFEsIFRMNCB0byBUTDFcbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9pbmRleC5yc3Q9Nzc9cGFyYW1ldGVycywgaW5mbyB2ZXJzaW9ucywgYW5kIG90aGVyIGZlYXR1cmVzIGl0IHN1cHBvcnRzLlxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL2luZGV4LnJzdC05OC0gICBuZnBcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL2luZGV4LnJzdDo5OTogICBvY3Rlb250eDJcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL2luZGV4LnJzdC0xMDAtICAgcHJlc3RlcmFcbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9vY3Rlb250eDIucnN0LTMtPT09PT09PT09PT09PT09PT09PT09PT09PVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2Rldmxpbmsvb2N0ZW9udHgyLnJzdDo0Om9jdGVvbnR4MiBkZXZsaW5rIHN1cHBvcnRcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL29jdGVvbnR4Mi5yc3QtNS09PT09PT09PT09PT09PT09PT09PT09PT09XG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9vY3Rlb250eDIucnN0LTYtXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9vY3Rlb250eDIucnN0Ojc6VGhpcyBkb2N1bWVudCBkZXNjcmliZXMgdGhlIGRldmxpbmsgZmVhdHVyZXMgaW1wbGVtZW50ZWQgYnkgdGhlIGBgb2N0ZW9udHgyIEFGLCBQRiBhbmQgVkZgYFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2Rldmxpbmsvb2N0ZW9udHgyLnJzdC04LWRldmljZSBkcml2ZXJzLlxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL29jdGVvbnR4Mi5yc3Q9MTA9UGFyYW1ldGVyc1xuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL29jdGVvbnR4Mi5yc3QtMTItXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9vY3Rlb250eDIucnN0OjEzOlRoZSBgYG9jdGVvbnR4MiBQRiBhbmQgVkZgYCBkcml2ZXJzIGltcGxlbWVudCB0aGUgZm9sbG93aW5nIGRyaXZlci1zcGVjaWZpYyBwYXJhbWV0ZXJzLlxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2Rldmxpbmsvb2N0ZW9udHgyLnJzdC0xNC1cbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9vY3Rlb250eDIucnN0LTI4LVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2Rldmxpbmsvb2N0ZW9udHgyLnJzdDoyOTpUaGUgYGBvY3Rlb250eDIgQUZgYCBkcml2ZXIgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIGRyaXZlci1zcGVjaWZpYyBwYXJhbWV0ZXJzLlxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2Rldmxpbmsvb2N0ZW9udHgyLnJzdC0zMC1cbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9vY3Rlb250eDIucnN0LTY0LVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2Rldmxpbmsvb2N0ZW9udHgyLnJzdDo2NTpUaGUgYGBvY3Rlb250eDIgUEZgYCBkcml2ZXIgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIGRyaXZlci1zcGVjaWZpYyBwYXJhbWV0ZXJzLlxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2Rldmxpbmsvb2N0ZW9udHgyLnJzdC02Ni1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMTI6MzI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTgyNAoJCQkJCQkJb3V0cHV0OiA5NAoJCQkJCQkJdGhvdWdodHM6IDY2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBkcml2ZXIgYW5kIHRoZSBkZXNjcmlwdGlvbiBpbW1lZGlhdGVseSBmbGFncyBpdCBhcyBoYXJkd2FyZS1zcGVjaWZpYy4gSSBzZWUgbWVudGlvbnMgb2YgJiMzNDtvY3Rlb250eDIgc2lsaWNvbiYjMzQ7IGFuZCAmIzM0O0NOMTBLIHRyYW5zbWl0IGludGVyZmFjZSwmIzM0OyB3aGljaCBzY3JlYW1zIGhhcmR3YXJlIGNvbXBvbmVudC4gVGhlIGRldGFpbCBhYm91dCAmIzM0O2ZpdmUgdHJhbnNtaXQgbGV2ZWxzJiMzNDsgZnVydGhlciBjZW1lbnRzIHRoaXMgYXMgYSBsb3ctbGV2ZWwgaW50ZXJhY3Rpb24gd2l0aCBzcGVjaWZpYyBzaWxpY29uLiBUaGlzIGlzbiYjMzk7dCBqdXN0IGEgZ2VuZXJpYyBuZXR3b3JrIGRyaXZlcjsgaXQmIzM5O3MgaW50cmljYXRlbHkgdGllZCB0byBhIHBhcnRpY3VsYXIgaGFyZHdhcmUgaW1wbGVtZW50YXRpb24uCgpHaXZlbiBteSB1bmRlcnN0YW5kaW5nIG9mIHZpcnR1YWxpemF0aW9uLCBJJiMzOTttIGNvbmZpZGVudCBpbiBjb25jbHVkaW5nIHRoYXQgdGhpcyBwYXJ0aWN1bGFyIGRyaXZlciBpcyBnb2luZyB0byBiZSB1bnJlYWNoYWJsZSwgb3IgYXQgdGhlIHZlcnkgbGVhc3QsIGJlaGF2ZSBpbiBhbiB1bnByZWRpY3RhYmxlIG1hbm5lciwgd2l0aGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIFRoZXJlZm9yZSwgSSYjMzk7bSBnb2luZyB0byBzZXQgYFdvcnRoRnV6emluZz1mYWxzZWAuIFRoZSByZWFzb25pbmcgaXMgc3RyYWlnaHRmb3J3YXJkOiB0aGlzIGlzIGEgaGFyZHdhcmUtZGVwZW5kZW50IGRyaXZlciwgYW5kIGZ1enppbmcgaXQgd291bGQgYmUgaW5lZmZlY3RpdmUgaW4gYSB2aXJ0dWFsaXplZCBzZXR0aW5nLCBhbmQgcG90ZW50aWFsbHkgbGVhZCB0byBtaXNsZWFkaW5nIHJlc3VsdHMgb3IgaXNzdWVzLiBJdCB3b3VsZCBub3QgYmUgZWZmaWNpZW50IHVzZSBvZiBteSB0aW1lIG9yIHJlc291cmNlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMTI6MzI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgZWdyZXNzIHJhdGUgY29uZmlndXJhdGlvbiBsb2dpYyBpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgTklDIGRyaXZlci4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkZXZpY2UgZHJpdmVyIHRoYXQgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgR0NFIG9yIFFFTVUpIHVzZWQgZm9yIGZ1enppbmcsIGFzIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBhdmFpbGFibGUgZm9yIHRoaXMgaGFyZHdhcmUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgZWdyZXNzIHJhdGUgY29uZmlndXJhdGlvbiBsb2dpYyBpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgTklDIGRyaXZlci4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkZXZpY2UgZHJpdmVyIHRoYXQgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgR0NFIG9yIFFFTVUpIHVzZWQgZm9yIGZ1enppbmcsIGFzIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBhdmFpbGFibGUgZm9yIHRoaXMgaGFyZHdhcmUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTdUMTI6MzI6MDkuNTA5MzYzNTA2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjMyMDE3MjgwNzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBlZ3Jlc3MgcmF0ZSBjb25maWd1cmF0aW9uIGxvZ2ljIGluIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgZHJpdmVyLiBUaGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRldmljZSBkcml2ZXIgdGhhdCBpcyBub3QgcmVhY2hhYmxlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBHQ0Ugb3IgUUVNVSkgdXNlZCBmb3IgZnV6emluZywgYXMgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGF2YWlsYWJsZSBmb3IgdGhpcyBoYXJkd2FyZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDEyOjMyOjA5LjUwOTM2NzY4NloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDE5ODU2NTcxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZjk3OWIwMmYxMDBjYTcwNDRkZjhjMDg1NmJkZWViZTRhMDI2Mjg2NFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEp1bCAxNyAxMjozMjowOCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90Yy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuY1xcbmluZGV4IDQwMTYyYjA4MDE0ZGQ2Li4wYjQ2ZWMyOWU2NGVhYSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90Yy5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuY1xcbkBAIC0zMCw2ICszMCw3IEBAXFxuICNkZWZpbmUgT1RYMl9VTlNVUFBfTFNFX0RFUFRIXFx0XFx0R0VOTUFTSyg2LCA0KVxcbiBcXG4gI2RlZmluZSBNQ0FTVF9JTlZBTElEX0dSUFxcdFxcdCgtMVUpXFxuKyNkZWZpbmUgUkFURV9NQU5USVNTQV9CSVRTXFx0XFx0OFxcbiBcXG4gc3RhdGljIHZvaWQgb3R4Ml9nZXRfZWdyZXNzX2J1cnN0X2NmZyhzdHJ1Y3Qgb3R4Ml9uaWMgKm5pYywgdTMyIGJ1cnN0LFxcbiBcXHRcXHRcXHRcXHQgICAgICB1MzIgKmJ1cnN0X2V4cCwgdTMyICpidXJzdF9tYW50aXNzYSlcXG5AQCAtNjYsMjggKzY3LDMwIEBAIHN0YXRpYyB2b2lkIG90eDJfZ2V0X2VncmVzc19idXJzdF9jZmcoc3RydWN0IG90eDJfbmljICpuaWMsIHUzMiBidXJzdCxcXG4gc3RhdGljIHZvaWQgb3R4Ml9nZXRfZWdyZXNzX3JhdGVfY2ZnKHU2NCBtYXhyYXRlLCB1MzIgKmV4cCxcXG4gXFx0XFx0XFx0XFx0ICAgICB1MzIgKm1hbnRpc3NhLCB1MzIgKmRpdl9leHApXFxuIHtcXG4tXFx0dTY0IHRtcDtcXG4tXFxuIFxcdC8qIFJhdGUgY2FsY3VsYXRpb24gYnkgaGFyZHdhcmVcXG4gXFx0ICpcXG4gXFx0ICogUElSX0FERCA9ICgoMjU2ICsgbWFudGlzc2EpIFxcdTAwM2NcXHUwMDNjIGV4cCkgLyAyNTZcXG4gXFx0ICogcmF0ZSA9ICgyICogUElSX0FERCkgLyAoIDEgXFx1MDAzY1xcdTAwM2MgZGl2X2V4cClcXG4gXFx0ICogVGhlIHJlc3VsdGFudCByYXRlIGlzIGluIE1icHMuXFxuK1xcdCAqXFxuK1xcdCAqIFVzZSBkaXZfZXhwID0gMCBhbmQgY29tcHV0ZSBleHAvbWFudGlzc2EgZm9yIG1heHJhdGUgLyAyOyB0aGVcXG4rXFx0ICogbGVhZGluZyBmYWN0b3Igb2YgdHdvIHlpZWxkcyB0aGUgZnVsbCByYXRlLiBSYXRlcyBiZWxvdyAyIE1icHNcXG4rXFx0ICogYXJlIGZsb29yZWQgdG8gdGhlIHNtYWxsZXN0IHN0ZXAgKGV4cCA9IDAsIG1hbnRpc3NhID0gMCkuXFxuIFxcdCAqL1xcbiBcXG4tXFx0LyogMk1icHMgdG8gMTAwR2JwcyBjYW4gYmUgZXhwcmVzc2VkIHdpdGggZGl2X2V4cCA9IDAuXFxuLVxcdCAqIFNldHRpbmcgdGhpcyB0byAnMCcgd2lsbCBlYXNlIHRoZSBjYWxjdWxhdGlvbiBvZlxcbi1cXHQgKiBleHBvbmVudCBhbmQgbWFudGlzc2EuXFxuLVxcdCAqL1xcbiBcXHQqZGl2X2V4cCA9IDA7XFxuLVxcbiBcXHRpZiAobWF4cmF0ZSkge1xcbi1cXHRcXHQqZXhwID0gaWxvZzIobWF4cmF0ZSkgPyBpbG9nMihtYXhyYXRlKSAtIDEgOiAwO1xcbi1cXHRcXHR0bXAgPSBtYXhyYXRlIC0gcm91bmRkb3duX3Bvd19vZl90d28obWF4cmF0ZSk7XFxuLVxcdFxcdGlmIChtYXhyYXRlIFxcdTAwM2MgTUFYX1JBVEVfTUFOVElTU0EpXFxuLVxcdFxcdFxcdCptYW50aXNzYSA9IHRtcCAqIDI7XFxuLVxcdFxcdGVsc2VcXG4tXFx0XFx0XFx0Km1hbnRpc3NhID0gdG1wIC8gKDFVTEwgXFx1MDAzY1xcdTAwM2MgKCpleHAgLSA3KSk7XFxuK1xcdFxcdG1heHJhdGUgPSBtYXhyYXRlIC8gMjtcXG4rXFx0XFx0aWYgKCFtYXhyYXRlKSB7XFxuK1xcdFxcdFxcdC8qIFJhdGVzIGJlbG93IDIgTWJwcyBtYXAgdG8gdGhlIHNtYWxsZXN0IHN0ZXAgKi9cXG4rXFx0XFx0XFx0KmV4cCA9IDA7XFxuK1xcdFxcdFxcdCptYW50aXNzYSA9IDA7XFxuK1xcdFxcdH0gZWxzZSB7XFxuK1xcdFxcdFxcdCpleHAgPSBpbG9nMihtYXhyYXRlKTtcXG4rXFx0XFx0XFx0LyogQ2xlYXIgTVNCIGFuZCBkZXJpdmUgZnJhY3Rpb25hbCBiaXRzICovXFxuK1xcdFxcdFxcdG1heHJhdGUgXFx1MDAyNj0gfkJJVCgqZXhwKTtcXG4rXFx0XFx0XFx0Km1hbnRpc3NhID0gKG1heHJhdGUgXFx1MDAzY1xcdTAwM2MgUkFURV9NQU5USVNTQV9CSVRTKSBcXHUwMDNlXFx1MDAzZSAqZXhwO1xcbitcXHRcXHR9XFxuIFxcdH0gZWxzZSB7XFxuIFxcdFxcdC8qIEluc3RlYWQgb2YgZGlzYWJsaW5nIHJhdGUgbGltaXRpbmcsIHNldCBhbGwgdmFsdWVzIHRvIG1heCAqL1xcbiBcXHRcXHQqZXhwID0gTUFYX1JBVEVfRVhQT05FTlQ7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDEyOjMyOjA5LjkyOTk3NDQ3N1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjI3ODExMTE3NzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBlZ3Jlc3MgcmF0ZSBjb25maWd1cmF0aW9uIGxvZ2ljIGluIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgZHJpdmVyLiBUaGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJIGRldmljZSBkcml2ZXIgdGhhdCBpcyBub3QgcmVhY2hhYmxlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBHQ0Ugb3IgUUVNVSkgdXNlZCBmb3IgZnV6emluZywgYXMgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGF2YWlsYWJsZSBmb3IgdGhpcyBoYXJkd2FyZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZjk3OWIwMmYxMDBjYTcwNDRkZjhjMDg1NmJkZWViZTRhMDI2Mjg2NFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDE3IDEyOjMyOjA4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmNcbmluZGV4IDQwMTYyYjA4MDE0ZGQ2Li4wYjQ2ZWMyOWU2NGVhYSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmNcbkBAIC0zMCw2ICszMCw3IEBAXG4gI2RlZmluZSBPVFgyX1VOU1VQUF9MU0VfREVQVEhcdFx0R0VOTUFTSyg2LCA0KVxuIFxuICNkZWZpbmUgTUNBU1RfSU5WQUxJRF9HUlBcdFx0KC0xVSlcbisjZGVmaW5lIFJBVEVfTUFOVElTU0FfQklUU1x0XHQ4XG4gXG4gc3RhdGljIHZvaWQgb3R4Ml9nZXRfZWdyZXNzX2J1cnN0X2NmZyhzdHJ1Y3Qgb3R4Ml9uaWMgKm5pYywgdTMyIGJ1cnN0LFxuIFx0XHRcdFx0ICAgICAgdTMyICpidXJzdF9leHAsIHUzMiAqYnVyc3RfbWFudGlzc2EpXG5AQCAtNjYsMjggKzY3LDMwIEBAIHN0YXRpYyB2b2lkIG90eDJfZ2V0X2VncmVzc19idXJzdF9jZmcoc3RydWN0IG90eDJfbmljICpuaWMsIHUzMiBidXJzdCxcbiBzdGF0aWMgdm9pZCBvdHgyX2dldF9lZ3Jlc3NfcmF0ZV9jZmcodTY0IG1heHJhdGUsIHUzMiAqZXhwLFxuIFx0XHRcdFx0ICAgICB1MzIgKm1hbnRpc3NhLCB1MzIgKmRpdl9leHApXG4ge1xuLVx0dTY0IHRtcDtcbi1cbiBcdC8qIFJhdGUgY2FsY3VsYXRpb24gYnkgaGFyZHdhcmVcbiBcdCAqXG4gXHQgKiBQSVJfQUREID0gKCgyNTYgKyBtYW50aXNzYSkgXHUwMDNjXHUwMDNjIGV4cCkgLyAyNTZcbiBcdCAqIHJhdGUgPSAoMiAqIFBJUl9BREQpIC8gKCAxIFx1MDAzY1x1MDAzYyBkaXZfZXhwKVxuIFx0ICogVGhlIHJlc3VsdGFudCByYXRlIGlzIGluIE1icHMuXG4rXHQgKlxuK1x0ICogVXNlIGRpdl9leHAgPSAwIGFuZCBjb21wdXRlIGV4cC9tYW50aXNzYSBmb3IgbWF4cmF0ZSAvIDI7IHRoZVxuK1x0ICogbGVhZGluZyBmYWN0b3Igb2YgdHdvIHlpZWxkcyB0aGUgZnVsbCByYXRlLiBSYXRlcyBiZWxvdyAyIE1icHNcbitcdCAqIGFyZSBmbG9vcmVkIHRvIHRoZSBzbWFsbGVzdCBzdGVwIChleHAgPSAwLCBtYW50aXNzYSA9IDApLlxuIFx0ICovXG4gXG4tXHQvKiAyTWJwcyB0byAxMDBHYnBzIGNhbiBiZSBleHByZXNzZWQgd2l0aCBkaXZfZXhwID0gMC5cbi1cdCAqIFNldHRpbmcgdGhpcyB0byAnMCcgd2lsbCBlYXNlIHRoZSBjYWxjdWxhdGlvbiBvZlxuLVx0ICogZXhwb25lbnQgYW5kIG1hbnRpc3NhLlxuLVx0ICovXG4gXHQqZGl2X2V4cCA9IDA7XG4tXG4gXHRpZiAobWF4cmF0ZSkge1xuLVx0XHQqZXhwID0gaWxvZzIobWF4cmF0ZSkgPyBpbG9nMihtYXhyYXRlKSAtIDEgOiAwO1xuLVx0XHR0bXAgPSBtYXhyYXRlIC0gcm91bmRkb3duX3Bvd19vZl90d28obWF4cmF0ZSk7XG4tXHRcdGlmIChtYXhyYXRlIFx1MDAzYyBNQVhfUkFURV9NQU5USVNTQSlcbi1cdFx0XHQqbWFudGlzc2EgPSB0bXAgKiAyO1xuLVx0XHRlbHNlXG4tXHRcdFx0Km1hbnRpc3NhID0gdG1wIC8gKDFVTEwgXHUwMDNjXHUwMDNjICgqZXhwIC0gNykpO1xuK1x0XHRtYXhyYXRlID0gbWF4cmF0ZSAvIDI7XG4rXHRcdGlmICghbWF4cmF0ZSkge1xuK1x0XHRcdC8qIFJhdGVzIGJlbG93IDIgTWJwcyBtYXAgdG8gdGhlIHNtYWxsZXN0IHN0ZXAgKi9cbitcdFx0XHQqZXhwID0gMDtcbitcdFx0XHQqbWFudGlzc2EgPSAwO1xuK1x0XHR9IGVsc2Uge1xuK1x0XHRcdCpleHAgPSBpbG9nMihtYXhyYXRlKTtcbitcdFx0XHQvKiBDbGVhciBNU0IgYW5kIGRlcml2ZSBmcmFjdGlvbmFsIGJpdHMgKi9cbitcdFx0XHRtYXhyYXRlIFx1MDAyNj0gfkJJVCgqZXhwKTtcbitcdFx0XHQqbWFudGlzc2EgPSAobWF4cmF0ZSBcdTAwM2NcdTAwM2MgUkFURV9NQU5USVNTQV9CSVRTKSBcdTAwM2VcdTAwM2UgKmV4cDtcbitcdFx0fVxuIFx0fSBlbHNlIHtcbiBcdFx0LyogSW5zdGVhZCBvZiBkaXNhYmxpbmcgcmF0ZSBsaW1pdGluZywgc2V0IGFsbCB2YWx1ZXMgdG8gbWF4ICovXG4gXHRcdCpleHAgPSBNQVhfUkFURV9FWFBPTkVOVDtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDEyOjMyOjA5LjkyOTk3NTkzN1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUyOTU4MjE0NDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgSGFyZHdhcmUgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYG90eDJfZ2V0X2VncmVzc19yYXRlX2NmZ2Agd2l0aGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90Yy5jYC4gSXQncyB0d2Vha2luZyB0aGUgYGV4cGAgYW5kIGBtYW50aXNzYWAgY2FsY3VsYXRpb24gZm9yIGVncmVzcyByYXRlIGNvbmZpZ3VyYXRpb24sIHdoaWNoIGlzIHByZXR0eSBsb3ctbGV2ZWwgc3R1ZmYuIFRoaXMgaXMgYSBNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgZHJpdmVyLCBzcGVjaWZpY2FsbHkgaGFyZHdhcmUuIE15IGZpcnN0IGluc3RpbmN0IGlzLCBjYW4gSSBldmVuICpzZWUqIHRoaXMgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gSGFyZHdhcmUgZHJpdmVycywgZXNwZWNpYWxseSBOSUMgZHJpdmVycywgYXJlIHVzdWFsbHkgb2ZmLWxpbWl0cyB1bmxlc3MgeW91J3JlIHNwZWNpZmljYWxseSBlbXVsYXRpbmcgdGhlIGhhcmR3YXJlIG9yIGRvaW5nIHNvbWUgc2VyaW91cyBmdXp6aW5nIHdpdGggbW9ja3MuXG5cblRoZW4gSSBwYXVzZWQuIFdhaXQuLi4gZG9lcyBzeXprYWxsZXIgdGFyZ2V0IHRoaXM/IEkgc2hvdWxkIGNoZWNrIGlmIHRoZSBkcml2ZXIgZXZlbiBnZXRzIHByb2JlZC4gT2Z0ZW4sIHlvdSBjYW4ndCByZWFjaCB0aGVzZSBzcGVjaWZpYyBQQ0kgZHJpdmVycyB1bmxlc3MgdGhleSdyZSBydW5uaW5nIG9uIGFjdHVhbCBoYXJkd2FyZSBvciBhbiBlbXVsYXRvci4gSSBzaG91bGQgc3RhcnQgYnkgY2FyZWZ1bGx5IGV4YW1pbmluZyB0aGUgY29kZSBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuY2AgdG8gdW5kZXJzdGFuZCB0aGUgZGVwZW5kZW5jaWVzIGFuZCBob3cgbXVjaCBvZiBpdCBpcyBoYXJkd2FyZS1kZXBlbmRlbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0NzUsIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTgsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QxMjozMjoxNS4yMjU4MDAyMVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTUwNjE3MzE5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm90eDJfZ2V0X2VncmVzc19yYXRlX2NmZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90Yy5jPTM1PXN0YXRpYyB2b2lkIG90eDJfZ2V0X2VncmVzc19idXJzdF9jZmcoc3RydWN0IG90eDJfbmljICpuaWMsIHUzMiBidXJzdCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmMtNjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuYzo2NzpzdGF0aWMgdm9pZCBvdHgyX2dldF9lZ3Jlc3NfcmF0ZV9jZmcodTY0IG1heHJhdGUsIHUzMiAqZXhwLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmMtNjgtXFx0XFx0XFx0XFx0ICAgICB1MzIgKm1hbnRpc3NhLCB1MzIgKmRpdl9leHApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90Yy5jPTEwMT11NjQgb3R4Ml9nZXRfdHhzY2hxX3JhdGVfcmVndmFsKHN0cnVjdCBvdHgyX25pYyAqbmljLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuYy0xMDktXFx0b3R4Ml9nZXRfZWdyZXNzX2J1cnN0X2NmZyhuaWMsIGJ1cnN0LCBcXHUwMDI2YnVyc3RfZXhwLCBcXHUwMDI2YnVyc3RfbWFudGlzc2EpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmM6MTEwOlxcdG90eDJfZ2V0X2VncmVzc19yYXRlX2NmZyhtYXhyYXRlLCBcXHUwMDI2ZXhwLCBcXHUwMDI2bWFudGlzc2EsIFxcdTAwMjZkaXZfZXhwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90Yy5jLTExMS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMTI6MzI6MTcuNzc2NDI5ODM4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzI5MDk1MzUxMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIHRoZSBPY3Rlb250eDIgRWdyZXNzIFJhdGUgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIEkgc2VlIHRoYXQgYG90eDJfZ2V0X2VncmVzc19yYXRlX2NmZ2AgaXMgYmVpbmcgY2FsbGVkIGJ5IGBvdHgyX2dldF90eHNjaHFfcmF0ZV9yZWd2YWxgLiBNYWtlcyBzZW5zZSwgdGhleSdyZSBsaWtlbHkgcmVsYXRlZCB0byBlZ3Jlc3MgcmF0ZSBsaW1pdGluZyBmb3IgdGhlIHRyYW5zbWl0IHNjaGVkdWxlciBxdWV1ZSwgYWxsIHdpdGhpbiB0aGUgYG9jdGVvbnR4MmAgZHJpdmVyLiBNeSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMsIGlzIHRoaXMgZHJpdmVyIGFjdHVhbGx5IHJlYWNoYWJsZT8gSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIHRoZSBidXMgaXQgb3BlcmF0ZXMgb24uIEknbGwgbmVlZCB0byBjaGVjayB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmNgIGZpbGUsIG9yIHNvbWV0aGluZyBzaW1pbGFyIHdpdGhpbiB0aGUgZHJpdmVyIGRpcmVjdG9yeSwgdG8gZmlndXJlIG91dCB3aGF0IHRoYXQgYnVzIGludGVyYWN0aW9uIGxvb2tzIGxpa2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzODksIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QxMjozMjoyMS4wNjczODUzNjJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTc5OTUyODksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTU9EVUxFX0RFVklDRV9UQUJMRVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM9NDM9TU9EVUxFX0xJQ0VOU0UoXFxcIkdQTCB2MlxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM6NDQ6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIG90eDJfcGZfaWRfdGFibGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMtNDUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jPTMxPU1PRFVMRV9MSUNFTlNFKFxcXCJHUEwgdjJcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jOjMyOk1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBvdHgyX3ZmX2lkX3RhYmxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jLTMzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3JlcC5jPTI5PU1PRFVMRV9MSUNFTlNFKFxcXCJHUExcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvcmVwLmM6MzA6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIHJ2dV9yZXBfaWRfdGFibGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9yZXAuYy0zMS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMTI6MzI6MjEuMTI1Mzg4MzAxWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzgyODgxMjkzMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipVbnJlYWNoYWJsZSBDb2RlIGluIGEgVmlydHVhbGl6ZWQgV29ybGQqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIFBDSSBkcml2ZXIuIEl0J3MgZm9yIGEgTWFydmVsbCBPY3Rlb25UWDIgaGFyZHdhcmUsIGEgcHJldHR5IHNwZWNpZmljIHBpZWNlIG9mIGtpdC4gTXkgaW1tZWRpYXRlIGNvbmNlcm4gaXMgdmlydHVhbGl6YXRpb24uIFVubGVzcyB3ZSBoYXZlIGEgc29saWQgUUVNVSBlbXVsYXRpb24gZm9yICp0aGlzIGV4YWN0KiBQQ0kgZGV2aWNlLCBpdCdzIGJhc2ljYWxseSBnb2luZyB0byBiZSBpbnZpc2libGUgaW4gYSB2aXJ0dWFsIGVudmlyb25tZW50LiBOb3csIEkga25vdyBTeXprYWxsZXIgcHJldHR5IHdlbGwsIGFuZCBJIGRvbid0IHJlY2FsbCBzZWVpbmcgYW55IE9jdGVvblRYMiBlbXVsYXRvciBzdXBwb3J0IHRoZXJlLiBUaGF0IG1lYW5zIHRoaXMgY29kZSBpcyBkZWFkIGluIHRoZSB3YXRlciBmb3IgZnV6emluZyBpbiBhIHBsYWNlIGxpa2UgR0NFIG9yLCBhcyBJIHNhaWQsIGEgc3RhbmRhcmQgUUVNVSBzZXR1cC4gU2luY2UgaXRzIHVucmVhY2hhYmxlIEkgc2hvdWxkIGltbWVkaWF0ZWx5IG1hcmsgdGhpcyBhcyBXb3J0aEZ1enppbmc9ZmFsc2UsIGJlZm9yZSBJIGJ1cm4gYW55IG1vcmUgY3ljbGVzIG9uIGl0LiBCdXQsIGl0J3MgYWx3YXlzIGdvb2QgdG8gZG91YmxlLWNoZWNrLiBKdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgbGV0IG1lIGRvIGEgcXVpY2sgc3dlZXAgYW5kIHNlZSBpZiAqYW55KiBraW5kIG9mIHNvZnR3YXJlIGVtdWxhdGlvbiBleGlzdHMgZm9yIHRoaXMgdGhpbmcuIFlvdSBrbm93IGhvdyBpdCBnb2VzOyBpdCdzIGFsd2F5cyBnb29kIHRvIGJlIHRob3JvdWdoLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MDQ2LCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTA4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDEyOjMyOjI0Ljk1NDIwMzg1M1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjgwMzM3ODYsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm9jdGVvbnR4MlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJ0b29scy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDEyOjMyOjI1LjE4MjI0NjAyOVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5ODE5Mzg3ODksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyB0aGUgTWlzc2luZyBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSd2ZSBoaXQgYSByb2FkYmxvY2suIE15IGluaXRpYWwgc2VhcmNoIGluIHRoZSBgdG9vbHMvYCBkaXJlY3RvcnkgdHVybmVkIHVwIG5vdGhpbmcgcmVsYXRlZCB0byB0aGlzLiBIbW0sIGFscmlnaHQsIEkgbmVlZCB0byBicm9hZGVuIHRoZSBzY29wZSBhIGJpdC4gU2luY2UgdGhpcyBsaWtlbHkgY29uY2VybnMgbmV0d29yayBkZXZpY2UgZHJpdmVycywgc3BlY2lmaWNhbGx5IEV0aGVybmV0LCBJIHNob3VsZCBzdGFydCBwb2tpbmcgYXJvdW5kIGluIHRoZSBgRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L21hcnZlbGwvYCBoaWVyYXJjaHkuIEknbSBnb2luZyB0byBzdGFydCB3aXRoIGEgcGVlayBhdCBgb2N0ZW9udHgyLnJzdGAgLSB0aGF0IHNvdW5kcyBsaWtlIGEgcmVsZXZhbnQgc3RhcnRpbmcgcG9pbnQuIEhvcGVmdWxseSwgdGhlIGRvY3VtZW50YXRpb24gaGFzIHNvbWUgY2x1ZXMgYWJvdXQgd2hhdCBJJ20gbWlzc2luZyEgSSBuZWVkIHRvIGZpbmQgdGhlIGNvbmZpZ3VyYXRpb24gaXRlbSwgYW5kIHdoeSBpdCdzIG5vdCBwcmVzZW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NDEzLCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMTI6MzI6MjguMTY0MTg2ODg4WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMTY3MjY2NjQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwib2N0ZW9udHgyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIkRvY3VtZW50YXRpb24vXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIkRvY3VtZW50YXRpb24vLnJlbmFtZXMudHh0PTgxOD1uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2ludGVsL2l4Z2JldmYgbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9pbnRlbC9peGdiZXZmXFxuRG9jdW1lbnRhdGlvbi8ucmVuYW1lcy50eHQ6ODE5Om5ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvbWFydmVsbC9vY3Rlb250eDIgbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4MlxcbkRvY3VtZW50YXRpb24vLnJlbmFtZXMudHh0LTgyMC1uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL21pY3Jvc29mdC9uZXR2c2MgbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9taWNyb3NvZnQvbmV0dnNjXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2NyeXB0by9kZXZpY2VfZHJpdmVycy9pbmRleC5yc3Q9Mz1IYXJkd2FyZSBEZXZpY2UgRHJpdmVyIFNwZWNpZmljIERvY3VtZW50YXRpb25cXG4tLVxcbkRvY3VtZW50YXRpb24vY3J5cHRvL2RldmljZV9kcml2ZXJzL2luZGV4LnJzdC04LVxcbkRvY3VtZW50YXRpb24vY3J5cHRvL2RldmljZV9kcml2ZXJzL2luZGV4LnJzdDo5OiAgIG9jdGVvbnR4Mlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9jcnlwdG8vZGV2aWNlX2RyaXZlcnMvb2N0ZW9udHgyLnJzdC0zLT09PT09PT09PT09PT09PT09PT09PT09PT1cXG5Eb2N1bWVudGF0aW9uL2NyeXB0by9kZXZpY2VfZHJpdmVycy9vY3Rlb250eDIucnN0OjQ6b2N0ZW9udHgyIGRldmxpbmsgc3VwcG9ydFxcbkRvY3VtZW50YXRpb24vY3J5cHRvL2RldmljZV9kcml2ZXJzL29jdGVvbnR4Mi5yc3QtNS09PT09PT09PT09PT09PT09PT09PT09PT09XFxuRG9jdW1lbnRhdGlvbi9jcnlwdG8vZGV2aWNlX2RyaXZlcnMvb2N0ZW9udHgyLnJzdC02LVxcbkRvY3VtZW50YXRpb24vY3J5cHRvL2RldmljZV9kcml2ZXJzL29jdGVvbnR4Mi5yc3Q6NzpUaGlzIGRvY3VtZW50IGRlc2NyaWJlcyB0aGUgZGV2bGluayBmZWF0dXJlcyBpbXBsZW1lbnRlZCBieSB0aGUgYGBvY3Rlb250eDIgQ1BUYGBcXG5Eb2N1bWVudGF0aW9uL2NyeXB0by9kZXZpY2VfZHJpdmVycy9vY3Rlb250eDIucnN0LTgtZGV2aWNlIGRyaXZlcnMuXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2NyeXB0by9kZXZpY2VfZHJpdmVycy9vY3Rlb250eDIucnN0PTEwPVBhcmFtZXRlcnNcXG4tLVxcbkRvY3VtZW50YXRpb24vY3J5cHRvL2RldmljZV9kcml2ZXJzL29jdGVvbnR4Mi5yc3QtMTItXFxuRG9jdW1lbnRhdGlvbi9jcnlwdG8vZGV2aWNlX2RyaXZlcnMvb2N0ZW9udHgyLnJzdDoxMzpUaGUgYGBvY3Rlb250eDJgYCBkcml2ZXIgaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIGRyaXZlci1zcGVjaWZpYyBwYXJhbWV0ZXJzLlxcbkRvY3VtZW50YXRpb24vY3J5cHRvL2RldmljZV9kcml2ZXJzL29jdGVvbnR4Mi5yc3QtMTQtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvaW5kZXgucnN0PTg9Q29udGVudHM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvaW5kZXgucnN0LTQyLSAgIGludGVsL2ljZVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9pbmRleC5yc3Q6NDM6ICAgbWFydmVsbC9vY3Rlb250eDJcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvaW5kZXgucnN0LTQ0LSAgIG1hcnZlbGwvb2N0ZW9uX2VwXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIucnN0PTI5OD1IYXJkd2FyZSBhbGdvcml0aG1zIHVzZWQgaW4gc2NoZWR1bGluZ1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyLnJzdC0zMDAtXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyLnJzdDozMDE6b2N0ZW9udHgyIHNpbGljb24gYW5kIENOMTBLIHRyYW5zbWl0IGludGVyZmFjZSBjb25zaXN0cyBvZiBmaXZlIHRyYW5zbWl0IGxldmVsc1xcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi5yc3QtMzAyLXN0YXJ0aW5nIGZyb20gU01RL01EUSwgVEw0IHRvIFRMMS4gRWFjaCBwYWNrZXQgd2lsbCB0cmF2ZXJzZSBNRFEsIFRMNCB0byBUTDFcXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL2luZGV4LnJzdD03Nz1wYXJhbWV0ZXJzLCBpbmZvIHZlcnNpb25zLCBhbmQgb3RoZXIgZmVhdHVyZXMgaXQgc3VwcG9ydHMuXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9pbmRleC5yc3QtOTgtICAgbmZwXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmxpbmsvaW5kZXgucnN0Ojk5OiAgIG9jdGVvbnR4MlxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL2luZGV4LnJzdC0xMDAtICAgcHJlc3RlcmFcXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL29jdGVvbnR4Mi5yc3QtMy09PT09PT09PT09PT09PT09PT09PT09PT09XFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2Rldmxpbmsvb2N0ZW9udHgyLnJzdDo0Om9jdGVvbnR4MiBkZXZsaW5rIHN1cHBvcnRcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9vY3Rlb250eDIucnN0LTUtPT09PT09PT09PT09PT09PT09PT09PT09PVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL29jdGVvbnR4Mi5yc3QtNi1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9vY3Rlb250eDIucnN0Ojc6VGhpcyBkb2N1bWVudCBkZXNjcmliZXMgdGhlIGRldmxpbmsgZmVhdHVyZXMgaW1wbGVtZW50ZWQgYnkgdGhlIGBgb2N0ZW9udHgyIEFGLCBQRiBhbmQgVkZgYFxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL29jdGVvbnR4Mi5yc3QtOC1kZXZpY2UgZHJpdmVycy5cXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL29jdGVvbnR4Mi5yc3Q9MTA9UGFyYW1ldGVyc1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2Rldmxpbmsvb2N0ZW9udHgyLnJzdC0xMi1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9vY3Rlb250eDIucnN0OjEzOlRoZSBgYG9jdGVvbnR4MiBQRiBhbmQgVkZgYCBkcml2ZXJzIGltcGxlbWVudCB0aGUgZm9sbG93aW5nIGRyaXZlci1zcGVjaWZpYyBwYXJhbWV0ZXJzLlxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL29jdGVvbnR4Mi5yc3QtMTQtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9vY3Rlb250eDIucnN0LTI4LVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL29jdGVvbnR4Mi5yc3Q6Mjk6VGhlIGBgb2N0ZW9udHgyIEFGYGAgZHJpdmVyIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBkcml2ZXItc3BlY2lmaWMgcGFyYW1ldGVycy5cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9vY3Rlb250eDIucnN0LTMwLVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2Rldmxpbmsvb2N0ZW9udHgyLnJzdC02NC1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9vY3Rlb250eDIucnN0OjY1OlRoZSBgYG9jdGVvbnR4MiBQRmBgIGRyaXZlciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgZHJpdmVyLXNwZWNpZmljIHBhcmFtZXRlcnMuXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2Rldmxpbmsvb2N0ZW9udHgyLnJzdC02Ni1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMTI6MzI6MjguNDgwOTE4NzgyWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyMzAxNDA5NDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBkcml2ZXIgYW5kIHRoZSBkZXNjcmlwdGlvbiBpbW1lZGlhdGVseSBmbGFncyBpdCBhcyBoYXJkd2FyZS1zcGVjaWZpYy4gSSBzZWUgbWVudGlvbnMgb2YgXCJvY3Rlb250eDIgc2lsaWNvblwiIGFuZCBcIkNOMTBLIHRyYW5zbWl0IGludGVyZmFjZSxcIiB3aGljaCBzY3JlYW1zIGhhcmR3YXJlIGNvbXBvbmVudC4gVGhlIGRldGFpbCBhYm91dCBcImZpdmUgdHJhbnNtaXQgbGV2ZWxzXCIgZnVydGhlciBjZW1lbnRzIHRoaXMgYXMgYSBsb3ctbGV2ZWwgaW50ZXJhY3Rpb24gd2l0aCBzcGVjaWZpYyBzaWxpY29uLiBUaGlzIGlzbid0IGp1c3QgYSBnZW5lcmljIG5ldHdvcmsgZHJpdmVyOyBpdCdzIGludHJpY2F0ZWx5IHRpZWQgdG8gYSBwYXJ0aWN1bGFyIGhhcmR3YXJlIGltcGxlbWVudGF0aW9uLlxuXG5HaXZlbiBteSB1bmRlcnN0YW5kaW5nIG9mIHZpcnR1YWxpemF0aW9uLCBJJ20gY29uZmlkZW50IGluIGNvbmNsdWRpbmcgdGhhdCB0aGlzIHBhcnRpY3VsYXIgZHJpdmVyIGlzIGdvaW5nIHRvIGJlIHVucmVhY2hhYmxlLCBvciBhdCB0aGUgdmVyeSBsZWFzdCwgYmVoYXZlIGluIGFuIHVucHJlZGljdGFibGUgbWFubmVyLCB3aXRoaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gVGhlcmVmb3JlLCBJJ20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgcmVhc29uaW5nIGlzIHN0cmFpZ2h0Zm9yd2FyZDogdGhpcyBpcyBhIGhhcmR3YXJlLWRlcGVuZGVudCBkcml2ZXIsIGFuZCBmdXp6aW5nIGl0IHdvdWxkIGJlIGluZWZmZWN0aXZlIGluIGEgdmlydHVhbGl6ZWQgc2V0dGluZywgYW5kIHBvdGVudGlhbGx5IGxlYWQgdG8gbWlzbGVhZGluZyByZXN1bHRzIG9yIGlzc3Vlcy4gSXQgd291bGQgbm90IGJlIGVmZmljaWVudCB1c2Ugb2YgbXkgdGltZSBvciByZXNvdXJjZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU4MjQsIk91dHB1dFRva2VucyI6OTQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QxMjozMjozMi43MTEwNjE2MTZaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzI5MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgZWdyZXNzIHJhdGUgY29uZmlndXJhdGlvbiBsb2dpYyBpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgTklDIGRyaXZlci4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkZXZpY2UgZHJpdmVyIHRoYXQgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgR0NFIG9yIFFFTVUpIHVzZWQgZm9yIGZ1enppbmcsIGFzIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBhdmFpbGFibGUgZm9yIHRoaXMgaGFyZHdhcmUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgZWdyZXNzIHJhdGUgY29uZmlndXJhdGlvbiBsb2dpYyBpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgTklDIGRyaXZlci4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkZXZpY2UgZHJpdmVyIHRoYXQgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgR0NFIG9yIFFFTVUpIHVzZWQgZm9yIGZ1enppbmcsIGFzIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBhdmFpbGFibGUgZm9yIHRoaXMgaGFyZHdhcmUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflowpj2ts[1] Phase: Running StartedAt: 2026-07-17 12:32:44 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpj2ts[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-17 12:32:44 +0000 UTC FinishedAt: 2026-07-17 12:32:50 +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,}