Name: series-workflownc9hw Phase: Failed StartedAt: 2026-06-29 08:20:24 +0000 UTC FinishedAt: 2026-06-29 09:12:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflownc9hw[0] Phase: Succeeded StartedAt: 2026-06-29 08:20:24 +0000 UTC FinishedAt: 2026-06-29 09:09:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflownc9hw[0].run-triage Phase: Succeeded StartedAt: 2026-06-29 08:20:24 +0000 UTC FinishedAt: 2026-06-29 09:09:59 +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+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjA4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBTR0kgSU9DMyBFdGhlcm5ldCBkcml2ZXIsIHdoaWNoIGlzIHNwZWNpZmljIHRvIFNHSSBoYXJkd2FyZSBhbmQgZGVwZW5kcyBvbiBNSVBTIGFyY2hpdGVjdHVyZS4gSXQgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgeDg2XzY0L2FybTY0IFFFTVUvR0NFKSBhbmQgY2Fubm90IGJlIHRlc3RlZCBieSB0aGUgc3l6a2FsbGVyIFBDSSBmdXp6ZXIgZHVlIHRvIGl0cyBzdHJpY3QgTUlQUyBkZXBlbmRlbmN5LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowODwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGUxYzcxYWZmNDBjMDhhMGQ1ODFkN2MwMWY1MGM0YzNhNmIyMjk5YWVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1biAyOSAwOTowODoyNyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvaW9jMy1ldGguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NnaS9pb2MzLWV0aC5jXG5pbmRleCAzOTczMTA2OWQ5OWUwYi4uMjYxZjJkMzVkNTc5NzMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvaW9jMy1ldGguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2dpL2lvYzMtZXRoLmNcbkBAIC0xMDYxLDkgJiM0MzsxMDYxLDkgQEAgc3RhdGljIG5ldGRldl90eF90IGlvYzNfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuIFx0XHRkMSA9IGRtYV9tYXBfc2luZ2xlKGlwLVx1MDAzZWRtYV9kZXYsIHNrYi1cdTAwM2VkYXRhLCBzMSwgRE1BX1RPX0RFVklDRSk7XG4gXHRcdGlmIChkbWFfbWFwcGluZ19lcnJvcihpcC1cdTAwM2VkbWFfZGV2LCBkMSkpXG4gXHRcdFx0Z290byBkcm9wX3BhY2tldDtcbi1cdFx0ZDIgPSBkbWFfbWFwX3NpbmdsZShpcC1cdTAwM2VkbWFfZGV2LCAodm9pZCAqKWIyLCBzMSwgRE1BX1RPX0RFVklDRSk7XG4mIzQzO1x0XHRkMiA9IGRtYV9tYXBfc2luZ2xlKGlwLVx1MDAzZWRtYV9kZXYsICh2b2lkICopYjIsIHMyLCBETUFfVE9fREVWSUNFKTtcbiBcdFx0aWYgKGRtYV9tYXBwaW5nX2Vycm9yKGlwLVx1MDAzZWRtYV9kZXYsIGQyKSkge1xuLVx0XHRcdGRtYV91bm1hcF9zaW5nbGUoaXAtXHUwMDNlZG1hX2RldiwgZDEsIGxlbiwgRE1BX1RPX0RFVklDRSk7XG4mIzQzO1x0XHRcdGRtYV91bm1hcF9zaW5nbGUoaXAtXHUwMDNlZG1hX2RldiwgZDEsIHMxLCBETUFfVE9fREVWSUNFKTtcbiBcdFx0XHRnb3RvIGRyb3BfcGFja2V0O1xuIFx0XHR9XG4gXHRcdGRlc2MtXHUwMDNlcDEgICAgID0gY3B1X3RvX2JlNjQoaW9jM19tYXAoZDEsIFBDSTY0X0FUVFJfUFJFRikpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjA4PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBTR0kgSU9DMyBFdGhlcm5ldCBkcml2ZXIsIHdoaWNoIGlzIHNwZWNpZmljIHRvIFNHSSBoYXJkd2FyZSBhbmQgZGVwZW5kcyBvbiBNSVBTIGFyY2hpdGVjdHVyZS4gSXQgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgeDg2XzY0L2FybTY0IFFFTVUvR0NFKSBhbmQgY2Fubm90IGJlIHRlc3RlZCBieSB0aGUgc3l6a2FsbGVyIFBDSSBmdXp6ZXIgZHVlIHRvIGl0cyBzdHJpY3QgTUlQUyBkZXBlbmRlbmN5LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZTFjNzFhZmY0MGMwOGEwZDU4MWQ3YzAxZjUwYzRjM2E2YjIyOTlhZQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gSnVuIDI5IDA5OjA4OjI3IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2dpL2lvYzMtZXRoLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvaW9jMy1ldGguYwppbmRleCAzOTczMTA2OWQ5OWUwYi4uMjYxZjJkMzVkNTc5NzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NnaS9pb2MzLWV0aC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NnaS9pb2MzLWV0aC5jCkBAIC0xMDYxLDkgJiM0MzsxMDYxLDkgQEAgc3RhdGljIG5ldGRldl90eF90IGlvYzNfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCQlkMSA9IGRtYV9tYXBfc2luZ2xlKGlwLSZndDtkbWFfZGV2LCBza2ItJmd0O2RhdGEsIHMxLCBETUFfVE9fREVWSUNFKTsKIAkJaWYgKGRtYV9tYXBwaW5nX2Vycm9yKGlwLSZndDtkbWFfZGV2LCBkMSkpCiAJCQlnb3RvIGRyb3BfcGFja2V0OwotCQlkMiA9IGRtYV9tYXBfc2luZ2xlKGlwLSZndDtkbWFfZGV2LCAodm9pZCAqKWIyLCBzMSwgRE1BX1RPX0RFVklDRSk7CiYjNDM7CQlkMiA9IGRtYV9tYXBfc2luZ2xlKGlwLSZndDtkbWFfZGV2LCAodm9pZCAqKWIyLCBzMiwgRE1BX1RPX0RFVklDRSk7CiAJCWlmIChkbWFfbWFwcGluZ19lcnJvcihpcC0mZ3Q7ZG1hX2RldiwgZDIpKSB7Ci0JCQlkbWFfdW5tYXBfc2luZ2xlKGlwLSZndDtkbWFfZGV2LCBkMSwgbGVuLCBETUFfVE9fREVWSUNFKTsKJiM0MzsJCQlkbWFfdW5tYXBfc2luZ2xlKGlwLSZndDtkbWFfZGV2LCBkMSwgczEsIERNQV9UT19ERVZJQ0UpOwogCQkJZ290byBkcm9wX3BhY2tldDsKIAkJfQogCQlkZXNjLSZndDtwMSAgICAgPSBjcHVfdG9fYmU2NChpb2MzX21hcChkMSwgUENJNjRfQVRUUl9QUkVGKSk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjA4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwNTMKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAyNzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTmV0d29yayBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvaW9jMy1ldGguY2AuIEl0IHNlZW1zIHRvIG1vZGlmeSB0aGUgYGlvYzNfc3RhcnRfeG1pdGAgZnVuY3Rpb24sIHdoaWNoIGlzIGludGVyZXN0aW5nLiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIGFwcGVhcnMgdG8gYmUgYSBETUEgbWFwcGluZyBzaXplIGNvcnJlY3Rpb24uIFNwZWNpZmljYWxseSwgaXQgc2VlbXMgbGlrZSB0aGVyZSB3YXMgYSBtaXNtYXRjaCBiZXR3ZWVuIHRoZSBzaXplIHVzZWQgZm9yIHRoZSBETUEgbWFwcGluZyAoYHMyYCBpbiB0aGUgY29ycmVjdGVkIGNvZGUpIGFuZCB0aGUgc2l6ZSB1c2VkIGZvciB1bm1hcHBpbmcgaW4gZXJyb3IgY29uZGl0aW9uIChgczFgIGluIHRoZSBvcmlnaW5hbCBjb2RlKSwgbm93IGNvcnJlY3RseSB1cGRhdGVkIHRvIHVzZSBgczFgLiBUaGF0JiMzOTtzIGEgY2xhc3NpYyBETUEgaXNzdWUg4oCTIG1hcHBpbmcgYW5kIHVubWFwcGluZyB3aXRoIGluY29uc2lzdGVudCBzaXplcyBjYW4gbGVhZCB0byBhbGwgc29ydHMgb2YgRE1BIGNvcnJ1cHRpb24uIEl0JiMzOTtzIGEgY2xlYXIgZnVuY3Rpb25hbCBmaXgsIG5vIHR3byB3YXlzIGFib3V0IGl0LgoKTm93LCBJIG5lZWQgdG8gY29uc2lkZXIgdGhlIGNvbnRleHQuIFRoaXMgaXMgYW4gU0dJIElPQzMgRXRoZXJuZXQgZHJpdmVyLiBUaGUgSU9DMyBpcyBhIFBDSSBkZXZpY2UsIGJ1dCBteSBjb25jZXJuIG5vdyBpcyB3aGV0aGVyIGl0JiMzOTtzIHRpZWQgdG8gU0dJJiMzOTtzIHNwZWNpZmljIGFyY2hpdGVjdHVyZXMuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSByZWFjaCBvZiB0aGlzIGRyaXZlciwgZXNwZWNpYWxseSB3aXRoIHRoZSBwcmV2YWxlbmNlIG9mIHZpcnR1YWxpemF0aW9uLiBNeSBndXQgdGVsbHMgbWUgdGhpcyBjb3VsZCBiZSBhIG5pY2hlIGRyaXZlci4gVG8gZmlndXJlIG91dCBpZiB0aGlzIGlzIGFjdHVhbGx5IGEgZHJpdmVyIG9mIGludGVyZXN0IHRvIG1lLCBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoaXMgZHJpdmVyIChgZHJpdmVycy9uZXQvZXRoZXJuZXQvc2dpL0tjb25maWdgKS4gVGhhdCYjMzk7bGwgcmV2ZWFsIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgd2hpY2ggc2hvdWxkIGdpdmUgbWUgYSBiZXR0ZXIgaGFuZGxlIG9uIHRoZSBkcml2ZXImIzM5O3MgdGFyZ2V0IHBsYXRmb3JtIGFuZCB3aGV0aGVyIGl0IG1pZ2h0IGJlIGVuY291bnRlcmVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIFRoYXQgd2lsbCBhbGxvdyBtZSB0byBnaXZlIGEgc291bmQgcmVjb21tZW5kYXRpb24gYWJvdXQgdGhpcyBwYXRjaC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtTR0lfSU9DM19FVEgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvS2NvbmZpZz0xOD1pZiBORVRfVkVORE9SX1NHSVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2dpL0tjb25maWctMTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvS2NvbmZpZzoyMDpjb25maWcgU0dJX0lPQzNfRVRIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvS2NvbmZpZy0yMS1cdGJvb2wgXCYjMzQ7U0dJIElPQzMgRXRoZXJuZXRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODAxCgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcy4gSGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3Mgb24gdGhpcyBzcGVjaWZpYyBwcm9tcHQsIGZvcm1hdHRlZCBhcyByZXF1ZXN0ZWQ6CgoqKkRlY29uc3RydWN0aW5nIHRoZSBLY29uZmlnIEludmVzdGlnYXRpb24qKgoKQWxyaWdodCwgdGhlIHVzZXIgd2FudHMgbWUgdG8gZXNzZW50aWFsbHkgYWN0IGFzIGEgY29uZHVpdCwgb3V0bGluaW5nIHRoZSBwcm9jZXNzIG9mIGhvdyBJJiMzOTtkIGFwcHJvYWNoIHRoaXMgdGFzay4gRmlyc3QsIEkmIzM5O2Qgd2FudCB0byBnZXQgYSBjb21wbGV0ZSB2aWV3IG9mIHRoZSBTR0lfSU9DM19FVEggS2NvbmZpZyBlbnRyeS4gSnVzdCB0aGUgYmFyZSBtaW5pbXVtIGlzbiYjMzk7dCBlbm91Z2g7IEkgbmVlZCB0aGUgZW50aXJlIHRoaW5nLiBJJiMzOTtkIGJlIGxvb2tpbmcgZm9yIHRoZSBkZXBlbmRlbmNpZXMsIHRoZSBkZWZhdWx0IHZhbHVlLCB0aGUgaGVscCB0ZXh0LCBhbmQgYW55IGFzc29jaWF0ZWQgc3ltYm9scyBvciBkZWZpbml0aW9ucy4gVGhpcyBpcyB0aGUgYmVkcm9jazsgd2l0aG91dCBpdCwgSSYjMzk7bSBmbHlpbmcgYmxpbmQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDk6MDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDE4LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgMTg6XHRpZiBORVRfVkVORE9SX1NHSVxuICAxOTpcdFxuICAyMDpcdGNvbmZpZyBTR0lfSU9DM19FVEhcbiAgMjE6XHRcdGJvb2wgXCYjMzQ7U0dJIElPQzMgRXRoZXJuZXRcJiMzNDtcbiAgMjI6XHRcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBTR0lfTUZEX0lPQzNcbiAgMjM6XHRcdHNlbGVjdCBDUkMxNlxuICAyNDpcdFx0c2VsZWN0IENSQzMyXG4gIDI1Olx0XHRzZWxlY3QgTUlJXG4gIDI2Olx0XHRoZWxwXG4gIDI3Olx0XHQgIElmIHlvdSBoYXZlIGEgbmV0d29yayAoRXRoZXJuZXQpIGNhcmQgb2YgdGhpcyB0eXBlLCBzYXkgWSBoZXJlLlxuICAyODpcdFxuICAyOTpcdGNvbmZpZyBTR0lfTzJNQUNFX0VUSFxuICAzMDpcdFx0dHJpc3RhdGUgXCYjMzQ7U0dJIE8yIE1BQ0UgRmFzdCBFdGhlcm5ldCBzdXBwb3J0XCYjMzQ7XG4gIDMxOlx0XHRkZXBlbmRzIG9uIFNHSV9JUDMyPXlcbiAgMzI6XHRcbiAgMzM6XHRlbmRpZiAjIE5FVF9WRU5ET1JfU0dJXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDk6MDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzIxMgoJCQkJCQkJb3V0cHV0OiAyOQoJCQkJCQkJdGhvdWdodHM6IDMwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd24gbWVudGFsIHByb2Nlc3MsIGdpdmVuIG15IGV4cGVydGlzZToKCioqRGl2aW5nIGludG8gdGhlIERlcGVuZGVuY2llcyoqCgpBbHJpZ2h0LCBzbyB0aGUgYXJjaGl0ZWN0dXJlIEkmIzM5O20gd29ya2luZyB3aXRoIGlzIGNsZWFybHkgaW5mbHVlbmNlZCBieSB0aGUgaW50ZXJwbGF5IGJldHdlZW4gYFBDSWAgYW5kIGBTR0lfTUZEX0lPQzNgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIGNvbmRpdGlvbmFsIGRlcGVuZGVuY3kuIFRoZSBjb3JlIG9mIHRoaXMgaXNzdWUgc2VlbXMgdG8gaGluZ2Ugb24gaG93IGBTR0lfTUZEX0lPQzNgIGlzIGNvbmZpZ3VyZWQuIFRoYXTigJlzIG15IGltbWVkaWF0ZSBmb2N1cy4gSSBuZWVkIHRvIHF1aWNrbHkgZXN0YWJsaXNoICppdHMqIHN0YXRlIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBmb3IgdGhlIG92ZXJhbGwgUENJIGNvbmZpZ3VyYXRpb24uIExldCYjMzk7cyBzdGFydCBieSBkaWdnaW5nIGludG8gdGhlIGRldGFpbHMgb2YgYFNHSV9NRkRfSU9DM2AuIEtub3dpbmcgaXRzIHN0YXR1cyB3aWxsIGlsbHVtaW5hdGUgdGhlIHBhdGggZm9yd2FyZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgU0dJX01GRF9JT0MzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbWZkL0tjb25maWc9MjQzMz1jb25maWcgUkFWRV9TUF9DT1JFXG4tLVxuZHJpdmVycy9tZmQvS2NvbmZpZy0yNDQwLVxuZHJpdmVycy9tZmQvS2NvbmZpZzoyNDQxOmNvbmZpZyBTR0lfTUZEX0lPQzNcbmRyaXZlcnMvbWZkL0tjb25maWctMjQ0Mi1cdGJvb2wgXCYjMzQ7U0dJIElPQzMgY29yZSBkcml2ZXJcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNTE2CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipOYXZpZ2F0aW5nIHRoZSBLY29uZmlnIExhYnlyaW50aCoqCgpPa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIFRvIGdldCBhIGJldHRlciBoYW5kbGUgb24gdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhpbmdzLCBteSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGdvIHN0cmFpZ2h0IHRvIHRoZSBzb3VyY2UuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2YgaG93IHRoaW5ncyBhcmUgY29uZmlndXJlZCByZWxhdGVkIHRvIGRyaXZlcnMvbWZkLiBMaW5lIDI0NDEgaW4gdGhlIGBLY29uZmlnYCBmaWxlIGluIHRoYXQgZGlyZWN0b3J5IHNob3VsZCBnaXZlIG1lIGEgZ29vZCBqdW1waW5nLW9mZiBwb2ludC4gSG9wZWZ1bGx5LCB0aGF0IHdpbGwgY29udGFpbiB0aGUgcmVsZXZhbnQgc2VsZWN0aW9uIGNyaXRlcmlhLCBkZXBlbmRlbmNpZXMsIG9yIG1heWJlIGV2ZW4gYSBncm91cGluZyBvZiByZWxhdGVkIG9wdGlvbnMuIFVuZGVyc3RhbmRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB3aWxsIHByb3ZpZGUgdmFsdWFibGUgY29udGV4dCBmb3Igd2hhdGV2ZXIgcHJvYmxlbSBvciB0YXNrIEkgYW0gYWRkcmVzc2luZy4gVGltZSB0byBjcmFjayBvcGVuIHRoYXQgS2NvbmZpZyBmaWxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbWZkL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyNDQwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzI0NDA6XHRcbjI0NDE6XHRjb25maWcgU0dJX01GRF9JT0MzXG4yNDQyOlx0XHRib29sIFwmIzM0O1NHSSBJT0MzIGNvcmUgZHJpdmVyXCYjMzQ7XG4yNDQzOlx0XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgTUlQUyBcdTAwMjZcdTAwMjYgNjRCSVRcbjI0NDQ6XHRcdHNlbGVjdCBNRkRfQ09SRVxuMjQ0NTpcdFx0aGVscFxuMjQ0NjpcdFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIGJhc2ljIHN1cHBvcnQgZm9yIHRoZSBTR0kgSU9DMy1iYXNlZFxuMjQ0NzpcdFx0ICBjb250cm9sbGVyIGNhcmRzLiAgVGhpcyBvcHRpb24gZG9lcyBub3QgZW5hYmxlIGFueSBzcGVjaWZpY1xuMjQ0ODpcdFx0ICBmdW5jdGlvbnMgb24gc3VjaCBhIGNhcmQsIGJ1dCBwcm92aWRlcyBuZWNlc3NhcnkgaW5mcmFzdHJ1Y3R1cmVcbjI0NDk6XHRcdCAgZm9yIG90aGVyIGRyaXZlcnMgdG8gdXRpbGl6ZS5cbjI0NTA6XHRcbjI0NTE6XHRcdCAgSWYgeW91IGhhdmUgYW4gU0dJIE9yaWdpbiwgT2N0YW5lLCBvciBhIFBDSSBJT0MzIGNhcmQsXG4yNDUyOlx0XHQgIHRoZW4gc2F5IFkuIE90aGVyd2lzZSBzYXkgTi5cbjI0NTM6XHRcbjI0NTQ6XHRjb25maWcgTUZEX0lOVEVMX00xMF9CTUNfQ09SRVxuMjQ1NTpcdCAgICAgICAgdHJpc3RhdGVcbjI0NTY6XHQgICAgICAgIHNlbGVjdCBNRkRfQ09SRVxuMjQ1NzpcdCAgICAgICAgc2VsZWN0IFJFR01BUFxuMjQ1ODpcdCAgICAgICAgZGVmYXVsdCBuXG4yNDU5Olx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjA4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwMTYKCQkJCQkJCW91dHB1dDogMTA1CgkJCQkJCQl0aG91Z2h0czogNzkxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgRmVhc2liaWxpdHkgQW5hbHlzaXMqKgoKT2theSwgc28gdGhpcyBpcyBhIFBDSSBkcml2ZXIsIGFuZCBpdCYjMzk7cyBjb250aW5nZW50IG9uIGBQQ0kgJmFtcDsmYW1wOyBNSVBTICZhbXA7JmFtcDsgNjRCSVRgLiBUaGF0IGltbWVkaWF0ZWx5IHRocm93cyB1cCBhIGZsYWcgYmVjYXVzZSBpdCYjMzk7cyBNSVBTLXNwZWNpZmljLCBtZWFuaW5nIEkgd29uJiMzOTt0IGJlIGFibGUgdG8gZnV6eiBpdCBvbiBteSBzdGFuZGFyZCB4ODZfNjQgb3IgYXJtNjQgVk1zLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtkb2VzIHN5emthbGxlciBldmVuIHN1cHBvcnQgdGhpcz8mIzM0OyBJIGtub3cgc3l6a2FsbGVyICpkb2VzKiBzdXBwb3J0IE1JUFMgaW4gZ2VuZXJhbCwgYnV0IGRvZXMgaXQgZnV6eiBNSVBTIGJ5IGRlZmF1bHQ/IE5vLCBub3QgcmVhbGx5LgoKQW5kIHRoZW4gdGhlcmUmIzM5O3MgdGhhdCBzeXprYWxsZXIgaW5zdHJ1Y3Rpb24sIHRoZSAmIzM0O1dvcnRoRnV6emluZz1mYWxzZSYjMzQ7IGNyaXRlcmlhOyAmIzM0O0NvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZS4mIzM0OyBTbywgSSBzdGFydCB0byB0aGluaywgJiMzNDtXYWl0LCBjYW4gUUVNVSBlbXVsYXRlIFNHSSBJT0MzPyYjMzQ7IEkgbmVlZCB0byBjaGVjayBpZiBRRU1VIGV2ZW4gaGFzIFNHSSBJT0MzIGVtdWxhdGlvbiBhdmFpbGFibGUuCgpXaGlsZSBRRU1VIGhhcyBzb21lIE1JUFMgZW11bGF0aW9uLCBTR0kgSU9DMyBpcyBhIHZlcnkgc3BlY2lmaWMgUENJIGRldmljZS4gSSYjMzk7bSBnb2luZyB0byBzZWFyY2ggZm9yIGFueSBtZW50aW9uIG9mIElPQzMgaW4gUUVNVS4gQWx0ZXJuYXRpdmVseSwgcGVyaGFwcyBpdCYjMzk7cyBhIGdlbmVyaWMgUENJIGRldmljZSB0aGF0IEkgY2FuIGZ1enogdGhyb3VnaCBnZW5lcmljIFBDSSBmdXp6aW5nPwoKVGhlbiBJIHJlbWVtYmVyIHRoZSBQQ0kgZnV6emVyIGluIHN5emthbGxlci4gVGhhdCAqY2FuKiBmdXp6IGFueSBQQ0kgZGV2aWNlIGJ5IGVpdGhlciB2aXJ0dWFsIFBDSSBob3N0IGNvbnRyb2xsZXIgZW11bGF0aW9uIG9yIGRpcmVjdCBpbmplY3Rpb24gb2YgUENJIGNvbmZpZyBzcGFjZSBhbmQgTU1JTyByZWFkcy93cml0ZXMuIEdyZWF0ISBCdXQsIHVoLW9oLiBUaGF0IFBDSSBmdXp6ZXIgd29ya3MgcHJpbWFyaWx5IG9uIHg4Nl82NCwgbWF5YmUgYXJtNjQuIFRoaXMgZHJpdmVyICpkZXBlbmRzKiBvbiBNSVBTLiBJZiBpdCBkZXBlbmRzIG9uIE1JUFMgYW5kIHRoZSBQQ0kgZnV6emVyIHdvcmtzIG9uIHg4Nl82NCwgdGhlbiBpdCB3b24mIzM5O3QgYmUgY29tcGlsZWQgZm9yIHg4Nl82NCwgcmlnaHQ/CgpBbHJpZ2h0LCBjYW4gSSBmb3JjZSB0aGUgY29tcGlsYXRpb24gd2l0aCBDT01QSUxFX1RFU1Q/IEkmIzM5O2xsIGNoZWNrIGlmIFNHSV9NRkRfSU9DMyBvciBTR0lfSU9DM19FVEggaGFzIHRoYXQgc2V0LiBOb3BlLCBpdCBkZXBlbmRzIG9uIGBQQ0kgJmFtcDsmYW1wOyBNSVBTICZhbXA7JmFtcDsgNjRCSVRgLiBTbywgaXQmIzM5O3MgTUlQUy1vbmx5LgoKT2theSwgc28gc3l6a2FsbGVyIHN1cHBvcnRzIE1JUFMsIGJ1dCBkb2VzIGl0IHN1cHBvcnQgUENJIGZ1enppbmcgb24gTUlQUz8gSSBkb24mIzM5O3QgdGhpbmsgaXQgZG9lcy4KClRoZW4sIEkgY29uc2lkZXIgaWYgdGhpcyBpcyBhIG5ldHdvcmsgZHJpdmVyLiBJZiB0aGUgZGV2aWNlIGlzIHByZXNlbnQsIEkgY2FuIHJlYWNoIGl0LCBidXQuLi4gdGhlIGRldmljZSBpcyBTR0kgSU9DMywgd2hpY2ggaXMgc3BlY2lmaWMgaGFyZHdhcmUuIFVubGVzcyBRRU1VIGVtdWxhdGVzIGl0LCBJJiMzOTttIG91dCBvZiBsdWNrLiBTbywgYWdhaW4sIGJhY2sgdG8gbXkgcXVlc3Rpb24uLi4gZG9lcyBRRU1VIGVtdWxhdGUgU0dJIElPQzM/CgpJJiMzOTttIGFsc28gZ29pbmcgdG8gY2hlY2sgaWYgdGhlcmUgaXMgYW55IHN5emthbGxlciBzdXBwb3J0IGZvciB0aGlzIHNwZWNpZmljIGRldmljZS4gTXkgZXhwZXJpZW5jZSBpcyB0aGF0IGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlcnMsIHRoYXQgYXJlbiYjMzk7dCBlbXVsYXRlZCBhbmQgZG9uJiMzOTt0IGhhdmUgQ09NUElMRV9URVNULCBhcmUgYmFzaWNhbGx5IHVucmVhY2hhYmxlLgoKVGhlcmVmb3JlLCBzaW5jZSBpdCBzZWVtcyB1bnJlYWNoYWJsZSwgbXkgY29uY2x1c2lvbiBpcyBXb3J0aEZ1enppbmc9ZmFsc2UuIEkmIzM5O20gZG91YmxlLWNoZWNraW5nLCBidXQgdGhpcyBkcml2ZXIgaXMgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L3NnaS9pb2MzLWV0aC5jYC4gSXQmIzM5O3MgYSBQQ0kgZGV2aWNlLCB3aGljaCAqc2hvdWxkKiBtZWFuIHRoZSBQQ0kgZnV6emVyIGlzIHJlbGV2YW50LCBidXQgaXQgc3RpbGwgcmVxdWlyZXMgdGhlIGRyaXZlciB0byBiZSBjb21waWxlZC4gU2luY2UgaXQgZGVwZW5kcyBvbiBNSVBTLCB0aGF0IHg4Nl82NCBQQ0kgZnV6emVyIGlzbiYjMzk7dCBnb2luZyB0byBmaW5kIGl0LiBOb3csIGlmIEkgKndlcmUqIHRvIHJ1biBzeXprYWxsZXIgb24gYSBNSVBTIG1hY2hpbmUuLi4gbWF5YmUgaXQgY291bGQgYmUgZnV6emVkLCBidXQgdGhhdCYjMzk7cyBhIHByZXR0eSByYXJlIHNldHVwLCBhbmQgaXQgcHJvYmFibHkgd29uJiMzOTt0IGhhdmUgdGhlIFBDSSBmdXp6ZXIgZW5hYmxlZCBhbnl3YXkuCgpVbHRpbWF0ZWx5LCB0aGlzIGRyaXZlciBpcyBmb3IgdmVyeSBzcGVjaWZpYyBTR0kgaGFyZHdhcmUgKFNHSSBJT0MzKSwgYW5kIGl0JiMzOTtzIE1JUFMtc3BlY2lmaWMuIFRoaXMgaXMgbm90IGdvaW5nIHRvIGJlIHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuICoqV29ydGhGdXp6aW5nPWZhbHNlLioqCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFNHSSBJT0MzIEV0aGVybmV0IGRyaXZlciwgd2hpY2ggaXMgc3BlY2lmaWMgdG8gU0dJIGhhcmR3YXJlIGFuZCBkZXBlbmRzIG9uIE1JUFMgYXJjaGl0ZWN0dXJlLiBJdCBpcyBub3QgcmVhY2hhYmxlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSB4ODZfNjQvYXJtNjQgUUVNVS9HQ0UpIGFuZCBjYW5ub3QgYmUgdGVzdGVkIGJ5IHRoZSBzeXprYWxsZXIgUENJIGZ1enplciBkdWUgdG8gaXRzIHN0cmljdCBNSVBTIGRlcGVuZGVuY3kuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgU0dJIElPQzMgRXRoZXJuZXQgZHJpdmVyLCB3aGljaCBpcyBzcGVjaWZpYyB0byBTR0kgaGFyZHdhcmUgYW5kIGRlcGVuZHMgb24gTUlQUyBhcmNoaXRlY3R1cmUuIEl0IGlzIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIHg4Nl82NC9hcm02NCBRRU1VL0dDRSkgYW5kIGNhbm5vdCBiZSB0ZXN0ZWQgYnkgdGhlIHN5emthbGxlciBQQ0kgZnV6emVyIGR1ZSB0byBpdHMgc3RyaWN0IE1JUFMgZGVwZW5kZW5jeS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowODoyOS4wNTUxNzI2NloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMyNjQ1NTcxMjYxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgU0dJIElPQzMgRXRoZXJuZXQgZHJpdmVyLCB3aGljaCBpcyBzcGVjaWZpYyB0byBTR0kgaGFyZHdhcmUgYW5kIGRlcGVuZHMgb24gTUlQUyBhcmNoaXRlY3R1cmUuIEl0IGlzIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIHg4Nl82NC9hcm02NCBRRU1VL0dDRSkgYW5kIGNhbm5vdCBiZSB0ZXN0ZWQgYnkgdGhlIHN5emthbGxlciBQQ0kgZnV6emVyIGR1ZSB0byBpdHMgc3RyaWN0IE1JUFMgZGVwZW5kZW5jeS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjA4OjI5LjA1NTE4MTA2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3OTU0MzQzNzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBlMWM3MWFmZjQwYzA4YTBkNTgxZDdjMDFmNTBjNGMzYTZiMjI5OWFlXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gSnVuIDI5IDA5OjA4OjI3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NnaS9pb2MzLWV0aC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2dpL2lvYzMtZXRoLmNcXG5pbmRleCAzOTczMTA2OWQ5OWUwYi4uMjYxZjJkMzVkNTc5NzMgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2dpL2lvYzMtZXRoLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvaW9jMy1ldGguY1xcbkBAIC0xMDYxLDkgKzEwNjEsOSBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaW9jM19zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuIFxcdFxcdGQxID0gZG1hX21hcF9zaW5nbGUoaXAtXFx1MDAzZWRtYV9kZXYsIHNrYi1cXHUwMDNlZGF0YSwgczEsIERNQV9UT19ERVZJQ0UpO1xcbiBcXHRcXHRpZiAoZG1hX21hcHBpbmdfZXJyb3IoaXAtXFx1MDAzZWRtYV9kZXYsIGQxKSlcXG4gXFx0XFx0XFx0Z290byBkcm9wX3BhY2tldDtcXG4tXFx0XFx0ZDIgPSBkbWFfbWFwX3NpbmdsZShpcC1cXHUwMDNlZG1hX2RldiwgKHZvaWQgKiliMiwgczEsIERNQV9UT19ERVZJQ0UpO1xcbitcXHRcXHRkMiA9IGRtYV9tYXBfc2luZ2xlKGlwLVxcdTAwM2VkbWFfZGV2LCAodm9pZCAqKWIyLCBzMiwgRE1BX1RPX0RFVklDRSk7XFxuIFxcdFxcdGlmIChkbWFfbWFwcGluZ19lcnJvcihpcC1cXHUwMDNlZG1hX2RldiwgZDIpKSB7XFxuLVxcdFxcdFxcdGRtYV91bm1hcF9zaW5nbGUoaXAtXFx1MDAzZWRtYV9kZXYsIGQxLCBsZW4sIERNQV9UT19ERVZJQ0UpO1xcbitcXHRcXHRcXHRkbWFfdW5tYXBfc2luZ2xlKGlwLVxcdTAwM2VkbWFfZGV2LCBkMSwgczEsIERNQV9UT19ERVZJQ0UpO1xcbiBcXHRcXHRcXHRnb3RvIGRyb3BfcGFja2V0O1xcbiBcXHRcXHR9XFxuIFxcdFxcdGRlc2MtXFx1MDAzZXAxICAgICA9IGNwdV90b19iZTY0KGlvYzNfbWFwKGQxLCBQQ0k2NF9BVFRSX1BSRUYpKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MDg6MjkuODUxMzIyMDNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxODQ5NDEyNjczLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgU0dJIElPQzMgRXRoZXJuZXQgZHJpdmVyLCB3aGljaCBpcyBzcGVjaWZpYyB0byBTR0kgaGFyZHdhcmUgYW5kIGRlcGVuZHMgb24gTUlQUyBhcmNoaXRlY3R1cmUuIEl0IGlzIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIHg4Nl82NC9hcm02NCBRRU1VL0dDRSkgYW5kIGNhbm5vdCBiZSB0ZXN0ZWQgYnkgdGhlIHN5emthbGxlciBQQ0kgZnV6emVyIGR1ZSB0byBpdHMgc3RyaWN0IE1JUFMgZGVwZW5kZW5jeS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZTFjNzFhZmY0MGMwOGEwZDU4MWQ3YzAxZjUwYzRjM2E2YjIyOTlhZVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVuIDI5IDA5OjA4OjI3IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2dpL2lvYzMtZXRoLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvaW9jMy1ldGguY1xuaW5kZXggMzk3MzEwNjlkOTllMGIuLjI2MWYyZDM1ZDU3OTczIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2dpL2lvYzMtZXRoLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NnaS9pb2MzLWV0aC5jXG5AQCAtMTA2MSw5ICsxMDYxLDkgQEAgc3RhdGljIG5ldGRldl90eF90IGlvYzNfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuIFx0XHRkMSA9IGRtYV9tYXBfc2luZ2xlKGlwLVx1MDAzZWRtYV9kZXYsIHNrYi1cdTAwM2VkYXRhLCBzMSwgRE1BX1RPX0RFVklDRSk7XG4gXHRcdGlmIChkbWFfbWFwcGluZ19lcnJvcihpcC1cdTAwM2VkbWFfZGV2LCBkMSkpXG4gXHRcdFx0Z290byBkcm9wX3BhY2tldDtcbi1cdFx0ZDIgPSBkbWFfbWFwX3NpbmdsZShpcC1cdTAwM2VkbWFfZGV2LCAodm9pZCAqKWIyLCBzMSwgRE1BX1RPX0RFVklDRSk7XG4rXHRcdGQyID0gZG1hX21hcF9zaW5nbGUoaXAtXHUwMDNlZG1hX2RldiwgKHZvaWQgKiliMiwgczIsIERNQV9UT19ERVZJQ0UpO1xuIFx0XHRpZiAoZG1hX21hcHBpbmdfZXJyb3IoaXAtXHUwMDNlZG1hX2RldiwgZDIpKSB7XG4tXHRcdFx0ZG1hX3VubWFwX3NpbmdsZShpcC1cdTAwM2VkbWFfZGV2LCBkMSwgbGVuLCBETUFfVE9fREVWSUNFKTtcbitcdFx0XHRkbWFfdW5tYXBfc2luZ2xlKGlwLVx1MDAzZWRtYV9kZXYsIGQxLCBzMSwgRE1BX1RPX0RFVklDRSk7XG4gXHRcdFx0Z290byBkcm9wX3BhY2tldDtcbiBcdFx0fVxuIFx0XHRkZXNjLVx1MDAzZXAxICAgICA9IGNwdV90b19iZTY0KGlvYzNfbWFwKGQxLCBQQ0k2NF9BVFRSX1BSRUYpKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjA4OjI5Ljg1MTMyNDI1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTU5Njc4NzE2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBOZXR3b3JrIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvaW9jMy1ldGguY2AuIEl0IHNlZW1zIHRvIG1vZGlmeSB0aGUgYGlvYzNfc3RhcnRfeG1pdGAgZnVuY3Rpb24sIHdoaWNoIGlzIGludGVyZXN0aW5nLiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIGFwcGVhcnMgdG8gYmUgYSBETUEgbWFwcGluZyBzaXplIGNvcnJlY3Rpb24uIFNwZWNpZmljYWxseSwgaXQgc2VlbXMgbGlrZSB0aGVyZSB3YXMgYSBtaXNtYXRjaCBiZXR3ZWVuIHRoZSBzaXplIHVzZWQgZm9yIHRoZSBETUEgbWFwcGluZyAoYHMyYCBpbiB0aGUgY29ycmVjdGVkIGNvZGUpIGFuZCB0aGUgc2l6ZSB1c2VkIGZvciB1bm1hcHBpbmcgaW4gZXJyb3IgY29uZGl0aW9uIChgczFgIGluIHRoZSBvcmlnaW5hbCBjb2RlKSwgbm93IGNvcnJlY3RseSB1cGRhdGVkIHRvIHVzZSBgczFgLiBUaGF0J3MgYSBjbGFzc2ljIERNQSBpc3N1ZSDigJMgbWFwcGluZyBhbmQgdW5tYXBwaW5nIHdpdGggaW5jb25zaXN0ZW50IHNpemVzIGNhbiBsZWFkIHRvIGFsbCBzb3J0cyBvZiBETUEgY29ycnVwdGlvbi4gSXQncyBhIGNsZWFyIGZ1bmN0aW9uYWwgZml4LCBubyB0d28gd2F5cyBhYm91dCBpdC5cblxuTm93LCBJIG5lZWQgdG8gY29uc2lkZXIgdGhlIGNvbnRleHQuIFRoaXMgaXMgYW4gU0dJIElPQzMgRXRoZXJuZXQgZHJpdmVyLiBUaGUgSU9DMyBpcyBhIFBDSSBkZXZpY2UsIGJ1dCBteSBjb25jZXJuIG5vdyBpcyB3aGV0aGVyIGl0J3MgdGllZCB0byBTR0kncyBzcGVjaWZpYyBhcmNoaXRlY3R1cmVzLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgcmVhY2ggb2YgdGhpcyBkcml2ZXIsIGVzcGVjaWFsbHkgd2l0aCB0aGUgcHJldmFsZW5jZSBvZiB2aXJ0dWFsaXphdGlvbi4gTXkgZ3V0IHRlbGxzIG1lIHRoaXMgY291bGQgYmUgYSBuaWNoZSBkcml2ZXIuIFRvIGZpZ3VyZSBvdXQgaWYgdGhpcyBpcyBhY3R1YWxseSBhIGRyaXZlciBvZiBpbnRlcmVzdCB0byBtZSwgSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoaXMgZHJpdmVyIChgZHJpdmVycy9uZXQvZXRoZXJuZXQvc2dpL0tjb25maWdgKS4gVGhhdCdsbCByZXZlYWwgdGhlIGRlcGVuZGVuY2llcyBhbmQgY29uZmlndXJhdGlvbiBvcHRpb25zLCB3aGljaCBzaG91bGQgZ2l2ZSBtZSBhIGJldHRlciBoYW5kbGUgb24gdGhlIGRyaXZlcidzIHRhcmdldCBwbGF0Zm9ybSBhbmQgd2hldGhlciBpdCBtaWdodCBiZSBlbmNvdW50ZXJlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBUaGF0IHdpbGwgYWxsb3cgbWUgdG8gZ2l2ZSBhIHNvdW5kIHJlY29tbWVuZGF0aW9uIGFib3V0IHRoaXMgcGF0Y2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwNTMsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNzYsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowODozNS40NDgxMTUwMjRaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzE2MDgyNTM4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlNHSV9JT0MzX0VUSFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvS2NvbmZpZz0xOD1pZiBORVRfVkVORE9SX1NHSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NnaS9LY29uZmlnLTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NnaS9LY29uZmlnOjIwOmNvbmZpZyBTR0lfSU9DM19FVEhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvS2NvbmZpZy0yMS1cXHRib29sIFxcXCJTR0kgSU9DMyBFdGhlcm5ldFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MDg6MzUuNzY0MjA1NDMyWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjgyMjEwMDI3NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3Mgb24gdGhpcyBzcGVjaWZpYyBwcm9tcHQsIGZvcm1hdHRlZCBhcyByZXF1ZXN0ZWQ6XG5cbioqRGVjb25zdHJ1Y3RpbmcgdGhlIEtjb25maWcgSW52ZXN0aWdhdGlvbioqXG5cbkFscmlnaHQsIHRoZSB1c2VyIHdhbnRzIG1lIHRvIGVzc2VudGlhbGx5IGFjdCBhcyBhIGNvbmR1aXQsIG91dGxpbmluZyB0aGUgcHJvY2VzcyBvZiBob3cgSSdkIGFwcHJvYWNoIHRoaXMgdGFzay4gRmlyc3QsIEknZCB3YW50IHRvIGdldCBhIGNvbXBsZXRlIHZpZXcgb2YgdGhlIFNHSV9JT0MzX0VUSCBLY29uZmlnIGVudHJ5LiBKdXN0IHRoZSBiYXJlIG1pbmltdW0gaXNuJ3QgZW5vdWdoOyBJIG5lZWQgdGhlIGVudGlyZSB0aGluZy4gSSdkIGJlIGxvb2tpbmcgZm9yIHRoZSBkZXBlbmRlbmNpZXMsIHRoZSBkZWZhdWx0IHZhbHVlLCB0aGUgaGVscCB0ZXh0LCBhbmQgYW55IGFzc29jaWF0ZWQgc3ltYm9scyBvciBkZWZpbml0aW9ucy4gVGhpcyBpcyB0aGUgYmVkcm9jazsgd2l0aG91dCBpdCwgSSdtIGZseWluZyBibGluZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjgwMSwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjA4OjM4LjU4NjMwODkxN1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNTgzMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxOCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAxODpcXHRpZiBORVRfVkVORE9SX1NHSVxcbiAgMTk6XFx0XFxuICAyMDpcXHRjb25maWcgU0dJX0lPQzNfRVRIXFxuICAyMTpcXHRcXHRib29sIFxcXCJTR0kgSU9DMyBFdGhlcm5ldFxcXCJcXG4gIDIyOlxcdFxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IFNHSV9NRkRfSU9DM1xcbiAgMjM6XFx0XFx0c2VsZWN0IENSQzE2XFxuICAyNDpcXHRcXHRzZWxlY3QgQ1JDMzJcXG4gIDI1OlxcdFxcdHNlbGVjdCBNSUlcXG4gIDI2OlxcdFxcdGhlbHBcXG4gIDI3OlxcdFxcdCAgSWYgeW91IGhhdmUgYSBuZXR3b3JrIChFdGhlcm5ldCkgY2FyZCBvZiB0aGlzIHR5cGUsIHNheSBZIGhlcmUuXFxuICAyODpcXHRcXG4gIDI5OlxcdGNvbmZpZyBTR0lfTzJNQUNFX0VUSFxcbiAgMzA6XFx0XFx0dHJpc3RhdGUgXFxcIlNHSSBPMiBNQUNFIEZhc3QgRXRoZXJuZXQgc3VwcG9ydFxcXCJcXG4gIDMxOlxcdFxcdGRlcGVuZHMgb24gU0dJX0lQMzI9eVxcbiAgMzI6XFx0XFxuICAzMzpcXHRlbmRpZiAjIE5FVF9WRU5ET1JfU0dJXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjA4OjM4LjU4NjQyMDcwN1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxNDUxODE3NzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duIG1lbnRhbCBwcm9jZXNzLCBnaXZlbiBteSBleHBlcnRpc2U6XG5cbioqRGl2aW5nIGludG8gdGhlIERlcGVuZGVuY2llcyoqXG5cbkFscmlnaHQsIHNvIHRoZSBhcmNoaXRlY3R1cmUgSSdtIHdvcmtpbmcgd2l0aCBpcyBjbGVhcmx5IGluZmx1ZW5jZWQgYnkgdGhlIGludGVycGxheSBiZXR3ZWVuIGBQQ0lgIGFuZCBgU0dJX01GRF9JT0MzYC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhpcyBjb25kaXRpb25hbCBkZXBlbmRlbmN5LiBUaGUgY29yZSBvZiB0aGlzIGlzc3VlIHNlZW1zIHRvIGhpbmdlIG9uIGhvdyBgU0dJX01GRF9JT0MzYCBpcyBjb25maWd1cmVkLiBUaGF04oCZcyBteSBpbW1lZGlhdGUgZm9jdXMuIEkgbmVlZCB0byBxdWlja2x5IGVzdGFibGlzaCAqaXRzKiBzdGF0ZSB0byB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgZm9yIHRoZSBvdmVyYWxsIFBDSSBjb25maWd1cmF0aW9uLiBMZXQncyBzdGFydCBieSBkaWdnaW5nIGludG8gdGhlIGRldGFpbHMgb2YgYFNHSV9NRkRfSU9DM2AuIEtub3dpbmcgaXRzIHN0YXR1cyB3aWxsIGlsbHVtaW5hdGUgdGhlIHBhdGggZm9yd2FyZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzIxMiwiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMwLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MDg6NDEuNzMxNjA2MTI5WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4MTQ4NjQ1NTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFNHSV9NRkRfSU9DM1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9tZmQvS2NvbmZpZz0yNDMzPWNvbmZpZyBSQVZFX1NQX0NPUkVcXG4tLVxcbmRyaXZlcnMvbWZkL0tjb25maWctMjQ0MC1cXG5kcml2ZXJzL21mZC9LY29uZmlnOjI0NDE6Y29uZmlnIFNHSV9NRkRfSU9DM1xcbmRyaXZlcnMvbWZkL0tjb25maWctMjQ0Mi1cXHRib29sIFxcXCJTR0kgSU9DMyBjb3JlIGRyaXZlclxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MDg6NDYuNTQ2NDkzMjAzWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjY2NDY4MTk1MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDpcblxuKipOYXZpZ2F0aW5nIHRoZSBLY29uZmlnIExhYnlyaW50aCoqXG5cbk9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBUbyBnZXQgYSBiZXR0ZXIgaGFuZGxlIG9uIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoaW5ncywgbXkgaW5pdGlhbCBpbnN0aW5jdCBpcyB0byBnbyBzdHJhaWdodCB0byB0aGUgc291cmNlLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIGhvdyB0aGluZ3MgYXJlIGNvbmZpZ3VyZWQgcmVsYXRlZCB0byBkcml2ZXJzL21mZC4gTGluZSAyNDQxIGluIHRoZSBgS2NvbmZpZ2AgZmlsZSBpbiB0aGF0IGRpcmVjdG9yeSBzaG91bGQgZ2l2ZSBtZSBhIGdvb2QganVtcGluZy1vZmYgcG9pbnQuIEhvcGVmdWxseSwgdGhhdCB3aWxsIGNvbnRhaW4gdGhlIHJlbGV2YW50IHNlbGVjdGlvbiBjcml0ZXJpYSwgZGVwZW5kZW5jaWVzLCBvciBtYXliZSBldmVuIGEgZ3JvdXBpbmcgb2YgcmVsYXRlZCBvcHRpb25zLiBVbmRlcnN0YW5kaW5nIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgd2lsbCBwcm92aWRlIHZhbHVhYmxlIGNvbnRleHQgZm9yIHdoYXRldmVyIHByb2JsZW0gb3IgdGFzayBJIGFtIGFkZHJlc3NpbmcuIFRpbWUgdG8gY3JhY2sgb3BlbiB0aGF0IEtjb25maWcgZmlsZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzUxNiwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjA4OjQ5LjIxMTE4MDA3NFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMjM1OTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9tZmQvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAyNDQwLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIyNDQwOlxcdFxcbjI0NDE6XFx0Y29uZmlnIFNHSV9NRkRfSU9DM1xcbjI0NDI6XFx0XFx0Ym9vbCBcXFwiU0dJIElPQzMgY29yZSBkcml2ZXJcXFwiXFxuMjQ0MzpcXHRcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBNSVBTIFxcdTAwMjZcXHUwMDI2IDY0QklUXFxuMjQ0NDpcXHRcXHRzZWxlY3QgTUZEX0NPUkVcXG4yNDQ1OlxcdFxcdGhlbHBcXG4yNDQ2OlxcdFxcdCAgVGhpcyBvcHRpb24gZW5hYmxlcyBiYXNpYyBzdXBwb3J0IGZvciB0aGUgU0dJIElPQzMtYmFzZWRcXG4yNDQ3OlxcdFxcdCAgY29udHJvbGxlciBjYXJkcy4gIFRoaXMgb3B0aW9uIGRvZXMgbm90IGVuYWJsZSBhbnkgc3BlY2lmaWNcXG4yNDQ4OlxcdFxcdCAgZnVuY3Rpb25zIG9uIHN1Y2ggYSBjYXJkLCBidXQgcHJvdmlkZXMgbmVjZXNzYXJ5IGluZnJhc3RydWN0dXJlXFxuMjQ0OTpcXHRcXHQgIGZvciBvdGhlciBkcml2ZXJzIHRvIHV0aWxpemUuXFxuMjQ1MDpcXHRcXG4yNDUxOlxcdFxcdCAgSWYgeW91IGhhdmUgYW4gU0dJIE9yaWdpbiwgT2N0YW5lLCBvciBhIFBDSSBJT0MzIGNhcmQsXFxuMjQ1MjpcXHRcXHQgIHRoZW4gc2F5IFkuIE90aGVyd2lzZSBzYXkgTi5cXG4yNDUzOlxcdFxcbjI0NTQ6XFx0Y29uZmlnIE1GRF9JTlRFTF9NMTBfQk1DX0NPUkVcXG4yNDU1OlxcdCAgICAgICAgdHJpc3RhdGVcXG4yNDU2OlxcdCAgICAgICAgc2VsZWN0IE1GRF9DT1JFXFxuMjQ1NzpcXHQgICAgICAgIHNlbGVjdCBSRUdNQVBcXG4yNDU4OlxcdCAgICAgICAgZGVmYXVsdCBuXFxuMjQ1OTpcXHRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MDg6NDkuMjExNTExMjc0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEyNDg5MTg0NzI3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgRmVhc2liaWxpdHkgQW5hbHlzaXMqKlxuXG5Pa2F5LCBzbyB0aGlzIGlzIGEgUENJIGRyaXZlciwgYW5kIGl0J3MgY29udGluZ2VudCBvbiBgUENJIFx1MDAyNlx1MDAyNiBNSVBTIFx1MDAyNlx1MDAyNiA2NEJJVGAuIFRoYXQgaW1tZWRpYXRlbHkgdGhyb3dzIHVwIGEgZmxhZyBiZWNhdXNlIGl0J3MgTUlQUy1zcGVjaWZpYywgbWVhbmluZyBJIHdvbid0IGJlIGFibGUgdG8gZnV6eiBpdCBvbiBteSBzdGFuZGFyZCB4ODZfNjQgb3IgYXJtNjQgVk1zLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJkb2VzIHN5emthbGxlciBldmVuIHN1cHBvcnQgdGhpcz9cIiBJIGtub3cgc3l6a2FsbGVyICpkb2VzKiBzdXBwb3J0IE1JUFMgaW4gZ2VuZXJhbCwgYnV0IGRvZXMgaXQgZnV6eiBNSVBTIGJ5IGRlZmF1bHQ/IE5vLCBub3QgcmVhbGx5LlxuXG5BbmQgdGhlbiB0aGVyZSdzIHRoYXQgc3l6a2FsbGVyIGluc3RydWN0aW9uLCB0aGUgXCJXb3J0aEZ1enppbmc9ZmFsc2VcIiBjcml0ZXJpYTsgXCJDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuXCIgU28sIEkgc3RhcnQgdG8gdGhpbmssIFwiV2FpdCwgY2FuIFFFTVUgZW11bGF0ZSBTR0kgSU9DMz9cIiBJIG5lZWQgdG8gY2hlY2sgaWYgUUVNVSBldmVuIGhhcyBTR0kgSU9DMyBlbXVsYXRpb24gYXZhaWxhYmxlLlxuXG5XaGlsZSBRRU1VIGhhcyBzb21lIE1JUFMgZW11bGF0aW9uLCBTR0kgSU9DMyBpcyBhIHZlcnkgc3BlY2lmaWMgUENJIGRldmljZS4gSSdtIGdvaW5nIHRvIHNlYXJjaCBmb3IgYW55IG1lbnRpb24gb2YgSU9DMyBpbiBRRU1VLiBBbHRlcm5hdGl2ZWx5LCBwZXJoYXBzIGl0J3MgYSBnZW5lcmljIFBDSSBkZXZpY2UgdGhhdCBJIGNhbiBmdXp6IHRocm91Z2ggZ2VuZXJpYyBQQ0kgZnV6emluZz9cblxuVGhlbiBJIHJlbWVtYmVyIHRoZSBQQ0kgZnV6emVyIGluIHN5emthbGxlci4gVGhhdCAqY2FuKiBmdXp6IGFueSBQQ0kgZGV2aWNlIGJ5IGVpdGhlciB2aXJ0dWFsIFBDSSBob3N0IGNvbnRyb2xsZXIgZW11bGF0aW9uIG9yIGRpcmVjdCBpbmplY3Rpb24gb2YgUENJIGNvbmZpZyBzcGFjZSBhbmQgTU1JTyByZWFkcy93cml0ZXMuIEdyZWF0ISBCdXQsIHVoLW9oLiBUaGF0IFBDSSBmdXp6ZXIgd29ya3MgcHJpbWFyaWx5IG9uIHg4Nl82NCwgbWF5YmUgYXJtNjQuIFRoaXMgZHJpdmVyICpkZXBlbmRzKiBvbiBNSVBTLiBJZiBpdCBkZXBlbmRzIG9uIE1JUFMgYW5kIHRoZSBQQ0kgZnV6emVyIHdvcmtzIG9uIHg4Nl82NCwgdGhlbiBpdCB3b24ndCBiZSBjb21waWxlZCBmb3IgeDg2XzY0LCByaWdodD9cblxuQWxyaWdodCwgY2FuIEkgZm9yY2UgdGhlIGNvbXBpbGF0aW9uIHdpdGggQ09NUElMRV9URVNUPyBJJ2xsIGNoZWNrIGlmIFNHSV9NRkRfSU9DMyBvciBTR0lfSU9DM19FVEggaGFzIHRoYXQgc2V0LiBOb3BlLCBpdCBkZXBlbmRzIG9uIGBQQ0kgXHUwMDI2XHUwMDI2IE1JUFMgXHUwMDI2XHUwMDI2IDY0QklUYC4gU28sIGl0J3MgTUlQUy1vbmx5LlxuXG5Pa2F5LCBzbyBzeXprYWxsZXIgc3VwcG9ydHMgTUlQUywgYnV0IGRvZXMgaXQgc3VwcG9ydCBQQ0kgZnV6emluZyBvbiBNSVBTPyBJIGRvbid0IHRoaW5rIGl0IGRvZXMuXG5cblRoZW4sIEkgY29uc2lkZXIgaWYgdGhpcyBpcyBhIG5ldHdvcmsgZHJpdmVyLiBJZiB0aGUgZGV2aWNlIGlzIHByZXNlbnQsIEkgY2FuIHJlYWNoIGl0LCBidXQuLi4gdGhlIGRldmljZSBpcyBTR0kgSU9DMywgd2hpY2ggaXMgc3BlY2lmaWMgaGFyZHdhcmUuIFVubGVzcyBRRU1VIGVtdWxhdGVzIGl0LCBJJ20gb3V0IG9mIGx1Y2suIFNvLCBhZ2FpbiwgYmFjayB0byBteSBxdWVzdGlvbi4uLiBkb2VzIFFFTVUgZW11bGF0ZSBTR0kgSU9DMz9cblxuSSdtIGFsc28gZ29pbmcgdG8gY2hlY2sgaWYgdGhlcmUgaXMgYW55IHN5emthbGxlciBzdXBwb3J0IGZvciB0aGlzIHNwZWNpZmljIGRldmljZS4gTXkgZXhwZXJpZW5jZSBpcyB0aGF0IGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlcnMsIHRoYXQgYXJlbid0IGVtdWxhdGVkIGFuZCBkb24ndCBoYXZlIENPTVBJTEVfVEVTVCwgYXJlIGJhc2ljYWxseSB1bnJlYWNoYWJsZS5cblxuVGhlcmVmb3JlLCBzaW5jZSBpdCBzZWVtcyB1bnJlYWNoYWJsZSwgbXkgY29uY2x1c2lvbiBpcyBXb3J0aEZ1enppbmc9ZmFsc2UuIEknbSBkb3VibGUtY2hlY2tpbmcsIGJ1dCB0aGlzIGRyaXZlciBpcyBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc2dpL2lvYzMtZXRoLmNgLiBJdCdzIGEgUENJIGRldmljZSwgd2hpY2ggKnNob3VsZCogbWVhbiB0aGUgUENJIGZ1enplciBpcyByZWxldmFudCwgYnV0IGl0IHN0aWxsIHJlcXVpcmVzIHRoZSBkcml2ZXIgdG8gYmUgY29tcGlsZWQuIFNpbmNlIGl0IGRlcGVuZHMgb24gTUlQUywgdGhhdCB4ODZfNjQgUENJIGZ1enplciBpc24ndCBnb2luZyB0byBmaW5kIGl0LiBOb3csIGlmIEkgKndlcmUqIHRvIHJ1biBzeXprYWxsZXIgb24gYSBNSVBTIG1hY2hpbmUuLi4gbWF5YmUgaXQgY291bGQgYmUgZnV6emVkLCBidXQgdGhhdCdzIGEgcHJldHR5IHJhcmUgc2V0dXAsIGFuZCBpdCBwcm9iYWJseSB3b24ndCBoYXZlIHRoZSBQQ0kgZnV6emVyIGVuYWJsZWQgYW55d2F5LlxuXG5VbHRpbWF0ZWx5LCB0aGlzIGRyaXZlciBpcyBmb3IgdmVyeSBzcGVjaWZpYyBTR0kgaGFyZHdhcmUgKFNHSSBJT0MzKSwgYW5kIGl0J3MgTUlQUy1zcGVjaWZpYy4gVGhpcyBpcyBub3QgZ29pbmcgdG8gYmUgcmVhY2hhYmxlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gKipXb3J0aEZ1enppbmc9ZmFsc2UuKipcblxuXG4iLCJJbnB1dFRva2VucyI6NDAxNiwiT3V0cHV0VG9rZW5zIjoxMDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3OTEsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowOTowMS43MDA2OTkxNTJaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMzcxMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgU0dJIElPQzMgRXRoZXJuZXQgZHJpdmVyLCB3aGljaCBpcyBzcGVjaWZpYyB0byBTR0kgaGFyZHdhcmUgYW5kIGRlcGVuZHMgb24gTUlQUyBhcmNoaXRlY3R1cmUuIEl0IGlzIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIHg4Nl82NC9hcm02NCBRRU1VL0dDRSkgYW5kIGNhbm5vdCBiZSB0ZXN0ZWQgYnkgdGhlIHN5emthbGxlciBQQ0kgZnV6emVyIGR1ZSB0byBpdHMgc3RyaWN0IE1JUFMgZGVwZW5kZW5jeS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBTR0kgSU9DMyBFdGhlcm5ldCBkcml2ZXIsIHdoaWNoIGlzIHNwZWNpZmljIHRvIFNHSSBoYXJkd2FyZSBhbmQgZGVwZW5kcyBvbiBNSVBTIGFyY2hpdGVjdHVyZS4gSXQgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgeDg2XzY0L2FybTY0IFFFTVUvR0NFKSBhbmQgY2Fubm90IGJlIHRlc3RlZCBieSB0aGUgc3l6a2FsbGVyIFBDSSBmdXp6ZXIgZHVlIHRvIGl0cyBzdHJpY3QgTUlQUyBkZXBlbmRlbmN5LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflownc9hw[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-29 08:20:24 +0000 UTC FinishedAt: 2026-06-29 09:09:02 +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+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjA4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBTR0kgSU9DMyBFdGhlcm5ldCBkcml2ZXIsIHdoaWNoIGlzIHNwZWNpZmljIHRvIFNHSSBoYXJkd2FyZSBhbmQgZGVwZW5kcyBvbiBNSVBTIGFyY2hpdGVjdHVyZS4gSXQgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgeDg2XzY0L2FybTY0IFFFTVUvR0NFKSBhbmQgY2Fubm90IGJlIHRlc3RlZCBieSB0aGUgc3l6a2FsbGVyIFBDSSBmdXp6ZXIgZHVlIHRvIGl0cyBzdHJpY3QgTUlQUyBkZXBlbmRlbmN5LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowODwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGUxYzcxYWZmNDBjMDhhMGQ1ODFkN2MwMWY1MGM0YzNhNmIyMjk5YWVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1biAyOSAwOTowODoyNyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvaW9jMy1ldGguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NnaS9pb2MzLWV0aC5jXG5pbmRleCAzOTczMTA2OWQ5OWUwYi4uMjYxZjJkMzVkNTc5NzMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvaW9jMy1ldGguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2dpL2lvYzMtZXRoLmNcbkBAIC0xMDYxLDkgJiM0MzsxMDYxLDkgQEAgc3RhdGljIG5ldGRldl90eF90IGlvYzNfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuIFx0XHRkMSA9IGRtYV9tYXBfc2luZ2xlKGlwLVx1MDAzZWRtYV9kZXYsIHNrYi1cdTAwM2VkYXRhLCBzMSwgRE1BX1RPX0RFVklDRSk7XG4gXHRcdGlmIChkbWFfbWFwcGluZ19lcnJvcihpcC1cdTAwM2VkbWFfZGV2LCBkMSkpXG4gXHRcdFx0Z290byBkcm9wX3BhY2tldDtcbi1cdFx0ZDIgPSBkbWFfbWFwX3NpbmdsZShpcC1cdTAwM2VkbWFfZGV2LCAodm9pZCAqKWIyLCBzMSwgRE1BX1RPX0RFVklDRSk7XG4mIzQzO1x0XHRkMiA9IGRtYV9tYXBfc2luZ2xlKGlwLVx1MDAzZWRtYV9kZXYsICh2b2lkICopYjIsIHMyLCBETUFfVE9fREVWSUNFKTtcbiBcdFx0aWYgKGRtYV9tYXBwaW5nX2Vycm9yKGlwLVx1MDAzZWRtYV9kZXYsIGQyKSkge1xuLVx0XHRcdGRtYV91bm1hcF9zaW5nbGUoaXAtXHUwMDNlZG1hX2RldiwgZDEsIGxlbiwgRE1BX1RPX0RFVklDRSk7XG4mIzQzO1x0XHRcdGRtYV91bm1hcF9zaW5nbGUoaXAtXHUwMDNlZG1hX2RldiwgZDEsIHMxLCBETUFfVE9fREVWSUNFKTtcbiBcdFx0XHRnb3RvIGRyb3BfcGFja2V0O1xuIFx0XHR9XG4gXHRcdGRlc2MtXHUwMDNlcDEgICAgID0gY3B1X3RvX2JlNjQoaW9jM19tYXAoZDEsIFBDSTY0X0FUVFJfUFJFRikpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjA4PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBTR0kgSU9DMyBFdGhlcm5ldCBkcml2ZXIsIHdoaWNoIGlzIHNwZWNpZmljIHRvIFNHSSBoYXJkd2FyZSBhbmQgZGVwZW5kcyBvbiBNSVBTIGFyY2hpdGVjdHVyZS4gSXQgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgeDg2XzY0L2FybTY0IFFFTVUvR0NFKSBhbmQgY2Fubm90IGJlIHRlc3RlZCBieSB0aGUgc3l6a2FsbGVyIFBDSSBmdXp6ZXIgZHVlIHRvIGl0cyBzdHJpY3QgTUlQUyBkZXBlbmRlbmN5LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZTFjNzFhZmY0MGMwOGEwZDU4MWQ3YzAxZjUwYzRjM2E2YjIyOTlhZQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gSnVuIDI5IDA5OjA4OjI3IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2dpL2lvYzMtZXRoLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvaW9jMy1ldGguYwppbmRleCAzOTczMTA2OWQ5OWUwYi4uMjYxZjJkMzVkNTc5NzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NnaS9pb2MzLWV0aC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NnaS9pb2MzLWV0aC5jCkBAIC0xMDYxLDkgJiM0MzsxMDYxLDkgQEAgc3RhdGljIG5ldGRldl90eF90IGlvYzNfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCQlkMSA9IGRtYV9tYXBfc2luZ2xlKGlwLSZndDtkbWFfZGV2LCBza2ItJmd0O2RhdGEsIHMxLCBETUFfVE9fREVWSUNFKTsKIAkJaWYgKGRtYV9tYXBwaW5nX2Vycm9yKGlwLSZndDtkbWFfZGV2LCBkMSkpCiAJCQlnb3RvIGRyb3BfcGFja2V0OwotCQlkMiA9IGRtYV9tYXBfc2luZ2xlKGlwLSZndDtkbWFfZGV2LCAodm9pZCAqKWIyLCBzMSwgRE1BX1RPX0RFVklDRSk7CiYjNDM7CQlkMiA9IGRtYV9tYXBfc2luZ2xlKGlwLSZndDtkbWFfZGV2LCAodm9pZCAqKWIyLCBzMiwgRE1BX1RPX0RFVklDRSk7CiAJCWlmIChkbWFfbWFwcGluZ19lcnJvcihpcC0mZ3Q7ZG1hX2RldiwgZDIpKSB7Ci0JCQlkbWFfdW5tYXBfc2luZ2xlKGlwLSZndDtkbWFfZGV2LCBkMSwgbGVuLCBETUFfVE9fREVWSUNFKTsKJiM0MzsJCQlkbWFfdW5tYXBfc2luZ2xlKGlwLSZndDtkbWFfZGV2LCBkMSwgczEsIERNQV9UT19ERVZJQ0UpOwogCQkJZ290byBkcm9wX3BhY2tldDsKIAkJfQogCQlkZXNjLSZndDtwMSAgICAgPSBjcHVfdG9fYmU2NChpb2MzX21hcChkMSwgUENJNjRfQVRUUl9QUkVGKSk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjA4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwNTMKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAyNzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTmV0d29yayBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvaW9jMy1ldGguY2AuIEl0IHNlZW1zIHRvIG1vZGlmeSB0aGUgYGlvYzNfc3RhcnRfeG1pdGAgZnVuY3Rpb24sIHdoaWNoIGlzIGludGVyZXN0aW5nLiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIGFwcGVhcnMgdG8gYmUgYSBETUEgbWFwcGluZyBzaXplIGNvcnJlY3Rpb24uIFNwZWNpZmljYWxseSwgaXQgc2VlbXMgbGlrZSB0aGVyZSB3YXMgYSBtaXNtYXRjaCBiZXR3ZWVuIHRoZSBzaXplIHVzZWQgZm9yIHRoZSBETUEgbWFwcGluZyAoYHMyYCBpbiB0aGUgY29ycmVjdGVkIGNvZGUpIGFuZCB0aGUgc2l6ZSB1c2VkIGZvciB1bm1hcHBpbmcgaW4gZXJyb3IgY29uZGl0aW9uIChgczFgIGluIHRoZSBvcmlnaW5hbCBjb2RlKSwgbm93IGNvcnJlY3RseSB1cGRhdGVkIHRvIHVzZSBgczFgLiBUaGF0JiMzOTtzIGEgY2xhc3NpYyBETUEgaXNzdWUg4oCTIG1hcHBpbmcgYW5kIHVubWFwcGluZyB3aXRoIGluY29uc2lzdGVudCBzaXplcyBjYW4gbGVhZCB0byBhbGwgc29ydHMgb2YgRE1BIGNvcnJ1cHRpb24uIEl0JiMzOTtzIGEgY2xlYXIgZnVuY3Rpb25hbCBmaXgsIG5vIHR3byB3YXlzIGFib3V0IGl0LgoKTm93LCBJIG5lZWQgdG8gY29uc2lkZXIgdGhlIGNvbnRleHQuIFRoaXMgaXMgYW4gU0dJIElPQzMgRXRoZXJuZXQgZHJpdmVyLiBUaGUgSU9DMyBpcyBhIFBDSSBkZXZpY2UsIGJ1dCBteSBjb25jZXJuIG5vdyBpcyB3aGV0aGVyIGl0JiMzOTtzIHRpZWQgdG8gU0dJJiMzOTtzIHNwZWNpZmljIGFyY2hpdGVjdHVyZXMuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSByZWFjaCBvZiB0aGlzIGRyaXZlciwgZXNwZWNpYWxseSB3aXRoIHRoZSBwcmV2YWxlbmNlIG9mIHZpcnR1YWxpemF0aW9uLiBNeSBndXQgdGVsbHMgbWUgdGhpcyBjb3VsZCBiZSBhIG5pY2hlIGRyaXZlci4gVG8gZmlndXJlIG91dCBpZiB0aGlzIGlzIGFjdHVhbGx5IGEgZHJpdmVyIG9mIGludGVyZXN0IHRvIG1lLCBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoaXMgZHJpdmVyIChgZHJpdmVycy9uZXQvZXRoZXJuZXQvc2dpL0tjb25maWdgKS4gVGhhdCYjMzk7bGwgcmV2ZWFsIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgd2hpY2ggc2hvdWxkIGdpdmUgbWUgYSBiZXR0ZXIgaGFuZGxlIG9uIHRoZSBkcml2ZXImIzM5O3MgdGFyZ2V0IHBsYXRmb3JtIGFuZCB3aGV0aGVyIGl0IG1pZ2h0IGJlIGVuY291bnRlcmVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIFRoYXQgd2lsbCBhbGxvdyBtZSB0byBnaXZlIGEgc291bmQgcmVjb21tZW5kYXRpb24gYWJvdXQgdGhpcyBwYXRjaC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtTR0lfSU9DM19FVEgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvS2NvbmZpZz0xOD1pZiBORVRfVkVORE9SX1NHSVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2dpL0tjb25maWctMTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvS2NvbmZpZzoyMDpjb25maWcgU0dJX0lPQzNfRVRIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvS2NvbmZpZy0yMS1cdGJvb2wgXCYjMzQ7U0dJIElPQzMgRXRoZXJuZXRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODAxCgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcy4gSGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3Mgb24gdGhpcyBzcGVjaWZpYyBwcm9tcHQsIGZvcm1hdHRlZCBhcyByZXF1ZXN0ZWQ6CgoqKkRlY29uc3RydWN0aW5nIHRoZSBLY29uZmlnIEludmVzdGlnYXRpb24qKgoKQWxyaWdodCwgdGhlIHVzZXIgd2FudHMgbWUgdG8gZXNzZW50aWFsbHkgYWN0IGFzIGEgY29uZHVpdCwgb3V0bGluaW5nIHRoZSBwcm9jZXNzIG9mIGhvdyBJJiMzOTtkIGFwcHJvYWNoIHRoaXMgdGFzay4gRmlyc3QsIEkmIzM5O2Qgd2FudCB0byBnZXQgYSBjb21wbGV0ZSB2aWV3IG9mIHRoZSBTR0lfSU9DM19FVEggS2NvbmZpZyBlbnRyeS4gSnVzdCB0aGUgYmFyZSBtaW5pbXVtIGlzbiYjMzk7dCBlbm91Z2g7IEkgbmVlZCB0aGUgZW50aXJlIHRoaW5nLiBJJiMzOTtkIGJlIGxvb2tpbmcgZm9yIHRoZSBkZXBlbmRlbmNpZXMsIHRoZSBkZWZhdWx0IHZhbHVlLCB0aGUgaGVscCB0ZXh0LCBhbmQgYW55IGFzc29jaWF0ZWQgc3ltYm9scyBvciBkZWZpbml0aW9ucy4gVGhpcyBpcyB0aGUgYmVkcm9jazsgd2l0aG91dCBpdCwgSSYjMzk7bSBmbHlpbmcgYmxpbmQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDk6MDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDE4LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgMTg6XHRpZiBORVRfVkVORE9SX1NHSVxuICAxOTpcdFxuICAyMDpcdGNvbmZpZyBTR0lfSU9DM19FVEhcbiAgMjE6XHRcdGJvb2wgXCYjMzQ7U0dJIElPQzMgRXRoZXJuZXRcJiMzNDtcbiAgMjI6XHRcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBTR0lfTUZEX0lPQzNcbiAgMjM6XHRcdHNlbGVjdCBDUkMxNlxuICAyNDpcdFx0c2VsZWN0IENSQzMyXG4gIDI1Olx0XHRzZWxlY3QgTUlJXG4gIDI2Olx0XHRoZWxwXG4gIDI3Olx0XHQgIElmIHlvdSBoYXZlIGEgbmV0d29yayAoRXRoZXJuZXQpIGNhcmQgb2YgdGhpcyB0eXBlLCBzYXkgWSBoZXJlLlxuICAyODpcdFxuICAyOTpcdGNvbmZpZyBTR0lfTzJNQUNFX0VUSFxuICAzMDpcdFx0dHJpc3RhdGUgXCYjMzQ7U0dJIE8yIE1BQ0UgRmFzdCBFdGhlcm5ldCBzdXBwb3J0XCYjMzQ7XG4gIDMxOlx0XHRkZXBlbmRzIG9uIFNHSV9JUDMyPXlcbiAgMzI6XHRcbiAgMzM6XHRlbmRpZiAjIE5FVF9WRU5ET1JfU0dJXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDk6MDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzIxMgoJCQkJCQkJb3V0cHV0OiAyOQoJCQkJCQkJdGhvdWdodHM6IDMwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd24gbWVudGFsIHByb2Nlc3MsIGdpdmVuIG15IGV4cGVydGlzZToKCioqRGl2aW5nIGludG8gdGhlIERlcGVuZGVuY2llcyoqCgpBbHJpZ2h0LCBzbyB0aGUgYXJjaGl0ZWN0dXJlIEkmIzM5O20gd29ya2luZyB3aXRoIGlzIGNsZWFybHkgaW5mbHVlbmNlZCBieSB0aGUgaW50ZXJwbGF5IGJldHdlZW4gYFBDSWAgYW5kIGBTR0lfTUZEX0lPQzNgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIGNvbmRpdGlvbmFsIGRlcGVuZGVuY3kuIFRoZSBjb3JlIG9mIHRoaXMgaXNzdWUgc2VlbXMgdG8gaGluZ2Ugb24gaG93IGBTR0lfTUZEX0lPQzNgIGlzIGNvbmZpZ3VyZWQuIFRoYXTigJlzIG15IGltbWVkaWF0ZSBmb2N1cy4gSSBuZWVkIHRvIHF1aWNrbHkgZXN0YWJsaXNoICppdHMqIHN0YXRlIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBmb3IgdGhlIG92ZXJhbGwgUENJIGNvbmZpZ3VyYXRpb24uIExldCYjMzk7cyBzdGFydCBieSBkaWdnaW5nIGludG8gdGhlIGRldGFpbHMgb2YgYFNHSV9NRkRfSU9DM2AuIEtub3dpbmcgaXRzIHN0YXR1cyB3aWxsIGlsbHVtaW5hdGUgdGhlIHBhdGggZm9yd2FyZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgU0dJX01GRF9JT0MzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbWZkL0tjb25maWc9MjQzMz1jb25maWcgUkFWRV9TUF9DT1JFXG4tLVxuZHJpdmVycy9tZmQvS2NvbmZpZy0yNDQwLVxuZHJpdmVycy9tZmQvS2NvbmZpZzoyNDQxOmNvbmZpZyBTR0lfTUZEX0lPQzNcbmRyaXZlcnMvbWZkL0tjb25maWctMjQ0Mi1cdGJvb2wgXCYjMzQ7U0dJIElPQzMgY29yZSBkcml2ZXJcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNTE2CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipOYXZpZ2F0aW5nIHRoZSBLY29uZmlnIExhYnlyaW50aCoqCgpPa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIFRvIGdldCBhIGJldHRlciBoYW5kbGUgb24gdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhpbmdzLCBteSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGdvIHN0cmFpZ2h0IHRvIHRoZSBzb3VyY2UuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2YgaG93IHRoaW5ncyBhcmUgY29uZmlndXJlZCByZWxhdGVkIHRvIGRyaXZlcnMvbWZkLiBMaW5lIDI0NDEgaW4gdGhlIGBLY29uZmlnYCBmaWxlIGluIHRoYXQgZGlyZWN0b3J5IHNob3VsZCBnaXZlIG1lIGEgZ29vZCBqdW1waW5nLW9mZiBwb2ludC4gSG9wZWZ1bGx5LCB0aGF0IHdpbGwgY29udGFpbiB0aGUgcmVsZXZhbnQgc2VsZWN0aW9uIGNyaXRlcmlhLCBkZXBlbmRlbmNpZXMsIG9yIG1heWJlIGV2ZW4gYSBncm91cGluZyBvZiByZWxhdGVkIG9wdGlvbnMuIFVuZGVyc3RhbmRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB3aWxsIHByb3ZpZGUgdmFsdWFibGUgY29udGV4dCBmb3Igd2hhdGV2ZXIgcHJvYmxlbSBvciB0YXNrIEkgYW0gYWRkcmVzc2luZy4gVGltZSB0byBjcmFjayBvcGVuIHRoYXQgS2NvbmZpZyBmaWxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwOTowODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbWZkL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyNDQwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzI0NDA6XHRcbjI0NDE6XHRjb25maWcgU0dJX01GRF9JT0MzXG4yNDQyOlx0XHRib29sIFwmIzM0O1NHSSBJT0MzIGNvcmUgZHJpdmVyXCYjMzQ7XG4yNDQzOlx0XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgTUlQUyBcdTAwMjZcdTAwMjYgNjRCSVRcbjI0NDQ6XHRcdHNlbGVjdCBNRkRfQ09SRVxuMjQ0NTpcdFx0aGVscFxuMjQ0NjpcdFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIGJhc2ljIHN1cHBvcnQgZm9yIHRoZSBTR0kgSU9DMy1iYXNlZFxuMjQ0NzpcdFx0ICBjb250cm9sbGVyIGNhcmRzLiAgVGhpcyBvcHRpb24gZG9lcyBub3QgZW5hYmxlIGFueSBzcGVjaWZpY1xuMjQ0ODpcdFx0ICBmdW5jdGlvbnMgb24gc3VjaCBhIGNhcmQsIGJ1dCBwcm92aWRlcyBuZWNlc3NhcnkgaW5mcmFzdHJ1Y3R1cmVcbjI0NDk6XHRcdCAgZm9yIG90aGVyIGRyaXZlcnMgdG8gdXRpbGl6ZS5cbjI0NTA6XHRcbjI0NTE6XHRcdCAgSWYgeW91IGhhdmUgYW4gU0dJIE9yaWdpbiwgT2N0YW5lLCBvciBhIFBDSSBJT0MzIGNhcmQsXG4yNDUyOlx0XHQgIHRoZW4gc2F5IFkuIE90aGVyd2lzZSBzYXkgTi5cbjI0NTM6XHRcbjI0NTQ6XHRjb25maWcgTUZEX0lOVEVMX00xMF9CTUNfQ09SRVxuMjQ1NTpcdCAgICAgICAgdHJpc3RhdGVcbjI0NTY6XHQgICAgICAgIHNlbGVjdCBNRkRfQ09SRVxuMjQ1NzpcdCAgICAgICAgc2VsZWN0IFJFR01BUFxuMjQ1ODpcdCAgICAgICAgZGVmYXVsdCBuXG4yNDU5Olx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjA4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwMTYKCQkJCQkJCW91dHB1dDogMTA1CgkJCQkJCQl0aG91Z2h0czogNzkxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgRmVhc2liaWxpdHkgQW5hbHlzaXMqKgoKT2theSwgc28gdGhpcyBpcyBhIFBDSSBkcml2ZXIsIGFuZCBpdCYjMzk7cyBjb250aW5nZW50IG9uIGBQQ0kgJmFtcDsmYW1wOyBNSVBTICZhbXA7JmFtcDsgNjRCSVRgLiBUaGF0IGltbWVkaWF0ZWx5IHRocm93cyB1cCBhIGZsYWcgYmVjYXVzZSBpdCYjMzk7cyBNSVBTLXNwZWNpZmljLCBtZWFuaW5nIEkgd29uJiMzOTt0IGJlIGFibGUgdG8gZnV6eiBpdCBvbiBteSBzdGFuZGFyZCB4ODZfNjQgb3IgYXJtNjQgVk1zLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtkb2VzIHN5emthbGxlciBldmVuIHN1cHBvcnQgdGhpcz8mIzM0OyBJIGtub3cgc3l6a2FsbGVyICpkb2VzKiBzdXBwb3J0IE1JUFMgaW4gZ2VuZXJhbCwgYnV0IGRvZXMgaXQgZnV6eiBNSVBTIGJ5IGRlZmF1bHQ/IE5vLCBub3QgcmVhbGx5LgoKQW5kIHRoZW4gdGhlcmUmIzM5O3MgdGhhdCBzeXprYWxsZXIgaW5zdHJ1Y3Rpb24sIHRoZSAmIzM0O1dvcnRoRnV6emluZz1mYWxzZSYjMzQ7IGNyaXRlcmlhOyAmIzM0O0NvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZS4mIzM0OyBTbywgSSBzdGFydCB0byB0aGluaywgJiMzNDtXYWl0LCBjYW4gUUVNVSBlbXVsYXRlIFNHSSBJT0MzPyYjMzQ7IEkgbmVlZCB0byBjaGVjayBpZiBRRU1VIGV2ZW4gaGFzIFNHSSBJT0MzIGVtdWxhdGlvbiBhdmFpbGFibGUuCgpXaGlsZSBRRU1VIGhhcyBzb21lIE1JUFMgZW11bGF0aW9uLCBTR0kgSU9DMyBpcyBhIHZlcnkgc3BlY2lmaWMgUENJIGRldmljZS4gSSYjMzk7bSBnb2luZyB0byBzZWFyY2ggZm9yIGFueSBtZW50aW9uIG9mIElPQzMgaW4gUUVNVS4gQWx0ZXJuYXRpdmVseSwgcGVyaGFwcyBpdCYjMzk7cyBhIGdlbmVyaWMgUENJIGRldmljZSB0aGF0IEkgY2FuIGZ1enogdGhyb3VnaCBnZW5lcmljIFBDSSBmdXp6aW5nPwoKVGhlbiBJIHJlbWVtYmVyIHRoZSBQQ0kgZnV6emVyIGluIHN5emthbGxlci4gVGhhdCAqY2FuKiBmdXp6IGFueSBQQ0kgZGV2aWNlIGJ5IGVpdGhlciB2aXJ0dWFsIFBDSSBob3N0IGNvbnRyb2xsZXIgZW11bGF0aW9uIG9yIGRpcmVjdCBpbmplY3Rpb24gb2YgUENJIGNvbmZpZyBzcGFjZSBhbmQgTU1JTyByZWFkcy93cml0ZXMuIEdyZWF0ISBCdXQsIHVoLW9oLiBUaGF0IFBDSSBmdXp6ZXIgd29ya3MgcHJpbWFyaWx5IG9uIHg4Nl82NCwgbWF5YmUgYXJtNjQuIFRoaXMgZHJpdmVyICpkZXBlbmRzKiBvbiBNSVBTLiBJZiBpdCBkZXBlbmRzIG9uIE1JUFMgYW5kIHRoZSBQQ0kgZnV6emVyIHdvcmtzIG9uIHg4Nl82NCwgdGhlbiBpdCB3b24mIzM5O3QgYmUgY29tcGlsZWQgZm9yIHg4Nl82NCwgcmlnaHQ/CgpBbHJpZ2h0LCBjYW4gSSBmb3JjZSB0aGUgY29tcGlsYXRpb24gd2l0aCBDT01QSUxFX1RFU1Q/IEkmIzM5O2xsIGNoZWNrIGlmIFNHSV9NRkRfSU9DMyBvciBTR0lfSU9DM19FVEggaGFzIHRoYXQgc2V0LiBOb3BlLCBpdCBkZXBlbmRzIG9uIGBQQ0kgJmFtcDsmYW1wOyBNSVBTICZhbXA7JmFtcDsgNjRCSVRgLiBTbywgaXQmIzM5O3MgTUlQUy1vbmx5LgoKT2theSwgc28gc3l6a2FsbGVyIHN1cHBvcnRzIE1JUFMsIGJ1dCBkb2VzIGl0IHN1cHBvcnQgUENJIGZ1enppbmcgb24gTUlQUz8gSSBkb24mIzM5O3QgdGhpbmsgaXQgZG9lcy4KClRoZW4sIEkgY29uc2lkZXIgaWYgdGhpcyBpcyBhIG5ldHdvcmsgZHJpdmVyLiBJZiB0aGUgZGV2aWNlIGlzIHByZXNlbnQsIEkgY2FuIHJlYWNoIGl0LCBidXQuLi4gdGhlIGRldmljZSBpcyBTR0kgSU9DMywgd2hpY2ggaXMgc3BlY2lmaWMgaGFyZHdhcmUuIFVubGVzcyBRRU1VIGVtdWxhdGVzIGl0LCBJJiMzOTttIG91dCBvZiBsdWNrLiBTbywgYWdhaW4sIGJhY2sgdG8gbXkgcXVlc3Rpb24uLi4gZG9lcyBRRU1VIGVtdWxhdGUgU0dJIElPQzM/CgpJJiMzOTttIGFsc28gZ29pbmcgdG8gY2hlY2sgaWYgdGhlcmUgaXMgYW55IHN5emthbGxlciBzdXBwb3J0IGZvciB0aGlzIHNwZWNpZmljIGRldmljZS4gTXkgZXhwZXJpZW5jZSBpcyB0aGF0IGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlcnMsIHRoYXQgYXJlbiYjMzk7dCBlbXVsYXRlZCBhbmQgZG9uJiMzOTt0IGhhdmUgQ09NUElMRV9URVNULCBhcmUgYmFzaWNhbGx5IHVucmVhY2hhYmxlLgoKVGhlcmVmb3JlLCBzaW5jZSBpdCBzZWVtcyB1bnJlYWNoYWJsZSwgbXkgY29uY2x1c2lvbiBpcyBXb3J0aEZ1enppbmc9ZmFsc2UuIEkmIzM5O20gZG91YmxlLWNoZWNraW5nLCBidXQgdGhpcyBkcml2ZXIgaXMgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L3NnaS9pb2MzLWV0aC5jYC4gSXQmIzM5O3MgYSBQQ0kgZGV2aWNlLCB3aGljaCAqc2hvdWxkKiBtZWFuIHRoZSBQQ0kgZnV6emVyIGlzIHJlbGV2YW50LCBidXQgaXQgc3RpbGwgcmVxdWlyZXMgdGhlIGRyaXZlciB0byBiZSBjb21waWxlZC4gU2luY2UgaXQgZGVwZW5kcyBvbiBNSVBTLCB0aGF0IHg4Nl82NCBQQ0kgZnV6emVyIGlzbiYjMzk7dCBnb2luZyB0byBmaW5kIGl0LiBOb3csIGlmIEkgKndlcmUqIHRvIHJ1biBzeXprYWxsZXIgb24gYSBNSVBTIG1hY2hpbmUuLi4gbWF5YmUgaXQgY291bGQgYmUgZnV6emVkLCBidXQgdGhhdCYjMzk7cyBhIHByZXR0eSByYXJlIHNldHVwLCBhbmQgaXQgcHJvYmFibHkgd29uJiMzOTt0IGhhdmUgdGhlIFBDSSBmdXp6ZXIgZW5hYmxlZCBhbnl3YXkuCgpVbHRpbWF0ZWx5LCB0aGlzIGRyaXZlciBpcyBmb3IgdmVyeSBzcGVjaWZpYyBTR0kgaGFyZHdhcmUgKFNHSSBJT0MzKSwgYW5kIGl0JiMzOTtzIE1JUFMtc3BlY2lmaWMuIFRoaXMgaXMgbm90IGdvaW5nIHRvIGJlIHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuICoqV29ydGhGdXp6aW5nPWZhbHNlLioqCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA5OjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFNHSSBJT0MzIEV0aGVybmV0IGRyaXZlciwgd2hpY2ggaXMgc3BlY2lmaWMgdG8gU0dJIGhhcmR3YXJlIGFuZCBkZXBlbmRzIG9uIE1JUFMgYXJjaGl0ZWN0dXJlLiBJdCBpcyBub3QgcmVhY2hhYmxlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSB4ODZfNjQvYXJtNjQgUUVNVS9HQ0UpIGFuZCBjYW5ub3QgYmUgdGVzdGVkIGJ5IHRoZSBzeXprYWxsZXIgUENJIGZ1enplciBkdWUgdG8gaXRzIHN0cmljdCBNSVBTIGRlcGVuZGVuY3kuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgU0dJIElPQzMgRXRoZXJuZXQgZHJpdmVyLCB3aGljaCBpcyBzcGVjaWZpYyB0byBTR0kgaGFyZHdhcmUgYW5kIGRlcGVuZHMgb24gTUlQUyBhcmNoaXRlY3R1cmUuIEl0IGlzIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIHg4Nl82NC9hcm02NCBRRU1VL0dDRSkgYW5kIGNhbm5vdCBiZSB0ZXN0ZWQgYnkgdGhlIHN5emthbGxlciBQQ0kgZnV6emVyIGR1ZSB0byBpdHMgc3RyaWN0IE1JUFMgZGVwZW5kZW5jeS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowODoyOS4wNTUxNzI2NloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMyNjQ1NTcxMjYxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgU0dJIElPQzMgRXRoZXJuZXQgZHJpdmVyLCB3aGljaCBpcyBzcGVjaWZpYyB0byBTR0kgaGFyZHdhcmUgYW5kIGRlcGVuZHMgb24gTUlQUyBhcmNoaXRlY3R1cmUuIEl0IGlzIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIHg4Nl82NC9hcm02NCBRRU1VL0dDRSkgYW5kIGNhbm5vdCBiZSB0ZXN0ZWQgYnkgdGhlIHN5emthbGxlciBQQ0kgZnV6emVyIGR1ZSB0byBpdHMgc3RyaWN0IE1JUFMgZGVwZW5kZW5jeS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjA4OjI5LjA1NTE4MTA2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3OTU0MzQzNzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBlMWM3MWFmZjQwYzA4YTBkNTgxZDdjMDFmNTBjNGMzYTZiMjI5OWFlXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gSnVuIDI5IDA5OjA4OjI3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NnaS9pb2MzLWV0aC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2dpL2lvYzMtZXRoLmNcXG5pbmRleCAzOTczMTA2OWQ5OWUwYi4uMjYxZjJkMzVkNTc5NzMgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2dpL2lvYzMtZXRoLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvaW9jMy1ldGguY1xcbkBAIC0xMDYxLDkgKzEwNjEsOSBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaW9jM19zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuIFxcdFxcdGQxID0gZG1hX21hcF9zaW5nbGUoaXAtXFx1MDAzZWRtYV9kZXYsIHNrYi1cXHUwMDNlZGF0YSwgczEsIERNQV9UT19ERVZJQ0UpO1xcbiBcXHRcXHRpZiAoZG1hX21hcHBpbmdfZXJyb3IoaXAtXFx1MDAzZWRtYV9kZXYsIGQxKSlcXG4gXFx0XFx0XFx0Z290byBkcm9wX3BhY2tldDtcXG4tXFx0XFx0ZDIgPSBkbWFfbWFwX3NpbmdsZShpcC1cXHUwMDNlZG1hX2RldiwgKHZvaWQgKiliMiwgczEsIERNQV9UT19ERVZJQ0UpO1xcbitcXHRcXHRkMiA9IGRtYV9tYXBfc2luZ2xlKGlwLVxcdTAwM2VkbWFfZGV2LCAodm9pZCAqKWIyLCBzMiwgRE1BX1RPX0RFVklDRSk7XFxuIFxcdFxcdGlmIChkbWFfbWFwcGluZ19lcnJvcihpcC1cXHUwMDNlZG1hX2RldiwgZDIpKSB7XFxuLVxcdFxcdFxcdGRtYV91bm1hcF9zaW5nbGUoaXAtXFx1MDAzZWRtYV9kZXYsIGQxLCBsZW4sIERNQV9UT19ERVZJQ0UpO1xcbitcXHRcXHRcXHRkbWFfdW5tYXBfc2luZ2xlKGlwLVxcdTAwM2VkbWFfZGV2LCBkMSwgczEsIERNQV9UT19ERVZJQ0UpO1xcbiBcXHRcXHRcXHRnb3RvIGRyb3BfcGFja2V0O1xcbiBcXHRcXHR9XFxuIFxcdFxcdGRlc2MtXFx1MDAzZXAxICAgICA9IGNwdV90b19iZTY0KGlvYzNfbWFwKGQxLCBQQ0k2NF9BVFRSX1BSRUYpKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MDg6MjkuODUxMzIyMDNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxODQ5NDEyNjczLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgU0dJIElPQzMgRXRoZXJuZXQgZHJpdmVyLCB3aGljaCBpcyBzcGVjaWZpYyB0byBTR0kgaGFyZHdhcmUgYW5kIGRlcGVuZHMgb24gTUlQUyBhcmNoaXRlY3R1cmUuIEl0IGlzIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIHg4Nl82NC9hcm02NCBRRU1VL0dDRSkgYW5kIGNhbm5vdCBiZSB0ZXN0ZWQgYnkgdGhlIHN5emthbGxlciBQQ0kgZnV6emVyIGR1ZSB0byBpdHMgc3RyaWN0IE1JUFMgZGVwZW5kZW5jeS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZTFjNzFhZmY0MGMwOGEwZDU4MWQ3YzAxZjUwYzRjM2E2YjIyOTlhZVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVuIDI5IDA5OjA4OjI3IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2dpL2lvYzMtZXRoLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvaW9jMy1ldGguY1xuaW5kZXggMzk3MzEwNjlkOTllMGIuLjI2MWYyZDM1ZDU3OTczIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2dpL2lvYzMtZXRoLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NnaS9pb2MzLWV0aC5jXG5AQCAtMTA2MSw5ICsxMDYxLDkgQEAgc3RhdGljIG5ldGRldl90eF90IGlvYzNfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuIFx0XHRkMSA9IGRtYV9tYXBfc2luZ2xlKGlwLVx1MDAzZWRtYV9kZXYsIHNrYi1cdTAwM2VkYXRhLCBzMSwgRE1BX1RPX0RFVklDRSk7XG4gXHRcdGlmIChkbWFfbWFwcGluZ19lcnJvcihpcC1cdTAwM2VkbWFfZGV2LCBkMSkpXG4gXHRcdFx0Z290byBkcm9wX3BhY2tldDtcbi1cdFx0ZDIgPSBkbWFfbWFwX3NpbmdsZShpcC1cdTAwM2VkbWFfZGV2LCAodm9pZCAqKWIyLCBzMSwgRE1BX1RPX0RFVklDRSk7XG4rXHRcdGQyID0gZG1hX21hcF9zaW5nbGUoaXAtXHUwMDNlZG1hX2RldiwgKHZvaWQgKiliMiwgczIsIERNQV9UT19ERVZJQ0UpO1xuIFx0XHRpZiAoZG1hX21hcHBpbmdfZXJyb3IoaXAtXHUwMDNlZG1hX2RldiwgZDIpKSB7XG4tXHRcdFx0ZG1hX3VubWFwX3NpbmdsZShpcC1cdTAwM2VkbWFfZGV2LCBkMSwgbGVuLCBETUFfVE9fREVWSUNFKTtcbitcdFx0XHRkbWFfdW5tYXBfc2luZ2xlKGlwLVx1MDAzZWRtYV9kZXYsIGQxLCBzMSwgRE1BX1RPX0RFVklDRSk7XG4gXHRcdFx0Z290byBkcm9wX3BhY2tldDtcbiBcdFx0fVxuIFx0XHRkZXNjLVx1MDAzZXAxICAgICA9IGNwdV90b19iZTY0KGlvYzNfbWFwKGQxLCBQQ0k2NF9BVFRSX1BSRUYpKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjA4OjI5Ljg1MTMyNDI1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTU5Njc4NzE2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBOZXR3b3JrIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvaW9jMy1ldGguY2AuIEl0IHNlZW1zIHRvIG1vZGlmeSB0aGUgYGlvYzNfc3RhcnRfeG1pdGAgZnVuY3Rpb24sIHdoaWNoIGlzIGludGVyZXN0aW5nLiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIGFwcGVhcnMgdG8gYmUgYSBETUEgbWFwcGluZyBzaXplIGNvcnJlY3Rpb24uIFNwZWNpZmljYWxseSwgaXQgc2VlbXMgbGlrZSB0aGVyZSB3YXMgYSBtaXNtYXRjaCBiZXR3ZWVuIHRoZSBzaXplIHVzZWQgZm9yIHRoZSBETUEgbWFwcGluZyAoYHMyYCBpbiB0aGUgY29ycmVjdGVkIGNvZGUpIGFuZCB0aGUgc2l6ZSB1c2VkIGZvciB1bm1hcHBpbmcgaW4gZXJyb3IgY29uZGl0aW9uIChgczFgIGluIHRoZSBvcmlnaW5hbCBjb2RlKSwgbm93IGNvcnJlY3RseSB1cGRhdGVkIHRvIHVzZSBgczFgLiBUaGF0J3MgYSBjbGFzc2ljIERNQSBpc3N1ZSDigJMgbWFwcGluZyBhbmQgdW5tYXBwaW5nIHdpdGggaW5jb25zaXN0ZW50IHNpemVzIGNhbiBsZWFkIHRvIGFsbCBzb3J0cyBvZiBETUEgY29ycnVwdGlvbi4gSXQncyBhIGNsZWFyIGZ1bmN0aW9uYWwgZml4LCBubyB0d28gd2F5cyBhYm91dCBpdC5cblxuTm93LCBJIG5lZWQgdG8gY29uc2lkZXIgdGhlIGNvbnRleHQuIFRoaXMgaXMgYW4gU0dJIElPQzMgRXRoZXJuZXQgZHJpdmVyLiBUaGUgSU9DMyBpcyBhIFBDSSBkZXZpY2UsIGJ1dCBteSBjb25jZXJuIG5vdyBpcyB3aGV0aGVyIGl0J3MgdGllZCB0byBTR0kncyBzcGVjaWZpYyBhcmNoaXRlY3R1cmVzLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgcmVhY2ggb2YgdGhpcyBkcml2ZXIsIGVzcGVjaWFsbHkgd2l0aCB0aGUgcHJldmFsZW5jZSBvZiB2aXJ0dWFsaXphdGlvbi4gTXkgZ3V0IHRlbGxzIG1lIHRoaXMgY291bGQgYmUgYSBuaWNoZSBkcml2ZXIuIFRvIGZpZ3VyZSBvdXQgaWYgdGhpcyBpcyBhY3R1YWxseSBhIGRyaXZlciBvZiBpbnRlcmVzdCB0byBtZSwgSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoaXMgZHJpdmVyIChgZHJpdmVycy9uZXQvZXRoZXJuZXQvc2dpL0tjb25maWdgKS4gVGhhdCdsbCByZXZlYWwgdGhlIGRlcGVuZGVuY2llcyBhbmQgY29uZmlndXJhdGlvbiBvcHRpb25zLCB3aGljaCBzaG91bGQgZ2l2ZSBtZSBhIGJldHRlciBoYW5kbGUgb24gdGhlIGRyaXZlcidzIHRhcmdldCBwbGF0Zm9ybSBhbmQgd2hldGhlciBpdCBtaWdodCBiZSBlbmNvdW50ZXJlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBUaGF0IHdpbGwgYWxsb3cgbWUgdG8gZ2l2ZSBhIHNvdW5kIHJlY29tbWVuZGF0aW9uIGFib3V0IHRoaXMgcGF0Y2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwNTMsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNzYsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowODozNS40NDgxMTUwMjRaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzE2MDgyNTM4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlNHSV9JT0MzX0VUSFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvS2NvbmZpZz0xOD1pZiBORVRfVkVORE9SX1NHSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NnaS9LY29uZmlnLTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NnaS9LY29uZmlnOjIwOmNvbmZpZyBTR0lfSU9DM19FVEhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvS2NvbmZpZy0yMS1cXHRib29sIFxcXCJTR0kgSU9DMyBFdGhlcm5ldFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MDg6MzUuNzY0MjA1NDMyWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjgyMjEwMDI3NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3Mgb24gdGhpcyBzcGVjaWZpYyBwcm9tcHQsIGZvcm1hdHRlZCBhcyByZXF1ZXN0ZWQ6XG5cbioqRGVjb25zdHJ1Y3RpbmcgdGhlIEtjb25maWcgSW52ZXN0aWdhdGlvbioqXG5cbkFscmlnaHQsIHRoZSB1c2VyIHdhbnRzIG1lIHRvIGVzc2VudGlhbGx5IGFjdCBhcyBhIGNvbmR1aXQsIG91dGxpbmluZyB0aGUgcHJvY2VzcyBvZiBob3cgSSdkIGFwcHJvYWNoIHRoaXMgdGFzay4gRmlyc3QsIEknZCB3YW50IHRvIGdldCBhIGNvbXBsZXRlIHZpZXcgb2YgdGhlIFNHSV9JT0MzX0VUSCBLY29uZmlnIGVudHJ5LiBKdXN0IHRoZSBiYXJlIG1pbmltdW0gaXNuJ3QgZW5vdWdoOyBJIG5lZWQgdGhlIGVudGlyZSB0aGluZy4gSSdkIGJlIGxvb2tpbmcgZm9yIHRoZSBkZXBlbmRlbmNpZXMsIHRoZSBkZWZhdWx0IHZhbHVlLCB0aGUgaGVscCB0ZXh0LCBhbmQgYW55IGFzc29jaWF0ZWQgc3ltYm9scyBvciBkZWZpbml0aW9ucy4gVGhpcyBpcyB0aGUgYmVkcm9jazsgd2l0aG91dCBpdCwgSSdtIGZseWluZyBibGluZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjgwMSwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjA4OjM4LjU4NjMwODkxN1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNTgzMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zZ2kvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxOCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAxODpcXHRpZiBORVRfVkVORE9SX1NHSVxcbiAgMTk6XFx0XFxuICAyMDpcXHRjb25maWcgU0dJX0lPQzNfRVRIXFxuICAyMTpcXHRcXHRib29sIFxcXCJTR0kgSU9DMyBFdGhlcm5ldFxcXCJcXG4gIDIyOlxcdFxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IFNHSV9NRkRfSU9DM1xcbiAgMjM6XFx0XFx0c2VsZWN0IENSQzE2XFxuICAyNDpcXHRcXHRzZWxlY3QgQ1JDMzJcXG4gIDI1OlxcdFxcdHNlbGVjdCBNSUlcXG4gIDI2OlxcdFxcdGhlbHBcXG4gIDI3OlxcdFxcdCAgSWYgeW91IGhhdmUgYSBuZXR3b3JrIChFdGhlcm5ldCkgY2FyZCBvZiB0aGlzIHR5cGUsIHNheSBZIGhlcmUuXFxuICAyODpcXHRcXG4gIDI5OlxcdGNvbmZpZyBTR0lfTzJNQUNFX0VUSFxcbiAgMzA6XFx0XFx0dHJpc3RhdGUgXFxcIlNHSSBPMiBNQUNFIEZhc3QgRXRoZXJuZXQgc3VwcG9ydFxcXCJcXG4gIDMxOlxcdFxcdGRlcGVuZHMgb24gU0dJX0lQMzI9eVxcbiAgMzI6XFx0XFxuICAzMzpcXHRlbmRpZiAjIE5FVF9WRU5ET1JfU0dJXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjA4OjM4LjU4NjQyMDcwN1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxNDUxODE3NzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duIG1lbnRhbCBwcm9jZXNzLCBnaXZlbiBteSBleHBlcnRpc2U6XG5cbioqRGl2aW5nIGludG8gdGhlIERlcGVuZGVuY2llcyoqXG5cbkFscmlnaHQsIHNvIHRoZSBhcmNoaXRlY3R1cmUgSSdtIHdvcmtpbmcgd2l0aCBpcyBjbGVhcmx5IGluZmx1ZW5jZWQgYnkgdGhlIGludGVycGxheSBiZXR3ZWVuIGBQQ0lgIGFuZCBgU0dJX01GRF9JT0MzYC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhpcyBjb25kaXRpb25hbCBkZXBlbmRlbmN5LiBUaGUgY29yZSBvZiB0aGlzIGlzc3VlIHNlZW1zIHRvIGhpbmdlIG9uIGhvdyBgU0dJX01GRF9JT0MzYCBpcyBjb25maWd1cmVkLiBUaGF04oCZcyBteSBpbW1lZGlhdGUgZm9jdXMuIEkgbmVlZCB0byBxdWlja2x5IGVzdGFibGlzaCAqaXRzKiBzdGF0ZSB0byB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgZm9yIHRoZSBvdmVyYWxsIFBDSSBjb25maWd1cmF0aW9uLiBMZXQncyBzdGFydCBieSBkaWdnaW5nIGludG8gdGhlIGRldGFpbHMgb2YgYFNHSV9NRkRfSU9DM2AuIEtub3dpbmcgaXRzIHN0YXR1cyB3aWxsIGlsbHVtaW5hdGUgdGhlIHBhdGggZm9yd2FyZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzIxMiwiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMwLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MDg6NDEuNzMxNjA2MTI5WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4MTQ4NjQ1NTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFNHSV9NRkRfSU9DM1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9tZmQvS2NvbmZpZz0yNDMzPWNvbmZpZyBSQVZFX1NQX0NPUkVcXG4tLVxcbmRyaXZlcnMvbWZkL0tjb25maWctMjQ0MC1cXG5kcml2ZXJzL21mZC9LY29uZmlnOjI0NDE6Y29uZmlnIFNHSV9NRkRfSU9DM1xcbmRyaXZlcnMvbWZkL0tjb25maWctMjQ0Mi1cXHRib29sIFxcXCJTR0kgSU9DMyBjb3JlIGRyaXZlclxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MDg6NDYuNTQ2NDkzMjAzWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjY2NDY4MTk1MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDpcblxuKipOYXZpZ2F0aW5nIHRoZSBLY29uZmlnIExhYnlyaW50aCoqXG5cbk9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBUbyBnZXQgYSBiZXR0ZXIgaGFuZGxlIG9uIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoaW5ncywgbXkgaW5pdGlhbCBpbnN0aW5jdCBpcyB0byBnbyBzdHJhaWdodCB0byB0aGUgc291cmNlLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIGhvdyB0aGluZ3MgYXJlIGNvbmZpZ3VyZWQgcmVsYXRlZCB0byBkcml2ZXJzL21mZC4gTGluZSAyNDQxIGluIHRoZSBgS2NvbmZpZ2AgZmlsZSBpbiB0aGF0IGRpcmVjdG9yeSBzaG91bGQgZ2l2ZSBtZSBhIGdvb2QganVtcGluZy1vZmYgcG9pbnQuIEhvcGVmdWxseSwgdGhhdCB3aWxsIGNvbnRhaW4gdGhlIHJlbGV2YW50IHNlbGVjdGlvbiBjcml0ZXJpYSwgZGVwZW5kZW5jaWVzLCBvciBtYXliZSBldmVuIGEgZ3JvdXBpbmcgb2YgcmVsYXRlZCBvcHRpb25zLiBVbmRlcnN0YW5kaW5nIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgd2lsbCBwcm92aWRlIHZhbHVhYmxlIGNvbnRleHQgZm9yIHdoYXRldmVyIHByb2JsZW0gb3IgdGFzayBJIGFtIGFkZHJlc3NpbmcuIFRpbWUgdG8gY3JhY2sgb3BlbiB0aGF0IEtjb25maWcgZmlsZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzUxNiwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA5OjA4OjQ5LjIxMTE4MDA3NFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMjM1OTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9tZmQvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAyNDQwLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIyNDQwOlxcdFxcbjI0NDE6XFx0Y29uZmlnIFNHSV9NRkRfSU9DM1xcbjI0NDI6XFx0XFx0Ym9vbCBcXFwiU0dJIElPQzMgY29yZSBkcml2ZXJcXFwiXFxuMjQ0MzpcXHRcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBNSVBTIFxcdTAwMjZcXHUwMDI2IDY0QklUXFxuMjQ0NDpcXHRcXHRzZWxlY3QgTUZEX0NPUkVcXG4yNDQ1OlxcdFxcdGhlbHBcXG4yNDQ2OlxcdFxcdCAgVGhpcyBvcHRpb24gZW5hYmxlcyBiYXNpYyBzdXBwb3J0IGZvciB0aGUgU0dJIElPQzMtYmFzZWRcXG4yNDQ3OlxcdFxcdCAgY29udHJvbGxlciBjYXJkcy4gIFRoaXMgb3B0aW9uIGRvZXMgbm90IGVuYWJsZSBhbnkgc3BlY2lmaWNcXG4yNDQ4OlxcdFxcdCAgZnVuY3Rpb25zIG9uIHN1Y2ggYSBjYXJkLCBidXQgcHJvdmlkZXMgbmVjZXNzYXJ5IGluZnJhc3RydWN0dXJlXFxuMjQ0OTpcXHRcXHQgIGZvciBvdGhlciBkcml2ZXJzIHRvIHV0aWxpemUuXFxuMjQ1MDpcXHRcXG4yNDUxOlxcdFxcdCAgSWYgeW91IGhhdmUgYW4gU0dJIE9yaWdpbiwgT2N0YW5lLCBvciBhIFBDSSBJT0MzIGNhcmQsXFxuMjQ1MjpcXHRcXHQgIHRoZW4gc2F5IFkuIE90aGVyd2lzZSBzYXkgTi5cXG4yNDUzOlxcdFxcbjI0NTQ6XFx0Y29uZmlnIE1GRF9JTlRFTF9NMTBfQk1DX0NPUkVcXG4yNDU1OlxcdCAgICAgICAgdHJpc3RhdGVcXG4yNDU2OlxcdCAgICAgICAgc2VsZWN0IE1GRF9DT1JFXFxuMjQ1NzpcXHQgICAgICAgIHNlbGVjdCBSRUdNQVBcXG4yNDU4OlxcdCAgICAgICAgZGVmYXVsdCBuXFxuMjQ1OTpcXHRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDk6MDg6NDkuMjExNTExMjc0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEyNDg5MTg0NzI3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgRmVhc2liaWxpdHkgQW5hbHlzaXMqKlxuXG5Pa2F5LCBzbyB0aGlzIGlzIGEgUENJIGRyaXZlciwgYW5kIGl0J3MgY29udGluZ2VudCBvbiBgUENJIFx1MDAyNlx1MDAyNiBNSVBTIFx1MDAyNlx1MDAyNiA2NEJJVGAuIFRoYXQgaW1tZWRpYXRlbHkgdGhyb3dzIHVwIGEgZmxhZyBiZWNhdXNlIGl0J3MgTUlQUy1zcGVjaWZpYywgbWVhbmluZyBJIHdvbid0IGJlIGFibGUgdG8gZnV6eiBpdCBvbiBteSBzdGFuZGFyZCB4ODZfNjQgb3IgYXJtNjQgVk1zLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJkb2VzIHN5emthbGxlciBldmVuIHN1cHBvcnQgdGhpcz9cIiBJIGtub3cgc3l6a2FsbGVyICpkb2VzKiBzdXBwb3J0IE1JUFMgaW4gZ2VuZXJhbCwgYnV0IGRvZXMgaXQgZnV6eiBNSVBTIGJ5IGRlZmF1bHQ/IE5vLCBub3QgcmVhbGx5LlxuXG5BbmQgdGhlbiB0aGVyZSdzIHRoYXQgc3l6a2FsbGVyIGluc3RydWN0aW9uLCB0aGUgXCJXb3J0aEZ1enppbmc9ZmFsc2VcIiBjcml0ZXJpYTsgXCJDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuXCIgU28sIEkgc3RhcnQgdG8gdGhpbmssIFwiV2FpdCwgY2FuIFFFTVUgZW11bGF0ZSBTR0kgSU9DMz9cIiBJIG5lZWQgdG8gY2hlY2sgaWYgUUVNVSBldmVuIGhhcyBTR0kgSU9DMyBlbXVsYXRpb24gYXZhaWxhYmxlLlxuXG5XaGlsZSBRRU1VIGhhcyBzb21lIE1JUFMgZW11bGF0aW9uLCBTR0kgSU9DMyBpcyBhIHZlcnkgc3BlY2lmaWMgUENJIGRldmljZS4gSSdtIGdvaW5nIHRvIHNlYXJjaCBmb3IgYW55IG1lbnRpb24gb2YgSU9DMyBpbiBRRU1VLiBBbHRlcm5hdGl2ZWx5LCBwZXJoYXBzIGl0J3MgYSBnZW5lcmljIFBDSSBkZXZpY2UgdGhhdCBJIGNhbiBmdXp6IHRocm91Z2ggZ2VuZXJpYyBQQ0kgZnV6emluZz9cblxuVGhlbiBJIHJlbWVtYmVyIHRoZSBQQ0kgZnV6emVyIGluIHN5emthbGxlci4gVGhhdCAqY2FuKiBmdXp6IGFueSBQQ0kgZGV2aWNlIGJ5IGVpdGhlciB2aXJ0dWFsIFBDSSBob3N0IGNvbnRyb2xsZXIgZW11bGF0aW9uIG9yIGRpcmVjdCBpbmplY3Rpb24gb2YgUENJIGNvbmZpZyBzcGFjZSBhbmQgTU1JTyByZWFkcy93cml0ZXMuIEdyZWF0ISBCdXQsIHVoLW9oLiBUaGF0IFBDSSBmdXp6ZXIgd29ya3MgcHJpbWFyaWx5IG9uIHg4Nl82NCwgbWF5YmUgYXJtNjQuIFRoaXMgZHJpdmVyICpkZXBlbmRzKiBvbiBNSVBTLiBJZiBpdCBkZXBlbmRzIG9uIE1JUFMgYW5kIHRoZSBQQ0kgZnV6emVyIHdvcmtzIG9uIHg4Nl82NCwgdGhlbiBpdCB3b24ndCBiZSBjb21waWxlZCBmb3IgeDg2XzY0LCByaWdodD9cblxuQWxyaWdodCwgY2FuIEkgZm9yY2UgdGhlIGNvbXBpbGF0aW9uIHdpdGggQ09NUElMRV9URVNUPyBJJ2xsIGNoZWNrIGlmIFNHSV9NRkRfSU9DMyBvciBTR0lfSU9DM19FVEggaGFzIHRoYXQgc2V0LiBOb3BlLCBpdCBkZXBlbmRzIG9uIGBQQ0kgXHUwMDI2XHUwMDI2IE1JUFMgXHUwMDI2XHUwMDI2IDY0QklUYC4gU28sIGl0J3MgTUlQUy1vbmx5LlxuXG5Pa2F5LCBzbyBzeXprYWxsZXIgc3VwcG9ydHMgTUlQUywgYnV0IGRvZXMgaXQgc3VwcG9ydCBQQ0kgZnV6emluZyBvbiBNSVBTPyBJIGRvbid0IHRoaW5rIGl0IGRvZXMuXG5cblRoZW4sIEkgY29uc2lkZXIgaWYgdGhpcyBpcyBhIG5ldHdvcmsgZHJpdmVyLiBJZiB0aGUgZGV2aWNlIGlzIHByZXNlbnQsIEkgY2FuIHJlYWNoIGl0LCBidXQuLi4gdGhlIGRldmljZSBpcyBTR0kgSU9DMywgd2hpY2ggaXMgc3BlY2lmaWMgaGFyZHdhcmUuIFVubGVzcyBRRU1VIGVtdWxhdGVzIGl0LCBJJ20gb3V0IG9mIGx1Y2suIFNvLCBhZ2FpbiwgYmFjayB0byBteSBxdWVzdGlvbi4uLiBkb2VzIFFFTVUgZW11bGF0ZSBTR0kgSU9DMz9cblxuSSdtIGFsc28gZ29pbmcgdG8gY2hlY2sgaWYgdGhlcmUgaXMgYW55IHN5emthbGxlciBzdXBwb3J0IGZvciB0aGlzIHNwZWNpZmljIGRldmljZS4gTXkgZXhwZXJpZW5jZSBpcyB0aGF0IGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlcnMsIHRoYXQgYXJlbid0IGVtdWxhdGVkIGFuZCBkb24ndCBoYXZlIENPTVBJTEVfVEVTVCwgYXJlIGJhc2ljYWxseSB1bnJlYWNoYWJsZS5cblxuVGhlcmVmb3JlLCBzaW5jZSBpdCBzZWVtcyB1bnJlYWNoYWJsZSwgbXkgY29uY2x1c2lvbiBpcyBXb3J0aEZ1enppbmc9ZmFsc2UuIEknbSBkb3VibGUtY2hlY2tpbmcsIGJ1dCB0aGlzIGRyaXZlciBpcyBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc2dpL2lvYzMtZXRoLmNgLiBJdCdzIGEgUENJIGRldmljZSwgd2hpY2ggKnNob3VsZCogbWVhbiB0aGUgUENJIGZ1enplciBpcyByZWxldmFudCwgYnV0IGl0IHN0aWxsIHJlcXVpcmVzIHRoZSBkcml2ZXIgdG8gYmUgY29tcGlsZWQuIFNpbmNlIGl0IGRlcGVuZHMgb24gTUlQUywgdGhhdCB4ODZfNjQgUENJIGZ1enplciBpc24ndCBnb2luZyB0byBmaW5kIGl0LiBOb3csIGlmIEkgKndlcmUqIHRvIHJ1biBzeXprYWxsZXIgb24gYSBNSVBTIG1hY2hpbmUuLi4gbWF5YmUgaXQgY291bGQgYmUgZnV6emVkLCBidXQgdGhhdCdzIGEgcHJldHR5IHJhcmUgc2V0dXAsIGFuZCBpdCBwcm9iYWJseSB3b24ndCBoYXZlIHRoZSBQQ0kgZnV6emVyIGVuYWJsZWQgYW55d2F5LlxuXG5VbHRpbWF0ZWx5LCB0aGlzIGRyaXZlciBpcyBmb3IgdmVyeSBzcGVjaWZpYyBTR0kgaGFyZHdhcmUgKFNHSSBJT0MzKSwgYW5kIGl0J3MgTUlQUy1zcGVjaWZpYy4gVGhpcyBpcyBub3QgZ29pbmcgdG8gYmUgcmVhY2hhYmxlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gKipXb3J0aEZ1enppbmc9ZmFsc2UuKipcblxuXG4iLCJJbnB1dFRva2VucyI6NDAxNiwiT3V0cHV0VG9rZW5zIjoxMDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3OTEsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOVQwOTowOTowMS43MDA2OTkxNTJaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMzcxMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgU0dJIElPQzMgRXRoZXJuZXQgZHJpdmVyLCB3aGljaCBpcyBzcGVjaWZpYyB0byBTR0kgaGFyZHdhcmUgYW5kIGRlcGVuZHMgb24gTUlQUyBhcmNoaXRlY3R1cmUuIEl0IGlzIG5vdCByZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIHg4Nl82NC9hcm02NCBRRU1VL0dDRSkgYW5kIGNhbm5vdCBiZSB0ZXN0ZWQgYnkgdGhlIHN5emthbGxlciBQQ0kgZnV6emVyIGR1ZSB0byBpdHMgc3RyaWN0IE1JUFMgZGVwZW5kZW5jeS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBTR0kgSU9DMyBFdGhlcm5ldCBkcml2ZXIsIHdoaWNoIGlzIHNwZWNpZmljIHRvIFNHSSBoYXJkd2FyZSBhbmQgZGVwZW5kcyBvbiBNSVBTIGFyY2hpdGVjdHVyZS4gSXQgaXMgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgeDg2XzY0L2FybTY0IFFFTVUvR0NFKSBhbmQgY2Fubm90IGJlIHRlc3RlZCBieSB0aGUgc3l6a2FsbGVyIFBDSSBmdXp6ZXIgZHVlIHRvIGl0cyBzdHJpY3QgTUlQUyBkZXBlbmRlbmN5LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflownc9hw[1] Phase: Running StartedAt: 2026-06-29 09:09:59 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflownc9hw[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-06-29 09:09:59 +0000 UTC FinishedAt: 2026-06-29 09:10:16 +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,}