Name: series-workflowk55pp Phase: Failed StartedAt: 2026-07-17 03:51:03 +0000 UTC FinishedAt: 2026-07-17 04:05:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk55pp[0] Phase: Succeeded StartedAt: 2026-07-17 03:51:04 +0000 UTC FinishedAt: 2026-07-17 04:05:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk55pp[0].run-triage Phase: Succeeded StartedAt: 2026-07-17 03:51:04 +0000 UTC FinishedAt: 2026-07-17 04:05:39 +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+CgkJCTx0ZD4yMDI2LzA3LzE3IDA0OjA0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMmsgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSS9BSEIgZHJpdmVyIGZvciBRdWFsY29tbSBXaS1GaSA3IGRldmljZXMuIFNpbmNlIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBoYXJkd2FyZSBpbiB0aGUga2VybmVsIChsaWtlIG1hYzgwMjExX2h3c2ltIGZvciBnZW5lcmljIG1hYzgwMjExKSwgdGhlIGRyaXZlciB3aWxsIGZhaWwgdG8gcHJvYmUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUgd2l0aG91dCB0aGUgcGh5c2ljYWwgaGFyZHdhcmUuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaW4gYGF0aDEya19ic3NfYXNzb2NgIGlzIHVucmVhY2hhYmxlIGFuZCBjYW5ub3QgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwNDowNDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGUyNWExOTkyMzExNzRkYjg1OGU4YTQwZTdlZjY2OGQ0OTUyZmM2NWFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAxNyAwNDowNDo0OSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuY1xuaW5kZXggMTYzMzk0NjljMjRjZDguLjcwNjEwNDE2ODY1MDhhIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuY1xuQEAgLTM5ODUsNiAmIzQzOzM5ODUsMTcgQEAgc3RhdGljIHZvaWQgYXRoMTJrX2Jzc19hc3NvYyhzdHJ1Y3QgYXRoMTJrICphcixcbiBcdFx0YXRoMTJrX3dhcm4oYXItXHUwMDNlYWIsIFwmIzM0O2ZhaWxlZCB0byBzZXQgdmRldiAlaSBPQlNTIFBEIHBhcmFtZXRlcnM6ICVkXFxuXCYjMzQ7LFxuIFx0XHRcdCAgICBhcnZpZi1cdTAwM2V2ZGV2X2lkLCByZXQpO1xuIFxuJiM0MztcdGlmIChhci1cdTAwM2VhYi1cdTAwM2Vod19wYXJhbXMtXHUwMDNlc3VwcG9ydHNfc3RhX3BzIFx1MDAyNlx1MDAyNlxuJiM0MztcdCAgICBhaHZpZi1cdTAwM2V2ZGV2X3R5cGUgPT0gV01JX1ZERVZfVFlQRV9TVEEgXHUwMDI2XHUwMDI2XG4mIzQzO1x0ICAgIGFodmlmLVx1MDAzZXZkZXZfc3VidHlwZSA9PSBXTUlfVkRFVl9TVUJUWVBFX05PTkUpIHtcbiYjNDM7XHRcdHJldCA9IGF0aDEya193bWlfdmRldl9zZXRfcGFyYW1fY21kKGFyLCBhcnZpZi1cdTAwM2V2ZGV2X2lkLFxuJiM0MztcdFx0XHRcdFx0XHQgICAgV01JX1ZERVZfUEFSQU1fRFRJTV9QT0xJQ1ksXG4mIzQzO1x0XHRcdFx0XHRcdCAgICBXTUlfRFRJTV9QT0xJQ1lfU1RJQ0spO1xuJiM0MztcdFx0aWYgKHJldClcbiYjNDM7XHRcdFx0YXRoMTJrX3dhcm4oYXItXHUwMDNlYWIsIFwmIzM0O2ZhaWxlZCB0byBzZXQgdmRldiAlZCBzdGljayBEVElNIHBvbGljeTogJWRcXG5cJiMzNDssXG4mIzQzO1x0XHRcdFx0ICAgIGFydmlmLVx1MDAzZXZkZXZfaWQsIHJldCk7XG4mIzQzO1x0fVxuJiM0MztcbiBcdGlmICh0ZXN0X2JpdChXTUlfVExWX1NFUlZJQ0VfMTFEX09GRkxPQUQsIGFyLVx1MDAzZWFiLVx1MDAzZXdtaV9hYi5zdmNfbWFwKSBcdTAwMjZcdTAwMjZcbiBcdCAgICBhaHZpZi1cdTAwM2V2ZGV2X3R5cGUgPT0gV01JX1ZERVZfVFlQRV9TVEEgXHUwMDI2XHUwMDI2XG4gXHQgICAgYWh2aWYtXHUwMDNldmRldl9zdWJ0eXBlID09IFdNSV9WREVWX1NVQlRZUEVfTk9ORSlcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuaFxuaW5kZXggNTFmMzQyNmUxZmNkOTIuLjAxNDVjYzQ3Nzk0NGZjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuaFxuQEAgLTIzMzAsNiAmIzQzOzIzMzAsMTMgQEAgZW51bSB3bWlfc2xvdF90aW1lIHtcbiBcdFdNSV9WREVWX1NMT1RfVElNRV9TSE9SVCA9IDIsXG4gfTtcbiBcbiYjNDM7ZW51bSB3bWlfZHRpbV9wb2xpY3kge1xuJiM0MztcdFdNSV9EVElNX1BPTElDWV9JR05PUkUgPSAxLFxuJiM0MztcdFdNSV9EVElNX1BPTElDWV9OT1JNQUwgPSAyLFxuJiM0MztcdFdNSV9EVElNX1BPTElDWV9TVElDSyAgPSAzLFxuJiM0MztcdFdNSV9EVElNX1BPTElDWV9BVVRPICAgPSA0LFxuJiM0Mzt9O1xuJiM0MztcbiBlbnVtIHdtaV9wcmVhbWJsZSB7XG4gXHRXTUlfVkRFVl9QUkVBTUJMRV9MT05HID0gMSxcbiBcdFdNSV9WREVWX1BSRUFNQkxFX1NIT1JUID0gMixcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwNDowNDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYXRoMTJrIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kvQUhCIGRyaXZlciBmb3IgUXVhbGNvbW0gV2ktRmkgNyBkZXZpY2VzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gdGhlIGtlcm5lbCAobGlrZSBtYWM4MDIxMV9od3NpbSBmb3IgZ2VuZXJpYyBtYWM4MDIxMSksIHRoZSBkcml2ZXIgd2lsbCBmYWlsIHRvIHByb2JlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VIHdpdGhvdXQgdGhlIHBoeXNpY2FsIGhhcmR3YXJlLiBDb25zZXF1ZW50bHksIHRoZSBtb2RpZmllZCBjb2RlIGluIGBhdGgxMmtfYnNzX2Fzc29jYCBpcyB1bnJlYWNoYWJsZSBhbmQgY2Fubm90IGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGUyNWExOTkyMzExNzRkYjg1OGU4YTQwZTdlZjY2OGQ0OTUyZmM2NWEKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEp1bCAxNyAwNDowNDo0OSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jCmluZGV4IDE2MzM5NDY5YzI0Y2Q4Li43MDYxMDQxNjg2NTA4YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jCkBAIC0zOTg1LDYgJiM0MzszOTg1LDE3IEBAIHN0YXRpYyB2b2lkIGF0aDEya19ic3NfYXNzb2Moc3RydWN0IGF0aDEyayAqYXIsCiAJCWF0aDEya193YXJuKGFyLSZndDthYiwgJiMzNDtmYWlsZWQgdG8gc2V0IHZkZXYgJWkgT0JTUyBQRCBwYXJhbWV0ZXJzOiAlZFxuJiMzNDssCiAJCQkgICAgYXJ2aWYtJmd0O3ZkZXZfaWQsIHJldCk7CiAKJiM0MzsJaWYgKGFyLSZndDthYi0mZ3Q7aHdfcGFyYW1zLSZndDtzdXBwb3J0c19zdGFfcHMgJmFtcDsmYW1wOwomIzQzOwkgICAgYWh2aWYtJmd0O3ZkZXZfdHlwZSA9PSBXTUlfVkRFVl9UWVBFX1NUQSAmYW1wOyZhbXA7CiYjNDM7CSAgICBhaHZpZi0mZ3Q7dmRldl9zdWJ0eXBlID09IFdNSV9WREVWX1NVQlRZUEVfTk9ORSkgewomIzQzOwkJcmV0ID0gYXRoMTJrX3dtaV92ZGV2X3NldF9wYXJhbV9jbWQoYXIsIGFydmlmLSZndDt2ZGV2X2lkLAomIzQzOwkJCQkJCSAgICBXTUlfVkRFVl9QQVJBTV9EVElNX1BPTElDWSwKJiM0MzsJCQkJCQkgICAgV01JX0RUSU1fUE9MSUNZX1NUSUNLKTsKJiM0MzsJCWlmIChyZXQpCiYjNDM7CQkJYXRoMTJrX3dhcm4oYXItJmd0O2FiLCAmIzM0O2ZhaWxlZCB0byBzZXQgdmRldiAlZCBzdGljayBEVElNIHBvbGljeTogJWRcbiYjMzQ7LAomIzQzOwkJCQkgICAgYXJ2aWYtJmd0O3ZkZXZfaWQsIHJldCk7CiYjNDM7CX0KJiM0MzsKIAlpZiAodGVzdF9iaXQoV01JX1RMVl9TRVJWSUNFXzExRF9PRkZMT0FELCBhci0mZ3Q7YWItJmd0O3dtaV9hYi5zdmNfbWFwKSAmYW1wOyZhbXA7CiAJICAgIGFodmlmLSZndDt2ZGV2X3R5cGUgPT0gV01JX1ZERVZfVFlQRV9TVEEgJmFtcDsmYW1wOwogCSAgICBhaHZpZi0mZ3Q7dmRldl9zdWJ0eXBlID09IFdNSV9WREVWX1NVQlRZUEVfTk9ORSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5oCmluZGV4IDUxZjM0MjZlMWZjZDkyLi4wMTQ1Y2M0Nzc5NDRmYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5oCkBAIC0yMzMwLDYgJiM0MzsyMzMwLDEzIEBAIGVudW0gd21pX3Nsb3RfdGltZSB7CiAJV01JX1ZERVZfU0xPVF9USU1FX1NIT1JUID0gMiwKIH07CiAKJiM0MztlbnVtIHdtaV9kdGltX3BvbGljeSB7CiYjNDM7CVdNSV9EVElNX1BPTElDWV9JR05PUkUgPSAxLAomIzQzOwlXTUlfRFRJTV9QT0xJQ1lfTk9STUFMID0gMiwKJiM0MzsJV01JX0RUSU1fUE9MSUNZX1NUSUNLICA9IDMsCiYjNDM7CVdNSV9EVElNX1BPTElDWV9BVVRPICAgPSA0LAomIzQzO307CiYjNDM7CiBlbnVtIHdtaV9wcmVhbWJsZSB7CiAJV01JX1ZERVZfUFJFQU1CTEVfTE9ORyA9IDEsCiAJV01JX1ZERVZfUFJFQU1CTEVfU0hPUlQgPSAyLAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwNDowNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzk3CgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMjUwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFBhdGNoIHRvIGEgUXVhbGNvbW0gV2ktRmkgNyBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgYGF0aDEya2Ag4oCTIHNwZWNpZmljYWxseSwgaXQmIzM5O3MgYWRkaW5nIGEgY2FsbCB0byBgYXRoMTJrX3dtaV92ZGV2X3NldF9wYXJhbV9jbWRgIGZvciBgV01JX1ZERVZfUEFSQU1fRFRJTV9QT0xJQ1lgIHdpdGggYFdNSV9EVElNX1BPTElDWV9TVElDS2Agd2l0aGluIGBhdGgxMmtfYnNzX2Fzc29jYC4gVGhpcyBsb29rcyBsaWtlIGEgdmVyeSB0YXJnZXRlZCBjaGFuZ2Ugd2l0aGluIHRoZSBgYXRoMTJrYCBkcml2ZXIuIE15IGluaXRpYWwgdGhvdWdodCBpcywgJiMzNDtDYW4gd2UgZnV6eiB0aGlzPyYjMzQ7CgpTaW5jZSBgYXRoMTJrYCBoYW5kbGVzIGhhcmR3YXJlLCBzcGVjaWZpY2FsbHkgZm9yIFF1YWxjb21tIFdpLUZpIDcgZGV2aWNlcywgSSBoYXZlIHRvIGNvbnNpZGVyIHRoZSBmdXp6YWJpbGl0eSBsYW5kc2NhcGUuIEhhcmR3YXJlIGRyaXZlcnMsIGVzcGVjaWFsbHkgUENJL0FIQiBvbmVzLCBhcmUgbm90b3Jpb3VzbHkgZGlmZmljdWx0IHRvIGZ1enogZGlyZWN0bHkgdW5sZXNzIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSBzcGVjaWZpYyBlbXVsYXRvciBvciBhIFVTQiBkcml2ZXIgdGhhdCB3ZSBjYW4gaGl0IHdpdGggYGR1bW15X2hjZGAuIEJ1dCBpdCBzb3VuZHMgbGlrZSB0aGlzIGlzIGEgUENJL0FIQiBkcml2ZXIuCgpUaW1lIHRvIGNvbmZpcm0gbXkgc3VzcGljaW9ucyBhbmQgdmVyaWZ5IHRoYXQgaXTigJlzIG5vdCBVU0IuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgZmlsZSBmb3IgdGhlIGBhdGgxMmtgIGRyaXZlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwNDowNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGgxMmsmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnPTI9Y29uZmlnIEFUSDEyS1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjM6XHR0cmlzdGF0ZSBcJiMzNDtRdWFsY29tbSBXaS1GaSA3IHN1cHBvcnQgKGF0aDEyaylcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy00LVx0ZGVwZW5kcyBvbiBNQUM4MDIxMSBcdTAwMjZcdTAwMjYgSEFTX0RNQSBcdTAwMjZcdTAwMjYgUENJXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTE0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjE1Olx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGEgbW9kdWxlLCBpdCYjMzk7bGwgYmUgY2FsbGVkIGF0aDEyay5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0xNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZz0xNz1jb25maWcgQVRIMTJLX0FIQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjE4Olx0Ym9vbCBcJiMzNDtRdWFsY29tbSBhdGgxMmsgQUhCIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0xOS1cdGRlcGVuZHMgb24gQVRIMTJLIFx1MDAyNlx1MDAyNiBSRU1PVEVQUk9DXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnPTI1PWNvbmZpZyBBVEgxMktfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzoyNjpcdGJvb2wgXCYjMzQ7YXRoMTJrIGRlYnVnZ2luZ1wmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTI3LVx0ZGVwZW5kcyBvbiBBVEgxMktcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc9MzU9Y29uZmlnIEFUSDEyS19ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MzY6XHRib29sIFwmIzM0O1F1YWxjb21tIGF0aDEyayBkZWJ1Z2ZzIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zNy1cdGRlcGVuZHMgb24gQVRIMTJLIFx1MDAyNlx1MDAyNiBNQUM4MDIxMV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMzgtXHRoZWxwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6Mzk6XHQgIEVuYWJsZSBhdGgxMmsgZGVidWdmcyBzdXBwb3J0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnPTQ0PWNvbmZpZyBBVEgxMktfVFJBQ0lOR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjQ1Olx0Ym9vbCBcJiMzNDthdGgxMmsgdHJhY2luZyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDYtXHRkZXBlbmRzIG9uIEFUSDEySyBcdTAwMjZcdTAwMjYgRVZFTlRfVFJBQ0lOR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTQ3LVx0aGVscFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjQ4Olx0ICBFbmFibGUgYXRoMTJrIHRyYWNpbmcgaW5mcmFzdHJ1Y3R1cmUuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnPTUzPWNvbmZpZyBBVEgxMktfQ09SRURVTVBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo1NDpcdGJvb2wgXCYjMzQ7YXRoMTJrIGNvcmVkdW1wXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNTUtXHRkZXBlbmRzIG9uIEFUSDEyS1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy01Ny1cdGhlbHBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo1ODpcdCAgRW5hYmxlIGF0aDEyayBjb3JlZHVtcCBjb2xsZWN0aW9uXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNTktXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDQ6MDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzc5NgoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDg3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkNvbnNpZGVyaW5nIHRoZSBBcmNoaXRlY3R1cmUgYW5kIEVudmlyb25tZW50KioKCk9rYXksIHNvIEkmIzM5O20gdGhpbmtpbmcgdGhyb3VnaCB0aGlzIGRyaXZlci4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGhpbmdlcyBvbiB1bmRlcnN0YW5kaW5nIHRoZSBpbnRlcnBsYXkgYmV0d2VlbiBQQ0kgYW5kIEFIQiDigJMgdGhhdCYjMzk7cyBmdW5kYW1lbnRhbC4gU3BlY2lmaWNhbGx5LCB0aGlzIGRyaXZlciBpcyB0YWlsb3JlZCBmb3IgUXVhbGNvbW0gV2ktRmkgNyBkZXZpY2VzLiBLbm93aW5nIHRoaXMsIEkgaW1tZWRpYXRlbHkgcmVjb2duaXplIGl0JiMzOTtzIGEgaGFyZHdhcmUgZHJpdmVyLCBtZWFuaW5nIGl0JiMzOTtzIGRlc2lnbmVkIHRvIGRpcmVjdGx5IGludGVyZmFjZSB3aXRoIHBoeXNpY2FsIGhhcmR3YXJlLgoKVGhlIHF1ZXN0aW9uIHRoZW4gYmVjb21lczogY2FuIEkgZXZlbiAqYWNjZXNzKiB0aGlzIGRyaXZlciBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBQbGF0Zm9ybXMgbGlrZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUgKEdDRSkgb3IgUUVNVSBhcmUgY29tbW9uLCBidXQgdGhleSBhYnN0cmFjdCBhd2F5IGZyb20gdGhlIHBoeXNpY2FsIGxheWVyLiBVbmxlc3MgdGhlcmUmIzM5O3MgYSBzcGVjaWZpYyBlbXVsYXRvciBidWlsdCBmb3IgdGhpcyBwYXJ0aWN1bGFyICYjMzk7YXRoMTJrJiMzOTsgY29tcG9uZW50LCB0aGUgYW5zd2VyIGlzIGxpa2VseSBubyDigJMgSSB3b24mIzM5O3QgYmUgYWJsZSB0byBpbnRlcmFjdCB3aXRoIGl0IGRpcmVjdGx5LiBUaGVyZWZvcmUsIEkgbmVlZCB0byBjaGVjayDigJMgYXJlIHRoZXJlIGFueSBlbXVsYXRvcnMgb3V0IHRoZXJlIHRoYXQgc3BlY2lmaWNhbGx5IHRhcmdldCBhdGgxMms/IFRoYXQmIzM5O3MgdGhlIGtleSB0byBtYWtpbmcgYW55IHByb2dyZXNzIGluIGEgdmlydHVhbCBzZXR0aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDA0OjA1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2F0aDEyayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAzNDk0OCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnPTI9Y29uZmlnIEFUSDEyS1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjM6XHR0cmlzdGF0ZSBcJiMzNDtRdWFsY29tbSBXaS1GaSA3IHN1cHBvcnQgKGF0aDEyaylcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy00LVx0ZGVwZW5kcyBvbiBNQUM4MDIxMSBcdTAwMjZcdTAwMjYgSEFTX0RNQSBcdTAwMjZcdTAwMjYgUENJXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTE0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjE1Olx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGEgbW9kdWxlLCBpdCYjMzk7bGwgYmUgY2FsbGVkIGF0aDEyay5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0xNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZz0xNz1jb25maWcgQVRIMTJLX0FIQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjE4Olx0Ym9vbCBcJiMzNDtRdWFsY29tbSBhdGgxMmsgQUhCIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0xOS1cdGRlcGVuZHMgb24gQVRIMTJLIFx1MDAyNlx1MDAyNiBSRU1PVEVQUk9DXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnPTI1PWNvbmZpZyBBVEgxMktfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzoyNjpcdGJvb2wgXCYjMzQ7YXRoMTJrIGRlYnVnZ2luZ1wmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTI3LVx0ZGVwZW5kcyBvbiBBVEgxMktcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc9MzU9Y29uZmlnIEFUSDEyS19ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MzY6XHRib29sIFwmIzM0O1F1YWxjb21tIGF0aDEyayBkZWJ1Z2ZzIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zNy1cdGRlcGVuZHMgb24gQVRIMTJLIFx1MDAyNlx1MDAyNiBNQUM4MDIxMV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMzgtXHRoZWxwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6Mzk6XHQgIEVuYWJsZSBhdGgxMmsgZGVidWdmcyBzdXBwb3J0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnPTQ0PWNvbmZpZyBBVEgxMktfVFJBQ0lOR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjQ1Olx0Ym9vbCBcJiMzNDthdGgxMmsgdHJhY2luZyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDYtXHRkZXBlbmRzIG9uIEFUSDEySyBcdTAwMjZcdTAwMjYgRVZFTlRfVFJBQ0lOR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTQ3LVx0aGVscFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjQ4Olx0ICBFbmFibGUgYXRoMTJrIHRyYWNpbmcgaW5mcmFzdHJ1Y3R1cmUuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnPTUzPWNvbmZpZyBBVEgxMktfQ09SRURVTVBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo1NDpcdGJvb2wgXCYjMzQ7YXRoMTJrIGNvcmVkdW1wXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNTUtXHRkZXBlbmRzIG9uIEFUSDEyS1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy01Ny1cdGhlbHBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo1ODpcdCAgRW5hYmxlIGF0aDEyayBjb3JlZHVtcCBjb2xsZWN0aW9uXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNTktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZToyOm9iai0kKENPTkZJR19BVEgxMkspICYjNDM7PSBhdGgxMmsub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZTozOmF0aDEyay15ICYjNDM7PSBjb3JlLm8gXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtNC1cdCAgICBoYWwubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlOjI1OmF0aDEyay0kKENPTkZJR19BVEgxMktfQUhCKSAmIzQzOz0gYWhiLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlPTI3PW9iai0kKENPTkZJR19BVEgxMkspICYjNDM7PSB3aWZpNy9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlOjI5OmF0aDEyay0kKENPTkZJR19BVEgxMktfREVCVUdGUykgJiM0Mzs9IGRlYnVnZnMubyBkZWJ1Z2ZzX2h0dF9zdGF0cy5vIGRlYnVnZnNfc3RhLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGU6MzA6YXRoMTJrLSQoQ09ORklHX0FDUEkpICYjNDM7PSBhY3BpLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGU6MzE6YXRoMTJrLSQoQ09ORklHX0FUSDEyS19UUkFDSU5HKSAmIzQzOz0gdHJhY2Uub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZTozMjphdGgxMmstJChDT05GSUdfUE0pICYjNDM7PSB3b3cub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZTozMzphdGgxMmstJChDT05GSUdfQVRIMTJLX0NPUkVEVU1QKSAmIzQzOz0gY29yZWR1bXAub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZTozNDphdGgxMmstJChDT05GSUdfTkw4MDIxMV9URVNUTU9ERSkgJiM0Mzs9IHRlc3Rtb2RlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGU6MzU6YXRoMTJrLSQoQ09ORklHX1RIRVJNQUwpICYjNDM7PSB0aGVybWFsLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMzYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxMTpzdGF0aWMgaW50IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLCBpbnQgZnVuYylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTEyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xOC1cdGlmICghcm9vdF9oYW5kbGUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjE5Olx0XHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0JPT1QsIFwmIzM0O2ludmFsaWQgYWNwaSBoYW5kbGVyXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIwLVx0XHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjYtXHRpZiAoIW9iaikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6Mjc6XHRcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfQk9PVCwgXCYjMzQ7YWNwaV9ldmFsdWF0ZV9kc20oKSBmYWlsZWRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjgtXHRcdHJldHVybiAtRU5PRU5UO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ2LVx0XHRcdFx0ICAgQVRIMTJLX0FDUElfQkRGX0FOQ0hPUl9TVFJJTkdfTEVOKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDc6XHRcdFx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7aW52YWxpZCBBQ1BJIERTTSBCREYgc2l6ZTogJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00OC1cdFx0XHRcdFx0ICAgIG9iai1cdTAwM2VzdHJpbmcubGVuZ3RoKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy02Mi1cdFx0XHQgICAgb2JqLVx1MDAzZWJ1ZmZlci5sZW5ndGggXHUwMDNlIEFUSDEyS19BQ1BJX0RTTV9GVU5DX01BWF9CSVRNQVBfU0laRSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NjM6XHRcdFx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7aW52YWxpZCBBQ1BJIERTTSBmdW5jIHNpemU6ICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNjQtXHRcdFx0XHRcdCAgICBvYmotXHUwMDNlYnVmZmVyLmxlbmd0aCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNzUtXHRcdFx0aWYgKG9iai1cdTAwM2VidWZmZXIubGVuZ3RoICE9IEFUSDEyS19BQ1BJX0RTTV9UQVNfQ0ZHX1NJWkUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjc2Olx0XHRcdFx0YXRoMTJrX3dhcm4oYWIsIFwmIzM0O2ludmFsaWQgQUNQSSBEU00gVEFTIGNvbmZpZyBzaXplOiAlZFxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTc3LVx0XHRcdFx0XHQgICAgb2JqLVx1MDAzZWJ1ZmZlci5sZW5ndGgpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTg3LVx0XHRcdGlmIChvYmotXHUwMDNlYnVmZmVyLmxlbmd0aCAhPSBBVEgxMktfQUNQSV9EU01fVEFTX0RBVEFfU0laRSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6ODg6XHRcdFx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7aW52YWxpZCBBQ1BJIERTTSBUQVMgZGF0YSBzaXplOiAlZFxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTg5LVx0XHRcdFx0XHQgICAgb2JqLVx1MDAzZWJ1ZmZlci5sZW5ndGgpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTk5LVx0XHRcdGlmIChvYmotXHUwMDNlYnVmZmVyLmxlbmd0aCAhPSBBVEgxMktfQUNQSV9EU01fQklPU19TQVJfREFUQV9TSVpFKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxMDA6XHRcdFx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7aW52YWxpZCBBQ1BJIEJJT1MgU0FSIGRhdGEgc2l6ZTogJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xMDEtXHRcdFx0XHRcdCAgICBvYmotXHUwMDNlYnVmZmVyLmxlbmd0aCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTExLVx0XHRcdGlmIChvYmotXHUwMDNlYnVmZmVyLmxlbmd0aCAhPSBBVEgxMktfQUNQSV9EU01fR0VPX09GRlNFVF9EQVRBX1NJWkUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjExMjpcdFx0XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtpbnZhbGlkIEFDUEkgR0VPIE9GRlNFVCBkYXRhIHNpemU6ICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTEzLVx0XHRcdFx0XHQgICAgb2JqLVx1MDAzZWJ1ZmZlci5sZW5ndGgpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTEyMy1cdFx0XHRpZiAob2JqLVx1MDAzZWJ1ZmZlci5sZW5ndGggIT0gQVRIMTJLX0FDUElfRFNNX0NDQV9EQVRBX1NJWkUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjEyNDpcdFx0XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtpbnZhbGlkIEFDUEkgRFNNIENDQSBkYXRhIHNpemU6ICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTI1LVx0XHRcdFx0XHQgICAgb2JqLVx1MDAzZWJ1ZmZlci5sZW5ndGgpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTEzNS1cdFx0XHRpZiAob2JqLVx1MDAzZWJ1ZmZlci5sZW5ndGggIT0gQVRIMTJLX0FDUElfRFNNX0JBTkRfRURHRV9EQVRBX1NJWkUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjEzNjpcdFx0XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtpbnZhbGlkIEFDUEkgRFNNIGJhbmQgZWRnZSBkYXRhIHNpemU6ICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTM3LVx0XHRcdFx0XHQgICAgb2JqLVx1MDAzZWJ1ZmZlci5sZW5ndGgpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE0Ny1cdH0gZWxzZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxNDg6XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtBQ1BJIERTTSBtZXRob2QgcmV0dXJuZWQgYW4gdW5zdXBwb3J0ZWQgb2JqZWN0IHR5cGU6ICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTQ5LVx0XHRcdCAgICBvYmotXHUwMDNldHlwZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTYwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTYxOnN0YXRpYyBpbnQgYXRoMTJrX2FjcGlfc2V0X3Bvd2VyX2xpbWl0KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xNjIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE2Ny1cdCAgICB0YXNfc2FyX3Bvd2VyX3RhYmxlWzFdICE9IEFUSDEyS19BQ1BJX1RBU19EQVRBX0VOQUJMRSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTY4Olx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7bGF0ZXN0IEFDUEkgVEFTIGRhdGEgaXMgaW52YWxpZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xNjktXHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE3MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjE3MjpcdHJldCA9IGF0aDEya193bWlfc2V0X2Jpb3NfY21kKGFiLCBXTUlfQklPU19QQVJBTV9UQVNfREFUQV9UWVBFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTczLVx0XHRcdFx0ICAgICAgdGFzX3Nhcl9wb3dlcl90YWJsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xNzUtXHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxNzY6XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtmYWlsZWQgdG8gc2VuZCBBQ1BJIFRBUyBkYXRhIHRhYmxlOiAlZFxcblwmIzM0OywgcmV0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE3Ny1cdFx0cmV0dXJuIHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xODItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxODM6c3RhdGljIGludCBhdGgxMmtfYWNwaV9zZXRfYmlvc19zYXJfcG93ZXIoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE4NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTg4LVx0ICAgIGFiLVx1MDAzZWFjcGkuYmlvc19zYXJfZGF0YVsxXSAhPSBBVEgxMktfQUNQSV9QT1dFUl9MSU1JVF9FTkFCTEVfRkxBRykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTg5Olx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7aW52YWxpZCBsYXRlc3QgQUNQSSBCSU9TIFNBUiBkYXRhXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE5MC1cdFx0cmV0dXJuIC1FSU5WQUw7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTkyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTkzOlx0cmV0ID0gYXRoMTJrX3dtaV9zZXRfYmlvc19zYXJfY21kKGFiLCBhYi1cdTAwM2VhY3BpLmJpb3Nfc2FyX2RhdGEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTk0LVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTk1Olx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7ZmFpbGVkIHRvIHNldCBBQ1BJIEJJT1MgU0FSIHRhYmxlOiAlZFxcblwmIzM0OywgcmV0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE5Ni1cdFx0cmV0dXJuIHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyMDI6c3RhdGljIHZvaWQgYXRoMTJrX2FjcGlfZHNtX25vdGlmeShhY3BpX2hhbmRsZSBoYW5kbGUsIHUzMiBldmVudCwgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIwMy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMDQtXHRpbnQgcmV0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjA1Olx0c3RydWN0IGF0aDEya19iYXNlICphYiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMDctXHRpZiAoZXZlbnQgPT0gQVRIMTJLX0FDUElfTk9USUZZX0VWRU5UKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyMDg6XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDt1bmtub3duIGFjcGkgbm90aWZ5ICV1XFxuXCYjMzQ7LCBldmVudCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMDktXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMTItXHRpZiAoIWFiLVx1MDAzZWFjcGkuYWNwaV90YXNfZW5hYmxlKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyMTM6XHRcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfQk9PVCwgXCYjMzQ7YWNwaV90YXNfZW5hYmxlIGlzIGZhbHNlXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIxNC1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIxNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjIxNzpcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfVEFTX0RBVEEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjE4LVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjE5Olx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7ZmFpbGVkIHRvIHVwZGF0ZSBBQ1BJIFRBUyBkYXRhIHRhYmxlOiAlZFxcblwmIzM0OywgcmV0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIyMC1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIyMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjIyMzpcdHJldCA9IGF0aDEya19hY3BpX3NldF9wb3dlcl9saW1pdChhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMjQtXHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyMjU6XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtmYWlsZWQgdG8gc2V0IEFDUEkgVEFTIHBvd2VyIGxpbWl0IGRhdGE6ICVkXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjI2LVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjMxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjMyOlx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19CSU9TX1NBUik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMzMtXHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyMzQ6XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtmYWlsZWQgdG8gdXBkYXRlIEJJT1MgU0FSOiAlZFxcblwmIzM0OywgcmV0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIzNS1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIzNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjIzODpcdHJldCA9IGF0aDEya19hY3BpX3NldF9iaW9zX3Nhcl9wb3dlcihhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMzktXHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyNDA6XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtmYWlsZWQgdG8gc2V0IEJJT1MgU0FSIHBvd2VyIGxpbWl0OiAlZFxcblwmIzM0OywgcmV0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI0MS1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI0NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjI0NTpzdGF0aWMgaW50IGF0aDEya19hY3BpX3NldF9iaW9zX3Nhcl9wYXJhbXMoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI0Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjQ4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjQ5Olx0cmV0ID0gYXRoMTJrX3dtaV9zZXRfYmlvc19zYXJfY21kKGFiLCBhYi1cdTAwM2VhY3BpLmJpb3Nfc2FyX2RhdGEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjUwLVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjUxOlx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7ZmFpbGVkIHRvIHNldCBBQ1BJIEJJT1MgU0FSIHRhYmxlOiAlZFxcblwmIzM0OywgcmV0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI1Mi1cdFx0cmV0dXJuIHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yNTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyNTU6XHRyZXQgPSBhdGgxMmtfd21pX3NldF9iaW9zX2dlb19jbWQoYWIsIGFiLVx1MDAzZWFjcGkuZ2VvX29mZnNldF9kYXRhKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI1Ni1cdGlmIChyZXQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjI1NzpcdFx0YXRoMTJrX3dhcm4oYWIsIFwmIzM0O2ZhaWxlZCB0byBzZXQgQUNQSSBCSU9TIEdFTyB0YWJsZTogJWRcXG5cJiMzNDssIHJldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yNTgtXHRcdHJldHVybiByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjYzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjY0OnN0YXRpYyBpbnQgYXRoMTJrX2FjcGlfc2V0X3Rhc19wYXJhbXMoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI2NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjY3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjY4Olx0cmV0ID0gYXRoMTJrX3dtaV9zZXRfYmlvc19jbWQoYWIsIFdNSV9CSU9TX1BBUkFNX1RBU19DT05GSUdfVFlQRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI2OS1cdFx0XHRcdCAgICAgIGFiLVx1MDAzZWFjcGkudGFzX2NmZyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yNzEtXHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyNzI6XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtmYWlsZWQgdG8gc2VuZCBBQ1BJIFRBUyBjb25maWcgdGFibGUgcGFyYW1ldGVyOiAlZFxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI3My1cdFx0XHQgICAgcmV0KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yNzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyNzc6XHRyZXQgPSBhdGgxMmtfd21pX3NldF9iaW9zX2NtZChhYiwgV01JX0JJT1NfUEFSQU1fVEFTX0RBVEFfVFlQRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI3OC1cdFx0XHRcdCAgICAgIGFiLVx1MDAzZWFjcGkudGFzX3Nhcl9wb3dlcl90YWJsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yODAtXHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyODE6XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtmYWlsZWQgdG8gc2VuZCBBQ1BJIFRBUyBkYXRhIHRhYmxlIHBhcmFtZXRlcjogJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yODItXHRcdFx0ICAgIHJldCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjg4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6Mjg5OmJvb2wgYXRoMTJrX2FjcGlfZ2V0X2Rpc2FibGVfcmZraWxsKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yOTAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI5My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjI5NDpib29sIGF0aDEya19hY3BpX2dldF9kaXNhYmxlXzExYmUoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI5NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6Mjk5OnZvaWQgYXRoMTJrX2FjcGlfc2V0X2RzbV9mdW5jKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMDAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTMwOC1cdGlmIChhYi1cdTAwM2VhY3BpLmFjcGlfdGFzX2VuYWJsZSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MzA5Olx0XHRyZXQgPSBhdGgxMmtfYWNwaV9zZXRfdGFzX3BhcmFtcyhhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMTAtXHRcdGlmIChyZXQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjMxMTpcdFx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7ZmFpbGVkIHRvIHNlbmQgQUNQSSBUQVMgcGFyYW1ldGVyczogJWRcXG5cJiMzNDssIHJldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMTItXHRcdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTMxNi1cdGlmIChhYi1cdTAwM2VhY3BpLmFjcGlfYmlvc19zYXJfZW5hYmxlKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozMTc6XHRcdHJldCA9IGF0aDEya19hY3BpX3NldF9iaW9zX3Nhcl9wYXJhbXMoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzE4LVx0XHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozMTk6XHRcdFx0YXRoMTJrX3dhcm4oYWIsIFwmIzM0O2ZhaWxlZCB0byBzZW5kIEFDUEkgQklPUyBTQVI6ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzIwLVx0XHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMjUtXHRcdGJ1ZiA9IGFiLVx1MDAzZWFjcGkuY2NhX2RhdGEgJiM0MzsgQVRIMTJLX0FDUElfQ0NBX1RIUl9PRkZTRVRfREFUQV9PRkZTRVQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozMjY6XHRcdHJldCA9IGF0aDEya193bWlfc2V0X2Jpb3NfY21kKGFiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzI3LVx0XHRcdFx0XHQgICAgICBXTUlfQklPU19QQVJBTV9DQ0FfVEhSRVNIT0xEX1RZUEUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzMwLVx0XHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozMzE6XHRcdFx0YXRoMTJrX3dhcm4oYWIsIFwmIzM0O2ZhaWxlZCB0byBzZXQgQUNQSSBEU00gQ0NBIHRocmVzaG9sZDogJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMzItXHRcdFx0XHQgICAgcmV0KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMzctXHRpZiAoYWItXHUwMDNlYWNwaS5hY3BpX2JhbmRfZWRnZV9lbmFibGUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjMzODpcdFx0cmV0ID0gYXRoMTJrX3dtaV9zZXRfYmlvc19jbWQoYWIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMzktXHRcdFx0XHRcdCAgICAgIFdNSV9CSU9TX1BBUkFNX1RZUEVfQkFOREVER0UsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzQyLVx0XHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozNDM6XHRcdFx0YXRoMTJrX3dhcm4oYWIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zNDQtXHRcdFx0XHQgICAgXCYjMzQ7ZmFpbGVkIHRvIHNldCBBQ1BJIERTTSBiYW5kIGVkZ2UgY2hhbm5lbCBwb3dlcjogJWRcXG5cJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MzUxOmludCBhdGgxMmtfYWNwaV9zdGFydChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzUyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zNjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozNjk6XHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX1NVUFBPUlRfRlVOQ1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzcwLVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MzcxOlx0XHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0JPT1QsIFwmIzM0O2ZhaWxlZCB0byBnZXQgQUNQSSBEU00gZGF0YTogJWRcXG5cJiMzNDssIHJldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zNzItXHRcdHJldHVybiByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzc1LVx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVx1MDAzZWFjcGksIEFUSDEyS19BQ1BJX0ZVTkNfQklUX0RJU0FCTEVfRkxBRykpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjM3NjpcdFx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19ESVNBQkxFX0ZMQUcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzc3LVx0XHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozNzg6XHRcdFx0YXRoMTJrX3dhcm4oYWIsIFwmIzM0O2ZhaWxlZCB0byBnZXQgQUNQSSBESVNBQkxFIEZMQUc6ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzc5LVx0XHRcdHJldHVybiByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzkxLVx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVx1MDAzZWFjcGksIEFUSDEyS19BQ1BJX0ZVTkNfQklUX0JERl9FWFQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozOTI6XHRcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfQkRGX0VYVCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zOTMtXHRcdGlmIChyZXQgfHwgYWItXHUwMDNlYWNwaS5iZGZfc3RyaW5nWzBdID09ICYjMzk7XFwwJiMzOTspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjM5NDpcdFx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7ZmFpbGVkIHRvIGdldCBBQ1BJIEJERiBFWFQ6ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzk1LVx0XHRcdHJldHVybiByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDAxLVx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVx1MDAzZWFjcGksIEFUSDEyS19BQ1BJX0ZVTkNfQklUX1RBU19DRkcpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MDI6XHRcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfVEFTX0NGRyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MDMtXHRcdGlmIChyZXQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQwNDpcdFx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7ZmFpbGVkIHRvIGdldCBBQ1BJIFRBUyBjb25maWcgdGFibGU6ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDA1LVx0XHRcdHJldHVybiByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDA5LVx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVx1MDAzZWFjcGksIEFUSDEyS19BQ1BJX0ZVTkNfQklUX1RBU19EQVRBKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDEwOlx0XHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX1RBU19EQVRBKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQxMS1cdFx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDEyOlx0XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtmYWlsZWQgdG8gZ2V0IEFDUEkgVEFTIGRhdGEgdGFibGU6ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDEzLVx0XHRcdHJldHVybiByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDIyLVx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVx1MDAzZWFjcGksIEFUSDEyS19BQ1BJX0ZVTkNfQklUX0JJT1NfU0FSKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDIzOlx0XHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0JJT1NfU0FSKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQyNC1cdFx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDI1Olx0XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtmYWlsZWQgdG8gZ2V0IEFDUEkgYmlvcyBzYXIgZGF0YTogJWRcXG5cJiMzNDssIHJldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MjYtXHRcdFx0cmV0dXJuIHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MzAtXHRpZiAoQVRIMTJLX0FDUElfRlVOQ19CSVRfVkFMSUQoYWItXHUwMDNlYWNwaSwgQVRIMTJLX0FDUElfRlVOQ19CSVRfR0VPX09GRlNFVCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQzMTpcdFx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19HRU9fT0ZGU0VUKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQzMi1cdFx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDMzOlx0XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtmYWlsZWQgdG8gZ2V0IEFDUEkgZ2VvIG9mZnNldCBkYXRhOiAlZFxcblwmIzM0OywgcmV0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQzNC1cdFx0XHRyZXR1cm4gcmV0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ0NC1cdGlmIChBVEgxMktfQUNQSV9GVU5DX0JJVF9WQUxJRChhYi1cdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9DQ0EpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0NDU6XHRcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfSU5ERVhfQ0NBKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ0Ni1cdFx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDQ3Olx0XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtmYWlsZWQgdG8gZ2V0IEFDUEkgRFNNIENDQSB0aHJlc2hvbGQgY29uZmlndXJhdGlvbjogJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NDgtXHRcdFx0XHQgICAgcmV0KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NTktXHRcdFx0XHQgICAgICAgQVRIMTJLX0FDUElfRlVOQ19CSVRfQkFORF9FREdFX0NIQU5fUE9XRVIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0NjA6XHRcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfSU5ERVhfQkFORF9FREdFKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ2MS1cdFx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDYyOlx0XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtmYWlsZWQgdG8gZ2V0IEFDUEkgRFNNIGJhbmQgZWRnZSBjaGFubmVsIHBvd2VyOiAlZFxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ2My1cdFx0XHRcdCAgICByZXQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ3My1cdFx0XHRcdFx0ICAgICBBQ1BJX0RFVklDRV9OT1RJRlksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0NzQ6XHRcdFx0XHRcdCAgICAgYXRoMTJrX2FjcGlfZHNtX25vdGlmeSwgYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDc1LVx0aWYgKEFDUElfRkFJTFVSRShzdGF0dXMpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0NzY6XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtmYWlsZWQgdG8gaW5zdGFsbCBEU00gbm90aWZ5IGNhbGxiYWNrOiAlZFxcblwmIzM0Oywgc3RhdHVzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ3Ny1cdFx0cmV0dXJuIC1FSU87XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDg0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDg1OmludCBhdGgxMmtfYWNwaV9jaGVja19iZGZfdmFyaWFudF9uYW1lKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00ODYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ5Mi1cdGlmIChzdHJzY3B5KGFiLVx1MDAzZXFtaS50YXJnZXQuYmRmX2V4dCwgYWItXHUwMDNlYWNwaS5iZGZfc3RyaW5nICYjNDM7IDQsIG1heF9sZW4pIFx1MDAzYyAwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDkzOlx0XHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0JPT1QsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00OTQtXHRcdFx0ICAgXCYjMzQ7YWNwaSBiZGYgdmFyaWFudCBsb25nZXIgdGhhbiB0aGUgYnVmZmVyICh2YXJpYW50OiAlcylcXG5cJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDk5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NTAwOnZvaWQgYXRoMTJrX2FjcGlfc3RvcChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNTAxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy01MDYtXHRcdFx0XHQgICBBQ1BJX0RFVklDRV9OT1RJRlksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo1MDc6XHRcdFx0XHQgICBhdGgxMmtfYWNwaV9kc21fbm90aWZ5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTUwOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC03NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjc1OmludCBhdGgxMmtfYWNwaV9zdGFydChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjc2OnZvaWQgYXRoMTJrX2FjcGlfc3RvcChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjc3OmJvb2wgYXRoMTJrX2FjcGlfZ2V0X2Rpc2FibGVfcmZraWxsKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6Nzg6Ym9vbCBhdGgxMmtfYWNwaV9nZXRfZGlzYWJsZV8xMWJlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6Nzk6dm9pZCBhdGgxMmtfYWNwaV9zZXRfZHNtX2Z1bmMoc3RydWN0IGF0aDEya19iYXNlICphYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo4MDppbnQgYXRoMTJrX2FjcGlfY2hlY2tfYmRmX3ZhcmlhbnRfbmFtZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTgxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTgzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6ODQ6c3RhdGljIGlubGluZSBpbnQgYXRoMTJrX2FjcGlfc3RhcnQoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTg1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC04OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjg5OnN0YXRpYyBpbmxpbmUgdm9pZCBhdGgxMmtfYWNwaV9zdG9wKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC05MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtOTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo5MzpzdGF0aWMgaW5saW5lIGJvb2wgYXRoMTJrX2FjcGlfZ2V0X2Rpc2FibGVfcmZraWxsKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC05NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtOTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo5ODpzdGF0aWMgaW5saW5lIGJvb2wgYXRoMTJrX2FjcGlfZ2V0X2Rpc2FibGVfMTFiZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtOTkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTEwMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjEwMzpzdGF0aWMgaW5saW5lIHZvaWQgYXRoMTJrX2FjcGlfc2V0X2RzbV9mdW5jKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC0xMDQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTEwNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjEwNzpzdGF0aWMgaW5saW5lIGludCBhdGgxMmtfYWNwaV9jaGVja19iZGZfdmFyaWFudF9uYW1lKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC0xMDgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjIyOnN0YXRpYyBzdHJ1Y3QgYXRoMTJrX2FoYl9kcml2ZXIgKmF0aDEya19haGJfZmFtaWx5X2RyaXZlcnNbQVRIMTJLX0RFVklDRV9GQU1JTFlfTUFYXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjM6c3RhdGljIGNvbnN0IGNoYXIgYXRoMTJrX3VzZXJwZF9pcnFbXVs5XSA9IHtcJiMzNDtzcGF3blwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjQtXHRcdFx0XHQgICAgIFwmIzM0O3JlYWR5XCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM9ODM9ZW51bSBleHRfaXJxX251bSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjEyMzpzdGF0aWMgdTMyIGF0aDEya19haGJfcmVhZDMyKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsIHUzMiBvZmZzZXQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTEyNC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xMjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjEzMDpzdGF0aWMgdm9pZCBhdGgxMmtfYWhiX3dyaXRlMzIoc3RydWN0IGF0aDEya19iYXNlICphYiwgdTMyIG9mZnNldCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTMxLVx0XHRcdCAgICAgICB1MzIgdmFsdWUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xMzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjEzOTpzdGF0aWMgdm9pZCBhdGgxMmtfYWhiX2NhbmNlbF93b3JrcXVldWUoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTQwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTE0My1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGFiLVx1MDAzZWh3X3BhcmFtcy1cdTAwM2VjZV9jb3VudDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTQ0Olx0XHRzdHJ1Y3QgYXRoMTJrX2NlX3BpcGUgKmNlX3BpcGUgPSBcdTAwMjZhYi1cdTAwM2VjZS5jZV9waXBlW2ldO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xNDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjE0NjpcdFx0aWYgKGF0aDEya19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTE0Ny1cdFx0XHRjb250aW51ZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTE1Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTUzOnN0YXRpYyB2b2lkIGF0aDEya19haGJfZXh0X2dycF9kaXNhYmxlKHN0cnVjdCBhdGgxMmtfZXh0X2lycV9ncnAgKmlycV9ncnApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTE1NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xNjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjE2MTpzdGF0aWMgdm9pZCBfX2F0aDEya19haGJfZXh0X2lycV9kaXNhYmxlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTE2Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xNjUtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBVEgxMktfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTY2Olx0XHRzdHJ1Y3QgYXRoMTJrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gXHUwMDI2YWItXHUwMDNlZXh0X2lycV9ncnBbaV07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTE2Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTY4Olx0XHRhdGgxMmtfYWhiX2V4dF9ncnBfZGlzYWJsZShpcnFfZ3JwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTY5LVx0XHRpZiAoaXJxX2dycC1cdTAwM2VuYXBpX2VuYWJsZWQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTE3Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTc3OnN0YXRpYyB2b2lkIGF0aDEya19haGJfZXh0X2dycF9lbmFibGUoc3RydWN0IGF0aDEya19leHRfaXJxX2dycCAqaXJxX2dycClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTc4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTE4NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTg1OnN0YXRpYyB2b2lkIGF0aDEya19haGJfc2V0Yml0MzIoc3RydWN0IGF0aDEya19iYXNlICphYiwgdTggYml0LCB1MzIgb2Zmc2V0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xODYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTg4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoxODk6XHR2YWwgPSBhdGgxMmtfYWhiX3JlYWQzMihhYiwgb2Zmc2V0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTkwOlx0YXRoMTJrX2FoYl93cml0ZTMyKGFiLCBvZmZzZXQsIHZhbCB8IEJJVChiaXQpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTkxLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTkyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoxOTM6c3RhdGljIHZvaWQgYXRoMTJrX2FoYl9jbGVhcmJpdDMyKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsIHU4IGJpdCwgdTMyIG9mZnNldClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTk0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTE5Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTk3Olx0dmFsID0gYXRoMTJrX2FoYl9yZWFkMzIoYWIsIG9mZnNldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjE5ODpcdGF0aDEya19haGJfd3JpdGUzMihhYiwgb2Zmc2V0LCB2YWwgXHUwMDI2IH5CSVQoYml0KSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTE5OS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTIwMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjAxOnN0YXRpYyB2b2lkIGF0aDEya19haGJfY2VfaXJxX2VuYWJsZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLCB1MTYgY2VfaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTIwMi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yMTItXHRpZiAoY2VfYXR0ci1cdTAwM2VzcmNfbmVudHJpZXMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjIxMzpcdFx0YXRoMTJrX2FoYl9zZXRiaXQzMihhYiwgY2VfaWQsIGllMV9yZWdfYWRkcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTIxNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjE1LVx0aWYgKGNlX2F0dHItXHUwMDNlZGVzdF9uZW50cmllcykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyMTY6XHRcdGF0aDEya19haGJfc2V0Yml0MzIoYWIsIGNlX2lkLCBpZTJfcmVnX2FkZHIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyMTc6XHRcdGF0aDEya19haGJfc2V0Yml0MzIoYWIsIGNlX2lkICYjNDM7IENFX0hPU1RfSUVfM19TSElGVCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjE4LVx0XHRcdFx0ICAgIGllM19yZWdfYWRkcik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yMjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjIyMjpzdGF0aWMgdm9pZCBhdGgxMmtfYWhiX2NlX2lycV9kaXNhYmxlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsIHUxNiBjZV9pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjIzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTIzMy1cdGlmIChjZV9hdHRyLVx1MDAzZXNyY19uZW50cmllcylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjM0Olx0XHRhdGgxMmtfYWhiX2NsZWFyYml0MzIoYWIsIGNlX2lkLCBpZTFfcmVnX2FkZHIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yMzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTIzNi1cdGlmIChjZV9hdHRyLVx1MDAzZWRlc3RfbmVudHJpZXMpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjM3Olx0XHRhdGgxMmtfYWhiX2NsZWFyYml0MzIoYWIsIGNlX2lkLCBpZTJfcmVnX2FkZHIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyMzg6XHRcdGF0aDEya19haGJfY2xlYXJiaXQzMihhYiwgY2VfaWQgJiM0MzsgQ0VfSE9TVF9JRV8zX1NISUZULFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yMzktXHRcdFx0XHQgICAgICBpZTNfcmVnX2FkZHIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjQyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyNDM6c3RhdGljIHZvaWQgYXRoMTJrX2FoYl9zeW5jX2NlX2lycXMoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjQ0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI0OC1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGFiLVx1MDAzZWh3X3BhcmFtcy1cdTAwM2VjZV9jb3VudDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjQ5Olx0XHRpZiAoYXRoMTJrX2NlX2dldF9hdHRyX2ZsYWdzKGFiLCBpKSBcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjUwLVx0XHRcdGNvbnRpbnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyNTc6c3RhdGljIHZvaWQgYXRoMTJrX2FoYl9zeW5jX2V4dF9pcnFzKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI1OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yNjItXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBVEgxMktfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjYzOlx0XHRzdHJ1Y3QgYXRoMTJrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gXHUwMDI2YWItXHUwMDNlZXh0X2lycV9ncnBbaV07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI2NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI3MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjcyOnN0YXRpYyB2b2lkIGF0aDEya19haGJfY2VfaXJxc19lbmFibGUoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjczLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI3Ni1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGFiLVx1MDAzZWh3X3BhcmFtcy1cdTAwM2VjZV9jb3VudDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6Mjc3Olx0XHRpZiAoYXRoMTJrX2NlX2dldF9hdHRyX2ZsYWdzKGFiLCBpKSBcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjc4LVx0XHRcdGNvbnRpbnVlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyNzk6XHRcdGF0aDEya19haGJfY2VfaXJxX2VuYWJsZShhYiwgaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI4MC1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI4Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjgzOnN0YXRpYyB2b2lkIGF0aDEya19haGJfY2VfaXJxc19kaXNhYmxlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI4NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yODctXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBhYi1cdTAwM2Vod19wYXJhbXMtXHUwMDNlY2VfY291bnQ7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjI4ODpcdFx0aWYgKGF0aDEya19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI4OS1cdFx0XHRjb250aW51ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjkwOlx0XHRhdGgxMmtfYWhiX2NlX2lycV9kaXNhYmxlKGFiLCBpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjkxLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjkzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyOTQ6c3RhdGljIGludCBhdGgxMmtfYWhiX3N0YXJ0KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI5NS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjI5NjpcdGF0aDEya19haGJfY2VfaXJxc19lbmFibGUoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyOTc6XHRhdGgxMmtfY2VfcnhfcG9zdF9idWYoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yOTgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0zMDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjMwMjpzdGF0aWMgdm9pZCBhdGgxMmtfYWhiX2V4dF9pcnFfZW5hYmxlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTMwMy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjMwNDpcdHN0cnVjdCBhdGgxMmtfZXh0X2lycV9ncnAgKmlycV9ncnA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTMwNS1cdGludCBpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzEyLVx0XHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjMxMzpcdFx0YXRoMTJrX2FoYl9leHRfZ3JwX2VuYWJsZShpcnFfZ3JwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzE0LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzozMTc6c3RhdGljIHZvaWQgYXRoMTJrX2FoYl9leHRfaXJxX2Rpc2FibGUoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzE4LXtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDA0OjA1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4ODY0CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMjM2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgdGhlIGBhdGgxMmtgIERyaXZlcjogQSBUaG91Z2h0IFByb2Nlc3MqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYGF0aDEya2AgZHJpdmVyLiBJdCYjMzk7cyBhIGhhcmR3YXJlIGRyaXZlciwgd2hpY2ggdXN1YWxseSBwcmVzZW50cyBhIGNoYWxsZW5nZSBmb3IgZnV6emluZy4gVW5sZXNzIGl0JiMzOTtzIGEgVVNCIGRyaXZlciwgb3Igd2UgaGF2ZSBhIHNvbGlkIGVtdWxhdG9yLCBmdXp6aW5nIHRoZXNlIHRoaW5ncyBpcyB0eXBpY2FsbHkgYSBkZWFkIGVuZC4gQnV0LCB3YWl0Li4uIGBhdGgxMmtgIGlzIGEgUENJL0FIQiBkcml2ZXIsIHdoaWNoICpjb3VsZCogYmUgcHJvbWlzaW5nLiBJcyB0aGVyZSBzb21lIGhpZGRlbiB0ZXN0IG1vZGUgb3IgZGVidWcgZmxhZyBJIGNhbiBsZXZlcmFnZT8KCkxldCBtZSBzZWXigKYgYWhhISBUaGVyZSBpdCBpczogYGF0aDEyay0kKENPTkZJR19OTDgwMjExX1RFU1RNT0RFKSAmIzQzOz0gdGVzdG1vZGUub2AuIEJ1dCBJ4oCZdmUgZGVhbHQgd2l0aCB0ZXN0bW9kZSBiZWZvcmU7IEl04oCZcyBnZW5lcmFsbHkgZm9yIHBhc3NpbmcgY29tbWFuZHMsIG5vdCBhIGZ1bGwtYmxvd24gaGFyZHdhcmUgZW11bGF0b3IuIEl0JiMzOTtzIG5vdCBhIHNpbHZlciBidWxsZXQuIAoKQWxzbywgdGhlIHBhdGNoIGlzIHRvdWNoaW5nIGBhdGgxMmtfYnNzX2Fzc29jYC4gVGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZCBkdXJpbmcgYXNzb2NpYXRpb24sIHNvIGhvdyBhbSBJIGdvaW5nIHRvIGdldCB0byBpdCBpbiB0aGUgZmlyc3QgcGxhY2U/IElmIHRoZSBoYXJkd2FyZSBpc24mIzM5O3QgcGh5c2ljYWxseSBwcmVzZW50LCB0aGUgZHJpdmVyIHdvbuKAmXQgZXZlbiBwcm9iZSwgYW5kIGBhdGgxMmtfYnNzX2Fzc29jYCByZW1haW5zIHVudG91Y2hlZC4KClJpZ2h0LiBJIGtub3cgYG1hYzgwMjExX2h3c2ltYCBlbXVsYXRlcyBNQUM4MDIxMSwgYnV0IHRoZSBgYXRoMTJrYCBkcml2ZXIgaXMgYSBmdWxsIE1BQyBkcml2ZXIsIG9yIGF0IGxlYXN0IGl0IHJlZ2lzdGVycyB0byBtYWM4MDIxMSwgYnV0IGZ1bmRhbWVudGFsbHkgcmVsaWVzIG9uIHRoZSByZWFsIGhhcmR3YXJlIGZvciBwcm9iaW5nLiBTbyB0aGUgdXN1YWwgdHJpY2tzIHdvbiYjMzk7dCB3b3JrLgoKQWxyaWdodCwgdGltZSB0byBnZXQgcHJhY3RpY2FsLiBUaGUgcXVlc3Rpb24gaXMsIGNhbiBJIHRyaWNrIHRoZSBzeXN0ZW0gaW50byBwcm9iaW5nIGBhdGgxMmtgIHdpdGhvdXQgdGhlIHBoeXNpY2FsIGhhcmR3YXJlIGJlaW5nIHByZXNlbnQ/IEkmIzM5O2xsIG5lZWQgdG8gZmlndXJlIG91dCBob3cgdG8gbG9hZCB0aGlzIHRoaW5nIGluIGEgY29udHJvbGxlZCBlbnZpcm9ubWVudC4gTGV0JiMzOTtzIHNlZS4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDA0OjA1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YXRoMTJrX2NvcmVfcHJvYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDQ6MDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk1MzYKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAyNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqQ2hlY2tpbmcgdGhlIFByb2JlIEZ1bmN0aW9ucyoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkmIzM5O20gdGhpbmtpbmcsICYjMzQ7V2hlcmUgZG8gd2Ugc3RhcnQgdHJvdWJsZXNob290aW5nIHRoaXMgcGFydGljdWxhciBhdGgxMmsgaXNzdWU/JiMzNDsgTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gemVybyBpbiBvbiB0aGUgY29yZSBvZiB0aGUgZGV2aWNlIGluaXRpYWxpemF0aW9uLiBTbywgdGhlIGZpcnN0IHBsYWNlIEkmIzM5O20gZ29pbmcgdG8gbG9vayBpcyBlaXRoZXIgYGF0aDEya19wY2lfcHJvYmVgIG9yIGBhdGgxMmtfYWhiX3Byb2JlYC4gVGhlc2UgYXJlIHRoZSBlbnRyeSBwb2ludHMg4oCTIHRoZSBmdW5jdGlvbnMgdGhhdCBhcmUgY2FsbGVkIHdoZW4gdGhlIGRyaXZlciBpcyBhdHRlbXB0aW5nIHRvIGluaXRpYWxpemUgYSBQQ0kgb3IgQUhCLWJhc2VkIGF0aDEyayBkZXZpY2UsIHJlc3BlY3RpdmVseS4gS25vd2luZyB3aGljaCBvbmUgaXMgcmVsZXZhbnQgaXMgY3J1Y2lhbCB0byB1bmRlcnN0YW5kaW5nIHRoZSBwYXRoIG9mIGV4ZWN1dGlvbi4gRnJvbSB0aGVyZSBJIGNhbiBmb2xsb3cgdGhlIGNvbnRyb2wgZmxvdywgbG9vayBhdCB0aGUgZXJyb3IgY29kZXMgYW5kIGxvZ3MsIGFuZCBwaWVjZSB0b2dldGhlciB0aGUgc2VxdWVuY2UgdGhhdCBpcyBmYWlsaW5nLiBJdCYjMzk7cyB0aGUgZmlyc3Qgc3RlcCB0byBuYXJyb3dpbmcgZG93biB0aGUgcm9vdCBjYXVzZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDQ6MDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YXRoMTJrX3BjaV9wcm9iZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM9MTUxMz1hdGgxMmtfZ2V0X2RldmljZV9mYW1pbHkoY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKnBjaV9kZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xNTMzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoxNTM0OnN0YXRpYyBpbnQgYXRoMTJrX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTUzNS1cdFx0XHQgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKnBjaV9kZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYz0xODE0PWludCBhdGgxMmtfcGNpX3JlZ2lzdGVyX2RyaXZlcihjb25zdCBlbnVtIGF0aDEya19kZXZpY2VfZmFtaWx5IGRldmljZV9pZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTE4MzUtXHRwY2lfZHJpdmVyLVx1MDAzZWlkX3RhYmxlID0gZHJpdmVyLVx1MDAzZWlkX3RhYmxlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoxODM2Olx0cGNpX2RyaXZlci1cdTAwM2Vwcm9iZSA9IGF0aDEya19wY2lfcHJvYmU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTE4MzctXHRwY2lfZHJpdmVyLVx1MDAzZXJlbW92ZSA9IGF0aDEya19wY2lfcmVtb3ZlO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwNDowNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDE1MwoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDE0OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBhdGgxMmsgRHJpdmVyIGluIGEgVmlydHVhbGl6ZWQgRW52aXJvbm1lbnQqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgZHJpdmVyLCBhbmQgaXQmIzM5O3MgcHJldHR5IGNsZWFyOiBpdCYjMzk7cyBhIHN0YW5kYXJkIFBDSSBkcml2ZXIuIE5vdGhpbmcgdW51c3VhbCB0aGVyZS4gVGhlIHByb2JsZW0gaXMsIHdpdGhvdXQgdGhlIGFjdHVhbCBwaHlzaWNhbCBQQ0kgZGV2aWNlIHByZXNlbnQsIHRoZSBgcHJvYmVgIGZ1bmN0aW9uLCB0aGUgb25lIHRoYXQga2lja3Mgb2ZmIHRoZSB3aG9sZSBpbml0aWFsaXphdGlvbiBwcm9jZXNzLCBpc24mIzM5O3QgZ29pbmcgdG8gYmUgY2FsbGVkLiBUaGF0IG1lYW5zIG5vbmUgb2YgdGhlIGNvZGUgd2l0aGluLCBpbmNsdWRpbmcgdGhlIGltcG9ydGFudCBgYXRoMTJrX2Jzc19hc3NvY2AgZnVuY3Rpb24sIGlzIGdvaW5nIHRvIGJlIHJlYWNoYWJsZSBpbiBhIHB1cmVseSB2aXJ0dWFsaXplZCBzZXR1cC4gRW52aXJvbm1lbnRzIGxpa2UgR29vZ2xlIENvbXB1dGUgRW5naW5lIG9yIFFFTVUgd2l0aG91dCBQQ0kgcGFzc3Rocm91Z2gsIHdoZXJlIHdlJiMzOTtyZSBub3QgZGlyZWN0bHkgZXhwb3NpbmcgdGhlIFF1YWxjb21tIFdpLUZpIDcgaGFyZHdhcmUsIGFyZSBnb2luZyB0byBwcmV2ZW50IHRoYXQgY29kZSBmcm9tIHJ1bm5pbmcuCgpUaGVyZWZvcmUsIGdpdmVuIHRoZSBjb25zdHJhaW50IG9mICpubyogcGh5c2ljYWwgZGV2aWNlIGFuZCBhICp2aXJ0dWFsKiBlbnZpcm9ubWVudCwgc2V0dGluZyBgV29ydGhGdXp6aW5nYCB0byBgZmFsc2VgIGlzIHRoZSByaWdodCBjYWxsIGhlcmUuIFRoZSBjb25kaXRpb25zIGZvciBmdXp6aW5nIGp1c3QgYXJlbiYjMzk7dCBtZXQuCgpCdXQsIEkgc2hvdWxkIHByb2JhYmx5IGRvdWJsZS1jaGVjayB0aGF0IGFzc3VtcHRpb24ganVzdCB0byBiZSBjZXJ0YWluLiBMZXQgbWUgcXVpY2tseSBzY291ciB0aGUgY29kZWJhc2UgdG8gc2VlIGlmIHRoZXJlJiMzOTtzIGFueSBmb3JtIG9mIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgYGF0aDEya2AuIEkmIzM5O2xsIGZvY3VzIG15IHNlYXJjaCBvbiBsaWtlbHkgYXJlYXMsIGxpa2UgdGhlIGB0b29scy90ZXN0aW5nL2AgZGlyZWN0b3J5IG9yIHBlcmhhcHMgc29tZXRoaW5nIHNpbWlsYXIgdG8gYG1hYzgwMjExX2h3c2ltLmNgIGluIHRoZSB3aXJlbGVzcyBkcml2ZXJzLiBKdXN0IHdhbnQgdG8gYmUgYWJzb2x1dGVseSBzdXJlIHRoZXJlIGlzbiYjMzk7dCBzb21lIGJhY2tkb29yIGVtdWxhdGlvbiB0aGF0IHdvdWxkIGNoYW5nZSBteSBjb25jbHVzaW9uLiBJIGNhbiYjMzk7dCB0aGluayBvZiBhbnkgb2ZmIHRoZSB0b3Agb2YgbXkgaGVhZCwgYnV0IGJlc3QgdG8gYmUgdGhvcm91Z2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDA0OjA1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YXRoMTJrJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFjODAyMTFfaHdzaW0uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDA0OjA1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwNjgzCgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyBQb3RlbnRpYWwgVGVzdCBNb2RlIEltcGxlbWVudGF0aW9ucyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgZm9yIGEgc3BlY2lmaWMgY2FwYWJpbGl0eSwgYW5kIG15IGluaXRpYWwgc2VhcmNoIGluIGBtYWM4MDIxMV9od3NpbS5jYCB5aWVsZGVkIG5vdGhpbmcuIFRoYXQmIzM5O3MgYSBiaXQgc3VycHJpc2luZywgZ2l2ZW4gdGhlIHVzdWFsIGFzc29jaWF0aW9uIG9mIGhhcmR3YXJlIHNpbXVsYXRpb24gd2l0aCB0ZXN0IG1vZGVzLiBBbHJpZ2h0LCBsZXQmIzM5O3MgYnJvYWRlbiB0aGUgc2NvcGUuIE15IG5leHQgdGhvdWdodCBpcyB0byBpbnZlc3RpZ2F0ZSB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuY2AgZmlsZS4gR2l2ZW4gdGhlIGBhdGgxMmtgIGlzIGEgcmVjZW50IGFuZCBjb21wbGV4IHdpcmVsZXNzIGRyaXZlciwgYW5kICYjMzk7dGVzdG1vZGUmIzM5OyBpcyBleHBsaWNpdGx5IGluIHRoZSBmaWxlbmFtZSwgdGhlcmUmIzM5O3MgYSBnb29kIGNoYW5jZSB0aGF0JiMzOTtzIHdoZXJlIGFueSByZWxldmFudCBmdW5jdGlvbmFsaXR5IG1pZ2h0IHJlc2lkZS4gSXQmIzM5O3MgYSBzZW5zaWJsZSBuZXh0IHN0ZXAgaW4gdGhlIHByb2Nlc3MuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDA0OjA1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3Rlc3Rtb2RlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy02LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjc6I2luY2x1ZGUgXCYjMzQ7dGVzdG1vZGUuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTgtI2luY2x1ZGUgXHUwMDNjbmV0L25ldGxpbmsuaFx1MDAzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xMy0jaW5jbHVkZSBcJiMzNDtoaWYuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjE0OiNpbmNsdWRlIFwmIzM0Oy4uL3Rlc3Rtb2RlX2kuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTE1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYz00NT12b2lkIGF0aDEya190bV93bWlfZXZlbnRfdW5zZWdtZW50ZWQoc3RydWN0IGF0aDEya19iYXNlICphYiwgdTMyIGNtZF9pZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNTEtXHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX1RFU1RNT0RFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjUyOlx0XHQgICBcJiMzNDt0ZXN0bW9kZSBldmVudCB3bWkgY21kX2lkICVkIHNrYiBsZW5ndGggJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNTMtXHRcdCAgIGNtZF9pZCwgc2tiLVx1MDAzZWxlbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTU4LVx0aWYgKCFhcikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjU5Olx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7dGVzdG1vZGUgZXZlbnQgbm90IGhhbmRsZWQgZHVlIHRvIGludmFsaWQgcGRldlxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNjAtXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6NjU6XHRubF9za2IgPSBjZmc4MDIxMV90ZXN0bW9kZV9hbGxvY19ldmVudF9za2IoYXItXHUwMDNlYWgtXHUwMDNlaHctXHUwMDNld2lwaHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNjYtXHRcdFx0XHRcdFx0ICAgMiAqIG5sYV90b3RhbF9zaXplKHNpemVvZih1MzIpKSAmIzQzO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy03Mi1cdFx0YXRoMTJrX3dhcm4oYWIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6NzM6XHRcdFx0ICAgIFwmIzM0O2ZhaWxlZCB0byBhbGxvY2F0ZSBza2IgZm9yIHVuc2VnbWVudGVkIHRlc3Rtb2RlIHdtaSBldmVudFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNzQtXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNzktXHQgICAgbmxhX3B1dChubF9za2IsIEFUSF9UTV9BVFRSX0RBVEEsIHNrYi1cdTAwM2VsZW4sIHNrYi1cdTAwM2VkYXRhKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjgwOlx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7ZmFpbGVkIHRvIHBvcHVsYXRlIHRlc3Rtb2RlIHVuc2VnbWVudGVkIGV2ZW50XFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy04MS1cdFx0a2ZyZWVfc2tiKG5sX3NrYik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTg0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjg1Olx0Y2ZnODAyMTFfdGVzdG1vZGVfZXZlbnQobmxfc2tiLCBHRlBfQVRPTUlDKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy04Ni19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jPTg4PXZvaWQgYXRoMTJrX3RtX3Byb2Nlc3NfZXZlbnQoc3RydWN0IGF0aDEya19iYXNlICphYiwgdTMyIGNtZF9pZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtOTktXHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX1RFU1RNT0RFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjEwMDpcdFx0ICAgXCYjMzQ7dGVzdG1vZGUgZXZlbnQgd21pIGNtZF9pZCAlZCBmdG0gZXZlbnQgbXNnICVwIGRhdGFsZW4gJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMTAxLVx0XHQgICBjbWRfaWQsIGZ0bV9tc2csIGxlbmd0aCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTEwNS1cdGlmIChwZGV2X2lkIFx1MDAzZT0gYWItXHUwMDNlbnVtX3JhZGlvcykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjEwNjpcdFx0YXRoMTJrX3dhcm4oYWIsIFwmIzM0O3Rlc3Rtb2RlIGV2ZW50IG5vdCBoYW5kbGVkIGR1ZSB0byBpbnZhbGlkIHBkZXYgaWRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTEwNy1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xMTItXHRpZiAoIWFyKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6MTEzOlx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7dGVzdG1vZGUgZXZlbnQgbm90IGhhbmRsZWQgZHVlIHRvIGFic2VuY2Ugb2YgcGRldlxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMTE0LVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTE1My1cdHNwaW5fbG9ja19iaChcdTAwMjZhci1cdTAwM2VkYXRhX2xvY2spO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjE1NDpcdG5sX3NrYiA9IGNmZzgwMjExX3Rlc3Rtb2RlX2FsbG9jX2V2ZW50X3NrYihhci1cdTAwM2VhaC1cdTAwM2Vody1cdTAwM2V3aXBoeSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xNTUtXHRcdFx0XHRcdFx0ICAgMiAqIG5sYV90b3RhbF9zaXplKHNpemVvZih1MzIpKSAmIzQzO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xNjEtXHRcdGF0aDEya193YXJuKGFiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjE2MjpcdFx0XHQgICAgXCYjMzQ7ZmFpbGVkIHRvIGFsbG9jYXRlIHNrYiBmb3IgdGVzdG1vZGUgd21pIGV2ZW50XFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xNjMtXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMTcwLVx0XHQgICAgXHUwMDI2YWItXHUwMDNlZnRtX2V2ZW50X29iai5ldmVudGRhdGFbMF0pKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6MTcxOlx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7ZmFpbGVkIHRvIHBvcHVsYXRlIHRlc3Rtb2RlIGV2ZW50XCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xNzItXHRcdGtmcmVlX3NrYihubF9za2IpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xNzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6MTc2Olx0Y2ZnODAyMTFfdGVzdG1vZGVfZXZlbnQobmxfc2tiLCBHRlBfQVRPTUlDKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xNzctfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYz0xNzk9c3RhdGljIGludCBhdGgxMmtfdG1fY21kX2dldF92ZXJzaW9uKHN0cnVjdCBhdGgxMmsgKmFyLCBzdHJ1Y3QgbmxhdHRyICp0YltdKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xODMtXHRhdGgxMmtfZGJnKGFyLVx1MDAzZWFiLCBBVEgxMktfREJHX1RFU1RNT0RFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjE4NDpcdFx0ICAgXCYjMzQ7dGVzdG1vZGUgY21kIGdldCB2ZXJzaW9uX21ham9yICVkIHZlcnNpb25fbWlub3IgJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMTg1LVx0XHQgICBBVEhfVEVTVE1PREVfVkVSU0lPTl9NQUpPUixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMTg4LVx0c3Bpbl9sb2NrX2JoKFx1MDAyNmFyLVx1MDAzZWRhdGFfbG9jayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6MTg5Olx0c2tiID0gY2ZnODAyMTFfdGVzdG1vZGVfYWxsb2NfcmVwbHlfc2tiKGFyLVx1MDAzZWFoLVx1MDAzZWh3LVx1MDAzZXdpcGh5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTE5MC1cdFx0XHRcdFx0XHQyICogbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHUzMikpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMjAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjIwNDpcdHJldHVybiBjZmc4MDIxMV90ZXN0bW9kZV9yZXBseShza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTIwNS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jPTIwNz1zdGF0aWMgaW50IGF0aDEya190bV9jbWRfcHJvY2Vzc19mdG0oc3RydWN0IGF0aDEyayAqYXIsIHN0cnVjdCBubGF0dHIgKnRiW10pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTIyOS1cdGF0aDEya19kYmcoYXItXHUwMDNlYWIsIEFUSDEyS19EQkdfVEVTVE1PREUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6MjMwOlx0XHQgICBcJiMzNDt0ZXN0bW9kZSBjbWQgd21pIGNtZF9pZCAlZCBidWYgJXAgYnVmX2xlbiAlZFxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0yMzEtXHRcdCAgIGNtZF9pZCwgYnVmLCBidWZfbGVuKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMjgwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjI4MTpzdGF0aWMgaW50IGF0aDEya190bV9jbWRfdGVzdG1vZGVfc3RhcnQoc3RydWN0IGF0aDEyayAqYXIsIHN0cnVjdCBubGF0dHIgKnRiW10pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMjgyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM9MzAwPXN0YXRpYyBpbnQgYXRoMTJrX3RtX2NtZF93bWkoc3RydWN0IGF0aDEyayAqYXIsIHN0cnVjdCBubGF0dHIgKnRiW10pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTMxOC1cdGlmICghYnVmX2xlbikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjMxOTpcdFx0YXRoMTJrX3dhcm4oYXItXHUwMDNlYWIsIFwmIzM0O05vIGRhdGEgcHJlc2VudCBpbiB0ZXN0bW9kZSBjb21tYW5kXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0zMjAtXHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0zMzEtXHRhdGgxMmtfZGJnKGFyLVx1MDAzZWFiLCBBVEgxMktfREJHX1RFU1RNT0RFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjMzMjpcdFx0ICAgXCYjMzQ7dGVzdG1vZGUgY21kIHdtaSBjbWRfaWQgJWQgIGJ1ZiBsZW5ndGggJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMzMzLVx0XHQgICBjbWRfaWQsIGJ1Zl9sZW4pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0zNDYtXHRcdGRldl9rZnJlZV9za2Ioc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYzozNDc6XHRcdGF0aDEya193YXJuKGFyLVx1MDAzZWFiLCBcJiMzNDtmYWlsZWQgdG8gdHJhbnNtaXQgd21pIGNvbW1hbmQgKHRlc3Rtb2RlKTogJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMzQ4LVx0XHRcdCAgICByZXQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYz0zNTQ9aW50IGF0aDEya190bV9jbWQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTM4NS1cdGNhc2UgQVRIX1RNX0NNRF9URVNUTU9ERV9TVEFSVDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYzozODY6XHRcdHJldHVybiBhdGgxMmtfdG1fY21kX3Rlc3Rtb2RlX3N0YXJ0KGFyLCB0Yik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMzg3LVx0Y2FzZSBBVEhfVE1fQ01EX0dFVF9WRVJTSU9OOlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwNDowNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzkxOQoJCQkJCQkJb3V0cHV0OiAxNDAKCQkJCQkJCXRob3VnaHRzOiAzMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nIERlY2lzaW9uIGZvciBhdGgxMmtfYnNzX2Fzc29jKioKCk9rYXksIGFmdGVyIHRoaW5raW5nIHRoaXMgdGhyb3VnaCwgSSYjMzk7bSBnb2luZyB0byBzZXQgYFdvcnRoRnV6emluZ2AgdG8gYGZhbHNlYC4gVGhlIHRlc3Rtb2RlIGlzIHJlYWxseSBvbmx5IGZvciBzZW5kaW5nIFdNSSBjb21tYW5kcyBmcm9tIHVzZXJzcGFjZSwgaXQgZG9lc24mIzM5O3QgZXZlbiBiZWdpbiB0byBlbXVsYXRlIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlLiBTaW5jZSBgYXRoMTJrYCBpcyBhIFBDSS9BSEIgZHJpdmVyLCBhbmQgdGhlcmUmIzM5O3Mgbm8ga2VybmVsLWxldmVsIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgaXQsIHRoYXQgbWVhbnMgdGhlIGNvZGUgSSBtb2RpZmllZCwgc3BlY2lmaWNhbGx5IGluIGBhdGgxMmtfYnNzX2Fzc29jYCwgaXMgc2ltcGx5IHVucmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBHQ0Ugb3IgUUVNVS4gVGhhdCBsb2dpYyByZWxpZXMgb24gdGhlIGhhcmR3YXJlIGJlaW5nIHByZXNlbnQuCgpMZXQgbWUganVzdCBkb3VibGUtY2hlY2ssIHRob3VnaCwgdG8gbWFrZSBhYnNvbHV0ZWx5IHN1cmUgdGhlcmUmIzM5O3Mgbm8gb3RoZXIgcGF0aCB0byB0aGlzIGZ1bmN0aW9uLiBSaWdodCwgaXQmIzM5O3MgYSBzdGF0aWMgZnVuY3Rpb24gaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmNgLiBJIHJlY2FsbCBpdCYjMzk7cyBhc3NpZ25lZCB0byBgbWFjODAyMTFfb3BzLSZndDtic3NfYXNzb2NgLiBCdXQgaGVyZSYjMzk7cyB0aGUga2lja2VyOiB0aGUgYGF0aDEya2AgZHJpdmVyIHdvbiYjMzk7dCBldmVuICpyZWdpc3Rlciogd2l0aCBgbWFjODAyMTFgIGlmIHRoZSBoYXJkd2FyZSBpc24mIzM5O3QgdGhlcmUuIGBhdGgxMmtfcGNpX3Byb2JlYCBmYWlscyBlYXJseSBpZiBpdCBjYW4mIzM5O3QgZmluZCBhIG1hdGNoaW5nIFBDSSBkZXZpY2UuIFNvIHRoZSBgbWFjODAyMTFgIHN1YnN5c3RlbSB3b24mIzM5O3QgZXZlbiBoYXZlIGFueSBgYXRoMTJrYCBpbnRlcmZhY2VzLCBhbmQgdGhlcmVmb3JlIGBhdGgxMmtfYnNzX2Fzc29jYCAqd2lsbCogbmV2ZXIgZ2V0IGNhbGxlZC4KClRoZXJlZm9yZSwgc2V0dGluZyBgV29ydGhGdXp6aW5nYCB0byBmYWxzZSBpcyB0aGUgY29ycmVjdCBjYWxsLCBnaXZlbiB0aGF0IHRoaXMgbW9kdWxlIGlzIGhhcmR3YXJlLXNwZWNpZmljLCBhbmQgdGhlcmUmIzM5O3Mgbm8gY29kZSBwYXRoIHRoYXQgYWxsb3dzIGl0IHRvIGJlIGV4ZWN1dGVkIGluIGEgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDQ6MDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYXRoMTJrIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kvQUhCIGRyaXZlciBmb3IgUXVhbGNvbW0gV2ktRmkgNyBkZXZpY2VzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gdGhlIGtlcm5lbCAobGlrZSBtYWM4MDIxMV9od3NpbSBmb3IgZ2VuZXJpYyBtYWM4MDIxMSksIHRoZSBkcml2ZXIgd2lsbCBmYWlsIHRvIHByb2JlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VIHdpdGhvdXQgdGhlIHBoeXNpY2FsIGhhcmR3YXJlLiBDb25zZXF1ZW50bHksIHRoZSBtb2RpZmllZCBjb2RlIGluIGBhdGgxMmtfYnNzX2Fzc29jYCBpcyB1bnJlYWNoYWJsZSBhbmQgY2Fubm90IGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMmsgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSS9BSEIgZHJpdmVyIGZvciBRdWFsY29tbSBXaS1GaSA3IGRldmljZXMuIFNpbmNlIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBoYXJkd2FyZSBpbiB0aGUga2VybmVsIChsaWtlIG1hYzgwMjExX2h3c2ltIGZvciBnZW5lcmljIG1hYzgwMjExKSwgdGhlIGRyaXZlciB3aWxsIGZhaWwgdG8gcHJvYmUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUgd2l0aG91dCB0aGUgcGh5c2ljYWwgaGFyZHdhcmUuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaW4gYGF0aDEya19ic3NfYXNzb2NgIGlzIHVucmVhY2hhYmxlIGFuZCBjYW5ub3QgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDA0OjA0OjUxLjQ4NjUyODQ3NloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM2NDk5OTM5NjEzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYXRoMTJrIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kvQUhCIGRyaXZlciBmb3IgUXVhbGNvbW0gV2ktRmkgNyBkZXZpY2VzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gdGhlIGtlcm5lbCAobGlrZSBtYWM4MDIxMV9od3NpbSBmb3IgZ2VuZXJpYyBtYWM4MDIxMSksIHRoZSBkcml2ZXIgd2lsbCBmYWlsIHRvIHByb2JlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VIHdpdGhvdXQgdGhlIHBoeXNpY2FsIGhhcmR3YXJlLiBDb25zZXF1ZW50bHksIHRoZSBtb2RpZmllZCBjb2RlIGluIGBhdGgxMmtfYnNzX2Fzc29jYCBpcyB1bnJlYWNoYWJsZSBhbmQgY2Fubm90IGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDA0OjA0OjUxLjQ4NjUzNjk5NloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Nzc3OTk0MDkzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZTI1YTE5OTIzMTE3NGRiODU4ZThhNDBlN2VmNjY4ZDQ5NTJmYzY1YVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEp1bCAxNyAwNDowNDo0OSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuY1xcbmluZGV4IDE2MzM5NDY5YzI0Y2Q4Li43MDYxMDQxNjg2NTA4YSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuY1xcbkBAIC0zOTg1LDYgKzM5ODUsMTcgQEAgc3RhdGljIHZvaWQgYXRoMTJrX2Jzc19hc3NvYyhzdHJ1Y3QgYXRoMTJrICphcixcXG4gXFx0XFx0YXRoMTJrX3dhcm4oYXItXFx1MDAzZWFiLCBcXFwiZmFpbGVkIHRvIHNldCB2ZGV2ICVpIE9CU1MgUEQgcGFyYW1ldGVyczogJWRcXFxcblxcXCIsXFxuIFxcdFxcdFxcdCAgICBhcnZpZi1cXHUwMDNldmRldl9pZCwgcmV0KTtcXG4gXFxuK1xcdGlmIChhci1cXHUwMDNlYWItXFx1MDAzZWh3X3BhcmFtcy1cXHUwMDNlc3VwcG9ydHNfc3RhX3BzIFxcdTAwMjZcXHUwMDI2XFxuK1xcdCAgICBhaHZpZi1cXHUwMDNldmRldl90eXBlID09IFdNSV9WREVWX1RZUEVfU1RBIFxcdTAwMjZcXHUwMDI2XFxuK1xcdCAgICBhaHZpZi1cXHUwMDNldmRldl9zdWJ0eXBlID09IFdNSV9WREVWX1NVQlRZUEVfTk9ORSkge1xcbitcXHRcXHRyZXQgPSBhdGgxMmtfd21pX3ZkZXZfc2V0X3BhcmFtX2NtZChhciwgYXJ2aWYtXFx1MDAzZXZkZXZfaWQsXFxuK1xcdFxcdFxcdFxcdFxcdFxcdCAgICBXTUlfVkRFVl9QQVJBTV9EVElNX1BPTElDWSxcXG4rXFx0XFx0XFx0XFx0XFx0XFx0ICAgIFdNSV9EVElNX1BPTElDWV9TVElDSyk7XFxuK1xcdFxcdGlmIChyZXQpXFxuK1xcdFxcdFxcdGF0aDEya193YXJuKGFyLVxcdTAwM2VhYiwgXFxcImZhaWxlZCB0byBzZXQgdmRldiAlZCBzdGljayBEVElNIHBvbGljeTogJWRcXFxcblxcXCIsXFxuK1xcdFxcdFxcdFxcdCAgICBhcnZpZi1cXHUwMDNldmRldl9pZCwgcmV0KTtcXG4rXFx0fVxcbitcXG4gXFx0aWYgKHRlc3RfYml0KFdNSV9UTFZfU0VSVklDRV8xMURfT0ZGTE9BRCwgYXItXFx1MDAzZWFiLVxcdTAwM2V3bWlfYWIuc3ZjX21hcCkgXFx1MDAyNlxcdTAwMjZcXG4gXFx0ICAgIGFodmlmLVxcdTAwM2V2ZGV2X3R5cGUgPT0gV01JX1ZERVZfVFlQRV9TVEEgXFx1MDAyNlxcdTAwMjZcXG4gXFx0ICAgIGFodmlmLVxcdTAwM2V2ZGV2X3N1YnR5cGUgPT0gV01JX1ZERVZfU1VCVFlQRV9OT05FKVxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuaFxcbmluZGV4IDUxZjM0MjZlMWZjZDkyLi4wMTQ1Y2M0Nzc5NDRmYyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5oXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuaFxcbkBAIC0yMzMwLDYgKzIzMzAsMTMgQEAgZW51bSB3bWlfc2xvdF90aW1lIHtcXG4gXFx0V01JX1ZERVZfU0xPVF9USU1FX1NIT1JUID0gMixcXG4gfTtcXG4gXFxuK2VudW0gd21pX2R0aW1fcG9saWN5IHtcXG4rXFx0V01JX0RUSU1fUE9MSUNZX0lHTk9SRSA9IDEsXFxuK1xcdFdNSV9EVElNX1BPTElDWV9OT1JNQUwgPSAyLFxcbitcXHRXTUlfRFRJTV9QT0xJQ1lfU1RJQ0sgID0gMyxcXG4rXFx0V01JX0RUSU1fUE9MSUNZX0FVVE8gICA9IDQsXFxuK307XFxuK1xcbiBlbnVtIHdtaV9wcmVhbWJsZSB7XFxuIFxcdFdNSV9WREVWX1BSRUFNQkxFX0xPTkcgPSAxLFxcbiBcXHRXTUlfVkRFVl9QUkVBTUJMRV9TSE9SVCA9IDIsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDA0OjA0OjUyLjI2NTE4NDU1OVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzU3MjEyNzI5MzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMmsgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSS9BSEIgZHJpdmVyIGZvciBRdWFsY29tbSBXaS1GaSA3IGRldmljZXMuIFNpbmNlIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBoYXJkd2FyZSBpbiB0aGUga2VybmVsIChsaWtlIG1hYzgwMjExX2h3c2ltIGZvciBnZW5lcmljIG1hYzgwMjExKSwgdGhlIGRyaXZlciB3aWxsIGZhaWwgdG8gcHJvYmUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUgd2l0aG91dCB0aGUgcGh5c2ljYWwgaGFyZHdhcmUuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaW4gYGF0aDEya19ic3NfYXNzb2NgIGlzIHVucmVhY2hhYmxlIGFuZCBjYW5ub3QgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBlMjVhMTk5MjMxMTc0ZGI4NThlOGE0MGU3ZWY2NjhkNDk1MmZjNjVhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMTcgMDQ6MDQ6NDkgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuY1xuaW5kZXggMTYzMzk0NjljMjRjZDguLjcwNjEwNDE2ODY1MDhhIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuY1xuQEAgLTM5ODUsNiArMzk4NSwxNyBAQCBzdGF0aWMgdm9pZCBhdGgxMmtfYnNzX2Fzc29jKHN0cnVjdCBhdGgxMmsgKmFyLFxuIFx0XHRhdGgxMmtfd2Fybihhci1cdTAwM2VhYiwgXCJmYWlsZWQgdG8gc2V0IHZkZXYgJWkgT0JTUyBQRCBwYXJhbWV0ZXJzOiAlZFxcblwiLFxuIFx0XHRcdCAgICBhcnZpZi1cdTAwM2V2ZGV2X2lkLCByZXQpO1xuIFxuK1x0aWYgKGFyLVx1MDAzZWFiLVx1MDAzZWh3X3BhcmFtcy1cdTAwM2VzdXBwb3J0c19zdGFfcHMgXHUwMDI2XHUwMDI2XG4rXHQgICAgYWh2aWYtXHUwMDNldmRldl90eXBlID09IFdNSV9WREVWX1RZUEVfU1RBIFx1MDAyNlx1MDAyNlxuK1x0ICAgIGFodmlmLVx1MDAzZXZkZXZfc3VidHlwZSA9PSBXTUlfVkRFVl9TVUJUWVBFX05PTkUpIHtcbitcdFx0cmV0ID0gYXRoMTJrX3dtaV92ZGV2X3NldF9wYXJhbV9jbWQoYXIsIGFydmlmLVx1MDAzZXZkZXZfaWQsXG4rXHRcdFx0XHRcdFx0ICAgIFdNSV9WREVWX1BBUkFNX0RUSU1fUE9MSUNZLFxuK1x0XHRcdFx0XHRcdCAgICBXTUlfRFRJTV9QT0xJQ1lfU1RJQ0spO1xuK1x0XHRpZiAocmV0KVxuK1x0XHRcdGF0aDEya193YXJuKGFyLVx1MDAzZWFiLCBcImZhaWxlZCB0byBzZXQgdmRldiAlZCBzdGljayBEVElNIHBvbGljeTogJWRcXG5cIixcbitcdFx0XHRcdCAgICBhcnZpZi1cdTAwM2V2ZGV2X2lkLCByZXQpO1xuK1x0fVxuK1xuIFx0aWYgKHRlc3RfYml0KFdNSV9UTFZfU0VSVklDRV8xMURfT0ZGTE9BRCwgYXItXHUwMDNlYWItXHUwMDNld21pX2FiLnN2Y19tYXApIFx1MDAyNlx1MDAyNlxuIFx0ICAgIGFodmlmLVx1MDAzZXZkZXZfdHlwZSA9PSBXTUlfVkRFVl9UWVBFX1NUQSBcdTAwMjZcdTAwMjZcbiBcdCAgICBhaHZpZi1cdTAwM2V2ZGV2X3N1YnR5cGUgPT0gV01JX1ZERVZfU1VCVFlQRV9OT05FKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5oXG5pbmRleCA1MWYzNDI2ZTFmY2Q5Mi4uMDE0NWNjNDc3OTQ0ZmMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5oXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5oXG5AQCAtMjMzMCw2ICsyMzMwLDEzIEBAIGVudW0gd21pX3Nsb3RfdGltZSB7XG4gXHRXTUlfVkRFVl9TTE9UX1RJTUVfU0hPUlQgPSAyLFxuIH07XG4gXG4rZW51bSB3bWlfZHRpbV9wb2xpY3kge1xuK1x0V01JX0RUSU1fUE9MSUNZX0lHTk9SRSA9IDEsXG4rXHRXTUlfRFRJTV9QT0xJQ1lfTk9STUFMID0gMixcbitcdFdNSV9EVElNX1BPTElDWV9TVElDSyAgPSAzLFxuK1x0V01JX0RUSU1fUE9MSUNZX0FVVE8gICA9IDQsXG4rfTtcbitcbiBlbnVtIHdtaV9wcmVhbWJsZSB7XG4gXHRXTUlfVkRFVl9QUkVBTUJMRV9MT05HID0gMSxcbiBcdFdNSV9WREVWX1BSRUFNQkxFX1NIT1JUID0gMixcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDA0OjA0OjUyLjI2NTE4NTc5OVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ3NTM1MjQzMjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgUGF0Y2ggdG8gYSBRdWFsY29tbSBXaS1GaSA3IERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgYGF0aDEya2Ag4oCTIHNwZWNpZmljYWxseSwgaXQncyBhZGRpbmcgYSBjYWxsIHRvIGBhdGgxMmtfd21pX3ZkZXZfc2V0X3BhcmFtX2NtZGAgZm9yIGBXTUlfVkRFVl9QQVJBTV9EVElNX1BPTElDWWAgd2l0aCBgV01JX0RUSU1fUE9MSUNZX1NUSUNLYCB3aXRoaW4gYGF0aDEya19ic3NfYXNzb2NgLiBUaGlzIGxvb2tzIGxpa2UgYSB2ZXJ5IHRhcmdldGVkIGNoYW5nZSB3aXRoaW4gdGhlIGBhdGgxMmtgIGRyaXZlci4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBcIkNhbiB3ZSBmdXp6IHRoaXM/XCJcblxuU2luY2UgYGF0aDEya2AgaGFuZGxlcyBoYXJkd2FyZSwgc3BlY2lmaWNhbGx5IGZvciBRdWFsY29tbSBXaS1GaSA3IGRldmljZXMsIEkgaGF2ZSB0byBjb25zaWRlciB0aGUgZnV6emFiaWxpdHkgbGFuZHNjYXBlLiBIYXJkd2FyZSBkcml2ZXJzLCBlc3BlY2lhbGx5IFBDSS9BSEIgb25lcywgYXJlIG5vdG9yaW91c2x5IGRpZmZpY3VsdCB0byBmdXp6IGRpcmVjdGx5IHVubGVzcyB3ZSdyZSBkZWFsaW5nIHdpdGggYSBzcGVjaWZpYyBlbXVsYXRvciBvciBhIFVTQiBkcml2ZXIgdGhhdCB3ZSBjYW4gaGl0IHdpdGggYGR1bW15X2hjZGAuIEJ1dCBpdCBzb3VuZHMgbGlrZSB0aGlzIGlzIGEgUENJL0FIQiBkcml2ZXIuXG5cblRpbWUgdG8gY29uZmlybSBteSBzdXNwaWNpb25zIGFuZCB2ZXJpZnkgdGhhdCBpdOKAmXMgbm90IFVTQi4gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoZSBgYXRoMTJrYCBkcml2ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzOTcsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwNDowNDo1Ny4wMTg3MTI2MDRaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzU5NTIyNDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoMTJrXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc9Mj1jb25maWcgQVRIMTJLXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjM6XFx0dHJpc3RhdGUgXFxcIlF1YWxjb21tIFdpLUZpIDcgc3VwcG9ydCAoYXRoMTJrKVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNC1cXHRkZXBlbmRzIG9uIE1BQzgwMjExIFxcdTAwMjZcXHUwMDI2IEhBU19ETUEgXFx1MDAyNlxcdTAwMjYgUENJXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjE1OlxcdCAgSWYgeW91IGNob29zZSB0byBidWlsZCBhIG1vZHVsZSwgaXQnbGwgYmUgY2FsbGVkIGF0aDEyay5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnPTE3PWNvbmZpZyBBVEgxMktfQUhCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjE4OlxcdGJvb2wgXFxcIlF1YWxjb21tIGF0aDEyayBBSEIgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMTktXFx0ZGVwZW5kcyBvbiBBVEgxMksgXFx1MDAyNlxcdTAwMjYgUkVNT1RFUFJPQ1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnPTI1PWNvbmZpZyBBVEgxMktfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MjY6XFx0Ym9vbCBcXFwiYXRoMTJrIGRlYnVnZ2luZ1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMjctXFx0ZGVwZW5kcyBvbiBBVEgxMktcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZz0zNT1jb25maWcgQVRIMTJLX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MzY6XFx0Ym9vbCBcXFwiUXVhbGNvbW0gYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMzctXFx0ZGVwZW5kcyBvbiBBVEgxMksgXFx1MDAyNlxcdTAwMjYgTUFDODAyMTFfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zOC1cXHRoZWxwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjM5OlxcdCAgRW5hYmxlIGF0aDEyayBkZWJ1Z2ZzIHN1cHBvcnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc9NDQ9Y29uZmlnIEFUSDEyS19UUkFDSU5HXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjQ1OlxcdGJvb2wgXFxcImF0aDEyayB0cmFjaW5nIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTQ2LVxcdGRlcGVuZHMgb24gQVRIMTJLIFxcdTAwMjZcXHUwMDI2IEVWRU5UX1RSQUNJTkdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDctXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo0ODpcXHQgIEVuYWJsZSBhdGgxMmsgdHJhY2luZyBpbmZyYXN0cnVjdHVyZS5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc9NTM9Y29uZmlnIEFUSDEyS19DT1JFRFVNUFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo1NDpcXHRib29sIFxcXCJhdGgxMmsgY29yZWR1bXBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTU1LVxcdGRlcGVuZHMgb24gQVRIMTJLXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNTctXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo1ODpcXHQgIEVuYWJsZSBhdGgxMmsgY29yZWR1bXAgY29sbGVjdGlvblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy01OS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDQ6MDQ6NTcuMDk0NjcwNDAzWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzgxNjU1MzkzNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipDb25zaWRlcmluZyB0aGUgQXJjaGl0ZWN0dXJlIGFuZCBFbnZpcm9ubWVudCoqXG5cbk9rYXksIHNvIEknbSB0aGlua2luZyB0aHJvdWdoIHRoaXMgZHJpdmVyLiBNeSBpbml0aWFsIGFzc2Vzc21lbnQgaGluZ2VzIG9uIHVuZGVyc3RhbmRpbmcgdGhlIGludGVycGxheSBiZXR3ZWVuIFBDSSBhbmQgQUhCIOKAkyB0aGF0J3MgZnVuZGFtZW50YWwuIFNwZWNpZmljYWxseSwgdGhpcyBkcml2ZXIgaXMgdGFpbG9yZWQgZm9yIFF1YWxjb21tIFdpLUZpIDcgZGV2aWNlcy4gS25vd2luZyB0aGlzLCBJIGltbWVkaWF0ZWx5IHJlY29nbml6ZSBpdCdzIGEgaGFyZHdhcmUgZHJpdmVyLCBtZWFuaW5nIGl0J3MgZGVzaWduZWQgdG8gZGlyZWN0bHkgaW50ZXJmYWNlIHdpdGggcGh5c2ljYWwgaGFyZHdhcmUuXG5cblRoZSBxdWVzdGlvbiB0aGVuIGJlY29tZXM6IGNhbiBJIGV2ZW4gKmFjY2VzcyogdGhpcyBkcml2ZXIgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gUGxhdGZvcm1zIGxpa2UgR29vZ2xlIENvbXB1dGUgRW5naW5lIChHQ0UpIG9yIFFFTVUgYXJlIGNvbW1vbiwgYnV0IHRoZXkgYWJzdHJhY3QgYXdheSBmcm9tIHRoZSBwaHlzaWNhbCBsYXllci4gVW5sZXNzIHRoZXJlJ3MgYSBzcGVjaWZpYyBlbXVsYXRvciBidWlsdCBmb3IgdGhpcyBwYXJ0aWN1bGFyICdhdGgxMmsnIGNvbXBvbmVudCwgdGhlIGFuc3dlciBpcyBsaWtlbHkgbm8g4oCTIEkgd29uJ3QgYmUgYWJsZSB0byBpbnRlcmFjdCB3aXRoIGl0IGRpcmVjdGx5LiBUaGVyZWZvcmUsIEkgbmVlZCB0byBjaGVjayDigJMgYXJlIHRoZXJlIGFueSBlbXVsYXRvcnMgb3V0IHRoZXJlIHRoYXQgc3BlY2lmaWNhbGx5IHRhcmdldCBhdGgxMms/IFRoYXQncyB0aGUga2V5IHRvIG1ha2luZyBhbnkgcHJvZ3Jlc3MgaW4gYSB2aXJ0dWFsIHNldHRpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3OTYsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwNDowNTowMC45MTEyMjczMDhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTUxMTkwNjk3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aDEya1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDM0OTQ4IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc9Mj1jb25maWcgQVRIMTJLXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjM6XFx0dHJpc3RhdGUgXFxcIlF1YWxjb21tIFdpLUZpIDcgc3VwcG9ydCAoYXRoMTJrKVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNC1cXHRkZXBlbmRzIG9uIE1BQzgwMjExIFxcdTAwMjZcXHUwMDI2IEhBU19ETUEgXFx1MDAyNlxcdTAwMjYgUENJXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjE1OlxcdCAgSWYgeW91IGNob29zZSB0byBidWlsZCBhIG1vZHVsZSwgaXQnbGwgYmUgY2FsbGVkIGF0aDEyay5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnPTE3PWNvbmZpZyBBVEgxMktfQUhCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjE4OlxcdGJvb2wgXFxcIlF1YWxjb21tIGF0aDEyayBBSEIgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMTktXFx0ZGVwZW5kcyBvbiBBVEgxMksgXFx1MDAyNlxcdTAwMjYgUkVNT1RFUFJPQ1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnPTI1PWNvbmZpZyBBVEgxMktfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MjY6XFx0Ym9vbCBcXFwiYXRoMTJrIGRlYnVnZ2luZ1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMjctXFx0ZGVwZW5kcyBvbiBBVEgxMktcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZz0zNT1jb25maWcgQVRIMTJLX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MzY6XFx0Ym9vbCBcXFwiUXVhbGNvbW0gYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMzctXFx0ZGVwZW5kcyBvbiBBVEgxMksgXFx1MDAyNlxcdTAwMjYgTUFDODAyMTFfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zOC1cXHRoZWxwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjM5OlxcdCAgRW5hYmxlIGF0aDEyayBkZWJ1Z2ZzIHN1cHBvcnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc9NDQ9Y29uZmlnIEFUSDEyS19UUkFDSU5HXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjQ1OlxcdGJvb2wgXFxcImF0aDEyayB0cmFjaW5nIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTQ2LVxcdGRlcGVuZHMgb24gQVRIMTJLIFxcdTAwMjZcXHUwMDI2IEVWRU5UX1RSQUNJTkdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDctXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo0ODpcXHQgIEVuYWJsZSBhdGgxMmsgdHJhY2luZyBpbmZyYXN0cnVjdHVyZS5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc9NTM9Y29uZmlnIEFUSDEyS19DT1JFRFVNUFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo1NDpcXHRib29sIFxcXCJhdGgxMmsgY29yZWR1bXBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTU1LVxcdGRlcGVuZHMgb24gQVRIMTJLXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNTctXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo1ODpcXHQgIEVuYWJsZSBhdGgxMmsgY29yZWR1bXAgY29sbGVjdGlvblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy01OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX0FUSDEySykgKz0gYXRoMTJrLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlOjM6YXRoMTJrLXkgKz0gY29yZS5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTQtXFx0ICAgIGhhbC5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZToyNTphdGgxMmstJChDT05GSUdfQVRIMTJLX0FIQikgKz0gYWhiLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGU9Mjc9b2JqLSQoQ09ORklHX0FUSDEySykgKz0gd2lmaTcvXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZS0yOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlOjI5OmF0aDEyay0kKENPTkZJR19BVEgxMktfREVCVUdGUykgKz0gZGVidWdmcy5vIGRlYnVnZnNfaHR0X3N0YXRzLm8gZGVidWdmc19zdGEub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGU6MzA6YXRoMTJrLSQoQ09ORklHX0FDUEkpICs9IGFjcGkub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGU6MzE6YXRoMTJrLSQoQ09ORklHX0FUSDEyS19UUkFDSU5HKSArPSB0cmFjZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZTozMjphdGgxMmstJChDT05GSUdfUE0pICs9IHdvdy5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZTozMzphdGgxMmstJChDT05GSUdfQVRIMTJLX0NPUkVEVU1QKSArPSBjb3JlZHVtcC5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZTozNDphdGgxMmstJChDT05GSUdfTkw4MDIxMV9URVNUTU9ERSkgKz0gdGVzdG1vZGUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGU6MzU6YXRoMTJrLSQoQ09ORklHX1RIRVJNQUwpICs9IHRoZXJtYWwub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMzYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxMTpzdGF0aWMgaW50IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLCBpbnQgZnVuYylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xMi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xOC1cXHRpZiAoIXJvb3RfaGFuZGxlKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTk6XFx0XFx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19CT09ULCBcXFwiaW52YWxpZCBhY3BpIGhhbmRsZXJcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIwLVxcdFxcdHJldHVybiAtRU9QTk9UU1VQUDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI2LVxcdGlmICghb2JqKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6Mjc6XFx0XFx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19CT09ULCBcXFwiYWNwaV9ldmFsdWF0ZV9kc20oKSBmYWlsZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI4LVxcdFxcdHJldHVybiAtRU5PRU5UO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDYtXFx0XFx0XFx0XFx0ICAgQVRIMTJLX0FDUElfQkRGX0FOQ0hPUl9TVFJJTkdfTEVOKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ3OlxcdFxcdFxcdFxcdGF0aDEya193YXJuKGFiLCBcXFwiaW52YWxpZCBBQ1BJIERTTSBCREYgc2l6ZTogJWRcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDgtXFx0XFx0XFx0XFx0XFx0ICAgIG9iai1cXHUwMDNlc3RyaW5nLmxlbmd0aCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy02Mi1cXHRcXHRcXHQgICAgb2JqLVxcdTAwM2VidWZmZXIubGVuZ3RoIFxcdTAwM2UgQVRIMTJLX0FDUElfRFNNX0ZVTkNfTUFYX0JJVE1BUF9TSVpFKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NjM6XFx0XFx0XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJpbnZhbGlkIEFDUEkgRFNNIGZ1bmMgc2l6ZTogJWRcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNjQtXFx0XFx0XFx0XFx0XFx0ICAgIG9iai1cXHUwMDNlYnVmZmVyLmxlbmd0aCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy03NS1cXHRcXHRcXHRpZiAob2JqLVxcdTAwM2VidWZmZXIubGVuZ3RoICE9IEFUSDEyS19BQ1BJX0RTTV9UQVNfQ0ZHX1NJWkUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo3NjpcXHRcXHRcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImludmFsaWQgQUNQSSBEU00gVEFTIGNvbmZpZyBzaXplOiAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy03Ny1cXHRcXHRcXHRcXHRcXHQgICAgb2JqLVxcdTAwM2VidWZmZXIubGVuZ3RoKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTg3LVxcdFxcdFxcdGlmIChvYmotXFx1MDAzZWJ1ZmZlci5sZW5ndGggIT0gQVRIMTJLX0FDUElfRFNNX1RBU19EQVRBX1NJWkUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo4ODpcXHRcXHRcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImludmFsaWQgQUNQSSBEU00gVEFTIGRhdGEgc2l6ZTogJWRcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtODktXFx0XFx0XFx0XFx0XFx0ICAgIG9iai1cXHUwMDNlYnVmZmVyLmxlbmd0aCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy05OS1cXHRcXHRcXHRpZiAob2JqLVxcdTAwM2VidWZmZXIubGVuZ3RoICE9IEFUSDEyS19BQ1BJX0RTTV9CSU9TX1NBUl9EQVRBX1NJWkUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxMDA6XFx0XFx0XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJpbnZhbGlkIEFDUEkgQklPUyBTQVIgZGF0YSBzaXplOiAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xMDEtXFx0XFx0XFx0XFx0XFx0ICAgIG9iai1cXHUwMDNlYnVmZmVyLmxlbmd0aCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xMTEtXFx0XFx0XFx0aWYgKG9iai1cXHUwMDNlYnVmZmVyLmxlbmd0aCAhPSBBVEgxMktfQUNQSV9EU01fR0VPX09GRlNFVF9EQVRBX1NJWkUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxMTI6XFx0XFx0XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJpbnZhbGlkIEFDUEkgR0VPIE9GRlNFVCBkYXRhIHNpemU6ICVkXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTExMy1cXHRcXHRcXHRcXHRcXHQgICAgb2JqLVxcdTAwM2VidWZmZXIubGVuZ3RoKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTEyMy1cXHRcXHRcXHRpZiAob2JqLVxcdTAwM2VidWZmZXIubGVuZ3RoICE9IEFUSDEyS19BQ1BJX0RTTV9DQ0FfREFUQV9TSVpFKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTI0OlxcdFxcdFxcdFxcdGF0aDEya193YXJuKGFiLCBcXFwiaW52YWxpZCBBQ1BJIERTTSBDQ0EgZGF0YSBzaXplOiAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xMjUtXFx0XFx0XFx0XFx0XFx0ICAgIG9iai1cXHUwMDNlYnVmZmVyLmxlbmd0aCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xMzUtXFx0XFx0XFx0aWYgKG9iai1cXHUwMDNlYnVmZmVyLmxlbmd0aCAhPSBBVEgxMktfQUNQSV9EU01fQkFORF9FREdFX0RBVEFfU0laRSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjEzNjpcXHRcXHRcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImludmFsaWQgQUNQSSBEU00gYmFuZCBlZGdlIGRhdGEgc2l6ZTogJWRcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTM3LVxcdFxcdFxcdFxcdFxcdCAgICBvYmotXFx1MDAzZWJ1ZmZlci5sZW5ndGgpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTQ3LVxcdH0gZWxzZSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTQ4OlxcdFxcdGF0aDEya193YXJuKGFiLCBcXFwiQUNQSSBEU00gbWV0aG9kIHJldHVybmVkIGFuIHVuc3VwcG9ydGVkIG9iamVjdCB0eXBlOiAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xNDktXFx0XFx0XFx0ICAgIG9iai1cXHUwMDNldHlwZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xNjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTYxOnN0YXRpYyBpbnQgYXRoMTJrX2FjcGlfc2V0X3Bvd2VyX2xpbWl0KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTYyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE2Ny1cXHQgICAgdGFzX3Nhcl9wb3dlcl90YWJsZVsxXSAhPSBBVEgxMktfQUNQSV9UQVNfREFUQV9FTkFCTEUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxNjg6XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJsYXRlc3QgQUNQSSBUQVMgZGF0YSBpcyBpbnZhbGlkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xNjktXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xNzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTcyOlxcdHJldCA9IGF0aDEya193bWlfc2V0X2Jpb3NfY21kKGFiLCBXTUlfQklPU19QQVJBTV9UQVNfREFUQV9UWVBFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE3My1cXHRcXHRcXHRcXHQgICAgICB0YXNfc2FyX3Bvd2VyX3RhYmxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTc1LVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxNzY6XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJmYWlsZWQgdG8gc2VuZCBBQ1BJIFRBUyBkYXRhIHRhYmxlOiAlZFxcXFxuXFxcIiwgcmV0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xNzctXFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE4Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxODM6c3RhdGljIGludCBhdGgxMmtfYWNwaV9zZXRfYmlvc19zYXJfcG93ZXIoc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xODQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTg4LVxcdCAgICBhYi1cXHUwMDNlYWNwaS5iaW9zX3Nhcl9kYXRhWzFdICE9IEFUSDEyS19BQ1BJX1BPV0VSX0xJTUlUX0VOQUJMRV9GTEFHKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTg5OlxcdFxcdGF0aDEya193YXJuKGFiLCBcXFwiaW52YWxpZCBsYXRlc3QgQUNQSSBCSU9TIFNBUiBkYXRhXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xOTAtXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xOTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTkzOlxcdHJldCA9IGF0aDEya193bWlfc2V0X2Jpb3Nfc2FyX2NtZChhYiwgYWItXFx1MDAzZWFjcGkuYmlvc19zYXJfZGF0YSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTk0LVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxOTU6XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJmYWlsZWQgdG8gc2V0IEFDUEkgQklPUyBTQVIgdGFibGU6ICVkXFxcXG5cXFwiLCByZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE5Ni1cXHRcXHRyZXR1cm4gcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjAxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjIwMjpzdGF0aWMgdm9pZCBhdGgxMmtfYWNwaV9kc21fbm90aWZ5KGFjcGlfaGFuZGxlIGhhbmRsZSwgdTMyIGV2ZW50LCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIwMy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjA0LVxcdGludCByZXQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjA1OlxcdHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMDctXFx0aWYgKGV2ZW50ID09IEFUSDEyS19BQ1BJX05PVElGWV9FVkVOVCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjIwODpcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcInVua25vd24gYWNwaSBub3RpZnkgJXVcXFxcblxcXCIsIGV2ZW50KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMDktXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjEyLVxcdGlmICghYWItXFx1MDAzZWFjcGkuYWNwaV90YXNfZW5hYmxlKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjEzOlxcdFxcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfQk9PVCwgXFxcImFjcGlfdGFzX2VuYWJsZSBpcyBmYWxzZVxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjE0LVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIxNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyMTc6XFx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19UQVNfREFUQSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjE4LVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyMTk6XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJmYWlsZWQgdG8gdXBkYXRlIEFDUEkgVEFTIGRhdGEgdGFibGU6ICVkXFxcXG5cXFwiLCByZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIyMC1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjIzOlxcdHJldCA9IGF0aDEya19hY3BpX3NldF9wb3dlcl9saW1pdChhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjI0LVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyMjU6XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJmYWlsZWQgdG8gc2V0IEFDUEkgVEFTIHBvd2VyIGxpbWl0IGRhdGE6ICVkXFxcIiwgcmV0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMjYtXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjMxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjIzMjpcXHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0JJT1NfU0FSKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMzMtXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjIzNDpcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImZhaWxlZCB0byB1cGRhdGUgQklPUyBTQVI6ICVkXFxcXG5cXFwiLCByZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIzNS1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjM4OlxcdHJldCA9IGF0aDEya19hY3BpX3NldF9iaW9zX3Nhcl9wb3dlcihhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjM5LVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyNDA6XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJmYWlsZWQgdG8gc2V0IEJJT1MgU0FSIHBvd2VyIGxpbWl0OiAlZFxcXFxuXFxcIiwgcmV0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yNDEtXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjI0NTpzdGF0aWMgaW50IGF0aDEya19hY3BpX3NldF9iaW9zX3Nhcl9wYXJhbXMoc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yNDYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjQ4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjI0OTpcXHRyZXQgPSBhdGgxMmtfd21pX3NldF9iaW9zX3Nhcl9jbWQoYWIsIGFiLVxcdTAwM2VhY3BpLmJpb3Nfc2FyX2RhdGEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI1MC1cXHRpZiAocmV0KSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjUxOlxcdFxcdGF0aDEya193YXJuKGFiLCBcXFwiZmFpbGVkIHRvIHNldCBBQ1BJIEJJT1MgU0FSIHRhYmxlOiAlZFxcXFxuXFxcIiwgcmV0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yNTItXFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI1NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyNTU6XFx0cmV0ID0gYXRoMTJrX3dtaV9zZXRfYmlvc19nZW9fY21kKGFiLCBhYi1cXHUwMDNlYWNwaS5nZW9fb2Zmc2V0X2RhdGEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI1Ni1cXHRpZiAocmV0KSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjU3OlxcdFxcdGF0aDEya193YXJuKGFiLCBcXFwiZmFpbGVkIHRvIHNldCBBQ1BJIEJJT1MgR0VPIHRhYmxlOiAlZFxcXFxuXFxcIiwgcmV0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yNTgtXFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI2My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyNjQ6c3RhdGljIGludCBhdGgxMmtfYWNwaV9zZXRfdGFzX3BhcmFtcyhzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI2NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yNjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjY4OlxcdHJldCA9IGF0aDEya193bWlfc2V0X2Jpb3NfY21kKGFiLCBXTUlfQklPU19QQVJBTV9UQVNfQ09ORklHX1RZUEUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjY5LVxcdFxcdFxcdFxcdCAgICAgIGFiLVxcdTAwM2VhY3BpLnRhc19jZmcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yNzEtXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjI3MjpcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImZhaWxlZCB0byBzZW5kIEFDUEkgVEFTIGNvbmZpZyB0YWJsZSBwYXJhbWV0ZXI6ICVkXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI3My1cXHRcXHRcXHQgICAgcmV0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI3Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyNzc6XFx0cmV0ID0gYXRoMTJrX3dtaV9zZXRfYmlvc19jbWQoYWIsIFdNSV9CSU9TX1BBUkFNX1RBU19EQVRBX1RZUEUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjc4LVxcdFxcdFxcdFxcdCAgICAgIGFiLVxcdTAwM2VhY3BpLnRhc19zYXJfcG93ZXJfdGFibGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yODAtXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjI4MTpcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImZhaWxlZCB0byBzZW5kIEFDUEkgVEFTIGRhdGEgdGFibGUgcGFyYW1ldGVyOiAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yODItXFx0XFx0XFx0ICAgIHJldCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yODgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6Mjg5OmJvb2wgYXRoMTJrX2FjcGlfZ2V0X2Rpc2FibGVfcmZraWxsKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjkwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI5My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyOTQ6Ym9vbCBhdGgxMmtfYWNwaV9nZXRfZGlzYWJsZV8xMWJlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjk1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI5OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyOTk6dm9pZCBhdGgxMmtfYWNwaV9zZXRfZHNtX2Z1bmMoc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMDAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzA4LVxcdGlmIChhYi1cXHUwMDNlYWNwaS5hY3BpX3Rhc19lbmFibGUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozMDk6XFx0XFx0cmV0ID0gYXRoMTJrX2FjcGlfc2V0X3Rhc19wYXJhbXMoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTMxMC1cXHRcXHRpZiAocmV0KSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MzExOlxcdFxcdFxcdGF0aDEya193YXJuKGFiLCBcXFwiZmFpbGVkIHRvIHNlbmQgQUNQSSBUQVMgcGFyYW1ldGVyczogJWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzEyLVxcdFxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTMxNi1cXHRpZiAoYWItXFx1MDAzZWFjcGkuYWNwaV9iaW9zX3Nhcl9lbmFibGUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozMTc6XFx0XFx0cmV0ID0gYXRoMTJrX2FjcGlfc2V0X2Jpb3Nfc2FyX3BhcmFtcyhhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzE4LVxcdFxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozMTk6XFx0XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJmYWlsZWQgdG8gc2VuZCBBQ1BJIEJJT1MgU0FSOiAlZFxcXFxuXFxcIiwgcmV0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMjAtXFx0XFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzI1LVxcdFxcdGJ1ZiA9IGFiLVxcdTAwM2VhY3BpLmNjYV9kYXRhICsgQVRIMTJLX0FDUElfQ0NBX1RIUl9PRkZTRVRfREFUQV9PRkZTRVQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MzI2OlxcdFxcdHJldCA9IGF0aDEya193bWlfc2V0X2Jpb3NfY21kKGFiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTMyNy1cXHRcXHRcXHRcXHRcXHQgICAgICBXTUlfQklPU19QQVJBTV9DQ0FfVEhSRVNIT0xEX1RZUEUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMzAtXFx0XFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjMzMTpcXHRcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImZhaWxlZCB0byBzZXQgQUNQSSBEU00gQ0NBIHRocmVzaG9sZDogJWRcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzMyLVxcdFxcdFxcdFxcdCAgICByZXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzM3LVxcdGlmIChhYi1cXHUwMDNlYWNwaS5hY3BpX2JhbmRfZWRnZV9lbmFibGUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozMzg6XFx0XFx0cmV0ID0gYXRoMTJrX3dtaV9zZXRfYmlvc19jbWQoYWIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzM5LVxcdFxcdFxcdFxcdFxcdCAgICAgIFdNSV9CSU9TX1BBUkFNX1RZUEVfQkFOREVER0UsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zNDItXFx0XFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjM0MzpcXHRcXHRcXHRhdGgxMmtfd2FybihhYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zNDQtXFx0XFx0XFx0XFx0ICAgIFxcXCJmYWlsZWQgdG8gc2V0IEFDUEkgRFNNIGJhbmQgZWRnZSBjaGFubmVsIHBvd2VyOiAlZFxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM1MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozNTE6aW50IGF0aDEya19hY3BpX3N0YXJ0KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzUyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM2OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozNjk6XFx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19TVVBQT1JUX0ZVTkNTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zNzAtXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjM3MTpcXHRcXHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0JPT1QsIFxcXCJmYWlsZWQgdG8gZ2V0IEFDUEkgRFNNIGRhdGE6ICVkXFxcXG5cXFwiLCByZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM3Mi1cXHRcXHRyZXR1cm4gcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzc1LVxcdGlmIChBVEgxMktfQUNQSV9GVU5DX0JJVF9WQUxJRChhYi1cXHUwMDNlYWNwaSwgQVRIMTJLX0FDUElfRlVOQ19CSVRfRElTQUJMRV9GTEFHKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjM3NjpcXHRcXHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0RJU0FCTEVfRkxBRyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzc3LVxcdFxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozNzg6XFx0XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJmYWlsZWQgdG8gZ2V0IEFDUEkgRElTQUJMRSBGTEFHOiAlZFxcXFxuXFxcIiwgcmV0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zNzktXFx0XFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM5MS1cXHRpZiAoQVRIMTJLX0FDUElfRlVOQ19CSVRfVkFMSUQoYWItXFx1MDAzZWFjcGksIEFUSDEyS19BQ1BJX0ZVTkNfQklUX0JERl9FWFQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MzkyOlxcdFxcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfQkRGX0VYVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzkzLVxcdFxcdGlmIChyZXQgfHwgYWItXFx1MDAzZWFjcGkuYmRmX3N0cmluZ1swXSA9PSAnXFxcXDAnKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6Mzk0OlxcdFxcdFxcdGF0aDEya193YXJuKGFiLCBcXFwiZmFpbGVkIHRvIGdldCBBQ1BJIEJERiBFWFQ6ICVkXFxcXG5cXFwiLCByZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM5NS1cXHRcXHRcXHRyZXR1cm4gcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDAxLVxcdGlmIChBVEgxMktfQUNQSV9GVU5DX0JJVF9WQUxJRChhYi1cXHUwMDNlYWNwaSwgQVRIMTJLX0FDUElfRlVOQ19CSVRfVEFTX0NGRykpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MDI6XFx0XFx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19UQVNfQ0ZHKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MDMtXFx0XFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQwNDpcXHRcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImZhaWxlZCB0byBnZXQgQUNQSSBUQVMgY29uZmlnIHRhYmxlOiAlZFxcXFxuXFxcIiwgcmV0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MDUtXFx0XFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQwOS1cXHRpZiAoQVRIMTJLX0FDUElfRlVOQ19CSVRfVkFMSUQoYWItXFx1MDAzZWFjcGksIEFUSDEyS19BQ1BJX0ZVTkNfQklUX1RBU19EQVRBKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQxMDpcXHRcXHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX1RBU19EQVRBKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MTEtXFx0XFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQxMjpcXHRcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImZhaWxlZCB0byBnZXQgQUNQSSBUQVMgZGF0YSB0YWJsZTogJWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDEzLVxcdFxcdFxcdHJldHVybiByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MjItXFx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVxcdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9CSU9TX1NBUikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MjM6XFx0XFx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19CSU9TX1NBUik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDI0LVxcdFxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MjU6XFx0XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJmYWlsZWQgdG8gZ2V0IEFDUEkgYmlvcyBzYXIgZGF0YTogJWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDI2LVxcdFxcdFxcdHJldHVybiByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MzAtXFx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVxcdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9HRU9fT0ZGU0VUKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQzMTpcXHRcXHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0dFT19PRkZTRVQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQzMi1cXHRcXHRpZiAocmV0KSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDMzOlxcdFxcdFxcdGF0aDEya193YXJuKGFiLCBcXFwiZmFpbGVkIHRvIGdldCBBQ1BJIGdlbyBvZmZzZXQgZGF0YTogJWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDM0LVxcdFxcdFxcdHJldHVybiByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NDQtXFx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVxcdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9DQ0EpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDQ1OlxcdFxcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfSU5ERVhfQ0NBKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NDYtXFx0XFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ0NzpcXHRcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImZhaWxlZCB0byBnZXQgQUNQSSBEU00gQ0NBIHRocmVzaG9sZCBjb25maWd1cmF0aW9uOiAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NDgtXFx0XFx0XFx0XFx0ICAgIHJldCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NTktXFx0XFx0XFx0XFx0ICAgICAgIEFUSDEyS19BQ1BJX0ZVTkNfQklUX0JBTkRfRURHRV9DSEFOX1BPV0VSKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ2MDpcXHRcXHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0lOREVYX0JBTkRfRURHRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDYxLVxcdFxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0NjI6XFx0XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJmYWlsZWQgdG8gZ2V0IEFDUEkgRFNNIGJhbmQgZWRnZSBjaGFubmVsIHBvd2VyOiAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NjMtXFx0XFx0XFx0XFx0ICAgIHJldCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NzMtXFx0XFx0XFx0XFx0XFx0ICAgICBBQ1BJX0RFVklDRV9OT1RJRlksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDc0OlxcdFxcdFxcdFxcdFxcdCAgICAgYXRoMTJrX2FjcGlfZHNtX25vdGlmeSwgYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ3NS1cXHRpZiAoQUNQSV9GQUlMVVJFKHN0YXR1cykpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0NzY6XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJmYWlsZWQgdG8gaW5zdGFsbCBEU00gbm90aWZ5IGNhbGxiYWNrOiAlZFxcXFxuXFxcIiwgc3RhdHVzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NzctXFx0XFx0cmV0dXJuIC1FSU87XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00ODQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDg1OmludCBhdGgxMmtfYWNwaV9jaGVja19iZGZfdmFyaWFudF9uYW1lKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDg2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ5Mi1cXHRpZiAoc3Ryc2NweShhYi1cXHUwMDNlcW1pLnRhcmdldC5iZGZfZXh0LCBhYi1cXHUwMDNlYWNwaS5iZGZfc3RyaW5nICsgNCwgbWF4X2xlbikgXFx1MDAzYyAwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ5MzpcXHRcXHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0JPT1QsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDk0LVxcdFxcdFxcdCAgIFxcXCJhY3BpIGJkZiB2YXJpYW50IGxvbmdlciB0aGFuIHRoZSBidWZmZXIgKHZhcmlhbnQ6ICVzKVxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ5OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo1MDA6dm9pZCBhdGgxMmtfYWNwaV9zdG9wKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNTAxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTUwNi1cXHRcXHRcXHRcXHQgICBBQ1BJX0RFVklDRV9OT1RJRlksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NTA3OlxcdFxcdFxcdFxcdCAgIGF0aDEya19hY3BpX2RzbV9ub3RpZnkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTUwOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjc1OmludCBhdGgxMmtfYWNwaV9zdGFydChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo3Njp2b2lkIGF0aDEya19hY3BpX3N0b3Aoc3RydWN0IGF0aDEya19iYXNlICphYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6Nzc6Ym9vbCBhdGgxMmtfYWNwaV9nZXRfZGlzYWJsZV9yZmtpbGwoc3RydWN0IGF0aDEya19iYXNlICphYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6Nzg6Ym9vbCBhdGgxMmtfYWNwaV9nZXRfZGlzYWJsZV8xMWJlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjc5OnZvaWQgYXRoMTJrX2FjcGlfc2V0X2RzbV9mdW5jKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjgwOmludCBhdGgxMmtfYWNwaV9jaGVja19iZGZfdmFyaWFudF9uYW1lKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTgxLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtODMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6ODQ6c3RhdGljIGlubGluZSBpbnQgYXRoMTJrX2FjcGlfc3RhcnQoc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC04NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC04OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo4OTpzdGF0aWMgaW5saW5lIHZvaWQgYXRoMTJrX2FjcGlfc3RvcChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTkwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTkyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjkzOnN0YXRpYyBpbmxpbmUgYm9vbCBhdGgxMmtfYWNwaV9nZXRfZGlzYWJsZV9yZmtpbGwoc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC05NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC05Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo5ODpzdGF0aWMgaW5saW5lIGJvb2wgYXRoMTJrX2FjcGlfZ2V0X2Rpc2FibGVfMTFiZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTk5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTEwMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDoxMDM6c3RhdGljIGlubGluZSB2b2lkIGF0aDEya19hY3BpX3NldF9kc21fZnVuYyhzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTEwNC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC0xMDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6MTA3OnN0YXRpYyBpbmxpbmUgaW50IGF0aDEya19hY3BpX2NoZWNrX2JkZl92YXJpYW50X25hbWUoc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC0xMDgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjIyOnN0YXRpYyBzdHJ1Y3QgYXRoMTJrX2FoYl9kcml2ZXIgKmF0aDEya19haGJfZmFtaWx5X2RyaXZlcnNbQVRIMTJLX0RFVklDRV9GQU1JTFlfTUFYXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjIzOnN0YXRpYyBjb25zdCBjaGFyIGF0aDEya191c2VycGRfaXJxW11bOV0gPSB7XFxcInNwYXduXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI0LVxcdFxcdFxcdFxcdCAgICAgXFxcInJlYWR5XFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM9ODM9ZW51bSBleHRfaXJxX251bSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTEyMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjEyMzpzdGF0aWMgdTMyIGF0aDEya19haGJfcmVhZDMyKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsIHUzMiBvZmZzZXQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xMjQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xMjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoxMzA6c3RhdGljIHZvaWQgYXRoMTJrX2FoYl93cml0ZTMyKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsIHUzMiBvZmZzZXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xMzEtXFx0XFx0XFx0ICAgICAgIHUzMiB2YWx1ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTM5OnN0YXRpYyB2b2lkIGF0aDEya19haGJfY2FuY2VsX3dvcmtxdWV1ZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTQwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTQzLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBhYi1cXHUwMDNlaHdfcGFyYW1zLVxcdTAwM2VjZV9jb3VudDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoxNDQ6XFx0XFx0c3RydWN0IGF0aDEya19jZV9waXBlICpjZV9waXBlID0gXFx1MDAyNmFiLVxcdTAwM2VjZS5jZV9waXBlW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTQ1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTQ2OlxcdFxcdGlmIChhdGgxMmtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFxcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTE0Ny1cXHRcXHRcXHRjb250aW51ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTUyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTUzOnN0YXRpYyB2b2lkIGF0aDEya19haGJfZXh0X2dycF9kaXNhYmxlKHN0cnVjdCBhdGgxMmtfZXh0X2lycV9ncnAgKmlycV9ncnApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xNTQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xNjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoxNjE6c3RhdGljIHZvaWQgX19hdGgxMmtfYWhiX2V4dF9pcnFfZGlzYWJsZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTYyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTY1LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBVEgxMktfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoxNjY6XFx0XFx0c3RydWN0IGF0aDEya19leHRfaXJxX2dycCAqaXJxX2dycCA9IFxcdTAwMjZhYi1cXHUwMDNlZXh0X2lycV9ncnBbaV07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xNjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoxNjg6XFx0XFx0YXRoMTJrX2FoYl9leHRfZ3JwX2Rpc2FibGUoaXJxX2dycCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xNjktXFx0XFx0aWYgKGlycV9ncnAtXFx1MDAzZW5hcGlfZW5hYmxlZCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xNzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoxNzc6c3RhdGljIHZvaWQgYXRoMTJrX2FoYl9leHRfZ3JwX2VuYWJsZShzdHJ1Y3QgYXRoMTJrX2V4dF9pcnFfZ3JwICppcnFfZ3JwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTc4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTg0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTg1OnN0YXRpYyB2b2lkIGF0aDEya19haGJfc2V0Yml0MzIoc3RydWN0IGF0aDEya19iYXNlICphYiwgdTggYml0LCB1MzIgb2Zmc2V0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTg2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTg5OlxcdHZhbCA9IGF0aDEya19haGJfcmVhZDMyKGFiLCBvZmZzZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTkwOlxcdGF0aDEya19haGJfd3JpdGUzMihhYiwgb2Zmc2V0LCB2YWwgfCBCSVQoYml0KSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xOTEtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTkyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTkzOnN0YXRpYyB2b2lkIGF0aDEya19haGJfY2xlYXJiaXQzMihzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLCB1OCBiaXQsIHUzMiBvZmZzZXQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xOTQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xOTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoxOTc6XFx0dmFsID0gYXRoMTJrX2FoYl9yZWFkMzIoYWIsIG9mZnNldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoxOTg6XFx0YXRoMTJrX2FoYl93cml0ZTMyKGFiLCBvZmZzZXQsIHZhbCBcXHUwMDI2IH5CSVQoYml0KSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xOTktfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjAxOnN0YXRpYyB2b2lkIGF0aDEya19haGJfY2VfaXJxX2VuYWJsZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLCB1MTYgY2VfaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yMDIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yMTItXFx0aWYgKGNlX2F0dHItXFx1MDAzZXNyY19uZW50cmllcylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjIxMzpcXHRcXHRhdGgxMmtfYWhiX3NldGJpdDMyKGFiLCBjZV9pZCwgaWUxX3JlZ19hZGRyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTIxNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTIxNS1cXHRpZiAoY2VfYXR0ci1cXHUwMDNlZGVzdF9uZW50cmllcykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjE2OlxcdFxcdGF0aDEya19haGJfc2V0Yml0MzIoYWIsIGNlX2lkLCBpZTJfcmVnX2FkZHIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjE3OlxcdFxcdGF0aDEya19haGJfc2V0Yml0MzIoYWIsIGNlX2lkICsgQ0VfSE9TVF9JRV8zX1NISUZULFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjE4LVxcdFxcdFxcdFxcdCAgICBpZTNfcmVnX2FkZHIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yMjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyMjI6c3RhdGljIHZvaWQgYXRoMTJrX2FoYl9jZV9pcnFfZGlzYWJsZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLCB1MTYgY2VfaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yMjMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yMzMtXFx0aWYgKGNlX2F0dHItXFx1MDAzZXNyY19uZW50cmllcylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjIzNDpcXHRcXHRhdGgxMmtfYWhiX2NsZWFyYml0MzIoYWIsIGNlX2lkLCBpZTFfcmVnX2FkZHIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjM2LVxcdGlmIChjZV9hdHRyLVxcdTAwM2VkZXN0X25lbnRyaWVzKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyMzc6XFx0XFx0YXRoMTJrX2FoYl9jbGVhcmJpdDMyKGFiLCBjZV9pZCwgaWUyX3JlZ19hZGRyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjIzODpcXHRcXHRhdGgxMmtfYWhiX2NsZWFyYml0MzIoYWIsIGNlX2lkICsgQ0VfSE9TVF9JRV8zX1NISUZULFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjM5LVxcdFxcdFxcdFxcdCAgICAgIGllM19yZWdfYWRkcik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI0Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjI0MzpzdGF0aWMgdm9pZCBhdGgxMmtfYWhiX3N5bmNfY2VfaXJxcyhzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjQ0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjQ4LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBhYi1cXHUwMDNlaHdfcGFyYW1zLVxcdTAwM2VjZV9jb3VudDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyNDk6XFx0XFx0aWYgKGF0aDEya19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXFx1MDAyNiBDRV9BVFRSX0RJU19JTlRSKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjUwLVxcdFxcdFxcdGNvbnRpbnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yNTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyNTc6c3RhdGljIHZvaWQgYXRoMTJrX2FoYl9zeW5jX2V4dF9pcnFzKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yNTgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yNjItXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFUSDEyS19FWFRfSVJRX0dSUF9OVU1fTUFYOyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjI2MzpcXHRcXHRzdHJ1Y3QgYXRoMTJrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gXFx1MDAyNmFiLVxcdTAwM2VleHRfaXJxX2dycFtpXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI2NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjcxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjcyOnN0YXRpYyB2b2lkIGF0aDEya19haGJfY2VfaXJxc19lbmFibGUoc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI3My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI3Ni1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgYWItXFx1MDAzZWh3X3BhcmFtcy1cXHUwMDNlY2VfY291bnQ7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6Mjc3OlxcdFxcdGlmIChhdGgxMmtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFxcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI3OC1cXHRcXHRcXHRjb250aW51ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjI3OTpcXHRcXHRhdGgxMmtfYWhiX2NlX2lycV9lbmFibGUoYWIsIGkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjgwLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjgyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjgzOnN0YXRpYyB2b2lkIGF0aDEya19haGJfY2VfaXJxc19kaXNhYmxlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yODQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yODctXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGFiLVxcdTAwM2Vod19wYXJhbXMtXFx1MDAzZWNlX2NvdW50OyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjI4ODpcXHRcXHRpZiAoYXRoMTJrX2NlX2dldF9hdHRyX2ZsYWdzKGFiLCBpKSBcXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yODktXFx0XFx0XFx0Y29udGludWU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyOTA6XFx0XFx0YXRoMTJrX2FoYl9jZV9pcnFfZGlzYWJsZShhYiwgaSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yOTEtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yOTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyOTQ6c3RhdGljIGludCBhdGgxMmtfYWhiX3N0YXJ0KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yOTUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6Mjk2OlxcdGF0aDEya19haGJfY2VfaXJxc19lbmFibGUoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6Mjk3OlxcdGF0aDEya19jZV9yeF9wb3N0X2J1ZihhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yOTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTMwMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjMwMjpzdGF0aWMgdm9pZCBhdGgxMmtfYWhiX2V4dF9pcnFfZW5hYmxlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0zMDMte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MzA0OlxcdHN0cnVjdCBhdGgxMmtfZXh0X2lycV9ncnAgKmlycV9ncnA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0zMDUtXFx0aW50IGk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTMxMi1cXHRcXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzozMTM6XFx0XFx0YXRoMTJrX2FoYl9leHRfZ3JwX2VuYWJsZShpcnFfZ3JwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTMxNC1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTMxNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjMxNzpzdGF0aWMgdm9pZCBhdGgxMmtfYWhiX2V4dF9pcnFfZGlzYWJsZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzE4LXtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDQ6MDU6MDEuMDYyNDIzMjI1WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjMwMDEyNTE4MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIHRoZSBgYXRoMTJrYCBEcml2ZXI6IEEgVGhvdWdodCBQcm9jZXNzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBgYXRoMTJrYCBkcml2ZXIuIEl0J3MgYSBoYXJkd2FyZSBkcml2ZXIsIHdoaWNoIHVzdWFsbHkgcHJlc2VudHMgYSBjaGFsbGVuZ2UgZm9yIGZ1enppbmcuIFVubGVzcyBpdCdzIGEgVVNCIGRyaXZlciwgb3Igd2UgaGF2ZSBhIHNvbGlkIGVtdWxhdG9yLCBmdXp6aW5nIHRoZXNlIHRoaW5ncyBpcyB0eXBpY2FsbHkgYSBkZWFkIGVuZC4gQnV0LCB3YWl0Li4uIGBhdGgxMmtgIGlzIGEgUENJL0FIQiBkcml2ZXIsIHdoaWNoICpjb3VsZCogYmUgcHJvbWlzaW5nLiBJcyB0aGVyZSBzb21lIGhpZGRlbiB0ZXN0IG1vZGUgb3IgZGVidWcgZmxhZyBJIGNhbiBsZXZlcmFnZT9cblxuTGV0IG1lIHNlZeKApiBhaGEhIFRoZXJlIGl0IGlzOiBgYXRoMTJrLSQoQ09ORklHX05MODAyMTFfVEVTVE1PREUpICs9IHRlc3Rtb2RlLm9gLiBCdXQgSeKAmXZlIGRlYWx0IHdpdGggdGVzdG1vZGUgYmVmb3JlOyBJdOKAmXMgZ2VuZXJhbGx5IGZvciBwYXNzaW5nIGNvbW1hbmRzLCBub3QgYSBmdWxsLWJsb3duIGhhcmR3YXJlIGVtdWxhdG9yLiBJdCdzIG5vdCBhIHNpbHZlciBidWxsZXQuIFxuXG5BbHNvLCB0aGUgcGF0Y2ggaXMgdG91Y2hpbmcgYGF0aDEya19ic3NfYXNzb2NgLiBUaGlzIGZ1bmN0aW9uIGdldHMgY2FsbGVkIGR1cmluZyBhc3NvY2lhdGlvbiwgc28gaG93IGFtIEkgZ29pbmcgdG8gZ2V0IHRvIGl0IGluIHRoZSBmaXJzdCBwbGFjZT8gSWYgdGhlIGhhcmR3YXJlIGlzbid0IHBoeXNpY2FsbHkgcHJlc2VudCwgdGhlIGRyaXZlciB3b27igJl0IGV2ZW4gcHJvYmUsIGFuZCBgYXRoMTJrX2Jzc19hc3NvY2AgcmVtYWlucyB1bnRvdWNoZWQuXG5cblJpZ2h0LiBJIGtub3cgYG1hYzgwMjExX2h3c2ltYCBlbXVsYXRlcyBNQUM4MDIxMSwgYnV0IHRoZSBgYXRoMTJrYCBkcml2ZXIgaXMgYSBmdWxsIE1BQyBkcml2ZXIsIG9yIGF0IGxlYXN0IGl0IHJlZ2lzdGVycyB0byBtYWM4MDIxMSwgYnV0IGZ1bmRhbWVudGFsbHkgcmVsaWVzIG9uIHRoZSByZWFsIGhhcmR3YXJlIGZvciBwcm9iaW5nLiBTbyB0aGUgdXN1YWwgdHJpY2tzIHdvbid0IHdvcmsuXG5cbkFscmlnaHQsIHRpbWUgdG8gZ2V0IHByYWN0aWNhbC4gVGhlIHF1ZXN0aW9uIGlzLCBjYW4gSSB0cmljayB0aGUgc3lzdGVtIGludG8gcHJvYmluZyBgYXRoMTJrYCB3aXRob3V0IHRoZSBwaHlzaWNhbCBoYXJkd2FyZSBiZWluZyBwcmVzZW50PyBJJ2xsIG5lZWQgdG8gZmlndXJlIG91dCBob3cgdG8gbG9hZCB0aGlzIHRoaW5nIGluIGEgY29udHJvbGxlZCBlbnZpcm9ubWVudC4gTGV0J3Mgc2VlLi4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4ODY0LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjM2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDA0OjA1OjA3LjM2MjU1MDA1NloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDQ3NTE0MjgsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aDEya19jb3JlX3Byb2JlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwNDowNTowNy40NjczMTE4NzNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNTE2NDUzNjYyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipDaGVja2luZyB0aGUgUHJvYmUgRnVuY3Rpb25zKipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEknbSB0aGlua2luZywgXCJXaGVyZSBkbyB3ZSBzdGFydCB0cm91Ymxlc2hvb3RpbmcgdGhpcyBwYXJ0aWN1bGFyIGF0aDEyayBpc3N1ZT9cIiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byB6ZXJvIGluIG9uIHRoZSBjb3JlIG9mIHRoZSBkZXZpY2UgaW5pdGlhbGl6YXRpb24uIFNvLCB0aGUgZmlyc3QgcGxhY2UgSSdtIGdvaW5nIHRvIGxvb2sgaXMgZWl0aGVyIGBhdGgxMmtfcGNpX3Byb2JlYCBvciBgYXRoMTJrX2FoYl9wcm9iZWAuIFRoZXNlIGFyZSB0aGUgZW50cnkgcG9pbnRzIOKAkyB0aGUgZnVuY3Rpb25zIHRoYXQgYXJlIGNhbGxlZCB3aGVuIHRoZSBkcml2ZXIgaXMgYXR0ZW1wdGluZyB0byBpbml0aWFsaXplIGEgUENJIG9yIEFIQi1iYXNlZCBhdGgxMmsgZGV2aWNlLCByZXNwZWN0aXZlbHkuIEtub3dpbmcgd2hpY2ggb25lIGlzIHJlbGV2YW50IGlzIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyB0aGUgcGF0aCBvZiBleGVjdXRpb24uIEZyb20gdGhlcmUgSSBjYW4gZm9sbG93IHRoZSBjb250cm9sIGZsb3csIGxvb2sgYXQgdGhlIGVycm9yIGNvZGVzIGFuZCBsb2dzLCBhbmQgcGllY2UgdG9nZXRoZXIgdGhlIHNlcXVlbmNlIHRoYXQgaXMgZmFpbGluZy4gSXQncyB0aGUgZmlyc3Qgc3RlcCB0byBuYXJyb3dpbmcgZG93biB0aGUgcm9vdCBjYXVzZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTk1MzYsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwNDowNToxMC45ODM3NjgyNzZaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkyODU5NDI3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aDEya19wY2lfcHJvYmVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYz0xNTEzPWF0aDEya19nZXRfZGV2aWNlX2ZhbWlseShjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqcGNpX2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTUzMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjE1MzQ6c3RhdGljIGludCBhdGgxMmtfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTUzNS1cXHRcXHRcXHQgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKnBjaV9kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jPTE4MTQ9aW50IGF0aDEya19wY2lfcmVnaXN0ZXJfZHJpdmVyKGNvbnN0IGVudW0gYXRoMTJrX2RldmljZV9mYW1pbHkgZGV2aWNlX2lkLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xODM1LVxcdHBjaV9kcml2ZXItXFx1MDAzZWlkX3RhYmxlID0gZHJpdmVyLVxcdTAwM2VpZF90YWJsZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjE4MzY6XFx0cGNpX2RyaXZlci1cXHUwMDNlcHJvYmUgPSBhdGgxMmtfcGNpX3Byb2JlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTgzNy1cXHRwY2lfZHJpdmVyLVxcdTAwM2VyZW1vdmUgPSBhdGgxMmtfcGNpX3JlbW92ZTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDQ6MDU6MTEuMDc2NjM0MzYzWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU0ODg0MzUzNjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgYXRoMTJrIERyaXZlciBpbiBhIFZpcnR1YWxpemVkIEVudmlyb25tZW50KipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBkcml2ZXIsIGFuZCBpdCdzIHByZXR0eSBjbGVhcjogaXQncyBhIHN0YW5kYXJkIFBDSSBkcml2ZXIuIE5vdGhpbmcgdW51c3VhbCB0aGVyZS4gVGhlIHByb2JsZW0gaXMsIHdpdGhvdXQgdGhlIGFjdHVhbCBwaHlzaWNhbCBQQ0kgZGV2aWNlIHByZXNlbnQsIHRoZSBgcHJvYmVgIGZ1bmN0aW9uLCB0aGUgb25lIHRoYXQga2lja3Mgb2ZmIHRoZSB3aG9sZSBpbml0aWFsaXphdGlvbiBwcm9jZXNzLCBpc24ndCBnb2luZyB0byBiZSBjYWxsZWQuIFRoYXQgbWVhbnMgbm9uZSBvZiB0aGUgY29kZSB3aXRoaW4sIGluY2x1ZGluZyB0aGUgaW1wb3J0YW50IGBhdGgxMmtfYnNzX2Fzc29jYCBmdW5jdGlvbiwgaXMgZ29pbmcgdG8gYmUgcmVhY2hhYmxlIGluIGEgcHVyZWx5IHZpcnR1YWxpemVkIHNldHVwLiBFbnZpcm9ubWVudHMgbGlrZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUgb3IgUUVNVSB3aXRob3V0IFBDSSBwYXNzdGhyb3VnaCwgd2hlcmUgd2UncmUgbm90IGRpcmVjdGx5IGV4cG9zaW5nIHRoZSBRdWFsY29tbSBXaS1GaSA3IGhhcmR3YXJlLCBhcmUgZ29pbmcgdG8gcHJldmVudCB0aGF0IGNvZGUgZnJvbSBydW5uaW5nLlxuXG5UaGVyZWZvcmUsIGdpdmVuIHRoZSBjb25zdHJhaW50IG9mICpubyogcGh5c2ljYWwgZGV2aWNlIGFuZCBhICp2aXJ0dWFsKiBlbnZpcm9ubWVudCwgc2V0dGluZyBgV29ydGhGdXp6aW5nYCB0byBgZmFsc2VgIGlzIHRoZSByaWdodCBjYWxsIGhlcmUuIFRoZSBjb25kaXRpb25zIGZvciBmdXp6aW5nIGp1c3QgYXJlbid0IG1ldC5cblxuQnV0LCBJIHNob3VsZCBwcm9iYWJseSBkb3VibGUtY2hlY2sgdGhhdCBhc3N1bXB0aW9uIGp1c3QgdG8gYmUgY2VydGFpbi4gTGV0IG1lIHF1aWNrbHkgc2NvdXIgdGhlIGNvZGViYXNlIHRvIHNlZSBpZiB0aGVyZSdzIGFueSBmb3JtIG9mIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgYGF0aDEya2AuIEknbGwgZm9jdXMgbXkgc2VhcmNoIG9uIGxpa2VseSBhcmVhcywgbGlrZSB0aGUgYHRvb2xzL3Rlc3RpbmcvYCBkaXJlY3Rvcnkgb3IgcGVyaGFwcyBzb21ldGhpbmcgc2ltaWxhciB0byBgbWFjODAyMTFfaHdzaW0uY2AgaW4gdGhlIHdpcmVsZXNzIGRyaXZlcnMuIEp1c3Qgd2FudCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUgdGhlcmUgaXNuJ3Qgc29tZSBiYWNrZG9vciBlbXVsYXRpb24gdGhhdCB3b3VsZCBjaGFuZ2UgbXkgY29uY2x1c2lvbi4gSSBjYW4ndCB0aGluayBvZiBhbnkgb2ZmIHRoZSB0b3Agb2YgbXkgaGVhZCwgYnV0IGJlc3QgdG8gYmUgdGhvcm91Z2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwMTUzLCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQ5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDA0OjA1OjE2LjU2NTA3MjAyMloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDAwNzMwNDkxLCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJhdGgxMmtcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFjODAyMTFfaHdzaW0uY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDQ6MDU6MTYuOTY1ODA5NTEzWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1MTQzNDIyNDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyBQb3RlbnRpYWwgVGVzdCBNb2RlIEltcGxlbWVudGF0aW9ucyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGZvciBhIHNwZWNpZmljIGNhcGFiaWxpdHksIGFuZCBteSBpbml0aWFsIHNlYXJjaCBpbiBgbWFjODAyMTFfaHdzaW0uY2AgeWllbGRlZCBub3RoaW5nLiBUaGF0J3MgYSBiaXQgc3VycHJpc2luZywgZ2l2ZW4gdGhlIHVzdWFsIGFzc29jaWF0aW9uIG9mIGhhcmR3YXJlIHNpbXVsYXRpb24gd2l0aCB0ZXN0IG1vZGVzLiBBbHJpZ2h0LCBsZXQncyBicm9hZGVuIHRoZSBzY29wZS4gTXkgbmV4dCB0aG91Z2h0IGlzIHRvIGludmVzdGlnYXRlIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jYCBmaWxlLiBHaXZlbiB0aGUgYGF0aDEya2AgaXMgYSByZWNlbnQgYW5kIGNvbXBsZXggd2lyZWxlc3MgZHJpdmVyLCBhbmQgJ3Rlc3Rtb2RlJyBpcyBleHBsaWNpdGx5IGluIHRoZSBmaWxlbmFtZSwgdGhlcmUncyBhIGdvb2QgY2hhbmNlIHRoYXQncyB3aGVyZSBhbnkgcmVsZXZhbnQgZnVuY3Rpb25hbGl0eSBtaWdodCByZXNpZGUuIEl0J3MgYSBzZW5zaWJsZSBuZXh0IHN0ZXAgaW4gdGhlIHByb2Nlc3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwNjgzLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDQ6MDU6MjAuNDgwMTU0MzA2WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjU0ODI1MTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidGVzdG1vZGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy02LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYzo3OiNpbmNsdWRlIFxcXCJ0ZXN0bW9kZS5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy04LSNpbmNsdWRlIFxcdTAwM2NuZXQvbmV0bGluay5oXFx1MDAzZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTEzLSNpbmNsdWRlIFxcXCJoaWYuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6MTQ6I2luY2x1ZGUgXFxcIi4uL3Rlc3Rtb2RlX2kuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMTUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM9NDU9dm9pZCBhdGgxMmtfdG1fd21pX2V2ZW50X3Vuc2VnbWVudGVkKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsIHUzMiBjbWRfaWQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNTEtXFx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19URVNUTU9ERSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6NTI6XFx0XFx0ICAgXFxcInRlc3Rtb2RlIGV2ZW50IHdtaSBjbWRfaWQgJWQgc2tiIGxlbmd0aCAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNTMtXFx0XFx0ICAgY21kX2lkLCBza2ItXFx1MDAzZWxlbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNTgtXFx0aWYgKCFhcikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYzo1OTpcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcInRlc3Rtb2RlIGV2ZW50IG5vdCBoYW5kbGVkIGR1ZSB0byBpbnZhbGlkIHBkZXZcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy02MC1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjY1OlxcdG5sX3NrYiA9IGNmZzgwMjExX3Rlc3Rtb2RlX2FsbG9jX2V2ZW50X3NrYihhci1cXHUwMDNlYWgtXFx1MDAzZWh3LVxcdTAwM2V3aXBoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNjYtXFx0XFx0XFx0XFx0XFx0XFx0ICAgMiAqIG5sYV90b3RhbF9zaXplKHNpemVvZih1MzIpKSArXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNzItXFx0XFx0YXRoMTJrX3dhcm4oYWIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjczOlxcdFxcdFxcdCAgICBcXFwiZmFpbGVkIHRvIGFsbG9jYXRlIHNrYiBmb3IgdW5zZWdtZW50ZWQgdGVzdG1vZGUgd21pIGV2ZW50XFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNzQtXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTc5LVxcdCAgICBubGFfcHV0KG5sX3NrYiwgQVRIX1RNX0FUVFJfREFUQSwgc2tiLVxcdTAwM2VsZW4sIHNrYi1cXHUwMDNlZGF0YSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6ODA6XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJmYWlsZWQgdG8gcG9wdWxhdGUgdGVzdG1vZGUgdW5zZWdtZW50ZWQgZXZlbnRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy04MS1cXHRcXHRrZnJlZV9za2Iobmxfc2tiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy04NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6ODU6XFx0Y2ZnODAyMTFfdGVzdG1vZGVfZXZlbnQobmxfc2tiLCBHRlBfQVRPTUlDKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtODYtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jPTg4PXZvaWQgYXRoMTJrX3RtX3Byb2Nlc3NfZXZlbnQoc3RydWN0IGF0aDEya19iYXNlICphYiwgdTMyIGNtZF9pZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy05OS1cXHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX1RFU1RNT0RFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYzoxMDA6XFx0XFx0ICAgXFxcInRlc3Rtb2RlIGV2ZW50IHdtaSBjbWRfaWQgJWQgZnRtIGV2ZW50IG1zZyAlcCBkYXRhbGVuICVkXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xMDEtXFx0XFx0ICAgY21kX2lkLCBmdG1fbXNnLCBsZW5ndGgpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTEwNS1cXHRpZiAocGRldl9pZCBcXHUwMDNlPSBhYi1cXHUwMDNlbnVtX3JhZGlvcykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYzoxMDY6XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJ0ZXN0bW9kZSBldmVudCBub3QgaGFuZGxlZCBkdWUgdG8gaW52YWxpZCBwZGV2IGlkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMTA3LVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xMTItXFx0aWYgKCFhcikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYzoxMTM6XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJ0ZXN0bW9kZSBldmVudCBub3QgaGFuZGxlZCBkdWUgdG8gYWJzZW5jZSBvZiBwZGV2XFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMTE0LVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xNTMtXFx0c3Bpbl9sb2NrX2JoKFxcdTAwMjZhci1cXHUwMDNlZGF0YV9sb2NrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6MTU0OlxcdG5sX3NrYiA9IGNmZzgwMjExX3Rlc3Rtb2RlX2FsbG9jX2V2ZW50X3NrYihhci1cXHUwMDNlYWgtXFx1MDAzZWh3LVxcdTAwM2V3aXBoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMTU1LVxcdFxcdFxcdFxcdFxcdFxcdCAgIDIgKiBubGFfdG90YWxfc2l6ZShzaXplb2YodTMyKSkgK1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTE2MS1cXHRcXHRhdGgxMmtfd2FybihhYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6MTYyOlxcdFxcdFxcdCAgICBcXFwiZmFpbGVkIHRvIGFsbG9jYXRlIHNrYiBmb3IgdGVzdG1vZGUgd21pIGV2ZW50XFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMTYzLVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xNzAtXFx0XFx0ICAgIFxcdTAwMjZhYi1cXHUwMDNlZnRtX2V2ZW50X29iai5ldmVudGRhdGFbMF0pKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjE3MTpcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImZhaWxlZCB0byBwb3B1bGF0ZSB0ZXN0bW9kZSBldmVudFxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xNzItXFx0XFx0a2ZyZWVfc2tiKG5sX3NrYik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMTc1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYzoxNzY6XFx0Y2ZnODAyMTFfdGVzdG1vZGVfZXZlbnQobmxfc2tiLCBHRlBfQVRPTUlDKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMTc3LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYz0xNzk9c3RhdGljIGludCBhdGgxMmtfdG1fY21kX2dldF92ZXJzaW9uKHN0cnVjdCBhdGgxMmsgKmFyLCBzdHJ1Y3QgbmxhdHRyICp0YltdKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTE4My1cXHRhdGgxMmtfZGJnKGFyLVxcdTAwM2VhYiwgQVRIMTJLX0RCR19URVNUTU9ERSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6MTg0OlxcdFxcdCAgIFxcXCJ0ZXN0bW9kZSBjbWQgZ2V0IHZlcnNpb25fbWFqb3IgJWQgdmVyc2lvbl9taW5vciAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMTg1LVxcdFxcdCAgIEFUSF9URVNUTU9ERV9WRVJTSU9OX01BSk9SLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTE4OC1cXHRzcGluX2xvY2tfYmgoXFx1MDAyNmFyLVxcdTAwM2VkYXRhX2xvY2spO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYzoxODk6XFx0c2tiID0gY2ZnODAyMTFfdGVzdG1vZGVfYWxsb2NfcmVwbHlfc2tiKGFyLVxcdTAwM2VhaC1cXHUwMDNlaHctXFx1MDAzZXdpcGh5LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xOTAtXFx0XFx0XFx0XFx0XFx0XFx0MiAqIG5sYV90b3RhbF9zaXplKHNpemVvZih1MzIpKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMjAzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYzoyMDQ6XFx0cmV0dXJuIGNmZzgwMjExX3Rlc3Rtb2RlX3JlcGx5KHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTIwNS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM9MjA3PXN0YXRpYyBpbnQgYXRoMTJrX3RtX2NtZF9wcm9jZXNzX2Z0bShzdHJ1Y3QgYXRoMTJrICphciwgc3RydWN0IG5sYXR0ciAqdGJbXSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0yMjktXFx0YXRoMTJrX2RiZyhhci1cXHUwMDNlYWIsIEFUSDEyS19EQkdfVEVTVE1PREUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjIzMDpcXHRcXHQgICBcXFwidGVzdG1vZGUgY21kIHdtaSBjbWRfaWQgJWQgYnVmICVwIGJ1Zl9sZW4gJWRcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTIzMS1cXHRcXHQgICBjbWRfaWQsIGJ1ZiwgYnVmX2xlbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMjgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYzoyODE6c3RhdGljIGludCBhdGgxMmtfdG1fY21kX3Rlc3Rtb2RlX3N0YXJ0KHN0cnVjdCBhdGgxMmsgKmFyLCBzdHJ1Y3QgbmxhdHRyICp0YltdKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0yODIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jPTMwMD1zdGF0aWMgaW50IGF0aDEya190bV9jbWRfd21pKHN0cnVjdCBhdGgxMmsgKmFyLCBzdHJ1Y3QgbmxhdHRyICp0YltdKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTMxOC1cXHRpZiAoIWJ1Zl9sZW4pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6MzE5OlxcdFxcdGF0aDEya193YXJuKGFyLVxcdTAwM2VhYiwgXFxcIk5vIGRhdGEgcHJlc2VudCBpbiB0ZXN0bW9kZSBjb21tYW5kXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMzIwLVxcdFxcdHJldHVybiAtRUlOVkFMO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTMzMS1cXHRhdGgxMmtfZGJnKGFyLVxcdTAwM2VhYiwgQVRIMTJLX0RCR19URVNUTU9ERSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6MzMyOlxcdFxcdCAgIFxcXCJ0ZXN0bW9kZSBjbWQgd21pIGNtZF9pZCAlZCAgYnVmIGxlbmd0aCAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMzMzLVxcdFxcdCAgIGNtZF9pZCwgYnVmX2xlbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMzQ2LVxcdFxcdGRldl9rZnJlZV9za2Ioc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6MzQ3OlxcdFxcdGF0aDEya193YXJuKGFyLVxcdTAwM2VhYiwgXFxcImZhaWxlZCB0byB0cmFuc21pdCB3bWkgY29tbWFuZCAodGVzdG1vZGUpOiAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMzQ4LVxcdFxcdFxcdCAgICByZXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jPTM1ND1pbnQgYXRoMTJrX3RtX2NtZChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0zODUtXFx0Y2FzZSBBVEhfVE1fQ01EX1RFU1RNT0RFX1NUQVJUOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYzozODY6XFx0XFx0cmV0dXJuIGF0aDEya190bV9jbWRfdGVzdG1vZGVfc3RhcnQoYXIsIHRiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMzg3LVxcdGNhc2UgQVRIX1RNX0NNRF9HRVRfVkVSU0lPTjpcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDQ6MDU6MjAuNjA1NjQzMjgzWiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjczODA3NzQyMzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqV29ydGhGdXp6aW5nIERlY2lzaW9uIGZvciBhdGgxMmtfYnNzX2Fzc29jKipcblxuT2theSwgYWZ0ZXIgdGhpbmtpbmcgdGhpcyB0aHJvdWdoLCBJJ20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmdgIHRvIGBmYWxzZWAuIFRoZSB0ZXN0bW9kZSBpcyByZWFsbHkgb25seSBmb3Igc2VuZGluZyBXTUkgY29tbWFuZHMgZnJvbSB1c2Vyc3BhY2UsIGl0IGRvZXNuJ3QgZXZlbiBiZWdpbiB0byBlbXVsYXRlIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlLiBTaW5jZSBgYXRoMTJrYCBpcyBhIFBDSS9BSEIgZHJpdmVyLCBhbmQgdGhlcmUncyBubyBrZXJuZWwtbGV2ZWwgc29mdHdhcmUgZW11bGF0aW9uIGZvciBpdCwgdGhhdCBtZWFucyB0aGUgY29kZSBJIG1vZGlmaWVkLCBzcGVjaWZpY2FsbHkgaW4gYGF0aDEya19ic3NfYXNzb2NgLCBpcyBzaW1wbHkgdW5yZWFjaGFibGUgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIEdDRSBvciBRRU1VLiBUaGF0IGxvZ2ljIHJlbGllcyBvbiB0aGUgaGFyZHdhcmUgYmVpbmcgcHJlc2VudC5cblxuTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrLCB0aG91Z2gsIHRvIG1ha2UgYWJzb2x1dGVseSBzdXJlIHRoZXJlJ3Mgbm8gb3RoZXIgcGF0aCB0byB0aGlzIGZ1bmN0aW9uLiBSaWdodCwgaXQncyBhIHN0YXRpYyBmdW5jdGlvbiBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuY2AuIEkgcmVjYWxsIGl0J3MgYXNzaWduZWQgdG8gYG1hYzgwMjExX29wcy1cdTAwM2Vic3NfYXNzb2NgLiBCdXQgaGVyZSdzIHRoZSBraWNrZXI6IHRoZSBgYXRoMTJrYCBkcml2ZXIgd29uJ3QgZXZlbiAqcmVnaXN0ZXIqIHdpdGggYG1hYzgwMjExYCBpZiB0aGUgaGFyZHdhcmUgaXNuJ3QgdGhlcmUuIGBhdGgxMmtfcGNpX3Byb2JlYCBmYWlscyBlYXJseSBpZiBpdCBjYW4ndCBmaW5kIGEgbWF0Y2hpbmcgUENJIGRldmljZS4gU28gdGhlIGBtYWM4MDIxMWAgc3Vic3lzdGVtIHdvbid0IGV2ZW4gaGF2ZSBhbnkgYGF0aDEya2AgaW50ZXJmYWNlcywgYW5kIHRoZXJlZm9yZSBgYXRoMTJrX2Jzc19hc3NvY2AgKndpbGwqIG5ldmVyIGdldCBjYWxsZWQuXG5cblRoZXJlZm9yZSwgc2V0dGluZyBgV29ydGhGdXp6aW5nYCB0byBmYWxzZSBpcyB0aGUgY29ycmVjdCBjYWxsLCBnaXZlbiB0aGF0IHRoaXMgbW9kdWxlIGlzIGhhcmR3YXJlLXNwZWNpZmljLCBhbmQgdGhlcmUncyBubyBjb2RlIHBhdGggdGhhdCBhbGxvd3MgaXQgdG8gYmUgZXhlY3V0ZWQgaW4gYSB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzkxOSwiT3V0cHV0VG9rZW5zIjoxNDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDQ6MDU6MjcuOTg2NDIwM1oiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM1NDEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMmsgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSS9BSEIgZHJpdmVyIGZvciBRdWFsY29tbSBXaS1GaSA3IGRldmljZXMuIFNpbmNlIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBoYXJkd2FyZSBpbiB0aGUga2VybmVsIChsaWtlIG1hYzgwMjExX2h3c2ltIGZvciBnZW5lcmljIG1hYzgwMjExKSwgdGhlIGRyaXZlciB3aWxsIGZhaWwgdG8gcHJvYmUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUgd2l0aG91dCB0aGUgcGh5c2ljYWwgaGFyZHdhcmUuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaW4gYGF0aDEya19ic3NfYXNzb2NgIGlzIHVucmVhY2hhYmxlIGFuZCBjYW5ub3QgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGF0aDEyayBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJL0FIQiBkcml2ZXIgZm9yIFF1YWxjb21tIFdpLUZpIDcgZGV2aWNlcy4gU2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciB0aGlzIGhhcmR3YXJlIGluIHRoZSBrZXJuZWwgKGxpa2UgbWFjODAyMTFfaHdzaW0gZm9yIGdlbmVyaWMgbWFjODAyMTEpLCB0aGUgZHJpdmVyIHdpbGwgZmFpbCB0byBwcm9iZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSB3aXRob3V0IHRoZSBwaHlzaWNhbCBoYXJkd2FyZS4gQ29uc2VxdWVudGx5LCB0aGUgbW9kaWZpZWQgY29kZSBpbiBgYXRoMTJrX2Jzc19hc3NvY2AgaXMgdW5yZWFjaGFibGUgYW5kIGNhbm5vdCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowk55pp[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-17 03:51:04 +0000 UTC FinishedAt: 2026-07-17 04:05:29 +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+CgkJCTx0ZD4yMDI2LzA3LzE3IDA0OjA0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMmsgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSS9BSEIgZHJpdmVyIGZvciBRdWFsY29tbSBXaS1GaSA3IGRldmljZXMuIFNpbmNlIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBoYXJkd2FyZSBpbiB0aGUga2VybmVsIChsaWtlIG1hYzgwMjExX2h3c2ltIGZvciBnZW5lcmljIG1hYzgwMjExKSwgdGhlIGRyaXZlciB3aWxsIGZhaWwgdG8gcHJvYmUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUgd2l0aG91dCB0aGUgcGh5c2ljYWwgaGFyZHdhcmUuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaW4gYGF0aDEya19ic3NfYXNzb2NgIGlzIHVucmVhY2hhYmxlIGFuZCBjYW5ub3QgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwNDowNDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGUyNWExOTkyMzExNzRkYjg1OGU4YTQwZTdlZjY2OGQ0OTUyZmM2NWFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAxNyAwNDowNDo0OSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuY1xuaW5kZXggMTYzMzk0NjljMjRjZDguLjcwNjEwNDE2ODY1MDhhIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuY1xuQEAgLTM5ODUsNiAmIzQzOzM5ODUsMTcgQEAgc3RhdGljIHZvaWQgYXRoMTJrX2Jzc19hc3NvYyhzdHJ1Y3QgYXRoMTJrICphcixcbiBcdFx0YXRoMTJrX3dhcm4oYXItXHUwMDNlYWIsIFwmIzM0O2ZhaWxlZCB0byBzZXQgdmRldiAlaSBPQlNTIFBEIHBhcmFtZXRlcnM6ICVkXFxuXCYjMzQ7LFxuIFx0XHRcdCAgICBhcnZpZi1cdTAwM2V2ZGV2X2lkLCByZXQpO1xuIFxuJiM0MztcdGlmIChhci1cdTAwM2VhYi1cdTAwM2Vod19wYXJhbXMtXHUwMDNlc3VwcG9ydHNfc3RhX3BzIFx1MDAyNlx1MDAyNlxuJiM0MztcdCAgICBhaHZpZi1cdTAwM2V2ZGV2X3R5cGUgPT0gV01JX1ZERVZfVFlQRV9TVEEgXHUwMDI2XHUwMDI2XG4mIzQzO1x0ICAgIGFodmlmLVx1MDAzZXZkZXZfc3VidHlwZSA9PSBXTUlfVkRFVl9TVUJUWVBFX05PTkUpIHtcbiYjNDM7XHRcdHJldCA9IGF0aDEya193bWlfdmRldl9zZXRfcGFyYW1fY21kKGFyLCBhcnZpZi1cdTAwM2V2ZGV2X2lkLFxuJiM0MztcdFx0XHRcdFx0XHQgICAgV01JX1ZERVZfUEFSQU1fRFRJTV9QT0xJQ1ksXG4mIzQzO1x0XHRcdFx0XHRcdCAgICBXTUlfRFRJTV9QT0xJQ1lfU1RJQ0spO1xuJiM0MztcdFx0aWYgKHJldClcbiYjNDM7XHRcdFx0YXRoMTJrX3dhcm4oYXItXHUwMDNlYWIsIFwmIzM0O2ZhaWxlZCB0byBzZXQgdmRldiAlZCBzdGljayBEVElNIHBvbGljeTogJWRcXG5cJiMzNDssXG4mIzQzO1x0XHRcdFx0ICAgIGFydmlmLVx1MDAzZXZkZXZfaWQsIHJldCk7XG4mIzQzO1x0fVxuJiM0MztcbiBcdGlmICh0ZXN0X2JpdChXTUlfVExWX1NFUlZJQ0VfMTFEX09GRkxPQUQsIGFyLVx1MDAzZWFiLVx1MDAzZXdtaV9hYi5zdmNfbWFwKSBcdTAwMjZcdTAwMjZcbiBcdCAgICBhaHZpZi1cdTAwM2V2ZGV2X3R5cGUgPT0gV01JX1ZERVZfVFlQRV9TVEEgXHUwMDI2XHUwMDI2XG4gXHQgICAgYWh2aWYtXHUwMDNldmRldl9zdWJ0eXBlID09IFdNSV9WREVWX1NVQlRZUEVfTk9ORSlcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuaFxuaW5kZXggNTFmMzQyNmUxZmNkOTIuLjAxNDVjYzQ3Nzk0NGZjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuaFxuQEAgLTIzMzAsNiAmIzQzOzIzMzAsMTMgQEAgZW51bSB3bWlfc2xvdF90aW1lIHtcbiBcdFdNSV9WREVWX1NMT1RfVElNRV9TSE9SVCA9IDIsXG4gfTtcbiBcbiYjNDM7ZW51bSB3bWlfZHRpbV9wb2xpY3kge1xuJiM0MztcdFdNSV9EVElNX1BPTElDWV9JR05PUkUgPSAxLFxuJiM0MztcdFdNSV9EVElNX1BPTElDWV9OT1JNQUwgPSAyLFxuJiM0MztcdFdNSV9EVElNX1BPTElDWV9TVElDSyAgPSAzLFxuJiM0MztcdFdNSV9EVElNX1BPTElDWV9BVVRPICAgPSA0LFxuJiM0Mzt9O1xuJiM0MztcbiBlbnVtIHdtaV9wcmVhbWJsZSB7XG4gXHRXTUlfVkRFVl9QUkVBTUJMRV9MT05HID0gMSxcbiBcdFdNSV9WREVWX1BSRUFNQkxFX1NIT1JUID0gMixcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwNDowNDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYXRoMTJrIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kvQUhCIGRyaXZlciBmb3IgUXVhbGNvbW0gV2ktRmkgNyBkZXZpY2VzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gdGhlIGtlcm5lbCAobGlrZSBtYWM4MDIxMV9od3NpbSBmb3IgZ2VuZXJpYyBtYWM4MDIxMSksIHRoZSBkcml2ZXIgd2lsbCBmYWlsIHRvIHByb2JlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VIHdpdGhvdXQgdGhlIHBoeXNpY2FsIGhhcmR3YXJlLiBDb25zZXF1ZW50bHksIHRoZSBtb2RpZmllZCBjb2RlIGluIGBhdGgxMmtfYnNzX2Fzc29jYCBpcyB1bnJlYWNoYWJsZSBhbmQgY2Fubm90IGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGUyNWExOTkyMzExNzRkYjg1OGU4YTQwZTdlZjY2OGQ0OTUyZmM2NWEKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEp1bCAxNyAwNDowNDo0OSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jCmluZGV4IDE2MzM5NDY5YzI0Y2Q4Li43MDYxMDQxNjg2NTA4YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jCkBAIC0zOTg1LDYgJiM0MzszOTg1LDE3IEBAIHN0YXRpYyB2b2lkIGF0aDEya19ic3NfYXNzb2Moc3RydWN0IGF0aDEyayAqYXIsCiAJCWF0aDEya193YXJuKGFyLSZndDthYiwgJiMzNDtmYWlsZWQgdG8gc2V0IHZkZXYgJWkgT0JTUyBQRCBwYXJhbWV0ZXJzOiAlZFxuJiMzNDssCiAJCQkgICAgYXJ2aWYtJmd0O3ZkZXZfaWQsIHJldCk7CiAKJiM0MzsJaWYgKGFyLSZndDthYi0mZ3Q7aHdfcGFyYW1zLSZndDtzdXBwb3J0c19zdGFfcHMgJmFtcDsmYW1wOwomIzQzOwkgICAgYWh2aWYtJmd0O3ZkZXZfdHlwZSA9PSBXTUlfVkRFVl9UWVBFX1NUQSAmYW1wOyZhbXA7CiYjNDM7CSAgICBhaHZpZi0mZ3Q7dmRldl9zdWJ0eXBlID09IFdNSV9WREVWX1NVQlRZUEVfTk9ORSkgewomIzQzOwkJcmV0ID0gYXRoMTJrX3dtaV92ZGV2X3NldF9wYXJhbV9jbWQoYXIsIGFydmlmLSZndDt2ZGV2X2lkLAomIzQzOwkJCQkJCSAgICBXTUlfVkRFVl9QQVJBTV9EVElNX1BPTElDWSwKJiM0MzsJCQkJCQkgICAgV01JX0RUSU1fUE9MSUNZX1NUSUNLKTsKJiM0MzsJCWlmIChyZXQpCiYjNDM7CQkJYXRoMTJrX3dhcm4oYXItJmd0O2FiLCAmIzM0O2ZhaWxlZCB0byBzZXQgdmRldiAlZCBzdGljayBEVElNIHBvbGljeTogJWRcbiYjMzQ7LAomIzQzOwkJCQkgICAgYXJ2aWYtJmd0O3ZkZXZfaWQsIHJldCk7CiYjNDM7CX0KJiM0MzsKIAlpZiAodGVzdF9iaXQoV01JX1RMVl9TRVJWSUNFXzExRF9PRkZMT0FELCBhci0mZ3Q7YWItJmd0O3dtaV9hYi5zdmNfbWFwKSAmYW1wOyZhbXA7CiAJICAgIGFodmlmLSZndDt2ZGV2X3R5cGUgPT0gV01JX1ZERVZfVFlQRV9TVEEgJmFtcDsmYW1wOwogCSAgICBhaHZpZi0mZ3Q7dmRldl9zdWJ0eXBlID09IFdNSV9WREVWX1NVQlRZUEVfTk9ORSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5oCmluZGV4IDUxZjM0MjZlMWZjZDkyLi4wMTQ1Y2M0Nzc5NDRmYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5oCkBAIC0yMzMwLDYgJiM0MzsyMzMwLDEzIEBAIGVudW0gd21pX3Nsb3RfdGltZSB7CiAJV01JX1ZERVZfU0xPVF9USU1FX1NIT1JUID0gMiwKIH07CiAKJiM0MztlbnVtIHdtaV9kdGltX3BvbGljeSB7CiYjNDM7CVdNSV9EVElNX1BPTElDWV9JR05PUkUgPSAxLAomIzQzOwlXTUlfRFRJTV9QT0xJQ1lfTk9STUFMID0gMiwKJiM0MzsJV01JX0RUSU1fUE9MSUNZX1NUSUNLICA9IDMsCiYjNDM7CVdNSV9EVElNX1BPTElDWV9BVVRPICAgPSA0LAomIzQzO307CiYjNDM7CiBlbnVtIHdtaV9wcmVhbWJsZSB7CiAJV01JX1ZERVZfUFJFQU1CTEVfTE9ORyA9IDEsCiAJV01JX1ZERVZfUFJFQU1CTEVfU0hPUlQgPSAyLAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwNDowNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzk3CgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMjUwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFBhdGNoIHRvIGEgUXVhbGNvbW0gV2ktRmkgNyBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgYGF0aDEya2Ag4oCTIHNwZWNpZmljYWxseSwgaXQmIzM5O3MgYWRkaW5nIGEgY2FsbCB0byBgYXRoMTJrX3dtaV92ZGV2X3NldF9wYXJhbV9jbWRgIGZvciBgV01JX1ZERVZfUEFSQU1fRFRJTV9QT0xJQ1lgIHdpdGggYFdNSV9EVElNX1BPTElDWV9TVElDS2Agd2l0aGluIGBhdGgxMmtfYnNzX2Fzc29jYC4gVGhpcyBsb29rcyBsaWtlIGEgdmVyeSB0YXJnZXRlZCBjaGFuZ2Ugd2l0aGluIHRoZSBgYXRoMTJrYCBkcml2ZXIuIE15IGluaXRpYWwgdGhvdWdodCBpcywgJiMzNDtDYW4gd2UgZnV6eiB0aGlzPyYjMzQ7CgpTaW5jZSBgYXRoMTJrYCBoYW5kbGVzIGhhcmR3YXJlLCBzcGVjaWZpY2FsbHkgZm9yIFF1YWxjb21tIFdpLUZpIDcgZGV2aWNlcywgSSBoYXZlIHRvIGNvbnNpZGVyIHRoZSBmdXp6YWJpbGl0eSBsYW5kc2NhcGUuIEhhcmR3YXJlIGRyaXZlcnMsIGVzcGVjaWFsbHkgUENJL0FIQiBvbmVzLCBhcmUgbm90b3Jpb3VzbHkgZGlmZmljdWx0IHRvIGZ1enogZGlyZWN0bHkgdW5sZXNzIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSBzcGVjaWZpYyBlbXVsYXRvciBvciBhIFVTQiBkcml2ZXIgdGhhdCB3ZSBjYW4gaGl0IHdpdGggYGR1bW15X2hjZGAuIEJ1dCBpdCBzb3VuZHMgbGlrZSB0aGlzIGlzIGEgUENJL0FIQiBkcml2ZXIuCgpUaW1lIHRvIGNvbmZpcm0gbXkgc3VzcGljaW9ucyBhbmQgdmVyaWZ5IHRoYXQgaXTigJlzIG5vdCBVU0IuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgZmlsZSBmb3IgdGhlIGBhdGgxMmtgIGRyaXZlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwNDowNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGgxMmsmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnPTI9Y29uZmlnIEFUSDEyS1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjM6XHR0cmlzdGF0ZSBcJiMzNDtRdWFsY29tbSBXaS1GaSA3IHN1cHBvcnQgKGF0aDEyaylcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy00LVx0ZGVwZW5kcyBvbiBNQUM4MDIxMSBcdTAwMjZcdTAwMjYgSEFTX0RNQSBcdTAwMjZcdTAwMjYgUENJXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTE0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjE1Olx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGEgbW9kdWxlLCBpdCYjMzk7bGwgYmUgY2FsbGVkIGF0aDEyay5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0xNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZz0xNz1jb25maWcgQVRIMTJLX0FIQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjE4Olx0Ym9vbCBcJiMzNDtRdWFsY29tbSBhdGgxMmsgQUhCIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0xOS1cdGRlcGVuZHMgb24gQVRIMTJLIFx1MDAyNlx1MDAyNiBSRU1PVEVQUk9DXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnPTI1PWNvbmZpZyBBVEgxMktfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzoyNjpcdGJvb2wgXCYjMzQ7YXRoMTJrIGRlYnVnZ2luZ1wmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTI3LVx0ZGVwZW5kcyBvbiBBVEgxMktcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc9MzU9Y29uZmlnIEFUSDEyS19ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MzY6XHRib29sIFwmIzM0O1F1YWxjb21tIGF0aDEyayBkZWJ1Z2ZzIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zNy1cdGRlcGVuZHMgb24gQVRIMTJLIFx1MDAyNlx1MDAyNiBNQUM4MDIxMV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMzgtXHRoZWxwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6Mzk6XHQgIEVuYWJsZSBhdGgxMmsgZGVidWdmcyBzdXBwb3J0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnPTQ0PWNvbmZpZyBBVEgxMktfVFJBQ0lOR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjQ1Olx0Ym9vbCBcJiMzNDthdGgxMmsgdHJhY2luZyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDYtXHRkZXBlbmRzIG9uIEFUSDEySyBcdTAwMjZcdTAwMjYgRVZFTlRfVFJBQ0lOR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTQ3LVx0aGVscFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjQ4Olx0ICBFbmFibGUgYXRoMTJrIHRyYWNpbmcgaW5mcmFzdHJ1Y3R1cmUuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnPTUzPWNvbmZpZyBBVEgxMktfQ09SRURVTVBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo1NDpcdGJvb2wgXCYjMzQ7YXRoMTJrIGNvcmVkdW1wXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNTUtXHRkZXBlbmRzIG9uIEFUSDEyS1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy01Ny1cdGhlbHBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo1ODpcdCAgRW5hYmxlIGF0aDEyayBjb3JlZHVtcCBjb2xsZWN0aW9uXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNTktXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDQ6MDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzc5NgoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDg3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkNvbnNpZGVyaW5nIHRoZSBBcmNoaXRlY3R1cmUgYW5kIEVudmlyb25tZW50KioKCk9rYXksIHNvIEkmIzM5O20gdGhpbmtpbmcgdGhyb3VnaCB0aGlzIGRyaXZlci4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGhpbmdlcyBvbiB1bmRlcnN0YW5kaW5nIHRoZSBpbnRlcnBsYXkgYmV0d2VlbiBQQ0kgYW5kIEFIQiDigJMgdGhhdCYjMzk7cyBmdW5kYW1lbnRhbC4gU3BlY2lmaWNhbGx5LCB0aGlzIGRyaXZlciBpcyB0YWlsb3JlZCBmb3IgUXVhbGNvbW0gV2ktRmkgNyBkZXZpY2VzLiBLbm93aW5nIHRoaXMsIEkgaW1tZWRpYXRlbHkgcmVjb2duaXplIGl0JiMzOTtzIGEgaGFyZHdhcmUgZHJpdmVyLCBtZWFuaW5nIGl0JiMzOTtzIGRlc2lnbmVkIHRvIGRpcmVjdGx5IGludGVyZmFjZSB3aXRoIHBoeXNpY2FsIGhhcmR3YXJlLgoKVGhlIHF1ZXN0aW9uIHRoZW4gYmVjb21lczogY2FuIEkgZXZlbiAqYWNjZXNzKiB0aGlzIGRyaXZlciBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBQbGF0Zm9ybXMgbGlrZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUgKEdDRSkgb3IgUUVNVSBhcmUgY29tbW9uLCBidXQgdGhleSBhYnN0cmFjdCBhd2F5IGZyb20gdGhlIHBoeXNpY2FsIGxheWVyLiBVbmxlc3MgdGhlcmUmIzM5O3MgYSBzcGVjaWZpYyBlbXVsYXRvciBidWlsdCBmb3IgdGhpcyBwYXJ0aWN1bGFyICYjMzk7YXRoMTJrJiMzOTsgY29tcG9uZW50LCB0aGUgYW5zd2VyIGlzIGxpa2VseSBubyDigJMgSSB3b24mIzM5O3QgYmUgYWJsZSB0byBpbnRlcmFjdCB3aXRoIGl0IGRpcmVjdGx5LiBUaGVyZWZvcmUsIEkgbmVlZCB0byBjaGVjayDigJMgYXJlIHRoZXJlIGFueSBlbXVsYXRvcnMgb3V0IHRoZXJlIHRoYXQgc3BlY2lmaWNhbGx5IHRhcmdldCBhdGgxMms/IFRoYXQmIzM5O3MgdGhlIGtleSB0byBtYWtpbmcgYW55IHByb2dyZXNzIGluIGEgdmlydHVhbCBzZXR0aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDA0OjA1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2F0aDEyayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAzNDk0OCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnPTI9Y29uZmlnIEFUSDEyS1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjM6XHR0cmlzdGF0ZSBcJiMzNDtRdWFsY29tbSBXaS1GaSA3IHN1cHBvcnQgKGF0aDEyaylcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy00LVx0ZGVwZW5kcyBvbiBNQUM4MDIxMSBcdTAwMjZcdTAwMjYgSEFTX0RNQSBcdTAwMjZcdTAwMjYgUENJXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTE0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjE1Olx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGEgbW9kdWxlLCBpdCYjMzk7bGwgYmUgY2FsbGVkIGF0aDEyay5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0xNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZz0xNz1jb25maWcgQVRIMTJLX0FIQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjE4Olx0Ym9vbCBcJiMzNDtRdWFsY29tbSBhdGgxMmsgQUhCIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0xOS1cdGRlcGVuZHMgb24gQVRIMTJLIFx1MDAyNlx1MDAyNiBSRU1PVEVQUk9DXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnPTI1PWNvbmZpZyBBVEgxMktfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzoyNjpcdGJvb2wgXCYjMzQ7YXRoMTJrIGRlYnVnZ2luZ1wmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTI3LVx0ZGVwZW5kcyBvbiBBVEgxMktcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc9MzU9Y29uZmlnIEFUSDEyS19ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MzY6XHRib29sIFwmIzM0O1F1YWxjb21tIGF0aDEyayBkZWJ1Z2ZzIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zNy1cdGRlcGVuZHMgb24gQVRIMTJLIFx1MDAyNlx1MDAyNiBNQUM4MDIxMV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMzgtXHRoZWxwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6Mzk6XHQgIEVuYWJsZSBhdGgxMmsgZGVidWdmcyBzdXBwb3J0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnPTQ0PWNvbmZpZyBBVEgxMktfVFJBQ0lOR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjQ1Olx0Ym9vbCBcJiMzNDthdGgxMmsgdHJhY2luZyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDYtXHRkZXBlbmRzIG9uIEFUSDEySyBcdTAwMjZcdTAwMjYgRVZFTlRfVFJBQ0lOR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTQ3LVx0aGVscFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjQ4Olx0ICBFbmFibGUgYXRoMTJrIHRyYWNpbmcgaW5mcmFzdHJ1Y3R1cmUuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnPTUzPWNvbmZpZyBBVEgxMktfQ09SRURVTVBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo1NDpcdGJvb2wgXCYjMzQ7YXRoMTJrIGNvcmVkdW1wXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNTUtXHRkZXBlbmRzIG9uIEFUSDEyS1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy01Ny1cdGhlbHBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo1ODpcdCAgRW5hYmxlIGF0aDEyayBjb3JlZHVtcCBjb2xsZWN0aW9uXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNTktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZToyOm9iai0kKENPTkZJR19BVEgxMkspICYjNDM7PSBhdGgxMmsub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZTozOmF0aDEyay15ICYjNDM7PSBjb3JlLm8gXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtNC1cdCAgICBoYWwubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlOjI1OmF0aDEyay0kKENPTkZJR19BVEgxMktfQUhCKSAmIzQzOz0gYWhiLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlPTI3PW9iai0kKENPTkZJR19BVEgxMkspICYjNDM7PSB3aWZpNy9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlOjI5OmF0aDEyay0kKENPTkZJR19BVEgxMktfREVCVUdGUykgJiM0Mzs9IGRlYnVnZnMubyBkZWJ1Z2ZzX2h0dF9zdGF0cy5vIGRlYnVnZnNfc3RhLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGU6MzA6YXRoMTJrLSQoQ09ORklHX0FDUEkpICYjNDM7PSBhY3BpLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGU6MzE6YXRoMTJrLSQoQ09ORklHX0FUSDEyS19UUkFDSU5HKSAmIzQzOz0gdHJhY2Uub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZTozMjphdGgxMmstJChDT05GSUdfUE0pICYjNDM7PSB3b3cub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZTozMzphdGgxMmstJChDT05GSUdfQVRIMTJLX0NPUkVEVU1QKSAmIzQzOz0gY29yZWR1bXAub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZTozNDphdGgxMmstJChDT05GSUdfTkw4MDIxMV9URVNUTU9ERSkgJiM0Mzs9IHRlc3Rtb2RlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGU6MzU6YXRoMTJrLSQoQ09ORklHX1RIRVJNQUwpICYjNDM7PSB0aGVybWFsLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMzYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxMTpzdGF0aWMgaW50IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLCBpbnQgZnVuYylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTEyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xOC1cdGlmICghcm9vdF9oYW5kbGUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjE5Olx0XHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0JPT1QsIFwmIzM0O2ludmFsaWQgYWNwaSBoYW5kbGVyXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIwLVx0XHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjYtXHRpZiAoIW9iaikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6Mjc6XHRcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfQk9PVCwgXCYjMzQ7YWNwaV9ldmFsdWF0ZV9kc20oKSBmYWlsZWRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjgtXHRcdHJldHVybiAtRU5PRU5UO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ2LVx0XHRcdFx0ICAgQVRIMTJLX0FDUElfQkRGX0FOQ0hPUl9TVFJJTkdfTEVOKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDc6XHRcdFx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7aW52YWxpZCBBQ1BJIERTTSBCREYgc2l6ZTogJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00OC1cdFx0XHRcdFx0ICAgIG9iai1cdTAwM2VzdHJpbmcubGVuZ3RoKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy02Mi1cdFx0XHQgICAgb2JqLVx1MDAzZWJ1ZmZlci5sZW5ndGggXHUwMDNlIEFUSDEyS19BQ1BJX0RTTV9GVU5DX01BWF9CSVRNQVBfU0laRSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NjM6XHRcdFx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7aW52YWxpZCBBQ1BJIERTTSBmdW5jIHNpemU6ICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNjQtXHRcdFx0XHRcdCAgICBvYmotXHUwMDNlYnVmZmVyLmxlbmd0aCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNzUtXHRcdFx0aWYgKG9iai1cdTAwM2VidWZmZXIubGVuZ3RoICE9IEFUSDEyS19BQ1BJX0RTTV9UQVNfQ0ZHX1NJWkUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjc2Olx0XHRcdFx0YXRoMTJrX3dhcm4oYWIsIFwmIzM0O2ludmFsaWQgQUNQSSBEU00gVEFTIGNvbmZpZyBzaXplOiAlZFxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTc3LVx0XHRcdFx0XHQgICAgb2JqLVx1MDAzZWJ1ZmZlci5sZW5ndGgpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTg3LVx0XHRcdGlmIChvYmotXHUwMDNlYnVmZmVyLmxlbmd0aCAhPSBBVEgxMktfQUNQSV9EU01fVEFTX0RBVEFfU0laRSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6ODg6XHRcdFx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7aW52YWxpZCBBQ1BJIERTTSBUQVMgZGF0YSBzaXplOiAlZFxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTg5LVx0XHRcdFx0XHQgICAgb2JqLVx1MDAzZWJ1ZmZlci5sZW5ndGgpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTk5LVx0XHRcdGlmIChvYmotXHUwMDNlYnVmZmVyLmxlbmd0aCAhPSBBVEgxMktfQUNQSV9EU01fQklPU19TQVJfREFUQV9TSVpFKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxMDA6XHRcdFx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7aW52YWxpZCBBQ1BJIEJJT1MgU0FSIGRhdGEgc2l6ZTogJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xMDEtXHRcdFx0XHRcdCAgICBvYmotXHUwMDNlYnVmZmVyLmxlbmd0aCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTExLVx0XHRcdGlmIChvYmotXHUwMDNlYnVmZmVyLmxlbmd0aCAhPSBBVEgxMktfQUNQSV9EU01fR0VPX09GRlNFVF9EQVRBX1NJWkUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjExMjpcdFx0XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtpbnZhbGlkIEFDUEkgR0VPIE9GRlNFVCBkYXRhIHNpemU6ICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTEzLVx0XHRcdFx0XHQgICAgb2JqLVx1MDAzZWJ1ZmZlci5sZW5ndGgpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTEyMy1cdFx0XHRpZiAob2JqLVx1MDAzZWJ1ZmZlci5sZW5ndGggIT0gQVRIMTJLX0FDUElfRFNNX0NDQV9EQVRBX1NJWkUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjEyNDpcdFx0XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtpbnZhbGlkIEFDUEkgRFNNIENDQSBkYXRhIHNpemU6ICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTI1LVx0XHRcdFx0XHQgICAgb2JqLVx1MDAzZWJ1ZmZlci5sZW5ndGgpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTEzNS1cdFx0XHRpZiAob2JqLVx1MDAzZWJ1ZmZlci5sZW5ndGggIT0gQVRIMTJLX0FDUElfRFNNX0JBTkRfRURHRV9EQVRBX1NJWkUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjEzNjpcdFx0XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtpbnZhbGlkIEFDUEkgRFNNIGJhbmQgZWRnZSBkYXRhIHNpemU6ICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTM3LVx0XHRcdFx0XHQgICAgb2JqLVx1MDAzZWJ1ZmZlci5sZW5ndGgpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE0Ny1cdH0gZWxzZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxNDg6XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtBQ1BJIERTTSBtZXRob2QgcmV0dXJuZWQgYW4gdW5zdXBwb3J0ZWQgb2JqZWN0IHR5cGU6ICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTQ5LVx0XHRcdCAgICBvYmotXHUwMDNldHlwZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTYwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTYxOnN0YXRpYyBpbnQgYXRoMTJrX2FjcGlfc2V0X3Bvd2VyX2xpbWl0KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xNjIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE2Ny1cdCAgICB0YXNfc2FyX3Bvd2VyX3RhYmxlWzFdICE9IEFUSDEyS19BQ1BJX1RBU19EQVRBX0VOQUJMRSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTY4Olx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7bGF0ZXN0IEFDUEkgVEFTIGRhdGEgaXMgaW52YWxpZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xNjktXHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE3MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjE3MjpcdHJldCA9IGF0aDEya193bWlfc2V0X2Jpb3NfY21kKGFiLCBXTUlfQklPU19QQVJBTV9UQVNfREFUQV9UWVBFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTczLVx0XHRcdFx0ICAgICAgdGFzX3Nhcl9wb3dlcl90YWJsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xNzUtXHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxNzY6XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtmYWlsZWQgdG8gc2VuZCBBQ1BJIFRBUyBkYXRhIHRhYmxlOiAlZFxcblwmIzM0OywgcmV0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE3Ny1cdFx0cmV0dXJuIHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xODItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxODM6c3RhdGljIGludCBhdGgxMmtfYWNwaV9zZXRfYmlvc19zYXJfcG93ZXIoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE4NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTg4LVx0ICAgIGFiLVx1MDAzZWFjcGkuYmlvc19zYXJfZGF0YVsxXSAhPSBBVEgxMktfQUNQSV9QT1dFUl9MSU1JVF9FTkFCTEVfRkxBRykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTg5Olx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7aW52YWxpZCBsYXRlc3QgQUNQSSBCSU9TIFNBUiBkYXRhXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE5MC1cdFx0cmV0dXJuIC1FSU5WQUw7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTkyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTkzOlx0cmV0ID0gYXRoMTJrX3dtaV9zZXRfYmlvc19zYXJfY21kKGFiLCBhYi1cdTAwM2VhY3BpLmJpb3Nfc2FyX2RhdGEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTk0LVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTk1Olx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7ZmFpbGVkIHRvIHNldCBBQ1BJIEJJT1MgU0FSIHRhYmxlOiAlZFxcblwmIzM0OywgcmV0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE5Ni1cdFx0cmV0dXJuIHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyMDI6c3RhdGljIHZvaWQgYXRoMTJrX2FjcGlfZHNtX25vdGlmeShhY3BpX2hhbmRsZSBoYW5kbGUsIHUzMiBldmVudCwgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIwMy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMDQtXHRpbnQgcmV0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjA1Olx0c3RydWN0IGF0aDEya19iYXNlICphYiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMDctXHRpZiAoZXZlbnQgPT0gQVRIMTJLX0FDUElfTk9USUZZX0VWRU5UKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyMDg6XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDt1bmtub3duIGFjcGkgbm90aWZ5ICV1XFxuXCYjMzQ7LCBldmVudCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMDktXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMTItXHRpZiAoIWFiLVx1MDAzZWFjcGkuYWNwaV90YXNfZW5hYmxlKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyMTM6XHRcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfQk9PVCwgXCYjMzQ7YWNwaV90YXNfZW5hYmxlIGlzIGZhbHNlXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIxNC1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIxNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjIxNzpcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfVEFTX0RBVEEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjE4LVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjE5Olx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7ZmFpbGVkIHRvIHVwZGF0ZSBBQ1BJIFRBUyBkYXRhIHRhYmxlOiAlZFxcblwmIzM0OywgcmV0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIyMC1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIyMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjIyMzpcdHJldCA9IGF0aDEya19hY3BpX3NldF9wb3dlcl9saW1pdChhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMjQtXHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyMjU6XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtmYWlsZWQgdG8gc2V0IEFDUEkgVEFTIHBvd2VyIGxpbWl0IGRhdGE6ICVkXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjI2LVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjMxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjMyOlx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19CSU9TX1NBUik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMzMtXHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyMzQ6XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtmYWlsZWQgdG8gdXBkYXRlIEJJT1MgU0FSOiAlZFxcblwmIzM0OywgcmV0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIzNS1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIzNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjIzODpcdHJldCA9IGF0aDEya19hY3BpX3NldF9iaW9zX3Nhcl9wb3dlcihhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMzktXHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyNDA6XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtmYWlsZWQgdG8gc2V0IEJJT1MgU0FSIHBvd2VyIGxpbWl0OiAlZFxcblwmIzM0OywgcmV0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI0MS1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI0NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjI0NTpzdGF0aWMgaW50IGF0aDEya19hY3BpX3NldF9iaW9zX3Nhcl9wYXJhbXMoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI0Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjQ4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjQ5Olx0cmV0ID0gYXRoMTJrX3dtaV9zZXRfYmlvc19zYXJfY21kKGFiLCBhYi1cdTAwM2VhY3BpLmJpb3Nfc2FyX2RhdGEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjUwLVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjUxOlx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7ZmFpbGVkIHRvIHNldCBBQ1BJIEJJT1MgU0FSIHRhYmxlOiAlZFxcblwmIzM0OywgcmV0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI1Mi1cdFx0cmV0dXJuIHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yNTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyNTU6XHRyZXQgPSBhdGgxMmtfd21pX3NldF9iaW9zX2dlb19jbWQoYWIsIGFiLVx1MDAzZWFjcGkuZ2VvX29mZnNldF9kYXRhKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI1Ni1cdGlmIChyZXQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjI1NzpcdFx0YXRoMTJrX3dhcm4oYWIsIFwmIzM0O2ZhaWxlZCB0byBzZXQgQUNQSSBCSU9TIEdFTyB0YWJsZTogJWRcXG5cJiMzNDssIHJldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yNTgtXHRcdHJldHVybiByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjYzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjY0OnN0YXRpYyBpbnQgYXRoMTJrX2FjcGlfc2V0X3Rhc19wYXJhbXMoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI2NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjY3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjY4Olx0cmV0ID0gYXRoMTJrX3dtaV9zZXRfYmlvc19jbWQoYWIsIFdNSV9CSU9TX1BBUkFNX1RBU19DT05GSUdfVFlQRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI2OS1cdFx0XHRcdCAgICAgIGFiLVx1MDAzZWFjcGkudGFzX2NmZyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yNzEtXHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyNzI6XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtmYWlsZWQgdG8gc2VuZCBBQ1BJIFRBUyBjb25maWcgdGFibGUgcGFyYW1ldGVyOiAlZFxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI3My1cdFx0XHQgICAgcmV0KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yNzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyNzc6XHRyZXQgPSBhdGgxMmtfd21pX3NldF9iaW9zX2NtZChhYiwgV01JX0JJT1NfUEFSQU1fVEFTX0RBVEFfVFlQRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI3OC1cdFx0XHRcdCAgICAgIGFiLVx1MDAzZWFjcGkudGFzX3Nhcl9wb3dlcl90YWJsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yODAtXHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyODE6XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtmYWlsZWQgdG8gc2VuZCBBQ1BJIFRBUyBkYXRhIHRhYmxlIHBhcmFtZXRlcjogJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yODItXHRcdFx0ICAgIHJldCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjg4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6Mjg5OmJvb2wgYXRoMTJrX2FjcGlfZ2V0X2Rpc2FibGVfcmZraWxsKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yOTAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI5My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjI5NDpib29sIGF0aDEya19hY3BpX2dldF9kaXNhYmxlXzExYmUoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI5NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6Mjk5OnZvaWQgYXRoMTJrX2FjcGlfc2V0X2RzbV9mdW5jKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMDAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTMwOC1cdGlmIChhYi1cdTAwM2VhY3BpLmFjcGlfdGFzX2VuYWJsZSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MzA5Olx0XHRyZXQgPSBhdGgxMmtfYWNwaV9zZXRfdGFzX3BhcmFtcyhhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMTAtXHRcdGlmIChyZXQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjMxMTpcdFx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7ZmFpbGVkIHRvIHNlbmQgQUNQSSBUQVMgcGFyYW1ldGVyczogJWRcXG5cJiMzNDssIHJldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMTItXHRcdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTMxNi1cdGlmIChhYi1cdTAwM2VhY3BpLmFjcGlfYmlvc19zYXJfZW5hYmxlKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozMTc6XHRcdHJldCA9IGF0aDEya19hY3BpX3NldF9iaW9zX3Nhcl9wYXJhbXMoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzE4LVx0XHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozMTk6XHRcdFx0YXRoMTJrX3dhcm4oYWIsIFwmIzM0O2ZhaWxlZCB0byBzZW5kIEFDUEkgQklPUyBTQVI6ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzIwLVx0XHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMjUtXHRcdGJ1ZiA9IGFiLVx1MDAzZWFjcGkuY2NhX2RhdGEgJiM0MzsgQVRIMTJLX0FDUElfQ0NBX1RIUl9PRkZTRVRfREFUQV9PRkZTRVQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozMjY6XHRcdHJldCA9IGF0aDEya193bWlfc2V0X2Jpb3NfY21kKGFiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzI3LVx0XHRcdFx0XHQgICAgICBXTUlfQklPU19QQVJBTV9DQ0FfVEhSRVNIT0xEX1RZUEUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzMwLVx0XHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozMzE6XHRcdFx0YXRoMTJrX3dhcm4oYWIsIFwmIzM0O2ZhaWxlZCB0byBzZXQgQUNQSSBEU00gQ0NBIHRocmVzaG9sZDogJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMzItXHRcdFx0XHQgICAgcmV0KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMzctXHRpZiAoYWItXHUwMDNlYWNwaS5hY3BpX2JhbmRfZWRnZV9lbmFibGUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjMzODpcdFx0cmV0ID0gYXRoMTJrX3dtaV9zZXRfYmlvc19jbWQoYWIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMzktXHRcdFx0XHRcdCAgICAgIFdNSV9CSU9TX1BBUkFNX1RZUEVfQkFOREVER0UsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzQyLVx0XHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozNDM6XHRcdFx0YXRoMTJrX3dhcm4oYWIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zNDQtXHRcdFx0XHQgICAgXCYjMzQ7ZmFpbGVkIHRvIHNldCBBQ1BJIERTTSBiYW5kIGVkZ2UgY2hhbm5lbCBwb3dlcjogJWRcXG5cJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MzUxOmludCBhdGgxMmtfYWNwaV9zdGFydChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzUyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zNjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozNjk6XHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX1NVUFBPUlRfRlVOQ1MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzcwLVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MzcxOlx0XHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0JPT1QsIFwmIzM0O2ZhaWxlZCB0byBnZXQgQUNQSSBEU00gZGF0YTogJWRcXG5cJiMzNDssIHJldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zNzItXHRcdHJldHVybiByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzc1LVx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVx1MDAzZWFjcGksIEFUSDEyS19BQ1BJX0ZVTkNfQklUX0RJU0FCTEVfRkxBRykpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjM3NjpcdFx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19ESVNBQkxFX0ZMQUcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzc3LVx0XHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozNzg6XHRcdFx0YXRoMTJrX3dhcm4oYWIsIFwmIzM0O2ZhaWxlZCB0byBnZXQgQUNQSSBESVNBQkxFIEZMQUc6ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzc5LVx0XHRcdHJldHVybiByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzkxLVx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVx1MDAzZWFjcGksIEFUSDEyS19BQ1BJX0ZVTkNfQklUX0JERl9FWFQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozOTI6XHRcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfQkRGX0VYVCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zOTMtXHRcdGlmIChyZXQgfHwgYWItXHUwMDNlYWNwaS5iZGZfc3RyaW5nWzBdID09ICYjMzk7XFwwJiMzOTspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjM5NDpcdFx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7ZmFpbGVkIHRvIGdldCBBQ1BJIEJERiBFWFQ6ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzk1LVx0XHRcdHJldHVybiByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDAxLVx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVx1MDAzZWFjcGksIEFUSDEyS19BQ1BJX0ZVTkNfQklUX1RBU19DRkcpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MDI6XHRcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfVEFTX0NGRyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MDMtXHRcdGlmIChyZXQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQwNDpcdFx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7ZmFpbGVkIHRvIGdldCBBQ1BJIFRBUyBjb25maWcgdGFibGU6ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDA1LVx0XHRcdHJldHVybiByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDA5LVx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVx1MDAzZWFjcGksIEFUSDEyS19BQ1BJX0ZVTkNfQklUX1RBU19EQVRBKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDEwOlx0XHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX1RBU19EQVRBKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQxMS1cdFx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDEyOlx0XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtmYWlsZWQgdG8gZ2V0IEFDUEkgVEFTIGRhdGEgdGFibGU6ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDEzLVx0XHRcdHJldHVybiByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDIyLVx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVx1MDAzZWFjcGksIEFUSDEyS19BQ1BJX0ZVTkNfQklUX0JJT1NfU0FSKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDIzOlx0XHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0JJT1NfU0FSKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQyNC1cdFx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDI1Olx0XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtmYWlsZWQgdG8gZ2V0IEFDUEkgYmlvcyBzYXIgZGF0YTogJWRcXG5cJiMzNDssIHJldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MjYtXHRcdFx0cmV0dXJuIHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MzAtXHRpZiAoQVRIMTJLX0FDUElfRlVOQ19CSVRfVkFMSUQoYWItXHUwMDNlYWNwaSwgQVRIMTJLX0FDUElfRlVOQ19CSVRfR0VPX09GRlNFVCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQzMTpcdFx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19HRU9fT0ZGU0VUKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQzMi1cdFx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDMzOlx0XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtmYWlsZWQgdG8gZ2V0IEFDUEkgZ2VvIG9mZnNldCBkYXRhOiAlZFxcblwmIzM0OywgcmV0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQzNC1cdFx0XHRyZXR1cm4gcmV0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ0NC1cdGlmIChBVEgxMktfQUNQSV9GVU5DX0JJVF9WQUxJRChhYi1cdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9DQ0EpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0NDU6XHRcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfSU5ERVhfQ0NBKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ0Ni1cdFx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDQ3Olx0XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtmYWlsZWQgdG8gZ2V0IEFDUEkgRFNNIENDQSB0aHJlc2hvbGQgY29uZmlndXJhdGlvbjogJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NDgtXHRcdFx0XHQgICAgcmV0KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NTktXHRcdFx0XHQgICAgICAgQVRIMTJLX0FDUElfRlVOQ19CSVRfQkFORF9FREdFX0NIQU5fUE9XRVIpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0NjA6XHRcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfSU5ERVhfQkFORF9FREdFKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ2MS1cdFx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDYyOlx0XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtmYWlsZWQgdG8gZ2V0IEFDUEkgRFNNIGJhbmQgZWRnZSBjaGFubmVsIHBvd2VyOiAlZFxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ2My1cdFx0XHRcdCAgICByZXQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ3My1cdFx0XHRcdFx0ICAgICBBQ1BJX0RFVklDRV9OT1RJRlksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0NzQ6XHRcdFx0XHRcdCAgICAgYXRoMTJrX2FjcGlfZHNtX25vdGlmeSwgYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDc1LVx0aWYgKEFDUElfRkFJTFVSRShzdGF0dXMpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0NzY6XHRcdGF0aDEya193YXJuKGFiLCBcJiMzNDtmYWlsZWQgdG8gaW5zdGFsbCBEU00gbm90aWZ5IGNhbGxiYWNrOiAlZFxcblwmIzM0Oywgc3RhdHVzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ3Ny1cdFx0cmV0dXJuIC1FSU87XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDg0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDg1OmludCBhdGgxMmtfYWNwaV9jaGVja19iZGZfdmFyaWFudF9uYW1lKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00ODYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ5Mi1cdGlmIChzdHJzY3B5KGFiLVx1MDAzZXFtaS50YXJnZXQuYmRmX2V4dCwgYWItXHUwMDNlYWNwaS5iZGZfc3RyaW5nICYjNDM7IDQsIG1heF9sZW4pIFx1MDAzYyAwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDkzOlx0XHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0JPT1QsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00OTQtXHRcdFx0ICAgXCYjMzQ7YWNwaSBiZGYgdmFyaWFudCBsb25nZXIgdGhhbiB0aGUgYnVmZmVyICh2YXJpYW50OiAlcylcXG5cJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDk5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NTAwOnZvaWQgYXRoMTJrX2FjcGlfc3RvcChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNTAxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy01MDYtXHRcdFx0XHQgICBBQ1BJX0RFVklDRV9OT1RJRlksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo1MDc6XHRcdFx0XHQgICBhdGgxMmtfYWNwaV9kc21fbm90aWZ5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTUwOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC03NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjc1OmludCBhdGgxMmtfYWNwaV9zdGFydChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjc2OnZvaWQgYXRoMTJrX2FjcGlfc3RvcChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjc3OmJvb2wgYXRoMTJrX2FjcGlfZ2V0X2Rpc2FibGVfcmZraWxsKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6Nzg6Ym9vbCBhdGgxMmtfYWNwaV9nZXRfZGlzYWJsZV8xMWJlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6Nzk6dm9pZCBhdGgxMmtfYWNwaV9zZXRfZHNtX2Z1bmMoc3RydWN0IGF0aDEya19iYXNlICphYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo4MDppbnQgYXRoMTJrX2FjcGlfY2hlY2tfYmRmX3ZhcmlhbnRfbmFtZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTgxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTgzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6ODQ6c3RhdGljIGlubGluZSBpbnQgYXRoMTJrX2FjcGlfc3RhcnQoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTg1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC04OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjg5OnN0YXRpYyBpbmxpbmUgdm9pZCBhdGgxMmtfYWNwaV9zdG9wKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC05MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtOTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo5MzpzdGF0aWMgaW5saW5lIGJvb2wgYXRoMTJrX2FjcGlfZ2V0X2Rpc2FibGVfcmZraWxsKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC05NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtOTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo5ODpzdGF0aWMgaW5saW5lIGJvb2wgYXRoMTJrX2FjcGlfZ2V0X2Rpc2FibGVfMTFiZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtOTkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTEwMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjEwMzpzdGF0aWMgaW5saW5lIHZvaWQgYXRoMTJrX2FjcGlfc2V0X2RzbV9mdW5jKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC0xMDQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTEwNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjEwNzpzdGF0aWMgaW5saW5lIGludCBhdGgxMmtfYWNwaV9jaGVja19iZGZfdmFyaWFudF9uYW1lKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC0xMDgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjIyOnN0YXRpYyBzdHJ1Y3QgYXRoMTJrX2FoYl9kcml2ZXIgKmF0aDEya19haGJfZmFtaWx5X2RyaXZlcnNbQVRIMTJLX0RFVklDRV9GQU1JTFlfTUFYXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjM6c3RhdGljIGNvbnN0IGNoYXIgYXRoMTJrX3VzZXJwZF9pcnFbXVs5XSA9IHtcJiMzNDtzcGF3blwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjQtXHRcdFx0XHQgICAgIFwmIzM0O3JlYWR5XCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM9ODM9ZW51bSBleHRfaXJxX251bSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjEyMzpzdGF0aWMgdTMyIGF0aDEya19haGJfcmVhZDMyKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsIHUzMiBvZmZzZXQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTEyNC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xMjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjEzMDpzdGF0aWMgdm9pZCBhdGgxMmtfYWhiX3dyaXRlMzIoc3RydWN0IGF0aDEya19iYXNlICphYiwgdTMyIG9mZnNldCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTMxLVx0XHRcdCAgICAgICB1MzIgdmFsdWUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xMzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjEzOTpzdGF0aWMgdm9pZCBhdGgxMmtfYWhiX2NhbmNlbF93b3JrcXVldWUoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTQwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTE0My1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGFiLVx1MDAzZWh3X3BhcmFtcy1cdTAwM2VjZV9jb3VudDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTQ0Olx0XHRzdHJ1Y3QgYXRoMTJrX2NlX3BpcGUgKmNlX3BpcGUgPSBcdTAwMjZhYi1cdTAwM2VjZS5jZV9waXBlW2ldO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xNDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjE0NjpcdFx0aWYgKGF0aDEya19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTE0Ny1cdFx0XHRjb250aW51ZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTE1Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTUzOnN0YXRpYyB2b2lkIGF0aDEya19haGJfZXh0X2dycF9kaXNhYmxlKHN0cnVjdCBhdGgxMmtfZXh0X2lycV9ncnAgKmlycV9ncnApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTE1NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xNjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjE2MTpzdGF0aWMgdm9pZCBfX2F0aDEya19haGJfZXh0X2lycV9kaXNhYmxlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTE2Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xNjUtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBVEgxMktfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTY2Olx0XHRzdHJ1Y3QgYXRoMTJrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gXHUwMDI2YWItXHUwMDNlZXh0X2lycV9ncnBbaV07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTE2Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTY4Olx0XHRhdGgxMmtfYWhiX2V4dF9ncnBfZGlzYWJsZShpcnFfZ3JwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTY5LVx0XHRpZiAoaXJxX2dycC1cdTAwM2VuYXBpX2VuYWJsZWQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTE3Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTc3OnN0YXRpYyB2b2lkIGF0aDEya19haGJfZXh0X2dycF9lbmFibGUoc3RydWN0IGF0aDEya19leHRfaXJxX2dycCAqaXJxX2dycClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTc4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTE4NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTg1OnN0YXRpYyB2b2lkIGF0aDEya19haGJfc2V0Yml0MzIoc3RydWN0IGF0aDEya19iYXNlICphYiwgdTggYml0LCB1MzIgb2Zmc2V0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xODYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTg4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoxODk6XHR2YWwgPSBhdGgxMmtfYWhiX3JlYWQzMihhYiwgb2Zmc2V0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTkwOlx0YXRoMTJrX2FoYl93cml0ZTMyKGFiLCBvZmZzZXQsIHZhbCB8IEJJVChiaXQpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTkxLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTkyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoxOTM6c3RhdGljIHZvaWQgYXRoMTJrX2FoYl9jbGVhcmJpdDMyKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsIHU4IGJpdCwgdTMyIG9mZnNldClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTk0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTE5Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTk3Olx0dmFsID0gYXRoMTJrX2FoYl9yZWFkMzIoYWIsIG9mZnNldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjE5ODpcdGF0aDEya19haGJfd3JpdGUzMihhYiwgb2Zmc2V0LCB2YWwgXHUwMDI2IH5CSVQoYml0KSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTE5OS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTIwMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjAxOnN0YXRpYyB2b2lkIGF0aDEya19haGJfY2VfaXJxX2VuYWJsZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLCB1MTYgY2VfaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTIwMi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yMTItXHRpZiAoY2VfYXR0ci1cdTAwM2VzcmNfbmVudHJpZXMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjIxMzpcdFx0YXRoMTJrX2FoYl9zZXRiaXQzMihhYiwgY2VfaWQsIGllMV9yZWdfYWRkcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTIxNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjE1LVx0aWYgKGNlX2F0dHItXHUwMDNlZGVzdF9uZW50cmllcykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyMTY6XHRcdGF0aDEya19haGJfc2V0Yml0MzIoYWIsIGNlX2lkLCBpZTJfcmVnX2FkZHIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyMTc6XHRcdGF0aDEya19haGJfc2V0Yml0MzIoYWIsIGNlX2lkICYjNDM7IENFX0hPU1RfSUVfM19TSElGVCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjE4LVx0XHRcdFx0ICAgIGllM19yZWdfYWRkcik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yMjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjIyMjpzdGF0aWMgdm9pZCBhdGgxMmtfYWhiX2NlX2lycV9kaXNhYmxlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsIHUxNiBjZV9pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjIzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTIzMy1cdGlmIChjZV9hdHRyLVx1MDAzZXNyY19uZW50cmllcylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjM0Olx0XHRhdGgxMmtfYWhiX2NsZWFyYml0MzIoYWIsIGNlX2lkLCBpZTFfcmVnX2FkZHIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yMzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTIzNi1cdGlmIChjZV9hdHRyLVx1MDAzZWRlc3RfbmVudHJpZXMpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjM3Olx0XHRhdGgxMmtfYWhiX2NsZWFyYml0MzIoYWIsIGNlX2lkLCBpZTJfcmVnX2FkZHIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyMzg6XHRcdGF0aDEya19haGJfY2xlYXJiaXQzMihhYiwgY2VfaWQgJiM0MzsgQ0VfSE9TVF9JRV8zX1NISUZULFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yMzktXHRcdFx0XHQgICAgICBpZTNfcmVnX2FkZHIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjQyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyNDM6c3RhdGljIHZvaWQgYXRoMTJrX2FoYl9zeW5jX2NlX2lycXMoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjQ0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI0OC1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGFiLVx1MDAzZWh3X3BhcmFtcy1cdTAwM2VjZV9jb3VudDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjQ5Olx0XHRpZiAoYXRoMTJrX2NlX2dldF9hdHRyX2ZsYWdzKGFiLCBpKSBcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjUwLVx0XHRcdGNvbnRpbnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyNTc6c3RhdGljIHZvaWQgYXRoMTJrX2FoYl9zeW5jX2V4dF9pcnFzKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI1OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yNjItXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBVEgxMktfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjYzOlx0XHRzdHJ1Y3QgYXRoMTJrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gXHUwMDI2YWItXHUwMDNlZXh0X2lycV9ncnBbaV07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI2NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI3MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjcyOnN0YXRpYyB2b2lkIGF0aDEya19haGJfY2VfaXJxc19lbmFibGUoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjczLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI3Ni1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGFiLVx1MDAzZWh3X3BhcmFtcy1cdTAwM2VjZV9jb3VudDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6Mjc3Olx0XHRpZiAoYXRoMTJrX2NlX2dldF9hdHRyX2ZsYWdzKGFiLCBpKSBcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjc4LVx0XHRcdGNvbnRpbnVlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyNzk6XHRcdGF0aDEya19haGJfY2VfaXJxX2VuYWJsZShhYiwgaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI4MC1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI4Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjgzOnN0YXRpYyB2b2lkIGF0aDEya19haGJfY2VfaXJxc19kaXNhYmxlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI4NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yODctXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBhYi1cdTAwM2Vod19wYXJhbXMtXHUwMDNlY2VfY291bnQ7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjI4ODpcdFx0aWYgKGF0aDEya19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI4OS1cdFx0XHRjb250aW51ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjkwOlx0XHRhdGgxMmtfYWhiX2NlX2lycV9kaXNhYmxlKGFiLCBpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjkxLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjkzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyOTQ6c3RhdGljIGludCBhdGgxMmtfYWhiX3N0YXJ0KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI5NS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjI5NjpcdGF0aDEya19haGJfY2VfaXJxc19lbmFibGUoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyOTc6XHRhdGgxMmtfY2VfcnhfcG9zdF9idWYoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yOTgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0zMDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjMwMjpzdGF0aWMgdm9pZCBhdGgxMmtfYWhiX2V4dF9pcnFfZW5hYmxlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTMwMy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjMwNDpcdHN0cnVjdCBhdGgxMmtfZXh0X2lycV9ncnAgKmlycV9ncnA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTMwNS1cdGludCBpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzEyLVx0XHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjMxMzpcdFx0YXRoMTJrX2FoYl9leHRfZ3JwX2VuYWJsZShpcnFfZ3JwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzE0LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzozMTc6c3RhdGljIHZvaWQgYXRoMTJrX2FoYl9leHRfaXJxX2Rpc2FibGUoc3RydWN0IGF0aDEya19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzE4LXtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDA0OjA1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4ODY0CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMjM2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgdGhlIGBhdGgxMmtgIERyaXZlcjogQSBUaG91Z2h0IFByb2Nlc3MqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYGF0aDEya2AgZHJpdmVyLiBJdCYjMzk7cyBhIGhhcmR3YXJlIGRyaXZlciwgd2hpY2ggdXN1YWxseSBwcmVzZW50cyBhIGNoYWxsZW5nZSBmb3IgZnV6emluZy4gVW5sZXNzIGl0JiMzOTtzIGEgVVNCIGRyaXZlciwgb3Igd2UgaGF2ZSBhIHNvbGlkIGVtdWxhdG9yLCBmdXp6aW5nIHRoZXNlIHRoaW5ncyBpcyB0eXBpY2FsbHkgYSBkZWFkIGVuZC4gQnV0LCB3YWl0Li4uIGBhdGgxMmtgIGlzIGEgUENJL0FIQiBkcml2ZXIsIHdoaWNoICpjb3VsZCogYmUgcHJvbWlzaW5nLiBJcyB0aGVyZSBzb21lIGhpZGRlbiB0ZXN0IG1vZGUgb3IgZGVidWcgZmxhZyBJIGNhbiBsZXZlcmFnZT8KCkxldCBtZSBzZWXigKYgYWhhISBUaGVyZSBpdCBpczogYGF0aDEyay0kKENPTkZJR19OTDgwMjExX1RFU1RNT0RFKSAmIzQzOz0gdGVzdG1vZGUub2AuIEJ1dCBJ4oCZdmUgZGVhbHQgd2l0aCB0ZXN0bW9kZSBiZWZvcmU7IEl04oCZcyBnZW5lcmFsbHkgZm9yIHBhc3NpbmcgY29tbWFuZHMsIG5vdCBhIGZ1bGwtYmxvd24gaGFyZHdhcmUgZW11bGF0b3IuIEl0JiMzOTtzIG5vdCBhIHNpbHZlciBidWxsZXQuIAoKQWxzbywgdGhlIHBhdGNoIGlzIHRvdWNoaW5nIGBhdGgxMmtfYnNzX2Fzc29jYC4gVGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZCBkdXJpbmcgYXNzb2NpYXRpb24sIHNvIGhvdyBhbSBJIGdvaW5nIHRvIGdldCB0byBpdCBpbiB0aGUgZmlyc3QgcGxhY2U/IElmIHRoZSBoYXJkd2FyZSBpc24mIzM5O3QgcGh5c2ljYWxseSBwcmVzZW50LCB0aGUgZHJpdmVyIHdvbuKAmXQgZXZlbiBwcm9iZSwgYW5kIGBhdGgxMmtfYnNzX2Fzc29jYCByZW1haW5zIHVudG91Y2hlZC4KClJpZ2h0LiBJIGtub3cgYG1hYzgwMjExX2h3c2ltYCBlbXVsYXRlcyBNQUM4MDIxMSwgYnV0IHRoZSBgYXRoMTJrYCBkcml2ZXIgaXMgYSBmdWxsIE1BQyBkcml2ZXIsIG9yIGF0IGxlYXN0IGl0IHJlZ2lzdGVycyB0byBtYWM4MDIxMSwgYnV0IGZ1bmRhbWVudGFsbHkgcmVsaWVzIG9uIHRoZSByZWFsIGhhcmR3YXJlIGZvciBwcm9iaW5nLiBTbyB0aGUgdXN1YWwgdHJpY2tzIHdvbiYjMzk7dCB3b3JrLgoKQWxyaWdodCwgdGltZSB0byBnZXQgcHJhY3RpY2FsLiBUaGUgcXVlc3Rpb24gaXMsIGNhbiBJIHRyaWNrIHRoZSBzeXN0ZW0gaW50byBwcm9iaW5nIGBhdGgxMmtgIHdpdGhvdXQgdGhlIHBoeXNpY2FsIGhhcmR3YXJlIGJlaW5nIHByZXNlbnQ/IEkmIzM5O2xsIG5lZWQgdG8gZmlndXJlIG91dCBob3cgdG8gbG9hZCB0aGlzIHRoaW5nIGluIGEgY29udHJvbGxlZCBlbnZpcm9ubWVudC4gTGV0JiMzOTtzIHNlZS4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDA0OjA1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YXRoMTJrX2NvcmVfcHJvYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDQ6MDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk1MzYKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAyNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqQ2hlY2tpbmcgdGhlIFByb2JlIEZ1bmN0aW9ucyoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkmIzM5O20gdGhpbmtpbmcsICYjMzQ7V2hlcmUgZG8gd2Ugc3RhcnQgdHJvdWJsZXNob290aW5nIHRoaXMgcGFydGljdWxhciBhdGgxMmsgaXNzdWU/JiMzNDsgTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gemVybyBpbiBvbiB0aGUgY29yZSBvZiB0aGUgZGV2aWNlIGluaXRpYWxpemF0aW9uLiBTbywgdGhlIGZpcnN0IHBsYWNlIEkmIzM5O20gZ29pbmcgdG8gbG9vayBpcyBlaXRoZXIgYGF0aDEya19wY2lfcHJvYmVgIG9yIGBhdGgxMmtfYWhiX3Byb2JlYC4gVGhlc2UgYXJlIHRoZSBlbnRyeSBwb2ludHMg4oCTIHRoZSBmdW5jdGlvbnMgdGhhdCBhcmUgY2FsbGVkIHdoZW4gdGhlIGRyaXZlciBpcyBhdHRlbXB0aW5nIHRvIGluaXRpYWxpemUgYSBQQ0kgb3IgQUhCLWJhc2VkIGF0aDEyayBkZXZpY2UsIHJlc3BlY3RpdmVseS4gS25vd2luZyB3aGljaCBvbmUgaXMgcmVsZXZhbnQgaXMgY3J1Y2lhbCB0byB1bmRlcnN0YW5kaW5nIHRoZSBwYXRoIG9mIGV4ZWN1dGlvbi4gRnJvbSB0aGVyZSBJIGNhbiBmb2xsb3cgdGhlIGNvbnRyb2wgZmxvdywgbG9vayBhdCB0aGUgZXJyb3IgY29kZXMgYW5kIGxvZ3MsIGFuZCBwaWVjZSB0b2dldGhlciB0aGUgc2VxdWVuY2UgdGhhdCBpcyBmYWlsaW5nLiBJdCYjMzk7cyB0aGUgZmlyc3Qgc3RlcCB0byBuYXJyb3dpbmcgZG93biB0aGUgcm9vdCBjYXVzZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDQ6MDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YXRoMTJrX3BjaV9wcm9iZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmM9MTUxMz1hdGgxMmtfZ2V0X2RldmljZV9mYW1pbHkoY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKnBjaV9kZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xNTMzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoxNTM0OnN0YXRpYyBpbnQgYXRoMTJrX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTUzNS1cdFx0XHQgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKnBjaV9kZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYz0xODE0PWludCBhdGgxMmtfcGNpX3JlZ2lzdGVyX2RyaXZlcihjb25zdCBlbnVtIGF0aDEya19kZXZpY2VfZmFtaWx5IGRldmljZV9pZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTE4MzUtXHRwY2lfZHJpdmVyLVx1MDAzZWlkX3RhYmxlID0gZHJpdmVyLVx1MDAzZWlkX3RhYmxlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYzoxODM2Olx0cGNpX2RyaXZlci1cdTAwM2Vwcm9iZSA9IGF0aDEya19wY2lfcHJvYmU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jLTE4MzctXHRwY2lfZHJpdmVyLVx1MDAzZXJlbW92ZSA9IGF0aDEya19wY2lfcmVtb3ZlO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwNDowNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDE1MwoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDE0OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBhdGgxMmsgRHJpdmVyIGluIGEgVmlydHVhbGl6ZWQgRW52aXJvbm1lbnQqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgZHJpdmVyLCBhbmQgaXQmIzM5O3MgcHJldHR5IGNsZWFyOiBpdCYjMzk7cyBhIHN0YW5kYXJkIFBDSSBkcml2ZXIuIE5vdGhpbmcgdW51c3VhbCB0aGVyZS4gVGhlIHByb2JsZW0gaXMsIHdpdGhvdXQgdGhlIGFjdHVhbCBwaHlzaWNhbCBQQ0kgZGV2aWNlIHByZXNlbnQsIHRoZSBgcHJvYmVgIGZ1bmN0aW9uLCB0aGUgb25lIHRoYXQga2lja3Mgb2ZmIHRoZSB3aG9sZSBpbml0aWFsaXphdGlvbiBwcm9jZXNzLCBpc24mIzM5O3QgZ29pbmcgdG8gYmUgY2FsbGVkLiBUaGF0IG1lYW5zIG5vbmUgb2YgdGhlIGNvZGUgd2l0aGluLCBpbmNsdWRpbmcgdGhlIGltcG9ydGFudCBgYXRoMTJrX2Jzc19hc3NvY2AgZnVuY3Rpb24sIGlzIGdvaW5nIHRvIGJlIHJlYWNoYWJsZSBpbiBhIHB1cmVseSB2aXJ0dWFsaXplZCBzZXR1cC4gRW52aXJvbm1lbnRzIGxpa2UgR29vZ2xlIENvbXB1dGUgRW5naW5lIG9yIFFFTVUgd2l0aG91dCBQQ0kgcGFzc3Rocm91Z2gsIHdoZXJlIHdlJiMzOTtyZSBub3QgZGlyZWN0bHkgZXhwb3NpbmcgdGhlIFF1YWxjb21tIFdpLUZpIDcgaGFyZHdhcmUsIGFyZSBnb2luZyB0byBwcmV2ZW50IHRoYXQgY29kZSBmcm9tIHJ1bm5pbmcuCgpUaGVyZWZvcmUsIGdpdmVuIHRoZSBjb25zdHJhaW50IG9mICpubyogcGh5c2ljYWwgZGV2aWNlIGFuZCBhICp2aXJ0dWFsKiBlbnZpcm9ubWVudCwgc2V0dGluZyBgV29ydGhGdXp6aW5nYCB0byBgZmFsc2VgIGlzIHRoZSByaWdodCBjYWxsIGhlcmUuIFRoZSBjb25kaXRpb25zIGZvciBmdXp6aW5nIGp1c3QgYXJlbiYjMzk7dCBtZXQuCgpCdXQsIEkgc2hvdWxkIHByb2JhYmx5IGRvdWJsZS1jaGVjayB0aGF0IGFzc3VtcHRpb24ganVzdCB0byBiZSBjZXJ0YWluLiBMZXQgbWUgcXVpY2tseSBzY291ciB0aGUgY29kZWJhc2UgdG8gc2VlIGlmIHRoZXJlJiMzOTtzIGFueSBmb3JtIG9mIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgYGF0aDEya2AuIEkmIzM5O2xsIGZvY3VzIG15IHNlYXJjaCBvbiBsaWtlbHkgYXJlYXMsIGxpa2UgdGhlIGB0b29scy90ZXN0aW5nL2AgZGlyZWN0b3J5IG9yIHBlcmhhcHMgc29tZXRoaW5nIHNpbWlsYXIgdG8gYG1hYzgwMjExX2h3c2ltLmNgIGluIHRoZSB3aXJlbGVzcyBkcml2ZXJzLiBKdXN0IHdhbnQgdG8gYmUgYWJzb2x1dGVseSBzdXJlIHRoZXJlIGlzbiYjMzk7dCBzb21lIGJhY2tkb29yIGVtdWxhdGlvbiB0aGF0IHdvdWxkIGNoYW5nZSBteSBjb25jbHVzaW9uLiBJIGNhbiYjMzk7dCB0aGluayBvZiBhbnkgb2ZmIHRoZSB0b3Agb2YgbXkgaGVhZCwgYnV0IGJlc3QgdG8gYmUgdGhvcm91Z2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDA0OjA1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YXRoMTJrJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFjODAyMTFfaHdzaW0uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDA0OjA1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwNjgzCgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyBQb3RlbnRpYWwgVGVzdCBNb2RlIEltcGxlbWVudGF0aW9ucyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgZm9yIGEgc3BlY2lmaWMgY2FwYWJpbGl0eSwgYW5kIG15IGluaXRpYWwgc2VhcmNoIGluIGBtYWM4MDIxMV9od3NpbS5jYCB5aWVsZGVkIG5vdGhpbmcuIFRoYXQmIzM5O3MgYSBiaXQgc3VycHJpc2luZywgZ2l2ZW4gdGhlIHVzdWFsIGFzc29jaWF0aW9uIG9mIGhhcmR3YXJlIHNpbXVsYXRpb24gd2l0aCB0ZXN0IG1vZGVzLiBBbHJpZ2h0LCBsZXQmIzM5O3MgYnJvYWRlbiB0aGUgc2NvcGUuIE15IG5leHQgdGhvdWdodCBpcyB0byBpbnZlc3RpZ2F0ZSB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuY2AgZmlsZS4gR2l2ZW4gdGhlIGBhdGgxMmtgIGlzIGEgcmVjZW50IGFuZCBjb21wbGV4IHdpcmVsZXNzIGRyaXZlciwgYW5kICYjMzk7dGVzdG1vZGUmIzM5OyBpcyBleHBsaWNpdGx5IGluIHRoZSBmaWxlbmFtZSwgdGhlcmUmIzM5O3MgYSBnb29kIGNoYW5jZSB0aGF0JiMzOTtzIHdoZXJlIGFueSByZWxldmFudCBmdW5jdGlvbmFsaXR5IG1pZ2h0IHJlc2lkZS4gSXQmIzM5O3MgYSBzZW5zaWJsZSBuZXh0IHN0ZXAgaW4gdGhlIHByb2Nlc3MuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDA0OjA1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3Rlc3Rtb2RlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy02LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjc6I2luY2x1ZGUgXCYjMzQ7dGVzdG1vZGUuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTgtI2luY2x1ZGUgXHUwMDNjbmV0L25ldGxpbmsuaFx1MDAzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xMy0jaW5jbHVkZSBcJiMzNDtoaWYuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjE0OiNpbmNsdWRlIFwmIzM0Oy4uL3Rlc3Rtb2RlX2kuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTE1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYz00NT12b2lkIGF0aDEya190bV93bWlfZXZlbnRfdW5zZWdtZW50ZWQoc3RydWN0IGF0aDEya19iYXNlICphYiwgdTMyIGNtZF9pZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNTEtXHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX1RFU1RNT0RFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjUyOlx0XHQgICBcJiMzNDt0ZXN0bW9kZSBldmVudCB3bWkgY21kX2lkICVkIHNrYiBsZW5ndGggJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNTMtXHRcdCAgIGNtZF9pZCwgc2tiLVx1MDAzZWxlbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTU4LVx0aWYgKCFhcikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjU5Olx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7dGVzdG1vZGUgZXZlbnQgbm90IGhhbmRsZWQgZHVlIHRvIGludmFsaWQgcGRldlxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNjAtXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6NjU6XHRubF9za2IgPSBjZmc4MDIxMV90ZXN0bW9kZV9hbGxvY19ldmVudF9za2IoYXItXHUwMDNlYWgtXHUwMDNlaHctXHUwMDNld2lwaHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNjYtXHRcdFx0XHRcdFx0ICAgMiAqIG5sYV90b3RhbF9zaXplKHNpemVvZih1MzIpKSAmIzQzO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy03Mi1cdFx0YXRoMTJrX3dhcm4oYWIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6NzM6XHRcdFx0ICAgIFwmIzM0O2ZhaWxlZCB0byBhbGxvY2F0ZSBza2IgZm9yIHVuc2VnbWVudGVkIHRlc3Rtb2RlIHdtaSBldmVudFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNzQtXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNzktXHQgICAgbmxhX3B1dChubF9za2IsIEFUSF9UTV9BVFRSX0RBVEEsIHNrYi1cdTAwM2VsZW4sIHNrYi1cdTAwM2VkYXRhKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjgwOlx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7ZmFpbGVkIHRvIHBvcHVsYXRlIHRlc3Rtb2RlIHVuc2VnbWVudGVkIGV2ZW50XFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy04MS1cdFx0a2ZyZWVfc2tiKG5sX3NrYik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTg0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjg1Olx0Y2ZnODAyMTFfdGVzdG1vZGVfZXZlbnQobmxfc2tiLCBHRlBfQVRPTUlDKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy04Ni19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jPTg4PXZvaWQgYXRoMTJrX3RtX3Byb2Nlc3NfZXZlbnQoc3RydWN0IGF0aDEya19iYXNlICphYiwgdTMyIGNtZF9pZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtOTktXHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX1RFU1RNT0RFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjEwMDpcdFx0ICAgXCYjMzQ7dGVzdG1vZGUgZXZlbnQgd21pIGNtZF9pZCAlZCBmdG0gZXZlbnQgbXNnICVwIGRhdGFsZW4gJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMTAxLVx0XHQgICBjbWRfaWQsIGZ0bV9tc2csIGxlbmd0aCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTEwNS1cdGlmIChwZGV2X2lkIFx1MDAzZT0gYWItXHUwMDNlbnVtX3JhZGlvcykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjEwNjpcdFx0YXRoMTJrX3dhcm4oYWIsIFwmIzM0O3Rlc3Rtb2RlIGV2ZW50IG5vdCBoYW5kbGVkIGR1ZSB0byBpbnZhbGlkIHBkZXYgaWRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTEwNy1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xMTItXHRpZiAoIWFyKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6MTEzOlx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7dGVzdG1vZGUgZXZlbnQgbm90IGhhbmRsZWQgZHVlIHRvIGFic2VuY2Ugb2YgcGRldlxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMTE0LVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTE1My1cdHNwaW5fbG9ja19iaChcdTAwMjZhci1cdTAwM2VkYXRhX2xvY2spO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjE1NDpcdG5sX3NrYiA9IGNmZzgwMjExX3Rlc3Rtb2RlX2FsbG9jX2V2ZW50X3NrYihhci1cdTAwM2VhaC1cdTAwM2Vody1cdTAwM2V3aXBoeSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xNTUtXHRcdFx0XHRcdFx0ICAgMiAqIG5sYV90b3RhbF9zaXplKHNpemVvZih1MzIpKSAmIzQzO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xNjEtXHRcdGF0aDEya193YXJuKGFiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjE2MjpcdFx0XHQgICAgXCYjMzQ7ZmFpbGVkIHRvIGFsbG9jYXRlIHNrYiBmb3IgdGVzdG1vZGUgd21pIGV2ZW50XFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xNjMtXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMTcwLVx0XHQgICAgXHUwMDI2YWItXHUwMDNlZnRtX2V2ZW50X29iai5ldmVudGRhdGFbMF0pKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6MTcxOlx0XHRhdGgxMmtfd2FybihhYiwgXCYjMzQ7ZmFpbGVkIHRvIHBvcHVsYXRlIHRlc3Rtb2RlIGV2ZW50XCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xNzItXHRcdGtmcmVlX3NrYihubF9za2IpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xNzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6MTc2Olx0Y2ZnODAyMTFfdGVzdG1vZGVfZXZlbnQobmxfc2tiLCBHRlBfQVRPTUlDKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xNzctfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYz0xNzk9c3RhdGljIGludCBhdGgxMmtfdG1fY21kX2dldF92ZXJzaW9uKHN0cnVjdCBhdGgxMmsgKmFyLCBzdHJ1Y3QgbmxhdHRyICp0YltdKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xODMtXHRhdGgxMmtfZGJnKGFyLVx1MDAzZWFiLCBBVEgxMktfREJHX1RFU1RNT0RFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjE4NDpcdFx0ICAgXCYjMzQ7dGVzdG1vZGUgY21kIGdldCB2ZXJzaW9uX21ham9yICVkIHZlcnNpb25fbWlub3IgJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMTg1LVx0XHQgICBBVEhfVEVTVE1PREVfVkVSU0lPTl9NQUpPUixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMTg4LVx0c3Bpbl9sb2NrX2JoKFx1MDAyNmFyLVx1MDAzZWRhdGFfbG9jayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6MTg5Olx0c2tiID0gY2ZnODAyMTFfdGVzdG1vZGVfYWxsb2NfcmVwbHlfc2tiKGFyLVx1MDAzZWFoLVx1MDAzZWh3LVx1MDAzZXdpcGh5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTE5MC1cdFx0XHRcdFx0XHQyICogbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHUzMikpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMjAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjIwNDpcdHJldHVybiBjZmc4MDIxMV90ZXN0bW9kZV9yZXBseShza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTIwNS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jPTIwNz1zdGF0aWMgaW50IGF0aDEya190bV9jbWRfcHJvY2Vzc19mdG0oc3RydWN0IGF0aDEyayAqYXIsIHN0cnVjdCBubGF0dHIgKnRiW10pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTIyOS1cdGF0aDEya19kYmcoYXItXHUwMDNlYWIsIEFUSDEyS19EQkdfVEVTVE1PREUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6MjMwOlx0XHQgICBcJiMzNDt0ZXN0bW9kZSBjbWQgd21pIGNtZF9pZCAlZCBidWYgJXAgYnVmX2xlbiAlZFxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0yMzEtXHRcdCAgIGNtZF9pZCwgYnVmLCBidWZfbGVuKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMjgwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjI4MTpzdGF0aWMgaW50IGF0aDEya190bV9jbWRfdGVzdG1vZGVfc3RhcnQoc3RydWN0IGF0aDEyayAqYXIsIHN0cnVjdCBubGF0dHIgKnRiW10pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMjgyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM9MzAwPXN0YXRpYyBpbnQgYXRoMTJrX3RtX2NtZF93bWkoc3RydWN0IGF0aDEyayAqYXIsIHN0cnVjdCBubGF0dHIgKnRiW10pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTMxOC1cdGlmICghYnVmX2xlbikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjMxOTpcdFx0YXRoMTJrX3dhcm4oYXItXHUwMDNlYWIsIFwmIzM0O05vIGRhdGEgcHJlc2VudCBpbiB0ZXN0bW9kZSBjb21tYW5kXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0zMjAtXHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0zMzEtXHRhdGgxMmtfZGJnKGFyLVx1MDAzZWFiLCBBVEgxMktfREJHX1RFU1RNT0RFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjMzMjpcdFx0ICAgXCYjMzQ7dGVzdG1vZGUgY21kIHdtaSBjbWRfaWQgJWQgIGJ1ZiBsZW5ndGggJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMzMzLVx0XHQgICBjbWRfaWQsIGJ1Zl9sZW4pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0zNDYtXHRcdGRldl9rZnJlZV9za2Ioc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYzozNDc6XHRcdGF0aDEya193YXJuKGFyLVx1MDAzZWFiLCBcJiMzNDtmYWlsZWQgdG8gdHJhbnNtaXQgd21pIGNvbW1hbmQgKHRlc3Rtb2RlKTogJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMzQ4LVx0XHRcdCAgICByZXQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYz0zNTQ9aW50IGF0aDEya190bV9jbWQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTM4NS1cdGNhc2UgQVRIX1RNX0NNRF9URVNUTU9ERV9TVEFSVDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYzozODY6XHRcdHJldHVybiBhdGgxMmtfdG1fY21kX3Rlc3Rtb2RlX3N0YXJ0KGFyLCB0Yik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMzg3LVx0Y2FzZSBBVEhfVE1fQ01EX0dFVF9WRVJTSU9OOlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwNDowNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzkxOQoJCQkJCQkJb3V0cHV0OiAxNDAKCQkJCQkJCXRob3VnaHRzOiAzMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nIERlY2lzaW9uIGZvciBhdGgxMmtfYnNzX2Fzc29jKioKCk9rYXksIGFmdGVyIHRoaW5raW5nIHRoaXMgdGhyb3VnaCwgSSYjMzk7bSBnb2luZyB0byBzZXQgYFdvcnRoRnV6emluZ2AgdG8gYGZhbHNlYC4gVGhlIHRlc3Rtb2RlIGlzIHJlYWxseSBvbmx5IGZvciBzZW5kaW5nIFdNSSBjb21tYW5kcyBmcm9tIHVzZXJzcGFjZSwgaXQgZG9lc24mIzM5O3QgZXZlbiBiZWdpbiB0byBlbXVsYXRlIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlLiBTaW5jZSBgYXRoMTJrYCBpcyBhIFBDSS9BSEIgZHJpdmVyLCBhbmQgdGhlcmUmIzM5O3Mgbm8ga2VybmVsLWxldmVsIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgaXQsIHRoYXQgbWVhbnMgdGhlIGNvZGUgSSBtb2RpZmllZCwgc3BlY2lmaWNhbGx5IGluIGBhdGgxMmtfYnNzX2Fzc29jYCwgaXMgc2ltcGx5IHVucmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBHQ0Ugb3IgUUVNVS4gVGhhdCBsb2dpYyByZWxpZXMgb24gdGhlIGhhcmR3YXJlIGJlaW5nIHByZXNlbnQuCgpMZXQgbWUganVzdCBkb3VibGUtY2hlY2ssIHRob3VnaCwgdG8gbWFrZSBhYnNvbHV0ZWx5IHN1cmUgdGhlcmUmIzM5O3Mgbm8gb3RoZXIgcGF0aCB0byB0aGlzIGZ1bmN0aW9uLiBSaWdodCwgaXQmIzM5O3MgYSBzdGF0aWMgZnVuY3Rpb24gaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvbWFjLmNgLiBJIHJlY2FsbCBpdCYjMzk7cyBhc3NpZ25lZCB0byBgbWFjODAyMTFfb3BzLSZndDtic3NfYXNzb2NgLiBCdXQgaGVyZSYjMzk7cyB0aGUga2lja2VyOiB0aGUgYGF0aDEya2AgZHJpdmVyIHdvbiYjMzk7dCBldmVuICpyZWdpc3Rlciogd2l0aCBgbWFjODAyMTFgIGlmIHRoZSBoYXJkd2FyZSBpc24mIzM5O3QgdGhlcmUuIGBhdGgxMmtfcGNpX3Byb2JlYCBmYWlscyBlYXJseSBpZiBpdCBjYW4mIzM5O3QgZmluZCBhIG1hdGNoaW5nIFBDSSBkZXZpY2UuIFNvIHRoZSBgbWFjODAyMTFgIHN1YnN5c3RlbSB3b24mIzM5O3QgZXZlbiBoYXZlIGFueSBgYXRoMTJrYCBpbnRlcmZhY2VzLCBhbmQgdGhlcmVmb3JlIGBhdGgxMmtfYnNzX2Fzc29jYCAqd2lsbCogbmV2ZXIgZ2V0IGNhbGxlZC4KClRoZXJlZm9yZSwgc2V0dGluZyBgV29ydGhGdXp6aW5nYCB0byBmYWxzZSBpcyB0aGUgY29ycmVjdCBjYWxsLCBnaXZlbiB0aGF0IHRoaXMgbW9kdWxlIGlzIGhhcmR3YXJlLXNwZWNpZmljLCBhbmQgdGhlcmUmIzM5O3Mgbm8gY29kZSBwYXRoIHRoYXQgYWxsb3dzIGl0IHRvIGJlIGV4ZWN1dGVkIGluIGEgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDQ6MDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYXRoMTJrIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kvQUhCIGRyaXZlciBmb3IgUXVhbGNvbW0gV2ktRmkgNyBkZXZpY2VzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gdGhlIGtlcm5lbCAobGlrZSBtYWM4MDIxMV9od3NpbSBmb3IgZ2VuZXJpYyBtYWM4MDIxMSksIHRoZSBkcml2ZXIgd2lsbCBmYWlsIHRvIHByb2JlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VIHdpdGhvdXQgdGhlIHBoeXNpY2FsIGhhcmR3YXJlLiBDb25zZXF1ZW50bHksIHRoZSBtb2RpZmllZCBjb2RlIGluIGBhdGgxMmtfYnNzX2Fzc29jYCBpcyB1bnJlYWNoYWJsZSBhbmQgY2Fubm90IGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMmsgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSS9BSEIgZHJpdmVyIGZvciBRdWFsY29tbSBXaS1GaSA3IGRldmljZXMuIFNpbmNlIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBoYXJkd2FyZSBpbiB0aGUga2VybmVsIChsaWtlIG1hYzgwMjExX2h3c2ltIGZvciBnZW5lcmljIG1hYzgwMjExKSwgdGhlIGRyaXZlciB3aWxsIGZhaWwgdG8gcHJvYmUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUgd2l0aG91dCB0aGUgcGh5c2ljYWwgaGFyZHdhcmUuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaW4gYGF0aDEya19ic3NfYXNzb2NgIGlzIHVucmVhY2hhYmxlIGFuZCBjYW5ub3QgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDA0OjA0OjUxLjQ4NjUyODQ3NloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM2NDk5OTM5NjEzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYXRoMTJrIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBQQ0kvQUhCIGRyaXZlciBmb3IgUXVhbGNvbW0gV2ktRmkgNyBkZXZpY2VzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gdGhlIGtlcm5lbCAobGlrZSBtYWM4MDIxMV9od3NpbSBmb3IgZ2VuZXJpYyBtYWM4MDIxMSksIHRoZSBkcml2ZXIgd2lsbCBmYWlsIHRvIHByb2JlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VIHdpdGhvdXQgdGhlIHBoeXNpY2FsIGhhcmR3YXJlLiBDb25zZXF1ZW50bHksIHRoZSBtb2RpZmllZCBjb2RlIGluIGBhdGgxMmtfYnNzX2Fzc29jYCBpcyB1bnJlYWNoYWJsZSBhbmQgY2Fubm90IGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDA0OjA0OjUxLjQ4NjUzNjk5NloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Nzc3OTk0MDkzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZTI1YTE5OTIzMTE3NGRiODU4ZThhNDBlN2VmNjY4ZDQ5NTJmYzY1YVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEp1bCAxNyAwNDowNDo0OSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuY1xcbmluZGV4IDE2MzM5NDY5YzI0Y2Q4Li43MDYxMDQxNjg2NTA4YSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuY1xcbkBAIC0zOTg1LDYgKzM5ODUsMTcgQEAgc3RhdGljIHZvaWQgYXRoMTJrX2Jzc19hc3NvYyhzdHJ1Y3QgYXRoMTJrICphcixcXG4gXFx0XFx0YXRoMTJrX3dhcm4oYXItXFx1MDAzZWFiLCBcXFwiZmFpbGVkIHRvIHNldCB2ZGV2ICVpIE9CU1MgUEQgcGFyYW1ldGVyczogJWRcXFxcblxcXCIsXFxuIFxcdFxcdFxcdCAgICBhcnZpZi1cXHUwMDNldmRldl9pZCwgcmV0KTtcXG4gXFxuK1xcdGlmIChhci1cXHUwMDNlYWItXFx1MDAzZWh3X3BhcmFtcy1cXHUwMDNlc3VwcG9ydHNfc3RhX3BzIFxcdTAwMjZcXHUwMDI2XFxuK1xcdCAgICBhaHZpZi1cXHUwMDNldmRldl90eXBlID09IFdNSV9WREVWX1RZUEVfU1RBIFxcdTAwMjZcXHUwMDI2XFxuK1xcdCAgICBhaHZpZi1cXHUwMDNldmRldl9zdWJ0eXBlID09IFdNSV9WREVWX1NVQlRZUEVfTk9ORSkge1xcbitcXHRcXHRyZXQgPSBhdGgxMmtfd21pX3ZkZXZfc2V0X3BhcmFtX2NtZChhciwgYXJ2aWYtXFx1MDAzZXZkZXZfaWQsXFxuK1xcdFxcdFxcdFxcdFxcdFxcdCAgICBXTUlfVkRFVl9QQVJBTV9EVElNX1BPTElDWSxcXG4rXFx0XFx0XFx0XFx0XFx0XFx0ICAgIFdNSV9EVElNX1BPTElDWV9TVElDSyk7XFxuK1xcdFxcdGlmIChyZXQpXFxuK1xcdFxcdFxcdGF0aDEya193YXJuKGFyLVxcdTAwM2VhYiwgXFxcImZhaWxlZCB0byBzZXQgdmRldiAlZCBzdGljayBEVElNIHBvbGljeTogJWRcXFxcblxcXCIsXFxuK1xcdFxcdFxcdFxcdCAgICBhcnZpZi1cXHUwMDNldmRldl9pZCwgcmV0KTtcXG4rXFx0fVxcbitcXG4gXFx0aWYgKHRlc3RfYml0KFdNSV9UTFZfU0VSVklDRV8xMURfT0ZGTE9BRCwgYXItXFx1MDAzZWFiLVxcdTAwM2V3bWlfYWIuc3ZjX21hcCkgXFx1MDAyNlxcdTAwMjZcXG4gXFx0ICAgIGFodmlmLVxcdTAwM2V2ZGV2X3R5cGUgPT0gV01JX1ZERVZfVFlQRV9TVEEgXFx1MDAyNlxcdTAwMjZcXG4gXFx0ICAgIGFodmlmLVxcdTAwM2V2ZGV2X3N1YnR5cGUgPT0gV01JX1ZERVZfU1VCVFlQRV9OT05FKVxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuaFxcbmluZGV4IDUxZjM0MjZlMWZjZDkyLi4wMTQ1Y2M0Nzc5NDRmYyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5oXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay93bWkuaFxcbkBAIC0yMzMwLDYgKzIzMzAsMTMgQEAgZW51bSB3bWlfc2xvdF90aW1lIHtcXG4gXFx0V01JX1ZERVZfU0xPVF9USU1FX1NIT1JUID0gMixcXG4gfTtcXG4gXFxuK2VudW0gd21pX2R0aW1fcG9saWN5IHtcXG4rXFx0V01JX0RUSU1fUE9MSUNZX0lHTk9SRSA9IDEsXFxuK1xcdFdNSV9EVElNX1BPTElDWV9OT1JNQUwgPSAyLFxcbitcXHRXTUlfRFRJTV9QT0xJQ1lfU1RJQ0sgID0gMyxcXG4rXFx0V01JX0RUSU1fUE9MSUNZX0FVVE8gICA9IDQsXFxuK307XFxuK1xcbiBlbnVtIHdtaV9wcmVhbWJsZSB7XFxuIFxcdFdNSV9WREVWX1BSRUFNQkxFX0xPTkcgPSAxLFxcbiBcXHRXTUlfVkRFVl9QUkVBTUJMRV9TSE9SVCA9IDIsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDA0OjA0OjUyLjI2NTE4NDU1OVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzU3MjEyNzI5MzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMmsgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSS9BSEIgZHJpdmVyIGZvciBRdWFsY29tbSBXaS1GaSA3IGRldmljZXMuIFNpbmNlIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBoYXJkd2FyZSBpbiB0aGUga2VybmVsIChsaWtlIG1hYzgwMjExX2h3c2ltIGZvciBnZW5lcmljIG1hYzgwMjExKSwgdGhlIGRyaXZlciB3aWxsIGZhaWwgdG8gcHJvYmUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUgd2l0aG91dCB0aGUgcGh5c2ljYWwgaGFyZHdhcmUuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaW4gYGF0aDEya19ic3NfYXNzb2NgIGlzIHVucmVhY2hhYmxlIGFuZCBjYW5ub3QgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBlMjVhMTk5MjMxMTc0ZGI4NThlOGE0MGU3ZWY2NjhkNDk1MmZjNjVhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMTcgMDQ6MDQ6NDkgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuY1xuaW5kZXggMTYzMzk0NjljMjRjZDguLjcwNjEwNDE2ODY1MDhhIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuY1xuQEAgLTM5ODUsNiArMzk4NSwxNyBAQCBzdGF0aWMgdm9pZCBhdGgxMmtfYnNzX2Fzc29jKHN0cnVjdCBhdGgxMmsgKmFyLFxuIFx0XHRhdGgxMmtfd2Fybihhci1cdTAwM2VhYiwgXCJmYWlsZWQgdG8gc2V0IHZkZXYgJWkgT0JTUyBQRCBwYXJhbWV0ZXJzOiAlZFxcblwiLFxuIFx0XHRcdCAgICBhcnZpZi1cdTAwM2V2ZGV2X2lkLCByZXQpO1xuIFxuK1x0aWYgKGFyLVx1MDAzZWFiLVx1MDAzZWh3X3BhcmFtcy1cdTAwM2VzdXBwb3J0c19zdGFfcHMgXHUwMDI2XHUwMDI2XG4rXHQgICAgYWh2aWYtXHUwMDNldmRldl90eXBlID09IFdNSV9WREVWX1RZUEVfU1RBIFx1MDAyNlx1MDAyNlxuK1x0ICAgIGFodmlmLVx1MDAzZXZkZXZfc3VidHlwZSA9PSBXTUlfVkRFVl9TVUJUWVBFX05PTkUpIHtcbitcdFx0cmV0ID0gYXRoMTJrX3dtaV92ZGV2X3NldF9wYXJhbV9jbWQoYXIsIGFydmlmLVx1MDAzZXZkZXZfaWQsXG4rXHRcdFx0XHRcdFx0ICAgIFdNSV9WREVWX1BBUkFNX0RUSU1fUE9MSUNZLFxuK1x0XHRcdFx0XHRcdCAgICBXTUlfRFRJTV9QT0xJQ1lfU1RJQ0spO1xuK1x0XHRpZiAocmV0KVxuK1x0XHRcdGF0aDEya193YXJuKGFyLVx1MDAzZWFiLCBcImZhaWxlZCB0byBzZXQgdmRldiAlZCBzdGljayBEVElNIHBvbGljeTogJWRcXG5cIixcbitcdFx0XHRcdCAgICBhcnZpZi1cdTAwM2V2ZGV2X2lkLCByZXQpO1xuK1x0fVxuK1xuIFx0aWYgKHRlc3RfYml0KFdNSV9UTFZfU0VSVklDRV8xMURfT0ZGTE9BRCwgYXItXHUwMDNlYWItXHUwMDNld21pX2FiLnN2Y19tYXApIFx1MDAyNlx1MDAyNlxuIFx0ICAgIGFodmlmLVx1MDAzZXZkZXZfdHlwZSA9PSBXTUlfVkRFVl9UWVBFX1NUQSBcdTAwMjZcdTAwMjZcbiBcdCAgICBhaHZpZi1cdTAwM2V2ZGV2X3N1YnR5cGUgPT0gV01JX1ZERVZfU1VCVFlQRV9OT05FKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvd21pLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5oXG5pbmRleCA1MWYzNDI2ZTFmY2Q5Mi4uMDE0NWNjNDc3OTQ0ZmMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5oXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3dtaS5oXG5AQCAtMjMzMCw2ICsyMzMwLDEzIEBAIGVudW0gd21pX3Nsb3RfdGltZSB7XG4gXHRXTUlfVkRFVl9TTE9UX1RJTUVfU0hPUlQgPSAyLFxuIH07XG4gXG4rZW51bSB3bWlfZHRpbV9wb2xpY3kge1xuK1x0V01JX0RUSU1fUE9MSUNZX0lHTk9SRSA9IDEsXG4rXHRXTUlfRFRJTV9QT0xJQ1lfTk9STUFMID0gMixcbitcdFdNSV9EVElNX1BPTElDWV9TVElDSyAgPSAzLFxuK1x0V01JX0RUSU1fUE9MSUNZX0FVVE8gICA9IDQsXG4rfTtcbitcbiBlbnVtIHdtaV9wcmVhbWJsZSB7XG4gXHRXTUlfVkRFVl9QUkVBTUJMRV9MT05HID0gMSxcbiBcdFdNSV9WREVWX1BSRUFNQkxFX1NIT1JUID0gMixcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDA0OjA0OjUyLjI2NTE4NTc5OVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ3NTM1MjQzMjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgUGF0Y2ggdG8gYSBRdWFsY29tbSBXaS1GaSA3IERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgYGF0aDEya2Ag4oCTIHNwZWNpZmljYWxseSwgaXQncyBhZGRpbmcgYSBjYWxsIHRvIGBhdGgxMmtfd21pX3ZkZXZfc2V0X3BhcmFtX2NtZGAgZm9yIGBXTUlfVkRFVl9QQVJBTV9EVElNX1BPTElDWWAgd2l0aCBgV01JX0RUSU1fUE9MSUNZX1NUSUNLYCB3aXRoaW4gYGF0aDEya19ic3NfYXNzb2NgLiBUaGlzIGxvb2tzIGxpa2UgYSB2ZXJ5IHRhcmdldGVkIGNoYW5nZSB3aXRoaW4gdGhlIGBhdGgxMmtgIGRyaXZlci4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBcIkNhbiB3ZSBmdXp6IHRoaXM/XCJcblxuU2luY2UgYGF0aDEya2AgaGFuZGxlcyBoYXJkd2FyZSwgc3BlY2lmaWNhbGx5IGZvciBRdWFsY29tbSBXaS1GaSA3IGRldmljZXMsIEkgaGF2ZSB0byBjb25zaWRlciB0aGUgZnV6emFiaWxpdHkgbGFuZHNjYXBlLiBIYXJkd2FyZSBkcml2ZXJzLCBlc3BlY2lhbGx5IFBDSS9BSEIgb25lcywgYXJlIG5vdG9yaW91c2x5IGRpZmZpY3VsdCB0byBmdXp6IGRpcmVjdGx5IHVubGVzcyB3ZSdyZSBkZWFsaW5nIHdpdGggYSBzcGVjaWZpYyBlbXVsYXRvciBvciBhIFVTQiBkcml2ZXIgdGhhdCB3ZSBjYW4gaGl0IHdpdGggYGR1bW15X2hjZGAuIEJ1dCBpdCBzb3VuZHMgbGlrZSB0aGlzIGlzIGEgUENJL0FIQiBkcml2ZXIuXG5cblRpbWUgdG8gY29uZmlybSBteSBzdXNwaWNpb25zIGFuZCB2ZXJpZnkgdGhhdCBpdOKAmXMgbm90IFVTQi4gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoZSBgYXRoMTJrYCBkcml2ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzOTcsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwNDowNDo1Ny4wMTg3MTI2MDRaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzU5NTIyNDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoMTJrXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc9Mj1jb25maWcgQVRIMTJLXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjM6XFx0dHJpc3RhdGUgXFxcIlF1YWxjb21tIFdpLUZpIDcgc3VwcG9ydCAoYXRoMTJrKVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNC1cXHRkZXBlbmRzIG9uIE1BQzgwMjExIFxcdTAwMjZcXHUwMDI2IEhBU19ETUEgXFx1MDAyNlxcdTAwMjYgUENJXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjE1OlxcdCAgSWYgeW91IGNob29zZSB0byBidWlsZCBhIG1vZHVsZSwgaXQnbGwgYmUgY2FsbGVkIGF0aDEyay5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnPTE3PWNvbmZpZyBBVEgxMktfQUhCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjE4OlxcdGJvb2wgXFxcIlF1YWxjb21tIGF0aDEyayBBSEIgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMTktXFx0ZGVwZW5kcyBvbiBBVEgxMksgXFx1MDAyNlxcdTAwMjYgUkVNT1RFUFJPQ1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnPTI1PWNvbmZpZyBBVEgxMktfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MjY6XFx0Ym9vbCBcXFwiYXRoMTJrIGRlYnVnZ2luZ1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMjctXFx0ZGVwZW5kcyBvbiBBVEgxMktcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZz0zNT1jb25maWcgQVRIMTJLX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MzY6XFx0Ym9vbCBcXFwiUXVhbGNvbW0gYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMzctXFx0ZGVwZW5kcyBvbiBBVEgxMksgXFx1MDAyNlxcdTAwMjYgTUFDODAyMTFfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zOC1cXHRoZWxwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjM5OlxcdCAgRW5hYmxlIGF0aDEyayBkZWJ1Z2ZzIHN1cHBvcnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc9NDQ9Y29uZmlnIEFUSDEyS19UUkFDSU5HXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjQ1OlxcdGJvb2wgXFxcImF0aDEyayB0cmFjaW5nIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTQ2LVxcdGRlcGVuZHMgb24gQVRIMTJLIFxcdTAwMjZcXHUwMDI2IEVWRU5UX1RSQUNJTkdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDctXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo0ODpcXHQgIEVuYWJsZSBhdGgxMmsgdHJhY2luZyBpbmZyYXN0cnVjdHVyZS5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc9NTM9Y29uZmlnIEFUSDEyS19DT1JFRFVNUFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo1NDpcXHRib29sIFxcXCJhdGgxMmsgY29yZWR1bXBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTU1LVxcdGRlcGVuZHMgb24gQVRIMTJLXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNTctXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo1ODpcXHQgIEVuYWJsZSBhdGgxMmsgY29yZWR1bXAgY29sbGVjdGlvblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy01OS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDQ6MDQ6NTcuMDk0NjcwNDAzWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzgxNjU1MzkzNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipDb25zaWRlcmluZyB0aGUgQXJjaGl0ZWN0dXJlIGFuZCBFbnZpcm9ubWVudCoqXG5cbk9rYXksIHNvIEknbSB0aGlua2luZyB0aHJvdWdoIHRoaXMgZHJpdmVyLiBNeSBpbml0aWFsIGFzc2Vzc21lbnQgaGluZ2VzIG9uIHVuZGVyc3RhbmRpbmcgdGhlIGludGVycGxheSBiZXR3ZWVuIFBDSSBhbmQgQUhCIOKAkyB0aGF0J3MgZnVuZGFtZW50YWwuIFNwZWNpZmljYWxseSwgdGhpcyBkcml2ZXIgaXMgdGFpbG9yZWQgZm9yIFF1YWxjb21tIFdpLUZpIDcgZGV2aWNlcy4gS25vd2luZyB0aGlzLCBJIGltbWVkaWF0ZWx5IHJlY29nbml6ZSBpdCdzIGEgaGFyZHdhcmUgZHJpdmVyLCBtZWFuaW5nIGl0J3MgZGVzaWduZWQgdG8gZGlyZWN0bHkgaW50ZXJmYWNlIHdpdGggcGh5c2ljYWwgaGFyZHdhcmUuXG5cblRoZSBxdWVzdGlvbiB0aGVuIGJlY29tZXM6IGNhbiBJIGV2ZW4gKmFjY2VzcyogdGhpcyBkcml2ZXIgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gUGxhdGZvcm1zIGxpa2UgR29vZ2xlIENvbXB1dGUgRW5naW5lIChHQ0UpIG9yIFFFTVUgYXJlIGNvbW1vbiwgYnV0IHRoZXkgYWJzdHJhY3QgYXdheSBmcm9tIHRoZSBwaHlzaWNhbCBsYXllci4gVW5sZXNzIHRoZXJlJ3MgYSBzcGVjaWZpYyBlbXVsYXRvciBidWlsdCBmb3IgdGhpcyBwYXJ0aWN1bGFyICdhdGgxMmsnIGNvbXBvbmVudCwgdGhlIGFuc3dlciBpcyBsaWtlbHkgbm8g4oCTIEkgd29uJ3QgYmUgYWJsZSB0byBpbnRlcmFjdCB3aXRoIGl0IGRpcmVjdGx5LiBUaGVyZWZvcmUsIEkgbmVlZCB0byBjaGVjayDigJMgYXJlIHRoZXJlIGFueSBlbXVsYXRvcnMgb3V0IHRoZXJlIHRoYXQgc3BlY2lmaWNhbGx5IHRhcmdldCBhdGgxMms/IFRoYXQncyB0aGUga2V5IHRvIG1ha2luZyBhbnkgcHJvZ3Jlc3MgaW4gYSB2aXJ0dWFsIHNldHRpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3OTYsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwNDowNTowMC45MTEyMjczMDhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTUxMTkwNjk3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aDEya1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDM0OTQ4IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc9Mj1jb25maWcgQVRIMTJLXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjM6XFx0dHJpc3RhdGUgXFxcIlF1YWxjb21tIFdpLUZpIDcgc3VwcG9ydCAoYXRoMTJrKVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNC1cXHRkZXBlbmRzIG9uIE1BQzgwMjExIFxcdTAwMjZcXHUwMDI2IEhBU19ETUEgXFx1MDAyNlxcdTAwMjYgUENJXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjE1OlxcdCAgSWYgeW91IGNob29zZSB0byBidWlsZCBhIG1vZHVsZSwgaXQnbGwgYmUgY2FsbGVkIGF0aDEyay5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnPTE3PWNvbmZpZyBBVEgxMktfQUhCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjE4OlxcdGJvb2wgXFxcIlF1YWxjb21tIGF0aDEyayBBSEIgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMTktXFx0ZGVwZW5kcyBvbiBBVEgxMksgXFx1MDAyNlxcdTAwMjYgUkVNT1RFUFJPQ1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnPTI1PWNvbmZpZyBBVEgxMktfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MjY6XFx0Ym9vbCBcXFwiYXRoMTJrIGRlYnVnZ2luZ1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMjctXFx0ZGVwZW5kcyBvbiBBVEgxMktcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZz0zNT1jb25maWcgQVRIMTJLX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc6MzY6XFx0Ym9vbCBcXFwiUXVhbGNvbW0gYXRoMTJrIGRlYnVnZnMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctMzctXFx0ZGVwZW5kcyBvbiBBVEgxMksgXFx1MDAyNlxcdTAwMjYgTUFDODAyMTFfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy0zOC1cXHRoZWxwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjM5OlxcdCAgRW5hYmxlIGF0aDEyayBkZWJ1Z2ZzIHN1cHBvcnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc9NDQ9Y29uZmlnIEFUSDEyS19UUkFDSU5HXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnOjQ1OlxcdGJvb2wgXFxcImF0aDEyayB0cmFjaW5nIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTQ2LVxcdGRlcGVuZHMgb24gQVRIMTJLIFxcdTAwMjZcXHUwMDI2IEVWRU5UX1RSQUNJTkdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDctXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo0ODpcXHQgIEVuYWJsZSBhdGgxMmsgdHJhY2luZyBpbmZyYXN0cnVjdHVyZS5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNDktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWc9NTM9Y29uZmlnIEFUSDEyS19DT1JFRFVNUFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo1NDpcXHRib29sIFxcXCJhdGgxMmsgY29yZWR1bXBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9LY29uZmlnLTU1LVxcdGRlcGVuZHMgb24gQVRIMTJLXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL0tjb25maWctNTctXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZzo1ODpcXHQgIEVuYWJsZSBhdGgxMmsgY29yZWR1bXAgY29sbGVjdGlvblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvS2NvbmZpZy01OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX0FUSDEySykgKz0gYXRoMTJrLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlOjM6YXRoMTJrLXkgKz0gY29yZS5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTQtXFx0ICAgIGhhbC5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZToyNTphdGgxMmstJChDT05GSUdfQVRIMTJLX0FIQikgKz0gYWhiLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlLTI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGU9Mjc9b2JqLSQoQ09ORklHX0FUSDEySykgKz0gd2lmaTcvXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZS0yOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL01ha2VmaWxlOjI5OmF0aDEyay0kKENPTkZJR19BVEgxMktfREVCVUdGUykgKz0gZGVidWdmcy5vIGRlYnVnZnNfaHR0X3N0YXRzLm8gZGVidWdmc19zdGEub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGU6MzA6YXRoMTJrLSQoQ09ORklHX0FDUEkpICs9IGFjcGkub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGU6MzE6YXRoMTJrLSQoQ09ORklHX0FUSDEyS19UUkFDSU5HKSArPSB0cmFjZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZTozMjphdGgxMmstJChDT05GSUdfUE0pICs9IHdvdy5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZTozMzphdGgxMmstJChDT05GSUdfQVRIMTJLX0NPUkVEVU1QKSArPSBjb3JlZHVtcC5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9NYWtlZmlsZTozNDphdGgxMmstJChDT05GSUdfTkw4MDIxMV9URVNUTU9ERSkgKz0gdGVzdG1vZGUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGU6MzU6YXRoMTJrLSQoQ09ORklHX1RIRVJNQUwpICs9IHRoZXJtYWwub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvTWFrZWZpbGUtMzYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxMTpzdGF0aWMgaW50IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLCBpbnQgZnVuYylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xMi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xOC1cXHRpZiAoIXJvb3RfaGFuZGxlKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTk6XFx0XFx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19CT09ULCBcXFwiaW52YWxpZCBhY3BpIGhhbmRsZXJcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIwLVxcdFxcdHJldHVybiAtRU9QTk9UU1VQUDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI2LVxcdGlmICghb2JqKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6Mjc6XFx0XFx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19CT09ULCBcXFwiYWNwaV9ldmFsdWF0ZV9kc20oKSBmYWlsZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI4LVxcdFxcdHJldHVybiAtRU5PRU5UO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDYtXFx0XFx0XFx0XFx0ICAgQVRIMTJLX0FDUElfQkRGX0FOQ0hPUl9TVFJJTkdfTEVOKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ3OlxcdFxcdFxcdFxcdGF0aDEya193YXJuKGFiLCBcXFwiaW52YWxpZCBBQ1BJIERTTSBCREYgc2l6ZTogJWRcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDgtXFx0XFx0XFx0XFx0XFx0ICAgIG9iai1cXHUwMDNlc3RyaW5nLmxlbmd0aCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy02Mi1cXHRcXHRcXHQgICAgb2JqLVxcdTAwM2VidWZmZXIubGVuZ3RoIFxcdTAwM2UgQVRIMTJLX0FDUElfRFNNX0ZVTkNfTUFYX0JJVE1BUF9TSVpFKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NjM6XFx0XFx0XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJpbnZhbGlkIEFDUEkgRFNNIGZ1bmMgc2l6ZTogJWRcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNjQtXFx0XFx0XFx0XFx0XFx0ICAgIG9iai1cXHUwMDNlYnVmZmVyLmxlbmd0aCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy03NS1cXHRcXHRcXHRpZiAob2JqLVxcdTAwM2VidWZmZXIubGVuZ3RoICE9IEFUSDEyS19BQ1BJX0RTTV9UQVNfQ0ZHX1NJWkUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo3NjpcXHRcXHRcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImludmFsaWQgQUNQSSBEU00gVEFTIGNvbmZpZyBzaXplOiAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy03Ny1cXHRcXHRcXHRcXHRcXHQgICAgb2JqLVxcdTAwM2VidWZmZXIubGVuZ3RoKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTg3LVxcdFxcdFxcdGlmIChvYmotXFx1MDAzZWJ1ZmZlci5sZW5ndGggIT0gQVRIMTJLX0FDUElfRFNNX1RBU19EQVRBX1NJWkUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo4ODpcXHRcXHRcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImludmFsaWQgQUNQSSBEU00gVEFTIGRhdGEgc2l6ZTogJWRcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtODktXFx0XFx0XFx0XFx0XFx0ICAgIG9iai1cXHUwMDNlYnVmZmVyLmxlbmd0aCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy05OS1cXHRcXHRcXHRpZiAob2JqLVxcdTAwM2VidWZmZXIubGVuZ3RoICE9IEFUSDEyS19BQ1BJX0RTTV9CSU9TX1NBUl9EQVRBX1NJWkUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxMDA6XFx0XFx0XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJpbnZhbGlkIEFDUEkgQklPUyBTQVIgZGF0YSBzaXplOiAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xMDEtXFx0XFx0XFx0XFx0XFx0ICAgIG9iai1cXHUwMDNlYnVmZmVyLmxlbmd0aCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xMTEtXFx0XFx0XFx0aWYgKG9iai1cXHUwMDNlYnVmZmVyLmxlbmd0aCAhPSBBVEgxMktfQUNQSV9EU01fR0VPX09GRlNFVF9EQVRBX1NJWkUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxMTI6XFx0XFx0XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJpbnZhbGlkIEFDUEkgR0VPIE9GRlNFVCBkYXRhIHNpemU6ICVkXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTExMy1cXHRcXHRcXHRcXHRcXHQgICAgb2JqLVxcdTAwM2VidWZmZXIubGVuZ3RoKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTEyMy1cXHRcXHRcXHRpZiAob2JqLVxcdTAwM2VidWZmZXIubGVuZ3RoICE9IEFUSDEyS19BQ1BJX0RTTV9DQ0FfREFUQV9TSVpFKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTI0OlxcdFxcdFxcdFxcdGF0aDEya193YXJuKGFiLCBcXFwiaW52YWxpZCBBQ1BJIERTTSBDQ0EgZGF0YSBzaXplOiAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xMjUtXFx0XFx0XFx0XFx0XFx0ICAgIG9iai1cXHUwMDNlYnVmZmVyLmxlbmd0aCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xMzUtXFx0XFx0XFx0aWYgKG9iai1cXHUwMDNlYnVmZmVyLmxlbmd0aCAhPSBBVEgxMktfQUNQSV9EU01fQkFORF9FREdFX0RBVEFfU0laRSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjEzNjpcXHRcXHRcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImludmFsaWQgQUNQSSBEU00gYmFuZCBlZGdlIGRhdGEgc2l6ZTogJWRcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTM3LVxcdFxcdFxcdFxcdFxcdCAgICBvYmotXFx1MDAzZWJ1ZmZlci5sZW5ndGgpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTQ3LVxcdH0gZWxzZSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTQ4OlxcdFxcdGF0aDEya193YXJuKGFiLCBcXFwiQUNQSSBEU00gbWV0aG9kIHJldHVybmVkIGFuIHVuc3VwcG9ydGVkIG9iamVjdCB0eXBlOiAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xNDktXFx0XFx0XFx0ICAgIG9iai1cXHUwMDNldHlwZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xNjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTYxOnN0YXRpYyBpbnQgYXRoMTJrX2FjcGlfc2V0X3Bvd2VyX2xpbWl0KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTYyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE2Ny1cXHQgICAgdGFzX3Nhcl9wb3dlcl90YWJsZVsxXSAhPSBBVEgxMktfQUNQSV9UQVNfREFUQV9FTkFCTEUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxNjg6XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJsYXRlc3QgQUNQSSBUQVMgZGF0YSBpcyBpbnZhbGlkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xNjktXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xNzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTcyOlxcdHJldCA9IGF0aDEya193bWlfc2V0X2Jpb3NfY21kKGFiLCBXTUlfQklPU19QQVJBTV9UQVNfREFUQV9UWVBFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE3My1cXHRcXHRcXHRcXHQgICAgICB0YXNfc2FyX3Bvd2VyX3RhYmxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTc1LVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxNzY6XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJmYWlsZWQgdG8gc2VuZCBBQ1BJIFRBUyBkYXRhIHRhYmxlOiAlZFxcXFxuXFxcIiwgcmV0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xNzctXFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE4Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxODM6c3RhdGljIGludCBhdGgxMmtfYWNwaV9zZXRfYmlvc19zYXJfcG93ZXIoc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xODQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTg4LVxcdCAgICBhYi1cXHUwMDNlYWNwaS5iaW9zX3Nhcl9kYXRhWzFdICE9IEFUSDEyS19BQ1BJX1BPV0VSX0xJTUlUX0VOQUJMRV9GTEFHKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTg5OlxcdFxcdGF0aDEya193YXJuKGFiLCBcXFwiaW52YWxpZCBsYXRlc3QgQUNQSSBCSU9TIFNBUiBkYXRhXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xOTAtXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0xOTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MTkzOlxcdHJldCA9IGF0aDEya193bWlfc2V0X2Jpb3Nfc2FyX2NtZChhYiwgYWItXFx1MDAzZWFjcGkuYmlvc19zYXJfZGF0YSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMTk0LVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoxOTU6XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJmYWlsZWQgdG8gc2V0IEFDUEkgQklPUyBTQVIgdGFibGU6ICVkXFxcXG5cXFwiLCByZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTE5Ni1cXHRcXHRyZXR1cm4gcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjAxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjIwMjpzdGF0aWMgdm9pZCBhdGgxMmtfYWNwaV9kc21fbm90aWZ5KGFjcGlfaGFuZGxlIGhhbmRsZSwgdTMyIGV2ZW50LCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIwMy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjA0LVxcdGludCByZXQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjA1OlxcdHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMDctXFx0aWYgKGV2ZW50ID09IEFUSDEyS19BQ1BJX05PVElGWV9FVkVOVCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjIwODpcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcInVua25vd24gYWNwaSBub3RpZnkgJXVcXFxcblxcXCIsIGV2ZW50KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMDktXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjEyLVxcdGlmICghYWItXFx1MDAzZWFjcGkuYWNwaV90YXNfZW5hYmxlKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjEzOlxcdFxcdGF0aDEya19kYmcoYWIsIEFUSDEyS19EQkdfQk9PVCwgXFxcImFjcGlfdGFzX2VuYWJsZSBpcyBmYWxzZVxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjE0LVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIxNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyMTc6XFx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19UQVNfREFUQSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjE4LVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyMTk6XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJmYWlsZWQgdG8gdXBkYXRlIEFDUEkgVEFTIGRhdGEgdGFibGU6ICVkXFxcXG5cXFwiLCByZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIyMC1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjIzOlxcdHJldCA9IGF0aDEya19hY3BpX3NldF9wb3dlcl9saW1pdChhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjI0LVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyMjU6XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJmYWlsZWQgdG8gc2V0IEFDUEkgVEFTIHBvd2VyIGxpbWl0IGRhdGE6ICVkXFxcIiwgcmV0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMjYtXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjMxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjIzMjpcXHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0JJT1NfU0FSKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMzMtXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjIzNDpcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImZhaWxlZCB0byB1cGRhdGUgQklPUyBTQVI6ICVkXFxcXG5cXFwiLCByZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTIzNS1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yMzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjM4OlxcdHJldCA9IGF0aDEya19hY3BpX3NldF9iaW9zX3Nhcl9wb3dlcihhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjM5LVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyNDA6XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJmYWlsZWQgdG8gc2V0IEJJT1MgU0FSIHBvd2VyIGxpbWl0OiAlZFxcXFxuXFxcIiwgcmV0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yNDEtXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjI0NTpzdGF0aWMgaW50IGF0aDEya19hY3BpX3NldF9iaW9zX3Nhcl9wYXJhbXMoc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yNDYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjQ4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjI0OTpcXHRyZXQgPSBhdGgxMmtfd21pX3NldF9iaW9zX3Nhcl9jbWQoYWIsIGFiLVxcdTAwM2VhY3BpLmJpb3Nfc2FyX2RhdGEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI1MC1cXHRpZiAocmV0KSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjUxOlxcdFxcdGF0aDEya193YXJuKGFiLCBcXFwiZmFpbGVkIHRvIHNldCBBQ1BJIEJJT1MgU0FSIHRhYmxlOiAlZFxcXFxuXFxcIiwgcmV0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yNTItXFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI1NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyNTU6XFx0cmV0ID0gYXRoMTJrX3dtaV9zZXRfYmlvc19nZW9fY21kKGFiLCBhYi1cXHUwMDNlYWNwaS5nZW9fb2Zmc2V0X2RhdGEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI1Ni1cXHRpZiAocmV0KSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjU3OlxcdFxcdGF0aDEya193YXJuKGFiLCBcXFwiZmFpbGVkIHRvIHNldCBBQ1BJIEJJT1MgR0VPIHRhYmxlOiAlZFxcXFxuXFxcIiwgcmV0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yNTgtXFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI2My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyNjQ6c3RhdGljIGludCBhdGgxMmtfYWNwaV9zZXRfdGFzX3BhcmFtcyhzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI2NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yNjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MjY4OlxcdHJldCA9IGF0aDEya193bWlfc2V0X2Jpb3NfY21kKGFiLCBXTUlfQklPU19QQVJBTV9UQVNfQ09ORklHX1RZUEUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjY5LVxcdFxcdFxcdFxcdCAgICAgIGFiLVxcdTAwM2VhY3BpLnRhc19jZmcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yNzEtXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjI3MjpcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImZhaWxlZCB0byBzZW5kIEFDUEkgVEFTIGNvbmZpZyB0YWJsZSBwYXJhbWV0ZXI6ICVkXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI3My1cXHRcXHRcXHQgICAgcmV0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI3Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyNzc6XFx0cmV0ID0gYXRoMTJrX3dtaV9zZXRfYmlvc19jbWQoYWIsIFdNSV9CSU9TX1BBUkFNX1RBU19EQVRBX1RZUEUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjc4LVxcdFxcdFxcdFxcdCAgICAgIGFiLVxcdTAwM2VhY3BpLnRhc19zYXJfcG93ZXJfdGFibGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yODAtXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjI4MTpcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImZhaWxlZCB0byBzZW5kIEFDUEkgVEFTIGRhdGEgdGFibGUgcGFyYW1ldGVyOiAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yODItXFx0XFx0XFx0ICAgIHJldCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0yODgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6Mjg5OmJvb2wgYXRoMTJrX2FjcGlfZ2V0X2Rpc2FibGVfcmZraWxsKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjkwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI5My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyOTQ6Ym9vbCBhdGgxMmtfYWNwaV9nZXRfZGlzYWJsZV8xMWJlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMjk1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTI5OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzoyOTk6dm9pZCBhdGgxMmtfYWNwaV9zZXRfZHNtX2Z1bmMoc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMDAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzA4LVxcdGlmIChhYi1cXHUwMDNlYWNwaS5hY3BpX3Rhc19lbmFibGUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozMDk6XFx0XFx0cmV0ID0gYXRoMTJrX2FjcGlfc2V0X3Rhc19wYXJhbXMoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTMxMC1cXHRcXHRpZiAocmV0KSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MzExOlxcdFxcdFxcdGF0aDEya193YXJuKGFiLCBcXFwiZmFpbGVkIHRvIHNlbmQgQUNQSSBUQVMgcGFyYW1ldGVyczogJWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzEyLVxcdFxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTMxNi1cXHRpZiAoYWItXFx1MDAzZWFjcGkuYWNwaV9iaW9zX3Nhcl9lbmFibGUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozMTc6XFx0XFx0cmV0ID0gYXRoMTJrX2FjcGlfc2V0X2Jpb3Nfc2FyX3BhcmFtcyhhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzE4LVxcdFxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozMTk6XFx0XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJmYWlsZWQgdG8gc2VuZCBBQ1BJIEJJT1MgU0FSOiAlZFxcXFxuXFxcIiwgcmV0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMjAtXFx0XFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzI1LVxcdFxcdGJ1ZiA9IGFiLVxcdTAwM2VhY3BpLmNjYV9kYXRhICsgQVRIMTJLX0FDUElfQ0NBX1RIUl9PRkZTRVRfREFUQV9PRkZTRVQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MzI2OlxcdFxcdHJldCA9IGF0aDEya193bWlfc2V0X2Jpb3NfY21kKGFiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTMyNy1cXHRcXHRcXHRcXHRcXHQgICAgICBXTUlfQklPU19QQVJBTV9DQ0FfVEhSRVNIT0xEX1RZUEUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zMzAtXFx0XFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjMzMTpcXHRcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImZhaWxlZCB0byBzZXQgQUNQSSBEU00gQ0NBIHRocmVzaG9sZDogJWRcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzMyLVxcdFxcdFxcdFxcdCAgICByZXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzM3LVxcdGlmIChhYi1cXHUwMDNlYWNwaS5hY3BpX2JhbmRfZWRnZV9lbmFibGUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozMzg6XFx0XFx0cmV0ID0gYXRoMTJrX3dtaV9zZXRfYmlvc19jbWQoYWIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzM5LVxcdFxcdFxcdFxcdFxcdCAgICAgIFdNSV9CSU9TX1BBUkFNX1RZUEVfQkFOREVER0UsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zNDItXFx0XFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjM0MzpcXHRcXHRcXHRhdGgxMmtfd2FybihhYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zNDQtXFx0XFx0XFx0XFx0ICAgIFxcXCJmYWlsZWQgdG8gc2V0IEFDUEkgRFNNIGJhbmQgZWRnZSBjaGFubmVsIHBvd2VyOiAlZFxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM1MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozNTE6aW50IGF0aDEya19hY3BpX3N0YXJ0KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzUyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM2OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozNjk6XFx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19TVVBQT1JUX0ZVTkNTKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zNzAtXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjM3MTpcXHRcXHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0JPT1QsIFxcXCJmYWlsZWQgdG8gZ2V0IEFDUEkgRFNNIGRhdGE6ICVkXFxcXG5cXFwiLCByZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM3Mi1cXHRcXHRyZXR1cm4gcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzc1LVxcdGlmIChBVEgxMktfQUNQSV9GVU5DX0JJVF9WQUxJRChhYi1cXHUwMDNlYWNwaSwgQVRIMTJLX0FDUElfRlVOQ19CSVRfRElTQUJMRV9GTEFHKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjM3NjpcXHRcXHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0RJU0FCTEVfRkxBRyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzc3LVxcdFxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzozNzg6XFx0XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJmYWlsZWQgdG8gZ2V0IEFDUEkgRElTQUJMRSBGTEFHOiAlZFxcXFxuXFxcIiwgcmV0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy0zNzktXFx0XFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM5MS1cXHRpZiAoQVRIMTJLX0FDUElfRlVOQ19CSVRfVkFMSUQoYWItXFx1MDAzZWFjcGksIEFUSDEyS19BQ1BJX0ZVTkNfQklUX0JERl9FWFQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6MzkyOlxcdFxcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfQkRGX0VYVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtMzkzLVxcdFxcdGlmIChyZXQgfHwgYWItXFx1MDAzZWFjcGkuYmRmX3N0cmluZ1swXSA9PSAnXFxcXDAnKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6Mzk0OlxcdFxcdFxcdGF0aDEya193YXJuKGFiLCBcXFwiZmFpbGVkIHRvIGdldCBBQ1BJIEJERiBFWFQ6ICVkXFxcXG5cXFwiLCByZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTM5NS1cXHRcXHRcXHRyZXR1cm4gcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDAxLVxcdGlmIChBVEgxMktfQUNQSV9GVU5DX0JJVF9WQUxJRChhYi1cXHUwMDNlYWNwaSwgQVRIMTJLX0FDUElfRlVOQ19CSVRfVEFTX0NGRykpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MDI6XFx0XFx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19UQVNfQ0ZHKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MDMtXFx0XFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQwNDpcXHRcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImZhaWxlZCB0byBnZXQgQUNQSSBUQVMgY29uZmlnIHRhYmxlOiAlZFxcXFxuXFxcIiwgcmV0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MDUtXFx0XFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQwOS1cXHRpZiAoQVRIMTJLX0FDUElfRlVOQ19CSVRfVkFMSUQoYWItXFx1MDAzZWFjcGksIEFUSDEyS19BQ1BJX0ZVTkNfQklUX1RBU19EQVRBKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQxMDpcXHRcXHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX1RBU19EQVRBKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MTEtXFx0XFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQxMjpcXHRcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImZhaWxlZCB0byBnZXQgQUNQSSBUQVMgZGF0YSB0YWJsZTogJWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDEzLVxcdFxcdFxcdHJldHVybiByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MjItXFx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVxcdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9CSU9TX1NBUikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MjM6XFx0XFx0cmV0ID0gYXRoMTJrX2FjcGlfZHNtX2dldF9kYXRhKGFiLCBBVEgxMktfQUNQSV9EU01fRlVOQ19CSU9TX1NBUik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDI0LVxcdFxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0MjU6XFx0XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJmYWlsZWQgdG8gZ2V0IEFDUEkgYmlvcyBzYXIgZGF0YTogJWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDI2LVxcdFxcdFxcdHJldHVybiByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00MzAtXFx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVxcdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9HRU9fT0ZGU0VUKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQzMTpcXHRcXHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0dFT19PRkZTRVQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQzMi1cXHRcXHRpZiAocmV0KSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDMzOlxcdFxcdFxcdGF0aDEya193YXJuKGFiLCBcXFwiZmFpbGVkIHRvIGdldCBBQ1BJIGdlbyBvZmZzZXQgZGF0YTogJWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDM0LVxcdFxcdFxcdHJldHVybiByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NDQtXFx0aWYgKEFUSDEyS19BQ1BJX0ZVTkNfQklUX1ZBTElEKGFiLVxcdTAwM2VhY3BpLCBBVEgxMktfQUNQSV9GVU5DX0JJVF9DQ0EpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDQ1OlxcdFxcdHJldCA9IGF0aDEya19hY3BpX2RzbV9nZXRfZGF0YShhYiwgQVRIMTJLX0FDUElfRFNNX0ZVTkNfSU5ERVhfQ0NBKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NDYtXFx0XFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ0NzpcXHRcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImZhaWxlZCB0byBnZXQgQUNQSSBEU00gQ0NBIHRocmVzaG9sZCBjb25maWd1cmF0aW9uOiAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NDgtXFx0XFx0XFx0XFx0ICAgIHJldCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NTktXFx0XFx0XFx0XFx0ICAgICAgIEFUSDEyS19BQ1BJX0ZVTkNfQklUX0JBTkRfRURHRV9DSEFOX1BPV0VSKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ2MDpcXHRcXHRyZXQgPSBhdGgxMmtfYWNwaV9kc21fZ2V0X2RhdGEoYWIsIEFUSDEyS19BQ1BJX0RTTV9GVU5DX0lOREVYX0JBTkRfRURHRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDYxLVxcdFxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0NjI6XFx0XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJmYWlsZWQgdG8gZ2V0IEFDUEkgRFNNIGJhbmQgZWRnZSBjaGFubmVsIHBvd2VyOiAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NjMtXFx0XFx0XFx0XFx0ICAgIHJldCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NzMtXFx0XFx0XFx0XFx0XFx0ICAgICBBQ1BJX0RFVklDRV9OT1RJRlksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDc0OlxcdFxcdFxcdFxcdFxcdCAgICAgYXRoMTJrX2FjcGlfZHNtX25vdGlmeSwgYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ3NS1cXHRpZiAoQUNQSV9GQUlMVVJFKHN0YXR1cykpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo0NzY6XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJmYWlsZWQgdG8gaW5zdGFsbCBEU00gbm90aWZ5IGNhbGxiYWNrOiAlZFxcXFxuXFxcIiwgc3RhdHVzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00NzctXFx0XFx0cmV0dXJuIC1FSU87XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYy00ODQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NDg1OmludCBhdGgxMmtfYWNwaV9jaGVja19iZGZfdmFyaWFudF9uYW1lKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDg2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ5Mi1cXHRpZiAoc3Ryc2NweShhYi1cXHUwMDNlcW1pLnRhcmdldC5iZGZfZXh0LCBhYi1cXHUwMDNlYWNwaS5iZGZfc3RyaW5nICsgNCwgbWF4X2xlbikgXFx1MDAzYyAwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jOjQ5MzpcXHRcXHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX0JPT1QsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNDk0LVxcdFxcdFxcdCAgIFxcXCJhY3BpIGJkZiB2YXJpYW50IGxvbmdlciB0aGFuIHRoZSBidWZmZXIgKHZhcmlhbnQ6ICVzKVxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTQ5OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuYzo1MDA6dm9pZCBhdGgxMmtfYWNwaV9zdG9wKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmMtNTAxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTUwNi1cXHRcXHRcXHRcXHQgICBBQ1BJX0RFVklDRV9OT1RJRlksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmM6NTA3OlxcdFxcdFxcdFxcdCAgIGF0aDEya19hY3BpX2RzbV9ub3RpZnkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5jLTUwOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjc1OmludCBhdGgxMmtfYWNwaV9zdGFydChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo3Njp2b2lkIGF0aDEya19hY3BpX3N0b3Aoc3RydWN0IGF0aDEya19iYXNlICphYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6Nzc6Ym9vbCBhdGgxMmtfYWNwaV9nZXRfZGlzYWJsZV9yZmtpbGwoc3RydWN0IGF0aDEya19iYXNlICphYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6Nzg6Ym9vbCBhdGgxMmtfYWNwaV9nZXRfZGlzYWJsZV8xMWJlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjc5OnZvaWQgYXRoMTJrX2FjcGlfc2V0X2RzbV9mdW5jKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjgwOmludCBhdGgxMmtfYWNwaV9jaGVja19iZGZfdmFyaWFudF9uYW1lKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTgxLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmgtODMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6ODQ6c3RhdGljIGlubGluZSBpbnQgYXRoMTJrX2FjcGlfc3RhcnQoc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC04NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC04OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo4OTpzdGF0aWMgaW5saW5lIHZvaWQgYXRoMTJrX2FjcGlfc3RvcChzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTkwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTkyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oOjkzOnN0YXRpYyBpbmxpbmUgYm9vbCBhdGgxMmtfYWNwaV9nZXRfZGlzYWJsZV9yZmtpbGwoc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC05NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC05Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDo5ODpzdGF0aWMgaW5saW5lIGJvb2wgYXRoMTJrX2FjcGlfZ2V0X2Rpc2FibGVfMTFiZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTk5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTEwMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaDoxMDM6c3RhdGljIGlubGluZSB2b2lkIGF0aDEya19hY3BpX3NldF9kc21fZnVuYyhzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWNwaS5oLTEwNC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC0xMDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9hY3BpLmg6MTA3OnN0YXRpYyBpbmxpbmUgaW50IGF0aDEya19hY3BpX2NoZWNrX2JkZl92YXJpYW50X25hbWUoc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FjcGkuaC0xMDgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjIyOnN0YXRpYyBzdHJ1Y3QgYXRoMTJrX2FoYl9kcml2ZXIgKmF0aDEya19haGJfZmFtaWx5X2RyaXZlcnNbQVRIMTJLX0RFVklDRV9GQU1JTFlfTUFYXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjIzOnN0YXRpYyBjb25zdCBjaGFyIGF0aDEya191c2VycGRfaXJxW11bOV0gPSB7XFxcInNwYXduXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI0LVxcdFxcdFxcdFxcdCAgICAgXFxcInJlYWR5XFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM9ODM9ZW51bSBleHRfaXJxX251bSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTEyMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjEyMzpzdGF0aWMgdTMyIGF0aDEya19haGJfcmVhZDMyKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsIHUzMiBvZmZzZXQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xMjQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xMjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoxMzA6c3RhdGljIHZvaWQgYXRoMTJrX2FoYl93cml0ZTMyKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsIHUzMiBvZmZzZXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xMzEtXFx0XFx0XFx0ICAgICAgIHUzMiB2YWx1ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTM5OnN0YXRpYyB2b2lkIGF0aDEya19haGJfY2FuY2VsX3dvcmtxdWV1ZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTQwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTQzLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBhYi1cXHUwMDNlaHdfcGFyYW1zLVxcdTAwM2VjZV9jb3VudDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoxNDQ6XFx0XFx0c3RydWN0IGF0aDEya19jZV9waXBlICpjZV9waXBlID0gXFx1MDAyNmFiLVxcdTAwM2VjZS5jZV9waXBlW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTQ1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTQ2OlxcdFxcdGlmIChhdGgxMmtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFxcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTE0Ny1cXHRcXHRcXHRjb250aW51ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTUyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTUzOnN0YXRpYyB2b2lkIGF0aDEya19haGJfZXh0X2dycF9kaXNhYmxlKHN0cnVjdCBhdGgxMmtfZXh0X2lycV9ncnAgKmlycV9ncnApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xNTQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xNjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoxNjE6c3RhdGljIHZvaWQgX19hdGgxMmtfYWhiX2V4dF9pcnFfZGlzYWJsZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTYyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTY1LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBVEgxMktfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoxNjY6XFx0XFx0c3RydWN0IGF0aDEya19leHRfaXJxX2dycCAqaXJxX2dycCA9IFxcdTAwMjZhYi1cXHUwMDNlZXh0X2lycV9ncnBbaV07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xNjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoxNjg6XFx0XFx0YXRoMTJrX2FoYl9leHRfZ3JwX2Rpc2FibGUoaXJxX2dycCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xNjktXFx0XFx0aWYgKGlycV9ncnAtXFx1MDAzZW5hcGlfZW5hYmxlZCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xNzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoxNzc6c3RhdGljIHZvaWQgYXRoMTJrX2FoYl9leHRfZ3JwX2VuYWJsZShzdHJ1Y3QgYXRoMTJrX2V4dF9pcnFfZ3JwICppcnFfZ3JwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTc4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTg0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTg1OnN0YXRpYyB2b2lkIGF0aDEya19haGJfc2V0Yml0MzIoc3RydWN0IGF0aDEya19iYXNlICphYiwgdTggYml0LCB1MzIgb2Zmc2V0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTg2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTg5OlxcdHZhbCA9IGF0aDEya19haGJfcmVhZDMyKGFiLCBvZmZzZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTkwOlxcdGF0aDEya19haGJfd3JpdGUzMihhYiwgb2Zmc2V0LCB2YWwgfCBCSVQoYml0KSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xOTEtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMTkyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MTkzOnN0YXRpYyB2b2lkIGF0aDEya19haGJfY2xlYXJiaXQzMihzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLCB1OCBiaXQsIHUzMiBvZmZzZXQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xOTQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xOTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoxOTc6XFx0dmFsID0gYXRoMTJrX2FoYl9yZWFkMzIoYWIsIG9mZnNldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoxOTg6XFx0YXRoMTJrX2FoYl93cml0ZTMyKGFiLCBvZmZzZXQsIHZhbCBcXHUwMDI2IH5CSVQoYml0KSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0xOTktfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjAxOnN0YXRpYyB2b2lkIGF0aDEya19haGJfY2VfaXJxX2VuYWJsZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLCB1MTYgY2VfaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yMDIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yMTItXFx0aWYgKGNlX2F0dHItXFx1MDAzZXNyY19uZW50cmllcylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjIxMzpcXHRcXHRhdGgxMmtfYWhiX3NldGJpdDMyKGFiLCBjZV9pZCwgaWUxX3JlZ19hZGRyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTIxNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTIxNS1cXHRpZiAoY2VfYXR0ci1cXHUwMDNlZGVzdF9uZW50cmllcykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjE2OlxcdFxcdGF0aDEya19haGJfc2V0Yml0MzIoYWIsIGNlX2lkLCBpZTJfcmVnX2FkZHIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjE3OlxcdFxcdGF0aDEya19haGJfc2V0Yml0MzIoYWIsIGNlX2lkICsgQ0VfSE9TVF9JRV8zX1NISUZULFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjE4LVxcdFxcdFxcdFxcdCAgICBpZTNfcmVnX2FkZHIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yMjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyMjI6c3RhdGljIHZvaWQgYXRoMTJrX2FoYl9jZV9pcnFfZGlzYWJsZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiLCB1MTYgY2VfaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yMjMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yMzMtXFx0aWYgKGNlX2F0dHItXFx1MDAzZXNyY19uZW50cmllcylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjIzNDpcXHRcXHRhdGgxMmtfYWhiX2NsZWFyYml0MzIoYWIsIGNlX2lkLCBpZTFfcmVnX2FkZHIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjM2LVxcdGlmIChjZV9hdHRyLVxcdTAwM2VkZXN0X25lbnRyaWVzKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyMzc6XFx0XFx0YXRoMTJrX2FoYl9jbGVhcmJpdDMyKGFiLCBjZV9pZCwgaWUyX3JlZ19hZGRyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjIzODpcXHRcXHRhdGgxMmtfYWhiX2NsZWFyYml0MzIoYWIsIGNlX2lkICsgQ0VfSE9TVF9JRV8zX1NISUZULFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjM5LVxcdFxcdFxcdFxcdCAgICAgIGllM19yZWdfYWRkcik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI0Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjI0MzpzdGF0aWMgdm9pZCBhdGgxMmtfYWhiX3N5bmNfY2VfaXJxcyhzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjQ0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjQ4LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBhYi1cXHUwMDNlaHdfcGFyYW1zLVxcdTAwM2VjZV9jb3VudDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyNDk6XFx0XFx0aWYgKGF0aDEya19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXFx1MDAyNiBDRV9BVFRSX0RJU19JTlRSKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjUwLVxcdFxcdFxcdGNvbnRpbnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yNTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyNTc6c3RhdGljIHZvaWQgYXRoMTJrX2FoYl9zeW5jX2V4dF9pcnFzKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yNTgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yNjItXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFUSDEyS19FWFRfSVJRX0dSUF9OVU1fTUFYOyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjI2MzpcXHRcXHRzdHJ1Y3QgYXRoMTJrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gXFx1MDAyNmFiLVxcdTAwM2VleHRfaXJxX2dycFtpXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI2NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjcxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjcyOnN0YXRpYyB2b2lkIGF0aDEya19haGJfY2VfaXJxc19lbmFibGUoc3RydWN0IGF0aDEya19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI3My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI3Ni1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgYWItXFx1MDAzZWh3X3BhcmFtcy1cXHUwMDNlY2VfY291bnQ7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6Mjc3OlxcdFxcdGlmIChhdGgxMmtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFxcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTI3OC1cXHRcXHRcXHRjb250aW51ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjI3OTpcXHRcXHRhdGgxMmtfYWhiX2NlX2lycV9lbmFibGUoYWIsIGkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjgwLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMjgyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MjgzOnN0YXRpYyB2b2lkIGF0aDEya19haGJfY2VfaXJxc19kaXNhYmxlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yODQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yODctXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGFiLVxcdTAwM2Vod19wYXJhbXMtXFx1MDAzZWNlX2NvdW50OyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjI4ODpcXHRcXHRpZiAoYXRoMTJrX2NlX2dldF9hdHRyX2ZsYWdzKGFiLCBpKSBcXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yODktXFx0XFx0XFx0Y29udGludWU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyOTA6XFx0XFx0YXRoMTJrX2FoYl9jZV9pcnFfZGlzYWJsZShhYiwgaSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yOTEtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yOTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzoyOTQ6c3RhdGljIGludCBhdGgxMmtfYWhiX3N0YXJ0KHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yOTUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6Mjk2OlxcdGF0aDEya19haGJfY2VfaXJxc19lbmFibGUoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6Mjk3OlxcdGF0aDEya19jZV9yeF9wb3N0X2J1ZihhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0yOTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTMwMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjMwMjpzdGF0aWMgdm9pZCBhdGgxMmtfYWhiX2V4dF9pcnFfZW5hYmxlKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0zMDMte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmM6MzA0OlxcdHN0cnVjdCBhdGgxMmtfZXh0X2lycV9ncnAgKmlycV9ncnA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYy0zMDUtXFx0aW50IGk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTMxMi1cXHRcXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9haGIuYzozMTM6XFx0XFx0YXRoMTJrX2FoYl9leHRfZ3JwX2VuYWJsZShpcnFfZ3JwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTMxNC1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jLTMxNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL2FoYi5jOjMxNzpzdGF0aWMgdm9pZCBhdGgxMmtfYWhiX2V4dF9pcnFfZGlzYWJsZShzdHJ1Y3QgYXRoMTJrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvYWhiLmMtMzE4LXtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDQ6MDU6MDEuMDYyNDIzMjI1WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjMwMDEyNTE4MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIHRoZSBgYXRoMTJrYCBEcml2ZXI6IEEgVGhvdWdodCBQcm9jZXNzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBgYXRoMTJrYCBkcml2ZXIuIEl0J3MgYSBoYXJkd2FyZSBkcml2ZXIsIHdoaWNoIHVzdWFsbHkgcHJlc2VudHMgYSBjaGFsbGVuZ2UgZm9yIGZ1enppbmcuIFVubGVzcyBpdCdzIGEgVVNCIGRyaXZlciwgb3Igd2UgaGF2ZSBhIHNvbGlkIGVtdWxhdG9yLCBmdXp6aW5nIHRoZXNlIHRoaW5ncyBpcyB0eXBpY2FsbHkgYSBkZWFkIGVuZC4gQnV0LCB3YWl0Li4uIGBhdGgxMmtgIGlzIGEgUENJL0FIQiBkcml2ZXIsIHdoaWNoICpjb3VsZCogYmUgcHJvbWlzaW5nLiBJcyB0aGVyZSBzb21lIGhpZGRlbiB0ZXN0IG1vZGUgb3IgZGVidWcgZmxhZyBJIGNhbiBsZXZlcmFnZT9cblxuTGV0IG1lIHNlZeKApiBhaGEhIFRoZXJlIGl0IGlzOiBgYXRoMTJrLSQoQ09ORklHX05MODAyMTFfVEVTVE1PREUpICs9IHRlc3Rtb2RlLm9gLiBCdXQgSeKAmXZlIGRlYWx0IHdpdGggdGVzdG1vZGUgYmVmb3JlOyBJdOKAmXMgZ2VuZXJhbGx5IGZvciBwYXNzaW5nIGNvbW1hbmRzLCBub3QgYSBmdWxsLWJsb3duIGhhcmR3YXJlIGVtdWxhdG9yLiBJdCdzIG5vdCBhIHNpbHZlciBidWxsZXQuIFxuXG5BbHNvLCB0aGUgcGF0Y2ggaXMgdG91Y2hpbmcgYGF0aDEya19ic3NfYXNzb2NgLiBUaGlzIGZ1bmN0aW9uIGdldHMgY2FsbGVkIGR1cmluZyBhc3NvY2lhdGlvbiwgc28gaG93IGFtIEkgZ29pbmcgdG8gZ2V0IHRvIGl0IGluIHRoZSBmaXJzdCBwbGFjZT8gSWYgdGhlIGhhcmR3YXJlIGlzbid0IHBoeXNpY2FsbHkgcHJlc2VudCwgdGhlIGRyaXZlciB3b27igJl0IGV2ZW4gcHJvYmUsIGFuZCBgYXRoMTJrX2Jzc19hc3NvY2AgcmVtYWlucyB1bnRvdWNoZWQuXG5cblJpZ2h0LiBJIGtub3cgYG1hYzgwMjExX2h3c2ltYCBlbXVsYXRlcyBNQUM4MDIxMSwgYnV0IHRoZSBgYXRoMTJrYCBkcml2ZXIgaXMgYSBmdWxsIE1BQyBkcml2ZXIsIG9yIGF0IGxlYXN0IGl0IHJlZ2lzdGVycyB0byBtYWM4MDIxMSwgYnV0IGZ1bmRhbWVudGFsbHkgcmVsaWVzIG9uIHRoZSByZWFsIGhhcmR3YXJlIGZvciBwcm9iaW5nLiBTbyB0aGUgdXN1YWwgdHJpY2tzIHdvbid0IHdvcmsuXG5cbkFscmlnaHQsIHRpbWUgdG8gZ2V0IHByYWN0aWNhbC4gVGhlIHF1ZXN0aW9uIGlzLCBjYW4gSSB0cmljayB0aGUgc3lzdGVtIGludG8gcHJvYmluZyBgYXRoMTJrYCB3aXRob3V0IHRoZSBwaHlzaWNhbCBoYXJkd2FyZSBiZWluZyBwcmVzZW50PyBJJ2xsIG5lZWQgdG8gZmlndXJlIG91dCBob3cgdG8gbG9hZCB0aGlzIHRoaW5nIGluIGEgY29udHJvbGxlZCBlbnZpcm9ubWVudC4gTGV0J3Mgc2VlLi4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4ODY0LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjM2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDA0OjA1OjA3LjM2MjU1MDA1NloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDQ3NTE0MjgsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aDEya19jb3JlX3Byb2JlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwNDowNTowNy40NjczMTE4NzNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNTE2NDUzNjYyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipDaGVja2luZyB0aGUgUHJvYmUgRnVuY3Rpb25zKipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEknbSB0aGlua2luZywgXCJXaGVyZSBkbyB3ZSBzdGFydCB0cm91Ymxlc2hvb3RpbmcgdGhpcyBwYXJ0aWN1bGFyIGF0aDEyayBpc3N1ZT9cIiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byB6ZXJvIGluIG9uIHRoZSBjb3JlIG9mIHRoZSBkZXZpY2UgaW5pdGlhbGl6YXRpb24uIFNvLCB0aGUgZmlyc3QgcGxhY2UgSSdtIGdvaW5nIHRvIGxvb2sgaXMgZWl0aGVyIGBhdGgxMmtfcGNpX3Byb2JlYCBvciBgYXRoMTJrX2FoYl9wcm9iZWAuIFRoZXNlIGFyZSB0aGUgZW50cnkgcG9pbnRzIOKAkyB0aGUgZnVuY3Rpb25zIHRoYXQgYXJlIGNhbGxlZCB3aGVuIHRoZSBkcml2ZXIgaXMgYXR0ZW1wdGluZyB0byBpbml0aWFsaXplIGEgUENJIG9yIEFIQi1iYXNlZCBhdGgxMmsgZGV2aWNlLCByZXNwZWN0aXZlbHkuIEtub3dpbmcgd2hpY2ggb25lIGlzIHJlbGV2YW50IGlzIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyB0aGUgcGF0aCBvZiBleGVjdXRpb24uIEZyb20gdGhlcmUgSSBjYW4gZm9sbG93IHRoZSBjb250cm9sIGZsb3csIGxvb2sgYXQgdGhlIGVycm9yIGNvZGVzIGFuZCBsb2dzLCBhbmQgcGllY2UgdG9nZXRoZXIgdGhlIHNlcXVlbmNlIHRoYXQgaXMgZmFpbGluZy4gSXQncyB0aGUgZmlyc3Qgc3RlcCB0byBuYXJyb3dpbmcgZG93biB0aGUgcm9vdCBjYXVzZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTk1MzYsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwNDowNToxMC45ODM3NjgyNzZaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkyODU5NDI3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aDEya19wY2lfcHJvYmVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYz0xNTEzPWF0aDEya19nZXRfZGV2aWNlX2ZhbWlseShjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqcGNpX2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTUzMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjE1MzQ6c3RhdGljIGludCBhdGgxMmtfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTUzNS1cXHRcXHRcXHQgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKnBjaV9kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jPTE4MTQ9aW50IGF0aDEya19wY2lfcmVnaXN0ZXJfZHJpdmVyKGNvbnN0IGVudW0gYXRoMTJrX2RldmljZV9mYW1pbHkgZGV2aWNlX2lkLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9wY2kuYy0xODM1LVxcdHBjaV9kcml2ZXItXFx1MDAzZWlkX3RhYmxlID0gZHJpdmVyLVxcdTAwM2VpZF90YWJsZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3BjaS5jOjE4MzY6XFx0cGNpX2RyaXZlci1cXHUwMDNlcHJvYmUgPSBhdGgxMmtfcGNpX3Byb2JlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvcGNpLmMtMTgzNy1cXHRwY2lfZHJpdmVyLVxcdTAwM2VyZW1vdmUgPSBhdGgxMmtfcGNpX3JlbW92ZTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDQ6MDU6MTEuMDc2NjM0MzYzWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU0ODg0MzUzNjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgYXRoMTJrIERyaXZlciBpbiBhIFZpcnR1YWxpemVkIEVudmlyb25tZW50KipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBkcml2ZXIsIGFuZCBpdCdzIHByZXR0eSBjbGVhcjogaXQncyBhIHN0YW5kYXJkIFBDSSBkcml2ZXIuIE5vdGhpbmcgdW51c3VhbCB0aGVyZS4gVGhlIHByb2JsZW0gaXMsIHdpdGhvdXQgdGhlIGFjdHVhbCBwaHlzaWNhbCBQQ0kgZGV2aWNlIHByZXNlbnQsIHRoZSBgcHJvYmVgIGZ1bmN0aW9uLCB0aGUgb25lIHRoYXQga2lja3Mgb2ZmIHRoZSB3aG9sZSBpbml0aWFsaXphdGlvbiBwcm9jZXNzLCBpc24ndCBnb2luZyB0byBiZSBjYWxsZWQuIFRoYXQgbWVhbnMgbm9uZSBvZiB0aGUgY29kZSB3aXRoaW4sIGluY2x1ZGluZyB0aGUgaW1wb3J0YW50IGBhdGgxMmtfYnNzX2Fzc29jYCBmdW5jdGlvbiwgaXMgZ29pbmcgdG8gYmUgcmVhY2hhYmxlIGluIGEgcHVyZWx5IHZpcnR1YWxpemVkIHNldHVwLiBFbnZpcm9ubWVudHMgbGlrZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUgb3IgUUVNVSB3aXRob3V0IFBDSSBwYXNzdGhyb3VnaCwgd2hlcmUgd2UncmUgbm90IGRpcmVjdGx5IGV4cG9zaW5nIHRoZSBRdWFsY29tbSBXaS1GaSA3IGhhcmR3YXJlLCBhcmUgZ29pbmcgdG8gcHJldmVudCB0aGF0IGNvZGUgZnJvbSBydW5uaW5nLlxuXG5UaGVyZWZvcmUsIGdpdmVuIHRoZSBjb25zdHJhaW50IG9mICpubyogcGh5c2ljYWwgZGV2aWNlIGFuZCBhICp2aXJ0dWFsKiBlbnZpcm9ubWVudCwgc2V0dGluZyBgV29ydGhGdXp6aW5nYCB0byBgZmFsc2VgIGlzIHRoZSByaWdodCBjYWxsIGhlcmUuIFRoZSBjb25kaXRpb25zIGZvciBmdXp6aW5nIGp1c3QgYXJlbid0IG1ldC5cblxuQnV0LCBJIHNob3VsZCBwcm9iYWJseSBkb3VibGUtY2hlY2sgdGhhdCBhc3N1bXB0aW9uIGp1c3QgdG8gYmUgY2VydGFpbi4gTGV0IG1lIHF1aWNrbHkgc2NvdXIgdGhlIGNvZGViYXNlIHRvIHNlZSBpZiB0aGVyZSdzIGFueSBmb3JtIG9mIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgYGF0aDEya2AuIEknbGwgZm9jdXMgbXkgc2VhcmNoIG9uIGxpa2VseSBhcmVhcywgbGlrZSB0aGUgYHRvb2xzL3Rlc3RpbmcvYCBkaXJlY3Rvcnkgb3IgcGVyaGFwcyBzb21ldGhpbmcgc2ltaWxhciB0byBgbWFjODAyMTFfaHdzaW0uY2AgaW4gdGhlIHdpcmVsZXNzIGRyaXZlcnMuIEp1c3Qgd2FudCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUgdGhlcmUgaXNuJ3Qgc29tZSBiYWNrZG9vciBlbXVsYXRpb24gdGhhdCB3b3VsZCBjaGFuZ2UgbXkgY29uY2x1c2lvbi4gSSBjYW4ndCB0aGluayBvZiBhbnkgb2ZmIHRoZSB0b3Agb2YgbXkgaGVhZCwgYnV0IGJlc3QgdG8gYmUgdGhvcm91Z2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwMTUzLCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQ5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDA0OjA1OjE2LjU2NTA3MjAyMloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDAwNzMwNDkxLCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJhdGgxMmtcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFjODAyMTFfaHdzaW0uY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDQ6MDU6MTYuOTY1ODA5NTEzWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1MTQzNDIyNDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyBQb3RlbnRpYWwgVGVzdCBNb2RlIEltcGxlbWVudGF0aW9ucyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGZvciBhIHNwZWNpZmljIGNhcGFiaWxpdHksIGFuZCBteSBpbml0aWFsIHNlYXJjaCBpbiBgbWFjODAyMTFfaHdzaW0uY2AgeWllbGRlZCBub3RoaW5nLiBUaGF0J3MgYSBiaXQgc3VycHJpc2luZywgZ2l2ZW4gdGhlIHVzdWFsIGFzc29jaWF0aW9uIG9mIGhhcmR3YXJlIHNpbXVsYXRpb24gd2l0aCB0ZXN0IG1vZGVzLiBBbHJpZ2h0LCBsZXQncyBicm9hZGVuIHRoZSBzY29wZS4gTXkgbmV4dCB0aG91Z2h0IGlzIHRvIGludmVzdGlnYXRlIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jYCBmaWxlLiBHaXZlbiB0aGUgYGF0aDEya2AgaXMgYSByZWNlbnQgYW5kIGNvbXBsZXggd2lyZWxlc3MgZHJpdmVyLCBhbmQgJ3Rlc3Rtb2RlJyBpcyBleHBsaWNpdGx5IGluIHRoZSBmaWxlbmFtZSwgdGhlcmUncyBhIGdvb2QgY2hhbmNlIHRoYXQncyB3aGVyZSBhbnkgcmVsZXZhbnQgZnVuY3Rpb25hbGl0eSBtaWdodCByZXNpZGUuIEl0J3MgYSBzZW5zaWJsZSBuZXh0IHN0ZXAgaW4gdGhlIHByb2Nlc3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwNjgzLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDQ6MDU6MjAuNDgwMTU0MzA2WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjU0ODI1MTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidGVzdG1vZGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy02LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYzo3OiNpbmNsdWRlIFxcXCJ0ZXN0bW9kZS5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy04LSNpbmNsdWRlIFxcdTAwM2NuZXQvbmV0bGluay5oXFx1MDAzZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTEzLSNpbmNsdWRlIFxcXCJoaWYuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6MTQ6I2luY2x1ZGUgXFxcIi4uL3Rlc3Rtb2RlX2kuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMTUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM9NDU9dm9pZCBhdGgxMmtfdG1fd21pX2V2ZW50X3Vuc2VnbWVudGVkKHN0cnVjdCBhdGgxMmtfYmFzZSAqYWIsIHUzMiBjbWRfaWQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNTEtXFx0YXRoMTJrX2RiZyhhYiwgQVRIMTJLX0RCR19URVNUTU9ERSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6NTI6XFx0XFx0ICAgXFxcInRlc3Rtb2RlIGV2ZW50IHdtaSBjbWRfaWQgJWQgc2tiIGxlbmd0aCAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNTMtXFx0XFx0ICAgY21kX2lkLCBza2ItXFx1MDAzZWxlbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNTgtXFx0aWYgKCFhcikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYzo1OTpcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcInRlc3Rtb2RlIGV2ZW50IG5vdCBoYW5kbGVkIGR1ZSB0byBpbnZhbGlkIHBkZXZcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy02MC1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjY1OlxcdG5sX3NrYiA9IGNmZzgwMjExX3Rlc3Rtb2RlX2FsbG9jX2V2ZW50X3NrYihhci1cXHUwMDNlYWgtXFx1MDAzZWh3LVxcdTAwM2V3aXBoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNjYtXFx0XFx0XFx0XFx0XFx0XFx0ICAgMiAqIG5sYV90b3RhbF9zaXplKHNpemVvZih1MzIpKSArXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNzItXFx0XFx0YXRoMTJrX3dhcm4oYWIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjczOlxcdFxcdFxcdCAgICBcXFwiZmFpbGVkIHRvIGFsbG9jYXRlIHNrYiBmb3IgdW5zZWdtZW50ZWQgdGVzdG1vZGUgd21pIGV2ZW50XFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtNzQtXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTc5LVxcdCAgICBubGFfcHV0KG5sX3NrYiwgQVRIX1RNX0FUVFJfREFUQSwgc2tiLVxcdTAwM2VsZW4sIHNrYi1cXHUwMDNlZGF0YSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6ODA6XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJmYWlsZWQgdG8gcG9wdWxhdGUgdGVzdG1vZGUgdW5zZWdtZW50ZWQgZXZlbnRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy04MS1cXHRcXHRrZnJlZV9za2Iobmxfc2tiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy04NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6ODU6XFx0Y2ZnODAyMTFfdGVzdG1vZGVfZXZlbnQobmxfc2tiLCBHRlBfQVRPTUlDKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtODYtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jPTg4PXZvaWQgYXRoMTJrX3RtX3Byb2Nlc3NfZXZlbnQoc3RydWN0IGF0aDEya19iYXNlICphYiwgdTMyIGNtZF9pZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy05OS1cXHRhdGgxMmtfZGJnKGFiLCBBVEgxMktfREJHX1RFU1RNT0RFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYzoxMDA6XFx0XFx0ICAgXFxcInRlc3Rtb2RlIGV2ZW50IHdtaSBjbWRfaWQgJWQgZnRtIGV2ZW50IG1zZyAlcCBkYXRhbGVuICVkXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xMDEtXFx0XFx0ICAgY21kX2lkLCBmdG1fbXNnLCBsZW5ndGgpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTEwNS1cXHRpZiAocGRldl9pZCBcXHUwMDNlPSBhYi1cXHUwMDNlbnVtX3JhZGlvcykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYzoxMDY6XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJ0ZXN0bW9kZSBldmVudCBub3QgaGFuZGxlZCBkdWUgdG8gaW52YWxpZCBwZGV2IGlkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMTA3LVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xMTItXFx0aWYgKCFhcikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYzoxMTM6XFx0XFx0YXRoMTJrX3dhcm4oYWIsIFxcXCJ0ZXN0bW9kZSBldmVudCBub3QgaGFuZGxlZCBkdWUgdG8gYWJzZW5jZSBvZiBwZGV2XFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMTE0LVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xNTMtXFx0c3Bpbl9sb2NrX2JoKFxcdTAwMjZhci1cXHUwMDNlZGF0YV9sb2NrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6MTU0OlxcdG5sX3NrYiA9IGNmZzgwMjExX3Rlc3Rtb2RlX2FsbG9jX2V2ZW50X3NrYihhci1cXHUwMDNlYWgtXFx1MDAzZWh3LVxcdTAwM2V3aXBoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMTU1LVxcdFxcdFxcdFxcdFxcdFxcdCAgIDIgKiBubGFfdG90YWxfc2l6ZShzaXplb2YodTMyKSkgK1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTE2MS1cXHRcXHRhdGgxMmtfd2FybihhYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6MTYyOlxcdFxcdFxcdCAgICBcXFwiZmFpbGVkIHRvIGFsbG9jYXRlIHNrYiBmb3IgdGVzdG1vZGUgd21pIGV2ZW50XFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMTYzLVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xNzAtXFx0XFx0ICAgIFxcdTAwMjZhYi1cXHUwMDNlZnRtX2V2ZW50X29iai5ldmVudGRhdGFbMF0pKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjE3MTpcXHRcXHRhdGgxMmtfd2FybihhYiwgXFxcImZhaWxlZCB0byBwb3B1bGF0ZSB0ZXN0bW9kZSBldmVudFxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xNzItXFx0XFx0a2ZyZWVfc2tiKG5sX3NrYik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMTc1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYzoxNzY6XFx0Y2ZnODAyMTFfdGVzdG1vZGVfZXZlbnQobmxfc2tiLCBHRlBfQVRPTUlDKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMTc3LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYz0xNzk9c3RhdGljIGludCBhdGgxMmtfdG1fY21kX2dldF92ZXJzaW9uKHN0cnVjdCBhdGgxMmsgKmFyLCBzdHJ1Y3QgbmxhdHRyICp0YltdKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTE4My1cXHRhdGgxMmtfZGJnKGFyLVxcdTAwM2VhYiwgQVRIMTJLX0RCR19URVNUTU9ERSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6MTg0OlxcdFxcdCAgIFxcXCJ0ZXN0bW9kZSBjbWQgZ2V0IHZlcnNpb25fbWFqb3IgJWQgdmVyc2lvbl9taW5vciAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMTg1LVxcdFxcdCAgIEFUSF9URVNUTU9ERV9WRVJTSU9OX01BSk9SLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTE4OC1cXHRzcGluX2xvY2tfYmgoXFx1MDAyNmFyLVxcdTAwM2VkYXRhX2xvY2spO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYzoxODk6XFx0c2tiID0gY2ZnODAyMTFfdGVzdG1vZGVfYWxsb2NfcmVwbHlfc2tiKGFyLVxcdTAwM2VhaC1cXHUwMDNlaHctXFx1MDAzZXdpcGh5LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0xOTAtXFx0XFx0XFx0XFx0XFx0XFx0MiAqIG5sYV90b3RhbF9zaXplKHNpemVvZih1MzIpKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMjAzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYzoyMDQ6XFx0cmV0dXJuIGNmZzgwMjExX3Rlc3Rtb2RlX3JlcGx5KHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTIwNS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM9MjA3PXN0YXRpYyBpbnQgYXRoMTJrX3RtX2NtZF9wcm9jZXNzX2Z0bShzdHJ1Y3QgYXRoMTJrICphciwgc3RydWN0IG5sYXR0ciAqdGJbXSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0yMjktXFx0YXRoMTJrX2RiZyhhci1cXHUwMDNlYWIsIEFUSDEyS19EQkdfVEVTVE1PREUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jOjIzMDpcXHRcXHQgICBcXFwidGVzdG1vZGUgY21kIHdtaSBjbWRfaWQgJWQgYnVmICVwIGJ1Zl9sZW4gJWRcXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTIzMS1cXHRcXHQgICBjbWRfaWQsIGJ1ZiwgYnVmX2xlbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMjgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYzoyODE6c3RhdGljIGludCBhdGgxMmtfdG1fY21kX3Rlc3Rtb2RlX3N0YXJ0KHN0cnVjdCBhdGgxMmsgKmFyLCBzdHJ1Y3QgbmxhdHRyICp0YltdKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0yODIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jPTMwMD1zdGF0aWMgaW50IGF0aDEya190bV9jbWRfd21pKHN0cnVjdCBhdGgxMmsgKmFyLCBzdHJ1Y3QgbmxhdHRyICp0YltdKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTMxOC1cXHRpZiAoIWJ1Zl9sZW4pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6MzE5OlxcdFxcdGF0aDEya193YXJuKGFyLVxcdTAwM2VhYiwgXFxcIk5vIGRhdGEgcHJlc2VudCBpbiB0ZXN0bW9kZSBjb21tYW5kXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMzIwLVxcdFxcdHJldHVybiAtRUlOVkFMO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jLTMzMS1cXHRhdGgxMmtfZGJnKGFyLVxcdTAwM2VhYiwgQVRIMTJLX0RCR19URVNUTU9ERSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6MzMyOlxcdFxcdCAgIFxcXCJ0ZXN0bW9kZSBjbWQgd21pIGNtZF9pZCAlZCAgYnVmIGxlbmd0aCAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMzMzLVxcdFxcdCAgIGNtZF9pZCwgYnVmX2xlbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMzQ2LVxcdFxcdGRldl9rZnJlZV9za2Ioc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmM6MzQ3OlxcdFxcdGF0aDEya193YXJuKGFyLVxcdTAwM2VhYiwgXFxcImZhaWxlZCB0byB0cmFuc21pdCB3bWkgY29tbWFuZCAodGVzdG1vZGUpOiAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMzQ4LVxcdFxcdFxcdCAgICByZXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay90ZXN0bW9kZS5jPTM1ND1pbnQgYXRoMTJrX3RtX2NtZChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYy0zODUtXFx0Y2FzZSBBVEhfVE1fQ01EX1RFU1RNT0RFX1NUQVJUOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMmsvdGVzdG1vZGUuYzozODY6XFx0XFx0cmV0dXJuIGF0aDEya190bV9jbWRfdGVzdG1vZGVfc3RhcnQoYXIsIHRiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTJrL3Rlc3Rtb2RlLmMtMzg3LVxcdGNhc2UgQVRIX1RNX0NNRF9HRVRfVkVSU0lPTjpcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDQ6MDU6MjAuNjA1NjQzMjgzWiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjczODA3NzQyMzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqV29ydGhGdXp6aW5nIERlY2lzaW9uIGZvciBhdGgxMmtfYnNzX2Fzc29jKipcblxuT2theSwgYWZ0ZXIgdGhpbmtpbmcgdGhpcyB0aHJvdWdoLCBJJ20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmdgIHRvIGBmYWxzZWAuIFRoZSB0ZXN0bW9kZSBpcyByZWFsbHkgb25seSBmb3Igc2VuZGluZyBXTUkgY29tbWFuZHMgZnJvbSB1c2Vyc3BhY2UsIGl0IGRvZXNuJ3QgZXZlbiBiZWdpbiB0byBlbXVsYXRlIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlLiBTaW5jZSBgYXRoMTJrYCBpcyBhIFBDSS9BSEIgZHJpdmVyLCBhbmQgdGhlcmUncyBubyBrZXJuZWwtbGV2ZWwgc29mdHdhcmUgZW11bGF0aW9uIGZvciBpdCwgdGhhdCBtZWFucyB0aGUgY29kZSBJIG1vZGlmaWVkLCBzcGVjaWZpY2FsbHkgaW4gYGF0aDEya19ic3NfYXNzb2NgLCBpcyBzaW1wbHkgdW5yZWFjaGFibGUgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIEdDRSBvciBRRU1VLiBUaGF0IGxvZ2ljIHJlbGllcyBvbiB0aGUgaGFyZHdhcmUgYmVpbmcgcHJlc2VudC5cblxuTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrLCB0aG91Z2gsIHRvIG1ha2UgYWJzb2x1dGVseSBzdXJlIHRoZXJlJ3Mgbm8gb3RoZXIgcGF0aCB0byB0aGlzIGZ1bmN0aW9uLiBSaWdodCwgaXQncyBhIHN0YXRpYyBmdW5jdGlvbiBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEyay9tYWMuY2AuIEkgcmVjYWxsIGl0J3MgYXNzaWduZWQgdG8gYG1hYzgwMjExX29wcy1cdTAwM2Vic3NfYXNzb2NgLiBCdXQgaGVyZSdzIHRoZSBraWNrZXI6IHRoZSBgYXRoMTJrYCBkcml2ZXIgd29uJ3QgZXZlbiAqcmVnaXN0ZXIqIHdpdGggYG1hYzgwMjExYCBpZiB0aGUgaGFyZHdhcmUgaXNuJ3QgdGhlcmUuIGBhdGgxMmtfcGNpX3Byb2JlYCBmYWlscyBlYXJseSBpZiBpdCBjYW4ndCBmaW5kIGEgbWF0Y2hpbmcgUENJIGRldmljZS4gU28gdGhlIGBtYWM4MDIxMWAgc3Vic3lzdGVtIHdvbid0IGV2ZW4gaGF2ZSBhbnkgYGF0aDEya2AgaW50ZXJmYWNlcywgYW5kIHRoZXJlZm9yZSBgYXRoMTJrX2Jzc19hc3NvY2AgKndpbGwqIG5ldmVyIGdldCBjYWxsZWQuXG5cblRoZXJlZm9yZSwgc2V0dGluZyBgV29ydGhGdXp6aW5nYCB0byBmYWxzZSBpcyB0aGUgY29ycmVjdCBjYWxsLCBnaXZlbiB0aGF0IHRoaXMgbW9kdWxlIGlzIGhhcmR3YXJlLXNwZWNpZmljLCBhbmQgdGhlcmUncyBubyBjb2RlIHBhdGggdGhhdCBhbGxvd3MgaXQgdG8gYmUgZXhlY3V0ZWQgaW4gYSB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzkxOSwiT3V0cHV0VG9rZW5zIjoxNDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDQ6MDU6MjcuOTg2NDIwM1oiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM1NDEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBhdGgxMmsgZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIFBDSS9BSEIgZHJpdmVyIGZvciBRdWFsY29tbSBXaS1GaSA3IGRldmljZXMuIFNpbmNlIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBoYXJkd2FyZSBpbiB0aGUga2VybmVsIChsaWtlIG1hYzgwMjExX2h3c2ltIGZvciBnZW5lcmljIG1hYzgwMjExKSwgdGhlIGRyaXZlciB3aWxsIGZhaWwgdG8gcHJvYmUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUgd2l0aG91dCB0aGUgcGh5c2ljYWwgaGFyZHdhcmUuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaW4gYGF0aDEya19ic3NfYXNzb2NgIGlzIHVucmVhY2hhYmxlIGFuZCBjYW5ub3QgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGF0aDEyayBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgUENJL0FIQiBkcml2ZXIgZm9yIFF1YWxjb21tIFdpLUZpIDcgZGV2aWNlcy4gU2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciB0aGlzIGhhcmR3YXJlIGluIHRoZSBrZXJuZWwgKGxpa2UgbWFjODAyMTFfaHdzaW0gZm9yIGdlbmVyaWMgbWFjODAyMTEpLCB0aGUgZHJpdmVyIHdpbGwgZmFpbCB0byBwcm9iZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSB3aXRob3V0IHRoZSBwaHlzaWNhbCBoYXJkd2FyZS4gQ29uc2VxdWVudGx5LCB0aGUgbW9kaWZpZWQgY29kZSBpbiBgYXRoMTJrX2Jzc19hc3NvY2AgaXMgdW5yZWFjaGFibGUgYW5kIGNhbm5vdCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowk55pp[1] Phase: Running StartedAt: 2026-07-17 04:05:39 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk55pp[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-17 04:05:39 +0000 UTC FinishedAt: 2026-07-17 04:05:47 +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,}