Name: series-workflowfkhpf Phase: Failed StartedAt: 2026-07-20 17:22:31 +0000 UTC FinishedAt: 2026-07-20 17:37:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfkhpf[0] Phase: Succeeded StartedAt: 2026-07-20 17:22:31 +0000 UTC FinishedAt: 2026-07-20 17:37:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfkhpf[0].run-triage Phase: Succeeded StartedAt: 2026-07-20 17:22:31 +0000 UTC FinishedAt: 2026-07-20 17:37:14 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDE3OjM1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgYSBzYW1wbGUgbW9kdWxlIChzYW1wbGVzL2RhbW9uL210aWVyLmMpIHdoaWNoIGlzIG5vdCBwYXJ0IG9mIHRoZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy4gU2FtcGxlIG1vZHVsZXMgYXJlIG5vdCB0eXBpY2FsbHkgZnV6emVkIGFzIHRoZXkgYXJlIG5vdCB1c2VkIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAxNzozNTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGJmYTNhNWFiNzkxYWU1M2E3NWI3ZTI2YjE3MTBiY2NiZDhjZTlmNWFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1bCAyMCAxNzozNTowNyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9zYW1wbGVzL2RhbW9uL210aWVyLmMgYi9zYW1wbGVzL2RhbW9uL210aWVyLmNcbmluZGV4IGFjOWMyNGI5MmVhZDg0Li4zNzEyMjg3ZjAwOWM1NCAxMDA2NDRcbi0tLSBhL3NhbXBsZXMvZGFtb24vbXRpZXIuY1xuJiM0MzsmIzQzOyYjNDM7IGIvc2FtcGxlcy9kYW1vbi9tdGllci5jXG5AQCAtNTIsMTIgJiM0Mzs1Miw3IEBAIG1vZHVsZV9wYXJhbShkZXRlY3Rfbm9kZV9hZGRyZXNzZXMsIGJvb2wsIDA2MDApO1xuIFxuIHN0YXRpYyBzdHJ1Y3QgZGFtb25fY3R4ICpjdHhzWzJdO1xuIFxuLXN0cnVjdCByZWdpb25fcmFuZ2Uge1xuLVx0cGh5c19hZGRyX3Qgc3RhcnQ7XG4tXHRwaHlzX2FkZHJfdCBlbmQ7XG4tfTtcbi1cbi1zdGF0aWMgaW50IG5pZF90b19waHlzKGludCB0YXJnZXRfbm9kZSwgc3RydWN0IHJlZ2lvbl9yYW5nZSAqcmFuZ2UpXG4mIzQzO3N0YXRpYyBpbnQgbmlkX3RvX3BoeXMoaW50IHRhcmdldF9ub2RlLCBzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZSAqcmFuZ2UpXG4ge1xuIFx0aWYgKCFub2RlX29ubGluZSh0YXJnZXRfbm9kZSkpIHtcbiBcdFx0cHJfZXJyKFwmIzM0O05VTUEgbm9kZSAlZCBpcyBub3Qgb25saW5lXFxuXCYjMzQ7LCB0YXJnZXRfbm9kZSk7XG5AQCAtNzgsOCAmIzQzOzczLDcgQEAgc3RhdGljIHN0cnVjdCBkYW1vbl9jdHggKmRhbW9uX3NhbXBsZV9tdGllcl9idWlsZF9jdHgoYm9vbCBwcm9tb3RlKVxuIFx0c3RydWN0IGRhbW9zICpzY2hlbWU7XG4gXHRzdHJ1Y3QgZGFtb3NfcXVvdGFfZ29hbCAqcXVvdGFfZ29hbDtcbiBcdHN0cnVjdCBkYW1vc19maWx0ZXIgKmZpbHRlcjtcbi1cdHN0cnVjdCByZWdpb25fcmFuZ2UgYWRkcjtcbi1cdHN0cnVjdCBkYW1vbl9hZGRyX3JhbmdlIHJhbmdlO1xuJiM0MztcdHN0cnVjdCBkYW1vbl9hZGRyX3JhbmdlIGFkZHI7XG4gXHRpbnQgcmV0O1xuIFxuIFx0Y3R4ID0gZGFtb25fbmV3X2N0eCgpO1xuQEAgLTEyMywxMCAmIzQzOzExNyw3IEBAIHN0YXRpYyBzdHJ1Y3QgZGFtb25fY3R4ICpkYW1vbl9zYW1wbGVfbXRpZXJfYnVpbGRfY3R4KGJvb2wgcHJvbW90ZSlcbiBcdGlmIChhZGRyLnN0YXJ0IFx1MDAzZT0gYWRkci5lbmQpXG4gXHRcdGdvdG8gZnJlZV9vdXQ7XG4gXG4tXHRyYW5nZS5zdGFydCA9IGFkZHIuc3RhcnQ7XG4tXHRyYW5nZS5lbmQgPSBhZGRyLmVuZDtcbi1cbi1cdHJldCA9IGRhbW9uX3NldF9yZWdpb25zKHRhcmdldCwgXHUwMDI2cmFuZ2UsIDEsIERBTU9OX01JTl9SRUdJT05fU1opO1xuJiM0MztcdHJldCA9IGRhbW9uX3NldF9yZWdpb25zKHRhcmdldCwgXHUwMDI2YWRkciwgMSwgREFNT05fTUlOX1JFR0lPTl9TWik7XG4gXHRpZiAocmV0KVxuIFx0XHRnb3RvIGZyZWVfb3V0O1xuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDE3OjM1PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIGEgc2FtcGxlIG1vZHVsZSAoc2FtcGxlcy9kYW1vbi9tdGllci5jKSB3aGljaCBpcyBub3QgcGFydCBvZiB0aGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMuIFNhbXBsZSBtb2R1bGVzIGFyZSBub3QgdHlwaWNhbGx5IGZ1enplZCBhcyB0aGV5IGFyZSBub3QgdXNlZCBpbiBwcm9kdWN0aW9uIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGJmYTNhNWFiNzkxYWU1M2E3NWI3ZTI2YjE3MTBiY2NiZDhjZTlmNWEKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEp1bCAyMCAxNzozNTowNyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL3NhbXBsZXMvZGFtb24vbXRpZXIuYyBiL3NhbXBsZXMvZGFtb24vbXRpZXIuYwppbmRleCBhYzljMjRiOTJlYWQ4NC4uMzcxMjI4N2YwMDljNTQgMTAwNjQ0Ci0tLSBhL3NhbXBsZXMvZGFtb24vbXRpZXIuYwomIzQzOyYjNDM7JiM0MzsgYi9zYW1wbGVzL2RhbW9uL210aWVyLmMKQEAgLTUyLDEyICYjNDM7NTIsNyBAQCBtb2R1bGVfcGFyYW0oZGV0ZWN0X25vZGVfYWRkcmVzc2VzLCBib29sLCAwNjAwKTsKIAogc3RhdGljIHN0cnVjdCBkYW1vbl9jdHggKmN0eHNbMl07CiAKLXN0cnVjdCByZWdpb25fcmFuZ2UgewotCXBoeXNfYWRkcl90IHN0YXJ0OwotCXBoeXNfYWRkcl90IGVuZDsKLX07Ci0KLXN0YXRpYyBpbnQgbmlkX3RvX3BoeXMoaW50IHRhcmdldF9ub2RlLCBzdHJ1Y3QgcmVnaW9uX3JhbmdlICpyYW5nZSkKJiM0MztzdGF0aWMgaW50IG5pZF90b19waHlzKGludCB0YXJnZXRfbm9kZSwgc3RydWN0IGRhbW9uX2FkZHJfcmFuZ2UgKnJhbmdlKQogewogCWlmICghbm9kZV9vbmxpbmUodGFyZ2V0X25vZGUpKSB7CiAJCXByX2VycigmIzM0O05VTUEgbm9kZSAlZCBpcyBub3Qgb25saW5lXG4mIzM0OywgdGFyZ2V0X25vZGUpOwpAQCAtNzgsOCAmIzQzOzczLDcgQEAgc3RhdGljIHN0cnVjdCBkYW1vbl9jdHggKmRhbW9uX3NhbXBsZV9tdGllcl9idWlsZF9jdHgoYm9vbCBwcm9tb3RlKQogCXN0cnVjdCBkYW1vcyAqc2NoZW1lOwogCXN0cnVjdCBkYW1vc19xdW90YV9nb2FsICpxdW90YV9nb2FsOwogCXN0cnVjdCBkYW1vc19maWx0ZXIgKmZpbHRlcjsKLQlzdHJ1Y3QgcmVnaW9uX3JhbmdlIGFkZHI7Ci0Jc3RydWN0IGRhbW9uX2FkZHJfcmFuZ2UgcmFuZ2U7CiYjNDM7CXN0cnVjdCBkYW1vbl9hZGRyX3JhbmdlIGFkZHI7CiAJaW50IHJldDsKIAogCWN0eCA9IGRhbW9uX25ld19jdHgoKTsKQEAgLTEyMywxMCAmIzQzOzExNyw3IEBAIHN0YXRpYyBzdHJ1Y3QgZGFtb25fY3R4ICpkYW1vbl9zYW1wbGVfbXRpZXJfYnVpbGRfY3R4KGJvb2wgcHJvbW90ZSkKIAlpZiAoYWRkci5zdGFydCAmZ3Q7PSBhZGRyLmVuZCkKIAkJZ290byBmcmVlX291dDsKIAotCXJhbmdlLnN0YXJ0ID0gYWRkci5zdGFydDsKLQlyYW5nZS5lbmQgPSBhZGRyLmVuZDsKLQotCXJldCA9IGRhbW9uX3NldF9yZWdpb25zKHRhcmdldCwgJmFtcDtyYW5nZSwgMSwgREFNT05fTUlOX1JFR0lPTl9TWik7CiYjNDM7CXJldCA9IGRhbW9uX3NldF9yZWdpb25zKHRhcmdldCwgJmFtcDthZGRyLCAxLCBEQU1PTl9NSU5fUkVHSU9OX1NaKTsKIAlpZiAocmV0KQogCQlnb3RvIGZyZWVfb3V0OwogCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDE3OjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyMTYKCQkJCQkJCW91dHB1dDogMjcKCQkJCQkJCXRob3VnaHRzOiAxODQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUGF0Y2ggdG8gYSBTYW1wbGUgREFNT04gTW9kdWxlKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCYjMzk7cyB0b3VjaGluZyBgc2FtcGxlcy9kYW1vbi9tdGllci5jYC4gVGhlIGNvcmUgY2hhbmdlIGlzIHJlcGxhY2luZyBgc3RydWN0IHJlZ2lvbl9yYW5nZWAgd2l0aCBgc3RydWN0IGRhbW9uX2FkZHJfcmFuZ2VgIGluIHRoZSBgbmlkX3RvX3BoeXNgIGFuZCBgZGFtb25fc2FtcGxlX210aWVyX2J1aWxkX2N0eGAgZnVuY3Rpb25zLiBJdCBhbHNvIHJlbW92ZXMgdGhlIGBzdHJ1Y3QgcmVnaW9uX3JhbmdlYCBkZWZpbml0aW9uIGVudGlyZWx5LiBObyBiaWcgZGVhbCwgaXQmIzM5O3MganVzdCBhIHNhbXBsZSBtb2R1bGUsIGBtdGllci5jYC4KCk5vdywgc2FtcGxlIG1vZHVsZXPigKYgdGhvc2UgYXJlbiYjMzk7dCB0eXBpY2FsbHkgYSBoaWdoIHByaW9yaXR5IGZvciBmdXp6aW5nLCB1bmxlc3MgdGhleSBzZXJ2ZSBhcyBzb21lIGtpbmQgb2YgZW50cnkgcG9pbnQgb3Igd2UgaGF2ZSBhIHNwZWNpZmljIHJlYXNvbiB0byBmb2N1cyBvbiB0aGVtLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtXYWl0LCB3aGF0JiMzOTtzIHRoZSBkZWFsIHdpdGggZnV6emluZyBgc2FtcGxlcy9gPyBEb2VzbiYjMzk7dCBzeXprYWxsZXIgdXN1YWxseSBpZ25vcmUgdGhhdCBkaXJlY3Rvcnk/JiMzNDsgSSBuZWVkIHRvIGNvbmZpcm0gaWYgdGhpcyBgbXRpZXIuY2AgaXMgZXZlbiBjb21waWxlZCBpbiB0aGUga2VybmVsIGNvbmZpZyBhbmQgd29ydGggdGhlIGVmZm9ydCBvZiBiZWluZyBmdXp6ZWQuIFNhbXBsZSBtb2R1bGVzIGFyZSwgaW4gbW9zdCBjYXNlcywganVzdCBleGFtcGxlcyB0byBkZW1vbnN0cmF0ZSBob3cgdGhpbmdzIHdvcmsuIFRpbWUgdG8gZGlnIGludG8gYHNhbXBsZXMvZGFtb24vS2NvbmZpZ2Agb3IgcG9zc2libHkgZXZlbiB0aGUgdG9wLWxldmVsIGBzYW1wbGVzL0tjb25maWdgIGZpbGUgdG8gc2VlIGlmIGFueXRoaW5nIGlzIGVuYWJsZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMTc6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXRpZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtzYW1wbGVzL2RhbW9uLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtzYW1wbGVzL2RhbW9uL01ha2VmaWxlPTQ9b2JqLSQoQ09ORklHX1NBTVBMRV9EQU1PTl9QUkNMKSAmIzQzOz0gcHJjbC5vXG5zYW1wbGVzL2RhbW9uL01ha2VmaWxlOjU6b2JqLSQoQ09ORklHX1NBTVBMRV9EQU1PTl9NVElFUikgJiM0Mzs9IG10aWVyLm9cbi0tXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtNy1cbnNhbXBsZXMvZGFtb24vbXRpZXIuYzo4OiNkZWZpbmUgcHJfZm10KGZtdCkgXCYjMzQ7ZGFtb25fc2FtcGxlX210aWVyOiBcJiMzNDsgZm10XG5zYW1wbGVzL2RhbW9uL210aWVyLmMtOS1cbi0tXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMTctI2VuZGlmXG5zYW1wbGVzL2RhbW9uL210aWVyLmM6MTg6I2RlZmluZSBNT0RVTEVfUEFSQU1fUFJFRklYIFwmIzM0O2RhbW9uX3NhbXBsZV9tdGllci5cJiMzNDtcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0xOS1cbi0tXG5zYW1wbGVzL2RhbW9uL210aWVyLmM9MzY9bW9kdWxlX3BhcmFtKG5vZGUwX21lbV9mcmVlX2JwLCB1bG9uZywgMDYwMCk7XG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMzctXG5zYW1wbGVzL2RhbW9uL210aWVyLmM6Mzg6c3RhdGljIGludCBkYW1vbl9zYW1wbGVfbXRpZXJfZW5hYmxlX3N0b3JlKFxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTM5LVx0XHRjb25zdCBjaGFyICp2YWwsIGNvbnN0IHN0cnVjdCBrZXJuZWxfcGFyYW0gKmtwKTtcbi0tXG5zYW1wbGVzL2RhbW9uL210aWVyLmM9NDE9c3RhdGljIGNvbnN0IHN0cnVjdCBrZXJuZWxfcGFyYW1fb3BzIGVuYWJsZWRfcGFyYW1fb3BzID0ge1xuc2FtcGxlcy9kYW1vbi9tdGllci5jOjQyOlx0LnNldCA9IGRhbW9uX3NhbXBsZV9tdGllcl9lbmFibGVfc3RvcmUsXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtNDMtXHQuZ2V0ID0gcGFyYW1fZ2V0X2Jvb2wsXG4tLVxuc2FtcGxlcy9kYW1vbi9tdGllci5jPTU1PXN0YXRpYyBpbnQgbmlkX3RvX3BoeXMoaW50IHRhcmdldF9ub2RlLCBzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZSAqcmFuZ2UpXG4tLVxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTY3LVxuc2FtcGxlcy9kYW1vbi9tdGllci5jOjY4OnN0YXRpYyBzdHJ1Y3QgZGFtb25fY3R4ICpkYW1vbl9zYW1wbGVfbXRpZXJfYnVpbGRfY3R4KGJvb2wgcHJvbW90ZSlcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy02OS17XG4tLVxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTE2Ny1cbnNhbXBsZXMvZGFtb24vbXRpZXIuYzoxNjg6c3RhdGljIGludCBkYW1vbl9zYW1wbGVfbXRpZXJfc3RhcnQodm9pZClcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0xNjkte1xuLS1cbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0xNzItXG5zYW1wbGVzL2RhbW9uL210aWVyLmM6MTczOlx0Y3R4ID0gZGFtb25fc2FtcGxlX210aWVyX2J1aWxkX2N0eCh0cnVlKTtcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0xNzQtXHRpZiAoIWN0eClcbi0tXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMTc2LVx0Y3R4c1swXSA9IGN0eDtcbnNhbXBsZXMvZGFtb24vbXRpZXIuYzoxNzc6XHRjdHggPSBkYW1vbl9zYW1wbGVfbXRpZXJfYnVpbGRfY3R4KGZhbHNlKTtcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0xNzgtXHRpZiAoIWN0eCkge1xuLS1cbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0xOTEtXG5zYW1wbGVzL2RhbW9uL210aWVyLmM6MTkyOnN0YXRpYyB2b2lkIGRhbW9uX3NhbXBsZV9tdGllcl9zdG9wKHZvaWQpXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMTkzLXtcbi0tXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMTk4LVxuc2FtcGxlcy9kYW1vbi9tdGllci5jOjE5OTpzdGF0aWMgaW50IGRhbW9uX3NhbXBsZV9tdGllcl9lbmFibGVfc3RvcmUoXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMjAwLVx0XHRjb25zdCBjaGFyICp2YWwsIGNvbnN0IHN0cnVjdCBrZXJuZWxfcGFyYW0gKmtwKVxuLS1cbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0yMTUtXHRpZiAoZW5hYmxlZCkge1xuc2FtcGxlcy9kYW1vbi9tdGllci5jOjIxNjpcdFx0ZXJyID0gZGFtb25fc2FtcGxlX210aWVyX3N0YXJ0KCk7XG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMjE3LVx0XHRpZiAoZXJyKVxuLS1cbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0yMjAtXHR9XG5zYW1wbGVzL2RhbW9uL210aWVyLmM6MjIxOlx0ZGFtb25fc2FtcGxlX210aWVyX3N0b3AoKTtcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0yMjItXHRyZXR1cm4gMDtcbi0tXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMjI0LVxuc2FtcGxlcy9kYW1vbi9tdGllci5jOjIyNTpzdGF0aWMgaW50IF9faW5pdCBkYW1vbl9zYW1wbGVfbXRpZXJfaW5pdCh2b2lkKVxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTIyNi17XG4tLVxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTIzNS1cdGlmIChlbmFibGVkKSB7XG5zYW1wbGVzL2RhbW9uL210aWVyLmM6MjM2Olx0XHRlcnIgPSBkYW1vbl9zYW1wbGVfbXRpZXJfc3RhcnQoKTtcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0yMzctXHRcdGlmIChlcnIpXG4tLVxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTI0Mi1cbnNhbXBsZXMvZGFtb24vbXRpZXIuYzoyNDM6bW9kdWxlX2luaXQoZGFtb25fc2FtcGxlX210aWVyX2luaXQpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDE3OjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4MzgKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAxMzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUGF0Y2g6IEEgUXVpY2sgQXNzZXNzbWVudCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIGBzYW1wbGVzL2RhbW9uL210aWVyLmNgLiBJbW1lZGlhdGVseSwgSSYjMzk7bSBhIGxpdHRsZSBoZXNpdGFudCBiZWNhdXNlIHNhbXBsZSBtb2R1bGVzIGFyZW4mIzM5O3QgdHlwaWNhbGx5IHRoZSB0YXJnZXRzIGZvciBmdXp6aW5nLiBXZSB1c3VhbGx5IGZvY3VzIG9uIGNvcmUgZnVuY3Rpb25hbGl0eSBvciBkcml2ZXJzLiBCdXQgbGV0JiMzOTtzIHNlZSB3aGF0JiMzOTtzIGNoYW5nZWQuCgpBbHJpZ2h0LCB0aGUgY29yZSBvZiBpdCBsb29rcyBsaWtlIGEgc2ltcGxlIHN0cnVjdHVyZSByZXBsYWNlbWVudC4gVGhleSYjMzk7cmUgc3dhcHBpbmcgb3V0IGByZWdpb25fcmFuZ2VgIGZvciBgZGFtb25fYWRkcl9yYW5nZWAuIEJvdGggc3RydWN0dXJlcywgc3VwZXJmaWNpYWxseSwgY29udGFpbiBgc3RhcnRgIGFuZCBgZW5kYCBtZW1iZXJzLCBzbyB0aGUgY29uY2VwdCBpcyB0aGUgc2FtZTogZGVmaW5pbmcgYW4gYWRkcmVzcyByYW5nZS4gSG1tLCB0aGF0IHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZC4KCldhaXQgYSBzZWNvbmTigKYgSSBuZWVkIHRvIGNvbmZpcm0gdGhlIHVuZGVybHlpbmcgdHlwZXMuIExldCBtZSBqdXN0IGRvdWJsZS1jaGVjayB0aGUgZGVmaW5pdGlvbiBvZiBgcmVnaW9uX3JhbmdlYC4gSXQgbG9va3MgbGlrZSB0aGF0IG9uZSB1c2VzIGBwaHlzX2FkZHJfdGAgZm9yIHN0YXJ0IGFuZCBlbmQsIGFuZCBpbiBjb250cmFzdCwgYGRhbW9uX2FkZHJfcmFuZ2VgIHVzZXMgc2ltcGxlIGB1bnNpZ25lZCBsb25nYCBmb3IgdGhvc2UgbWVtYmVycy4gSXMgdGhlcmUgYSBwb3NzaWJsZSBmdW5jdGlvbmFsIGNoYW5nZSBoZXJlPyBZZXMsIHRoZXJlIGlzISBJIG5lZWQgdG8gaW52ZXN0aWdhdGUgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIGNoYW5nZSBvbiB0aGUgdHlwZXMgb2YgYWRkcmVzc2VzIHRoYXQgY2FuIGJlIHJlcHJlc2VudGVkLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiB0aGlzIGlzIGEgd2lkZW5pbmcgb3IgbmFycm93aW5nIG9mIHRoZSBhZGRyZXNzIHJhbmdlIGFuZCBpZiB0aGVyZSBpcyBhbnkgdHlwZS1yZWxhdGVkIGxvc3Mgb2YgcHJlY2lzaW9uIHRoYXQgbWlnaHQgYmUgaW52b2x2ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMTc6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RydWN0IGRhbW9uX2FkZHJfcmFuZ2UmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4L2RhbW9uLmgmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7aW5jbHVkZS9saW51eC9kYW1vbi5oLTIzLS8qKlxuaW5jbHVkZS9saW51eC9kYW1vbi5oOjI0OiAqIHN0cnVjdCBkYW1vbl9hZGRyX3JhbmdlIC0gUmVwcmVzZW50cyBhbiBhZGRyZXNzIHJlZ2lvbiBvZiBbQHN0YXJ0LCBAZW5kKS5cbmluY2x1ZGUvbGludXgvZGFtb24uaC0yNS0gKiBAc3RhcnQ6XHRTdGFydCBhZGRyZXNzIG9mIHRoZSByZWdpb24gKGluY2x1c2l2ZSkuXG4tLVxuaW5jbHVkZS9saW51eC9kYW1vbi5oLTI3LSAqL1xuaW5jbHVkZS9saW51eC9kYW1vbi5oOjI4OnN0cnVjdCBkYW1vbl9hZGRyX3JhbmdlIHtcbmluY2x1ZGUvbGludXgvZGFtb24uaC0yOS1cdHVuc2lnbmVkIGxvbmcgc3RhcnQ7XG4tLVxuaW5jbHVkZS9saW51eC9kYW1vbi5oPTY1PXN0cnVjdCBkYW1vbl9yZWdpb24ge1xuaW5jbHVkZS9saW51eC9kYW1vbi5oOjY2Olx0c3RydWN0IGRhbW9uX2FkZHJfcmFuZ2UgYXI7XG5pbmNsdWRlL2xpbnV4L2RhbW9uLmgtNjctXHR1bnNpZ25lZCBsb25nIHNhbXBsaW5nX2FkZHI7XG4tLVxuaW5jbHVkZS9saW51eC9kYW1vbi5oPTQ0Mj1zdHJ1Y3QgZGFtb3NfZmlsdGVyIHtcbi0tXG5pbmNsdWRlL2xpbnV4L2RhbW9uLmgtNDQ3LVx0XHR1NjQgbWVtY2dfaWQ7XG5pbmNsdWRlL2xpbnV4L2RhbW9uLmg6NDQ4Olx0XHRzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZSBhZGRyX3JhbmdlO1xuaW5jbHVkZS9saW51eC9kYW1vbi5oLTQ0OS1cdFx0aW50IHRhcmdldF9pZHg7XG4tLVxuaW5jbHVkZS9saW51eC9kYW1vbi5oPTEwMjc9dW5zaWduZWQgaW50IGRhbW9uX3Byb2JlX2hpdHNfd3N1bShzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLCBib29sIGxhc3QsXG4tLVxuaW5jbHVkZS9saW51eC9kYW1vbi5oLTEwMjktXG5pbmNsdWRlL2xpbnV4L2RhbW9uLmg6MTAzMDppbnQgZGFtb25fc2V0X3JlZ2lvbnMoc3RydWN0IGRhbW9uX3RhcmdldCAqdCwgc3RydWN0IGRhbW9uX2FkZHJfcmFuZ2UgKnJhbmdlcyxcbmluY2x1ZGUvbGludXgvZGFtb24uaC0xMDMxLVx0XHR1bnNpZ25lZCBpbnQgbnJfcmFuZ2VzLCB1bnNpZ25lZCBsb25nIG1pbl9yZWdpb25fc3opO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDE3OjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ2OTgKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAzMTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgVHlwZSBNaXNtYXRjaCBpbiBhIERBTU9OIFNhbXBsZSBNb2R1bGUgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0IHNlZW1zIGxpa2UgaXQmIzM5O3MgY2hhbmdpbmcgYHN0cnVjdCByZWdpb25fcmFuZ2VgIHRvIGBzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZWAuIFJpZ2h0LCBgZGFtb25fc2V0X3JlZ2lvbnNgIG5vdyB0YWtlcyBgc3RydWN0IGRhbW9uX2FkZHJfcmFuZ2UgKmAgYXMgaXRzIGlucHV0LiBCZWZvcmUsIGl0IHdhcyBlaXRoZXIgdGFraW5nIGBzdHJ1Y3QgcmVnaW9uX3JhbmdlICpgIGFuZCBjYXN0aW5nIGl0LCBvciBpdCB3YXMgaW5jb3JyZWN0bHkgYmVpbmcgcGFzc2VkIGEgYHN0cnVjdCByZWdpb25fcmFuZ2UgKmAgd2hlbiBpdCBleHBlY3RlZCB0aGUgYGRhbW9uYCB2ZXJzaW9uLiBUaGUgY29kZSAqaGFwcGVuZWQqIHRvIHdvcmsgYmVjYXVzZSB0aGUgbGF5b3V0cyB3ZXJlIHRoZSBzYW1lLCBhc3N1bWluZyBgcGh5c19hZGRyX3RgIHdhcyBqdXN0IGFuIGB1bnNpZ25lZCBsb25nYC4gQnV0IGhvbGQgb24uLi4gYHBoeXNfYWRkcl90YCAqY2FuKiBiZSA2NC1iaXQgb24gMzItYml0IHN5c3RlbXMgdXNpbmcgUEFFISBTbywgeWVhaCwgaXQmIzM5O3MgZGVmaW5pdGVseSBhIHR5cGUgbWlzbWF0Y2guIFRoZSBwYXRjaCBzZWVtcyB0byBiZSBjb3JyZWN0aW5nIHRoYXQuCgpCdXQgdGhlIGJpZ2dlciBxdWVzdGlvbiBpczogc2hvdWxkIEkgZXZlbiBib3RoZXIgZnV6emluZyB0aGlzPyBUaGlzIGlzIGEgKnNhbXBsZSogbW9kdWxlLiBTYW1wbGUgbW9kdWxlcyBhcmUgdXN1YWxseSBub3QgcHJpbWUgY2FuZGlkYXRlcyBmb3IgZnV6emluZy4gVGhleSBhcmUgZm9yIGlsbHVzdHJhdGl2ZSBwdXJwb3Nlcy4gSXQmIzM5O3MganVzdCBhIHNhbXBsZSBtb2R1bGUgZm9yIERBTU9OLiBMZXQmIzM5O3MgdGhpbmsgdGhyb3VnaCB0aGlzIG1vcmUgY2FyZWZ1bGx5LgoKUmlnaHQsIHRoZSBkZWNpc2lvbiB0byBmdXp6IGRlcGVuZHMgb24gaG93IGltcG9ydGFudCBpdCBpcy4gSSByZWNhbGwgYSBoZXVyaXN0aWMgZm9yIHRoaXM6ICYjMzQ7UmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczogLi4uIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSYjMzQ7LiBTbywgc2luY2Ugc2FtcGxlIG1vZHVsZXMgYXJlIHVzdWFsbHkgbm90IGxvYWRlZCBieSBkZWZhdWx0LCBhbmQgdGhleSBhcmUgbm90IHBhcnQgb2YgdGhlIGNvcmUga2VybmVsIGxvZ2ljLiBUaGlzIHNlZW1zIGxpa2UgYSByZWFzb25hYmxlIHNob3J0Y3V0LiBIb3dldmVyLCBpcyB0aGlzIG9uZSBjb21waWxlZCBpbiBkZWZhdWx0IGNvbmZpZ3M/IEkgYmV0dGVyIGNoZWNrIGBzYW1wbGVzL2RhbW9uL210aWVyLmNgLiBPa2F5LCBsZXQmIzM5O3MgbG9vayBhdCBgc2FtcGxlcy9kYW1vbi9LY29uZmlnYCB0byBzZWUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMTc6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7U0FNUExFX0RBTU9OX01USUVSJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7c2FtcGxlcy9kYW1vbi8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7c2FtcGxlcy9kYW1vbi9LY29uZmlnPTE3PWNvbmZpZyBTQU1QTEVfREFNT05fUFJDTFxuLS1cbnNhbXBsZXMvZGFtb24vS2NvbmZpZy0yOS1cbnNhbXBsZXMvZGFtb24vS2NvbmZpZzozMDpjb25maWcgU0FNUExFX0RBTU9OX01USUVSXG5zYW1wbGVzL2RhbW9uL0tjb25maWctMzEtXHRib29sIFwmIzM0O0RBTU9OIHNhbXBsZSBtb2R1bGUgZm9yIG1lbW9yeSB0aWVyaW5nXCYjMzQ7XG4tLVxuc2FtcGxlcy9kYW1vbi9NYWtlZmlsZT00PW9iai0kKENPTkZJR19TQU1QTEVfREFNT05fUFJDTCkgJiM0Mzs9IHByY2wub1xuc2FtcGxlcy9kYW1vbi9NYWtlZmlsZTo1Om9iai0kKENPTkZJR19TQU1QTEVfREFNT05fTVRJRVIpICYjNDM7PSBtdGllci5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMTc6MzU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTU5MgoJCQkJCQkJb3V0cHV0OiA4MQoJCQkJCQkJdGhvdWdodHM6IDEwMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFNhbXBsZSBNb2R1bGUqKgoKT2theSwgaGVyZSYjMzk7cyB0aGUgc2l0dWF0aW9uLiBJJiMzOTttIGxvb2tpbmcgYXQgYSBzYW1wbGUgbW9kdWxlLCBhbmQgaW1tZWRpYXRlbHkgSSYjMzk7bSB0aGlua2luZywgJiMzNDtOb3QgZnV6emFibGUuJiMzNDsgSXQmIzM5O3MganVzdCBhIHNhbXBsZSwgbm90IGNyaXRpY2FsIGtlcm5lbCBsb2dpYywgYSBkcml2ZXIsIG9yIGFueXRoaW5nIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyB0aGF0IHdvdWxkIHdhcnJhbnQgZnV6emluZy4gSW4gYSBwcm9kdWN0aW9uIGVudmlyb25tZW50LCB0aGlzIHRoaW5nIHdvdWxkbiYjMzk7dCBldmVuIGJlIGxvYWRlZCBvciB1c2VkLiBTbywgdGhlIG9idmlvdXMgY2FsbCBoZXJlIGlzIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCkxldCBtZSBqdXN0IHF1aWNrbHkgdmVyaWZ5IHRoYXQgdGhlcmUgaGF2ZW4mIzM5O3QgYmVlbiBhbnkgb3RoZXIgcmVsZXZhbnQgY29kZSBjaGFuZ2VzIHNuZWFraW5nIGluLiBZZXAsIGxvb2tzIGxpa2UgdGhlIG9ubHkgbW9kaWZpZWQgZmlsZSBpcyBgc2FtcGxlcy9kYW1vbi9tdGllci5jYC4gVGhhdCBjb25maXJtcyBpdC4gTm8gbmVlZCB0byBvdmVydGhpbmsgdGhpcy4gSSYjMzk7bSBzZXR0aW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAxNzozNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgYSBzYW1wbGUgbW9kdWxlIChzYW1wbGVzL2RhbW9uL210aWVyLmMpIHdoaWNoIGlzIG5vdCBwYXJ0IG9mIHRoZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy4gU2FtcGxlIG1vZHVsZXMgYXJlIG5vdCB0eXBpY2FsbHkgZnV6emVkIGFzIHRoZXkgYXJlIG5vdCB1c2VkIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBhIHNhbXBsZSBtb2R1bGUgKHNhbXBsZXMvZGFtb24vbXRpZXIuYykgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLiBTYW1wbGUgbW9kdWxlcyBhcmUgbm90IHR5cGljYWxseSBmdXp6ZWQgYXMgdGhleSBhcmUgbm90IHVzZWQgaW4gcHJvZHVjdGlvbiBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjBUMTc6MzU6MTAuNDIwNzU0MTc1WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTI5OTg2MTUwMzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgYSBzYW1wbGUgbW9kdWxlIChzYW1wbGVzL2RhbW9uL210aWVyLmMpIHdoaWNoIGlzIG5vdCBwYXJ0IG9mIHRoZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy4gU2FtcGxlIG1vZHVsZXMgYXJlIG5vdCB0eXBpY2FsbHkgZnV6emVkIGFzIHRoZXkgYXJlIG5vdCB1c2VkIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMTc6MzU6MTAuNDIwNzY3NTY0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTY1NjcyMjU0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYmZhM2E1YWI3OTFhZTUzYTc1YjdlMjZiMTcxMGJjY2JkOGNlOWY1YVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEp1bCAyMCAxNzozNTowNyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9zYW1wbGVzL2RhbW9uL210aWVyLmMgYi9zYW1wbGVzL2RhbW9uL210aWVyLmNcXG5pbmRleCBhYzljMjRiOTJlYWQ4NC4uMzcxMjI4N2YwMDljNTQgMTAwNjQ0XFxuLS0tIGEvc2FtcGxlcy9kYW1vbi9tdGllci5jXFxuKysrIGIvc2FtcGxlcy9kYW1vbi9tdGllci5jXFxuQEAgLTUyLDEyICs1Miw3IEBAIG1vZHVsZV9wYXJhbShkZXRlY3Rfbm9kZV9hZGRyZXNzZXMsIGJvb2wsIDA2MDApO1xcbiBcXG4gc3RhdGljIHN0cnVjdCBkYW1vbl9jdHggKmN0eHNbMl07XFxuIFxcbi1zdHJ1Y3QgcmVnaW9uX3JhbmdlIHtcXG4tXFx0cGh5c19hZGRyX3Qgc3RhcnQ7XFxuLVxcdHBoeXNfYWRkcl90IGVuZDtcXG4tfTtcXG4tXFxuLXN0YXRpYyBpbnQgbmlkX3RvX3BoeXMoaW50IHRhcmdldF9ub2RlLCBzdHJ1Y3QgcmVnaW9uX3JhbmdlICpyYW5nZSlcXG4rc3RhdGljIGludCBuaWRfdG9fcGh5cyhpbnQgdGFyZ2V0X25vZGUsIHN0cnVjdCBkYW1vbl9hZGRyX3JhbmdlICpyYW5nZSlcXG4ge1xcbiBcXHRpZiAoIW5vZGVfb25saW5lKHRhcmdldF9ub2RlKSkge1xcbiBcXHRcXHRwcl9lcnIoXFxcIk5VTUEgbm9kZSAlZCBpcyBub3Qgb25saW5lXFxcXG5cXFwiLCB0YXJnZXRfbm9kZSk7XFxuQEAgLTc4LDggKzczLDcgQEAgc3RhdGljIHN0cnVjdCBkYW1vbl9jdHggKmRhbW9uX3NhbXBsZV9tdGllcl9idWlsZF9jdHgoYm9vbCBwcm9tb3RlKVxcbiBcXHRzdHJ1Y3QgZGFtb3MgKnNjaGVtZTtcXG4gXFx0c3RydWN0IGRhbW9zX3F1b3RhX2dvYWwgKnF1b3RhX2dvYWw7XFxuIFxcdHN0cnVjdCBkYW1vc19maWx0ZXIgKmZpbHRlcjtcXG4tXFx0c3RydWN0IHJlZ2lvbl9yYW5nZSBhZGRyO1xcbi1cXHRzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZSByYW5nZTtcXG4rXFx0c3RydWN0IGRhbW9uX2FkZHJfcmFuZ2UgYWRkcjtcXG4gXFx0aW50IHJldDtcXG4gXFxuIFxcdGN0eCA9IGRhbW9uX25ld19jdHgoKTtcXG5AQCAtMTIzLDEwICsxMTcsNyBAQCBzdGF0aWMgc3RydWN0IGRhbW9uX2N0eCAqZGFtb25fc2FtcGxlX210aWVyX2J1aWxkX2N0eChib29sIHByb21vdGUpXFxuIFxcdGlmIChhZGRyLnN0YXJ0IFxcdTAwM2U9IGFkZHIuZW5kKVxcbiBcXHRcXHRnb3RvIGZyZWVfb3V0O1xcbiBcXG4tXFx0cmFuZ2Uuc3RhcnQgPSBhZGRyLnN0YXJ0O1xcbi1cXHRyYW5nZS5lbmQgPSBhZGRyLmVuZDtcXG4tXFxuLVxcdHJldCA9IGRhbW9uX3NldF9yZWdpb25zKHRhcmdldCwgXFx1MDAyNnJhbmdlLCAxLCBEQU1PTl9NSU5fUkVHSU9OX1NaKTtcXG4rXFx0cmV0ID0gZGFtb25fc2V0X3JlZ2lvbnModGFyZ2V0LCBcXHUwMDI2YWRkciwgMSwgREFNT05fTUlOX1JFR0lPTl9TWik7XFxuIFxcdGlmIChyZXQpXFxuIFxcdFxcdGdvdG8gZnJlZV9vdXQ7XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQxNzozNToxMS41ODgzOTAxMjhaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo5MTgzMDk3MDgzMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBhIHNhbXBsZSBtb2R1bGUgKHNhbXBsZXMvZGFtb24vbXRpZXIuYykgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLiBTYW1wbGUgbW9kdWxlcyBhcmUgbm90IHR5cGljYWxseSBmdXp6ZWQgYXMgdGhleSBhcmUgbm90IHVzZWQgaW4gcHJvZHVjdGlvbiBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGJmYTNhNWFiNzkxYWU1M2E3NWI3ZTI2YjE3MTBiY2NiZDhjZTlmNWFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1bCAyMCAxNzozNTowNyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL3NhbXBsZXMvZGFtb24vbXRpZXIuYyBiL3NhbXBsZXMvZGFtb24vbXRpZXIuY1xuaW5kZXggYWM5YzI0YjkyZWFkODQuLjM3MTIyODdmMDA5YzU0IDEwMDY0NFxuLS0tIGEvc2FtcGxlcy9kYW1vbi9tdGllci5jXG4rKysgYi9zYW1wbGVzL2RhbW9uL210aWVyLmNcbkBAIC01MiwxMiArNTIsNyBAQCBtb2R1bGVfcGFyYW0oZGV0ZWN0X25vZGVfYWRkcmVzc2VzLCBib29sLCAwNjAwKTtcbiBcbiBzdGF0aWMgc3RydWN0IGRhbW9uX2N0eCAqY3R4c1syXTtcbiBcbi1zdHJ1Y3QgcmVnaW9uX3JhbmdlIHtcbi1cdHBoeXNfYWRkcl90IHN0YXJ0O1xuLVx0cGh5c19hZGRyX3QgZW5kO1xuLX07XG4tXG4tc3RhdGljIGludCBuaWRfdG9fcGh5cyhpbnQgdGFyZ2V0X25vZGUsIHN0cnVjdCByZWdpb25fcmFuZ2UgKnJhbmdlKVxuK3N0YXRpYyBpbnQgbmlkX3RvX3BoeXMoaW50IHRhcmdldF9ub2RlLCBzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZSAqcmFuZ2UpXG4ge1xuIFx0aWYgKCFub2RlX29ubGluZSh0YXJnZXRfbm9kZSkpIHtcbiBcdFx0cHJfZXJyKFwiTlVNQSBub2RlICVkIGlzIG5vdCBvbmxpbmVcXG5cIiwgdGFyZ2V0X25vZGUpO1xuQEAgLTc4LDggKzczLDcgQEAgc3RhdGljIHN0cnVjdCBkYW1vbl9jdHggKmRhbW9uX3NhbXBsZV9tdGllcl9idWlsZF9jdHgoYm9vbCBwcm9tb3RlKVxuIFx0c3RydWN0IGRhbW9zICpzY2hlbWU7XG4gXHRzdHJ1Y3QgZGFtb3NfcXVvdGFfZ29hbCAqcXVvdGFfZ29hbDtcbiBcdHN0cnVjdCBkYW1vc19maWx0ZXIgKmZpbHRlcjtcbi1cdHN0cnVjdCByZWdpb25fcmFuZ2UgYWRkcjtcbi1cdHN0cnVjdCBkYW1vbl9hZGRyX3JhbmdlIHJhbmdlO1xuK1x0c3RydWN0IGRhbW9uX2FkZHJfcmFuZ2UgYWRkcjtcbiBcdGludCByZXQ7XG4gXG4gXHRjdHggPSBkYW1vbl9uZXdfY3R4KCk7XG5AQCAtMTIzLDEwICsxMTcsNyBAQCBzdGF0aWMgc3RydWN0IGRhbW9uX2N0eCAqZGFtb25fc2FtcGxlX210aWVyX2J1aWxkX2N0eChib29sIHByb21vdGUpXG4gXHRpZiAoYWRkci5zdGFydCBcdTAwM2U9IGFkZHIuZW5kKVxuIFx0XHRnb3RvIGZyZWVfb3V0O1xuIFxuLVx0cmFuZ2Uuc3RhcnQgPSBhZGRyLnN0YXJ0O1xuLVx0cmFuZ2UuZW5kID0gYWRkci5lbmQ7XG4tXG4tXHRyZXQgPSBkYW1vbl9zZXRfcmVnaW9ucyh0YXJnZXQsIFx1MDAyNnJhbmdlLCAxLCBEQU1PTl9NSU5fUkVHSU9OX1NaKTtcbitcdHJldCA9IGRhbW9uX3NldF9yZWdpb25zKHRhcmdldCwgXHUwMDI2YWRkciwgMSwgREFNT05fTUlOX1JFR0lPTl9TWik7XG4gXHRpZiAocmV0KVxuIFx0XHRnb3RvIGZyZWVfb3V0O1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMTc6MzU6MTEuNTg4Mzk0NzE4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTQ3NTY4NTAwMDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgUGF0Y2ggdG8gYSBTYW1wbGUgREFNT04gTW9kdWxlKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQncyB0b3VjaGluZyBgc2FtcGxlcy9kYW1vbi9tdGllci5jYC4gVGhlIGNvcmUgY2hhbmdlIGlzIHJlcGxhY2luZyBgc3RydWN0IHJlZ2lvbl9yYW5nZWAgd2l0aCBgc3RydWN0IGRhbW9uX2FkZHJfcmFuZ2VgIGluIHRoZSBgbmlkX3RvX3BoeXNgIGFuZCBgZGFtb25fc2FtcGxlX210aWVyX2J1aWxkX2N0eGAgZnVuY3Rpb25zLiBJdCBhbHNvIHJlbW92ZXMgdGhlIGBzdHJ1Y3QgcmVnaW9uX3JhbmdlYCBkZWZpbml0aW9uIGVudGlyZWx5LiBObyBiaWcgZGVhbCwgaXQncyBqdXN0IGEgc2FtcGxlIG1vZHVsZSwgYG10aWVyLmNgLlxuXG5Ob3csIHNhbXBsZSBtb2R1bGVz4oCmIHRob3NlIGFyZW4ndCB0eXBpY2FsbHkgYSBoaWdoIHByaW9yaXR5IGZvciBmdXp6aW5nLCB1bmxlc3MgdGhleSBzZXJ2ZSBhcyBzb21lIGtpbmQgb2YgZW50cnkgcG9pbnQgb3Igd2UgaGF2ZSBhIHNwZWNpZmljIHJlYXNvbiB0byBmb2N1cyBvbiB0aGVtLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJXYWl0LCB3aGF0J3MgdGhlIGRlYWwgd2l0aCBmdXp6aW5nIGBzYW1wbGVzL2A/IERvZXNuJ3Qgc3l6a2FsbGVyIHVzdWFsbHkgaWdub3JlIHRoYXQgZGlyZWN0b3J5P1wiIEkgbmVlZCB0byBjb25maXJtIGlmIHRoaXMgYG10aWVyLmNgIGlzIGV2ZW4gY29tcGlsZWQgaW4gdGhlIGtlcm5lbCBjb25maWcgYW5kIHdvcnRoIHRoZSBlZmZvcnQgb2YgYmVpbmcgZnV6emVkLiBTYW1wbGUgbW9kdWxlcyBhcmUsIGluIG1vc3QgY2FzZXMsIGp1c3QgZXhhbXBsZXMgdG8gZGVtb25zdHJhdGUgaG93IHRoaW5ncyB3b3JrLiBUaW1lIHRvIGRpZyBpbnRvIGBzYW1wbGVzL2RhbW9uL0tjb25maWdgIG9yIHBvc3NpYmx5IGV2ZW4gdGhlIHRvcC1sZXZlbCBgc2FtcGxlcy9LY29uZmlnYCBmaWxlIHRvIHNlZSBpZiBhbnl0aGluZyBpcyBlbmFibGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjE2LCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTg0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMTc6MzU6MjYuMzQ1MjQ5MjY0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyOTE4MDkyMjUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXRpZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwic2FtcGxlcy9kYW1vbi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwic2FtcGxlcy9kYW1vbi9NYWtlZmlsZT00PW9iai0kKENPTkZJR19TQU1QTEVfREFNT05fUFJDTCkgKz0gcHJjbC5vXFxuc2FtcGxlcy9kYW1vbi9NYWtlZmlsZTo1Om9iai0kKENPTkZJR19TQU1QTEVfREFNT05fTVRJRVIpICs9IG10aWVyLm9cXG4tLVxcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy03LVxcbnNhbXBsZXMvZGFtb24vbXRpZXIuYzo4OiNkZWZpbmUgcHJfZm10KGZtdCkgXFxcImRhbW9uX3NhbXBsZV9tdGllcjogXFxcIiBmbXRcXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtOS1cXG4tLVxcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0xNy0jZW5kaWZcXG5zYW1wbGVzL2RhbW9uL210aWVyLmM6MTg6I2RlZmluZSBNT0RVTEVfUEFSQU1fUFJFRklYIFxcXCJkYW1vbl9zYW1wbGVfbXRpZXIuXFxcIlxcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0xOS1cXG4tLVxcbnNhbXBsZXMvZGFtb24vbXRpZXIuYz0zNj1tb2R1bGVfcGFyYW0obm9kZTBfbWVtX2ZyZWVfYnAsIHVsb25nLCAwNjAwKTtcXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMzctXFxuc2FtcGxlcy9kYW1vbi9tdGllci5jOjM4OnN0YXRpYyBpbnQgZGFtb25fc2FtcGxlX210aWVyX2VuYWJsZV9zdG9yZShcXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMzktXFx0XFx0Y29uc3QgY2hhciAqdmFsLCBjb25zdCBzdHJ1Y3Qga2VybmVsX3BhcmFtICprcCk7XFxuLS1cXG5zYW1wbGVzL2RhbW9uL210aWVyLmM9NDE9c3RhdGljIGNvbnN0IHN0cnVjdCBrZXJuZWxfcGFyYW1fb3BzIGVuYWJsZWRfcGFyYW1fb3BzID0ge1xcbnNhbXBsZXMvZGFtb24vbXRpZXIuYzo0MjpcXHQuc2V0ID0gZGFtb25fc2FtcGxlX210aWVyX2VuYWJsZV9zdG9yZSxcXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtNDMtXFx0LmdldCA9IHBhcmFtX2dldF9ib29sLFxcbi0tXFxuc2FtcGxlcy9kYW1vbi9tdGllci5jPTU1PXN0YXRpYyBpbnQgbmlkX3RvX3BoeXMoaW50IHRhcmdldF9ub2RlLCBzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZSAqcmFuZ2UpXFxuLS1cXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtNjctXFxuc2FtcGxlcy9kYW1vbi9tdGllci5jOjY4OnN0YXRpYyBzdHJ1Y3QgZGFtb25fY3R4ICpkYW1vbl9zYW1wbGVfbXRpZXJfYnVpbGRfY3R4KGJvb2wgcHJvbW90ZSlcXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtNjkte1xcbi0tXFxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTE2Ny1cXG5zYW1wbGVzL2RhbW9uL210aWVyLmM6MTY4OnN0YXRpYyBpbnQgZGFtb25fc2FtcGxlX210aWVyX3N0YXJ0KHZvaWQpXFxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTE2OS17XFxuLS1cXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMTcyLVxcbnNhbXBsZXMvZGFtb24vbXRpZXIuYzoxNzM6XFx0Y3R4ID0gZGFtb25fc2FtcGxlX210aWVyX2J1aWxkX2N0eCh0cnVlKTtcXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMTc0LVxcdGlmICghY3R4KVxcbi0tXFxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTE3Ni1cXHRjdHhzWzBdID0gY3R4O1xcbnNhbXBsZXMvZGFtb24vbXRpZXIuYzoxNzc6XFx0Y3R4ID0gZGFtb25fc2FtcGxlX210aWVyX2J1aWxkX2N0eChmYWxzZSk7XFxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTE3OC1cXHRpZiAoIWN0eCkge1xcbi0tXFxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTE5MS1cXG5zYW1wbGVzL2RhbW9uL210aWVyLmM6MTkyOnN0YXRpYyB2b2lkIGRhbW9uX3NhbXBsZV9tdGllcl9zdG9wKHZvaWQpXFxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTE5My17XFxuLS1cXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMTk4LVxcbnNhbXBsZXMvZGFtb24vbXRpZXIuYzoxOTk6c3RhdGljIGludCBkYW1vbl9zYW1wbGVfbXRpZXJfZW5hYmxlX3N0b3JlKFxcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0yMDAtXFx0XFx0Y29uc3QgY2hhciAqdmFsLCBjb25zdCBzdHJ1Y3Qga2VybmVsX3BhcmFtICprcClcXG4tLVxcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0yMTUtXFx0aWYgKGVuYWJsZWQpIHtcXG5zYW1wbGVzL2RhbW9uL210aWVyLmM6MjE2OlxcdFxcdGVyciA9IGRhbW9uX3NhbXBsZV9tdGllcl9zdGFydCgpO1xcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0yMTctXFx0XFx0aWYgKGVycilcXG4tLVxcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0yMjAtXFx0fVxcbnNhbXBsZXMvZGFtb24vbXRpZXIuYzoyMjE6XFx0ZGFtb25fc2FtcGxlX210aWVyX3N0b3AoKTtcXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMjIyLVxcdHJldHVybiAwO1xcbi0tXFxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTIyNC1cXG5zYW1wbGVzL2RhbW9uL210aWVyLmM6MjI1OnN0YXRpYyBpbnQgX19pbml0IGRhbW9uX3NhbXBsZV9tdGllcl9pbml0KHZvaWQpXFxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTIyNi17XFxuLS1cXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMjM1LVxcdGlmIChlbmFibGVkKSB7XFxuc2FtcGxlcy9kYW1vbi9tdGllci5jOjIzNjpcXHRcXHRlcnIgPSBkYW1vbl9zYW1wbGVfbXRpZXJfc3RhcnQoKTtcXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMjM3LVxcdFxcdGlmIChlcnIpXFxuLS1cXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMjQyLVxcbnNhbXBsZXMvZGFtb24vbXRpZXIuYzoyNDM6bW9kdWxlX2luaXQoZGFtb25fc2FtcGxlX210aWVyX2luaXQpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQxNzozNToyOC42MzcwNjkyNjlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTQwNDQwMjE0NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQYXRjaDogQSBRdWljayBBc3Nlc3NtZW50KipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgc2FtcGxlcy9kYW1vbi9tdGllci5jYC4gSW1tZWRpYXRlbHksIEknbSBhIGxpdHRsZSBoZXNpdGFudCBiZWNhdXNlIHNhbXBsZSBtb2R1bGVzIGFyZW4ndCB0eXBpY2FsbHkgdGhlIHRhcmdldHMgZm9yIGZ1enppbmcuIFdlIHVzdWFsbHkgZm9jdXMgb24gY29yZSBmdW5jdGlvbmFsaXR5IG9yIGRyaXZlcnMuIEJ1dCBsZXQncyBzZWUgd2hhdCdzIGNoYW5nZWQuXG5cbkFscmlnaHQsIHRoZSBjb3JlIG9mIGl0IGxvb2tzIGxpa2UgYSBzaW1wbGUgc3RydWN0dXJlIHJlcGxhY2VtZW50LiBUaGV5J3JlIHN3YXBwaW5nIG91dCBgcmVnaW9uX3JhbmdlYCBmb3IgYGRhbW9uX2FkZHJfcmFuZ2VgLiBCb3RoIHN0cnVjdHVyZXMsIHN1cGVyZmljaWFsbHksIGNvbnRhaW4gYHN0YXJ0YCBhbmQgYGVuZGAgbWVtYmVycywgc28gdGhlIGNvbmNlcHQgaXMgdGhlIHNhbWU6IGRlZmluaW5nIGFuIGFkZHJlc3MgcmFuZ2UuIEhtbSwgdGhhdCBzZWVtcyBzdHJhaWdodGZvcndhcmQuXG5cbldhaXQgYSBzZWNvbmTigKYgSSBuZWVkIHRvIGNvbmZpcm0gdGhlIHVuZGVybHlpbmcgdHlwZXMuIExldCBtZSBqdXN0IGRvdWJsZS1jaGVjayB0aGUgZGVmaW5pdGlvbiBvZiBgcmVnaW9uX3JhbmdlYC4gSXQgbG9va3MgbGlrZSB0aGF0IG9uZSB1c2VzIGBwaHlzX2FkZHJfdGAgZm9yIHN0YXJ0IGFuZCBlbmQsIGFuZCBpbiBjb250cmFzdCwgYGRhbW9uX2FkZHJfcmFuZ2VgIHVzZXMgc2ltcGxlIGB1bnNpZ25lZCBsb25nYCBmb3IgdGhvc2UgbWVtYmVycy4gSXMgdGhlcmUgYSBwb3NzaWJsZSBmdW5jdGlvbmFsIGNoYW5nZSBoZXJlPyBZZXMsIHRoZXJlIGlzISBJIG5lZWQgdG8gaW52ZXN0aWdhdGUgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIGNoYW5nZSBvbiB0aGUgdHlwZXMgb2YgYWRkcmVzc2VzIHRoYXQgY2FuIGJlIHJlcHJlc2VudGVkLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiB0aGlzIGlzIGEgd2lkZW5pbmcgb3IgbmFycm93aW5nIG9mIHRoZSBhZGRyZXNzIHJhbmdlIGFuZCBpZiB0aGVyZSBpcyBhbnkgdHlwZS1yZWxhdGVkIGxvc3Mgb2YgcHJlY2lzaW9uIHRoYXQgbWlnaHQgYmUgaW52b2x2ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4MzgsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMTc6MzU6NDAuMDQxNDc0Nzc0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc1MjY4Mjk4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJpbmNsdWRlL2xpbnV4L2RhbW9uLmhcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiaW5jbHVkZS9saW51eC9kYW1vbi5oLTIzLS8qKlxcbmluY2x1ZGUvbGludXgvZGFtb24uaDoyNDogKiBzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZSAtIFJlcHJlc2VudHMgYW4gYWRkcmVzcyByZWdpb24gb2YgW0BzdGFydCwgQGVuZCkuXFxuaW5jbHVkZS9saW51eC9kYW1vbi5oLTI1LSAqIEBzdGFydDpcXHRTdGFydCBhZGRyZXNzIG9mIHRoZSByZWdpb24gKGluY2x1c2l2ZSkuXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2RhbW9uLmgtMjctICovXFxuaW5jbHVkZS9saW51eC9kYW1vbi5oOjI4OnN0cnVjdCBkYW1vbl9hZGRyX3JhbmdlIHtcXG5pbmNsdWRlL2xpbnV4L2RhbW9uLmgtMjktXFx0dW5zaWduZWQgbG9uZyBzdGFydDtcXG4tLVxcbmluY2x1ZGUvbGludXgvZGFtb24uaD02NT1zdHJ1Y3QgZGFtb25fcmVnaW9uIHtcXG5pbmNsdWRlL2xpbnV4L2RhbW9uLmg6NjY6XFx0c3RydWN0IGRhbW9uX2FkZHJfcmFuZ2UgYXI7XFxuaW5jbHVkZS9saW51eC9kYW1vbi5oLTY3LVxcdHVuc2lnbmVkIGxvbmcgc2FtcGxpbmdfYWRkcjtcXG4tLVxcbmluY2x1ZGUvbGludXgvZGFtb24uaD00NDI9c3RydWN0IGRhbW9zX2ZpbHRlciB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L2RhbW9uLmgtNDQ3LVxcdFxcdHU2NCBtZW1jZ19pZDtcXG5pbmNsdWRlL2xpbnV4L2RhbW9uLmg6NDQ4OlxcdFxcdHN0cnVjdCBkYW1vbl9hZGRyX3JhbmdlIGFkZHJfcmFuZ2U7XFxuaW5jbHVkZS9saW51eC9kYW1vbi5oLTQ0OS1cXHRcXHRpbnQgdGFyZ2V0X2lkeDtcXG4tLVxcbmluY2x1ZGUvbGludXgvZGFtb24uaD0xMDI3PXVuc2lnbmVkIGludCBkYW1vbl9wcm9iZV9oaXRzX3dzdW0oc3RydWN0IGRhbW9uX3JlZ2lvbiAqciwgYm9vbCBsYXN0LFxcbi0tXFxuaW5jbHVkZS9saW51eC9kYW1vbi5oLTEwMjktXFxuaW5jbHVkZS9saW51eC9kYW1vbi5oOjEwMzA6aW50IGRhbW9uX3NldF9yZWdpb25zKHN0cnVjdCBkYW1vbl90YXJnZXQgKnQsIHN0cnVjdCBkYW1vbl9hZGRyX3JhbmdlICpyYW5nZXMsXFxuaW5jbHVkZS9saW51eC9kYW1vbi5oLTEwMzEtXFx0XFx0dW5zaWduZWQgaW50IG5yX3JhbmdlcywgdW5zaWduZWQgbG9uZyBtaW5fcmVnaW9uX3N6KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMTc6MzU6NDAuNzk0MTY5NzY0WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjQ0OTk4NTE5MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBUeXBlIE1pc21hdGNoIGluIGEgREFNT04gU2FtcGxlIE1vZHVsZSBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0IHNlZW1zIGxpa2UgaXQncyBjaGFuZ2luZyBgc3RydWN0IHJlZ2lvbl9yYW5nZWAgdG8gYHN0cnVjdCBkYW1vbl9hZGRyX3JhbmdlYC4gUmlnaHQsIGBkYW1vbl9zZXRfcmVnaW9uc2Agbm93IHRha2VzIGBzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZSAqYCBhcyBpdHMgaW5wdXQuIEJlZm9yZSwgaXQgd2FzIGVpdGhlciB0YWtpbmcgYHN0cnVjdCByZWdpb25fcmFuZ2UgKmAgYW5kIGNhc3RpbmcgaXQsIG9yIGl0IHdhcyBpbmNvcnJlY3RseSBiZWluZyBwYXNzZWQgYSBgc3RydWN0IHJlZ2lvbl9yYW5nZSAqYCB3aGVuIGl0IGV4cGVjdGVkIHRoZSBgZGFtb25gIHZlcnNpb24uIFRoZSBjb2RlICpoYXBwZW5lZCogdG8gd29yayBiZWNhdXNlIHRoZSBsYXlvdXRzIHdlcmUgdGhlIHNhbWUsIGFzc3VtaW5nIGBwaHlzX2FkZHJfdGAgd2FzIGp1c3QgYW4gYHVuc2lnbmVkIGxvbmdgLiBCdXQgaG9sZCBvbi4uLiBgcGh5c19hZGRyX3RgICpjYW4qIGJlIDY0LWJpdCBvbiAzMi1iaXQgc3lzdGVtcyB1c2luZyBQQUUhIFNvLCB5ZWFoLCBpdCdzIGRlZmluaXRlbHkgYSB0eXBlIG1pc21hdGNoLiBUaGUgcGF0Y2ggc2VlbXMgdG8gYmUgY29ycmVjdGluZyB0aGF0LlxuXG5CdXQgdGhlIGJpZ2dlciBxdWVzdGlvbiBpczogc2hvdWxkIEkgZXZlbiBib3RoZXIgZnV6emluZyB0aGlzPyBUaGlzIGlzIGEgKnNhbXBsZSogbW9kdWxlLiBTYW1wbGUgbW9kdWxlcyBhcmUgdXN1YWxseSBub3QgcHJpbWUgY2FuZGlkYXRlcyBmb3IgZnV6emluZy4gVGhleSBhcmUgZm9yIGlsbHVzdHJhdGl2ZSBwdXJwb3Nlcy4gSXQncyBqdXN0IGEgc2FtcGxlIG1vZHVsZSBmb3IgREFNT04uIExldCdzIHRoaW5rIHRocm91Z2ggdGhpcyBtb3JlIGNhcmVmdWxseS5cblxuUmlnaHQsIHRoZSBkZWNpc2lvbiB0byBmdXp6IGRlcGVuZHMgb24gaG93IGltcG9ydGFudCBpdCBpcy4gSSByZWNhbGwgYSBoZXVyaXN0aWMgZm9yIHRoaXM6IFwiUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczogLi4uIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZVwiLiBTbywgc2luY2Ugc2FtcGxlIG1vZHVsZXMgYXJlIHVzdWFsbHkgbm90IGxvYWRlZCBieSBkZWZhdWx0LCBhbmQgdGhleSBhcmUgbm90IHBhcnQgb2YgdGhlIGNvcmUga2VybmVsIGxvZ2ljLiBUaGlzIHNlZW1zIGxpa2UgYSByZWFzb25hYmxlIHNob3J0Y3V0LiBIb3dldmVyLCBpcyB0aGlzIG9uZSBjb21waWxlZCBpbiBkZWZhdWx0IGNvbmZpZ3M/IEkgYmV0dGVyIGNoZWNrIGBzYW1wbGVzL2RhbW9uL210aWVyLmNgLiBPa2F5LCBsZXQncyBsb29rIGF0IGBzYW1wbGVzL2RhbW9uL0tjb25maWdgIHRvIHNlZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDY5OCwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMxOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQxNzozNTo0Ny4yNDQxOTQxNDhaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzI2NjEzOTk5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlNBTVBMRV9EQU1PTl9NVElFUlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJzYW1wbGVzL2RhbW9uL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJzYW1wbGVzL2RhbW9uL0tjb25maWc9MTc9Y29uZmlnIFNBTVBMRV9EQU1PTl9QUkNMXFxuLS1cXG5zYW1wbGVzL2RhbW9uL0tjb25maWctMjktXFxuc2FtcGxlcy9kYW1vbi9LY29uZmlnOjMwOmNvbmZpZyBTQU1QTEVfREFNT05fTVRJRVJcXG5zYW1wbGVzL2RhbW9uL0tjb25maWctMzEtXFx0Ym9vbCBcXFwiREFNT04gc2FtcGxlIG1vZHVsZSBmb3IgbWVtb3J5IHRpZXJpbmdcXFwiXFxuLS1cXG5zYW1wbGVzL2RhbW9uL01ha2VmaWxlPTQ9b2JqLSQoQ09ORklHX1NBTVBMRV9EQU1PTl9QUkNMKSArPSBwcmNsLm9cXG5zYW1wbGVzL2RhbW9uL01ha2VmaWxlOjU6b2JqLSQoQ09ORklHX1NBTVBMRV9EQU1PTl9NVElFUikgKz0gbXRpZXIub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQxNzozNTo0Ny45NzA4MjQ3MzdaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NTQ0ODQ4NzE5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFNhbXBsZSBNb2R1bGUqKlxuXG5Pa2F5LCBoZXJlJ3MgdGhlIHNpdHVhdGlvbi4gSSdtIGxvb2tpbmcgYXQgYSBzYW1wbGUgbW9kdWxlLCBhbmQgaW1tZWRpYXRlbHkgSSdtIHRoaW5raW5nLCBcIk5vdCBmdXp6YWJsZS5cIiBJdCdzIGp1c3QgYSBzYW1wbGUsIG5vdCBjcml0aWNhbCBrZXJuZWwgbG9naWMsIGEgZHJpdmVyLCBvciBhbnl0aGluZyBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgdGhhdCB3b3VsZCB3YXJyYW50IGZ1enppbmcuIEluIGEgcHJvZHVjdGlvbiBlbnZpcm9ubWVudCwgdGhpcyB0aGluZyB3b3VsZG4ndCBldmVuIGJlIGxvYWRlZCBvciB1c2VkLiBTbywgdGhlIG9idmlvdXMgY2FsbCBoZXJlIGlzIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC5cblxuTGV0IG1lIGp1c3QgcXVpY2tseSB2ZXJpZnkgdGhhdCB0aGVyZSBoYXZlbid0IGJlZW4gYW55IG90aGVyIHJlbGV2YW50IGNvZGUgY2hhbmdlcyBzbmVha2luZyBpbi4gWWVwLCBsb29rcyBsaWtlIHRoZSBvbmx5IG1vZGlmaWVkIGZpbGUgaXMgYHNhbXBsZXMvZGFtb24vbXRpZXIuY2AuIFRoYXQgY29uZmlybXMgaXQuIE5vIG5lZWQgdG8gb3ZlcnRoaW5rIHRoaXMuIEknbSBzZXR0aW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NTkyLCJPdXRwdXRUb2tlbnMiOjgxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDE3OjM2OjQzLjQxOTMxNzIwMVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQwMjYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgYSBzYW1wbGUgbW9kdWxlIChzYW1wbGVzL2RhbW9uL210aWVyLmMpIHdoaWNoIGlzIG5vdCBwYXJ0IG9mIHRoZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy4gU2FtcGxlIG1vZHVsZXMgYXJlIG5vdCB0eXBpY2FsbHkgZnV6emVkIGFzIHRoZXkgYXJlIG5vdCB1c2VkIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBhIHNhbXBsZSBtb2R1bGUgKHNhbXBsZXMvZGFtb24vbXRpZXIuYykgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLiBTYW1wbGUgbW9kdWxlcyBhcmUgbm90IHR5cGljYWxseSBmdXp6ZWQgYXMgdGhleSBhcmUgbm90IHVzZWQgaW4gcHJvZHVjdGlvbiBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowfkhpf[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-20 17:22:31 +0000 UTC FinishedAt: 2026-07-20 17:36:45 +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+CgkJCTx0ZD4yMDI2LzA3LzIwIDE3OjM1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgYSBzYW1wbGUgbW9kdWxlIChzYW1wbGVzL2RhbW9uL210aWVyLmMpIHdoaWNoIGlzIG5vdCBwYXJ0IG9mIHRoZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy4gU2FtcGxlIG1vZHVsZXMgYXJlIG5vdCB0eXBpY2FsbHkgZnV6emVkIGFzIHRoZXkgYXJlIG5vdCB1c2VkIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAxNzozNTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGJmYTNhNWFiNzkxYWU1M2E3NWI3ZTI2YjE3MTBiY2NiZDhjZTlmNWFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1bCAyMCAxNzozNTowNyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9zYW1wbGVzL2RhbW9uL210aWVyLmMgYi9zYW1wbGVzL2RhbW9uL210aWVyLmNcbmluZGV4IGFjOWMyNGI5MmVhZDg0Li4zNzEyMjg3ZjAwOWM1NCAxMDA2NDRcbi0tLSBhL3NhbXBsZXMvZGFtb24vbXRpZXIuY1xuJiM0MzsmIzQzOyYjNDM7IGIvc2FtcGxlcy9kYW1vbi9tdGllci5jXG5AQCAtNTIsMTIgJiM0Mzs1Miw3IEBAIG1vZHVsZV9wYXJhbShkZXRlY3Rfbm9kZV9hZGRyZXNzZXMsIGJvb2wsIDA2MDApO1xuIFxuIHN0YXRpYyBzdHJ1Y3QgZGFtb25fY3R4ICpjdHhzWzJdO1xuIFxuLXN0cnVjdCByZWdpb25fcmFuZ2Uge1xuLVx0cGh5c19hZGRyX3Qgc3RhcnQ7XG4tXHRwaHlzX2FkZHJfdCBlbmQ7XG4tfTtcbi1cbi1zdGF0aWMgaW50IG5pZF90b19waHlzKGludCB0YXJnZXRfbm9kZSwgc3RydWN0IHJlZ2lvbl9yYW5nZSAqcmFuZ2UpXG4mIzQzO3N0YXRpYyBpbnQgbmlkX3RvX3BoeXMoaW50IHRhcmdldF9ub2RlLCBzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZSAqcmFuZ2UpXG4ge1xuIFx0aWYgKCFub2RlX29ubGluZSh0YXJnZXRfbm9kZSkpIHtcbiBcdFx0cHJfZXJyKFwmIzM0O05VTUEgbm9kZSAlZCBpcyBub3Qgb25saW5lXFxuXCYjMzQ7LCB0YXJnZXRfbm9kZSk7XG5AQCAtNzgsOCAmIzQzOzczLDcgQEAgc3RhdGljIHN0cnVjdCBkYW1vbl9jdHggKmRhbW9uX3NhbXBsZV9tdGllcl9idWlsZF9jdHgoYm9vbCBwcm9tb3RlKVxuIFx0c3RydWN0IGRhbW9zICpzY2hlbWU7XG4gXHRzdHJ1Y3QgZGFtb3NfcXVvdGFfZ29hbCAqcXVvdGFfZ29hbDtcbiBcdHN0cnVjdCBkYW1vc19maWx0ZXIgKmZpbHRlcjtcbi1cdHN0cnVjdCByZWdpb25fcmFuZ2UgYWRkcjtcbi1cdHN0cnVjdCBkYW1vbl9hZGRyX3JhbmdlIHJhbmdlO1xuJiM0MztcdHN0cnVjdCBkYW1vbl9hZGRyX3JhbmdlIGFkZHI7XG4gXHRpbnQgcmV0O1xuIFxuIFx0Y3R4ID0gZGFtb25fbmV3X2N0eCgpO1xuQEAgLTEyMywxMCAmIzQzOzExNyw3IEBAIHN0YXRpYyBzdHJ1Y3QgZGFtb25fY3R4ICpkYW1vbl9zYW1wbGVfbXRpZXJfYnVpbGRfY3R4KGJvb2wgcHJvbW90ZSlcbiBcdGlmIChhZGRyLnN0YXJ0IFx1MDAzZT0gYWRkci5lbmQpXG4gXHRcdGdvdG8gZnJlZV9vdXQ7XG4gXG4tXHRyYW5nZS5zdGFydCA9IGFkZHIuc3RhcnQ7XG4tXHRyYW5nZS5lbmQgPSBhZGRyLmVuZDtcbi1cbi1cdHJldCA9IGRhbW9uX3NldF9yZWdpb25zKHRhcmdldCwgXHUwMDI2cmFuZ2UsIDEsIERBTU9OX01JTl9SRUdJT05fU1opO1xuJiM0MztcdHJldCA9IGRhbW9uX3NldF9yZWdpb25zKHRhcmdldCwgXHUwMDI2YWRkciwgMSwgREFNT05fTUlOX1JFR0lPTl9TWik7XG4gXHRpZiAocmV0KVxuIFx0XHRnb3RvIGZyZWVfb3V0O1xuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDE3OjM1PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIGEgc2FtcGxlIG1vZHVsZSAoc2FtcGxlcy9kYW1vbi9tdGllci5jKSB3aGljaCBpcyBub3QgcGFydCBvZiB0aGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMuIFNhbXBsZSBtb2R1bGVzIGFyZSBub3QgdHlwaWNhbGx5IGZ1enplZCBhcyB0aGV5IGFyZSBub3QgdXNlZCBpbiBwcm9kdWN0aW9uIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGJmYTNhNWFiNzkxYWU1M2E3NWI3ZTI2YjE3MTBiY2NiZDhjZTlmNWEKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEp1bCAyMCAxNzozNTowNyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL3NhbXBsZXMvZGFtb24vbXRpZXIuYyBiL3NhbXBsZXMvZGFtb24vbXRpZXIuYwppbmRleCBhYzljMjRiOTJlYWQ4NC4uMzcxMjI4N2YwMDljNTQgMTAwNjQ0Ci0tLSBhL3NhbXBsZXMvZGFtb24vbXRpZXIuYwomIzQzOyYjNDM7JiM0MzsgYi9zYW1wbGVzL2RhbW9uL210aWVyLmMKQEAgLTUyLDEyICYjNDM7NTIsNyBAQCBtb2R1bGVfcGFyYW0oZGV0ZWN0X25vZGVfYWRkcmVzc2VzLCBib29sLCAwNjAwKTsKIAogc3RhdGljIHN0cnVjdCBkYW1vbl9jdHggKmN0eHNbMl07CiAKLXN0cnVjdCByZWdpb25fcmFuZ2UgewotCXBoeXNfYWRkcl90IHN0YXJ0OwotCXBoeXNfYWRkcl90IGVuZDsKLX07Ci0KLXN0YXRpYyBpbnQgbmlkX3RvX3BoeXMoaW50IHRhcmdldF9ub2RlLCBzdHJ1Y3QgcmVnaW9uX3JhbmdlICpyYW5nZSkKJiM0MztzdGF0aWMgaW50IG5pZF90b19waHlzKGludCB0YXJnZXRfbm9kZSwgc3RydWN0IGRhbW9uX2FkZHJfcmFuZ2UgKnJhbmdlKQogewogCWlmICghbm9kZV9vbmxpbmUodGFyZ2V0X25vZGUpKSB7CiAJCXByX2VycigmIzM0O05VTUEgbm9kZSAlZCBpcyBub3Qgb25saW5lXG4mIzM0OywgdGFyZ2V0X25vZGUpOwpAQCAtNzgsOCAmIzQzOzczLDcgQEAgc3RhdGljIHN0cnVjdCBkYW1vbl9jdHggKmRhbW9uX3NhbXBsZV9tdGllcl9idWlsZF9jdHgoYm9vbCBwcm9tb3RlKQogCXN0cnVjdCBkYW1vcyAqc2NoZW1lOwogCXN0cnVjdCBkYW1vc19xdW90YV9nb2FsICpxdW90YV9nb2FsOwogCXN0cnVjdCBkYW1vc19maWx0ZXIgKmZpbHRlcjsKLQlzdHJ1Y3QgcmVnaW9uX3JhbmdlIGFkZHI7Ci0Jc3RydWN0IGRhbW9uX2FkZHJfcmFuZ2UgcmFuZ2U7CiYjNDM7CXN0cnVjdCBkYW1vbl9hZGRyX3JhbmdlIGFkZHI7CiAJaW50IHJldDsKIAogCWN0eCA9IGRhbW9uX25ld19jdHgoKTsKQEAgLTEyMywxMCAmIzQzOzExNyw3IEBAIHN0YXRpYyBzdHJ1Y3QgZGFtb25fY3R4ICpkYW1vbl9zYW1wbGVfbXRpZXJfYnVpbGRfY3R4KGJvb2wgcHJvbW90ZSkKIAlpZiAoYWRkci5zdGFydCAmZ3Q7PSBhZGRyLmVuZCkKIAkJZ290byBmcmVlX291dDsKIAotCXJhbmdlLnN0YXJ0ID0gYWRkci5zdGFydDsKLQlyYW5nZS5lbmQgPSBhZGRyLmVuZDsKLQotCXJldCA9IGRhbW9uX3NldF9yZWdpb25zKHRhcmdldCwgJmFtcDtyYW5nZSwgMSwgREFNT05fTUlOX1JFR0lPTl9TWik7CiYjNDM7CXJldCA9IGRhbW9uX3NldF9yZWdpb25zKHRhcmdldCwgJmFtcDthZGRyLCAxLCBEQU1PTl9NSU5fUkVHSU9OX1NaKTsKIAlpZiAocmV0KQogCQlnb3RvIGZyZWVfb3V0OwogCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDE3OjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyMTYKCQkJCQkJCW91dHB1dDogMjcKCQkJCQkJCXRob3VnaHRzOiAxODQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUGF0Y2ggdG8gYSBTYW1wbGUgREFNT04gTW9kdWxlKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCYjMzk7cyB0b3VjaGluZyBgc2FtcGxlcy9kYW1vbi9tdGllci5jYC4gVGhlIGNvcmUgY2hhbmdlIGlzIHJlcGxhY2luZyBgc3RydWN0IHJlZ2lvbl9yYW5nZWAgd2l0aCBgc3RydWN0IGRhbW9uX2FkZHJfcmFuZ2VgIGluIHRoZSBgbmlkX3RvX3BoeXNgIGFuZCBgZGFtb25fc2FtcGxlX210aWVyX2J1aWxkX2N0eGAgZnVuY3Rpb25zLiBJdCBhbHNvIHJlbW92ZXMgdGhlIGBzdHJ1Y3QgcmVnaW9uX3JhbmdlYCBkZWZpbml0aW9uIGVudGlyZWx5LiBObyBiaWcgZGVhbCwgaXQmIzM5O3MganVzdCBhIHNhbXBsZSBtb2R1bGUsIGBtdGllci5jYC4KCk5vdywgc2FtcGxlIG1vZHVsZXPigKYgdGhvc2UgYXJlbiYjMzk7dCB0eXBpY2FsbHkgYSBoaWdoIHByaW9yaXR5IGZvciBmdXp6aW5nLCB1bmxlc3MgdGhleSBzZXJ2ZSBhcyBzb21lIGtpbmQgb2YgZW50cnkgcG9pbnQgb3Igd2UgaGF2ZSBhIHNwZWNpZmljIHJlYXNvbiB0byBmb2N1cyBvbiB0aGVtLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtXYWl0LCB3aGF0JiMzOTtzIHRoZSBkZWFsIHdpdGggZnV6emluZyBgc2FtcGxlcy9gPyBEb2VzbiYjMzk7dCBzeXprYWxsZXIgdXN1YWxseSBpZ25vcmUgdGhhdCBkaXJlY3Rvcnk/JiMzNDsgSSBuZWVkIHRvIGNvbmZpcm0gaWYgdGhpcyBgbXRpZXIuY2AgaXMgZXZlbiBjb21waWxlZCBpbiB0aGUga2VybmVsIGNvbmZpZyBhbmQgd29ydGggdGhlIGVmZm9ydCBvZiBiZWluZyBmdXp6ZWQuIFNhbXBsZSBtb2R1bGVzIGFyZSwgaW4gbW9zdCBjYXNlcywganVzdCBleGFtcGxlcyB0byBkZW1vbnN0cmF0ZSBob3cgdGhpbmdzIHdvcmsuIFRpbWUgdG8gZGlnIGludG8gYHNhbXBsZXMvZGFtb24vS2NvbmZpZ2Agb3IgcG9zc2libHkgZXZlbiB0aGUgdG9wLWxldmVsIGBzYW1wbGVzL0tjb25maWdgIGZpbGUgdG8gc2VlIGlmIGFueXRoaW5nIGlzIGVuYWJsZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMTc6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXRpZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtzYW1wbGVzL2RhbW9uLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtzYW1wbGVzL2RhbW9uL01ha2VmaWxlPTQ9b2JqLSQoQ09ORklHX1NBTVBMRV9EQU1PTl9QUkNMKSAmIzQzOz0gcHJjbC5vXG5zYW1wbGVzL2RhbW9uL01ha2VmaWxlOjU6b2JqLSQoQ09ORklHX1NBTVBMRV9EQU1PTl9NVElFUikgJiM0Mzs9IG10aWVyLm9cbi0tXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtNy1cbnNhbXBsZXMvZGFtb24vbXRpZXIuYzo4OiNkZWZpbmUgcHJfZm10KGZtdCkgXCYjMzQ7ZGFtb25fc2FtcGxlX210aWVyOiBcJiMzNDsgZm10XG5zYW1wbGVzL2RhbW9uL210aWVyLmMtOS1cbi0tXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMTctI2VuZGlmXG5zYW1wbGVzL2RhbW9uL210aWVyLmM6MTg6I2RlZmluZSBNT0RVTEVfUEFSQU1fUFJFRklYIFwmIzM0O2RhbW9uX3NhbXBsZV9tdGllci5cJiMzNDtcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0xOS1cbi0tXG5zYW1wbGVzL2RhbW9uL210aWVyLmM9MzY9bW9kdWxlX3BhcmFtKG5vZGUwX21lbV9mcmVlX2JwLCB1bG9uZywgMDYwMCk7XG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMzctXG5zYW1wbGVzL2RhbW9uL210aWVyLmM6Mzg6c3RhdGljIGludCBkYW1vbl9zYW1wbGVfbXRpZXJfZW5hYmxlX3N0b3JlKFxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTM5LVx0XHRjb25zdCBjaGFyICp2YWwsIGNvbnN0IHN0cnVjdCBrZXJuZWxfcGFyYW0gKmtwKTtcbi0tXG5zYW1wbGVzL2RhbW9uL210aWVyLmM9NDE9c3RhdGljIGNvbnN0IHN0cnVjdCBrZXJuZWxfcGFyYW1fb3BzIGVuYWJsZWRfcGFyYW1fb3BzID0ge1xuc2FtcGxlcy9kYW1vbi9tdGllci5jOjQyOlx0LnNldCA9IGRhbW9uX3NhbXBsZV9tdGllcl9lbmFibGVfc3RvcmUsXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtNDMtXHQuZ2V0ID0gcGFyYW1fZ2V0X2Jvb2wsXG4tLVxuc2FtcGxlcy9kYW1vbi9tdGllci5jPTU1PXN0YXRpYyBpbnQgbmlkX3RvX3BoeXMoaW50IHRhcmdldF9ub2RlLCBzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZSAqcmFuZ2UpXG4tLVxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTY3LVxuc2FtcGxlcy9kYW1vbi9tdGllci5jOjY4OnN0YXRpYyBzdHJ1Y3QgZGFtb25fY3R4ICpkYW1vbl9zYW1wbGVfbXRpZXJfYnVpbGRfY3R4KGJvb2wgcHJvbW90ZSlcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy02OS17XG4tLVxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTE2Ny1cbnNhbXBsZXMvZGFtb24vbXRpZXIuYzoxNjg6c3RhdGljIGludCBkYW1vbl9zYW1wbGVfbXRpZXJfc3RhcnQodm9pZClcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0xNjkte1xuLS1cbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0xNzItXG5zYW1wbGVzL2RhbW9uL210aWVyLmM6MTczOlx0Y3R4ID0gZGFtb25fc2FtcGxlX210aWVyX2J1aWxkX2N0eCh0cnVlKTtcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0xNzQtXHRpZiAoIWN0eClcbi0tXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMTc2LVx0Y3R4c1swXSA9IGN0eDtcbnNhbXBsZXMvZGFtb24vbXRpZXIuYzoxNzc6XHRjdHggPSBkYW1vbl9zYW1wbGVfbXRpZXJfYnVpbGRfY3R4KGZhbHNlKTtcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0xNzgtXHRpZiAoIWN0eCkge1xuLS1cbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0xOTEtXG5zYW1wbGVzL2RhbW9uL210aWVyLmM6MTkyOnN0YXRpYyB2b2lkIGRhbW9uX3NhbXBsZV9tdGllcl9zdG9wKHZvaWQpXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMTkzLXtcbi0tXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMTk4LVxuc2FtcGxlcy9kYW1vbi9tdGllci5jOjE5OTpzdGF0aWMgaW50IGRhbW9uX3NhbXBsZV9tdGllcl9lbmFibGVfc3RvcmUoXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMjAwLVx0XHRjb25zdCBjaGFyICp2YWwsIGNvbnN0IHN0cnVjdCBrZXJuZWxfcGFyYW0gKmtwKVxuLS1cbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0yMTUtXHRpZiAoZW5hYmxlZCkge1xuc2FtcGxlcy9kYW1vbi9tdGllci5jOjIxNjpcdFx0ZXJyID0gZGFtb25fc2FtcGxlX210aWVyX3N0YXJ0KCk7XG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMjE3LVx0XHRpZiAoZXJyKVxuLS1cbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0yMjAtXHR9XG5zYW1wbGVzL2RhbW9uL210aWVyLmM6MjIxOlx0ZGFtb25fc2FtcGxlX210aWVyX3N0b3AoKTtcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0yMjItXHRyZXR1cm4gMDtcbi0tXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMjI0LVxuc2FtcGxlcy9kYW1vbi9tdGllci5jOjIyNTpzdGF0aWMgaW50IF9faW5pdCBkYW1vbl9zYW1wbGVfbXRpZXJfaW5pdCh2b2lkKVxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTIyNi17XG4tLVxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTIzNS1cdGlmIChlbmFibGVkKSB7XG5zYW1wbGVzL2RhbW9uL210aWVyLmM6MjM2Olx0XHRlcnIgPSBkYW1vbl9zYW1wbGVfbXRpZXJfc3RhcnQoKTtcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0yMzctXHRcdGlmIChlcnIpXG4tLVxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTI0Mi1cbnNhbXBsZXMvZGFtb24vbXRpZXIuYzoyNDM6bW9kdWxlX2luaXQoZGFtb25fc2FtcGxlX210aWVyX2luaXQpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDE3OjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4MzgKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAxMzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUGF0Y2g6IEEgUXVpY2sgQXNzZXNzbWVudCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIGBzYW1wbGVzL2RhbW9uL210aWVyLmNgLiBJbW1lZGlhdGVseSwgSSYjMzk7bSBhIGxpdHRsZSBoZXNpdGFudCBiZWNhdXNlIHNhbXBsZSBtb2R1bGVzIGFyZW4mIzM5O3QgdHlwaWNhbGx5IHRoZSB0YXJnZXRzIGZvciBmdXp6aW5nLiBXZSB1c3VhbGx5IGZvY3VzIG9uIGNvcmUgZnVuY3Rpb25hbGl0eSBvciBkcml2ZXJzLiBCdXQgbGV0JiMzOTtzIHNlZSB3aGF0JiMzOTtzIGNoYW5nZWQuCgpBbHJpZ2h0LCB0aGUgY29yZSBvZiBpdCBsb29rcyBsaWtlIGEgc2ltcGxlIHN0cnVjdHVyZSByZXBsYWNlbWVudC4gVGhleSYjMzk7cmUgc3dhcHBpbmcgb3V0IGByZWdpb25fcmFuZ2VgIGZvciBgZGFtb25fYWRkcl9yYW5nZWAuIEJvdGggc3RydWN0dXJlcywgc3VwZXJmaWNpYWxseSwgY29udGFpbiBgc3RhcnRgIGFuZCBgZW5kYCBtZW1iZXJzLCBzbyB0aGUgY29uY2VwdCBpcyB0aGUgc2FtZTogZGVmaW5pbmcgYW4gYWRkcmVzcyByYW5nZS4gSG1tLCB0aGF0IHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZC4KCldhaXQgYSBzZWNvbmTigKYgSSBuZWVkIHRvIGNvbmZpcm0gdGhlIHVuZGVybHlpbmcgdHlwZXMuIExldCBtZSBqdXN0IGRvdWJsZS1jaGVjayB0aGUgZGVmaW5pdGlvbiBvZiBgcmVnaW9uX3JhbmdlYC4gSXQgbG9va3MgbGlrZSB0aGF0IG9uZSB1c2VzIGBwaHlzX2FkZHJfdGAgZm9yIHN0YXJ0IGFuZCBlbmQsIGFuZCBpbiBjb250cmFzdCwgYGRhbW9uX2FkZHJfcmFuZ2VgIHVzZXMgc2ltcGxlIGB1bnNpZ25lZCBsb25nYCBmb3IgdGhvc2UgbWVtYmVycy4gSXMgdGhlcmUgYSBwb3NzaWJsZSBmdW5jdGlvbmFsIGNoYW5nZSBoZXJlPyBZZXMsIHRoZXJlIGlzISBJIG5lZWQgdG8gaW52ZXN0aWdhdGUgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIGNoYW5nZSBvbiB0aGUgdHlwZXMgb2YgYWRkcmVzc2VzIHRoYXQgY2FuIGJlIHJlcHJlc2VudGVkLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiB0aGlzIGlzIGEgd2lkZW5pbmcgb3IgbmFycm93aW5nIG9mIHRoZSBhZGRyZXNzIHJhbmdlIGFuZCBpZiB0aGVyZSBpcyBhbnkgdHlwZS1yZWxhdGVkIGxvc3Mgb2YgcHJlY2lzaW9uIHRoYXQgbWlnaHQgYmUgaW52b2x2ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMTc6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RydWN0IGRhbW9uX2FkZHJfcmFuZ2UmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtpbmNsdWRlL2xpbnV4L2RhbW9uLmgmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7aW5jbHVkZS9saW51eC9kYW1vbi5oLTIzLS8qKlxuaW5jbHVkZS9saW51eC9kYW1vbi5oOjI0OiAqIHN0cnVjdCBkYW1vbl9hZGRyX3JhbmdlIC0gUmVwcmVzZW50cyBhbiBhZGRyZXNzIHJlZ2lvbiBvZiBbQHN0YXJ0LCBAZW5kKS5cbmluY2x1ZGUvbGludXgvZGFtb24uaC0yNS0gKiBAc3RhcnQ6XHRTdGFydCBhZGRyZXNzIG9mIHRoZSByZWdpb24gKGluY2x1c2l2ZSkuXG4tLVxuaW5jbHVkZS9saW51eC9kYW1vbi5oLTI3LSAqL1xuaW5jbHVkZS9saW51eC9kYW1vbi5oOjI4OnN0cnVjdCBkYW1vbl9hZGRyX3JhbmdlIHtcbmluY2x1ZGUvbGludXgvZGFtb24uaC0yOS1cdHVuc2lnbmVkIGxvbmcgc3RhcnQ7XG4tLVxuaW5jbHVkZS9saW51eC9kYW1vbi5oPTY1PXN0cnVjdCBkYW1vbl9yZWdpb24ge1xuaW5jbHVkZS9saW51eC9kYW1vbi5oOjY2Olx0c3RydWN0IGRhbW9uX2FkZHJfcmFuZ2UgYXI7XG5pbmNsdWRlL2xpbnV4L2RhbW9uLmgtNjctXHR1bnNpZ25lZCBsb25nIHNhbXBsaW5nX2FkZHI7XG4tLVxuaW5jbHVkZS9saW51eC9kYW1vbi5oPTQ0Mj1zdHJ1Y3QgZGFtb3NfZmlsdGVyIHtcbi0tXG5pbmNsdWRlL2xpbnV4L2RhbW9uLmgtNDQ3LVx0XHR1NjQgbWVtY2dfaWQ7XG5pbmNsdWRlL2xpbnV4L2RhbW9uLmg6NDQ4Olx0XHRzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZSBhZGRyX3JhbmdlO1xuaW5jbHVkZS9saW51eC9kYW1vbi5oLTQ0OS1cdFx0aW50IHRhcmdldF9pZHg7XG4tLVxuaW5jbHVkZS9saW51eC9kYW1vbi5oPTEwMjc9dW5zaWduZWQgaW50IGRhbW9uX3Byb2JlX2hpdHNfd3N1bShzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLCBib29sIGxhc3QsXG4tLVxuaW5jbHVkZS9saW51eC9kYW1vbi5oLTEwMjktXG5pbmNsdWRlL2xpbnV4L2RhbW9uLmg6MTAzMDppbnQgZGFtb25fc2V0X3JlZ2lvbnMoc3RydWN0IGRhbW9uX3RhcmdldCAqdCwgc3RydWN0IGRhbW9uX2FkZHJfcmFuZ2UgKnJhbmdlcyxcbmluY2x1ZGUvbGludXgvZGFtb24uaC0xMDMxLVx0XHR1bnNpZ25lZCBpbnQgbnJfcmFuZ2VzLCB1bnNpZ25lZCBsb25nIG1pbl9yZWdpb25fc3opO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDE3OjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ2OTgKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAzMTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgVHlwZSBNaXNtYXRjaCBpbiBhIERBTU9OIFNhbXBsZSBNb2R1bGUgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0IHNlZW1zIGxpa2UgaXQmIzM5O3MgY2hhbmdpbmcgYHN0cnVjdCByZWdpb25fcmFuZ2VgIHRvIGBzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZWAuIFJpZ2h0LCBgZGFtb25fc2V0X3JlZ2lvbnNgIG5vdyB0YWtlcyBgc3RydWN0IGRhbW9uX2FkZHJfcmFuZ2UgKmAgYXMgaXRzIGlucHV0LiBCZWZvcmUsIGl0IHdhcyBlaXRoZXIgdGFraW5nIGBzdHJ1Y3QgcmVnaW9uX3JhbmdlICpgIGFuZCBjYXN0aW5nIGl0LCBvciBpdCB3YXMgaW5jb3JyZWN0bHkgYmVpbmcgcGFzc2VkIGEgYHN0cnVjdCByZWdpb25fcmFuZ2UgKmAgd2hlbiBpdCBleHBlY3RlZCB0aGUgYGRhbW9uYCB2ZXJzaW9uLiBUaGUgY29kZSAqaGFwcGVuZWQqIHRvIHdvcmsgYmVjYXVzZSB0aGUgbGF5b3V0cyB3ZXJlIHRoZSBzYW1lLCBhc3N1bWluZyBgcGh5c19hZGRyX3RgIHdhcyBqdXN0IGFuIGB1bnNpZ25lZCBsb25nYC4gQnV0IGhvbGQgb24uLi4gYHBoeXNfYWRkcl90YCAqY2FuKiBiZSA2NC1iaXQgb24gMzItYml0IHN5c3RlbXMgdXNpbmcgUEFFISBTbywgeWVhaCwgaXQmIzM5O3MgZGVmaW5pdGVseSBhIHR5cGUgbWlzbWF0Y2guIFRoZSBwYXRjaCBzZWVtcyB0byBiZSBjb3JyZWN0aW5nIHRoYXQuCgpCdXQgdGhlIGJpZ2dlciBxdWVzdGlvbiBpczogc2hvdWxkIEkgZXZlbiBib3RoZXIgZnV6emluZyB0aGlzPyBUaGlzIGlzIGEgKnNhbXBsZSogbW9kdWxlLiBTYW1wbGUgbW9kdWxlcyBhcmUgdXN1YWxseSBub3QgcHJpbWUgY2FuZGlkYXRlcyBmb3IgZnV6emluZy4gVGhleSBhcmUgZm9yIGlsbHVzdHJhdGl2ZSBwdXJwb3Nlcy4gSXQmIzM5O3MganVzdCBhIHNhbXBsZSBtb2R1bGUgZm9yIERBTU9OLiBMZXQmIzM5O3MgdGhpbmsgdGhyb3VnaCB0aGlzIG1vcmUgY2FyZWZ1bGx5LgoKUmlnaHQsIHRoZSBkZWNpc2lvbiB0byBmdXp6IGRlcGVuZHMgb24gaG93IGltcG9ydGFudCBpdCBpcy4gSSByZWNhbGwgYSBoZXVyaXN0aWMgZm9yIHRoaXM6ICYjMzQ7UmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczogLi4uIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSYjMzQ7LiBTbywgc2luY2Ugc2FtcGxlIG1vZHVsZXMgYXJlIHVzdWFsbHkgbm90IGxvYWRlZCBieSBkZWZhdWx0LCBhbmQgdGhleSBhcmUgbm90IHBhcnQgb2YgdGhlIGNvcmUga2VybmVsIGxvZ2ljLiBUaGlzIHNlZW1zIGxpa2UgYSByZWFzb25hYmxlIHNob3J0Y3V0LiBIb3dldmVyLCBpcyB0aGlzIG9uZSBjb21waWxlZCBpbiBkZWZhdWx0IGNvbmZpZ3M/IEkgYmV0dGVyIGNoZWNrIGBzYW1wbGVzL2RhbW9uL210aWVyLmNgLiBPa2F5LCBsZXQmIzM5O3MgbG9vayBhdCBgc2FtcGxlcy9kYW1vbi9LY29uZmlnYCB0byBzZWUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMTc6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7U0FNUExFX0RBTU9OX01USUVSJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7c2FtcGxlcy9kYW1vbi8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7c2FtcGxlcy9kYW1vbi9LY29uZmlnPTE3PWNvbmZpZyBTQU1QTEVfREFNT05fUFJDTFxuLS1cbnNhbXBsZXMvZGFtb24vS2NvbmZpZy0yOS1cbnNhbXBsZXMvZGFtb24vS2NvbmZpZzozMDpjb25maWcgU0FNUExFX0RBTU9OX01USUVSXG5zYW1wbGVzL2RhbW9uL0tjb25maWctMzEtXHRib29sIFwmIzM0O0RBTU9OIHNhbXBsZSBtb2R1bGUgZm9yIG1lbW9yeSB0aWVyaW5nXCYjMzQ7XG4tLVxuc2FtcGxlcy9kYW1vbi9NYWtlZmlsZT00PW9iai0kKENPTkZJR19TQU1QTEVfREFNT05fUFJDTCkgJiM0Mzs9IHByY2wub1xuc2FtcGxlcy9kYW1vbi9NYWtlZmlsZTo1Om9iai0kKENPTkZJR19TQU1QTEVfREFNT05fTVRJRVIpICYjNDM7PSBtdGllci5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMTc6MzU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTU5MgoJCQkJCQkJb3V0cHV0OiA4MQoJCQkJCQkJdGhvdWdodHM6IDEwMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFNhbXBsZSBNb2R1bGUqKgoKT2theSwgaGVyZSYjMzk7cyB0aGUgc2l0dWF0aW9uLiBJJiMzOTttIGxvb2tpbmcgYXQgYSBzYW1wbGUgbW9kdWxlLCBhbmQgaW1tZWRpYXRlbHkgSSYjMzk7bSB0aGlua2luZywgJiMzNDtOb3QgZnV6emFibGUuJiMzNDsgSXQmIzM5O3MganVzdCBhIHNhbXBsZSwgbm90IGNyaXRpY2FsIGtlcm5lbCBsb2dpYywgYSBkcml2ZXIsIG9yIGFueXRoaW5nIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyB0aGF0IHdvdWxkIHdhcnJhbnQgZnV6emluZy4gSW4gYSBwcm9kdWN0aW9uIGVudmlyb25tZW50LCB0aGlzIHRoaW5nIHdvdWxkbiYjMzk7dCBldmVuIGJlIGxvYWRlZCBvciB1c2VkLiBTbywgdGhlIG9idmlvdXMgY2FsbCBoZXJlIGlzIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCkxldCBtZSBqdXN0IHF1aWNrbHkgdmVyaWZ5IHRoYXQgdGhlcmUgaGF2ZW4mIzM5O3QgYmVlbiBhbnkgb3RoZXIgcmVsZXZhbnQgY29kZSBjaGFuZ2VzIHNuZWFraW5nIGluLiBZZXAsIGxvb2tzIGxpa2UgdGhlIG9ubHkgbW9kaWZpZWQgZmlsZSBpcyBgc2FtcGxlcy9kYW1vbi9tdGllci5jYC4gVGhhdCBjb25maXJtcyBpdC4gTm8gbmVlZCB0byBvdmVydGhpbmsgdGhpcy4gSSYjMzk7bSBzZXR0aW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAxNzozNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgYSBzYW1wbGUgbW9kdWxlIChzYW1wbGVzL2RhbW9uL210aWVyLmMpIHdoaWNoIGlzIG5vdCBwYXJ0IG9mIHRoZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy4gU2FtcGxlIG1vZHVsZXMgYXJlIG5vdCB0eXBpY2FsbHkgZnV6emVkIGFzIHRoZXkgYXJlIG5vdCB1c2VkIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBhIHNhbXBsZSBtb2R1bGUgKHNhbXBsZXMvZGFtb24vbXRpZXIuYykgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLiBTYW1wbGUgbW9kdWxlcyBhcmUgbm90IHR5cGljYWxseSBmdXp6ZWQgYXMgdGhleSBhcmUgbm90IHVzZWQgaW4gcHJvZHVjdGlvbiBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjBUMTc6MzU6MTAuNDIwNzU0MTc1WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTI5OTg2MTUwMzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgYSBzYW1wbGUgbW9kdWxlIChzYW1wbGVzL2RhbW9uL210aWVyLmMpIHdoaWNoIGlzIG5vdCBwYXJ0IG9mIHRoZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy4gU2FtcGxlIG1vZHVsZXMgYXJlIG5vdCB0eXBpY2FsbHkgZnV6emVkIGFzIHRoZXkgYXJlIG5vdCB1c2VkIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMTc6MzU6MTAuNDIwNzY3NTY0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTY1NjcyMjU0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYmZhM2E1YWI3OTFhZTUzYTc1YjdlMjZiMTcxMGJjY2JkOGNlOWY1YVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEp1bCAyMCAxNzozNTowNyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9zYW1wbGVzL2RhbW9uL210aWVyLmMgYi9zYW1wbGVzL2RhbW9uL210aWVyLmNcXG5pbmRleCBhYzljMjRiOTJlYWQ4NC4uMzcxMjI4N2YwMDljNTQgMTAwNjQ0XFxuLS0tIGEvc2FtcGxlcy9kYW1vbi9tdGllci5jXFxuKysrIGIvc2FtcGxlcy9kYW1vbi9tdGllci5jXFxuQEAgLTUyLDEyICs1Miw3IEBAIG1vZHVsZV9wYXJhbShkZXRlY3Rfbm9kZV9hZGRyZXNzZXMsIGJvb2wsIDA2MDApO1xcbiBcXG4gc3RhdGljIHN0cnVjdCBkYW1vbl9jdHggKmN0eHNbMl07XFxuIFxcbi1zdHJ1Y3QgcmVnaW9uX3JhbmdlIHtcXG4tXFx0cGh5c19hZGRyX3Qgc3RhcnQ7XFxuLVxcdHBoeXNfYWRkcl90IGVuZDtcXG4tfTtcXG4tXFxuLXN0YXRpYyBpbnQgbmlkX3RvX3BoeXMoaW50IHRhcmdldF9ub2RlLCBzdHJ1Y3QgcmVnaW9uX3JhbmdlICpyYW5nZSlcXG4rc3RhdGljIGludCBuaWRfdG9fcGh5cyhpbnQgdGFyZ2V0X25vZGUsIHN0cnVjdCBkYW1vbl9hZGRyX3JhbmdlICpyYW5nZSlcXG4ge1xcbiBcXHRpZiAoIW5vZGVfb25saW5lKHRhcmdldF9ub2RlKSkge1xcbiBcXHRcXHRwcl9lcnIoXFxcIk5VTUEgbm9kZSAlZCBpcyBub3Qgb25saW5lXFxcXG5cXFwiLCB0YXJnZXRfbm9kZSk7XFxuQEAgLTc4LDggKzczLDcgQEAgc3RhdGljIHN0cnVjdCBkYW1vbl9jdHggKmRhbW9uX3NhbXBsZV9tdGllcl9idWlsZF9jdHgoYm9vbCBwcm9tb3RlKVxcbiBcXHRzdHJ1Y3QgZGFtb3MgKnNjaGVtZTtcXG4gXFx0c3RydWN0IGRhbW9zX3F1b3RhX2dvYWwgKnF1b3RhX2dvYWw7XFxuIFxcdHN0cnVjdCBkYW1vc19maWx0ZXIgKmZpbHRlcjtcXG4tXFx0c3RydWN0IHJlZ2lvbl9yYW5nZSBhZGRyO1xcbi1cXHRzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZSByYW5nZTtcXG4rXFx0c3RydWN0IGRhbW9uX2FkZHJfcmFuZ2UgYWRkcjtcXG4gXFx0aW50IHJldDtcXG4gXFxuIFxcdGN0eCA9IGRhbW9uX25ld19jdHgoKTtcXG5AQCAtMTIzLDEwICsxMTcsNyBAQCBzdGF0aWMgc3RydWN0IGRhbW9uX2N0eCAqZGFtb25fc2FtcGxlX210aWVyX2J1aWxkX2N0eChib29sIHByb21vdGUpXFxuIFxcdGlmIChhZGRyLnN0YXJ0IFxcdTAwM2U9IGFkZHIuZW5kKVxcbiBcXHRcXHRnb3RvIGZyZWVfb3V0O1xcbiBcXG4tXFx0cmFuZ2Uuc3RhcnQgPSBhZGRyLnN0YXJ0O1xcbi1cXHRyYW5nZS5lbmQgPSBhZGRyLmVuZDtcXG4tXFxuLVxcdHJldCA9IGRhbW9uX3NldF9yZWdpb25zKHRhcmdldCwgXFx1MDAyNnJhbmdlLCAxLCBEQU1PTl9NSU5fUkVHSU9OX1NaKTtcXG4rXFx0cmV0ID0gZGFtb25fc2V0X3JlZ2lvbnModGFyZ2V0LCBcXHUwMDI2YWRkciwgMSwgREFNT05fTUlOX1JFR0lPTl9TWik7XFxuIFxcdGlmIChyZXQpXFxuIFxcdFxcdGdvdG8gZnJlZV9vdXQ7XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQxNzozNToxMS41ODgzOTAxMjhaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo5MTgzMDk3MDgzMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBhIHNhbXBsZSBtb2R1bGUgKHNhbXBsZXMvZGFtb24vbXRpZXIuYykgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLiBTYW1wbGUgbW9kdWxlcyBhcmUgbm90IHR5cGljYWxseSBmdXp6ZWQgYXMgdGhleSBhcmUgbm90IHVzZWQgaW4gcHJvZHVjdGlvbiBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGJmYTNhNWFiNzkxYWU1M2E3NWI3ZTI2YjE3MTBiY2NiZDhjZTlmNWFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1bCAyMCAxNzozNTowNyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL3NhbXBsZXMvZGFtb24vbXRpZXIuYyBiL3NhbXBsZXMvZGFtb24vbXRpZXIuY1xuaW5kZXggYWM5YzI0YjkyZWFkODQuLjM3MTIyODdmMDA5YzU0IDEwMDY0NFxuLS0tIGEvc2FtcGxlcy9kYW1vbi9tdGllci5jXG4rKysgYi9zYW1wbGVzL2RhbW9uL210aWVyLmNcbkBAIC01MiwxMiArNTIsNyBAQCBtb2R1bGVfcGFyYW0oZGV0ZWN0X25vZGVfYWRkcmVzc2VzLCBib29sLCAwNjAwKTtcbiBcbiBzdGF0aWMgc3RydWN0IGRhbW9uX2N0eCAqY3R4c1syXTtcbiBcbi1zdHJ1Y3QgcmVnaW9uX3JhbmdlIHtcbi1cdHBoeXNfYWRkcl90IHN0YXJ0O1xuLVx0cGh5c19hZGRyX3QgZW5kO1xuLX07XG4tXG4tc3RhdGljIGludCBuaWRfdG9fcGh5cyhpbnQgdGFyZ2V0X25vZGUsIHN0cnVjdCByZWdpb25fcmFuZ2UgKnJhbmdlKVxuK3N0YXRpYyBpbnQgbmlkX3RvX3BoeXMoaW50IHRhcmdldF9ub2RlLCBzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZSAqcmFuZ2UpXG4ge1xuIFx0aWYgKCFub2RlX29ubGluZSh0YXJnZXRfbm9kZSkpIHtcbiBcdFx0cHJfZXJyKFwiTlVNQSBub2RlICVkIGlzIG5vdCBvbmxpbmVcXG5cIiwgdGFyZ2V0X25vZGUpO1xuQEAgLTc4LDggKzczLDcgQEAgc3RhdGljIHN0cnVjdCBkYW1vbl9jdHggKmRhbW9uX3NhbXBsZV9tdGllcl9idWlsZF9jdHgoYm9vbCBwcm9tb3RlKVxuIFx0c3RydWN0IGRhbW9zICpzY2hlbWU7XG4gXHRzdHJ1Y3QgZGFtb3NfcXVvdGFfZ29hbCAqcXVvdGFfZ29hbDtcbiBcdHN0cnVjdCBkYW1vc19maWx0ZXIgKmZpbHRlcjtcbi1cdHN0cnVjdCByZWdpb25fcmFuZ2UgYWRkcjtcbi1cdHN0cnVjdCBkYW1vbl9hZGRyX3JhbmdlIHJhbmdlO1xuK1x0c3RydWN0IGRhbW9uX2FkZHJfcmFuZ2UgYWRkcjtcbiBcdGludCByZXQ7XG4gXG4gXHRjdHggPSBkYW1vbl9uZXdfY3R4KCk7XG5AQCAtMTIzLDEwICsxMTcsNyBAQCBzdGF0aWMgc3RydWN0IGRhbW9uX2N0eCAqZGFtb25fc2FtcGxlX210aWVyX2J1aWxkX2N0eChib29sIHByb21vdGUpXG4gXHRpZiAoYWRkci5zdGFydCBcdTAwM2U9IGFkZHIuZW5kKVxuIFx0XHRnb3RvIGZyZWVfb3V0O1xuIFxuLVx0cmFuZ2Uuc3RhcnQgPSBhZGRyLnN0YXJ0O1xuLVx0cmFuZ2UuZW5kID0gYWRkci5lbmQ7XG4tXG4tXHRyZXQgPSBkYW1vbl9zZXRfcmVnaW9ucyh0YXJnZXQsIFx1MDAyNnJhbmdlLCAxLCBEQU1PTl9NSU5fUkVHSU9OX1NaKTtcbitcdHJldCA9IGRhbW9uX3NldF9yZWdpb25zKHRhcmdldCwgXHUwMDI2YWRkciwgMSwgREFNT05fTUlOX1JFR0lPTl9TWik7XG4gXHRpZiAocmV0KVxuIFx0XHRnb3RvIGZyZWVfb3V0O1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMTc6MzU6MTEuNTg4Mzk0NzE4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTQ3NTY4NTAwMDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgUGF0Y2ggdG8gYSBTYW1wbGUgREFNT04gTW9kdWxlKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQncyB0b3VjaGluZyBgc2FtcGxlcy9kYW1vbi9tdGllci5jYC4gVGhlIGNvcmUgY2hhbmdlIGlzIHJlcGxhY2luZyBgc3RydWN0IHJlZ2lvbl9yYW5nZWAgd2l0aCBgc3RydWN0IGRhbW9uX2FkZHJfcmFuZ2VgIGluIHRoZSBgbmlkX3RvX3BoeXNgIGFuZCBgZGFtb25fc2FtcGxlX210aWVyX2J1aWxkX2N0eGAgZnVuY3Rpb25zLiBJdCBhbHNvIHJlbW92ZXMgdGhlIGBzdHJ1Y3QgcmVnaW9uX3JhbmdlYCBkZWZpbml0aW9uIGVudGlyZWx5LiBObyBiaWcgZGVhbCwgaXQncyBqdXN0IGEgc2FtcGxlIG1vZHVsZSwgYG10aWVyLmNgLlxuXG5Ob3csIHNhbXBsZSBtb2R1bGVz4oCmIHRob3NlIGFyZW4ndCB0eXBpY2FsbHkgYSBoaWdoIHByaW9yaXR5IGZvciBmdXp6aW5nLCB1bmxlc3MgdGhleSBzZXJ2ZSBhcyBzb21lIGtpbmQgb2YgZW50cnkgcG9pbnQgb3Igd2UgaGF2ZSBhIHNwZWNpZmljIHJlYXNvbiB0byBmb2N1cyBvbiB0aGVtLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJXYWl0LCB3aGF0J3MgdGhlIGRlYWwgd2l0aCBmdXp6aW5nIGBzYW1wbGVzL2A/IERvZXNuJ3Qgc3l6a2FsbGVyIHVzdWFsbHkgaWdub3JlIHRoYXQgZGlyZWN0b3J5P1wiIEkgbmVlZCB0byBjb25maXJtIGlmIHRoaXMgYG10aWVyLmNgIGlzIGV2ZW4gY29tcGlsZWQgaW4gdGhlIGtlcm5lbCBjb25maWcgYW5kIHdvcnRoIHRoZSBlZmZvcnQgb2YgYmVpbmcgZnV6emVkLiBTYW1wbGUgbW9kdWxlcyBhcmUsIGluIG1vc3QgY2FzZXMsIGp1c3QgZXhhbXBsZXMgdG8gZGVtb25zdHJhdGUgaG93IHRoaW5ncyB3b3JrLiBUaW1lIHRvIGRpZyBpbnRvIGBzYW1wbGVzL2RhbW9uL0tjb25maWdgIG9yIHBvc3NpYmx5IGV2ZW4gdGhlIHRvcC1sZXZlbCBgc2FtcGxlcy9LY29uZmlnYCBmaWxlIHRvIHNlZSBpZiBhbnl0aGluZyBpcyBlbmFibGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjE2LCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTg0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMTc6MzU6MjYuMzQ1MjQ5MjY0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyOTE4MDkyMjUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXRpZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwic2FtcGxlcy9kYW1vbi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwic2FtcGxlcy9kYW1vbi9NYWtlZmlsZT00PW9iai0kKENPTkZJR19TQU1QTEVfREFNT05fUFJDTCkgKz0gcHJjbC5vXFxuc2FtcGxlcy9kYW1vbi9NYWtlZmlsZTo1Om9iai0kKENPTkZJR19TQU1QTEVfREFNT05fTVRJRVIpICs9IG10aWVyLm9cXG4tLVxcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy03LVxcbnNhbXBsZXMvZGFtb24vbXRpZXIuYzo4OiNkZWZpbmUgcHJfZm10KGZtdCkgXFxcImRhbW9uX3NhbXBsZV9tdGllcjogXFxcIiBmbXRcXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtOS1cXG4tLVxcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0xNy0jZW5kaWZcXG5zYW1wbGVzL2RhbW9uL210aWVyLmM6MTg6I2RlZmluZSBNT0RVTEVfUEFSQU1fUFJFRklYIFxcXCJkYW1vbl9zYW1wbGVfbXRpZXIuXFxcIlxcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0xOS1cXG4tLVxcbnNhbXBsZXMvZGFtb24vbXRpZXIuYz0zNj1tb2R1bGVfcGFyYW0obm9kZTBfbWVtX2ZyZWVfYnAsIHVsb25nLCAwNjAwKTtcXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMzctXFxuc2FtcGxlcy9kYW1vbi9tdGllci5jOjM4OnN0YXRpYyBpbnQgZGFtb25fc2FtcGxlX210aWVyX2VuYWJsZV9zdG9yZShcXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMzktXFx0XFx0Y29uc3QgY2hhciAqdmFsLCBjb25zdCBzdHJ1Y3Qga2VybmVsX3BhcmFtICprcCk7XFxuLS1cXG5zYW1wbGVzL2RhbW9uL210aWVyLmM9NDE9c3RhdGljIGNvbnN0IHN0cnVjdCBrZXJuZWxfcGFyYW1fb3BzIGVuYWJsZWRfcGFyYW1fb3BzID0ge1xcbnNhbXBsZXMvZGFtb24vbXRpZXIuYzo0MjpcXHQuc2V0ID0gZGFtb25fc2FtcGxlX210aWVyX2VuYWJsZV9zdG9yZSxcXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtNDMtXFx0LmdldCA9IHBhcmFtX2dldF9ib29sLFxcbi0tXFxuc2FtcGxlcy9kYW1vbi9tdGllci5jPTU1PXN0YXRpYyBpbnQgbmlkX3RvX3BoeXMoaW50IHRhcmdldF9ub2RlLCBzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZSAqcmFuZ2UpXFxuLS1cXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtNjctXFxuc2FtcGxlcy9kYW1vbi9tdGllci5jOjY4OnN0YXRpYyBzdHJ1Y3QgZGFtb25fY3R4ICpkYW1vbl9zYW1wbGVfbXRpZXJfYnVpbGRfY3R4KGJvb2wgcHJvbW90ZSlcXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtNjkte1xcbi0tXFxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTE2Ny1cXG5zYW1wbGVzL2RhbW9uL210aWVyLmM6MTY4OnN0YXRpYyBpbnQgZGFtb25fc2FtcGxlX210aWVyX3N0YXJ0KHZvaWQpXFxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTE2OS17XFxuLS1cXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMTcyLVxcbnNhbXBsZXMvZGFtb24vbXRpZXIuYzoxNzM6XFx0Y3R4ID0gZGFtb25fc2FtcGxlX210aWVyX2J1aWxkX2N0eCh0cnVlKTtcXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMTc0LVxcdGlmICghY3R4KVxcbi0tXFxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTE3Ni1cXHRjdHhzWzBdID0gY3R4O1xcbnNhbXBsZXMvZGFtb24vbXRpZXIuYzoxNzc6XFx0Y3R4ID0gZGFtb25fc2FtcGxlX210aWVyX2J1aWxkX2N0eChmYWxzZSk7XFxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTE3OC1cXHRpZiAoIWN0eCkge1xcbi0tXFxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTE5MS1cXG5zYW1wbGVzL2RhbW9uL210aWVyLmM6MTkyOnN0YXRpYyB2b2lkIGRhbW9uX3NhbXBsZV9tdGllcl9zdG9wKHZvaWQpXFxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTE5My17XFxuLS1cXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMTk4LVxcbnNhbXBsZXMvZGFtb24vbXRpZXIuYzoxOTk6c3RhdGljIGludCBkYW1vbl9zYW1wbGVfbXRpZXJfZW5hYmxlX3N0b3JlKFxcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0yMDAtXFx0XFx0Y29uc3QgY2hhciAqdmFsLCBjb25zdCBzdHJ1Y3Qga2VybmVsX3BhcmFtICprcClcXG4tLVxcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0yMTUtXFx0aWYgKGVuYWJsZWQpIHtcXG5zYW1wbGVzL2RhbW9uL210aWVyLmM6MjE2OlxcdFxcdGVyciA9IGRhbW9uX3NhbXBsZV9tdGllcl9zdGFydCgpO1xcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0yMTctXFx0XFx0aWYgKGVycilcXG4tLVxcbnNhbXBsZXMvZGFtb24vbXRpZXIuYy0yMjAtXFx0fVxcbnNhbXBsZXMvZGFtb24vbXRpZXIuYzoyMjE6XFx0ZGFtb25fc2FtcGxlX210aWVyX3N0b3AoKTtcXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMjIyLVxcdHJldHVybiAwO1xcbi0tXFxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTIyNC1cXG5zYW1wbGVzL2RhbW9uL210aWVyLmM6MjI1OnN0YXRpYyBpbnQgX19pbml0IGRhbW9uX3NhbXBsZV9tdGllcl9pbml0KHZvaWQpXFxuc2FtcGxlcy9kYW1vbi9tdGllci5jLTIyNi17XFxuLS1cXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMjM1LVxcdGlmIChlbmFibGVkKSB7XFxuc2FtcGxlcy9kYW1vbi9tdGllci5jOjIzNjpcXHRcXHRlcnIgPSBkYW1vbl9zYW1wbGVfbXRpZXJfc3RhcnQoKTtcXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMjM3LVxcdFxcdGlmIChlcnIpXFxuLS1cXG5zYW1wbGVzL2RhbW9uL210aWVyLmMtMjQyLVxcbnNhbXBsZXMvZGFtb24vbXRpZXIuYzoyNDM6bW9kdWxlX2luaXQoZGFtb25fc2FtcGxlX210aWVyX2luaXQpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQxNzozNToyOC42MzcwNjkyNjlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTQwNDQwMjE0NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQYXRjaDogQSBRdWljayBBc3Nlc3NtZW50KipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgc2FtcGxlcy9kYW1vbi9tdGllci5jYC4gSW1tZWRpYXRlbHksIEknbSBhIGxpdHRsZSBoZXNpdGFudCBiZWNhdXNlIHNhbXBsZSBtb2R1bGVzIGFyZW4ndCB0eXBpY2FsbHkgdGhlIHRhcmdldHMgZm9yIGZ1enppbmcuIFdlIHVzdWFsbHkgZm9jdXMgb24gY29yZSBmdW5jdGlvbmFsaXR5IG9yIGRyaXZlcnMuIEJ1dCBsZXQncyBzZWUgd2hhdCdzIGNoYW5nZWQuXG5cbkFscmlnaHQsIHRoZSBjb3JlIG9mIGl0IGxvb2tzIGxpa2UgYSBzaW1wbGUgc3RydWN0dXJlIHJlcGxhY2VtZW50LiBUaGV5J3JlIHN3YXBwaW5nIG91dCBgcmVnaW9uX3JhbmdlYCBmb3IgYGRhbW9uX2FkZHJfcmFuZ2VgLiBCb3RoIHN0cnVjdHVyZXMsIHN1cGVyZmljaWFsbHksIGNvbnRhaW4gYHN0YXJ0YCBhbmQgYGVuZGAgbWVtYmVycywgc28gdGhlIGNvbmNlcHQgaXMgdGhlIHNhbWU6IGRlZmluaW5nIGFuIGFkZHJlc3MgcmFuZ2UuIEhtbSwgdGhhdCBzZWVtcyBzdHJhaWdodGZvcndhcmQuXG5cbldhaXQgYSBzZWNvbmTigKYgSSBuZWVkIHRvIGNvbmZpcm0gdGhlIHVuZGVybHlpbmcgdHlwZXMuIExldCBtZSBqdXN0IGRvdWJsZS1jaGVjayB0aGUgZGVmaW5pdGlvbiBvZiBgcmVnaW9uX3JhbmdlYC4gSXQgbG9va3MgbGlrZSB0aGF0IG9uZSB1c2VzIGBwaHlzX2FkZHJfdGAgZm9yIHN0YXJ0IGFuZCBlbmQsIGFuZCBpbiBjb250cmFzdCwgYGRhbW9uX2FkZHJfcmFuZ2VgIHVzZXMgc2ltcGxlIGB1bnNpZ25lZCBsb25nYCBmb3IgdGhvc2UgbWVtYmVycy4gSXMgdGhlcmUgYSBwb3NzaWJsZSBmdW5jdGlvbmFsIGNoYW5nZSBoZXJlPyBZZXMsIHRoZXJlIGlzISBJIG5lZWQgdG8gaW52ZXN0aWdhdGUgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIGNoYW5nZSBvbiB0aGUgdHlwZXMgb2YgYWRkcmVzc2VzIHRoYXQgY2FuIGJlIHJlcHJlc2VudGVkLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiB0aGlzIGlzIGEgd2lkZW5pbmcgb3IgbmFycm93aW5nIG9mIHRoZSBhZGRyZXNzIHJhbmdlIGFuZCBpZiB0aGVyZSBpcyBhbnkgdHlwZS1yZWxhdGVkIGxvc3Mgb2YgcHJlY2lzaW9uIHRoYXQgbWlnaHQgYmUgaW52b2x2ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4MzgsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMTc6MzU6NDAuMDQxNDc0Nzc0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc1MjY4Mjk4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJpbmNsdWRlL2xpbnV4L2RhbW9uLmhcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiaW5jbHVkZS9saW51eC9kYW1vbi5oLTIzLS8qKlxcbmluY2x1ZGUvbGludXgvZGFtb24uaDoyNDogKiBzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZSAtIFJlcHJlc2VudHMgYW4gYWRkcmVzcyByZWdpb24gb2YgW0BzdGFydCwgQGVuZCkuXFxuaW5jbHVkZS9saW51eC9kYW1vbi5oLTI1LSAqIEBzdGFydDpcXHRTdGFydCBhZGRyZXNzIG9mIHRoZSByZWdpb24gKGluY2x1c2l2ZSkuXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2RhbW9uLmgtMjctICovXFxuaW5jbHVkZS9saW51eC9kYW1vbi5oOjI4OnN0cnVjdCBkYW1vbl9hZGRyX3JhbmdlIHtcXG5pbmNsdWRlL2xpbnV4L2RhbW9uLmgtMjktXFx0dW5zaWduZWQgbG9uZyBzdGFydDtcXG4tLVxcbmluY2x1ZGUvbGludXgvZGFtb24uaD02NT1zdHJ1Y3QgZGFtb25fcmVnaW9uIHtcXG5pbmNsdWRlL2xpbnV4L2RhbW9uLmg6NjY6XFx0c3RydWN0IGRhbW9uX2FkZHJfcmFuZ2UgYXI7XFxuaW5jbHVkZS9saW51eC9kYW1vbi5oLTY3LVxcdHVuc2lnbmVkIGxvbmcgc2FtcGxpbmdfYWRkcjtcXG4tLVxcbmluY2x1ZGUvbGludXgvZGFtb24uaD00NDI9c3RydWN0IGRhbW9zX2ZpbHRlciB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L2RhbW9uLmgtNDQ3LVxcdFxcdHU2NCBtZW1jZ19pZDtcXG5pbmNsdWRlL2xpbnV4L2RhbW9uLmg6NDQ4OlxcdFxcdHN0cnVjdCBkYW1vbl9hZGRyX3JhbmdlIGFkZHJfcmFuZ2U7XFxuaW5jbHVkZS9saW51eC9kYW1vbi5oLTQ0OS1cXHRcXHRpbnQgdGFyZ2V0X2lkeDtcXG4tLVxcbmluY2x1ZGUvbGludXgvZGFtb24uaD0xMDI3PXVuc2lnbmVkIGludCBkYW1vbl9wcm9iZV9oaXRzX3dzdW0oc3RydWN0IGRhbW9uX3JlZ2lvbiAqciwgYm9vbCBsYXN0LFxcbi0tXFxuaW5jbHVkZS9saW51eC9kYW1vbi5oLTEwMjktXFxuaW5jbHVkZS9saW51eC9kYW1vbi5oOjEwMzA6aW50IGRhbW9uX3NldF9yZWdpb25zKHN0cnVjdCBkYW1vbl90YXJnZXQgKnQsIHN0cnVjdCBkYW1vbl9hZGRyX3JhbmdlICpyYW5nZXMsXFxuaW5jbHVkZS9saW51eC9kYW1vbi5oLTEwMzEtXFx0XFx0dW5zaWduZWQgaW50IG5yX3JhbmdlcywgdW5zaWduZWQgbG9uZyBtaW5fcmVnaW9uX3N6KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMTc6MzU6NDAuNzk0MTY5NzY0WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjQ0OTk4NTE5MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBUeXBlIE1pc21hdGNoIGluIGEgREFNT04gU2FtcGxlIE1vZHVsZSBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0IHNlZW1zIGxpa2UgaXQncyBjaGFuZ2luZyBgc3RydWN0IHJlZ2lvbl9yYW5nZWAgdG8gYHN0cnVjdCBkYW1vbl9hZGRyX3JhbmdlYC4gUmlnaHQsIGBkYW1vbl9zZXRfcmVnaW9uc2Agbm93IHRha2VzIGBzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZSAqYCBhcyBpdHMgaW5wdXQuIEJlZm9yZSwgaXQgd2FzIGVpdGhlciB0YWtpbmcgYHN0cnVjdCByZWdpb25fcmFuZ2UgKmAgYW5kIGNhc3RpbmcgaXQsIG9yIGl0IHdhcyBpbmNvcnJlY3RseSBiZWluZyBwYXNzZWQgYSBgc3RydWN0IHJlZ2lvbl9yYW5nZSAqYCB3aGVuIGl0IGV4cGVjdGVkIHRoZSBgZGFtb25gIHZlcnNpb24uIFRoZSBjb2RlICpoYXBwZW5lZCogdG8gd29yayBiZWNhdXNlIHRoZSBsYXlvdXRzIHdlcmUgdGhlIHNhbWUsIGFzc3VtaW5nIGBwaHlzX2FkZHJfdGAgd2FzIGp1c3QgYW4gYHVuc2lnbmVkIGxvbmdgLiBCdXQgaG9sZCBvbi4uLiBgcGh5c19hZGRyX3RgICpjYW4qIGJlIDY0LWJpdCBvbiAzMi1iaXQgc3lzdGVtcyB1c2luZyBQQUUhIFNvLCB5ZWFoLCBpdCdzIGRlZmluaXRlbHkgYSB0eXBlIG1pc21hdGNoLiBUaGUgcGF0Y2ggc2VlbXMgdG8gYmUgY29ycmVjdGluZyB0aGF0LlxuXG5CdXQgdGhlIGJpZ2dlciBxdWVzdGlvbiBpczogc2hvdWxkIEkgZXZlbiBib3RoZXIgZnV6emluZyB0aGlzPyBUaGlzIGlzIGEgKnNhbXBsZSogbW9kdWxlLiBTYW1wbGUgbW9kdWxlcyBhcmUgdXN1YWxseSBub3QgcHJpbWUgY2FuZGlkYXRlcyBmb3IgZnV6emluZy4gVGhleSBhcmUgZm9yIGlsbHVzdHJhdGl2ZSBwdXJwb3Nlcy4gSXQncyBqdXN0IGEgc2FtcGxlIG1vZHVsZSBmb3IgREFNT04uIExldCdzIHRoaW5rIHRocm91Z2ggdGhpcyBtb3JlIGNhcmVmdWxseS5cblxuUmlnaHQsIHRoZSBkZWNpc2lvbiB0byBmdXp6IGRlcGVuZHMgb24gaG93IGltcG9ydGFudCBpdCBpcy4gSSByZWNhbGwgYSBoZXVyaXN0aWMgZm9yIHRoaXM6IFwiUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczogLi4uIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZVwiLiBTbywgc2luY2Ugc2FtcGxlIG1vZHVsZXMgYXJlIHVzdWFsbHkgbm90IGxvYWRlZCBieSBkZWZhdWx0LCBhbmQgdGhleSBhcmUgbm90IHBhcnQgb2YgdGhlIGNvcmUga2VybmVsIGxvZ2ljLiBUaGlzIHNlZW1zIGxpa2UgYSByZWFzb25hYmxlIHNob3J0Y3V0LiBIb3dldmVyLCBpcyB0aGlzIG9uZSBjb21waWxlZCBpbiBkZWZhdWx0IGNvbmZpZ3M/IEkgYmV0dGVyIGNoZWNrIGBzYW1wbGVzL2RhbW9uL210aWVyLmNgLiBPa2F5LCBsZXQncyBsb29rIGF0IGBzYW1wbGVzL2RhbW9uL0tjb25maWdgIHRvIHNlZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDY5OCwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMxOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQxNzozNTo0Ny4yNDQxOTQxNDhaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzI2NjEzOTk5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlNBTVBMRV9EQU1PTl9NVElFUlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJzYW1wbGVzL2RhbW9uL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJzYW1wbGVzL2RhbW9uL0tjb25maWc9MTc9Y29uZmlnIFNBTVBMRV9EQU1PTl9QUkNMXFxuLS1cXG5zYW1wbGVzL2RhbW9uL0tjb25maWctMjktXFxuc2FtcGxlcy9kYW1vbi9LY29uZmlnOjMwOmNvbmZpZyBTQU1QTEVfREFNT05fTVRJRVJcXG5zYW1wbGVzL2RhbW9uL0tjb25maWctMzEtXFx0Ym9vbCBcXFwiREFNT04gc2FtcGxlIG1vZHVsZSBmb3IgbWVtb3J5IHRpZXJpbmdcXFwiXFxuLS1cXG5zYW1wbGVzL2RhbW9uL01ha2VmaWxlPTQ9b2JqLSQoQ09ORklHX1NBTVBMRV9EQU1PTl9QUkNMKSArPSBwcmNsLm9cXG5zYW1wbGVzL2RhbW9uL01ha2VmaWxlOjU6b2JqLSQoQ09ORklHX1NBTVBMRV9EQU1PTl9NVElFUikgKz0gbXRpZXIub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQxNzozNTo0Ny45NzA4MjQ3MzdaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NTQ0ODQ4NzE5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFNhbXBsZSBNb2R1bGUqKlxuXG5Pa2F5LCBoZXJlJ3MgdGhlIHNpdHVhdGlvbi4gSSdtIGxvb2tpbmcgYXQgYSBzYW1wbGUgbW9kdWxlLCBhbmQgaW1tZWRpYXRlbHkgSSdtIHRoaW5raW5nLCBcIk5vdCBmdXp6YWJsZS5cIiBJdCdzIGp1c3QgYSBzYW1wbGUsIG5vdCBjcml0aWNhbCBrZXJuZWwgbG9naWMsIGEgZHJpdmVyLCBvciBhbnl0aGluZyBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgdGhhdCB3b3VsZCB3YXJyYW50IGZ1enppbmcuIEluIGEgcHJvZHVjdGlvbiBlbnZpcm9ubWVudCwgdGhpcyB0aGluZyB3b3VsZG4ndCBldmVuIGJlIGxvYWRlZCBvciB1c2VkLiBTbywgdGhlIG9idmlvdXMgY2FsbCBoZXJlIGlzIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC5cblxuTGV0IG1lIGp1c3QgcXVpY2tseSB2ZXJpZnkgdGhhdCB0aGVyZSBoYXZlbid0IGJlZW4gYW55IG90aGVyIHJlbGV2YW50IGNvZGUgY2hhbmdlcyBzbmVha2luZyBpbi4gWWVwLCBsb29rcyBsaWtlIHRoZSBvbmx5IG1vZGlmaWVkIGZpbGUgaXMgYHNhbXBsZXMvZGFtb24vbXRpZXIuY2AuIFRoYXQgY29uZmlybXMgaXQuIE5vIG5lZWQgdG8gb3ZlcnRoaW5rIHRoaXMuIEknbSBzZXR0aW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NTkyLCJPdXRwdXRUb2tlbnMiOjgxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDE3OjM2OjQzLjQxOTMxNzIwMVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQwMjYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgYSBzYW1wbGUgbW9kdWxlIChzYW1wbGVzL2RhbW9uL210aWVyLmMpIHdoaWNoIGlzIG5vdCBwYXJ0IG9mIHRoZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy4gU2FtcGxlIG1vZHVsZXMgYXJlIG5vdCB0eXBpY2FsbHkgZnV6emVkIGFzIHRoZXkgYXJlIG5vdCB1c2VkIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBhIHNhbXBsZSBtb2R1bGUgKHNhbXBsZXMvZGFtb24vbXRpZXIuYykgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLiBTYW1wbGUgbW9kdWxlcyBhcmUgbm90IHR5cGljYWxseSBmdXp6ZWQgYXMgdGhleSBhcmUgbm90IHVzZWQgaW4gcHJvZHVjdGlvbiBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowfkhpf[1] Phase: Running StartedAt: 2026-07-20 17:37:14 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfkhpf[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-20 17:37:14 +0000 UTC FinishedAt: 2026-07-20 17:37:19 +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,}