Name: series-workflow86flx Phase: Failed StartedAt: 2026-07-28 03:01:11 +0000 UTC FinishedAt: 2026-07-28 03:34:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow86flx[0] Phase: Succeeded StartedAt: 2026-07-28 03:01:11 +0000 UTC FinishedAt: 2026-07-28 03:33:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflow86flx[0].run-triage Phase: Succeeded StartedAt: 2026-07-28 03:01:11 +0000 UTC FinishedAt: 2026-07-28 03:33:50 +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+CgkJCTx0ZD4yMDI2LzA3LzI4IDAzOjMzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIG1vZGlmaWVkIGNvZGUgaXMgcGFydCBvZiB0aGUgTWljcm9jaGlwIFZDQVAgKFZlcnNhdGlsZSBDb250ZW50LUF3YXJlIFByb2Nlc3NvcikgbGlicmFyeSwgd2hpY2ggaXMgdXNlZCBieSB0aGUgTEFOOTY2WCBhbmQgU1BBUlg1IGhhcmR3YXJlIHN3aXRjaCBkcml2ZXJzLiBUaGVzZSBkcml2ZXJzIHJlcXVpcmUgcGh5c2ljYWwgTWljcm9jaGlwIHN3aXRjaCBoYXJkd2FyZSBhbmQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VLiBUaGVyZWZvcmUsIHRoZSBjb2RlIGlzIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMzozMzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGI5MWEwYmVkY2IyNWQwODk3NTQzNmYwNzZmYTM3MzYxMTlkYjY0YjVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCAyOCAwMzozMzowNSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuY1xuaW5kZXggZmY4NmNkZTExYTMyYzcuLjBjYzBkYjdiNjQxYmZiIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuY1xuQEAgLTI0MjcsMTggJiM0MzsyNDI3LDIxIEBAIHN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSlcbiBcbiBcdGVyciA9IHZjYXBfcmVhZF9ydWxlKHJpKTtcbiBcdGlmIChlcnIpXG4tXHRcdHJldHVybiBFUlJfUFRSKGVycik7XG4mIzQzO1x0XHRnb3RvIGVycjtcbiBcbiBcdGVyciA9IHZjYXBfZGVjb2RlX2tleXNldChyaSk7XG4gXHRpZiAoZXJyKVxuLVx0XHRyZXR1cm4gRVJSX1BUUihlcnIpO1xuJiM0MztcdFx0Z290byBlcnI7XG4gXG4gXHRlcnIgPSB2Y2FwX2RlY29kZV9hY3Rpb25zZXQocmkpO1xuIFx0aWYgKGVycilcbi1cdFx0cmV0dXJuIEVSUl9QVFIoZXJyKTtcbiYjNDM7XHRcdGdvdG8gZXJyO1xuIFxuIG91dDpcbiBcdHJldHVybiBcdTAwMjZyaS1cdTAwM2VkYXRhO1xuJiM0MztlcnI6XG4mIzQzO1x0dmNhcF9mcmVlX3J1bGUoXHUwMDI2cmktXHUwMDNlZGF0YSk7XG4mIzQzO1x0cmV0dXJuIEVSUl9QVFIoZXJyKTtcbiB9XG4gXG4gc3RydWN0IHZjYXBfcnVsZSAqdmNhcF9nZXRfcnVsZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCwgdTMyIGlkKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDAzOjMzPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBtb2RpZmllZCBjb2RlIGlzIHBhcnQgb2YgdGhlIE1pY3JvY2hpcCBWQ0FQIChWZXJzYXRpbGUgQ29udGVudC1Bd2FyZSBQcm9jZXNzb3IpIGxpYnJhcnksIHdoaWNoIGlzIHVzZWQgYnkgdGhlIExBTjk2NlggYW5kIFNQQVJYNSBoYXJkd2FyZSBzd2l0Y2ggZHJpdmVycy4gVGhlc2UgZHJpdmVycyByZXF1aXJlIHBoeXNpY2FsIE1pY3JvY2hpcCBzd2l0Y2ggaGFyZHdhcmUgYW5kIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVS4gVGhlcmVmb3JlLCB0aGUgY29kZSBpcyB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBiOTFhMGJlZGNiMjVkMDg5NzU0MzZmMDc2ZmEzNzM2MTE5ZGI2NGI1CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdWwgMjggMDM6MzM6MDUgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYwppbmRleCBmZjg2Y2RlMTFhMzJjNy4uMGNjMGRiN2I2NDFiZmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYwpAQCAtMjQyNywxOCAmIzQzOzI0MjcsMjEgQEAgc3RydWN0IHZjYXBfcnVsZSAqdmNhcF9kZWNvZGVfcnVsZShzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICplbGVtKQogCiAJZXJyID0gdmNhcF9yZWFkX3J1bGUocmkpOwogCWlmIChlcnIpCi0JCXJldHVybiBFUlJfUFRSKGVycik7CiYjNDM7CQlnb3RvIGVycjsKIAogCWVyciA9IHZjYXBfZGVjb2RlX2tleXNldChyaSk7CiAJaWYgKGVycikKLQkJcmV0dXJuIEVSUl9QVFIoZXJyKTsKJiM0MzsJCWdvdG8gZXJyOwogCiAJZXJyID0gdmNhcF9kZWNvZGVfYWN0aW9uc2V0KHJpKTsKIAlpZiAoZXJyKQotCQlyZXR1cm4gRVJSX1BUUihlcnIpOwomIzQzOwkJZ290byBlcnI7CiAKIG91dDoKIAlyZXR1cm4gJmFtcDtyaS0mZ3Q7ZGF0YTsKJiM0MztlcnI6CiYjNDM7CXZjYXBfZnJlZV9ydWxlKCZhbXA7cmktJmd0O2RhdGEpOwomIzQzOwlyZXR1cm4gRVJSX1BUUihlcnIpOwogfQogCiBzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2dldF9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLCB1MzIgaWQpCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDAzOjMzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxOTgKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiAxNTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTmV0d29yayBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2ggaGVyZSB0aGF0JiMzOTtzIHR3ZWFraW5nIHRoZSBgdmNhcF9kZWNvZGVfcnVsZWAgZnVuY3Rpb24gd2l0aGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jYC4gSXQgbG9va3MgbGlrZSB0aGUgY2hhbmdlIGlzIHRvIGNhbGwgYHZjYXBfZnJlZV9ydWxlKCZhbXA7cmktJmd0O2RhdGEpYCB3aGVuIGFuIGVycm9yIG9jY3VycywgaW5zdGVhZCBvZiBqdXN0IHJldHVybmluZyBhbiBlcnJvciBwb2ludGVyLiBTZWVtcyBsaWtlIGEgcmVhc29uYWJsZSBidWcgZml4LCBidXQgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQuCgpNeSBpbW1lZGlhdGUgdGhvdWdodCBpczogY2FuIEkgZXZlbiB0ZXN0IHRoaXMgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gSXMgdGhpcyBkcml2ZXIgcmVsaWFudCBvbiBzcGVjaWZpYyBoYXJkd2FyZT8gSXQmIzM5O3MgYSBNaWNyb2NoaXAgVkNBUCBBUEksIHdoaWNoIGltbWVkaWF0ZWx5IG1ha2VzIG1lIHRoaW5rIGl0IGNvdWxkIGJlIHRpZWQgdG8gcGh5c2ljYWwgaGFyZHdhcmUuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIEkgY2FuIHJlcHJvZHVjZSB0aGlzIGNvbmRpdGlvbiBvciBpZiBJJiMzOTtsbCBuZWVkIGEgdGVzdCBzZXR1cCB3aXRoIGEgc3BlY2lmaWMgcGllY2Ugb2YgZXF1aXBtZW50LgoKTXkgbmV4dCBzdGVwIGlzIHRvIGRpdmUgaW50byB0aGUgS2NvbmZpZyBmb3IgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwYCB0byBnZXQgYSBiZXR0ZXIgc2Vuc2Ugb2YgaXRzIGRlcGVuZGVuY2llcyBhbmQgaWYgYW55IHNwZWNpZmljIGhhcmR3YXJlIGlzIHJlcXVpcmVkLiBLbm93aW5nIHRoYXQgd2lsbCB0ZWxsIG1lIGlmIHRoZSBwYXRjaCBpcyByZWxldmFudCBpbiBhIGJyb2FkZXIgY29udGV4dC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMzozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2Y2FwX2RlY29kZV9ydWxlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jPTI0MTM9RVhQT1JUX1NZTUJPTF9HUEwodmNhcF9mcmVlX3J1bGUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQxNS0vKiBEZWNvZGUgYSBydWxlIGZyb20gdGhlIFZDQVAgY2FjaGUgYW5kIHJldHVybiBhIGNvcHkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MjQxNjpzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2RlY29kZV9ydWxlKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKmVsZW0pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0MTcte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM9MjQ0Nz1zdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2dldF9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLCB1MzIgaWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDYwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzoyNDYxOlx0cnVsZSA9IHZjYXBfZGVjb2RlX3J1bGUoZWxlbSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NjItXHR2Y2FwX3VubG9jayhlbGVtLVx1MDAzZWFkbWluKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMzozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTU1CgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipJbnZlc3RpZ2F0aW5nIGB2Y2FwX2dldF9ydWxlYCBhbmQgYHZjYXBfZGVjb2RlX3J1bGVgIFVzYWdlKioKCk9rYXksIEkgbmVlZCB0byBnZXQgYSBoYW5kbGUgb24gaG93IHRoZXNlIGZ1bmN0aW9ucywgYHZjYXBfZ2V0X3J1bGVgIGFuZCBgdmNhcF9kZWNvZGVfcnVsZWAsIGFyZSBiZWluZyB1c2VkLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byBrbm93IHdoZXJlIHRoZXkmIzM5O3JlIGJlaW5nICpjYWxsZWQqIHdpdGhpbiB0aGUgY29kZWJhc2UuIEkmIzM5O20gZ29pbmcgdG8gc3RhcnQgYnkgcnVubmluZyBzb21lIHF1aWNrIHNlYXJjaGVzIHdpdGhpbiB0aGUgcHJvamVjdC4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgZXhhY3QgZnVuY3Rpb24gbmFtZXMsIGFjY291bnRpbmcgZm9yIGFueSBwb3RlbnRpYWwgZGlmZmVyZW5jZXMgaW4gY2FwaXRhbGl6YXRpb24gb3IgbmFtaW5nIGNvbnZlbnRpb25zLCBkZXBlbmRpbmcgb24gaG93IHRoZXkmIzM5O3JlIGltcGxlbWVudGVkLiBJJiMzOTttIHRoaW5raW5nIEkmIzM5O2xsIHN0YXJ0IHdpdGggYSBzdHJhaWdodGZvcndhcmQgZ3JlcCBvciBmaW5kIGNvbW1hbmQgYWNyb3NzIHRoZSByZWxldmFudCBkaXJlY3Rvcmllcy4gVGhpcyBzaG91bGQgZ2l2ZSBtZSBhIGxpc3Qgb2YgYWxsIGluc3RhbmNlcyB3aGVyZSB0aGVzZSBmdW5jdGlvbnMgYXJlIGRpcmVjdGx5IGludm9rZWQuIEZyb20gdGhlcmUsIEkgY2FuIGJlZ2luIHRvIHVuZGVyc3RhbmQgdGhlaXIgY29udGV4dCwgd2hvIGNhbGxzIHRoZW0sIGFuZCB3aHksIGFuZCBtYXAgYWxsIHVzYWdlIG91dC4gSSYjMzk7bGwgbmVlZCB0byBiZSBtaW5kZnVsIG9mIGFueSBpbmRpcmVjdCBjYWxscyBhcyB3ZWxsLiBQZXJoYXBzIHRoZXJlIGFyZSB3cmFwcGVycyBvciBtYWNyb3Mgb2JzY3VyaW5nIHRoZSBkaXJlY3QgY2FsbD8gVGhvc2Ugd2lsbCBuZWVkIHRvIGJlIGlkZW50aWZpZWQgYW5kIGhhbmRsZWQgdG9vLiBUaGlzIHNob3VsZCBnaXZlIG1lIGEgc29saWQgc3RhcnRpbmcgcG9pbnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDM6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dmNhcF9kZWNvZGVfcnVsZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jPTI0MTM9RVhQT1JUX1NZTUJPTF9HUEwodmNhcF9mcmVlX3J1bGUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQxNS0vKiBEZWNvZGUgYSBydWxlIGZyb20gdGhlIFZDQVAgY2FjaGUgYW5kIHJldHVybiBhIGNvcHkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MjQxNjpzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2RlY29kZV9ydWxlKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKmVsZW0pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0MTcte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM9MjQ0Nz1zdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2dldF9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLCB1MzIgaWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDYwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzoyNDYxOlx0cnVsZSA9IHZjYXBfZGVjb2RlX3J1bGUoZWxlbSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NjItXHR2Y2FwX3VubG9jayhlbGVtLVx1MDAzZWFkbWluKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM9MjkyPXN0YXRpYyBpbnQgdmNhcF9zaG93X2FkbWluKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zMDEtXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGVsZW0sIFx1MDAyNmFkbWluLVx1MDAzZXJ1bGVzLCBsaXN0KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MzAyOlx0XHR2cnVsZSA9IHZjYXBfZGVjb2RlX3J1bGUoZWxlbSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzAzLVx0XHRpZiAoSVNfRVJSKHZydWxlKSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX3ByaXZhdGUuaD0xMjI9aW50IHZjYXBfcnVsZV9nZXRfa2V5c2V0cyhzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICpyaSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9wcml2YXRlLmgtMTI0LS8qIERlY29kZSBhIHJ1bGUgZnJvbSB0aGUgVkNBUCBjYWNoZSBhbmQgcmV0dXJuIGEgY29weSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oOjEyNTpzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2RlY29kZV9ydWxlKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKmVsZW0pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oLTEyNi1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMzozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzOTE3CgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhpcyBteXNlbGY6CgoqKktjb25maWcgRGl2ZSBmb3IgVkNBUCBFdGhlcm5ldCBEcml2ZXIqKgoKT2theSwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIFZDQVAgRXRoZXJuZXQgZHJpdmVyLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byBqdW1wIGludG8gdGhlIGBLY29uZmlnYCBmaWxlcy4gVGhhdCYjMzk7cyB3aGVyZSBhbGwgdGhlIGJ1aWxkLXRpbWUgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBhcmUgZGVmaW5lZCBmb3IgYSBMaW51eCBrZXJuZWwuIFNwZWNpZmljYWxseSwgSSBrbm93IHRoZSBwYXRoIHdpbGwgYmUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwYC4gSSBuZWVkIHRvIHNlZSB3aGF0IGtub2JzIGFyZSBhdmFpbGFibGUgZm9yIHRoaXMgcGFydGljdWxhciBkcml2ZXIuIEkmIzM5O20gbG9va2luZyBmb3IgdGhpbmdzIGxpa2Ugd2hldGhlciBpdCYjMzk7cyBlbmFibGVkIGJ5IGRlZmF1bHQsIGlmIHRoZXJlIGFyZSBkaWZmZXJlbnQgUEhZIG9wdGlvbnMsIGRlYnVnZ2luZyBmbGFncywgaW50ZXJydXB0IG1vZGVzLi4uIGFsbCB0aGUgdXN1YWwgc3VzcGVjdHMuIFRpbWUgdG8gZ2V0IHRoYXQgS2NvbmZpZyBvcGVuIGFuZCBzdGFydCBwYXJzaW5nIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGhlbHAgdGV4dHMuIEkga25vdyBleGFjdGx5IGhvdyB0byBpbnRlcnByZXQgdGhlIHN5bnRheCwgc28gdGhpcyBzaG91bGQgYmUgYSBxdWljayBwcm9jZXNzIG9mIGRpc2NvdmVyeS4gTGV0JiMzOTtzIHNlZSB3aGF0IHdlJiMzOTt2ZSBnb3QhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDM6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFZDQVAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWc9Nj1pZiBORVRfVkVORE9SX01JQ1JPQ0hJUFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvS2NvbmZpZy03LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvS2NvbmZpZzo4OmNvbmZpZyBWQ0FQXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9LY29uZmlnLTktXHRib29sIFwmIzM0O1ZDQVAgKFZlcnNhdGlsZSBDb250ZW50LUF3YXJlIFByb2Nlc3NvcikgbGlicmFyeVwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWctMzgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9LY29uZmlnOjM5OmNvbmZpZyBWQ0FQX0tVTklUX1RFU1RcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWctNDAtXHRib29sIFwmIzM0O0tVbml0IHRlc3QgZm9yIFZDQVAgbGlicmFyeVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDM6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDM2NQoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDM1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW5uZXIgbW9ub2xvZ3VlOgoKKipWQ0FQIExpYnJhcnkgQW5hbHlzaXMqKgoKQWxyaWdodCwgSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgaXQmIzM5O3MgYSBsaWJyYXJ5IHNwZWNpZmljYWxseSBmb3IgTWljcm9jaGlwJiMzOTtzIFZDQVAuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O09rYXksIGludGVyZXN0aW5nLiBCdXQgaXMgdGhpcyBhY3R1YWxseSAqZG9pbmcqIGFueXRoaW5nIHRoYXQmIzM5O3MgZW11bGF0YWJsZT8mIzM0OyBUaGF0JiMzOTtzIGFsd2F5cyBteSBmaXJzdCBxdWVzdGlvbiB3aGVuIEkmIzM5O20gYXNzZXNzaW5nIHNvbWV0aGluZyBsaWtlIHRoaXMuIFdoYXQgYXJlIGl0cyBkZXBlbmRlbmNpZXM/IFdoYXQgZHJpdmVycyB1dGlsaXplIGl0PyBXaGVyZSBkb2VzIGl0IGZpdCBpbnRvIHRoZSBiaWdnZXIgcGljdHVyZT8gSWYgaXQmIzM5O3MgdXNlZCBpbiBzb21lIGNyaXRpY2FsIGVtdWxhdGFibGUgZHJpdmVyLCB0aGVuIGl0JiMzOTtzIHdvcnRoIGEgZGVlcCBkaXZlLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgZXh0ZW50IG9mIGl0cyBmb290cHJpbnQuCgpTbywgbGV0JiMzOTtzIGN1dCB0byB0aGUgY2hhc2UuIEkgbmVlZCB0byBxdWlja2x5IGlkZW50aWZ5IHdoaWNoIGRyaXZlcnMsIG1vZHVsZXMsIG9yIHN1YnN5c3RlbXMgYWN0dWFsbHkgKnNlbGVjdCogb3IgbWFrZSB1c2Ugb2YgYFZDQVBgLiBUaGF0JiMzOTtzIHRoZSBrZXkuIEtub3dpbmcgdGhlIHNlbGVjdGlvbiBjcml0ZXJpYSB3aWxsIHNob3cgbWUgaXRzIGRlcGVuZGVuY2llcyBhbmQgaG93IGl0JiMzOTtzIGJlaW5nIHVzZWQuIEkgd2lsbCBsb29rIGZvciBhbnkgY29kZSB0aGF0IGVuYWJsZXMgb3IgcmVmZXJlbmNlcyBWQ0FQIGRpcmVjdGx5LiBUaGVuIEkmIzM5O2xsIHN0YXJ0IGJ1aWxkaW5nIGEgbWVudGFsIG1vZGVsIG9mIGhvdyBpdCBmdW5jdGlvbnMgaW4gdGhlIHN5c3RlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDM6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2VsZWN0IFZDQVAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L0tjb25maWc9MT1jb25maWcgTEFOOTY2WF9TV0lUQ0hcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9LY29uZmlnLTktXHRzZWxlY3QgUEFHRV9QT09MXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9LY29uZmlnOjEwOlx0c2VsZWN0IFZDQVBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L0tjb25maWctMTEtXHRzZWxlY3QgRkRNQVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvS2NvbmZpZz0xPWNvbmZpZyBTUEFSWDVfU1dJVENIXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9LY29uZmlnLTExLVx0c2VsZWN0IFJFU0VUX0NPTlRST0xMRVJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvS2NvbmZpZzoxMjpcdHNlbGVjdCBWQ0FQXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L0tjb25maWctMTMtXHRzZWxlY3QgRkRNQVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMzozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0OTAwCgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogMTQ0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIEhhcmR3YXJlIFN3aXRjaCBDb2RlIEFjY2Vzc2liaWxpdHkqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGNvZGUgdXNlZCBieSBib3RoIGBMQU45NjZYX1NXSVRDSGAgYW5kIGBTUEFSWDVfU1dJVENIYCDigJMgdGhlc2UgYXJlIGRlZmluaXRlbHkgaGFyZHdhcmUgc3dpdGNoZXMsIHNwZWNpZmljYWxseSBNaWNyb2NoaXAmIzM5O3MgU3Bhcng1IGFuZCBMQU45NjZ4LiBUaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzLCBhcmUgdGhleSBlbXVsYXRlZCB3aXRoaW4gUUVNVT8gTm8sIHRoYXQmIzM5O3MgYSBkZWFkIGVuZC4gSG93ZXZlciwgSSBzZWUgYFZDQVBfS1VOSVRfVEVTVGAgaW4gdGhlIG1peCwgYW5kIG15IGZpcnN0IGluc3RpbmN0IGlzIHRvIHRoaW5rIGZ1enppbmchIENhbiBJIHJlYWNoIGl0IHZpYSBLVW5pdD8gQnV0IHdhaXQsIEtVbml0IHRlc3RzIGFyZW4mIzM5O3QgdHlwaWNhbGx5IGZ1enplZCBieSBzeXprYWxsZXIuCgpSaWdodCwgc28gdGhhdCBsZWF2ZXMgbWUgdGhpbmtpbmcuLi4gaG93IGVsc2UgY2FuIEkgdHJpZ2dlciB0aGlzIGNvZGU/IEl0JiMzOTtzIGEgaGFyZHdhcmUgc3dpdGNoIGRyaXZlciwgd2hpY2ggbWVhbnMgSSYjMzk7bSBnb2luZyB0byBuZWVkIHRoZSBhY3R1YWwgcGh5c2ljYWwgaGFyZHdhcmUgdG8gdGVzdCBpdCBlZmZlY3RpdmVseS4KCkdpdmVuIHRoYXQgaXQgcmVsaWVzIG9uIGhhcmR3YXJlLCBJIG5lZWQgdG8gY2hlY2sgdGhlIGRlcGVuZGVuY2llcyBvZiBgTEFOOTY2WF9TV0lUQ0hgIGFuZCBgU1BBUlg1X1NXSVRDSGAsIG1heWJlIEkgY2FuIGZpbmQgc29tZSBvdGhlciBjb2RlIHJlbGF0ZWQgdG8gaXQgdGhhdCYjMzk7cyBtb3JlIGVhc2lseSB0ZXN0ZWQsIG9yIHBvdGVudGlhbGx5IGEgYmFja2Rvb3IgdG8gdHJpZ2dlciBhbiBpbnRlcmFjdGlvbiB3aXRoIHRoZSBoYXJkd2FyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDM6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIExBTjk2NlhfU1dJVENIJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9LY29uZmlnOjE6Y29uZmlnIExBTjk2NlhfU1dJVENIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9LY29uZmlnLTItXHR0cmlzdGF0ZSBcJiMzNDtMYW45NjZ4IHN3aXRjaCBkcml2ZXJcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDM6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTQxMQoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDEyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKlNQQVJYNV9TV0lUQ0ggQ29uZmlndXJhdGlvbiBBc3Nlc3NtZW50KioKCk9rYXksIHNvIEkmIzM5O20gdGhpbmtpbmcsICYjMzQ7TGV0JiMzOTtzIGRpZyBpbnRvIHRoZSBgY29uZmlnIFNQQVJYNV9TV0lUQ0hgIHNldHRpbmcuJiMzNDsgSXQmIzM5O3MgZnVuZGFtZW50YWwuIE15IGluaXRpYWwgcmVhY3Rpb24gaXMgdGhhdCB0aGlzIHdhcnJhbnRzIGEgZGVlcCBkaXZlLiBJJiMzOTttIGFzc3VtaW5nLCBnaXZlbiBteSBleHBlcmllbmNlLCB0aGF0IHRoaXMgc2luZ2xlIGZsYWcgY2FuIGhhdmUgZmFyLXJlYWNoaW5nIGltcGxpY2F0aW9ucyBhY3Jvc3MgdGhlIGVudGlyZSBTUEFSWDUgYXJjaGl0ZWN0dXJlLiBJdCBsaWtlbHkgaW5mbHVlbmNlcyBjb3JlIGJlaGF2aW9ycyDigJMgdGhpbmdzIGxpa2Ugcm91dGluZyBwcm90b2NvbHMsIGRhdGEgcGxhbmUgZm9yd2FyZGluZyBkZWNpc2lvbnMsIGFuZCBwb3RlbnRpYWxseSBldmVuIHBvd2VyIG1hbmFnZW1lbnQgaWYgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBoYXJkd2FyZS1sZXZlbCBzd2l0Y2hlcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgZXhhY3RseSB3aGF0IHRoaXMgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgY29udHJvbHMgYXQgYSBncmFudWxhciBsZXZlbC4gSSBpbW1lZGlhdGVseSBiZWdpbiB0byBjb25zaWRlciB3aGVyZSB0byBsb29rIGZvciBkb2N1bWVudGF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMzozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgU1BBUlg1X1NXSVRDSCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L0tjb25maWc6MTpjb25maWcgU1BBUlg1X1NXSVRDSFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9LY29uZmlnLTItXHR0cmlzdGF0ZSBcJiMzNDtTcGFyeDUgc3dpdGNoIGRyaXZlclwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMzozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1Njg4CgkJCQkJCQlvdXRwdXQ6IDEwMwoJCQkJCQkJdGhvdWdodHM6IDQ5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFzc2Vzc2luZyBGdXp6aW5nIEZlYXNpYmlsaXR5KioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCB0d28gc3dpdGNoIGRyaXZlciBjb21wb25lbnRzIGhlcmUgZm9yIE1pY3JvY2hpcCBoYXJkd2FyZS4gVGhlIGtleSB0aGluZyBJJiMzOTttIHBpY2tpbmcgdXAgb24gaXMgdGhlIG5lZWQgZm9yICpwaHlzaWNhbCogaGFyZHdhcmUuIE5vIGVtdWxhdGlvbiwgbm8gUUVNVSwgbm90aGluZyBsaWtlIHRoYXQgd2lsbCBjdXQgaXQuIFRoZXNlIGRyaXZlcnMgYXJlIGludHJpbnNpY2FsbHkgdGllZCB0byB0aGUgcmVhbCB3b3JsZCwgdG8gcmVhbCBNaWNyb2NoaXAgc2lsaWNvbi4gVGhhdCBpbW1lZGlhdGVseSB0ZWxscyBtZSB0aGlzIGNvZGUgaXNuJiMzOTt0IGdvaW5nIHRvIGJlIHJlYWNoYWJsZSwgb3IgdGVzdGFibGUsIHdpdGhpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBHaXZlbiB0aG9zZSBjb25zdHJhaW50cywgYW5kIHVuZGVyc3RhbmRpbmcgdGhlIGNvcmUgcmVxdWlyZW1lbnRzIGZvciBlZmZlY3RpdmUgZnV6emluZywgSSYjMzk7bSBnb2luZyB0byBoYXZlIHRvIG1hcmsgdGhpcyBhcyBhICYjMzQ7bm8tZ28mIzM0OyBmb3Igbm93LiBUaGUgc21hcnQgY2hvaWNlIGlzIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDM6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBtb2RpZmllZCBjb2RlIGlzIHBhcnQgb2YgdGhlIE1pY3JvY2hpcCBWQ0FQIChWZXJzYXRpbGUgQ29udGVudC1Bd2FyZSBQcm9jZXNzb3IpIGxpYnJhcnksIHdoaWNoIGlzIHVzZWQgYnkgdGhlIExBTjk2NlggYW5kIFNQQVJYNSBoYXJkd2FyZSBzd2l0Y2ggZHJpdmVycy4gVGhlc2UgZHJpdmVycyByZXF1aXJlIHBoeXNpY2FsIE1pY3JvY2hpcCBzd2l0Y2ggaGFyZHdhcmUgYW5kIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVS4gVGhlcmVmb3JlLCB0aGUgY29kZSBpcyB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIG1vZGlmaWVkIGNvZGUgaXMgcGFydCBvZiB0aGUgTWljcm9jaGlwIFZDQVAgKFZlcnNhdGlsZSBDb250ZW50LUF3YXJlIFByb2Nlc3NvcikgbGlicmFyeSwgd2hpY2ggaXMgdXNlZCBieSB0aGUgTEFOOTY2WCBhbmQgU1BBUlg1IGhhcmR3YXJlIHN3aXRjaCBkcml2ZXJzLiBUaGVzZSBkcml2ZXJzIHJlcXVpcmUgcGh5c2ljYWwgTWljcm9jaGlwIHN3aXRjaCBoYXJkd2FyZSBhbmQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VLiBUaGVyZWZvcmUsIHRoZSBjb2RlIGlzIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAzOjMzOjA3LjY1MzAxNTE5N1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMxNzMyOTgyNDE1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBtb2RpZmllZCBjb2RlIGlzIHBhcnQgb2YgdGhlIE1pY3JvY2hpcCBWQ0FQIChWZXJzYXRpbGUgQ29udGVudC1Bd2FyZSBQcm9jZXNzb3IpIGxpYnJhcnksIHdoaWNoIGlzIHVzZWQgYnkgdGhlIExBTjk2NlggYW5kIFNQQVJYNSBoYXJkd2FyZSBzd2l0Y2ggZHJpdmVycy4gVGhlc2UgZHJpdmVycyByZXF1aXJlIHBoeXNpY2FsIE1pY3JvY2hpcCBzd2l0Y2ggaGFyZHdhcmUgYW5kIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVS4gVGhlcmVmb3JlLCB0aGUgY29kZSBpcyB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAzOjMzOjA3LjY1MzAyNjc0NloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjkwODk3OTc3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYjkxYTBiZWRjYjI1ZDA4OTc1NDM2ZjA3NmZhMzczNjExOWRiNjRiNVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVHVlIEp1bCAyOCAwMzozMzowNSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuY1xcbmluZGV4IGZmODZjZGUxMWEzMmM3Li4wY2MwZGI3YjY0MWJmYiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuY1xcbkBAIC0yNDI3LDE4ICsyNDI3LDIxIEBAIHN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSlcXG4gXFxuIFxcdGVyciA9IHZjYXBfcmVhZF9ydWxlKHJpKTtcXG4gXFx0aWYgKGVycilcXG4tXFx0XFx0cmV0dXJuIEVSUl9QVFIoZXJyKTtcXG4rXFx0XFx0Z290byBlcnI7XFxuIFxcbiBcXHRlcnIgPSB2Y2FwX2RlY29kZV9rZXlzZXQocmkpO1xcbiBcXHRpZiAoZXJyKVxcbi1cXHRcXHRyZXR1cm4gRVJSX1BUUihlcnIpO1xcbitcXHRcXHRnb3RvIGVycjtcXG4gXFxuIFxcdGVyciA9IHZjYXBfZGVjb2RlX2FjdGlvbnNldChyaSk7XFxuIFxcdGlmIChlcnIpXFxuLVxcdFxcdHJldHVybiBFUlJfUFRSKGVycik7XFxuK1xcdFxcdGdvdG8gZXJyO1xcbiBcXG4gb3V0OlxcbiBcXHRyZXR1cm4gXFx1MDAyNnJpLVxcdTAwM2VkYXRhO1xcbitlcnI6XFxuK1xcdHZjYXBfZnJlZV9ydWxlKFxcdTAwMjZyaS1cXHUwMDNlZGF0YSk7XFxuK1xcdHJldHVybiBFUlJfUFRSKGVycik7XFxuIH1cXG4gXFxuIHN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZ2V0X3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsIHUzMiBpZClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDM6MzM6MDguMzQ0OTM1NzIyWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MzEwNDEwNTYzMDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIG1vZGlmaWVkIGNvZGUgaXMgcGFydCBvZiB0aGUgTWljcm9jaGlwIFZDQVAgKFZlcnNhdGlsZSBDb250ZW50LUF3YXJlIFByb2Nlc3NvcikgbGlicmFyeSwgd2hpY2ggaXMgdXNlZCBieSB0aGUgTEFOOTY2WCBhbmQgU1BBUlg1IGhhcmR3YXJlIHN3aXRjaCBkcml2ZXJzLiBUaGVzZSBkcml2ZXJzIHJlcXVpcmUgcGh5c2ljYWwgTWljcm9jaGlwIHN3aXRjaCBoYXJkd2FyZSBhbmQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VLiBUaGVyZWZvcmUsIHRoZSBjb2RlIGlzIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYjkxYTBiZWRjYjI1ZDA4OTc1NDM2ZjA3NmZhMzczNjExOWRiNjRiNVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVsIDI4IDAzOjMzOjA1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmNcbmluZGV4IGZmODZjZGUxMWEzMmM3Li4wY2MwZGI3YjY0MWJmYiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmNcbkBAIC0yNDI3LDE4ICsyNDI3LDIxIEBAIHN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSlcbiBcbiBcdGVyciA9IHZjYXBfcmVhZF9ydWxlKHJpKTtcbiBcdGlmIChlcnIpXG4tXHRcdHJldHVybiBFUlJfUFRSKGVycik7XG4rXHRcdGdvdG8gZXJyO1xuIFxuIFx0ZXJyID0gdmNhcF9kZWNvZGVfa2V5c2V0KHJpKTtcbiBcdGlmIChlcnIpXG4tXHRcdHJldHVybiBFUlJfUFRSKGVycik7XG4rXHRcdGdvdG8gZXJyO1xuIFxuIFx0ZXJyID0gdmNhcF9kZWNvZGVfYWN0aW9uc2V0KHJpKTtcbiBcdGlmIChlcnIpXG4tXHRcdHJldHVybiBFUlJfUFRSKGVycik7XG4rXHRcdGdvdG8gZXJyO1xuIFxuIG91dDpcbiBcdHJldHVybiBcdTAwMjZyaS1cdTAwM2VkYXRhO1xuK2VycjpcbitcdHZjYXBfZnJlZV9ydWxlKFx1MDAyNnJpLVx1MDAzZWRhdGEpO1xuK1x0cmV0dXJuIEVSUl9QVFIoZXJyKTtcbiB9XG4gXG4gc3RydWN0IHZjYXBfcnVsZSAqdmNhcF9nZXRfcnVsZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCwgdTMyIGlkKVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDM6MzM6MDguMzQ0OTM3OTAyWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTE2MTEwNzMwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBOZXR3b3JrIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEkndmUgZ290IHRoaXMgcGF0Y2ggaGVyZSB0aGF0J3MgdHdlYWtpbmcgdGhlIGB2Y2FwX2RlY29kZV9ydWxlYCBmdW5jdGlvbiB3aXRoaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmNgLiBJdCBsb29rcyBsaWtlIHRoZSBjaGFuZ2UgaXMgdG8gY2FsbCBgdmNhcF9mcmVlX3J1bGUoXHUwMDI2cmktXHUwMDNlZGF0YSlgIHdoZW4gYW4gZXJyb3Igb2NjdXJzLCBpbnN0ZWFkIG9mIGp1c3QgcmV0dXJuaW5nIGFuIGVycm9yIHBvaW50ZXIuIFNlZW1zIGxpa2UgYSByZWFzb25hYmxlIGJ1ZyBmaXgsIGJ1dCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dC5cblxuTXkgaW1tZWRpYXRlIHRob3VnaHQgaXM6IGNhbiBJIGV2ZW4gdGVzdCB0aGlzIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/IElzIHRoaXMgZHJpdmVyIHJlbGlhbnQgb24gc3BlY2lmaWMgaGFyZHdhcmU/IEl0J3MgYSBNaWNyb2NoaXAgVkNBUCBBUEksIHdoaWNoIGltbWVkaWF0ZWx5IG1ha2VzIG1lIHRoaW5rIGl0IGNvdWxkIGJlIHRpZWQgdG8gcGh5c2ljYWwgaGFyZHdhcmUuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIEkgY2FuIHJlcHJvZHVjZSB0aGlzIGNvbmRpdGlvbiBvciBpZiBJJ2xsIG5lZWQgYSB0ZXN0IHNldHVwIHdpdGggYSBzcGVjaWZpYyBwaWVjZSBvZiBlcXVpcG1lbnQuXG5cbk15IG5leHQgc3RlcCBpcyB0byBkaXZlIGludG8gdGhlIEtjb25maWcgZm9yIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcGAgdG8gZ2V0IGEgYmV0dGVyIHNlbnNlIG9mIGl0cyBkZXBlbmRlbmNpZXMgYW5kIGlmIGFueSBzcGVjaWZpYyBoYXJkd2FyZSBpcyByZXF1aXJlZC4gS25vd2luZyB0aGF0IHdpbGwgdGVsbCBtZSBpZiB0aGUgcGF0Y2ggaXMgcmVsZXZhbnQgaW4gYSBicm9hZGVyIGNvbnRleHQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxOTgsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNTEsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMzozMzoxMy41MDYwNTAzMThaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODg5NDE2NjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidmNhcF9kZWNvZGVfcnVsZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM9MjQxMz1FWFBPUlRfU1lNQk9MX0dQTCh2Y2FwX2ZyZWVfcnVsZSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0MTUtLyogRGVjb2RlIGEgcnVsZSBmcm9tIHRoZSBWQ0FQIGNhY2hlIGFuZCByZXR1cm4gYSBjb3B5ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzoyNDE2OnN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0MTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYz0yNDQ3PXN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZ2V0X3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsIHUzMiBpZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ2MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjI0NjE6XFx0cnVsZSA9IHZjYXBfZGVjb2RlX3J1bGUoZWxlbSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDYyLVxcdHZjYXBfdW5sb2NrKGVsZW0tXFx1MDAzZWFkbWluKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDM6MzM6MTMuNTk0OTk3MDQ2WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA5NjIyNzg3NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDpcblxuKipJbnZlc3RpZ2F0aW5nIGB2Y2FwX2dldF9ydWxlYCBhbmQgYHZjYXBfZGVjb2RlX3J1bGVgIFVzYWdlKipcblxuT2theSwgSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiBob3cgdGhlc2UgZnVuY3Rpb25zLCBgdmNhcF9nZXRfcnVsZWAgYW5kIGB2Y2FwX2RlY29kZV9ydWxlYCwgYXJlIGJlaW5nIHVzZWQuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGtub3cgd2hlcmUgdGhleSdyZSBiZWluZyAqY2FsbGVkKiB3aXRoaW4gdGhlIGNvZGViYXNlLiBJJ20gZ29pbmcgdG8gc3RhcnQgYnkgcnVubmluZyBzb21lIHF1aWNrIHNlYXJjaGVzIHdpdGhpbiB0aGUgcHJvamVjdC4gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBleGFjdCBmdW5jdGlvbiBuYW1lcywgYWNjb3VudGluZyBmb3IgYW55IHBvdGVudGlhbCBkaWZmZXJlbmNlcyBpbiBjYXBpdGFsaXphdGlvbiBvciBuYW1pbmcgY29udmVudGlvbnMsIGRlcGVuZGluZyBvbiBob3cgdGhleSdyZSBpbXBsZW1lbnRlZC4gSSdtIHRoaW5raW5nIEknbGwgc3RhcnQgd2l0aCBhIHN0cmFpZ2h0Zm9yd2FyZCBncmVwIG9yIGZpbmQgY29tbWFuZCBhY3Jvc3MgdGhlIHJlbGV2YW50IGRpcmVjdG9yaWVzLiBUaGlzIHNob3VsZCBnaXZlIG1lIGEgbGlzdCBvZiBhbGwgaW5zdGFuY2VzIHdoZXJlIHRoZXNlIGZ1bmN0aW9ucyBhcmUgZGlyZWN0bHkgaW52b2tlZC4gRnJvbSB0aGVyZSwgSSBjYW4gYmVnaW4gdG8gdW5kZXJzdGFuZCB0aGVpciBjb250ZXh0LCB3aG8gY2FsbHMgdGhlbSwgYW5kIHdoeSwgYW5kIG1hcCBhbGwgdXNhZ2Ugb3V0LiBJJ2xsIG5lZWQgdG8gYmUgbWluZGZ1bCBvZiBhbnkgaW5kaXJlY3QgY2FsbHMgYXMgd2VsbC4gUGVyaGFwcyB0aGVyZSBhcmUgd3JhcHBlcnMgb3IgbWFjcm9zIG9ic2N1cmluZyB0aGUgZGlyZWN0IGNhbGw/IFRob3NlIHdpbGwgbmVlZCB0byBiZSBpZGVudGlmaWVkIGFuZCBoYW5kbGVkIHRvby4gVGhpcyBzaG91bGQgZ2l2ZSBtZSBhIHNvbGlkIHN0YXJ0aW5nIHBvaW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyOTU1LCJPdXRwdXRUb2tlbnMiOjI2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDM6MzM6MTYuNjkxMjI4NzAzWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM5NDY0MzMyMjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidmNhcF9kZWNvZGVfcnVsZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYz0yNDEzPUVYUE9SVF9TWU1CT0xfR1BMKHZjYXBfZnJlZV9ydWxlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQxNS0vKiBEZWNvZGUgYSBydWxlIGZyb20gdGhlIFZDQVAgY2FjaGUgYW5kIHJldHVybiBhIGNvcHkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjI0MTY6c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9kZWNvZGVfcnVsZShzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICplbGVtKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQxNy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jPTI0NDc9c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9nZXRfcnVsZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCwgdTMyIGlkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDYwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MjQ2MTpcXHRydWxlID0gdmNhcF9kZWNvZGVfcnVsZShlbGVtKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NjItXFx0dmNhcF91bmxvY2soZWxlbS1cXHUwMDNlYWRtaW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jPTI5Mj1zdGF0aWMgaW50IHZjYXBfc2hvd19hZG1pbihzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zMDEtXFx0bGlzdF9mb3JfZWFjaF9lbnRyeShlbGVtLCBcXHUwMDI2YWRtaW4tXFx1MDAzZXJ1bGVzLCBsaXN0KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjMwMjpcXHRcXHR2cnVsZSA9IHZjYXBfZGVjb2RlX3J1bGUoZWxlbSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTMwMy1cXHRcXHRpZiAoSVNfRVJSKHZydWxlKSkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oPTEyMj1pbnQgdmNhcF9ydWxlX2dldF9rZXlzZXRzKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKnJpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oLTEyNC0vKiBEZWNvZGUgYSBydWxlIGZyb20gdGhlIFZDQVAgY2FjaGUgYW5kIHJldHVybiBhIGNvcHkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9wcml2YXRlLmg6MTI1OnN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oLTEyNi1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDM6MzM6MjAuNjM3Njc1MDYzWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzMxMDk0MTg5MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgbXlzZWxmOlxuXG4qKktjb25maWcgRGl2ZSBmb3IgVkNBUCBFdGhlcm5ldCBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgVkNBUCBFdGhlcm5ldCBkcml2ZXIuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIGp1bXAgaW50byB0aGUgYEtjb25maWdgIGZpbGVzLiBUaGF0J3Mgd2hlcmUgYWxsIHRoZSBidWlsZC10aW1lIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgYXJlIGRlZmluZWQgZm9yIGEgTGludXgga2VybmVsLiBTcGVjaWZpY2FsbHksIEkga25vdyB0aGUgcGF0aCB3aWxsIGJlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcGAuIEkgbmVlZCB0byBzZWUgd2hhdCBrbm9icyBhcmUgYXZhaWxhYmxlIGZvciB0aGlzIHBhcnRpY3VsYXIgZHJpdmVyLiBJJ20gbG9va2luZyBmb3IgdGhpbmdzIGxpa2Ugd2hldGhlciBpdCdzIGVuYWJsZWQgYnkgZGVmYXVsdCwgaWYgdGhlcmUgYXJlIGRpZmZlcmVudCBQSFkgb3B0aW9ucywgZGVidWdnaW5nIGZsYWdzLCBpbnRlcnJ1cHQgbW9kZXMuLi4gYWxsIHRoZSB1c3VhbCBzdXNwZWN0cy4gVGltZSB0byBnZXQgdGhhdCBLY29uZmlnIG9wZW4gYW5kIHN0YXJ0IHBhcnNpbmcgdGhlIGRlcGVuZGVuY2llcyBhbmQgaGVscCB0ZXh0cy4gSSBrbm93IGV4YWN0bHkgaG93IHRvIGludGVycHJldCB0aGUgc3ludGF4LCBzbyB0aGlzIHNob3VsZCBiZSBhIHF1aWNrIHByb2Nlc3Mgb2YgZGlzY292ZXJ5LiBMZXQncyBzZWUgd2hhdCB3ZSd2ZSBnb3QhXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM5MTcsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMzozMzoyMy45NDg2MTk3NDVaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ1ODIzODU3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBWQ0FQXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvS2NvbmZpZz02PWlmIE5FVF9WRU5ET1JfTUlDUk9DSElQXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvS2NvbmZpZy03LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWc6ODpjb25maWcgVkNBUFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWctOS1cXHRib29sIFxcXCJWQ0FQIChWZXJzYXRpbGUgQ29udGVudC1Bd2FyZSBQcm9jZXNzb3IpIGxpYnJhcnlcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9LY29uZmlnLTM4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWc6Mzk6Y29uZmlnIFZDQVBfS1VOSVRfVEVTVFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWctNDAtXFx0Ym9vbCBcXFwiS1VuaXQgdGVzdCBmb3IgVkNBUCBsaWJyYXJ5XFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAzOjMzOjI0LjA5NDQ0OTI0MloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3NDA2NzgzNjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW5uZXIgbW9ub2xvZ3VlOlxuXG4qKlZDQVAgTGlicmFyeSBBbmFseXNpcyoqXG5cbkFscmlnaHQsIEknbSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgaXQncyBhIGxpYnJhcnkgc3BlY2lmaWNhbGx5IGZvciBNaWNyb2NoaXAncyBWQ0FQLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJPa2F5LCBpbnRlcmVzdGluZy4gQnV0IGlzIHRoaXMgYWN0dWFsbHkgKmRvaW5nKiBhbnl0aGluZyB0aGF0J3MgZW11bGF0YWJsZT9cIiBUaGF0J3MgYWx3YXlzIG15IGZpcnN0IHF1ZXN0aW9uIHdoZW4gSSdtIGFzc2Vzc2luZyBzb21ldGhpbmcgbGlrZSB0aGlzLiBXaGF0IGFyZSBpdHMgZGVwZW5kZW5jaWVzPyBXaGF0IGRyaXZlcnMgdXRpbGl6ZSBpdD8gV2hlcmUgZG9lcyBpdCBmaXQgaW50byB0aGUgYmlnZ2VyIHBpY3R1cmU/IElmIGl0J3MgdXNlZCBpbiBzb21lIGNyaXRpY2FsIGVtdWxhdGFibGUgZHJpdmVyLCB0aGVuIGl0J3Mgd29ydGggYSBkZWVwIGRpdmUuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBleHRlbnQgb2YgaXRzIGZvb3RwcmludC5cblxuU28sIGxldCdzIGN1dCB0byB0aGUgY2hhc2UuIEkgbmVlZCB0byBxdWlja2x5IGlkZW50aWZ5IHdoaWNoIGRyaXZlcnMsIG1vZHVsZXMsIG9yIHN1YnN5c3RlbXMgYWN0dWFsbHkgKnNlbGVjdCogb3IgbWFrZSB1c2Ugb2YgYFZDQVBgLiBUaGF0J3MgdGhlIGtleS4gS25vd2luZyB0aGUgc2VsZWN0aW9uIGNyaXRlcmlhIHdpbGwgc2hvdyBtZSBpdHMgZGVwZW5kZW5jaWVzIGFuZCBob3cgaXQncyBiZWluZyB1c2VkLiBJIHdpbGwgbG9vayBmb3IgYW55IGNvZGUgdGhhdCBlbmFibGVzIG9yIHJlZmVyZW5jZXMgVkNBUCBkaXJlY3RseS4gVGhlbiBJJ2xsIHN0YXJ0IGJ1aWxkaW5nIGEgbWVudGFsIG1vZGVsIG9mIGhvdyBpdCBmdW5jdGlvbnMgaW4gdGhlIHN5c3RlbS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDM2NSwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAzOjMzOjI3LjgzNTEzMTk3NloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTU1NDE5NTI3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNlbGVjdCBWQ0FQXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvS2NvbmZpZz0xPWNvbmZpZyBMQU45NjZYX1NXSVRDSFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvS2NvbmZpZy05LVxcdHNlbGVjdCBQQUdFX1BPT0xcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9LY29uZmlnOjEwOlxcdHNlbGVjdCBWQ0FQXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvS2NvbmZpZy0xMS1cXHRzZWxlY3QgRkRNQVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9LY29uZmlnPTE9Y29uZmlnIFNQQVJYNV9TV0lUQ0hcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvS2NvbmZpZy0xMS1cXHRzZWxlY3QgUkVTRVRfQ09OVFJPTExFUlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvS2NvbmZpZzoxMjpcXHRzZWxlY3QgVkNBUFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvS2NvbmZpZy0xMy1cXHRzZWxlY3QgRkRNQVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMzozMzoyNy45OTA1NTk4MzNaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDc4OTg4OTQxMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBIYXJkd2FyZSBTd2l0Y2ggQ29kZSBBY2Nlc3NpYmlsaXR5KipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgY29kZSB1c2VkIGJ5IGJvdGggYExBTjk2NlhfU1dJVENIYCBhbmQgYFNQQVJYNV9TV0lUQ0hgIOKAkyB0aGVzZSBhcmUgZGVmaW5pdGVseSBoYXJkd2FyZSBzd2l0Y2hlcywgc3BlY2lmaWNhbGx5IE1pY3JvY2hpcCdzIFNwYXJ4NSBhbmQgTEFOOTY2eC4gVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiBpcywgYXJlIHRoZXkgZW11bGF0ZWQgd2l0aGluIFFFTVU/IE5vLCB0aGF0J3MgYSBkZWFkIGVuZC4gSG93ZXZlciwgSSBzZWUgYFZDQVBfS1VOSVRfVEVTVGAgaW4gdGhlIG1peCwgYW5kIG15IGZpcnN0IGluc3RpbmN0IGlzIHRvIHRoaW5rIGZ1enppbmchIENhbiBJIHJlYWNoIGl0IHZpYSBLVW5pdD8gQnV0IHdhaXQsIEtVbml0IHRlc3RzIGFyZW4ndCB0eXBpY2FsbHkgZnV6emVkIGJ5IHN5emthbGxlci5cblxuUmlnaHQsIHNvIHRoYXQgbGVhdmVzIG1lIHRoaW5raW5nLi4uIGhvdyBlbHNlIGNhbiBJIHRyaWdnZXIgdGhpcyBjb2RlPyBJdCdzIGEgaGFyZHdhcmUgc3dpdGNoIGRyaXZlciwgd2hpY2ggbWVhbnMgSSdtIGdvaW5nIHRvIG5lZWQgdGhlIGFjdHVhbCBwaHlzaWNhbCBoYXJkd2FyZSB0byB0ZXN0IGl0IGVmZmVjdGl2ZWx5LlxuXG5HaXZlbiB0aGF0IGl0IHJlbGllcyBvbiBoYXJkd2FyZSwgSSBuZWVkIHRvIGNoZWNrIHRoZSBkZXBlbmRlbmNpZXMgb2YgYExBTjk2NlhfU1dJVENIYCBhbmQgYFNQQVJYNV9TV0lUQ0hgLCBtYXliZSBJIGNhbiBmaW5kIHNvbWUgb3RoZXIgY29kZSByZWxhdGVkIHRvIGl0IHRoYXQncyBtb3JlIGVhc2lseSB0ZXN0ZWQsIG9yIHBvdGVudGlhbGx5IGEgYmFja2Rvb3IgdG8gdHJpZ2dlciBhbiBpbnRlcmFjdGlvbiB3aXRoIHRoZSBoYXJkd2FyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDkwMCwiT3V0cHV0VG9rZW5zIjo0NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMzozMzozMi43ODA0NTMxMzZaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExODEwNjEwNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTEFOOTY2WF9TV0lUQ0hcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9LY29uZmlnOjE6Y29uZmlnIExBTjk2NlhfU1dJVENIXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvS2NvbmZpZy0yLVxcdHRyaXN0YXRlIFxcXCJMYW45NjZ4IHN3aXRjaCBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAzOjMzOjMyLjg5ODU2NTY4M1oiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDE4OTAyMDA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipTUEFSWDVfU1dJVENIIENvbmZpZ3VyYXRpb24gQXNzZXNzbWVudCoqXG5cbk9rYXksIHNvIEknbSB0aGlua2luZywgXCJMZXQncyBkaWcgaW50byB0aGUgYGNvbmZpZyBTUEFSWDVfU1dJVENIYCBzZXR0aW5nLlwiIEl0J3MgZnVuZGFtZW50YWwuIE15IGluaXRpYWwgcmVhY3Rpb24gaXMgdGhhdCB0aGlzIHdhcnJhbnRzIGEgZGVlcCBkaXZlLiBJJ20gYXNzdW1pbmcsIGdpdmVuIG15IGV4cGVyaWVuY2UsIHRoYXQgdGhpcyBzaW5nbGUgZmxhZyBjYW4gaGF2ZSBmYXItcmVhY2hpbmcgaW1wbGljYXRpb25zIGFjcm9zcyB0aGUgZW50aXJlIFNQQVJYNSBhcmNoaXRlY3R1cmUuIEl0IGxpa2VseSBpbmZsdWVuY2VzIGNvcmUgYmVoYXZpb3JzIOKAkyB0aGluZ3MgbGlrZSByb3V0aW5nIHByb3RvY29scywgZGF0YSBwbGFuZSBmb3J3YXJkaW5nIGRlY2lzaW9ucywgYW5kIHBvdGVudGlhbGx5IGV2ZW4gcG93ZXIgbWFuYWdlbWVudCBpZiB3ZSdyZSBkZWFsaW5nIHdpdGggaGFyZHdhcmUtbGV2ZWwgc3dpdGNoZXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGV4YWN0bHkgd2hhdCB0aGlzIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIGNvbnRyb2xzIGF0IGEgZ3JhbnVsYXIgbGV2ZWwuIEkgaW1tZWRpYXRlbHkgYmVnaW4gdG8gY29uc2lkZXIgd2hlcmUgdG8gbG9vayBmb3IgZG9jdW1lbnRhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NTQxMSwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAzOjMzOjM1LjkxNzQ3MDgxMloiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODgyMjMzNTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFNQQVJYNV9TV0lUQ0hcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvS2NvbmZpZzoxOmNvbmZpZyBTUEFSWDVfU1dJVENIXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9LY29uZmlnLTItXFx0dHJpc3RhdGUgXFxcIlNwYXJ4NSBzd2l0Y2ggZHJpdmVyXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMzozMzozNi4wMDU2OTg4MVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzgwMjY2NTgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFzc2Vzc2luZyBGdXp6aW5nIEZlYXNpYmlsaXR5KipcblxuT2theSwgc28gSSd2ZSBnb3QgdHdvIHN3aXRjaCBkcml2ZXIgY29tcG9uZW50cyBoZXJlIGZvciBNaWNyb2NoaXAgaGFyZHdhcmUuIFRoZSBrZXkgdGhpbmcgSSdtIHBpY2tpbmcgdXAgb24gaXMgdGhlIG5lZWQgZm9yICpwaHlzaWNhbCogaGFyZHdhcmUuIE5vIGVtdWxhdGlvbiwgbm8gUUVNVSwgbm90aGluZyBsaWtlIHRoYXQgd2lsbCBjdXQgaXQuIFRoZXNlIGRyaXZlcnMgYXJlIGludHJpbnNpY2FsbHkgdGllZCB0byB0aGUgcmVhbCB3b3JsZCwgdG8gcmVhbCBNaWNyb2NoaXAgc2lsaWNvbi4gVGhhdCBpbW1lZGlhdGVseSB0ZWxscyBtZSB0aGlzIGNvZGUgaXNuJ3QgZ29pbmcgdG8gYmUgcmVhY2hhYmxlLCBvciB0ZXN0YWJsZSwgd2l0aGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIEdpdmVuIHRob3NlIGNvbnN0cmFpbnRzLCBhbmQgdW5kZXJzdGFuZGluZyB0aGUgY29yZSByZXF1aXJlbWVudHMgZm9yIGVmZmVjdGl2ZSBmdXp6aW5nLCBJJ20gZ29pbmcgdG8gaGF2ZSB0byBtYXJrIHRoaXMgYXMgYSBcIm5vLWdvXCIgZm9yIG5vdy4gVGhlIHNtYXJ0IGNob2ljZSBpcyB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU2ODgsIk91dHB1dFRva2VucyI6MTAzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDM6MzM6MzkuMzg1OTY4NTgxWiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjIxNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgbW9kaWZpZWQgY29kZSBpcyBwYXJ0IG9mIHRoZSBNaWNyb2NoaXAgVkNBUCAoVmVyc2F0aWxlIENvbnRlbnQtQXdhcmUgUHJvY2Vzc29yKSBsaWJyYXJ5LCB3aGljaCBpcyB1c2VkIGJ5IHRoZSBMQU45NjZYIGFuZCBTUEFSWDUgaGFyZHdhcmUgc3dpdGNoIGRyaXZlcnMuIFRoZXNlIGRyaXZlcnMgcmVxdWlyZSBwaHlzaWNhbCBNaWNyb2NoaXAgc3dpdGNoIGhhcmR3YXJlIGFuZCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUuIFRoZXJlZm9yZSwgdGhlIGNvZGUgaXMgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBtb2RpZmllZCBjb2RlIGlzIHBhcnQgb2YgdGhlIE1pY3JvY2hpcCBWQ0FQIChWZXJzYXRpbGUgQ29udGVudC1Bd2FyZSBQcm9jZXNzb3IpIGxpYnJhcnksIHdoaWNoIGlzIHVzZWQgYnkgdGhlIExBTjk2NlggYW5kIFNQQVJYNSBoYXJkd2FyZSBzd2l0Y2ggZHJpdmVycy4gVGhlc2UgZHJpdmVycyByZXF1aXJlIHBoeXNpY2FsIE1pY3JvY2hpcCBzd2l0Y2ggaGFyZHdhcmUgYW5kIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVS4gVGhlcmVmb3JlLCB0aGUgY29kZSBpcyB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow86flx[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-28 03:01:11 +0000 UTC FinishedAt: 2026-07-28 03:33:40 +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+CgkJCTx0ZD4yMDI2LzA3LzI4IDAzOjMzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIG1vZGlmaWVkIGNvZGUgaXMgcGFydCBvZiB0aGUgTWljcm9jaGlwIFZDQVAgKFZlcnNhdGlsZSBDb250ZW50LUF3YXJlIFByb2Nlc3NvcikgbGlicmFyeSwgd2hpY2ggaXMgdXNlZCBieSB0aGUgTEFOOTY2WCBhbmQgU1BBUlg1IGhhcmR3YXJlIHN3aXRjaCBkcml2ZXJzLiBUaGVzZSBkcml2ZXJzIHJlcXVpcmUgcGh5c2ljYWwgTWljcm9jaGlwIHN3aXRjaCBoYXJkd2FyZSBhbmQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VLiBUaGVyZWZvcmUsIHRoZSBjb2RlIGlzIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMzozMzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGI5MWEwYmVkY2IyNWQwODk3NTQzNmYwNzZmYTM3MzYxMTlkYjY0YjVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCAyOCAwMzozMzowNSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuY1xuaW5kZXggZmY4NmNkZTExYTMyYzcuLjBjYzBkYjdiNjQxYmZiIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuY1xuQEAgLTI0MjcsMTggJiM0MzsyNDI3LDIxIEBAIHN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSlcbiBcbiBcdGVyciA9IHZjYXBfcmVhZF9ydWxlKHJpKTtcbiBcdGlmIChlcnIpXG4tXHRcdHJldHVybiBFUlJfUFRSKGVycik7XG4mIzQzO1x0XHRnb3RvIGVycjtcbiBcbiBcdGVyciA9IHZjYXBfZGVjb2RlX2tleXNldChyaSk7XG4gXHRpZiAoZXJyKVxuLVx0XHRyZXR1cm4gRVJSX1BUUihlcnIpO1xuJiM0MztcdFx0Z290byBlcnI7XG4gXG4gXHRlcnIgPSB2Y2FwX2RlY29kZV9hY3Rpb25zZXQocmkpO1xuIFx0aWYgKGVycilcbi1cdFx0cmV0dXJuIEVSUl9QVFIoZXJyKTtcbiYjNDM7XHRcdGdvdG8gZXJyO1xuIFxuIG91dDpcbiBcdHJldHVybiBcdTAwMjZyaS1cdTAwM2VkYXRhO1xuJiM0MztlcnI6XG4mIzQzO1x0dmNhcF9mcmVlX3J1bGUoXHUwMDI2cmktXHUwMDNlZGF0YSk7XG4mIzQzO1x0cmV0dXJuIEVSUl9QVFIoZXJyKTtcbiB9XG4gXG4gc3RydWN0IHZjYXBfcnVsZSAqdmNhcF9nZXRfcnVsZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCwgdTMyIGlkKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDAzOjMzPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBtb2RpZmllZCBjb2RlIGlzIHBhcnQgb2YgdGhlIE1pY3JvY2hpcCBWQ0FQIChWZXJzYXRpbGUgQ29udGVudC1Bd2FyZSBQcm9jZXNzb3IpIGxpYnJhcnksIHdoaWNoIGlzIHVzZWQgYnkgdGhlIExBTjk2NlggYW5kIFNQQVJYNSBoYXJkd2FyZSBzd2l0Y2ggZHJpdmVycy4gVGhlc2UgZHJpdmVycyByZXF1aXJlIHBoeXNpY2FsIE1pY3JvY2hpcCBzd2l0Y2ggaGFyZHdhcmUgYW5kIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVS4gVGhlcmVmb3JlLCB0aGUgY29kZSBpcyB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBiOTFhMGJlZGNiMjVkMDg5NzU0MzZmMDc2ZmEzNzM2MTE5ZGI2NGI1CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdWwgMjggMDM6MzM6MDUgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYwppbmRleCBmZjg2Y2RlMTFhMzJjNy4uMGNjMGRiN2I2NDFiZmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYwpAQCAtMjQyNywxOCAmIzQzOzI0MjcsMjEgQEAgc3RydWN0IHZjYXBfcnVsZSAqdmNhcF9kZWNvZGVfcnVsZShzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICplbGVtKQogCiAJZXJyID0gdmNhcF9yZWFkX3J1bGUocmkpOwogCWlmIChlcnIpCi0JCXJldHVybiBFUlJfUFRSKGVycik7CiYjNDM7CQlnb3RvIGVycjsKIAogCWVyciA9IHZjYXBfZGVjb2RlX2tleXNldChyaSk7CiAJaWYgKGVycikKLQkJcmV0dXJuIEVSUl9QVFIoZXJyKTsKJiM0MzsJCWdvdG8gZXJyOwogCiAJZXJyID0gdmNhcF9kZWNvZGVfYWN0aW9uc2V0KHJpKTsKIAlpZiAoZXJyKQotCQlyZXR1cm4gRVJSX1BUUihlcnIpOwomIzQzOwkJZ290byBlcnI7CiAKIG91dDoKIAlyZXR1cm4gJmFtcDtyaS0mZ3Q7ZGF0YTsKJiM0MztlcnI6CiYjNDM7CXZjYXBfZnJlZV9ydWxlKCZhbXA7cmktJmd0O2RhdGEpOwomIzQzOwlyZXR1cm4gRVJSX1BUUihlcnIpOwogfQogCiBzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2dldF9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLCB1MzIgaWQpCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDAzOjMzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxOTgKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiAxNTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTmV0d29yayBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2ggaGVyZSB0aGF0JiMzOTtzIHR3ZWFraW5nIHRoZSBgdmNhcF9kZWNvZGVfcnVsZWAgZnVuY3Rpb24gd2l0aGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jYC4gSXQgbG9va3MgbGlrZSB0aGUgY2hhbmdlIGlzIHRvIGNhbGwgYHZjYXBfZnJlZV9ydWxlKCZhbXA7cmktJmd0O2RhdGEpYCB3aGVuIGFuIGVycm9yIG9jY3VycywgaW5zdGVhZCBvZiBqdXN0IHJldHVybmluZyBhbiBlcnJvciBwb2ludGVyLiBTZWVtcyBsaWtlIGEgcmVhc29uYWJsZSBidWcgZml4LCBidXQgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQuCgpNeSBpbW1lZGlhdGUgdGhvdWdodCBpczogY2FuIEkgZXZlbiB0ZXN0IHRoaXMgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gSXMgdGhpcyBkcml2ZXIgcmVsaWFudCBvbiBzcGVjaWZpYyBoYXJkd2FyZT8gSXQmIzM5O3MgYSBNaWNyb2NoaXAgVkNBUCBBUEksIHdoaWNoIGltbWVkaWF0ZWx5IG1ha2VzIG1lIHRoaW5rIGl0IGNvdWxkIGJlIHRpZWQgdG8gcGh5c2ljYWwgaGFyZHdhcmUuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIEkgY2FuIHJlcHJvZHVjZSB0aGlzIGNvbmRpdGlvbiBvciBpZiBJJiMzOTtsbCBuZWVkIGEgdGVzdCBzZXR1cCB3aXRoIGEgc3BlY2lmaWMgcGllY2Ugb2YgZXF1aXBtZW50LgoKTXkgbmV4dCBzdGVwIGlzIHRvIGRpdmUgaW50byB0aGUgS2NvbmZpZyBmb3IgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwYCB0byBnZXQgYSBiZXR0ZXIgc2Vuc2Ugb2YgaXRzIGRlcGVuZGVuY2llcyBhbmQgaWYgYW55IHNwZWNpZmljIGhhcmR3YXJlIGlzIHJlcXVpcmVkLiBLbm93aW5nIHRoYXQgd2lsbCB0ZWxsIG1lIGlmIHRoZSBwYXRjaCBpcyByZWxldmFudCBpbiBhIGJyb2FkZXIgY29udGV4dC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMzozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2Y2FwX2RlY29kZV9ydWxlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jPTI0MTM9RVhQT1JUX1NZTUJPTF9HUEwodmNhcF9mcmVlX3J1bGUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQxNS0vKiBEZWNvZGUgYSBydWxlIGZyb20gdGhlIFZDQVAgY2FjaGUgYW5kIHJldHVybiBhIGNvcHkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MjQxNjpzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2RlY29kZV9ydWxlKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKmVsZW0pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0MTcte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM9MjQ0Nz1zdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2dldF9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLCB1MzIgaWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDYwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzoyNDYxOlx0cnVsZSA9IHZjYXBfZGVjb2RlX3J1bGUoZWxlbSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NjItXHR2Y2FwX3VubG9jayhlbGVtLVx1MDAzZWFkbWluKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMzozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTU1CgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipJbnZlc3RpZ2F0aW5nIGB2Y2FwX2dldF9ydWxlYCBhbmQgYHZjYXBfZGVjb2RlX3J1bGVgIFVzYWdlKioKCk9rYXksIEkgbmVlZCB0byBnZXQgYSBoYW5kbGUgb24gaG93IHRoZXNlIGZ1bmN0aW9ucywgYHZjYXBfZ2V0X3J1bGVgIGFuZCBgdmNhcF9kZWNvZGVfcnVsZWAsIGFyZSBiZWluZyB1c2VkLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byBrbm93IHdoZXJlIHRoZXkmIzM5O3JlIGJlaW5nICpjYWxsZWQqIHdpdGhpbiB0aGUgY29kZWJhc2UuIEkmIzM5O20gZ29pbmcgdG8gc3RhcnQgYnkgcnVubmluZyBzb21lIHF1aWNrIHNlYXJjaGVzIHdpdGhpbiB0aGUgcHJvamVjdC4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgZXhhY3QgZnVuY3Rpb24gbmFtZXMsIGFjY291bnRpbmcgZm9yIGFueSBwb3RlbnRpYWwgZGlmZmVyZW5jZXMgaW4gY2FwaXRhbGl6YXRpb24gb3IgbmFtaW5nIGNvbnZlbnRpb25zLCBkZXBlbmRpbmcgb24gaG93IHRoZXkmIzM5O3JlIGltcGxlbWVudGVkLiBJJiMzOTttIHRoaW5raW5nIEkmIzM5O2xsIHN0YXJ0IHdpdGggYSBzdHJhaWdodGZvcndhcmQgZ3JlcCBvciBmaW5kIGNvbW1hbmQgYWNyb3NzIHRoZSByZWxldmFudCBkaXJlY3Rvcmllcy4gVGhpcyBzaG91bGQgZ2l2ZSBtZSBhIGxpc3Qgb2YgYWxsIGluc3RhbmNlcyB3aGVyZSB0aGVzZSBmdW5jdGlvbnMgYXJlIGRpcmVjdGx5IGludm9rZWQuIEZyb20gdGhlcmUsIEkgY2FuIGJlZ2luIHRvIHVuZGVyc3RhbmQgdGhlaXIgY29udGV4dCwgd2hvIGNhbGxzIHRoZW0sIGFuZCB3aHksIGFuZCBtYXAgYWxsIHVzYWdlIG91dC4gSSYjMzk7bGwgbmVlZCB0byBiZSBtaW5kZnVsIG9mIGFueSBpbmRpcmVjdCBjYWxscyBhcyB3ZWxsLiBQZXJoYXBzIHRoZXJlIGFyZSB3cmFwcGVycyBvciBtYWNyb3Mgb2JzY3VyaW5nIHRoZSBkaXJlY3QgY2FsbD8gVGhvc2Ugd2lsbCBuZWVkIHRvIGJlIGlkZW50aWZpZWQgYW5kIGhhbmRsZWQgdG9vLiBUaGlzIHNob3VsZCBnaXZlIG1lIGEgc29saWQgc3RhcnRpbmcgcG9pbnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDM6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dmNhcF9kZWNvZGVfcnVsZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jPTI0MTM9RVhQT1JUX1NZTUJPTF9HUEwodmNhcF9mcmVlX3J1bGUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQxNS0vKiBEZWNvZGUgYSBydWxlIGZyb20gdGhlIFZDQVAgY2FjaGUgYW5kIHJldHVybiBhIGNvcHkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MjQxNjpzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2RlY29kZV9ydWxlKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKmVsZW0pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0MTcte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM9MjQ0Nz1zdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2dldF9ydWxlKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLCB1MzIgaWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDYwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzoyNDYxOlx0cnVsZSA9IHZjYXBfZGVjb2RlX3J1bGUoZWxlbSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NjItXHR2Y2FwX3VubG9jayhlbGVtLVx1MDAzZWFkbWluKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM9MjkyPXN0YXRpYyBpbnQgdmNhcF9zaG93X2FkbWluKHN0cnVjdCB2Y2FwX2NvbnRyb2wgKnZjdHJsLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zMDEtXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGVsZW0sIFx1MDAyNmFkbWluLVx1MDAzZXJ1bGVzLCBsaXN0KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmM6MzAyOlx0XHR2cnVsZSA9IHZjYXBfZGVjb2RlX3J1bGUoZWxlbSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9kZWJ1Z2ZzLmMtMzAzLVx0XHRpZiAoSVNfRVJSKHZydWxlKSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX3ByaXZhdGUuaD0xMjI9aW50IHZjYXBfcnVsZV9nZXRfa2V5c2V0cyhzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICpyaSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9wcml2YXRlLmgtMTI0LS8qIERlY29kZSBhIHJ1bGUgZnJvbSB0aGUgVkNBUCBjYWNoZSBhbmQgcmV0dXJuIGEgY29weSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oOjEyNTpzdHJ1Y3QgdmNhcF9ydWxlICp2Y2FwX2RlY29kZV9ydWxlKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKmVsZW0pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oLTEyNi1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMzozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzOTE3CgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhpcyBteXNlbGY6CgoqKktjb25maWcgRGl2ZSBmb3IgVkNBUCBFdGhlcm5ldCBEcml2ZXIqKgoKT2theSwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIFZDQVAgRXRoZXJuZXQgZHJpdmVyLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byBqdW1wIGludG8gdGhlIGBLY29uZmlnYCBmaWxlcy4gVGhhdCYjMzk7cyB3aGVyZSBhbGwgdGhlIGJ1aWxkLXRpbWUgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBhcmUgZGVmaW5lZCBmb3IgYSBMaW51eCBrZXJuZWwuIFNwZWNpZmljYWxseSwgSSBrbm93IHRoZSBwYXRoIHdpbGwgYmUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwYC4gSSBuZWVkIHRvIHNlZSB3aGF0IGtub2JzIGFyZSBhdmFpbGFibGUgZm9yIHRoaXMgcGFydGljdWxhciBkcml2ZXIuIEkmIzM5O20gbG9va2luZyBmb3IgdGhpbmdzIGxpa2Ugd2hldGhlciBpdCYjMzk7cyBlbmFibGVkIGJ5IGRlZmF1bHQsIGlmIHRoZXJlIGFyZSBkaWZmZXJlbnQgUEhZIG9wdGlvbnMsIGRlYnVnZ2luZyBmbGFncywgaW50ZXJydXB0IG1vZGVzLi4uIGFsbCB0aGUgdXN1YWwgc3VzcGVjdHMuIFRpbWUgdG8gZ2V0IHRoYXQgS2NvbmZpZyBvcGVuIGFuZCBzdGFydCBwYXJzaW5nIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGhlbHAgdGV4dHMuIEkga25vdyBleGFjdGx5IGhvdyB0byBpbnRlcnByZXQgdGhlIHN5bnRheCwgc28gdGhpcyBzaG91bGQgYmUgYSBxdWljayBwcm9jZXNzIG9mIGRpc2NvdmVyeS4gTGV0JiMzOTtzIHNlZSB3aGF0IHdlJiMzOTt2ZSBnb3QhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDM6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFZDQVAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWc9Nj1pZiBORVRfVkVORE9SX01JQ1JPQ0hJUFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvS2NvbmZpZy03LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvS2NvbmZpZzo4OmNvbmZpZyBWQ0FQXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9LY29uZmlnLTktXHRib29sIFwmIzM0O1ZDQVAgKFZlcnNhdGlsZSBDb250ZW50LUF3YXJlIFByb2Nlc3NvcikgbGlicmFyeVwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWctMzgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9LY29uZmlnOjM5OmNvbmZpZyBWQ0FQX0tVTklUX1RFU1RcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWctNDAtXHRib29sIFwmIzM0O0tVbml0IHRlc3QgZm9yIFZDQVAgbGlicmFyeVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDM6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDM2NQoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDM1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW5uZXIgbW9ub2xvZ3VlOgoKKipWQ0FQIExpYnJhcnkgQW5hbHlzaXMqKgoKQWxyaWdodCwgSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgaXQmIzM5O3MgYSBsaWJyYXJ5IHNwZWNpZmljYWxseSBmb3IgTWljcm9jaGlwJiMzOTtzIFZDQVAuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O09rYXksIGludGVyZXN0aW5nLiBCdXQgaXMgdGhpcyBhY3R1YWxseSAqZG9pbmcqIGFueXRoaW5nIHRoYXQmIzM5O3MgZW11bGF0YWJsZT8mIzM0OyBUaGF0JiMzOTtzIGFsd2F5cyBteSBmaXJzdCBxdWVzdGlvbiB3aGVuIEkmIzM5O20gYXNzZXNzaW5nIHNvbWV0aGluZyBsaWtlIHRoaXMuIFdoYXQgYXJlIGl0cyBkZXBlbmRlbmNpZXM/IFdoYXQgZHJpdmVycyB1dGlsaXplIGl0PyBXaGVyZSBkb2VzIGl0IGZpdCBpbnRvIHRoZSBiaWdnZXIgcGljdHVyZT8gSWYgaXQmIzM5O3MgdXNlZCBpbiBzb21lIGNyaXRpY2FsIGVtdWxhdGFibGUgZHJpdmVyLCB0aGVuIGl0JiMzOTtzIHdvcnRoIGEgZGVlcCBkaXZlLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgZXh0ZW50IG9mIGl0cyBmb290cHJpbnQuCgpTbywgbGV0JiMzOTtzIGN1dCB0byB0aGUgY2hhc2UuIEkgbmVlZCB0byBxdWlja2x5IGlkZW50aWZ5IHdoaWNoIGRyaXZlcnMsIG1vZHVsZXMsIG9yIHN1YnN5c3RlbXMgYWN0dWFsbHkgKnNlbGVjdCogb3IgbWFrZSB1c2Ugb2YgYFZDQVBgLiBUaGF0JiMzOTtzIHRoZSBrZXkuIEtub3dpbmcgdGhlIHNlbGVjdGlvbiBjcml0ZXJpYSB3aWxsIHNob3cgbWUgaXRzIGRlcGVuZGVuY2llcyBhbmQgaG93IGl0JiMzOTtzIGJlaW5nIHVzZWQuIEkgd2lsbCBsb29rIGZvciBhbnkgY29kZSB0aGF0IGVuYWJsZXMgb3IgcmVmZXJlbmNlcyBWQ0FQIGRpcmVjdGx5LiBUaGVuIEkmIzM5O2xsIHN0YXJ0IGJ1aWxkaW5nIGEgbWVudGFsIG1vZGVsIG9mIGhvdyBpdCBmdW5jdGlvbnMgaW4gdGhlIHN5c3RlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDM6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2VsZWN0IFZDQVAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L0tjb25maWc9MT1jb25maWcgTEFOOTY2WF9TV0lUQ0hcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9LY29uZmlnLTktXHRzZWxlY3QgUEFHRV9QT09MXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9LY29uZmlnOjEwOlx0c2VsZWN0IFZDQVBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L0tjb25maWctMTEtXHRzZWxlY3QgRkRNQVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvS2NvbmZpZz0xPWNvbmZpZyBTUEFSWDVfU1dJVENIXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9LY29uZmlnLTExLVx0c2VsZWN0IFJFU0VUX0NPTlRST0xMRVJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvS2NvbmZpZzoxMjpcdHNlbGVjdCBWQ0FQXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L0tjb25maWctMTMtXHRzZWxlY3QgRkRNQVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMzozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0OTAwCgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogMTQ0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIEhhcmR3YXJlIFN3aXRjaCBDb2RlIEFjY2Vzc2liaWxpdHkqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGNvZGUgdXNlZCBieSBib3RoIGBMQU45NjZYX1NXSVRDSGAgYW5kIGBTUEFSWDVfU1dJVENIYCDigJMgdGhlc2UgYXJlIGRlZmluaXRlbHkgaGFyZHdhcmUgc3dpdGNoZXMsIHNwZWNpZmljYWxseSBNaWNyb2NoaXAmIzM5O3MgU3Bhcng1IGFuZCBMQU45NjZ4LiBUaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzLCBhcmUgdGhleSBlbXVsYXRlZCB3aXRoaW4gUUVNVT8gTm8sIHRoYXQmIzM5O3MgYSBkZWFkIGVuZC4gSG93ZXZlciwgSSBzZWUgYFZDQVBfS1VOSVRfVEVTVGAgaW4gdGhlIG1peCwgYW5kIG15IGZpcnN0IGluc3RpbmN0IGlzIHRvIHRoaW5rIGZ1enppbmchIENhbiBJIHJlYWNoIGl0IHZpYSBLVW5pdD8gQnV0IHdhaXQsIEtVbml0IHRlc3RzIGFyZW4mIzM5O3QgdHlwaWNhbGx5IGZ1enplZCBieSBzeXprYWxsZXIuCgpSaWdodCwgc28gdGhhdCBsZWF2ZXMgbWUgdGhpbmtpbmcuLi4gaG93IGVsc2UgY2FuIEkgdHJpZ2dlciB0aGlzIGNvZGU/IEl0JiMzOTtzIGEgaGFyZHdhcmUgc3dpdGNoIGRyaXZlciwgd2hpY2ggbWVhbnMgSSYjMzk7bSBnb2luZyB0byBuZWVkIHRoZSBhY3R1YWwgcGh5c2ljYWwgaGFyZHdhcmUgdG8gdGVzdCBpdCBlZmZlY3RpdmVseS4KCkdpdmVuIHRoYXQgaXQgcmVsaWVzIG9uIGhhcmR3YXJlLCBJIG5lZWQgdG8gY2hlY2sgdGhlIGRlcGVuZGVuY2llcyBvZiBgTEFOOTY2WF9TV0lUQ0hgIGFuZCBgU1BBUlg1X1NXSVRDSGAsIG1heWJlIEkgY2FuIGZpbmQgc29tZSBvdGhlciBjb2RlIHJlbGF0ZWQgdG8gaXQgdGhhdCYjMzk7cyBtb3JlIGVhc2lseSB0ZXN0ZWQsIG9yIHBvdGVudGlhbGx5IGEgYmFja2Rvb3IgdG8gdHJpZ2dlciBhbiBpbnRlcmFjdGlvbiB3aXRoIHRoZSBoYXJkd2FyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDM6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIExBTjk2NlhfU1dJVENIJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9LY29uZmlnOjE6Y29uZmlnIExBTjk2NlhfU1dJVENIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9LY29uZmlnLTItXHR0cmlzdGF0ZSBcJiMzNDtMYW45NjZ4IHN3aXRjaCBkcml2ZXJcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDM6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTQxMQoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDEyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKlNQQVJYNV9TV0lUQ0ggQ29uZmlndXJhdGlvbiBBc3Nlc3NtZW50KioKCk9rYXksIHNvIEkmIzM5O20gdGhpbmtpbmcsICYjMzQ7TGV0JiMzOTtzIGRpZyBpbnRvIHRoZSBgY29uZmlnIFNQQVJYNV9TV0lUQ0hgIHNldHRpbmcuJiMzNDsgSXQmIzM5O3MgZnVuZGFtZW50YWwuIE15IGluaXRpYWwgcmVhY3Rpb24gaXMgdGhhdCB0aGlzIHdhcnJhbnRzIGEgZGVlcCBkaXZlLiBJJiMzOTttIGFzc3VtaW5nLCBnaXZlbiBteSBleHBlcmllbmNlLCB0aGF0IHRoaXMgc2luZ2xlIGZsYWcgY2FuIGhhdmUgZmFyLXJlYWNoaW5nIGltcGxpY2F0aW9ucyBhY3Jvc3MgdGhlIGVudGlyZSBTUEFSWDUgYXJjaGl0ZWN0dXJlLiBJdCBsaWtlbHkgaW5mbHVlbmNlcyBjb3JlIGJlaGF2aW9ycyDigJMgdGhpbmdzIGxpa2Ugcm91dGluZyBwcm90b2NvbHMsIGRhdGEgcGxhbmUgZm9yd2FyZGluZyBkZWNpc2lvbnMsIGFuZCBwb3RlbnRpYWxseSBldmVuIHBvd2VyIG1hbmFnZW1lbnQgaWYgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBoYXJkd2FyZS1sZXZlbCBzd2l0Y2hlcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgZXhhY3RseSB3aGF0IHRoaXMgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgY29udHJvbHMgYXQgYSBncmFudWxhciBsZXZlbC4gSSBpbW1lZGlhdGVseSBiZWdpbiB0byBjb25zaWRlciB3aGVyZSB0byBsb29rIGZvciBkb2N1bWVudGF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMzozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgU1BBUlg1X1NXSVRDSCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L0tjb25maWc6MTpjb25maWcgU1BBUlg1X1NXSVRDSFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9LY29uZmlnLTItXHR0cmlzdGF0ZSBcJiMzNDtTcGFyeDUgc3dpdGNoIGRyaXZlclwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMzozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1Njg4CgkJCQkJCQlvdXRwdXQ6IDEwMwoJCQkJCQkJdGhvdWdodHM6IDQ5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFzc2Vzc2luZyBGdXp6aW5nIEZlYXNpYmlsaXR5KioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCB0d28gc3dpdGNoIGRyaXZlciBjb21wb25lbnRzIGhlcmUgZm9yIE1pY3JvY2hpcCBoYXJkd2FyZS4gVGhlIGtleSB0aGluZyBJJiMzOTttIHBpY2tpbmcgdXAgb24gaXMgdGhlIG5lZWQgZm9yICpwaHlzaWNhbCogaGFyZHdhcmUuIE5vIGVtdWxhdGlvbiwgbm8gUUVNVSwgbm90aGluZyBsaWtlIHRoYXQgd2lsbCBjdXQgaXQuIFRoZXNlIGRyaXZlcnMgYXJlIGludHJpbnNpY2FsbHkgdGllZCB0byB0aGUgcmVhbCB3b3JsZCwgdG8gcmVhbCBNaWNyb2NoaXAgc2lsaWNvbi4gVGhhdCBpbW1lZGlhdGVseSB0ZWxscyBtZSB0aGlzIGNvZGUgaXNuJiMzOTt0IGdvaW5nIHRvIGJlIHJlYWNoYWJsZSwgb3IgdGVzdGFibGUsIHdpdGhpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBHaXZlbiB0aG9zZSBjb25zdHJhaW50cywgYW5kIHVuZGVyc3RhbmRpbmcgdGhlIGNvcmUgcmVxdWlyZW1lbnRzIGZvciBlZmZlY3RpdmUgZnV6emluZywgSSYjMzk7bSBnb2luZyB0byBoYXZlIHRvIG1hcmsgdGhpcyBhcyBhICYjMzQ7bm8tZ28mIzM0OyBmb3Igbm93LiBUaGUgc21hcnQgY2hvaWNlIGlzIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDM6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBtb2RpZmllZCBjb2RlIGlzIHBhcnQgb2YgdGhlIE1pY3JvY2hpcCBWQ0FQIChWZXJzYXRpbGUgQ29udGVudC1Bd2FyZSBQcm9jZXNzb3IpIGxpYnJhcnksIHdoaWNoIGlzIHVzZWQgYnkgdGhlIExBTjk2NlggYW5kIFNQQVJYNSBoYXJkd2FyZSBzd2l0Y2ggZHJpdmVycy4gVGhlc2UgZHJpdmVycyByZXF1aXJlIHBoeXNpY2FsIE1pY3JvY2hpcCBzd2l0Y2ggaGFyZHdhcmUgYW5kIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVS4gVGhlcmVmb3JlLCB0aGUgY29kZSBpcyB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIG1vZGlmaWVkIGNvZGUgaXMgcGFydCBvZiB0aGUgTWljcm9jaGlwIFZDQVAgKFZlcnNhdGlsZSBDb250ZW50LUF3YXJlIFByb2Nlc3NvcikgbGlicmFyeSwgd2hpY2ggaXMgdXNlZCBieSB0aGUgTEFOOTY2WCBhbmQgU1BBUlg1IGhhcmR3YXJlIHN3aXRjaCBkcml2ZXJzLiBUaGVzZSBkcml2ZXJzIHJlcXVpcmUgcGh5c2ljYWwgTWljcm9jaGlwIHN3aXRjaCBoYXJkd2FyZSBhbmQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VLiBUaGVyZWZvcmUsIHRoZSBjb2RlIGlzIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAzOjMzOjA3LjY1MzAxNTE5N1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMxNzMyOTgyNDE1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBtb2RpZmllZCBjb2RlIGlzIHBhcnQgb2YgdGhlIE1pY3JvY2hpcCBWQ0FQIChWZXJzYXRpbGUgQ29udGVudC1Bd2FyZSBQcm9jZXNzb3IpIGxpYnJhcnksIHdoaWNoIGlzIHVzZWQgYnkgdGhlIExBTjk2NlggYW5kIFNQQVJYNSBoYXJkd2FyZSBzd2l0Y2ggZHJpdmVycy4gVGhlc2UgZHJpdmVycyByZXF1aXJlIHBoeXNpY2FsIE1pY3JvY2hpcCBzd2l0Y2ggaGFyZHdhcmUgYW5kIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVS4gVGhlcmVmb3JlLCB0aGUgY29kZSBpcyB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAzOjMzOjA3LjY1MzAyNjc0NloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjkwODk3OTc3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYjkxYTBiZWRjYjI1ZDA4OTc1NDM2ZjA3NmZhMzczNjExOWRiNjRiNVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVHVlIEp1bCAyOCAwMzozMzowNSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuY1xcbmluZGV4IGZmODZjZGUxMWEzMmM3Li4wY2MwZGI3YjY0MWJmYiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuY1xcbkBAIC0yNDI3LDE4ICsyNDI3LDIxIEBAIHN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSlcXG4gXFxuIFxcdGVyciA9IHZjYXBfcmVhZF9ydWxlKHJpKTtcXG4gXFx0aWYgKGVycilcXG4tXFx0XFx0cmV0dXJuIEVSUl9QVFIoZXJyKTtcXG4rXFx0XFx0Z290byBlcnI7XFxuIFxcbiBcXHRlcnIgPSB2Y2FwX2RlY29kZV9rZXlzZXQocmkpO1xcbiBcXHRpZiAoZXJyKVxcbi1cXHRcXHRyZXR1cm4gRVJSX1BUUihlcnIpO1xcbitcXHRcXHRnb3RvIGVycjtcXG4gXFxuIFxcdGVyciA9IHZjYXBfZGVjb2RlX2FjdGlvbnNldChyaSk7XFxuIFxcdGlmIChlcnIpXFxuLVxcdFxcdHJldHVybiBFUlJfUFRSKGVycik7XFxuK1xcdFxcdGdvdG8gZXJyO1xcbiBcXG4gb3V0OlxcbiBcXHRyZXR1cm4gXFx1MDAyNnJpLVxcdTAwM2VkYXRhO1xcbitlcnI6XFxuK1xcdHZjYXBfZnJlZV9ydWxlKFxcdTAwMjZyaS1cXHUwMDNlZGF0YSk7XFxuK1xcdHJldHVybiBFUlJfUFRSKGVycik7XFxuIH1cXG4gXFxuIHN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZ2V0X3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsIHUzMiBpZClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDM6MzM6MDguMzQ0OTM1NzIyWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MzEwNDEwNTYzMDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIG1vZGlmaWVkIGNvZGUgaXMgcGFydCBvZiB0aGUgTWljcm9jaGlwIFZDQVAgKFZlcnNhdGlsZSBDb250ZW50LUF3YXJlIFByb2Nlc3NvcikgbGlicmFyeSwgd2hpY2ggaXMgdXNlZCBieSB0aGUgTEFOOTY2WCBhbmQgU1BBUlg1IGhhcmR3YXJlIHN3aXRjaCBkcml2ZXJzLiBUaGVzZSBkcml2ZXJzIHJlcXVpcmUgcGh5c2ljYWwgTWljcm9jaGlwIHN3aXRjaCBoYXJkd2FyZSBhbmQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VLiBUaGVyZWZvcmUsIHRoZSBjb2RlIGlzIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYjkxYTBiZWRjYjI1ZDA4OTc1NDM2ZjA3NmZhMzczNjExOWRiNjRiNVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVsIDI4IDAzOjMzOjA1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmNcbmluZGV4IGZmODZjZGUxMWEzMmM3Li4wY2MwZGI3YjY0MWJmYiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmNcbkBAIC0yNDI3LDE4ICsyNDI3LDIxIEBAIHN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSlcbiBcbiBcdGVyciA9IHZjYXBfcmVhZF9ydWxlKHJpKTtcbiBcdGlmIChlcnIpXG4tXHRcdHJldHVybiBFUlJfUFRSKGVycik7XG4rXHRcdGdvdG8gZXJyO1xuIFxuIFx0ZXJyID0gdmNhcF9kZWNvZGVfa2V5c2V0KHJpKTtcbiBcdGlmIChlcnIpXG4tXHRcdHJldHVybiBFUlJfUFRSKGVycik7XG4rXHRcdGdvdG8gZXJyO1xuIFxuIFx0ZXJyID0gdmNhcF9kZWNvZGVfYWN0aW9uc2V0KHJpKTtcbiBcdGlmIChlcnIpXG4tXHRcdHJldHVybiBFUlJfUFRSKGVycik7XG4rXHRcdGdvdG8gZXJyO1xuIFxuIG91dDpcbiBcdHJldHVybiBcdTAwMjZyaS1cdTAwM2VkYXRhO1xuK2VycjpcbitcdHZjYXBfZnJlZV9ydWxlKFx1MDAyNnJpLVx1MDAzZWRhdGEpO1xuK1x0cmV0dXJuIEVSUl9QVFIoZXJyKTtcbiB9XG4gXG4gc3RydWN0IHZjYXBfcnVsZSAqdmNhcF9nZXRfcnVsZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCwgdTMyIGlkKVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDM6MzM6MDguMzQ0OTM3OTAyWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTE2MTEwNzMwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBOZXR3b3JrIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEkndmUgZ290IHRoaXMgcGF0Y2ggaGVyZSB0aGF0J3MgdHdlYWtpbmcgdGhlIGB2Y2FwX2RlY29kZV9ydWxlYCBmdW5jdGlvbiB3aXRoaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmNgLiBJdCBsb29rcyBsaWtlIHRoZSBjaGFuZ2UgaXMgdG8gY2FsbCBgdmNhcF9mcmVlX3J1bGUoXHUwMDI2cmktXHUwMDNlZGF0YSlgIHdoZW4gYW4gZXJyb3Igb2NjdXJzLCBpbnN0ZWFkIG9mIGp1c3QgcmV0dXJuaW5nIGFuIGVycm9yIHBvaW50ZXIuIFNlZW1zIGxpa2UgYSByZWFzb25hYmxlIGJ1ZyBmaXgsIGJ1dCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dC5cblxuTXkgaW1tZWRpYXRlIHRob3VnaHQgaXM6IGNhbiBJIGV2ZW4gdGVzdCB0aGlzIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/IElzIHRoaXMgZHJpdmVyIHJlbGlhbnQgb24gc3BlY2lmaWMgaGFyZHdhcmU/IEl0J3MgYSBNaWNyb2NoaXAgVkNBUCBBUEksIHdoaWNoIGltbWVkaWF0ZWx5IG1ha2VzIG1lIHRoaW5rIGl0IGNvdWxkIGJlIHRpZWQgdG8gcGh5c2ljYWwgaGFyZHdhcmUuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIEkgY2FuIHJlcHJvZHVjZSB0aGlzIGNvbmRpdGlvbiBvciBpZiBJJ2xsIG5lZWQgYSB0ZXN0IHNldHVwIHdpdGggYSBzcGVjaWZpYyBwaWVjZSBvZiBlcXVpcG1lbnQuXG5cbk15IG5leHQgc3RlcCBpcyB0byBkaXZlIGludG8gdGhlIEtjb25maWcgZm9yIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcGAgdG8gZ2V0IGEgYmV0dGVyIHNlbnNlIG9mIGl0cyBkZXBlbmRlbmNpZXMgYW5kIGlmIGFueSBzcGVjaWZpYyBoYXJkd2FyZSBpcyByZXF1aXJlZC4gS25vd2luZyB0aGF0IHdpbGwgdGVsbCBtZSBpZiB0aGUgcGF0Y2ggaXMgcmVsZXZhbnQgaW4gYSBicm9hZGVyIGNvbnRleHQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxOTgsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNTEsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMzozMzoxMy41MDYwNTAzMThaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODg5NDE2NjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidmNhcF9kZWNvZGVfcnVsZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM9MjQxMz1FWFBPUlRfU1lNQk9MX0dQTCh2Y2FwX2ZyZWVfcnVsZSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0MTUtLyogRGVjb2RlIGEgcnVsZSBmcm9tIHRoZSBWQ0FQIGNhY2hlIGFuZCByZXR1cm4gYSBjb3B5ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYzoyNDE2OnN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0MTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYz0yNDQ3PXN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZ2V0X3J1bGUoc3RydWN0IHZjYXBfY29udHJvbCAqdmN0cmwsIHUzMiBpZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQ2MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjI0NjE6XFx0cnVsZSA9IHZjYXBfZGVjb2RlX3J1bGUoZWxlbSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDYyLVxcdHZjYXBfdW5sb2NrKGVsZW0tXFx1MDAzZWFkbWluKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDM6MzM6MTMuNTk0OTk3MDQ2WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA5NjIyNzg3NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDpcblxuKipJbnZlc3RpZ2F0aW5nIGB2Y2FwX2dldF9ydWxlYCBhbmQgYHZjYXBfZGVjb2RlX3J1bGVgIFVzYWdlKipcblxuT2theSwgSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiBob3cgdGhlc2UgZnVuY3Rpb25zLCBgdmNhcF9nZXRfcnVsZWAgYW5kIGB2Y2FwX2RlY29kZV9ydWxlYCwgYXJlIGJlaW5nIHVzZWQuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGtub3cgd2hlcmUgdGhleSdyZSBiZWluZyAqY2FsbGVkKiB3aXRoaW4gdGhlIGNvZGViYXNlLiBJJ20gZ29pbmcgdG8gc3RhcnQgYnkgcnVubmluZyBzb21lIHF1aWNrIHNlYXJjaGVzIHdpdGhpbiB0aGUgcHJvamVjdC4gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBleGFjdCBmdW5jdGlvbiBuYW1lcywgYWNjb3VudGluZyBmb3IgYW55IHBvdGVudGlhbCBkaWZmZXJlbmNlcyBpbiBjYXBpdGFsaXphdGlvbiBvciBuYW1pbmcgY29udmVudGlvbnMsIGRlcGVuZGluZyBvbiBob3cgdGhleSdyZSBpbXBsZW1lbnRlZC4gSSdtIHRoaW5raW5nIEknbGwgc3RhcnQgd2l0aCBhIHN0cmFpZ2h0Zm9yd2FyZCBncmVwIG9yIGZpbmQgY29tbWFuZCBhY3Jvc3MgdGhlIHJlbGV2YW50IGRpcmVjdG9yaWVzLiBUaGlzIHNob3VsZCBnaXZlIG1lIGEgbGlzdCBvZiBhbGwgaW5zdGFuY2VzIHdoZXJlIHRoZXNlIGZ1bmN0aW9ucyBhcmUgZGlyZWN0bHkgaW52b2tlZC4gRnJvbSB0aGVyZSwgSSBjYW4gYmVnaW4gdG8gdW5kZXJzdGFuZCB0aGVpciBjb250ZXh0LCB3aG8gY2FsbHMgdGhlbSwgYW5kIHdoeSwgYW5kIG1hcCBhbGwgdXNhZ2Ugb3V0LiBJJ2xsIG5lZWQgdG8gYmUgbWluZGZ1bCBvZiBhbnkgaW5kaXJlY3QgY2FsbHMgYXMgd2VsbC4gUGVyaGFwcyB0aGVyZSBhcmUgd3JhcHBlcnMgb3IgbWFjcm9zIG9ic2N1cmluZyB0aGUgZGlyZWN0IGNhbGw/IFRob3NlIHdpbGwgbmVlZCB0byBiZSBpZGVudGlmaWVkIGFuZCBoYW5kbGVkIHRvby4gVGhpcyBzaG91bGQgZ2l2ZSBtZSBhIHNvbGlkIHN0YXJ0aW5nIHBvaW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyOTU1LCJPdXRwdXRUb2tlbnMiOjI2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDM6MzM6MTYuNjkxMjI4NzAzWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM5NDY0MzMyMjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidmNhcF9kZWNvZGVfcnVsZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYz0yNDEzPUVYUE9SVF9TWU1CT0xfR1BMKHZjYXBfZnJlZV9ydWxlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQxNS0vKiBEZWNvZGUgYSBydWxlIGZyb20gdGhlIFZDQVAgY2FjaGUgYW5kIHJldHVybiBhIGNvcHkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jOjI0MTY6c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9kZWNvZGVfcnVsZShzdHJ1Y3QgdmNhcF9ydWxlX2ludGVybmFsICplbGVtKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmMtMjQxNy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jPTI0NDc9c3RydWN0IHZjYXBfcnVsZSAqdmNhcF9nZXRfcnVsZShzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCwgdTMyIGlkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGkuYy0yNDYwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpLmM6MjQ2MTpcXHRydWxlID0gdmNhcF9kZWNvZGVfcnVsZShlbGVtKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaS5jLTI0NjItXFx0dmNhcF91bmxvY2soZWxlbS1cXHUwMDNlYWRtaW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jPTI5Mj1zdGF0aWMgaW50IHZjYXBfc2hvd19hZG1pbihzdHJ1Y3QgdmNhcF9jb250cm9sICp2Y3RybCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL3ZjYXBfYXBpX2RlYnVnZnMuYy0zMDEtXFx0bGlzdF9mb3JfZWFjaF9lbnRyeShlbGVtLCBcXHUwMDI2YWRtaW4tXFx1MDAzZXJ1bGVzLCBsaXN0KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jOjMwMjpcXHRcXHR2cnVsZSA9IHZjYXBfZGVjb2RlX3J1bGUoZWxlbSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfZGVidWdmcy5jLTMwMy1cXHRcXHRpZiAoSVNfRVJSKHZydWxlKSkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oPTEyMj1pbnQgdmNhcF9ydWxlX2dldF9rZXlzZXRzKHN0cnVjdCB2Y2FwX3J1bGVfaW50ZXJuYWwgKnJpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oLTEyNC0vKiBEZWNvZGUgYSBydWxlIGZyb20gdGhlIFZDQVAgY2FjaGUgYW5kIHJldHVybiBhIGNvcHkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC92Y2FwX2FwaV9wcml2YXRlLmg6MTI1OnN0cnVjdCB2Y2FwX3J1bGUgKnZjYXBfZGVjb2RlX3J1bGUoc3RydWN0IHZjYXBfcnVsZV9pbnRlcm5hbCAqZWxlbSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvdmNhcF9hcGlfcHJpdmF0ZS5oLTEyNi1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDM6MzM6MjAuNjM3Njc1MDYzWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzMxMDk0MTg5MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgbXlzZWxmOlxuXG4qKktjb25maWcgRGl2ZSBmb3IgVkNBUCBFdGhlcm5ldCBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgVkNBUCBFdGhlcm5ldCBkcml2ZXIuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIGp1bXAgaW50byB0aGUgYEtjb25maWdgIGZpbGVzLiBUaGF0J3Mgd2hlcmUgYWxsIHRoZSBidWlsZC10aW1lIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgYXJlIGRlZmluZWQgZm9yIGEgTGludXgga2VybmVsLiBTcGVjaWZpY2FsbHksIEkga25vdyB0aGUgcGF0aCB3aWxsIGJlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcGAuIEkgbmVlZCB0byBzZWUgd2hhdCBrbm9icyBhcmUgYXZhaWxhYmxlIGZvciB0aGlzIHBhcnRpY3VsYXIgZHJpdmVyLiBJJ20gbG9va2luZyBmb3IgdGhpbmdzIGxpa2Ugd2hldGhlciBpdCdzIGVuYWJsZWQgYnkgZGVmYXVsdCwgaWYgdGhlcmUgYXJlIGRpZmZlcmVudCBQSFkgb3B0aW9ucywgZGVidWdnaW5nIGZsYWdzLCBpbnRlcnJ1cHQgbW9kZXMuLi4gYWxsIHRoZSB1c3VhbCBzdXNwZWN0cy4gVGltZSB0byBnZXQgdGhhdCBLY29uZmlnIG9wZW4gYW5kIHN0YXJ0IHBhcnNpbmcgdGhlIGRlcGVuZGVuY2llcyBhbmQgaGVscCB0ZXh0cy4gSSBrbm93IGV4YWN0bHkgaG93IHRvIGludGVycHJldCB0aGUgc3ludGF4LCBzbyB0aGlzIHNob3VsZCBiZSBhIHF1aWNrIHByb2Nlc3Mgb2YgZGlzY292ZXJ5LiBMZXQncyBzZWUgd2hhdCB3ZSd2ZSBnb3QhXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM5MTcsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMzozMzoyMy45NDg2MTk3NDVaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ1ODIzODU3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBWQ0FQXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvS2NvbmZpZz02PWlmIE5FVF9WRU5ET1JfTUlDUk9DSElQXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3ZjYXAvS2NvbmZpZy03LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWc6ODpjb25maWcgVkNBUFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWctOS1cXHRib29sIFxcXCJWQ0FQIChWZXJzYXRpbGUgQ29udGVudC1Bd2FyZSBQcm9jZXNzb3IpIGxpYnJhcnlcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvdmNhcC9LY29uZmlnLTM4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWc6Mzk6Y29uZmlnIFZDQVBfS1VOSVRfVEVTVFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC92Y2FwL0tjb25maWctNDAtXFx0Ym9vbCBcXFwiS1VuaXQgdGVzdCBmb3IgVkNBUCBsaWJyYXJ5XFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAzOjMzOjI0LjA5NDQ0OTI0MloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3NDA2NzgzNjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW5uZXIgbW9ub2xvZ3VlOlxuXG4qKlZDQVAgTGlicmFyeSBBbmFseXNpcyoqXG5cbkFscmlnaHQsIEknbSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgaXQncyBhIGxpYnJhcnkgc3BlY2lmaWNhbGx5IGZvciBNaWNyb2NoaXAncyBWQ0FQLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJPa2F5LCBpbnRlcmVzdGluZy4gQnV0IGlzIHRoaXMgYWN0dWFsbHkgKmRvaW5nKiBhbnl0aGluZyB0aGF0J3MgZW11bGF0YWJsZT9cIiBUaGF0J3MgYWx3YXlzIG15IGZpcnN0IHF1ZXN0aW9uIHdoZW4gSSdtIGFzc2Vzc2luZyBzb21ldGhpbmcgbGlrZSB0aGlzLiBXaGF0IGFyZSBpdHMgZGVwZW5kZW5jaWVzPyBXaGF0IGRyaXZlcnMgdXRpbGl6ZSBpdD8gV2hlcmUgZG9lcyBpdCBmaXQgaW50byB0aGUgYmlnZ2VyIHBpY3R1cmU/IElmIGl0J3MgdXNlZCBpbiBzb21lIGNyaXRpY2FsIGVtdWxhdGFibGUgZHJpdmVyLCB0aGVuIGl0J3Mgd29ydGggYSBkZWVwIGRpdmUuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBleHRlbnQgb2YgaXRzIGZvb3RwcmludC5cblxuU28sIGxldCdzIGN1dCB0byB0aGUgY2hhc2UuIEkgbmVlZCB0byBxdWlja2x5IGlkZW50aWZ5IHdoaWNoIGRyaXZlcnMsIG1vZHVsZXMsIG9yIHN1YnN5c3RlbXMgYWN0dWFsbHkgKnNlbGVjdCogb3IgbWFrZSB1c2Ugb2YgYFZDQVBgLiBUaGF0J3MgdGhlIGtleS4gS25vd2luZyB0aGUgc2VsZWN0aW9uIGNyaXRlcmlhIHdpbGwgc2hvdyBtZSBpdHMgZGVwZW5kZW5jaWVzIGFuZCBob3cgaXQncyBiZWluZyB1c2VkLiBJIHdpbGwgbG9vayBmb3IgYW55IGNvZGUgdGhhdCBlbmFibGVzIG9yIHJlZmVyZW5jZXMgVkNBUCBkaXJlY3RseS4gVGhlbiBJJ2xsIHN0YXJ0IGJ1aWxkaW5nIGEgbWVudGFsIG1vZGVsIG9mIGhvdyBpdCBmdW5jdGlvbnMgaW4gdGhlIHN5c3RlbS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDM2NSwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAzOjMzOjI3LjgzNTEzMTk3NloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTU1NDE5NTI3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNlbGVjdCBWQ0FQXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvS2NvbmZpZz0xPWNvbmZpZyBMQU45NjZYX1NXSVRDSFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvS2NvbmZpZy05LVxcdHNlbGVjdCBQQUdFX1BPT0xcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9LY29uZmlnOjEwOlxcdHNlbGVjdCBWQ0FQXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvS2NvbmZpZy0xMS1cXHRzZWxlY3QgRkRNQVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9LY29uZmlnPTE9Y29uZmlnIFNQQVJYNV9TV0lUQ0hcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvS2NvbmZpZy0xMS1cXHRzZWxlY3QgUkVTRVRfQ09OVFJPTExFUlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvS2NvbmZpZzoxMjpcXHRzZWxlY3QgVkNBUFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvS2NvbmZpZy0xMy1cXHRzZWxlY3QgRkRNQVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMzozMzoyNy45OTA1NTk4MzNaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDc4OTg4OTQxMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBIYXJkd2FyZSBTd2l0Y2ggQ29kZSBBY2Nlc3NpYmlsaXR5KipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgY29kZSB1c2VkIGJ5IGJvdGggYExBTjk2NlhfU1dJVENIYCBhbmQgYFNQQVJYNV9TV0lUQ0hgIOKAkyB0aGVzZSBhcmUgZGVmaW5pdGVseSBoYXJkd2FyZSBzd2l0Y2hlcywgc3BlY2lmaWNhbGx5IE1pY3JvY2hpcCdzIFNwYXJ4NSBhbmQgTEFOOTY2eC4gVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiBpcywgYXJlIHRoZXkgZW11bGF0ZWQgd2l0aGluIFFFTVU/IE5vLCB0aGF0J3MgYSBkZWFkIGVuZC4gSG93ZXZlciwgSSBzZWUgYFZDQVBfS1VOSVRfVEVTVGAgaW4gdGhlIG1peCwgYW5kIG15IGZpcnN0IGluc3RpbmN0IGlzIHRvIHRoaW5rIGZ1enppbmchIENhbiBJIHJlYWNoIGl0IHZpYSBLVW5pdD8gQnV0IHdhaXQsIEtVbml0IHRlc3RzIGFyZW4ndCB0eXBpY2FsbHkgZnV6emVkIGJ5IHN5emthbGxlci5cblxuUmlnaHQsIHNvIHRoYXQgbGVhdmVzIG1lIHRoaW5raW5nLi4uIGhvdyBlbHNlIGNhbiBJIHRyaWdnZXIgdGhpcyBjb2RlPyBJdCdzIGEgaGFyZHdhcmUgc3dpdGNoIGRyaXZlciwgd2hpY2ggbWVhbnMgSSdtIGdvaW5nIHRvIG5lZWQgdGhlIGFjdHVhbCBwaHlzaWNhbCBoYXJkd2FyZSB0byB0ZXN0IGl0IGVmZmVjdGl2ZWx5LlxuXG5HaXZlbiB0aGF0IGl0IHJlbGllcyBvbiBoYXJkd2FyZSwgSSBuZWVkIHRvIGNoZWNrIHRoZSBkZXBlbmRlbmNpZXMgb2YgYExBTjk2NlhfU1dJVENIYCBhbmQgYFNQQVJYNV9TV0lUQ0hgLCBtYXliZSBJIGNhbiBmaW5kIHNvbWUgb3RoZXIgY29kZSByZWxhdGVkIHRvIGl0IHRoYXQncyBtb3JlIGVhc2lseSB0ZXN0ZWQsIG9yIHBvdGVudGlhbGx5IGEgYmFja2Rvb3IgdG8gdHJpZ2dlciBhbiBpbnRlcmFjdGlvbiB3aXRoIHRoZSBoYXJkd2FyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDkwMCwiT3V0cHV0VG9rZW5zIjo0NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMzozMzozMi43ODA0NTMxMzZaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExODEwNjEwNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTEFOOTY2WF9TV0lUQ0hcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9LY29uZmlnOjE6Y29uZmlnIExBTjk2NlhfU1dJVENIXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvS2NvbmZpZy0yLVxcdHRyaXN0YXRlIFxcXCJMYW45NjZ4IHN3aXRjaCBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAzOjMzOjMyLjg5ODU2NTY4M1oiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDE4OTAyMDA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipTUEFSWDVfU1dJVENIIENvbmZpZ3VyYXRpb24gQXNzZXNzbWVudCoqXG5cbk9rYXksIHNvIEknbSB0aGlua2luZywgXCJMZXQncyBkaWcgaW50byB0aGUgYGNvbmZpZyBTUEFSWDVfU1dJVENIYCBzZXR0aW5nLlwiIEl0J3MgZnVuZGFtZW50YWwuIE15IGluaXRpYWwgcmVhY3Rpb24gaXMgdGhhdCB0aGlzIHdhcnJhbnRzIGEgZGVlcCBkaXZlLiBJJ20gYXNzdW1pbmcsIGdpdmVuIG15IGV4cGVyaWVuY2UsIHRoYXQgdGhpcyBzaW5nbGUgZmxhZyBjYW4gaGF2ZSBmYXItcmVhY2hpbmcgaW1wbGljYXRpb25zIGFjcm9zcyB0aGUgZW50aXJlIFNQQVJYNSBhcmNoaXRlY3R1cmUuIEl0IGxpa2VseSBpbmZsdWVuY2VzIGNvcmUgYmVoYXZpb3JzIOKAkyB0aGluZ3MgbGlrZSByb3V0aW5nIHByb3RvY29scywgZGF0YSBwbGFuZSBmb3J3YXJkaW5nIGRlY2lzaW9ucywgYW5kIHBvdGVudGlhbGx5IGV2ZW4gcG93ZXIgbWFuYWdlbWVudCBpZiB3ZSdyZSBkZWFsaW5nIHdpdGggaGFyZHdhcmUtbGV2ZWwgc3dpdGNoZXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGV4YWN0bHkgd2hhdCB0aGlzIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIGNvbnRyb2xzIGF0IGEgZ3JhbnVsYXIgbGV2ZWwuIEkgaW1tZWRpYXRlbHkgYmVnaW4gdG8gY29uc2lkZXIgd2hlcmUgdG8gbG9vayBmb3IgZG9jdW1lbnRhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NTQxMSwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAzOjMzOjM1LjkxNzQ3MDgxMloiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODgyMjMzNTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFNQQVJYNV9TV0lUQ0hcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvS2NvbmZpZzoxOmNvbmZpZyBTUEFSWDVfU1dJVENIXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9LY29uZmlnLTItXFx0dHJpc3RhdGUgXFxcIlNwYXJ4NSBzd2l0Y2ggZHJpdmVyXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMzozMzozNi4wMDU2OTg4MVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzgwMjY2NTgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFzc2Vzc2luZyBGdXp6aW5nIEZlYXNpYmlsaXR5KipcblxuT2theSwgc28gSSd2ZSBnb3QgdHdvIHN3aXRjaCBkcml2ZXIgY29tcG9uZW50cyBoZXJlIGZvciBNaWNyb2NoaXAgaGFyZHdhcmUuIFRoZSBrZXkgdGhpbmcgSSdtIHBpY2tpbmcgdXAgb24gaXMgdGhlIG5lZWQgZm9yICpwaHlzaWNhbCogaGFyZHdhcmUuIE5vIGVtdWxhdGlvbiwgbm8gUUVNVSwgbm90aGluZyBsaWtlIHRoYXQgd2lsbCBjdXQgaXQuIFRoZXNlIGRyaXZlcnMgYXJlIGludHJpbnNpY2FsbHkgdGllZCB0byB0aGUgcmVhbCB3b3JsZCwgdG8gcmVhbCBNaWNyb2NoaXAgc2lsaWNvbi4gVGhhdCBpbW1lZGlhdGVseSB0ZWxscyBtZSB0aGlzIGNvZGUgaXNuJ3QgZ29pbmcgdG8gYmUgcmVhY2hhYmxlLCBvciB0ZXN0YWJsZSwgd2l0aGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIEdpdmVuIHRob3NlIGNvbnN0cmFpbnRzLCBhbmQgdW5kZXJzdGFuZGluZyB0aGUgY29yZSByZXF1aXJlbWVudHMgZm9yIGVmZmVjdGl2ZSBmdXp6aW5nLCBJJ20gZ29pbmcgdG8gaGF2ZSB0byBtYXJrIHRoaXMgYXMgYSBcIm5vLWdvXCIgZm9yIG5vdy4gVGhlIHNtYXJ0IGNob2ljZSBpcyB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU2ODgsIk91dHB1dFRva2VucyI6MTAzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDM6MzM6MzkuMzg1OTY4NTgxWiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjIxNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgbW9kaWZpZWQgY29kZSBpcyBwYXJ0IG9mIHRoZSBNaWNyb2NoaXAgVkNBUCAoVmVyc2F0aWxlIENvbnRlbnQtQXdhcmUgUHJvY2Vzc29yKSBsaWJyYXJ5LCB3aGljaCBpcyB1c2VkIGJ5IHRoZSBMQU45NjZYIGFuZCBTUEFSWDUgaGFyZHdhcmUgc3dpdGNoIGRyaXZlcnMuIFRoZXNlIGRyaXZlcnMgcmVxdWlyZSBwaHlzaWNhbCBNaWNyb2NoaXAgc3dpdGNoIGhhcmR3YXJlIGFuZCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUuIFRoZXJlZm9yZSwgdGhlIGNvZGUgaXMgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBtb2RpZmllZCBjb2RlIGlzIHBhcnQgb2YgdGhlIE1pY3JvY2hpcCBWQ0FQIChWZXJzYXRpbGUgQ29udGVudC1Bd2FyZSBQcm9jZXNzb3IpIGxpYnJhcnksIHdoaWNoIGlzIHVzZWQgYnkgdGhlIExBTjk2NlggYW5kIFNQQVJYNSBoYXJkd2FyZSBzd2l0Y2ggZHJpdmVycy4gVGhlc2UgZHJpdmVycyByZXF1aXJlIHBoeXNpY2FsIE1pY3JvY2hpcCBzd2l0Y2ggaGFyZHdhcmUgYW5kIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVS4gVGhlcmVmb3JlLCB0aGUgY29kZSBpcyB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow86flx[1] Phase: Running StartedAt: 2026-07-28 03:33:50 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow86flx[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-28 03:33:50 +0000 UTC FinishedAt: 2026-07-28 03:33:57 +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,}