Name: series-workflowdf7gp Phase: Failed StartedAt: 2026-07-11 03:39:30 +0000 UTC FinishedAt: 2026-07-11 03:54:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdf7gp[0] Phase: Succeeded StartedAt: 2026-07-11 03:39:30 +0000 UTC FinishedAt: 2026-07-11 03:54:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdf7gp[0].run-triage Phase: Succeeded StartedAt: 2026-07-11 03:39:30 +0000 UTC FinishedAt: 2026-07-11 03:54:24 +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+CgkJCTx0ZD4yMDI2LzA3LzExIDAzOjUzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgd3hfZmVhdHVyZXNfY2hlY2tgIGZ1bmN0aW9uIGluIHRoZSBXYW5neHVuIEV0aGVybmV0IGRyaXZlciAoYGRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vYCkuIFRoaXMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kgZHJpdmVyLCBhbmQgc2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciB0aGlzIGhhcmR3YXJlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMDM6NTM8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAxMDA2YmRlMTIyY2Q5YTIwMTZlYTM3NWIyNWFlY2JlM2UzMzBjNWMwXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBKdWwgMTEgMDM6NTM6NDkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmNcbmluZGV4IDgxNGQ4OGQyYWVlNDg3Li42NWRhYjZiZDhhMzk0NSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmNcbkBAIC0zMjIzLDEyICYjNDM7MzIyMywzNyBAQCBuZXRkZXZfZmVhdHVyZXNfdCB3eF9maXhfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbiBFWFBPUlRfU1lNQk9MKHd4X2ZpeF9mZWF0dXJlcyk7XG4gXG4gI2RlZmluZSBXWF9NQVhfVFVOTkVMX0hEUl9MRU5cdDgwXG4mIzQzOyNkZWZpbmUgV1hfVkxBTl9NQVhfREVQVEhcdDhcbiBuZXRkZXZfZmVhdHVyZXNfdCB3eF9mZWF0dXJlc19jaGVjayhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHRcdFx0ICAgIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4gXHRcdFx0XHQgICAgbmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpXG4ge1xuIFx0c3RydWN0IHd4ICp3eCA9IG5ldGRldl9wcml2KG5ldGRldik7XG4mIzQzO1x0dTE2IHBhcnNlX2RlcHRoID0gV1hfVkxBTl9NQVhfREVQVEg7XG4mIzQzO1x0X19iZTE2IHR5cGUgPSBza2ItXHUwMDNlcHJvdG9jb2w7XG4mIzQzO1x0dTE2IHZsYW5fZGVwdGggPSBFVEhfSExFTjtcbiYjNDM7XHR1MzIgdmxhbl9udW0gPSAwO1xuIFxuJiM0MztcdGlmICghc2tiX3ZsYW5fdGFnX3ByZXNlbnQoc2tiKSlcbiYjNDM7XHRcdGdvdG8gdHVubmVsX2NoZWNrO1xuJiM0MztcbiYjNDM7XHR2bGFuX251bSYjNDM7JiM0Mzs7XG4mIzQzO1x0d2hpbGUgKGV0aF90eXBlX3ZsYW4odHlwZSkgXHUwMDI2XHUwMDI2IC0tcGFyc2VfZGVwdGgpIHtcbiYjNDM7XHRcdHN0cnVjdCB2bGFuX2hkciB2aGRyLCAqdmg7XG4mIzQzO1xuJiM0MztcdFx0dmggPSBza2JfaGVhZGVyX3BvaW50ZXIoc2tiLCB2bGFuX2RlcHRoLCBzaXplb2YodmhkciksIFx1MDAyNnZoZHIpO1xuJiM0MztcdFx0aWYgKHVubGlrZWx5KCF2aCkpXG4mIzQzO1x0XHRcdGJyZWFrO1xuJiM0MztcbiYjNDM7XHRcdHR5cGUgPSB2aC1cdTAwM2VoX3ZsYW5fZW5jYXBzdWxhdGVkX3Byb3RvO1xuJiM0MztcdFx0dmxhbl9kZXB0aCAmIzQzOz0gVkxBTl9ITEVOO1xuJiM0MztcdFx0dmxhbl9udW0mIzQzOyYjNDM7O1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0aWYgKHZsYW5fbnVtIFx1MDAzZSAyKVxuJiM0MztcdFx0ZmVhdHVyZXMgXHUwMDI2PSB+KE5FVElGX0ZfSFdfVkxBTl9DVEFHX1RYIHxcbiYjNDM7XHRcdFx0ICAgICAgTkVUSUZfRl9IV19WTEFOX1NUQUdfVFgpO1xuJiM0Mzt0dW5uZWxfY2hlY2s6XG4gXHRpZiAoIXNrYi1cdTAwM2VlbmNhcHN1bGF0aW9uKVxuIFx0XHRyZXR1cm4gZmVhdHVyZXM7XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMDM6NTM8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGB3eF9mZWF0dXJlc19jaGVja2AgZnVuY3Rpb24gaW4gdGhlIFdhbmd4dW4gRXRoZXJuZXQgZHJpdmVyIChgZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9gKS4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIsIGFuZCBzaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMTAwNmJkZTEyMmNkOWEyMDE2ZWEzNzViMjVhZWNiZTNlMzMwYzVjMApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgSnVsIDExIDAzOjUzOjQ5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmMKaW5kZXggODE0ZDg4ZDJhZWU0ODcuLjY1ZGFiNmJkOGEzOTQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmMKQEAgLTMyMjMsMTIgJiM0MzszMjIzLDM3IEBAIG5ldGRldl9mZWF0dXJlc190IHd4X2ZpeF9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LAogRVhQT1JUX1NZTUJPTCh3eF9maXhfZmVhdHVyZXMpOwogCiAjZGVmaW5lIFdYX01BWF9UVU5ORUxfSERSX0xFTgk4MAomIzQzOyNkZWZpbmUgV1hfVkxBTl9NQVhfREVQVEgJOAogbmV0ZGV2X2ZlYXR1cmVzX3Qgd3hfZmVhdHVyZXNfY2hlY2soc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQkgICAgc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwKIAkJCQkgICAgbmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpCiB7CiAJc3RydWN0IHd4ICp3eCA9IG5ldGRldl9wcml2KG5ldGRldik7CiYjNDM7CXUxNiBwYXJzZV9kZXB0aCA9IFdYX1ZMQU5fTUFYX0RFUFRIOwomIzQzOwlfX2JlMTYgdHlwZSA9IHNrYi0mZ3Q7cHJvdG9jb2w7CiYjNDM7CXUxNiB2bGFuX2RlcHRoID0gRVRIX0hMRU47CiYjNDM7CXUzMiB2bGFuX251bSA9IDA7CiAKJiM0MzsJaWYgKCFza2Jfdmxhbl90YWdfcHJlc2VudChza2IpKQomIzQzOwkJZ290byB0dW5uZWxfY2hlY2s7CiYjNDM7CiYjNDM7CXZsYW5fbnVtJiM0MzsmIzQzOzsKJiM0MzsJd2hpbGUgKGV0aF90eXBlX3ZsYW4odHlwZSkgJmFtcDsmYW1wOyAtLXBhcnNlX2RlcHRoKSB7CiYjNDM7CQlzdHJ1Y3Qgdmxhbl9oZHIgdmhkciwgKnZoOwomIzQzOwomIzQzOwkJdmggPSBza2JfaGVhZGVyX3BvaW50ZXIoc2tiLCB2bGFuX2RlcHRoLCBzaXplb2YodmhkciksICZhbXA7dmhkcik7CiYjNDM7CQlpZiAodW5saWtlbHkoIXZoKSkKJiM0MzsJCQlicmVhazsKJiM0MzsKJiM0MzsJCXR5cGUgPSB2aC0mZ3Q7aF92bGFuX2VuY2Fwc3VsYXRlZF9wcm90bzsKJiM0MzsJCXZsYW5fZGVwdGggJiM0Mzs9IFZMQU5fSExFTjsKJiM0MzsJCXZsYW5fbnVtJiM0MzsmIzQzOzsKJiM0MzsJfQomIzQzOwomIzQzOwlpZiAodmxhbl9udW0gJmd0OyAyKQomIzQzOwkJZmVhdHVyZXMgJmFtcDs9IH4oTkVUSUZfRl9IV19WTEFOX0NUQUdfVFggfAomIzQzOwkJCSAgICAgIE5FVElGX0ZfSFdfVkxBTl9TVEFHX1RYKTsKJiM0Mzt0dW5uZWxfY2hlY2s6CiAJaWYgKCFza2ItJmd0O2VuY2Fwc3VsYXRpb24pCiAJCXJldHVybiBmZWF0dXJlczsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwMzo1MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjA2CgkJCQkJCQlvdXRwdXQ6IDE5CgkJCQkJCQl0aG91Z2h0czogMTI3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgVkxBTiBEZXB0aCBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGFpbWVkIHNxdWFyZWx5IGF0IGB3eF9mZWF0dXJlc19jaGVja2Agd2l0aGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgKndoeSogdGhpcyBzcGVjaWZpYyBmdW5jdGlvbiBpcyB0aGUgdGFyZ2V0LiBUaGUgY29kZSBhZGRzIGEgbGltaXQgb24gVkxBTiBkZXB0aCwgc3BlY2lmaWNhbGx5IHJlc3RyaWN0aW5nIGl0IHRvIGBXWF9WTEFOX01BWF9ERVBUSGAsIHdoaWNoIGFwcGVhcnMgdG8gYmUgc2V0IGF0IDguIFRoYXQmIzM5O3MgYSByZWFzb25hYmxlIHN0YXJ0aW5nIHBvaW50LCBhcyBkZWVwIFZMQU4gbmVzdGluZyBjYW4gaW50cm9kdWNlIGNvbXBsZXhpdGllcy4KCk15IG5leHQgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzIGFyb3VuZCB0aGUgaW1wbGljYXRpb25zIG9mIGV4Y2VlZGluZyB0aGF0IGRlcHRoLiBJdCBsb29rcyBsaWtlIHRoZSBjb2RlLCBpZiB0aGUgVkxBTiB0YWcgY291bnQgZ29lcyBhYm92ZSAyLCBkZWNpZGVzIHRvIGNsZWFyIGBORVRJRl9GX0hXX1ZMQU5fQ1RBR19UWGAgYW5kIGBORVRJRl9GX0hXX1ZMQU5fU1RBR19UWGAgZnJvbSB0aGUgYGZlYXR1cmVzYCB2YXJpYWJsZS4gVGhhdCYjMzk7cyBhIHNpZ25pZmljYW50IGNoYW5nZS4gSXQgbWVhbnMgdGhlIGhhcmR3YXJlIFZMQU4gdGFnZ2luZyBjYXBhYmlsaXRpZXMgYXJlIGJlaW5nIGRpc2FibGVkLCBhbmQgdGhlIGRyaXZlciBpcyBsaWtlbHkgYmVpbmcgZm9yY2VkIHRvIGhhbmRsZSB0aGUgVkxBTiB0YWdnaW5nIGluIHNvZnR3YXJlLiBUaGlzIGlzIHByb2JhYmx5IGR1ZSB0byBhIGxpbWl0YXRpb24gaW4gdGhlIGhhcmR3YXJlLCBvciBwb3RlbnRpYWwgcGVyZm9ybWFuY2UgaXNzdWVzIHdpdGggZGVlcGx5IG5lc3RlZCBWTEFOcy4gVGhpcyBpcyBzb21ldGhpbmcgSSYjMzk7bGwgbmVlZCB0byBpbnZlc3RpZ2F0ZSBmdXJ0aGVyLgoKTm93LCBteSBuZXh0IHN0ZXAgaXMgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4gSSYjMzk7bGwgbmVlZCB0byBkZWx2ZSBpbnRvIHRoZSBgd3hfZmVhdHVyZXNfY2hlY2tgIGZ1bmN0aW9uIGl0c2VsZi4gV2hhdCBhcmUgaXRzIHB1cnBvc2UgYW5kIGl0cyB1c2FnZSB3aXRoaW4gdGhlIFdhbmd4dW4gZHJpdmVyPyBIb3cgYXJlIHRoZXNlIGZlYXR1cmUgZmxhZ3MgY29uZmlndXJlZCBhbmQgaGFuZGxlZCB0aHJvdWdob3V0IHRoZSBzeXN0ZW0/IEkmIzM5O2xsIG5lZWQgdG8gdHJhY2UgdGhlIHVzYWdlIG9mIHRoZXNlIGZlYXR1cmUgZmxhZ3MsIGVzcGVjaWFsbHkgYXJvdW5kIHRoZSB0cmFuc21pdCBwYXRoLCB0byBmdWxseSB1bmRlcnN0YW5kIHRoZSBpbXBhY3Qgb2YgdGhpcyBjaGFuZ2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMDM6NTM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7d3hfZmVhdHVyZXNfY2hlY2smIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuYz0zMjIzPUVYUE9SVF9TWU1CT0wod3hfZml4X2ZlYXR1cmVzKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jLTMyMjYtI2RlZmluZSBXWF9WTEFOX01BWF9ERVBUSFx0OFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuYzozMjI3Om5ldGRldl9mZWF0dXJlc190IHd4X2ZlYXR1cmVzX2NoZWNrKHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jLTMyMjgtXHRcdFx0XHQgICAgc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jLTMyNzQtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuYzozMjc1OkVYUE9SVF9TWU1CT0wod3hfZmVhdHVyZXNfY2hlY2spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuYy0zMjc2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmg9MzQ9bmV0ZGV2X2ZlYXR1cmVzX3Qgd3hfZml4X2ZlYXR1cmVzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5oLTM1LVx0XHRcdFx0ICBuZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5oOjM2Om5ldGRldl9mZWF0dXJlc190IHd4X2ZlYXR1cmVzX2NoZWNrKHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5oLTM3LVx0XHRcdFx0ICAgIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jPTYwOT1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIG5nYmVfbmV0ZGV2X29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmMtNjE2LVx0Lm5kb19maXhfZmVhdHVyZXMgICAgICAgPSB3eF9maXhfZmVhdHVyZXMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmM6NjE3Olx0Lm5kb19mZWF0dXJlc19jaGVjayAgICAgPSB3eF9mZWF0dXJlc19jaGVjayxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYy02MTgtXHQubmRvX3ZhbGlkYXRlX2FkZHIgICAgICA9IGV0aF92YWxpZGF0ZV9hZGRyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jPTY1Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHR4Z2JlX25ldGRldl9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmMtNjU5LVx0Lm5kb19maXhfZmVhdHVyZXMgICAgICAgPSB3eF9maXhfZmVhdHVyZXMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYzo2NjA6XHQubmRvX2ZlYXR1cmVzX2NoZWNrICAgICA9IHd4X2ZlYXR1cmVzX2NoZWNrLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmMtNjYxLVx0Lm5kb192YWxpZGF0ZV9hZGRyICAgICAgPSBldGhfdmFsaWRhdGVfYWRkcixcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwMzo1MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNDUzCgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMTQ1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgV2FuZ3h1biBEcml2ZXIgUmVhY2hhYmlsaXR5KioKCk9rYXksIHNvIEkgc2VlIHRoaXMgYHd4X2ZlYXR1cmVzX2NoZWNrYCBmdW5jdGlvbiBiZWluZyBjYWxsZWQgYXMgYG5kb19mZWF0dXJlc19jaGVja2AgaW4gYm90aCB0aGUgYG5nYmVfbmV0ZGV2X29wc2AgYW5kIGB0eGdiZV9uZXRkZXZfb3BzYCBzdHJ1Y3R1cmVzLiBUaGF0IG1lYW5zIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggV2FuZ3h1biAxR2JFIGFuZCAxMEdiRSBQQ0kgRXhwcmVzcyBuZXR3b3JrIGRyaXZlcnMsIHJlc3BlY3RpdmVseS4gUmlnaHQsIGFuZCBJIGtub3cgdGhhdCBQQ0kgZHJpdmVycyBhcmUgdHlwaWNhbGx5IGEgcGFpbiB0byBoaXQgaW4gYSB2aXJ0dWFsaXplZCBzZXR1cCB1bmxlc3Mgd2UmIzM5O3ZlIGdvdCBzb21lIHNvcnQgb2YgZW11bGF0ZWQgaGFyZHdhcmUgaW4gcGxhY2UsIG9yIHdlJiMzOTtyZSBnZXR0aW5nIGludG8gUENJIGZ1enppbmcgdGVycml0b3J5LiBXYWl0IGEgbWludXRlLi4uIGRvZXMgc3l6a2FsbGVyIGV2ZW4gKmhhdmUqIFdhbmd4dW4gUENJIGRldmljZSBlbXVsYXRpb24/IFByZXR0eSBzdXJlIGl0IGRvZXNuJiMzOTt0LiBPa2F5LCB0aGF0JiMzOTtzIGEgcHJvYmxlbS4gTGV0JiMzOTtzIGRpZyBkZWVwZXIuIElzIHRoZXJlIGFueSBjb25jZWl2YWJsZSB3YXkgdG8gcmVhY2ggdGhlc2UgZHJpdmVycz8gTGV0JiMzOTtzIHZlcmlmeSBpZiBXYW5neHVuIGlzIGV2ZW4gKmFjdHVhbGx5KiBhIFBDSSBkZXZpY2UuIFRpbWUgdG8gY3JhY2sgb3BlbiBgbmdiZV9tYWluLmNgIGFuZCBgdHhnYmVfbWFpbi5jYCBhbmQgY29uZmlybSB0aGF0IGFzc3VtcHRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMDM6NTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGNpX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYz04Nzk9c3RhdGljIGludCBuZ2JlX3Jlc3VtZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmMtOTA3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jOjkwODpzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgbmdiZV9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmMtOTA5LVx0Lm5hbWUgICAgID0gbmdiZV9kcml2ZXJfbmFtZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmMtOTE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jOjkxOTptb2R1bGVfcGNpX2RyaXZlcihuZ2JlX2RyaXZlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmMtOTIwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZXZmL25nYmV2Zl9tYWluLmM9MjQ5PXN0YXRpYyBERUZJTkVfU0lNUExFX0RFVl9QTV9PUFMobmdiZXZmX3BtX29wcywgd3h2Zl9zdXNwZW5kLCB3eHZmX3Jlc3VtZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmV2Zi9uZ2JldmZfbWFpbi5jLTI1MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZXZmL25nYmV2Zl9tYWluLmM6MjUxOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBuZ2JldmZfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JldmYvbmdiZXZmX21haW4uYy0yNTItXHQubmFtZSAgICAgPSBLQlVJTERfTU9ETkFNRSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmV2Zi9uZ2JldmZfbWFpbi5jLTI2MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZXZmL25nYmV2Zl9tYWluLmM6MjYxOm1vZHVsZV9wY2lfZHJpdmVyKG5nYmV2Zl9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JldmYvbmdiZXZmX21haW4uYy0yNjItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmM9OTM5PXN0YXRpYyB2b2lkIHR4Z2JlX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYy05NjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYzo5NjU6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIHR4Z2JlX2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jLTk2Ni1cdC5uYW1lICAgICA9IHR4Z2JlX2RyaXZlcl9uYW1lLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jLTk3My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jOjk3NDptb2R1bGVfcGNpX2RyaXZlcih0eGdiZV9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmMtOTc1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmV2Zi90eGdiZXZmX21haW4uYz0zMTQ9c3RhdGljIERFRklORV9TSU1QTEVfREVWX1BNX09QUyh0eGdiZXZmX3BtX29wcywgd3h2Zl9zdXNwZW5kLCB3eHZmX3Jlc3VtZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JldmYvdHhnYmV2Zl9tYWluLmMtMzE1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZXZmL3R4Z2JldmZfbWFpbi5jOjMxNjpzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgdHhnYmV2Zl9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JldmYvdHhnYmV2Zl9tYWluLmMtMzE3LVx0Lm5hbWUgICAgID0gS0JVSUxEX01PRE5BTUUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZXZmL3R4Z2JldmZfbWFpbi5jLTMyNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmV2Zi90eGdiZXZmX21haW4uYzozMjY6bW9kdWxlX3BjaV9kcml2ZXIodHhnYmV2Zl9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZXZmL3R4Z2JldmZfbWFpbi5jLTMyNy1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwMzo1NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0OTIwCgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogMjE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgRmVhc2liaWxpdHkgb2YgdGhlIFdhbmd4dW4gRXRoZXJuZXQgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCwgeWVzLCBpdCYjMzk7cyBkZWZpbml0ZWx5IGRlYWxpbmcgd2l0aCBQQ0kgZHJpdmVycy4gU3BlY2lmaWNhbGx5LCBpdCYjMzk7cyB0aGUgV2FuZ3h1biBFdGhlcm5ldCBkcml2ZXIuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IHNpbmNlIHN5emthbGxlciBkb2VzbiYjMzk7dCBoYXZlIGFueSBlbXVsYXRlZCBoYXJkd2FyZSBmb3IgdGhlc2UgV2FuZ3h1biBQQ0kgZGV2aWNlcywgdGhlIGNvZGUgaW4gdGhpcyBkcml2ZXIgd2lsbCBiZSBjb21wbGV0ZWx5IHVucmVhY2hhYmxlIGluIGFueSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgbGlrZSBHQ0Ugb3IgUUVNVSwgdGhhdCBJJiMzOTttIGxpa2VseSB0byBiZSB1c2luZyBmb3IgZnV6emluZy4gVGhlcmVmb3JlLCBmcm9tIGEgcHVyZWx5IHByYWN0aWNhbCBmdXp6aW5nIHBlcnNwZWN0aXZlLCBpdCYjMzk7cyBwcm9iYWJseSBub3Qgd29ydGggdGhlIGVmZm9ydC4KCkJ1dCB3YWl0LCBJIG5lZWQgdG8gYmUgYWJzb2x1dGVseSBzdXJlLiBJcyB0aGVyZSAqYW55KiBzY2VuYXJpbywgaG93ZXZlciB1bmxpa2VseSwgd2hlcmUgdGhpcyBkcml2ZXIgY291bGQgYmUgdXNlZCBpbiBhIHZpcnR1YWxpemVkIHNldHRpbmc/IE5vLCB0aGF0JiMzOTtzIG5vdCByaWdodC4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciwgaW50ZW5kZWQgb25seSBmb3IgV2FuZ3h1biBuZXR3b3JrIGNhcmRzLiBVbmxlc3Mgd2UgY2FuIHNvbWVob3cgY29uZmlndXJlIGEgdmlydHVhbCBkZXZpY2UgdG8gKmVtdWxhdGUqIHRoYXQgc3BlY2lmaWMgaGFyZHdhcmUsIHRoZSBkcml2ZXIgc2ltcGx5IHdvbiYjMzk7dCBiZSBwcm9iZWQuIFNvLCBjb25zaWRlcmluZyB0aGF0IGZhY3QsIHRoZSBgV29ydGhGdXp6aW5nYCBmbGFnIHNob3VsZCBiZSBzZXQgdG8gYGZhbHNlYC4KCk15IHJlYXNvbmluZyBpcyBzdHJhaWdodGZvcndhcmQ6IFRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYHd4X2ZlYXR1cmVzX2NoZWNrYCBmdW5jdGlvbiB3aXRoaW4gdGhlIFdhbmd4dW4gRXRoZXJuZXQgZHJpdmVyLCB3aGljaCBpcyBsb2NhdGVkIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2AuIFNpbmNlIHRoZXJlJiMzOTtzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBvZiB0aGlzIHNwZWNpZmljIGhhcmR3YXJlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgdGhlIGNvZGUgcGF0aHMgdG91Y2hlZCBieSB0aGUgcGF0Y2ggYXJlIHNpbXBseSBub3QgcmVhY2hhYmxlIGR1cmluZyBhIGZ1enppbmcgY2FtcGFpZ24uIFN0aWxsLCBJIHNob3VsZCBkb3VibGUtY2hlY2sgdG8gbWFrZSBzdXJlIHRoZXJlIGFyZSBubyBvdGhlciB1c2VzIG9mIGB3eF9mZWF0dXJlc19jaGVja2AgdGhhdCBJJiMzOTttIG5vdCBhd2FyZSBvZi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwMzo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt3eF9mZWF0dXJlc19jaGVjayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jPTMyMjM9RVhQT1JUX1NZTUJPTCh3eF9maXhfZmVhdHVyZXMpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmMtMzIyNi0jZGVmaW5lIFdYX1ZMQU5fTUFYX0RFUFRIXHQ4XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jOjMyMjc6bmV0ZGV2X2ZlYXR1cmVzX3Qgd3hfZmVhdHVyZXNfY2hlY2soc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmMtMzIyOC1cdFx0XHRcdCAgICBzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmMtMzI3NC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jOjMyNzU6RVhQT1JUX1NZTUJPTCh3eF9mZWF0dXJlc19jaGVjayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jLTMyNzYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuaD0zND1uZXRkZXZfZmVhdHVyZXNfdCB3eF9maXhfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmgtMzUtXHRcdFx0XHQgIG5ldGRldl9mZWF0dXJlc190IGZlYXR1cmVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmg6MzY6bmV0ZGV2X2ZlYXR1cmVzX3Qgd3hfZmVhdHVyZXNfY2hlY2soc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmgtMzctXHRcdFx0XHQgICAgc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmM9NjA5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgbmdiZV9uZXRkZXZfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYy02MTYtXHQubmRvX2ZpeF9mZWF0dXJlcyAgICAgICA9IHd4X2ZpeF9mZWF0dXJlcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYzo2MTc6XHQubmRvX2ZlYXR1cmVzX2NoZWNrICAgICA9IHd4X2ZlYXR1cmVzX2NoZWNrLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jLTYxOC1cdC5uZG9fdmFsaWRhdGVfYWRkciAgICAgID0gZXRoX3ZhbGlkYXRlX2FkZHIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmM9NjUyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgdHhnYmVfbmV0ZGV2X29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYy02NTktXHQubmRvX2ZpeF9mZWF0dXJlcyAgICAgICA9IHd4X2ZpeF9mZWF0dXJlcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jOjY2MDpcdC5uZG9fZmVhdHVyZXNfY2hlY2sgICAgID0gd3hfZmVhdHVyZXNfY2hlY2ssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYy02NjEtXHQubmRvX3ZhbGlkYXRlX2FkZHIgICAgICA9IGV0aF92YWxpZGF0ZV9hZGRyLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDAzOjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYyNzIKCQkJCQkJCW91dHB1dDogMTA3CgkJCQkJCQl0aG91Z2h0czogMzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBhc3Nlc3NtZW50OgoKKipXb3J0aEZ1enppbmcgRGVjaXNpb24qKgoKQWxyaWdodCwgc28gdGhlIGFuYWx5c2lzIGJvaWxzIGRvd24gdG8gdGhpczogVGhpcyBjb2RlIHNuaXBwZXQsIHdoYXRldmVyIGl0IGlzLCBvbmx5IHNlZW1zIHRvIGJlIHJlbGV2YW50IHdpdGhpbiB0aGUgYG5nYmVgIGFuZCBgdHhnYmVgIGRyaXZlcnMuIEFuZCB3ZSYjMzk7cmUgdGFsa2luZyBhYm91dCBXYW5neHVuIFBDSSBkcml2ZXJzIHNwZWNpZmljYWxseS4gR2l2ZW4gdGhhdCBjb250ZXh0LCBJJiMzOTttIGdvaW5nIHRvIHNldCBgV29ydGhGdXp6aW5nPWZhbHNlYC4gSXQgZG9lc24mIzM5O3QgYXBwZWFyIHRvIGJlIGEgY3JpdGljYWwgYXJlYSByaXBlIGZvciB2dWxuZXJhYmlsaXR5IGRpc2NvdmVyeSBhY3Jvc3MgYSBicm9hZGVyIHJhbmdlIG9mIGRyaXZlcnMgb3IgZnVuY3Rpb25hbGl0aWVzLCBtYWtpbmcgZnV6emluZyBhIGxvd2VyIHByaW9yaXR5LiBNeSByZXNvdXJjZXMgYXJlIGJldHRlciBzcGVudCBlbHNld2hlcmUgZm9yIG5vdy4gVGhpcyBkZWNpc2lvbiBpcyBiYXNlZCBvbiBhIG5hcnJvdyBzY29wZSBvZiB0aGlzIGNvZGUmIzM5O3MgdXNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwMzo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgd3hfZmVhdHVyZXNfY2hlY2tgIGZ1bmN0aW9uIGluIHRoZSBXYW5neHVuIEV0aGVybmV0IGRyaXZlciAoYGRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vYCkuIFRoaXMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kgZHJpdmVyLCBhbmQgc2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciB0aGlzIGhhcmR3YXJlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgd3hfZmVhdHVyZXNfY2hlY2tgIGZ1bmN0aW9uIGluIHRoZSBXYW5neHVuIEV0aGVybmV0IGRyaXZlciAoYGRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vYCkuIFRoaXMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kgZHJpdmVyLCBhbmQgc2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciB0aGlzIGhhcmR3YXJlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0xMVQwMzo1Mzo1MC42MzkzNzI1MjFaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTk0OTgzNDg0OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGB3eF9mZWF0dXJlc19jaGVja2AgZnVuY3Rpb24gaW4gdGhlIFdhbmd4dW4gRXRoZXJuZXQgZHJpdmVyIChgZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9gKS4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIsIGFuZCBzaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMDM6NTM6NTAuNjM5Mzc3NzIxWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NDM4Njc3OTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAxMDA2YmRlMTIyY2Q5YTIwMTZlYTM3NWIyNWFlY2JlM2UzMzBjNWMwXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgSnVsIDExIDAzOjUzOjQ5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jXFxuaW5kZXggODE0ZDg4ZDJhZWU0ODcuLjY1ZGFiNmJkOGEzOTQ1IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jXFxuQEAgLTMyMjMsMTIgKzMyMjMsMzcgQEAgbmV0ZGV2X2ZlYXR1cmVzX3Qgd3hfZml4X2ZlYXR1cmVzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuIEVYUE9SVF9TWU1CT0wod3hfZml4X2ZlYXR1cmVzKTtcXG4gXFxuICNkZWZpbmUgV1hfTUFYX1RVTk5FTF9IRFJfTEVOXFx0ODBcXG4rI2RlZmluZSBXWF9WTEFOX01BWF9ERVBUSFxcdDhcXG4gbmV0ZGV2X2ZlYXR1cmVzX3Qgd3hfZmVhdHVyZXNfY2hlY2soc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4gXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuIFxcdFxcdFxcdFxcdCAgICBuZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcylcXG4ge1xcbiBcXHRzdHJ1Y3Qgd3ggKnd4ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG4rXFx0dTE2IHBhcnNlX2RlcHRoID0gV1hfVkxBTl9NQVhfREVQVEg7XFxuK1xcdF9fYmUxNiB0eXBlID0gc2tiLVxcdTAwM2Vwcm90b2NvbDtcXG4rXFx0dTE2IHZsYW5fZGVwdGggPSBFVEhfSExFTjtcXG4rXFx0dTMyIHZsYW5fbnVtID0gMDtcXG4gXFxuK1xcdGlmICghc2tiX3ZsYW5fdGFnX3ByZXNlbnQoc2tiKSlcXG4rXFx0XFx0Z290byB0dW5uZWxfY2hlY2s7XFxuK1xcbitcXHR2bGFuX251bSsrO1xcbitcXHR3aGlsZSAoZXRoX3R5cGVfdmxhbih0eXBlKSBcXHUwMDI2XFx1MDAyNiAtLXBhcnNlX2RlcHRoKSB7XFxuK1xcdFxcdHN0cnVjdCB2bGFuX2hkciB2aGRyLCAqdmg7XFxuK1xcbitcXHRcXHR2aCA9IHNrYl9oZWFkZXJfcG9pbnRlcihza2IsIHZsYW5fZGVwdGgsIHNpemVvZih2aGRyKSwgXFx1MDAyNnZoZHIpO1xcbitcXHRcXHRpZiAodW5saWtlbHkoIXZoKSlcXG4rXFx0XFx0XFx0YnJlYWs7XFxuK1xcbitcXHRcXHR0eXBlID0gdmgtXFx1MDAzZWhfdmxhbl9lbmNhcHN1bGF0ZWRfcHJvdG87XFxuK1xcdFxcdHZsYW5fZGVwdGggKz0gVkxBTl9ITEVOO1xcbitcXHRcXHR2bGFuX251bSsrO1xcbitcXHR9XFxuK1xcbitcXHRpZiAodmxhbl9udW0gXFx1MDAzZSAyKVxcbitcXHRcXHRmZWF0dXJlcyBcXHUwMDI2PSB+KE5FVElGX0ZfSFdfVkxBTl9DVEFHX1RYIHxcXG4rXFx0XFx0XFx0ICAgICAgTkVUSUZfRl9IV19WTEFOX1NUQUdfVFgpO1xcbit0dW5uZWxfY2hlY2s6XFxuIFxcdGlmICghc2tiLVxcdTAwM2VlbmNhcHN1bGF0aW9uKVxcbiBcXHRcXHRyZXR1cm4gZmVhdHVyZXM7XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQwMzo1Mzo1MS4xODQwMjA3WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyMTQwNTE4MDY2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGB3eF9mZWF0dXJlc19jaGVja2AgZnVuY3Rpb24gaW4gdGhlIFdhbmd4dW4gRXRoZXJuZXQgZHJpdmVyIChgZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9gKS4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIsIGFuZCBzaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAxMDA2YmRlMTIyY2Q5YTIwMTZlYTM3NWIyNWFlY2JlM2UzMzBjNWMwXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBKdWwgMTEgMDM6NTM6NDkgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuY1xuaW5kZXggODE0ZDg4ZDJhZWU0ODcuLjY1ZGFiNmJkOGEzOTQ1IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuY1xuQEAgLTMyMjMsMTIgKzMyMjMsMzcgQEAgbmV0ZGV2X2ZlYXR1cmVzX3Qgd3hfZml4X2ZlYXR1cmVzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4gRVhQT1JUX1NZTUJPTCh3eF9maXhfZmVhdHVyZXMpO1xuIFxuICNkZWZpbmUgV1hfTUFYX1RVTk5FTF9IRFJfTEVOXHQ4MFxuKyNkZWZpbmUgV1hfVkxBTl9NQVhfREVQVEhcdDhcbiBuZXRkZXZfZmVhdHVyZXNfdCB3eF9mZWF0dXJlc19jaGVjayhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHRcdFx0ICAgIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4gXHRcdFx0XHQgICAgbmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpXG4ge1xuIFx0c3RydWN0IHd4ICp3eCA9IG5ldGRldl9wcml2KG5ldGRldik7XG4rXHR1MTYgcGFyc2VfZGVwdGggPSBXWF9WTEFOX01BWF9ERVBUSDtcbitcdF9fYmUxNiB0eXBlID0gc2tiLVx1MDAzZXByb3RvY29sO1xuK1x0dTE2IHZsYW5fZGVwdGggPSBFVEhfSExFTjtcbitcdHUzMiB2bGFuX251bSA9IDA7XG4gXG4rXHRpZiAoIXNrYl92bGFuX3RhZ19wcmVzZW50KHNrYikpXG4rXHRcdGdvdG8gdHVubmVsX2NoZWNrO1xuK1xuK1x0dmxhbl9udW0rKztcbitcdHdoaWxlIChldGhfdHlwZV92bGFuKHR5cGUpIFx1MDAyNlx1MDAyNiAtLXBhcnNlX2RlcHRoKSB7XG4rXHRcdHN0cnVjdCB2bGFuX2hkciB2aGRyLCAqdmg7XG4rXG4rXHRcdHZoID0gc2tiX2hlYWRlcl9wb2ludGVyKHNrYiwgdmxhbl9kZXB0aCwgc2l6ZW9mKHZoZHIpLCBcdTAwMjZ2aGRyKTtcbitcdFx0aWYgKHVubGlrZWx5KCF2aCkpXG4rXHRcdFx0YnJlYWs7XG4rXG4rXHRcdHR5cGUgPSB2aC1cdTAwM2VoX3ZsYW5fZW5jYXBzdWxhdGVkX3Byb3RvO1xuK1x0XHR2bGFuX2RlcHRoICs9IFZMQU5fSExFTjtcbitcdFx0dmxhbl9udW0rKztcbitcdH1cbitcbitcdGlmICh2bGFuX251bSBcdTAwM2UgMilcbitcdFx0ZmVhdHVyZXMgXHUwMDI2PSB+KE5FVElGX0ZfSFdfVkxBTl9DVEFHX1RYIHxcbitcdFx0XHQgICAgICBORVRJRl9GX0hXX1ZMQU5fU1RBR19UWCk7XG4rdHVubmVsX2NoZWNrOlxuIFx0aWYgKCFza2ItXHUwMDNlZW5jYXBzdWxhdGlvbilcbiBcdFx0cmV0dXJuIGZlYXR1cmVzO1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMDM6NTM6NTEuMTg0MDIyMzlaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTg0MjMwMTM4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgVkxBTiBEZXB0aCBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgYWltZWQgc3F1YXJlbHkgYXQgYHd4X2ZlYXR1cmVzX2NoZWNrYCB3aXRoaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZmlndXJlIG91dCAqd2h5KiB0aGlzIHNwZWNpZmljIGZ1bmN0aW9uIGlzIHRoZSB0YXJnZXQuIFRoZSBjb2RlIGFkZHMgYSBsaW1pdCBvbiBWTEFOIGRlcHRoLCBzcGVjaWZpY2FsbHkgcmVzdHJpY3RpbmcgaXQgdG8gYFdYX1ZMQU5fTUFYX0RFUFRIYCwgd2hpY2ggYXBwZWFycyB0byBiZSBzZXQgYXQgOC4gVGhhdCdzIGEgcmVhc29uYWJsZSBzdGFydGluZyBwb2ludCwgYXMgZGVlcCBWTEFOIG5lc3RpbmcgY2FuIGludHJvZHVjZSBjb21wbGV4aXRpZXMuXG5cbk15IG5leHQgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzIGFyb3VuZCB0aGUgaW1wbGljYXRpb25zIG9mIGV4Y2VlZGluZyB0aGF0IGRlcHRoLiBJdCBsb29rcyBsaWtlIHRoZSBjb2RlLCBpZiB0aGUgVkxBTiB0YWcgY291bnQgZ29lcyBhYm92ZSAyLCBkZWNpZGVzIHRvIGNsZWFyIGBORVRJRl9GX0hXX1ZMQU5fQ1RBR19UWGAgYW5kIGBORVRJRl9GX0hXX1ZMQU5fU1RBR19UWGAgZnJvbSB0aGUgYGZlYXR1cmVzYCB2YXJpYWJsZS4gVGhhdCdzIGEgc2lnbmlmaWNhbnQgY2hhbmdlLiBJdCBtZWFucyB0aGUgaGFyZHdhcmUgVkxBTiB0YWdnaW5nIGNhcGFiaWxpdGllcyBhcmUgYmVpbmcgZGlzYWJsZWQsIGFuZCB0aGUgZHJpdmVyIGlzIGxpa2VseSBiZWluZyBmb3JjZWQgdG8gaGFuZGxlIHRoZSBWTEFOIHRhZ2dpbmcgaW4gc29mdHdhcmUuIFRoaXMgaXMgcHJvYmFibHkgZHVlIHRvIGEgbGltaXRhdGlvbiBpbiB0aGUgaGFyZHdhcmUsIG9yIHBvdGVudGlhbCBwZXJmb3JtYW5jZSBpc3N1ZXMgd2l0aCBkZWVwbHkgbmVzdGVkIFZMQU5zLiBUaGlzIGlzIHNvbWV0aGluZyBJJ2xsIG5lZWQgdG8gaW52ZXN0aWdhdGUgZnVydGhlci5cblxuTm93LCBteSBuZXh0IHN0ZXAgaXMgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4gSSdsbCBuZWVkIHRvIGRlbHZlIGludG8gdGhlIGB3eF9mZWF0dXJlc19jaGVja2AgZnVuY3Rpb24gaXRzZWxmLiBXaGF0IGFyZSBpdHMgcHVycG9zZSBhbmQgaXRzIHVzYWdlIHdpdGhpbiB0aGUgV2FuZ3h1biBkcml2ZXI/IEhvdyBhcmUgdGhlc2UgZmVhdHVyZSBmbGFncyBjb25maWd1cmVkIGFuZCBoYW5kbGVkIHRocm91Z2hvdXQgdGhlIHN5c3RlbT8gSSdsbCBuZWVkIHRvIHRyYWNlIHRoZSB1c2FnZSBvZiB0aGVzZSBmZWF0dXJlIGZsYWdzLCBlc3BlY2lhbGx5IGFyb3VuZCB0aGUgdHJhbnNtaXQgcGF0aCwgdG8gZnVsbHkgdW5kZXJzdGFuZCB0aGUgaW1wYWN0IG9mIHRoaXMgY2hhbmdlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjA2LCJPdXRwdXRUb2tlbnMiOjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTI3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMDM6NTM6NTUuMzY4MjU0Njg4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI4NTY2NzYyNDQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwid3hfZmVhdHVyZXNfY2hlY2tcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuYz0zMjIzPUVYUE9SVF9TWU1CT0wod3hfZml4X2ZlYXR1cmVzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmMtMzIyNi0jZGVmaW5lIFdYX1ZMQU5fTUFYX0RFUFRIXFx0OFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmM6MzIyNzpuZXRkZXZfZmVhdHVyZXNfdCB3eF9mZWF0dXJlc19jaGVjayhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmMtMzIyOC1cXHRcXHRcXHRcXHQgICAgc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmMtMzI3NC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuYzozMjc1OkVYUE9SVF9TWU1CT0wod3hfZmVhdHVyZXNfY2hlY2spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmMtMzI3Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmg9MzQ9bmV0ZGV2X2ZlYXR1cmVzX3Qgd3hfZml4X2ZlYXR1cmVzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuaC0zNS1cXHRcXHRcXHRcXHQgIG5ldGRldl9mZWF0dXJlc190IGZlYXR1cmVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5oOjM2Om5ldGRldl9mZWF0dXJlc190IHd4X2ZlYXR1cmVzX2NoZWNrKHN0cnVjdCBza19idWZmICpza2IsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuaC0zNy1cXHRcXHRcXHRcXHQgICAgc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYz02MDk9c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBuZ2JlX25ldGRldl9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmMtNjE2LVxcdC5uZG9fZml4X2ZlYXR1cmVzICAgICAgID0gd3hfZml4X2ZlYXR1cmVzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYzo2MTc6XFx0Lm5kb19mZWF0dXJlc19jaGVjayAgICAgPSB3eF9mZWF0dXJlc19jaGVjayxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmMtNjE4LVxcdC5uZG9fdmFsaWRhdGVfYWRkciAgICAgID0gZXRoX3ZhbGlkYXRlX2FkZHIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYz02NTI9c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyB0eGdiZV9uZXRkZXZfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmMtNjU5LVxcdC5uZG9fZml4X2ZlYXR1cmVzICAgICAgID0gd3hfZml4X2ZlYXR1cmVzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jOjY2MDpcXHQubmRvX2ZlYXR1cmVzX2NoZWNrICAgICA9IHd4X2ZlYXR1cmVzX2NoZWNrLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jLTY2MS1cXHQubmRvX3ZhbGlkYXRlX2FkZHIgICAgICA9IGV0aF92YWxpZGF0ZV9hZGRyLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQwMzo1Mzo1OC4yMjQ5Mzc3ODJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDI0Nzk3NDIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgV2FuZ3h1biBEcml2ZXIgUmVhY2hhYmlsaXR5KipcblxuT2theSwgc28gSSBzZWUgdGhpcyBgd3hfZmVhdHVyZXNfY2hlY2tgIGZ1bmN0aW9uIGJlaW5nIGNhbGxlZCBhcyBgbmRvX2ZlYXR1cmVzX2NoZWNrYCBpbiBib3RoIHRoZSBgbmdiZV9uZXRkZXZfb3BzYCBhbmQgYHR4Z2JlX25ldGRldl9vcHNgIHN0cnVjdHVyZXMuIFRoYXQgbWVhbnMgd2UncmUgZGVhbGluZyB3aXRoIFdhbmd4dW4gMUdiRSBhbmQgMTBHYkUgUENJIEV4cHJlc3MgbmV0d29yayBkcml2ZXJzLCByZXNwZWN0aXZlbHkuIFJpZ2h0LCBhbmQgSSBrbm93IHRoYXQgUENJIGRyaXZlcnMgYXJlIHR5cGljYWxseSBhIHBhaW4gdG8gaGl0IGluIGEgdmlydHVhbGl6ZWQgc2V0dXAgdW5sZXNzIHdlJ3ZlIGdvdCBzb21lIHNvcnQgb2YgZW11bGF0ZWQgaGFyZHdhcmUgaW4gcGxhY2UsIG9yIHdlJ3JlIGdldHRpbmcgaW50byBQQ0kgZnV6emluZyB0ZXJyaXRvcnkuIFdhaXQgYSBtaW51dGUuLi4gZG9lcyBzeXprYWxsZXIgZXZlbiAqaGF2ZSogV2FuZ3h1biBQQ0kgZGV2aWNlIGVtdWxhdGlvbj8gUHJldHR5IHN1cmUgaXQgZG9lc24ndC4gT2theSwgdGhhdCdzIGEgcHJvYmxlbS4gTGV0J3MgZGlnIGRlZXBlci4gSXMgdGhlcmUgYW55IGNvbmNlaXZhYmxlIHdheSB0byByZWFjaCB0aGVzZSBkcml2ZXJzPyBMZXQncyB2ZXJpZnkgaWYgV2FuZ3h1biBpcyBldmVuICphY3R1YWxseSogYSBQQ0kgZGV2aWNlLiBUaW1lIHRvIGNyYWNrIG9wZW4gYG5nYmVfbWFpbi5jYCBhbmQgYHR4Z2JlX21haW4uY2AgYW5kIGNvbmZpcm0gdGhhdCBhc3N1bXB0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNDUzLCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQ1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDAzOjU0OjAyLjI0OTczNzA2M1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MzA3NjExOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwY2lfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYz04Nzk9c3RhdGljIGludCBuZ2JlX3Jlc3VtZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYy05MDctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jOjkwODpzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgbmdiZV9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jLTkwOS1cXHQubmFtZSAgICAgPSBuZ2JlX2RyaXZlcl9uYW1lLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jLTkxOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmM6OTE5Om1vZHVsZV9wY2lfZHJpdmVyKG5nYmVfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmMtOTIwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JldmYvbmdiZXZmX21haW4uYz0yNDk9c3RhdGljIERFRklORV9TSU1QTEVfREVWX1BNX09QUyhuZ2JldmZfcG1fb3BzLCB3eHZmX3N1c3BlbmQsIHd4dmZfcmVzdW1lKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmV2Zi9uZ2JldmZfbWFpbi5jLTI1MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmV2Zi9uZ2JldmZfbWFpbi5jOjI1MTpzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgbmdiZXZmX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmV2Zi9uZ2JldmZfbWFpbi5jLTI1Mi1cXHQubmFtZSAgICAgPSBLQlVJTERfTU9ETkFNRSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZXZmL25nYmV2Zl9tYWluLmMtMjYwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZXZmL25nYmV2Zl9tYWluLmM6MjYxOm1vZHVsZV9wY2lfZHJpdmVyKG5nYmV2Zl9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZXZmL25nYmV2Zl9tYWluLmMtMjYyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmM9OTM5PXN0YXRpYyB2b2lkIHR4Z2JlX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jLTk2NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYzo5NjU6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIHR4Z2JlX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYy05NjYtXFx0Lm5hbWUgICAgID0gdHhnYmVfZHJpdmVyX25hbWUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYy05NzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmM6OTc0Om1vZHVsZV9wY2lfZHJpdmVyKHR4Z2JlX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmMtOTc1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZXZmL3R4Z2JldmZfbWFpbi5jPTMxND1zdGF0aWMgREVGSU5FX1NJTVBMRV9ERVZfUE1fT1BTKHR4Z2JldmZfcG1fb3BzLCB3eHZmX3N1c3BlbmQsIHd4dmZfcmVzdW1lKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JldmYvdHhnYmV2Zl9tYWluLmMtMzE1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmV2Zi90eGdiZXZmX21haW4uYzozMTY6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIHR4Z2JldmZfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmV2Zi90eGdiZXZmX21haW4uYy0zMTctXFx0Lm5hbWUgICAgID0gS0JVSUxEX01PRE5BTUUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JldmYvdHhnYmV2Zl9tYWluLmMtMzI1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmV2Zi90eGdiZXZmX21haW4uYzozMjY6bW9kdWxlX3BjaV9kcml2ZXIodHhnYmV2Zl9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmV2Zi90eGdiZXZmX21haW4uYy0zMjctXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDAzOjU0OjAyLjMxMjgxOTI1MloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUwNjA5MDI1OTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBGZWFzaWJpbGl0eSBvZiB0aGUgV2FuZ3h1biBFdGhlcm5ldCBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCwgeWVzLCBpdCdzIGRlZmluaXRlbHkgZGVhbGluZyB3aXRoIFBDSSBkcml2ZXJzLiBTcGVjaWZpY2FsbHksIGl0J3MgdGhlIFdhbmd4dW4gRXRoZXJuZXQgZHJpdmVyLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBzaW5jZSBzeXprYWxsZXIgZG9lc24ndCBoYXZlIGFueSBlbXVsYXRlZCBoYXJkd2FyZSBmb3IgdGhlc2UgV2FuZ3h1biBQQ0kgZGV2aWNlcywgdGhlIGNvZGUgaW4gdGhpcyBkcml2ZXIgd2lsbCBiZSBjb21wbGV0ZWx5IHVucmVhY2hhYmxlIGluIGFueSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgbGlrZSBHQ0Ugb3IgUUVNVSwgdGhhdCBJJ20gbGlrZWx5IHRvIGJlIHVzaW5nIGZvciBmdXp6aW5nLiBUaGVyZWZvcmUsIGZyb20gYSBwdXJlbHkgcHJhY3RpY2FsIGZ1enppbmcgcGVyc3BlY3RpdmUsIGl0J3MgcHJvYmFibHkgbm90IHdvcnRoIHRoZSBlZmZvcnQuXG5cbkJ1dCB3YWl0LCBJIG5lZWQgdG8gYmUgYWJzb2x1dGVseSBzdXJlLiBJcyB0aGVyZSAqYW55KiBzY2VuYXJpbywgaG93ZXZlciB1bmxpa2VseSwgd2hlcmUgdGhpcyBkcml2ZXIgY291bGQgYmUgdXNlZCBpbiBhIHZpcnR1YWxpemVkIHNldHRpbmc/IE5vLCB0aGF0J3Mgbm90IHJpZ2h0LiBUaGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyLCBpbnRlbmRlZCBvbmx5IGZvciBXYW5neHVuIG5ldHdvcmsgY2FyZHMuIFVubGVzcyB3ZSBjYW4gc29tZWhvdyBjb25maWd1cmUgYSB2aXJ0dWFsIGRldmljZSB0byAqZW11bGF0ZSogdGhhdCBzcGVjaWZpYyBoYXJkd2FyZSwgdGhlIGRyaXZlciBzaW1wbHkgd29uJ3QgYmUgcHJvYmVkLiBTbywgY29uc2lkZXJpbmcgdGhhdCBmYWN0LCB0aGUgYFdvcnRoRnV6emluZ2AgZmxhZyBzaG91bGQgYmUgc2V0IHRvIGBmYWxzZWAuXG5cbk15IHJlYXNvbmluZyBpcyBzdHJhaWdodGZvcndhcmQ6IFRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYHd4X2ZlYXR1cmVzX2NoZWNrYCBmdW5jdGlvbiB3aXRoaW4gdGhlIFdhbmd4dW4gRXRoZXJuZXQgZHJpdmVyLCB3aGljaCBpcyBsb2NhdGVkIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2AuIFNpbmNlIHRoZXJlJ3Mgbm8gc29mdHdhcmUgZW11bGF0aW9uIG9mIHRoaXMgc3BlY2lmaWMgaGFyZHdhcmUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCB0aGUgY29kZSBwYXRocyB0b3VjaGVkIGJ5IHRoZSBwYXRjaCBhcmUgc2ltcGx5IG5vdCByZWFjaGFibGUgZHVyaW5nIGEgZnV6emluZyBjYW1wYWlnbi4gU3RpbGwsIEkgc2hvdWxkIGRvdWJsZS1jaGVjayB0byBtYWtlIHN1cmUgdGhlcmUgYXJlIG5vIG90aGVyIHVzZXMgb2YgYHd4X2ZlYXR1cmVzX2NoZWNrYCB0aGF0IEknbSBub3QgYXdhcmUgb2YuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ5MjAsIk91dHB1dFRva2VucyI6MjUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMDM6NTQ6MDcuMzczNzI0MDgzWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5NDc1NzUxNTIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwid3hfZmVhdHVyZXNfY2hlY2tcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmM9MzIyMz1FWFBPUlRfU1lNQk9MKHd4X2ZpeF9mZWF0dXJlcyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jLTMyMjYtI2RlZmluZSBXWF9WTEFOX01BWF9ERVBUSFxcdDhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jOjMyMjc6bmV0ZGV2X2ZlYXR1cmVzX3Qgd3hfZmVhdHVyZXNfY2hlY2soc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jLTMyMjgtXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jLTMyNzQtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmM6MzI3NTpFWFBPUlRfU1lNQk9MKHd4X2ZlYXR1cmVzX2NoZWNrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jLTMyNzYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5oPTM0PW5ldGRldl9mZWF0dXJlc190IHd4X2ZpeF9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmgtMzUtXFx0XFx0XFx0XFx0ICBuZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuaDozNjpuZXRkZXZfZmVhdHVyZXNfdCB3eF9mZWF0dXJlc19jaGVjayhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmgtMzctXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmM9NjA5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgbmdiZV9uZXRkZXZfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jLTYxNi1cXHQubmRvX2ZpeF9mZWF0dXJlcyAgICAgICA9IHd4X2ZpeF9mZWF0dXJlcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmM6NjE3OlxcdC5uZG9fZmVhdHVyZXNfY2hlY2sgICAgID0gd3hfZmVhdHVyZXNfY2hlY2ssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jLTYxOC1cXHQubmRvX3ZhbGlkYXRlX2FkZHIgICAgICA9IGV0aF92YWxpZGF0ZV9hZGRyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmM9NjUyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgdHhnYmVfbmV0ZGV2X29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jLTY1OS1cXHQubmRvX2ZpeF9mZWF0dXJlcyAgICAgICA9IHd4X2ZpeF9mZWF0dXJlcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYzo2NjA6XFx0Lm5kb19mZWF0dXJlc19jaGVjayAgICAgPSB3eF9mZWF0dXJlc19jaGVjayxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYy02NjEtXFx0Lm5kb192YWxpZGF0ZV9hZGRyICAgICAgPSBldGhfdmFsaWRhdGVfYWRkcixcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMDM6NTQ6MDkuMzIxMzA0NjI0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzI2Nzg3MDY0NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQncyBhc3Nlc3NtZW50OlxuXG4qKldvcnRoRnV6emluZyBEZWNpc2lvbioqXG5cbkFscmlnaHQsIHNvIHRoZSBhbmFseXNpcyBib2lscyBkb3duIHRvIHRoaXM6IFRoaXMgY29kZSBzbmlwcGV0LCB3aGF0ZXZlciBpdCBpcywgb25seSBzZWVtcyB0byBiZSByZWxldmFudCB3aXRoaW4gdGhlIGBuZ2JlYCBhbmQgYHR4Z2JlYCBkcml2ZXJzLiBBbmQgd2UncmUgdGFsa2luZyBhYm91dCBXYW5neHVuIFBDSSBkcml2ZXJzIHNwZWNpZmljYWxseS4gR2l2ZW4gdGhhdCBjb250ZXh0LCBJJ20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJdCBkb2Vzbid0IGFwcGVhciB0byBiZSBhIGNyaXRpY2FsIGFyZWEgcmlwZSBmb3IgdnVsbmVyYWJpbGl0eSBkaXNjb3ZlcnkgYWNyb3NzIGEgYnJvYWRlciByYW5nZSBvZiBkcml2ZXJzIG9yIGZ1bmN0aW9uYWxpdGllcywgbWFraW5nIGZ1enppbmcgYSBsb3dlciBwcmlvcml0eS4gTXkgcmVzb3VyY2VzIGFyZSBiZXR0ZXIgc3BlbnQgZWxzZXdoZXJlIGZvciBub3cuIFRoaXMgZGVjaXNpb24gaXMgYmFzZWQgb24gYSBuYXJyb3cgc2NvcGUgb2YgdGhpcyBjb2RlJ3MgdXNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MjcyLCJPdXRwdXRUb2tlbnMiOjEwNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDAzOjU0OjEyLjU4OTE3NzU1WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjI1ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGB3eF9mZWF0dXJlc19jaGVja2AgZnVuY3Rpb24gaW4gdGhlIFdhbmd4dW4gRXRoZXJuZXQgZHJpdmVyIChgZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9gKS4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIsIGFuZCBzaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGB3eF9mZWF0dXJlc19jaGVja2AgZnVuY3Rpb24gaW4gdGhlIFdhbmd4dW4gRXRoZXJuZXQgZHJpdmVyIChgZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9gKS4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIsIGFuZCBzaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowdf7gp[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-11 03:39:30 +0000 UTC FinishedAt: 2026-07-11 03:54:14 +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+CgkJCTx0ZD4yMDI2LzA3LzExIDAzOjUzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgd3hfZmVhdHVyZXNfY2hlY2tgIGZ1bmN0aW9uIGluIHRoZSBXYW5neHVuIEV0aGVybmV0IGRyaXZlciAoYGRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vYCkuIFRoaXMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kgZHJpdmVyLCBhbmQgc2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciB0aGlzIGhhcmR3YXJlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMDM6NTM8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAxMDA2YmRlMTIyY2Q5YTIwMTZlYTM3NWIyNWFlY2JlM2UzMzBjNWMwXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBKdWwgMTEgMDM6NTM6NDkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmNcbmluZGV4IDgxNGQ4OGQyYWVlNDg3Li42NWRhYjZiZDhhMzk0NSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmNcbkBAIC0zMjIzLDEyICYjNDM7MzIyMywzNyBAQCBuZXRkZXZfZmVhdHVyZXNfdCB3eF9maXhfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbiBFWFBPUlRfU1lNQk9MKHd4X2ZpeF9mZWF0dXJlcyk7XG4gXG4gI2RlZmluZSBXWF9NQVhfVFVOTkVMX0hEUl9MRU5cdDgwXG4mIzQzOyNkZWZpbmUgV1hfVkxBTl9NQVhfREVQVEhcdDhcbiBuZXRkZXZfZmVhdHVyZXNfdCB3eF9mZWF0dXJlc19jaGVjayhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHRcdFx0ICAgIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4gXHRcdFx0XHQgICAgbmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpXG4ge1xuIFx0c3RydWN0IHd4ICp3eCA9IG5ldGRldl9wcml2KG5ldGRldik7XG4mIzQzO1x0dTE2IHBhcnNlX2RlcHRoID0gV1hfVkxBTl9NQVhfREVQVEg7XG4mIzQzO1x0X19iZTE2IHR5cGUgPSBza2ItXHUwMDNlcHJvdG9jb2w7XG4mIzQzO1x0dTE2IHZsYW5fZGVwdGggPSBFVEhfSExFTjtcbiYjNDM7XHR1MzIgdmxhbl9udW0gPSAwO1xuIFxuJiM0MztcdGlmICghc2tiX3ZsYW5fdGFnX3ByZXNlbnQoc2tiKSlcbiYjNDM7XHRcdGdvdG8gdHVubmVsX2NoZWNrO1xuJiM0MztcbiYjNDM7XHR2bGFuX251bSYjNDM7JiM0Mzs7XG4mIzQzO1x0d2hpbGUgKGV0aF90eXBlX3ZsYW4odHlwZSkgXHUwMDI2XHUwMDI2IC0tcGFyc2VfZGVwdGgpIHtcbiYjNDM7XHRcdHN0cnVjdCB2bGFuX2hkciB2aGRyLCAqdmg7XG4mIzQzO1xuJiM0MztcdFx0dmggPSBza2JfaGVhZGVyX3BvaW50ZXIoc2tiLCB2bGFuX2RlcHRoLCBzaXplb2YodmhkciksIFx1MDAyNnZoZHIpO1xuJiM0MztcdFx0aWYgKHVubGlrZWx5KCF2aCkpXG4mIzQzO1x0XHRcdGJyZWFrO1xuJiM0MztcbiYjNDM7XHRcdHR5cGUgPSB2aC1cdTAwM2VoX3ZsYW5fZW5jYXBzdWxhdGVkX3Byb3RvO1xuJiM0MztcdFx0dmxhbl9kZXB0aCAmIzQzOz0gVkxBTl9ITEVOO1xuJiM0MztcdFx0dmxhbl9udW0mIzQzOyYjNDM7O1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0aWYgKHZsYW5fbnVtIFx1MDAzZSAyKVxuJiM0MztcdFx0ZmVhdHVyZXMgXHUwMDI2PSB+KE5FVElGX0ZfSFdfVkxBTl9DVEFHX1RYIHxcbiYjNDM7XHRcdFx0ICAgICAgTkVUSUZfRl9IV19WTEFOX1NUQUdfVFgpO1xuJiM0Mzt0dW5uZWxfY2hlY2s6XG4gXHRpZiAoIXNrYi1cdTAwM2VlbmNhcHN1bGF0aW9uKVxuIFx0XHRyZXR1cm4gZmVhdHVyZXM7XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMDM6NTM8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGB3eF9mZWF0dXJlc19jaGVja2AgZnVuY3Rpb24gaW4gdGhlIFdhbmd4dW4gRXRoZXJuZXQgZHJpdmVyIChgZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9gKS4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIsIGFuZCBzaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMTAwNmJkZTEyMmNkOWEyMDE2ZWEzNzViMjVhZWNiZTNlMzMwYzVjMApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgSnVsIDExIDAzOjUzOjQ5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmMKaW5kZXggODE0ZDg4ZDJhZWU0ODcuLjY1ZGFiNmJkOGEzOTQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmMKQEAgLTMyMjMsMTIgJiM0MzszMjIzLDM3IEBAIG5ldGRldl9mZWF0dXJlc190IHd4X2ZpeF9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LAogRVhQT1JUX1NZTUJPTCh3eF9maXhfZmVhdHVyZXMpOwogCiAjZGVmaW5lIFdYX01BWF9UVU5ORUxfSERSX0xFTgk4MAomIzQzOyNkZWZpbmUgV1hfVkxBTl9NQVhfREVQVEgJOAogbmV0ZGV2X2ZlYXR1cmVzX3Qgd3hfZmVhdHVyZXNfY2hlY2soc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQkgICAgc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwKIAkJCQkgICAgbmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpCiB7CiAJc3RydWN0IHd4ICp3eCA9IG5ldGRldl9wcml2KG5ldGRldik7CiYjNDM7CXUxNiBwYXJzZV9kZXB0aCA9IFdYX1ZMQU5fTUFYX0RFUFRIOwomIzQzOwlfX2JlMTYgdHlwZSA9IHNrYi0mZ3Q7cHJvdG9jb2w7CiYjNDM7CXUxNiB2bGFuX2RlcHRoID0gRVRIX0hMRU47CiYjNDM7CXUzMiB2bGFuX251bSA9IDA7CiAKJiM0MzsJaWYgKCFza2Jfdmxhbl90YWdfcHJlc2VudChza2IpKQomIzQzOwkJZ290byB0dW5uZWxfY2hlY2s7CiYjNDM7CiYjNDM7CXZsYW5fbnVtJiM0MzsmIzQzOzsKJiM0MzsJd2hpbGUgKGV0aF90eXBlX3ZsYW4odHlwZSkgJmFtcDsmYW1wOyAtLXBhcnNlX2RlcHRoKSB7CiYjNDM7CQlzdHJ1Y3Qgdmxhbl9oZHIgdmhkciwgKnZoOwomIzQzOwomIzQzOwkJdmggPSBza2JfaGVhZGVyX3BvaW50ZXIoc2tiLCB2bGFuX2RlcHRoLCBzaXplb2YodmhkciksICZhbXA7dmhkcik7CiYjNDM7CQlpZiAodW5saWtlbHkoIXZoKSkKJiM0MzsJCQlicmVhazsKJiM0MzsKJiM0MzsJCXR5cGUgPSB2aC0mZ3Q7aF92bGFuX2VuY2Fwc3VsYXRlZF9wcm90bzsKJiM0MzsJCXZsYW5fZGVwdGggJiM0Mzs9IFZMQU5fSExFTjsKJiM0MzsJCXZsYW5fbnVtJiM0MzsmIzQzOzsKJiM0MzsJfQomIzQzOwomIzQzOwlpZiAodmxhbl9udW0gJmd0OyAyKQomIzQzOwkJZmVhdHVyZXMgJmFtcDs9IH4oTkVUSUZfRl9IV19WTEFOX0NUQUdfVFggfAomIzQzOwkJCSAgICAgIE5FVElGX0ZfSFdfVkxBTl9TVEFHX1RYKTsKJiM0Mzt0dW5uZWxfY2hlY2s6CiAJaWYgKCFza2ItJmd0O2VuY2Fwc3VsYXRpb24pCiAJCXJldHVybiBmZWF0dXJlczsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwMzo1MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjA2CgkJCQkJCQlvdXRwdXQ6IDE5CgkJCQkJCQl0aG91Z2h0czogMTI3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgVkxBTiBEZXB0aCBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGFpbWVkIHNxdWFyZWx5IGF0IGB3eF9mZWF0dXJlc19jaGVja2Agd2l0aGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgKndoeSogdGhpcyBzcGVjaWZpYyBmdW5jdGlvbiBpcyB0aGUgdGFyZ2V0LiBUaGUgY29kZSBhZGRzIGEgbGltaXQgb24gVkxBTiBkZXB0aCwgc3BlY2lmaWNhbGx5IHJlc3RyaWN0aW5nIGl0IHRvIGBXWF9WTEFOX01BWF9ERVBUSGAsIHdoaWNoIGFwcGVhcnMgdG8gYmUgc2V0IGF0IDguIFRoYXQmIzM5O3MgYSByZWFzb25hYmxlIHN0YXJ0aW5nIHBvaW50LCBhcyBkZWVwIFZMQU4gbmVzdGluZyBjYW4gaW50cm9kdWNlIGNvbXBsZXhpdGllcy4KCk15IG5leHQgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzIGFyb3VuZCB0aGUgaW1wbGljYXRpb25zIG9mIGV4Y2VlZGluZyB0aGF0IGRlcHRoLiBJdCBsb29rcyBsaWtlIHRoZSBjb2RlLCBpZiB0aGUgVkxBTiB0YWcgY291bnQgZ29lcyBhYm92ZSAyLCBkZWNpZGVzIHRvIGNsZWFyIGBORVRJRl9GX0hXX1ZMQU5fQ1RBR19UWGAgYW5kIGBORVRJRl9GX0hXX1ZMQU5fU1RBR19UWGAgZnJvbSB0aGUgYGZlYXR1cmVzYCB2YXJpYWJsZS4gVGhhdCYjMzk7cyBhIHNpZ25pZmljYW50IGNoYW5nZS4gSXQgbWVhbnMgdGhlIGhhcmR3YXJlIFZMQU4gdGFnZ2luZyBjYXBhYmlsaXRpZXMgYXJlIGJlaW5nIGRpc2FibGVkLCBhbmQgdGhlIGRyaXZlciBpcyBsaWtlbHkgYmVpbmcgZm9yY2VkIHRvIGhhbmRsZSB0aGUgVkxBTiB0YWdnaW5nIGluIHNvZnR3YXJlLiBUaGlzIGlzIHByb2JhYmx5IGR1ZSB0byBhIGxpbWl0YXRpb24gaW4gdGhlIGhhcmR3YXJlLCBvciBwb3RlbnRpYWwgcGVyZm9ybWFuY2UgaXNzdWVzIHdpdGggZGVlcGx5IG5lc3RlZCBWTEFOcy4gVGhpcyBpcyBzb21ldGhpbmcgSSYjMzk7bGwgbmVlZCB0byBpbnZlc3RpZ2F0ZSBmdXJ0aGVyLgoKTm93LCBteSBuZXh0IHN0ZXAgaXMgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4gSSYjMzk7bGwgbmVlZCB0byBkZWx2ZSBpbnRvIHRoZSBgd3hfZmVhdHVyZXNfY2hlY2tgIGZ1bmN0aW9uIGl0c2VsZi4gV2hhdCBhcmUgaXRzIHB1cnBvc2UgYW5kIGl0cyB1c2FnZSB3aXRoaW4gdGhlIFdhbmd4dW4gZHJpdmVyPyBIb3cgYXJlIHRoZXNlIGZlYXR1cmUgZmxhZ3MgY29uZmlndXJlZCBhbmQgaGFuZGxlZCB0aHJvdWdob3V0IHRoZSBzeXN0ZW0/IEkmIzM5O2xsIG5lZWQgdG8gdHJhY2UgdGhlIHVzYWdlIG9mIHRoZXNlIGZlYXR1cmUgZmxhZ3MsIGVzcGVjaWFsbHkgYXJvdW5kIHRoZSB0cmFuc21pdCBwYXRoLCB0byBmdWxseSB1bmRlcnN0YW5kIHRoZSBpbXBhY3Qgb2YgdGhpcyBjaGFuZ2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMDM6NTM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7d3hfZmVhdHVyZXNfY2hlY2smIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuYz0zMjIzPUVYUE9SVF9TWU1CT0wod3hfZml4X2ZlYXR1cmVzKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jLTMyMjYtI2RlZmluZSBXWF9WTEFOX01BWF9ERVBUSFx0OFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuYzozMjI3Om5ldGRldl9mZWF0dXJlc190IHd4X2ZlYXR1cmVzX2NoZWNrKHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jLTMyMjgtXHRcdFx0XHQgICAgc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jLTMyNzQtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuYzozMjc1OkVYUE9SVF9TWU1CT0wod3hfZmVhdHVyZXNfY2hlY2spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuYy0zMjc2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmg9MzQ9bmV0ZGV2X2ZlYXR1cmVzX3Qgd3hfZml4X2ZlYXR1cmVzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5oLTM1LVx0XHRcdFx0ICBuZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5oOjM2Om5ldGRldl9mZWF0dXJlc190IHd4X2ZlYXR1cmVzX2NoZWNrKHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5oLTM3LVx0XHRcdFx0ICAgIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jPTYwOT1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIG5nYmVfbmV0ZGV2X29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmMtNjE2LVx0Lm5kb19maXhfZmVhdHVyZXMgICAgICAgPSB3eF9maXhfZmVhdHVyZXMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmM6NjE3Olx0Lm5kb19mZWF0dXJlc19jaGVjayAgICAgPSB3eF9mZWF0dXJlc19jaGVjayxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYy02MTgtXHQubmRvX3ZhbGlkYXRlX2FkZHIgICAgICA9IGV0aF92YWxpZGF0ZV9hZGRyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jPTY1Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHR4Z2JlX25ldGRldl9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmMtNjU5LVx0Lm5kb19maXhfZmVhdHVyZXMgICAgICAgPSB3eF9maXhfZmVhdHVyZXMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYzo2NjA6XHQubmRvX2ZlYXR1cmVzX2NoZWNrICAgICA9IHd4X2ZlYXR1cmVzX2NoZWNrLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmMtNjYxLVx0Lm5kb192YWxpZGF0ZV9hZGRyICAgICAgPSBldGhfdmFsaWRhdGVfYWRkcixcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwMzo1MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNDUzCgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMTQ1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgV2FuZ3h1biBEcml2ZXIgUmVhY2hhYmlsaXR5KioKCk9rYXksIHNvIEkgc2VlIHRoaXMgYHd4X2ZlYXR1cmVzX2NoZWNrYCBmdW5jdGlvbiBiZWluZyBjYWxsZWQgYXMgYG5kb19mZWF0dXJlc19jaGVja2AgaW4gYm90aCB0aGUgYG5nYmVfbmV0ZGV2X29wc2AgYW5kIGB0eGdiZV9uZXRkZXZfb3BzYCBzdHJ1Y3R1cmVzLiBUaGF0IG1lYW5zIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggV2FuZ3h1biAxR2JFIGFuZCAxMEdiRSBQQ0kgRXhwcmVzcyBuZXR3b3JrIGRyaXZlcnMsIHJlc3BlY3RpdmVseS4gUmlnaHQsIGFuZCBJIGtub3cgdGhhdCBQQ0kgZHJpdmVycyBhcmUgdHlwaWNhbGx5IGEgcGFpbiB0byBoaXQgaW4gYSB2aXJ0dWFsaXplZCBzZXR1cCB1bmxlc3Mgd2UmIzM5O3ZlIGdvdCBzb21lIHNvcnQgb2YgZW11bGF0ZWQgaGFyZHdhcmUgaW4gcGxhY2UsIG9yIHdlJiMzOTtyZSBnZXR0aW5nIGludG8gUENJIGZ1enppbmcgdGVycml0b3J5LiBXYWl0IGEgbWludXRlLi4uIGRvZXMgc3l6a2FsbGVyIGV2ZW4gKmhhdmUqIFdhbmd4dW4gUENJIGRldmljZSBlbXVsYXRpb24/IFByZXR0eSBzdXJlIGl0IGRvZXNuJiMzOTt0LiBPa2F5LCB0aGF0JiMzOTtzIGEgcHJvYmxlbS4gTGV0JiMzOTtzIGRpZyBkZWVwZXIuIElzIHRoZXJlIGFueSBjb25jZWl2YWJsZSB3YXkgdG8gcmVhY2ggdGhlc2UgZHJpdmVycz8gTGV0JiMzOTtzIHZlcmlmeSBpZiBXYW5neHVuIGlzIGV2ZW4gKmFjdHVhbGx5KiBhIFBDSSBkZXZpY2UuIFRpbWUgdG8gY3JhY2sgb3BlbiBgbmdiZV9tYWluLmNgIGFuZCBgdHhnYmVfbWFpbi5jYCBhbmQgY29uZmlybSB0aGF0IGFzc3VtcHRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMDM6NTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGNpX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYz04Nzk9c3RhdGljIGludCBuZ2JlX3Jlc3VtZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmMtOTA3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jOjkwODpzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgbmdiZV9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmMtOTA5LVx0Lm5hbWUgICAgID0gbmdiZV9kcml2ZXJfbmFtZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmMtOTE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jOjkxOTptb2R1bGVfcGNpX2RyaXZlcihuZ2JlX2RyaXZlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmMtOTIwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZXZmL25nYmV2Zl9tYWluLmM9MjQ5PXN0YXRpYyBERUZJTkVfU0lNUExFX0RFVl9QTV9PUFMobmdiZXZmX3BtX29wcywgd3h2Zl9zdXNwZW5kLCB3eHZmX3Jlc3VtZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmV2Zi9uZ2JldmZfbWFpbi5jLTI1MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZXZmL25nYmV2Zl9tYWluLmM6MjUxOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBuZ2JldmZfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JldmYvbmdiZXZmX21haW4uYy0yNTItXHQubmFtZSAgICAgPSBLQlVJTERfTU9ETkFNRSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmV2Zi9uZ2JldmZfbWFpbi5jLTI2MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZXZmL25nYmV2Zl9tYWluLmM6MjYxOm1vZHVsZV9wY2lfZHJpdmVyKG5nYmV2Zl9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JldmYvbmdiZXZmX21haW4uYy0yNjItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmM9OTM5PXN0YXRpYyB2b2lkIHR4Z2JlX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYy05NjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYzo5NjU6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIHR4Z2JlX2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jLTk2Ni1cdC5uYW1lICAgICA9IHR4Z2JlX2RyaXZlcl9uYW1lLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jLTk3My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jOjk3NDptb2R1bGVfcGNpX2RyaXZlcih0eGdiZV9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmMtOTc1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmV2Zi90eGdiZXZmX21haW4uYz0zMTQ9c3RhdGljIERFRklORV9TSU1QTEVfREVWX1BNX09QUyh0eGdiZXZmX3BtX29wcywgd3h2Zl9zdXNwZW5kLCB3eHZmX3Jlc3VtZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JldmYvdHhnYmV2Zl9tYWluLmMtMzE1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZXZmL3R4Z2JldmZfbWFpbi5jOjMxNjpzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgdHhnYmV2Zl9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JldmYvdHhnYmV2Zl9tYWluLmMtMzE3LVx0Lm5hbWUgICAgID0gS0JVSUxEX01PRE5BTUUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZXZmL3R4Z2JldmZfbWFpbi5jLTMyNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmV2Zi90eGdiZXZmX21haW4uYzozMjY6bW9kdWxlX3BjaV9kcml2ZXIodHhnYmV2Zl9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZXZmL3R4Z2JldmZfbWFpbi5jLTMyNy1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwMzo1NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0OTIwCgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogMjE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgRmVhc2liaWxpdHkgb2YgdGhlIFdhbmd4dW4gRXRoZXJuZXQgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCwgeWVzLCBpdCYjMzk7cyBkZWZpbml0ZWx5IGRlYWxpbmcgd2l0aCBQQ0kgZHJpdmVycy4gU3BlY2lmaWNhbGx5LCBpdCYjMzk7cyB0aGUgV2FuZ3h1biBFdGhlcm5ldCBkcml2ZXIuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IHNpbmNlIHN5emthbGxlciBkb2VzbiYjMzk7dCBoYXZlIGFueSBlbXVsYXRlZCBoYXJkd2FyZSBmb3IgdGhlc2UgV2FuZ3h1biBQQ0kgZGV2aWNlcywgdGhlIGNvZGUgaW4gdGhpcyBkcml2ZXIgd2lsbCBiZSBjb21wbGV0ZWx5IHVucmVhY2hhYmxlIGluIGFueSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgbGlrZSBHQ0Ugb3IgUUVNVSwgdGhhdCBJJiMzOTttIGxpa2VseSB0byBiZSB1c2luZyBmb3IgZnV6emluZy4gVGhlcmVmb3JlLCBmcm9tIGEgcHVyZWx5IHByYWN0aWNhbCBmdXp6aW5nIHBlcnNwZWN0aXZlLCBpdCYjMzk7cyBwcm9iYWJseSBub3Qgd29ydGggdGhlIGVmZm9ydC4KCkJ1dCB3YWl0LCBJIG5lZWQgdG8gYmUgYWJzb2x1dGVseSBzdXJlLiBJcyB0aGVyZSAqYW55KiBzY2VuYXJpbywgaG93ZXZlciB1bmxpa2VseSwgd2hlcmUgdGhpcyBkcml2ZXIgY291bGQgYmUgdXNlZCBpbiBhIHZpcnR1YWxpemVkIHNldHRpbmc/IE5vLCB0aGF0JiMzOTtzIG5vdCByaWdodC4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciwgaW50ZW5kZWQgb25seSBmb3IgV2FuZ3h1biBuZXR3b3JrIGNhcmRzLiBVbmxlc3Mgd2UgY2FuIHNvbWVob3cgY29uZmlndXJlIGEgdmlydHVhbCBkZXZpY2UgdG8gKmVtdWxhdGUqIHRoYXQgc3BlY2lmaWMgaGFyZHdhcmUsIHRoZSBkcml2ZXIgc2ltcGx5IHdvbiYjMzk7dCBiZSBwcm9iZWQuIFNvLCBjb25zaWRlcmluZyB0aGF0IGZhY3QsIHRoZSBgV29ydGhGdXp6aW5nYCBmbGFnIHNob3VsZCBiZSBzZXQgdG8gYGZhbHNlYC4KCk15IHJlYXNvbmluZyBpcyBzdHJhaWdodGZvcndhcmQ6IFRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYHd4X2ZlYXR1cmVzX2NoZWNrYCBmdW5jdGlvbiB3aXRoaW4gdGhlIFdhbmd4dW4gRXRoZXJuZXQgZHJpdmVyLCB3aGljaCBpcyBsb2NhdGVkIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2AuIFNpbmNlIHRoZXJlJiMzOTtzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBvZiB0aGlzIHNwZWNpZmljIGhhcmR3YXJlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgdGhlIGNvZGUgcGF0aHMgdG91Y2hlZCBieSB0aGUgcGF0Y2ggYXJlIHNpbXBseSBub3QgcmVhY2hhYmxlIGR1cmluZyBhIGZ1enppbmcgY2FtcGFpZ24uIFN0aWxsLCBJIHNob3VsZCBkb3VibGUtY2hlY2sgdG8gbWFrZSBzdXJlIHRoZXJlIGFyZSBubyBvdGhlciB1c2VzIG9mIGB3eF9mZWF0dXJlc19jaGVja2AgdGhhdCBJJiMzOTttIG5vdCBhd2FyZSBvZi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwMzo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt3eF9mZWF0dXJlc19jaGVjayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jPTMyMjM9RVhQT1JUX1NZTUJPTCh3eF9maXhfZmVhdHVyZXMpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmMtMzIyNi0jZGVmaW5lIFdYX1ZMQU5fTUFYX0RFUFRIXHQ4XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jOjMyMjc6bmV0ZGV2X2ZlYXR1cmVzX3Qgd3hfZmVhdHVyZXNfY2hlY2soc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmMtMzIyOC1cdFx0XHRcdCAgICBzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmMtMzI3NC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jOjMyNzU6RVhQT1JUX1NZTUJPTCh3eF9mZWF0dXJlc19jaGVjayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jLTMyNzYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuaD0zND1uZXRkZXZfZmVhdHVyZXNfdCB3eF9maXhfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmgtMzUtXHRcdFx0XHQgIG5ldGRldl9mZWF0dXJlc190IGZlYXR1cmVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmg6MzY6bmV0ZGV2X2ZlYXR1cmVzX3Qgd3hfZmVhdHVyZXNfY2hlY2soc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmgtMzctXHRcdFx0XHQgICAgc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmM9NjA5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgbmdiZV9uZXRkZXZfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYy02MTYtXHQubmRvX2ZpeF9mZWF0dXJlcyAgICAgICA9IHd4X2ZpeF9mZWF0dXJlcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYzo2MTc6XHQubmRvX2ZlYXR1cmVzX2NoZWNrICAgICA9IHd4X2ZlYXR1cmVzX2NoZWNrLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jLTYxOC1cdC5uZG9fdmFsaWRhdGVfYWRkciAgICAgID0gZXRoX3ZhbGlkYXRlX2FkZHIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmM9NjUyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgdHhnYmVfbmV0ZGV2X29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYy02NTktXHQubmRvX2ZpeF9mZWF0dXJlcyAgICAgICA9IHd4X2ZpeF9mZWF0dXJlcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jOjY2MDpcdC5uZG9fZmVhdHVyZXNfY2hlY2sgICAgID0gd3hfZmVhdHVyZXNfY2hlY2ssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYy02NjEtXHQubmRvX3ZhbGlkYXRlX2FkZHIgICAgICA9IGV0aF92YWxpZGF0ZV9hZGRyLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDAzOjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYyNzIKCQkJCQkJCW91dHB1dDogMTA3CgkJCQkJCQl0aG91Z2h0czogMzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBhc3Nlc3NtZW50OgoKKipXb3J0aEZ1enppbmcgRGVjaXNpb24qKgoKQWxyaWdodCwgc28gdGhlIGFuYWx5c2lzIGJvaWxzIGRvd24gdG8gdGhpczogVGhpcyBjb2RlIHNuaXBwZXQsIHdoYXRldmVyIGl0IGlzLCBvbmx5IHNlZW1zIHRvIGJlIHJlbGV2YW50IHdpdGhpbiB0aGUgYG5nYmVgIGFuZCBgdHhnYmVgIGRyaXZlcnMuIEFuZCB3ZSYjMzk7cmUgdGFsa2luZyBhYm91dCBXYW5neHVuIFBDSSBkcml2ZXJzIHNwZWNpZmljYWxseS4gR2l2ZW4gdGhhdCBjb250ZXh0LCBJJiMzOTttIGdvaW5nIHRvIHNldCBgV29ydGhGdXp6aW5nPWZhbHNlYC4gSXQgZG9lc24mIzM5O3QgYXBwZWFyIHRvIGJlIGEgY3JpdGljYWwgYXJlYSByaXBlIGZvciB2dWxuZXJhYmlsaXR5IGRpc2NvdmVyeSBhY3Jvc3MgYSBicm9hZGVyIHJhbmdlIG9mIGRyaXZlcnMgb3IgZnVuY3Rpb25hbGl0aWVzLCBtYWtpbmcgZnV6emluZyBhIGxvd2VyIHByaW9yaXR5LiBNeSByZXNvdXJjZXMgYXJlIGJldHRlciBzcGVudCBlbHNld2hlcmUgZm9yIG5vdy4gVGhpcyBkZWNpc2lvbiBpcyBiYXNlZCBvbiBhIG5hcnJvdyBzY29wZSBvZiB0aGlzIGNvZGUmIzM5O3MgdXNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwMzo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgd3hfZmVhdHVyZXNfY2hlY2tgIGZ1bmN0aW9uIGluIHRoZSBXYW5neHVuIEV0aGVybmV0IGRyaXZlciAoYGRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vYCkuIFRoaXMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kgZHJpdmVyLCBhbmQgc2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciB0aGlzIGhhcmR3YXJlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBgd3hfZmVhdHVyZXNfY2hlY2tgIGZ1bmN0aW9uIGluIHRoZSBXYW5neHVuIEV0aGVybmV0IGRyaXZlciAoYGRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vYCkuIFRoaXMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kgZHJpdmVyLCBhbmQgc2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciB0aGlzIGhhcmR3YXJlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0xMVQwMzo1Mzo1MC42MzkzNzI1MjFaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTk0OTgzNDg0OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGB3eF9mZWF0dXJlc19jaGVja2AgZnVuY3Rpb24gaW4gdGhlIFdhbmd4dW4gRXRoZXJuZXQgZHJpdmVyIChgZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9gKS4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIsIGFuZCBzaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMDM6NTM6NTAuNjM5Mzc3NzIxWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NDM4Njc3OTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAxMDA2YmRlMTIyY2Q5YTIwMTZlYTM3NWIyNWFlY2JlM2UzMzBjNWMwXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgSnVsIDExIDAzOjUzOjQ5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jXFxuaW5kZXggODE0ZDg4ZDJhZWU0ODcuLjY1ZGFiNmJkOGEzOTQ1IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jXFxuQEAgLTMyMjMsMTIgKzMyMjMsMzcgQEAgbmV0ZGV2X2ZlYXR1cmVzX3Qgd3hfZml4X2ZlYXR1cmVzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuIEVYUE9SVF9TWU1CT0wod3hfZml4X2ZlYXR1cmVzKTtcXG4gXFxuICNkZWZpbmUgV1hfTUFYX1RVTk5FTF9IRFJfTEVOXFx0ODBcXG4rI2RlZmluZSBXWF9WTEFOX01BWF9ERVBUSFxcdDhcXG4gbmV0ZGV2X2ZlYXR1cmVzX3Qgd3hfZmVhdHVyZXNfY2hlY2soc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4gXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuIFxcdFxcdFxcdFxcdCAgICBuZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcylcXG4ge1xcbiBcXHRzdHJ1Y3Qgd3ggKnd4ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG4rXFx0dTE2IHBhcnNlX2RlcHRoID0gV1hfVkxBTl9NQVhfREVQVEg7XFxuK1xcdF9fYmUxNiB0eXBlID0gc2tiLVxcdTAwM2Vwcm90b2NvbDtcXG4rXFx0dTE2IHZsYW5fZGVwdGggPSBFVEhfSExFTjtcXG4rXFx0dTMyIHZsYW5fbnVtID0gMDtcXG4gXFxuK1xcdGlmICghc2tiX3ZsYW5fdGFnX3ByZXNlbnQoc2tiKSlcXG4rXFx0XFx0Z290byB0dW5uZWxfY2hlY2s7XFxuK1xcbitcXHR2bGFuX251bSsrO1xcbitcXHR3aGlsZSAoZXRoX3R5cGVfdmxhbih0eXBlKSBcXHUwMDI2XFx1MDAyNiAtLXBhcnNlX2RlcHRoKSB7XFxuK1xcdFxcdHN0cnVjdCB2bGFuX2hkciB2aGRyLCAqdmg7XFxuK1xcbitcXHRcXHR2aCA9IHNrYl9oZWFkZXJfcG9pbnRlcihza2IsIHZsYW5fZGVwdGgsIHNpemVvZih2aGRyKSwgXFx1MDAyNnZoZHIpO1xcbitcXHRcXHRpZiAodW5saWtlbHkoIXZoKSlcXG4rXFx0XFx0XFx0YnJlYWs7XFxuK1xcbitcXHRcXHR0eXBlID0gdmgtXFx1MDAzZWhfdmxhbl9lbmNhcHN1bGF0ZWRfcHJvdG87XFxuK1xcdFxcdHZsYW5fZGVwdGggKz0gVkxBTl9ITEVOO1xcbitcXHRcXHR2bGFuX251bSsrO1xcbitcXHR9XFxuK1xcbitcXHRpZiAodmxhbl9udW0gXFx1MDAzZSAyKVxcbitcXHRcXHRmZWF0dXJlcyBcXHUwMDI2PSB+KE5FVElGX0ZfSFdfVkxBTl9DVEFHX1RYIHxcXG4rXFx0XFx0XFx0ICAgICAgTkVUSUZfRl9IV19WTEFOX1NUQUdfVFgpO1xcbit0dW5uZWxfY2hlY2s6XFxuIFxcdGlmICghc2tiLVxcdTAwM2VlbmNhcHN1bGF0aW9uKVxcbiBcXHRcXHRyZXR1cm4gZmVhdHVyZXM7XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQwMzo1Mzo1MS4xODQwMjA3WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyMTQwNTE4MDY2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGB3eF9mZWF0dXJlc19jaGVja2AgZnVuY3Rpb24gaW4gdGhlIFdhbmd4dW4gRXRoZXJuZXQgZHJpdmVyIChgZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9gKS4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIsIGFuZCBzaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAxMDA2YmRlMTIyY2Q5YTIwMTZlYTM3NWIyNWFlY2JlM2UzMzBjNWMwXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBKdWwgMTEgMDM6NTM6NDkgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuY1xuaW5kZXggODE0ZDg4ZDJhZWU0ODcuLjY1ZGFiNmJkOGEzOTQ1IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuY1xuQEAgLTMyMjMsMTIgKzMyMjMsMzcgQEAgbmV0ZGV2X2ZlYXR1cmVzX3Qgd3hfZml4X2ZlYXR1cmVzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4gRVhQT1JUX1NZTUJPTCh3eF9maXhfZmVhdHVyZXMpO1xuIFxuICNkZWZpbmUgV1hfTUFYX1RVTk5FTF9IRFJfTEVOXHQ4MFxuKyNkZWZpbmUgV1hfVkxBTl9NQVhfREVQVEhcdDhcbiBuZXRkZXZfZmVhdHVyZXNfdCB3eF9mZWF0dXJlc19jaGVjayhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHRcdFx0ICAgIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4gXHRcdFx0XHQgICAgbmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpXG4ge1xuIFx0c3RydWN0IHd4ICp3eCA9IG5ldGRldl9wcml2KG5ldGRldik7XG4rXHR1MTYgcGFyc2VfZGVwdGggPSBXWF9WTEFOX01BWF9ERVBUSDtcbitcdF9fYmUxNiB0eXBlID0gc2tiLVx1MDAzZXByb3RvY29sO1xuK1x0dTE2IHZsYW5fZGVwdGggPSBFVEhfSExFTjtcbitcdHUzMiB2bGFuX251bSA9IDA7XG4gXG4rXHRpZiAoIXNrYl92bGFuX3RhZ19wcmVzZW50KHNrYikpXG4rXHRcdGdvdG8gdHVubmVsX2NoZWNrO1xuK1xuK1x0dmxhbl9udW0rKztcbitcdHdoaWxlIChldGhfdHlwZV92bGFuKHR5cGUpIFx1MDAyNlx1MDAyNiAtLXBhcnNlX2RlcHRoKSB7XG4rXHRcdHN0cnVjdCB2bGFuX2hkciB2aGRyLCAqdmg7XG4rXG4rXHRcdHZoID0gc2tiX2hlYWRlcl9wb2ludGVyKHNrYiwgdmxhbl9kZXB0aCwgc2l6ZW9mKHZoZHIpLCBcdTAwMjZ2aGRyKTtcbitcdFx0aWYgKHVubGlrZWx5KCF2aCkpXG4rXHRcdFx0YnJlYWs7XG4rXG4rXHRcdHR5cGUgPSB2aC1cdTAwM2VoX3ZsYW5fZW5jYXBzdWxhdGVkX3Byb3RvO1xuK1x0XHR2bGFuX2RlcHRoICs9IFZMQU5fSExFTjtcbitcdFx0dmxhbl9udW0rKztcbitcdH1cbitcbitcdGlmICh2bGFuX251bSBcdTAwM2UgMilcbitcdFx0ZmVhdHVyZXMgXHUwMDI2PSB+KE5FVElGX0ZfSFdfVkxBTl9DVEFHX1RYIHxcbitcdFx0XHQgICAgICBORVRJRl9GX0hXX1ZMQU5fU1RBR19UWCk7XG4rdHVubmVsX2NoZWNrOlxuIFx0aWYgKCFza2ItXHUwMDNlZW5jYXBzdWxhdGlvbilcbiBcdFx0cmV0dXJuIGZlYXR1cmVzO1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMDM6NTM6NTEuMTg0MDIyMzlaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTg0MjMwMTM4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgVkxBTiBEZXB0aCBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgYWltZWQgc3F1YXJlbHkgYXQgYHd4X2ZlYXR1cmVzX2NoZWNrYCB3aXRoaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZmlndXJlIG91dCAqd2h5KiB0aGlzIHNwZWNpZmljIGZ1bmN0aW9uIGlzIHRoZSB0YXJnZXQuIFRoZSBjb2RlIGFkZHMgYSBsaW1pdCBvbiBWTEFOIGRlcHRoLCBzcGVjaWZpY2FsbHkgcmVzdHJpY3RpbmcgaXQgdG8gYFdYX1ZMQU5fTUFYX0RFUFRIYCwgd2hpY2ggYXBwZWFycyB0byBiZSBzZXQgYXQgOC4gVGhhdCdzIGEgcmVhc29uYWJsZSBzdGFydGluZyBwb2ludCwgYXMgZGVlcCBWTEFOIG5lc3RpbmcgY2FuIGludHJvZHVjZSBjb21wbGV4aXRpZXMuXG5cbk15IG5leHQgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzIGFyb3VuZCB0aGUgaW1wbGljYXRpb25zIG9mIGV4Y2VlZGluZyB0aGF0IGRlcHRoLiBJdCBsb29rcyBsaWtlIHRoZSBjb2RlLCBpZiB0aGUgVkxBTiB0YWcgY291bnQgZ29lcyBhYm92ZSAyLCBkZWNpZGVzIHRvIGNsZWFyIGBORVRJRl9GX0hXX1ZMQU5fQ1RBR19UWGAgYW5kIGBORVRJRl9GX0hXX1ZMQU5fU1RBR19UWGAgZnJvbSB0aGUgYGZlYXR1cmVzYCB2YXJpYWJsZS4gVGhhdCdzIGEgc2lnbmlmaWNhbnQgY2hhbmdlLiBJdCBtZWFucyB0aGUgaGFyZHdhcmUgVkxBTiB0YWdnaW5nIGNhcGFiaWxpdGllcyBhcmUgYmVpbmcgZGlzYWJsZWQsIGFuZCB0aGUgZHJpdmVyIGlzIGxpa2VseSBiZWluZyBmb3JjZWQgdG8gaGFuZGxlIHRoZSBWTEFOIHRhZ2dpbmcgaW4gc29mdHdhcmUuIFRoaXMgaXMgcHJvYmFibHkgZHVlIHRvIGEgbGltaXRhdGlvbiBpbiB0aGUgaGFyZHdhcmUsIG9yIHBvdGVudGlhbCBwZXJmb3JtYW5jZSBpc3N1ZXMgd2l0aCBkZWVwbHkgbmVzdGVkIFZMQU5zLiBUaGlzIGlzIHNvbWV0aGluZyBJJ2xsIG5lZWQgdG8gaW52ZXN0aWdhdGUgZnVydGhlci5cblxuTm93LCBteSBuZXh0IHN0ZXAgaXMgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4gSSdsbCBuZWVkIHRvIGRlbHZlIGludG8gdGhlIGB3eF9mZWF0dXJlc19jaGVja2AgZnVuY3Rpb24gaXRzZWxmLiBXaGF0IGFyZSBpdHMgcHVycG9zZSBhbmQgaXRzIHVzYWdlIHdpdGhpbiB0aGUgV2FuZ3h1biBkcml2ZXI/IEhvdyBhcmUgdGhlc2UgZmVhdHVyZSBmbGFncyBjb25maWd1cmVkIGFuZCBoYW5kbGVkIHRocm91Z2hvdXQgdGhlIHN5c3RlbT8gSSdsbCBuZWVkIHRvIHRyYWNlIHRoZSB1c2FnZSBvZiB0aGVzZSBmZWF0dXJlIGZsYWdzLCBlc3BlY2lhbGx5IGFyb3VuZCB0aGUgdHJhbnNtaXQgcGF0aCwgdG8gZnVsbHkgdW5kZXJzdGFuZCB0aGUgaW1wYWN0IG9mIHRoaXMgY2hhbmdlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjA2LCJPdXRwdXRUb2tlbnMiOjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTI3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMDM6NTM6NTUuMzY4MjU0Njg4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI4NTY2NzYyNDQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwid3hfZmVhdHVyZXNfY2hlY2tcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuYz0zMjIzPUVYUE9SVF9TWU1CT0wod3hfZml4X2ZlYXR1cmVzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmMtMzIyNi0jZGVmaW5lIFdYX1ZMQU5fTUFYX0RFUFRIXFx0OFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmM6MzIyNzpuZXRkZXZfZmVhdHVyZXNfdCB3eF9mZWF0dXJlc19jaGVjayhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmMtMzIyOC1cXHRcXHRcXHRcXHQgICAgc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmMtMzI3NC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuYzozMjc1OkVYUE9SVF9TWU1CT0wod3hfZmVhdHVyZXNfY2hlY2spO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmMtMzI3Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmg9MzQ9bmV0ZGV2X2ZlYXR1cmVzX3Qgd3hfZml4X2ZlYXR1cmVzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuaC0zNS1cXHRcXHRcXHRcXHQgIG5ldGRldl9mZWF0dXJlc190IGZlYXR1cmVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5oOjM2Om5ldGRldl9mZWF0dXJlc190IHd4X2ZlYXR1cmVzX2NoZWNrKHN0cnVjdCBza19idWZmICpza2IsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuaC0zNy1cXHRcXHRcXHRcXHQgICAgc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYz02MDk9c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBuZ2JlX25ldGRldl9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmMtNjE2LVxcdC5uZG9fZml4X2ZlYXR1cmVzICAgICAgID0gd3hfZml4X2ZlYXR1cmVzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYzo2MTc6XFx0Lm5kb19mZWF0dXJlc19jaGVjayAgICAgPSB3eF9mZWF0dXJlc19jaGVjayxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmMtNjE4LVxcdC5uZG9fdmFsaWRhdGVfYWRkciAgICAgID0gZXRoX3ZhbGlkYXRlX2FkZHIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYz02NTI9c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyB0eGdiZV9uZXRkZXZfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmMtNjU5LVxcdC5uZG9fZml4X2ZlYXR1cmVzICAgICAgID0gd3hfZml4X2ZlYXR1cmVzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jOjY2MDpcXHQubmRvX2ZlYXR1cmVzX2NoZWNrICAgICA9IHd4X2ZlYXR1cmVzX2NoZWNrLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jLTY2MS1cXHQubmRvX3ZhbGlkYXRlX2FkZHIgICAgICA9IGV0aF92YWxpZGF0ZV9hZGRyLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQwMzo1Mzo1OC4yMjQ5Mzc3ODJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDI0Nzk3NDIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgV2FuZ3h1biBEcml2ZXIgUmVhY2hhYmlsaXR5KipcblxuT2theSwgc28gSSBzZWUgdGhpcyBgd3hfZmVhdHVyZXNfY2hlY2tgIGZ1bmN0aW9uIGJlaW5nIGNhbGxlZCBhcyBgbmRvX2ZlYXR1cmVzX2NoZWNrYCBpbiBib3RoIHRoZSBgbmdiZV9uZXRkZXZfb3BzYCBhbmQgYHR4Z2JlX25ldGRldl9vcHNgIHN0cnVjdHVyZXMuIFRoYXQgbWVhbnMgd2UncmUgZGVhbGluZyB3aXRoIFdhbmd4dW4gMUdiRSBhbmQgMTBHYkUgUENJIEV4cHJlc3MgbmV0d29yayBkcml2ZXJzLCByZXNwZWN0aXZlbHkuIFJpZ2h0LCBhbmQgSSBrbm93IHRoYXQgUENJIGRyaXZlcnMgYXJlIHR5cGljYWxseSBhIHBhaW4gdG8gaGl0IGluIGEgdmlydHVhbGl6ZWQgc2V0dXAgdW5sZXNzIHdlJ3ZlIGdvdCBzb21lIHNvcnQgb2YgZW11bGF0ZWQgaGFyZHdhcmUgaW4gcGxhY2UsIG9yIHdlJ3JlIGdldHRpbmcgaW50byBQQ0kgZnV6emluZyB0ZXJyaXRvcnkuIFdhaXQgYSBtaW51dGUuLi4gZG9lcyBzeXprYWxsZXIgZXZlbiAqaGF2ZSogV2FuZ3h1biBQQ0kgZGV2aWNlIGVtdWxhdGlvbj8gUHJldHR5IHN1cmUgaXQgZG9lc24ndC4gT2theSwgdGhhdCdzIGEgcHJvYmxlbS4gTGV0J3MgZGlnIGRlZXBlci4gSXMgdGhlcmUgYW55IGNvbmNlaXZhYmxlIHdheSB0byByZWFjaCB0aGVzZSBkcml2ZXJzPyBMZXQncyB2ZXJpZnkgaWYgV2FuZ3h1biBpcyBldmVuICphY3R1YWxseSogYSBQQ0kgZGV2aWNlLiBUaW1lIHRvIGNyYWNrIG9wZW4gYG5nYmVfbWFpbi5jYCBhbmQgYHR4Z2JlX21haW4uY2AgYW5kIGNvbmZpcm0gdGhhdCBhc3N1bXB0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNDUzLCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQ1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDAzOjU0OjAyLjI0OTczNzA2M1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MzA3NjExOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwY2lfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYz04Nzk9c3RhdGljIGludCBuZ2JlX3Jlc3VtZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYy05MDctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jOjkwODpzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgbmdiZV9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jLTkwOS1cXHQubmFtZSAgICAgPSBuZ2JlX2RyaXZlcl9uYW1lLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jLTkxOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmM6OTE5Om1vZHVsZV9wY2lfZHJpdmVyKG5nYmVfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmMtOTIwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JldmYvbmdiZXZmX21haW4uYz0yNDk9c3RhdGljIERFRklORV9TSU1QTEVfREVWX1BNX09QUyhuZ2JldmZfcG1fb3BzLCB3eHZmX3N1c3BlbmQsIHd4dmZfcmVzdW1lKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmV2Zi9uZ2JldmZfbWFpbi5jLTI1MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmV2Zi9uZ2JldmZfbWFpbi5jOjI1MTpzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgbmdiZXZmX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmV2Zi9uZ2JldmZfbWFpbi5jLTI1Mi1cXHQubmFtZSAgICAgPSBLQlVJTERfTU9ETkFNRSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZXZmL25nYmV2Zl9tYWluLmMtMjYwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZXZmL25nYmV2Zl9tYWluLmM6MjYxOm1vZHVsZV9wY2lfZHJpdmVyKG5nYmV2Zl9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZXZmL25nYmV2Zl9tYWluLmMtMjYyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmM9OTM5PXN0YXRpYyB2b2lkIHR4Z2JlX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jLTk2NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYzo5NjU6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIHR4Z2JlX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYy05NjYtXFx0Lm5hbWUgICAgID0gdHhnYmVfZHJpdmVyX25hbWUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYy05NzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmM6OTc0Om1vZHVsZV9wY2lfZHJpdmVyKHR4Z2JlX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmMtOTc1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZXZmL3R4Z2JldmZfbWFpbi5jPTMxND1zdGF0aWMgREVGSU5FX1NJTVBMRV9ERVZfUE1fT1BTKHR4Z2JldmZfcG1fb3BzLCB3eHZmX3N1c3BlbmQsIHd4dmZfcmVzdW1lKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JldmYvdHhnYmV2Zl9tYWluLmMtMzE1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmV2Zi90eGdiZXZmX21haW4uYzozMTY6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIHR4Z2JldmZfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmV2Zi90eGdiZXZmX21haW4uYy0zMTctXFx0Lm5hbWUgICAgID0gS0JVSUxEX01PRE5BTUUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JldmYvdHhnYmV2Zl9tYWluLmMtMzI1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmV2Zi90eGdiZXZmX21haW4uYzozMjY6bW9kdWxlX3BjaV9kcml2ZXIodHhnYmV2Zl9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmV2Zi90eGdiZXZmX21haW4uYy0zMjctXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDAzOjU0OjAyLjMxMjgxOTI1MloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUwNjA5MDI1OTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBGZWFzaWJpbGl0eSBvZiB0aGUgV2FuZ3h1biBFdGhlcm5ldCBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCwgeWVzLCBpdCdzIGRlZmluaXRlbHkgZGVhbGluZyB3aXRoIFBDSSBkcml2ZXJzLiBTcGVjaWZpY2FsbHksIGl0J3MgdGhlIFdhbmd4dW4gRXRoZXJuZXQgZHJpdmVyLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBzaW5jZSBzeXprYWxsZXIgZG9lc24ndCBoYXZlIGFueSBlbXVsYXRlZCBoYXJkd2FyZSBmb3IgdGhlc2UgV2FuZ3h1biBQQ0kgZGV2aWNlcywgdGhlIGNvZGUgaW4gdGhpcyBkcml2ZXIgd2lsbCBiZSBjb21wbGV0ZWx5IHVucmVhY2hhYmxlIGluIGFueSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgbGlrZSBHQ0Ugb3IgUUVNVSwgdGhhdCBJJ20gbGlrZWx5IHRvIGJlIHVzaW5nIGZvciBmdXp6aW5nLiBUaGVyZWZvcmUsIGZyb20gYSBwdXJlbHkgcHJhY3RpY2FsIGZ1enppbmcgcGVyc3BlY3RpdmUsIGl0J3MgcHJvYmFibHkgbm90IHdvcnRoIHRoZSBlZmZvcnQuXG5cbkJ1dCB3YWl0LCBJIG5lZWQgdG8gYmUgYWJzb2x1dGVseSBzdXJlLiBJcyB0aGVyZSAqYW55KiBzY2VuYXJpbywgaG93ZXZlciB1bmxpa2VseSwgd2hlcmUgdGhpcyBkcml2ZXIgY291bGQgYmUgdXNlZCBpbiBhIHZpcnR1YWxpemVkIHNldHRpbmc/IE5vLCB0aGF0J3Mgbm90IHJpZ2h0LiBUaGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyLCBpbnRlbmRlZCBvbmx5IGZvciBXYW5neHVuIG5ldHdvcmsgY2FyZHMuIFVubGVzcyB3ZSBjYW4gc29tZWhvdyBjb25maWd1cmUgYSB2aXJ0dWFsIGRldmljZSB0byAqZW11bGF0ZSogdGhhdCBzcGVjaWZpYyBoYXJkd2FyZSwgdGhlIGRyaXZlciBzaW1wbHkgd29uJ3QgYmUgcHJvYmVkLiBTbywgY29uc2lkZXJpbmcgdGhhdCBmYWN0LCB0aGUgYFdvcnRoRnV6emluZ2AgZmxhZyBzaG91bGQgYmUgc2V0IHRvIGBmYWxzZWAuXG5cbk15IHJlYXNvbmluZyBpcyBzdHJhaWdodGZvcndhcmQ6IFRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYHd4X2ZlYXR1cmVzX2NoZWNrYCBmdW5jdGlvbiB3aXRoaW4gdGhlIFdhbmd4dW4gRXRoZXJuZXQgZHJpdmVyLCB3aGljaCBpcyBsb2NhdGVkIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2AuIFNpbmNlIHRoZXJlJ3Mgbm8gc29mdHdhcmUgZW11bGF0aW9uIG9mIHRoaXMgc3BlY2lmaWMgaGFyZHdhcmUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCB0aGUgY29kZSBwYXRocyB0b3VjaGVkIGJ5IHRoZSBwYXRjaCBhcmUgc2ltcGx5IG5vdCByZWFjaGFibGUgZHVyaW5nIGEgZnV6emluZyBjYW1wYWlnbi4gU3RpbGwsIEkgc2hvdWxkIGRvdWJsZS1jaGVjayB0byBtYWtlIHN1cmUgdGhlcmUgYXJlIG5vIG90aGVyIHVzZXMgb2YgYHd4X2ZlYXR1cmVzX2NoZWNrYCB0aGF0IEknbSBub3QgYXdhcmUgb2YuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ5MjAsIk91dHB1dFRva2VucyI6MjUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMDM6NTQ6MDcuMzczNzI0MDgzWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5NDc1NzUxNTIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwid3hfZmVhdHVyZXNfY2hlY2tcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmM9MzIyMz1FWFBPUlRfU1lNQk9MKHd4X2ZpeF9mZWF0dXJlcyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jLTMyMjYtI2RlZmluZSBXWF9WTEFOX01BWF9ERVBUSFxcdDhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jOjMyMjc6bmV0ZGV2X2ZlYXR1cmVzX3Qgd3hfZmVhdHVyZXNfY2hlY2soc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jLTMyMjgtXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jLTMyNzQtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmM6MzI3NTpFWFBPUlRfU1lNQk9MKHd4X2ZlYXR1cmVzX2NoZWNrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5jLTMyNzYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL2xpYnd4L3d4X2xpYi5oPTM0PW5ldGRldl9mZWF0dXJlc190IHd4X2ZpeF9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmgtMzUtXFx0XFx0XFx0XFx0ICBuZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9saWJ3eC93eF9saWIuaDozNjpuZXRkZXZfZmVhdHVyZXNfdCB3eF9mZWF0dXJlc19jaGVjayhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbGlid3gvd3hfbGliLmgtMzctXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmM9NjA5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgbmdiZV9uZXRkZXZfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jLTYxNi1cXHQubmRvX2ZpeF9mZWF0dXJlcyAgICAgICA9IHd4X2ZpeF9mZWF0dXJlcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmM6NjE3OlxcdC5uZG9fZmVhdHVyZXNfY2hlY2sgICAgID0gd3hfZmVhdHVyZXNfY2hlY2ssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jLTYxOC1cXHQubmRvX3ZhbGlkYXRlX2FkZHIgICAgICA9IGV0aF92YWxpZGF0ZV9hZGRyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9tYWluLmM9NjUyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgdHhnYmVfbmV0ZGV2X29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfbWFpbi5jLTY1OS1cXHQubmRvX2ZpeF9mZWF0dXJlcyAgICAgICA9IHd4X2ZpeF9mZWF0dXJlcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYzo2NjA6XFx0Lm5kb19mZWF0dXJlc19jaGVjayAgICAgPSB3eF9mZWF0dXJlc19jaGVjayxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX21haW4uYy02NjEtXFx0Lm5kb192YWxpZGF0ZV9hZGRyICAgICAgPSBldGhfdmFsaWRhdGVfYWRkcixcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMDM6NTQ6MDkuMzIxMzA0NjI0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzI2Nzg3MDY0NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQncyBhc3Nlc3NtZW50OlxuXG4qKldvcnRoRnV6emluZyBEZWNpc2lvbioqXG5cbkFscmlnaHQsIHNvIHRoZSBhbmFseXNpcyBib2lscyBkb3duIHRvIHRoaXM6IFRoaXMgY29kZSBzbmlwcGV0LCB3aGF0ZXZlciBpdCBpcywgb25seSBzZWVtcyB0byBiZSByZWxldmFudCB3aXRoaW4gdGhlIGBuZ2JlYCBhbmQgYHR4Z2JlYCBkcml2ZXJzLiBBbmQgd2UncmUgdGFsa2luZyBhYm91dCBXYW5neHVuIFBDSSBkcml2ZXJzIHNwZWNpZmljYWxseS4gR2l2ZW4gdGhhdCBjb250ZXh0LCBJJ20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJdCBkb2Vzbid0IGFwcGVhciB0byBiZSBhIGNyaXRpY2FsIGFyZWEgcmlwZSBmb3IgdnVsbmVyYWJpbGl0eSBkaXNjb3ZlcnkgYWNyb3NzIGEgYnJvYWRlciByYW5nZSBvZiBkcml2ZXJzIG9yIGZ1bmN0aW9uYWxpdGllcywgbWFraW5nIGZ1enppbmcgYSBsb3dlciBwcmlvcml0eS4gTXkgcmVzb3VyY2VzIGFyZSBiZXR0ZXIgc3BlbnQgZWxzZXdoZXJlIGZvciBub3cuIFRoaXMgZGVjaXNpb24gaXMgYmFzZWQgb24gYSBuYXJyb3cgc2NvcGUgb2YgdGhpcyBjb2RlJ3MgdXNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MjcyLCJPdXRwdXRUb2tlbnMiOjEwNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDAzOjU0OjEyLjU4OTE3NzU1WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjI1ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGB3eF9mZWF0dXJlc19jaGVja2AgZnVuY3Rpb24gaW4gdGhlIFdhbmd4dW4gRXRoZXJuZXQgZHJpdmVyIChgZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9gKS4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIsIGFuZCBzaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGB3eF9mZWF0dXJlc19jaGVja2AgZnVuY3Rpb24gaW4gdGhlIFdhbmd4dW4gRXRoZXJuZXQgZHJpdmVyIChgZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9gKS4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSSBkcml2ZXIsIGFuZCBzaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowdf7gp[1] Phase: Running StartedAt: 2026-07-11 03:54:24 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdf7gp[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-11 03:54:24 +0000 UTC FinishedAt: 2026-07-11 03:54:38 +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,}