Name: series-workflowmvgfn Phase: Failed StartedAt: 2026-09-07 06:47:24 +0000 UTC FinishedAt: 2026-09-07 07:30:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmvgfn[0] Phase: Succeeded StartedAt: 2026-09-07 06:47:24 +0000 UTC FinishedAt: 2026-09-07 07:30:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmvgfn[0].run-triage Phase: Succeeded StartedAt: 2026-09-07 06:47:24 +0000 UTC FinishedAt: 2026-09-07 07:30:08 +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+CgkJCTx0ZD4yMDI2LzA5LzA3IDA3OjI5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgbW9kaWZpZWQgY29kZSBpcyBsb2NhdGVkIGluIHRoZSBNYXJ2ZWxsIFByZXN0ZXJhIHN3aXRjaCBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfaHcuYyksIHdoaWNoIHN1cHBvcnRzIE1hcnZlbGwgUHJlc3RlcmEgc3dpdGNoIEFTSUNzIG92ZXIgUENJLiBUaGlzIGRyaXZlciByZXF1aXJlcyBzcGVjaWZpYyBwaHlzaWNhbCBBU0lDIGhhcmR3YXJlIGFuZCBmaXJtd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMDc6Mjk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAxOTU4YmJiM2U2ZDhiYjViMjNhNzZiMDJlNjdmYjZiZWQzNWMwZGIzXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBTZXAgNyAwNzoyOToyMCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmNcbmluZGV4IDc2OTVjYmIyY2U2MjYuLmM0Y2I1ZjIyODkzYzkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfaHcuY1xuQEAgLTIzMjQsNiAmIzQzOzIzMjQsMTEgQEAgaW50IHByZXN0ZXJhX2h3X2NvdW50ZXJzX2dldChzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdywgdTMyIGlkeCxcbiBcdGlmIChlcnIpXG4gXHRcdGdvdG8gZnJlZV9idWZmO1xuIFxuJiM0MztcdGlmIChfX2xlMzJfdG9fY3B1KHJlc3AtXHUwMDNlbnVtX2NvdW50ZXJzKSBcdTAwM2UgKmxlbikge1xuJiM0MztcdFx0ZXJyID0gLUVJTlZBTDtcbiYjNDM7XHRcdGdvdG8gZnJlZV9idWZmO1xuJiM0MztcdH1cbiYjNDM7XG4gXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBfX2xlMzJfdG9fY3B1KHJlc3AtXHUwMDNlbnVtX2NvdW50ZXJzKTsgaSYjNDM7JiM0MzspIHtcbiBcdFx0c3RhdHNbaV0ucGFja2V0cyAmIzQzOz0gX19sZTY0X3RvX2NwdShyZXNwLVx1MDAzZXN0YXRzW2ldLnBhY2tldHMpO1xuIFx0XHRzdGF0c1tpXS5ieXRlcyAmIzQzOz0gX19sZTY0X3RvX2NwdShyZXNwLVx1MDAzZXN0YXRzW2ldLmJ5dGVzKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwNzoyOTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBtb2RpZmllZCBjb2RlIGlzIGxvY2F0ZWQgaW4gdGhlIE1hcnZlbGwgUHJlc3RlcmEgc3dpdGNoIGRyaXZlciAoZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9ody5jKSwgd2hpY2ggc3VwcG9ydHMgTWFydmVsbCBQcmVzdGVyYSBzd2l0Y2ggQVNJQ3Mgb3ZlciBQQ0kuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIEFTSUMgaGFyZHdhcmUgYW5kIGZpcm13YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzCnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoxLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsCmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuCgotIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOgogIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQKICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLgogIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCwKICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuCgotIERPIE5PVCBCTElORExZIFRSVVNUICYjMzQ7Tk8gRlVOQ1RJT05BTCBDSEFOR0UmIzM0OyAoTkZDSSkgT1IgJiMzNDtSRUZBQ1RPUklORyYjMzQ7IENMQUlNUzoKICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzICYjMzQ7Y2xlYW51cHMmIzM0OywgJiMzNDtyZWZhY3RvcmluZ3MmIzM0Oywgb3Igc3RhdGUKICAmIzM0O05vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkJiMzNDsuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLgogIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudAogIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLgogIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuCgotIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOgogIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKiwKICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy4KICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyCiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczoKCi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczoKICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy4KICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKQogICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLgogICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHMKICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuCiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuCi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOgogICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6CiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmcKICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLgogICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOgotIENvcmUgU3Vic3lzdGVtczoKICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSwKICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy4KLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6CiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuCi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOgogICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLgotIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6CiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo0LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6CgotIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzoKICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1cwogIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0CiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuCiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzICYjMzQ7Zm9jdXNlZCYjMzQ7LAogIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy4KCi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOgogIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50cwogIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LgoKLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6CiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFjawogIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLgogIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlcgogIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZToKLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgotIENoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuCi0gU3RyaXAgYW55ICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0CgpGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDE5NThiYmIzZTZkOGJiNWIyM2E3NmIwMmU2N2ZiNmJlZDM1YzBkYjMKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIFNlcCA3IDA3OjI5OjIwIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9ody5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9ody5jCmluZGV4IDc2OTVjYmIyY2U2MjYuLmM0Y2I1ZjIyODkzYzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfaHcuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmMKQEAgLTIzMjQsNiAmIzQzOzIzMjQsMTEgQEAgaW50IHByZXN0ZXJhX2h3X2NvdW50ZXJzX2dldChzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdywgdTMyIGlkeCwKIAlpZiAoZXJyKQogCQlnb3RvIGZyZWVfYnVmZjsKIAomIzQzOwlpZiAoX19sZTMyX3RvX2NwdShyZXNwLSZndDtudW1fY291bnRlcnMpICZndDsgKmxlbikgewomIzQzOwkJZXJyID0gLUVJTlZBTDsKJiM0MzsJCWdvdG8gZnJlZV9idWZmOwomIzQzOwl9CiYjNDM7CiAJZm9yIChpID0gMDsgaSAmbHQ7IF9fbGUzMl90b19jcHUocmVzcC0mZ3Q7bnVtX2NvdW50ZXJzKTsgaSYjNDM7JiM0MzspIHsKIAkJc3RhdHNbaV0ucGFja2V0cyAmIzQzOz0gX19sZTY0X3RvX2NwdShyZXNwLSZndDtzdGF0c1tpXS5wYWNrZXRzKTsKIAkJc3RhdHNbaV0uYnl0ZXMgJiM0Mzs9IF9fbGU2NF90b19jcHUocmVzcC0mZ3Q7c3RhdHNbaV0uYnl0ZXMpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwNzoyOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTcxCgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMTIwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIE1hcnZlbGwgUHJlc3RlcmEgRHJpdmVyIFBhdGNoKioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBwYXRjaC4gTXkgaW5pdGlhbCBmb2N1cyBpcyBvbiB0aGUgZGlmZiwgc3BlY2lmaWNhbGx5IHRoZSBjaGFuZ2VzIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmNgLiBGaXJzdCwgSSBuZWVkIHRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2Ygd2hhdCB0aGUgYHByZXN0ZXJhYCBkcml2ZXIgYWN0dWFsbHkgKmlzKi4gVGhlIHF1ZXN0aW9uIG9uIG15IG1pbmQgcmlnaHQgbm93IGlzIHdoZXRoZXIgdGhpcyBNYXJ2ZWxsIFByZXN0ZXJhIHN3aXRjaCBkcml2ZXIgaXMgc29tZXRoaW5nIEkgY2FuIHJlbGlhYmx5IHJlYWNoIGFuZCBmdXp6IHdpdGhpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdvb2dsZSBDb21wdXRlIEVuZ2luZS4gVGhhdCYjMzk7cyBrZXkgZm9yIGVmZmljaWVudCBhbmFseXNpcy4KClRoZXJlZm9yZSwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIHNldHVwIHJlcXVpcmVtZW50cy4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgS2NvbmZpZyBlbnRyaWVzLCBQQ0kgSURzLCBvciBwbGF0Zm9ybS1zcGVjaWZpYyBkZXRhaWxzIHdpdGhpbiB0aGUgZHJpdmVyIGNvZGUuIElmIGl0IG5lZWRzIHNwZWNpZmljIGhhcmR3YXJlLCB0aGF0JiMzOTtzIGEgc2lnbmlmaWNhbnQgY29uc2lkZXJhdGlvbi4gSSYjMzk7bGwgcHJvYmFibHkgc3RhcnQgd2l0aCBhIGBncmVwcGVyYCBydW4gb3IganVzdCBhIHRhcmdldGVkIGZpbGUgaW5zcGVjdGlvbiBpbiB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvYCBkaXJlY3RvcnkuIFRoYXQgc2hvdWxkIGdpdmUgbWUgdGhlIGNvbnRleHQgSSBuZWVkIHRvIHByb2NlZWQgZWZmZWN0aXZlbHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMDc6Mjk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7UFJFU1RFUkEmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAzNTI4IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL0tjb25maWctNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvS2NvbmZpZzo2OmNvbmZpZyBQUkVTVEVSQVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnLTctXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIFByZXN0ZXJhIFN3aXRjaCBBU0lDcyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnLTE3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnOjE4OmNvbmZpZyBQUkVTVEVSQV9QQ0lcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvS2NvbmZpZy0xOS1cdHRyaXN0YXRlIFwmIzM0O1BDSSBpbnRlcmZhY2UgZHJpdmVyIGZvciBNYXJ2ZWxsIFByZXN0ZXJhIFN3aXRjaCBBU0lDcyBmYW1pbHlcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvS2NvbmZpZzoyMDpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBIQVNfSU9NRU0gXHUwMDI2XHUwMDI2IFBSRVNURVJBXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL0tjb25maWc6MjE6XHRkZWZhdWx0IFBSRVNURVJBXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL0tjb25maWctMjItXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfUFJFU1RFUkEpXHQmIzQzOz0gcHJlc3RlcmEub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZS0zLXByZXN0ZXJhLW9ianNcdFx0Oj0gcHJlc3RlcmFfbWFpbi5vIHByZXN0ZXJhX2h3Lm8gcHJlc3RlcmFfZHNhLm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL01ha2VmaWxlLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX1BSRVNURVJBX1BDSSlcdCYjNDM7PSBwcmVzdGVyYV9wY2kub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjQ6I2lmbmRlZiBfUFJFU1RFUkFfSF9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDo1OiNkZWZpbmUgX1BSRVNURVJBX0hfXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtNi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTQ6I2RlZmluZSBQUkVTVEVSQV9EUlZfTkFNRVx0XCYjMzQ7cHJlc3RlcmFcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxNjojZGVmaW5lIFBSRVNURVJBX0RFRkFVTFRfVklEICAgIDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg9NDQ9c3RydWN0IHByZXN0ZXJhX3BvcnRfc3RhdHMge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC03Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDo3NzojZGVmaW5lIFBSRVNURVJBX0FQX1BPUlRfTUFYICAgKDEwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTc4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaD0xODQ9ZW51bSBwcmVzdGVyYV9ldmVudF90eXBlIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxODU6XHRQUkVTVEVSQV9FVkVOVF9UWVBFX1VOU1BFQyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xODYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTg3Olx0UFJFU1RFUkFfRVZFTlRfVFlQRV9QT1JULFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjE4ODpcdFBSRVNURVJBX0VWRU5UX1RZUEVfRkRCLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjE4OTpcdFBSRVNURVJBX0VWRU5UX1RZUEVfUlhUWCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xOTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTkxOlx0UFJFU1RFUkFfRVZFTlRfVFlQRV9NQVhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xOTItfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg9MTk0PWVudW0gcHJlc3RlcmFfcnh0eF9ldmVudF9pZCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTk1Olx0UFJFU1RFUkFfUlhUWF9FVkVOVF9VTlNQRUMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTk2Olx0UFJFU1RFUkFfUlhUWF9FVkVOVF9SQ1ZfUEtULFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE5Ny19O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaD0xOTk9ZW51bSBwcmVzdGVyYV9wb3J0X2V2ZW50X2lkIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyMDA6XHRQUkVTVEVSQV9QT1JUX0VWRU5UX1VOU1BFQyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyMDE6XHRQUkVTVEVSQV9QT1JUX0VWRU5UX01BQ19TVEFURV9DSEFOR0VELFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTIwMi19O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaD0yMjY9ZW51bSBwcmVzdGVyYV9mZGJfZW50cnlfdHlwZSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjI3Olx0UFJFU1RFUkFfRkRCX0VOVFJZX1RZUEVfUkVHX1BPUlQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjI4Olx0UFJFU1RFUkFfRkRCX0VOVFJZX1RZUEVfTEFHLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjIyOTpcdFBSRVNURVJBX0ZEQl9FTlRSWV9UWVBFX01BWFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTIzMC19O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaD0yMzI9ZW51bSBwcmVzdGVyYV9mZGJfZXZlbnRfaWQge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjIzMzpcdFBSRVNURVJBX0ZEQl9FVkVOVF9VTlNQRUMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjM0Olx0UFJFU1RFUkFfRkRCX0VWRU5UX0xFQVJORUQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjM1Olx0UFJFU1RFUkFfRkRCX0VWRU5UX0FHRUQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjM2LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oPTI1OD1lbnVtIHByZXN0ZXJhX2lmX3R5cGUge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI1OS1cdC8qIHRoZSBpbnRlcmZhY2UgaXMgb2YgcG9ydCB0eXBlIChkZXYscG9ydCkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyNjA6XHRQUkVTVEVSQV9JRl9QT1JUX0UgPSAwLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI2MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yNjItXHQvKiB0aGUgaW50ZXJmYWNlIGlzIG9mIGxhZyB0eXBlIChsYWctaWQpICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjYzOlx0UFJFU1RFUkFfSUZfTEFHX0UgPSAxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI2NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yNjUtXHQvKiB0aGUgaW50ZXJmYWNlIGlzIG9mIFZpZCB0eXBlICh2bGFuLWlkKSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI2NjpcdFBSRVNURVJBX0lGX1ZJRF9FID0gMyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yNjctfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg9NDE0PXByZXN0ZXJhX2Zsb29kX2RvbWFpbl9wb3J0X2ZpbmQoc3RydWN0IHByZXN0ZXJhX2Zsb29kX2RvbWFpbiAqZmxvb2RfZG9tYWluLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC00MTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6NDE3OiNlbmRpZiAvKiBfUFJFU1RFUkFfSF8gKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTExLSNkZWZpbmUgQUNMX0tFWU1BU0tfU0laRVx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTI6XHQoc2l6ZW9mKF9fYmUzMikgKiBfX1BSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfTUFYKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jPTcxPXN0cnVjdCBwcmVzdGVyYV9hY2xfdnRjYW0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy03Mi1cdHN0cnVjdCBsaXN0X2hlYWQgbGlzdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NzM6XHRfX2JlMzIga2V5bWFza1tfX1BSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfTUFYXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNzQtXHRyZWZjb3VudF90IHJlZmNvdW50O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM9MTAyPWludCBwcmVzdGVyYV9hY2xfY2hhaW5fdG9fY2xpZW50KHUzMiBjaGFpbl9pbmRleCwgYm9vbCBpbmdyZXNzLCB1MzIgKmNsaWVudClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEwNC1cdHN0YXRpYyBjb25zdCB1MzIgaW5ncmVzc19jbGllbnRfbWFwW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjEwNTpcdFx0UFJFU1RFUkFfSFdfQ09VTlRFUl9DTElFTlRfSU5HUkVTU19MT09LVVBfMCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTA2Olx0XHRQUkVTVEVSQV9IV19DT1VOVEVSX0NMSUVOVF9JTkdSRVNTX0xPT0tVUF8xLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxMDc6XHRcdFBSRVNURVJBX0hXX0NPVU5URVJfQ0xJRU5UX0lOR1JFU1NfTE9PS1VQXzJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTA4LVx0fTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTExNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTE1Olx0XHQqY2xpZW50ID0gUFJFU1RFUkFfSFdfQ09VTlRFUl9DTElFTlRfRUdSRVNTX0xPT0tVUDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTE2LVx0XHRyZXR1cm4gMDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jPTEyNj1zdGF0aWMgYm9vbCBwcmVzdGVyYV9hY2xfY2hhaW5faXNfc3VwcG9ydGVkKHUzMiBjaGFpbl9pbmRleCwgYm9vbCBpbmdyZXNzKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTMxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxMzI6XHRyZXR1cm4gKGNoYWluX2luZGV4IFx1MDAyNiB+UFJFU1RFUkFfQUNMX0NIQUlOX01BU0spID09IDA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEzMy19XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYz0xMzY9cHJlc3RlcmFfYWNsX3J1bGVzZXRfY3JlYXRlKHN0cnVjdCBwcmVzdGVyYV9hY2wgKmFjbCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTE2NS1cdC8qIG1ha2UgcGNsLWlkIGJhc2VkIG9uIHVpZCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxNjY6XHRydWxlc2V0LVx1MDAzZXBjbF9pZCA9IFBSRVNURVJBX0FDTF9QQ0xfSURfTUFLRSgodTgpdWlkLCBjaGFpbl9pbmRleCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTE2Ny1cdHJ1bGVzZXQtXHUwMDNlaW5kZXggPSB1aWQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYz0xOTg9aW50IHByZXN0ZXJhX2FjbF9ydWxlc2V0X29mZmxvYWQoc3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpydWxlc2V0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjA1LVx0ZGlyID0gcnVsZXNldC1cdTAwM2VpbmdyZXNzID9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjA2Olx0XHRQUkVTVEVSQV9IV19WVENBTV9ESVJfSU5HUkVTUyA6IFBSRVNURVJBX0hXX1ZUQ0FNX0RJUl9FR1JFU1M7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTIwNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTIyMi1cdFx0aWZhY2UuaW5kZXggPSBydWxlc2V0LVx1MDAzZWluZGV4O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyMjM6XHRcdGlmYWNlLnR5cGUgPSBQUkVTVEVSQV9BQ0xfSUZBQ0VfVFlQRV9JTkRFWDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjI0LVx0XHRlcnIgPSBwcmVzdGVyYV9od192dGNhbV9pZmFjZV9iaW5kKHJ1bGVzZXQtXHUwMDNlYWNsLVx1MDAzZXN3LCBcdTAwMjZpZmFjZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jPTI0MD1zdGF0aWMgdm9pZCBwcmVzdGVyYV9hY2xfcnVsZXNldF9kZXN0cm95KHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldCAqcnVsZXNldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI0Mi1cdHN0cnVjdCBwcmVzdGVyYV9hY2wgKmFjbCA9IHJ1bGVzZXQtXHUwMDNlYWNsO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyNDM6XHR1OCB1aWQgPSBydWxlc2V0LVx1MDAzZXBjbF9pZCBcdTAwMjYgUFJFU1RFUkFfQUNMX0tFWU1BU0tfUENMX0lEX1VTRVI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI0NC1cdGludCBlcnI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yNTEtXHRcdFx0c3RydWN0IHByZXN0ZXJhX2FjbF9pZmFjZSBpZmFjZSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjUyOlx0XHRcdFx0LnR5cGUgPSBQUkVTVEVSQV9BQ0xfSUZBQ0VfVFlQRV9JTkRFWCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjUzLVx0XHRcdFx0LmluZGV4ID0gcnVsZXNldC1cdTAwM2VpbmRleFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM9MzIxPWludCBwcmVzdGVyYV9hY2xfcnVsZXNldF9iaW5kKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldCAqcnVsZXNldCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTMyNC1cdHN0cnVjdCBwcmVzdGVyYV9hY2xfaWZhY2UgaWZhY2UgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjMyNTpcdFx0LnR5cGUgPSBQUkVTVEVSQV9BQ0xfSUZBQ0VfVFlQRV9QT1JULFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMjYtXHRcdC5wb3J0ID0gcG9ydFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM9MzMzPWludCBwcmVzdGVyYV9hY2xfcnVsZXNldF91bmJpbmQoc3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpydWxlc2V0LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzM2LVx0c3RydWN0IHByZXN0ZXJhX2FjbF9pZmFjZSBpZmFjZSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MzM3Olx0XHQudHlwZSA9IFBSRVNURVJBX0FDTF9JRkFDRV9UWVBFX1BPUlQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTMzOC1cdFx0LnBvcnQgPSBwb3J0XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYz00MDA9cHJlc3RlcmFfYWNsX3J1bGVfa2V5bWFza19wY2xfaWRfc2V0KHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZSAqcnVsZSwgdTE2IHBjbF9pZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTQwMi1cdHN0cnVjdCBwcmVzdGVyYV9hY2xfbWF0Y2ggKnJfbWF0Y2ggPSBcdTAwMjZydWxlLVx1MDAzZXJlX2tleS5tYXRjaDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NDAzOlx0X19iZTE2IHBjbF9pZF9tYXNrID0gaHRvbnMoUFJFU1RFUkFfQUNMX0tFWU1BU0tfUENMX0lEKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNDA0LVx0X19iZTE2IHBjbF9pZF9rZXkgPSBodG9ucyhwY2xfaWQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM9NTg0PXN0YXRpYyBpbnQgX19wcmVzdGVyYV9hY2xfcnVsZV9lbnRyeTJod19hZGQoc3RydWN0IHByZXN0ZXJhX3N3aXRjaCAqc3csXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy01ODYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo1ODc6XHRzdHJ1Y3QgcHJlc3RlcmFfYWNsX2h3X2FjdGlvbl9pbmZvIGFjdF9od1tQUkVTVEVSQV9BQ0xfUlVMRV9BQ1RJT05fTUFYXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNTg4LVx0aW50IGFjdF9udW07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy01OTQtXHRpZiAoZS1cdTAwM2VhY2NlcHQudmFsaWQpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NTk1Olx0XHRhY3RfaHdbYWN0X251bV0uaWQgPSBQUkVTVEVSQV9BQ0xfUlVMRV9BQ1RJT05fQUNDRVBUO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy01OTYtXHRcdGFjdF9udW0mIzQzOyYjNDM7O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNTk5LVx0aWYgKGUtXHUwMDNlZHJvcC52YWxpZCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo2MDA6XHRcdGFjdF9od1thY3RfbnVtXS5pZCA9IFBSRVNURVJBX0FDTF9SVUxFX0FDVElPTl9EUk9QO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy02MDEtXHRcdGFjdF9udW0mIzQzOyYjNDM7O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNjA0LVx0aWYgKGUtXHUwMDNldHJhcC52YWxpZCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo2MDU6XHRcdGFjdF9od1thY3RfbnVtXS5pZCA9IFBSRVNURVJBX0FDTF9SVUxFX0FDVElPTl9UUkFQO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy02MDYtXHRcdGFjdF9udW0mIzQzOyYjNDM7O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNjA5LVx0aWYgKGUtXHUwMDNlcG9saWNlLnZhbGlkKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjYxMDpcdFx0YWN0X2h3W2FjdF9udW1dLmlkID0gUFJFU1RFUkFfQUNMX1JVTEVfQUNUSU9OX1BPTElDRTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNjExLVx0XHRhY3RfaHdbYWN0X251bV0ucG9saWNlID0gZS1cdTAwM2Vwb2xpY2UuaTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTYxNS1cdGlmIChlLVx1MDAzZWp1bXAudmFsaWQpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NjE2Olx0XHRhY3RfaHdbYWN0X251bV0uaWQgPSBQUkVTVEVSQV9BQ0xfUlVMRV9BQ1RJT05fSlVNUDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNjE3LVx0XHRhY3RfaHdbYWN0X251bV0uanVtcCA9IGUtXHUwMDNlanVtcC5pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNjIxLVx0aWYgKGUtXHUwMDNlY291bnRlci5ibG9jaykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo2MjI6XHRcdGFjdF9od1thY3RfbnVtXS5pZCA9IFBSRVNURVJBX0FDTF9SVUxFX0FDVElPTl9DT1VOVDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNjIzLVx0XHRhY3RfaHdbYWN0X251bV0uY291bnQuaWQgPSBlLVx1MDAzZWNvdW50ZXIuaWQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYz02NTk9X19wcmVzdGVyYV9hY2xfcnVsZV9lbnRyeV9hY3RfY29uc3RydWN0KHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNjc1LVx0aWYgKGFyZy1cdTAwM2Vwb2xpY2UudmFsaWQpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6Njc2Olx0XHR1OCB0eXBlID0gYXJnLVx1MDAzZXBvbGljZS5pbmdyZXNzID8gUFJFU1RFUkFfUE9MSUNFUl9UWVBFX0lOR1JFU1MgOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo2Nzc6XHRcdFx0XHRcdFx0UFJFU1RFUkFfUE9MSUNFUl9UWVBFX0VHUkVTUztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNjc4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM9NzQ3PXN0YXRpYyBpbnQgX19wcmVzdGVyYV9hY2xfdnRjYW1faWRfdHJ5X2ZpdChzdHJ1Y3QgcHJlc3RlcmFfYWNsICphY2wsIHU4IGxvb2t1cCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTc2My1cdFx0LyogdHJ5IHRvIGZpdCB3aXRoIHZ0Y2FtIGtleW1hc2sgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NzY0Olx0XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBfX1BSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfTUFYOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy03NjUtXHRcdFx0X19iZTMyIF9fa2V5bWFzayA9ICgoX19iZTMyICopa2V5bWFzaylbaV07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy03NzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjc3NjpcdFx0aWYgKGkgPT0gX19QUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX01BWClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNzc3LVx0XHRcdC8qIGtleW1hc2sgZml0cyB2dGNhbSBrZXltYXNrLCByZXR1cm4gaXQgKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oLTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjQ6I2lmbmRlZiBfUFJFU1RFUkFfQUNMX0hfXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjU6I2RlZmluZSBfUFJFU1RFUkFfQUNMX0hfXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oLTYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaC05LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDoxMDojZGVmaW5lIFBSRVNURVJBX0FDTF9LRVlNQVNLX1BDTF9JRFx0XHQweDNGRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDoxMTojZGVmaW5lIFBSRVNURVJBX0FDTF9LRVlNQVNLX1BDTF9JRF9VU0VSXHRcdFx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6MTI6XHQoUFJFU1RFUkFfQUNMX0tFWU1BU0tfUENMX0lEIFx1MDAyNiAweDAwRkYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjEzOiNkZWZpbmUgUFJFU1RFUkFfQUNMX0tFWU1BU0tfUENMX0lEX0NIQUlOXHRcdFx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6MTQ6XHQoUFJFU1RFUkFfQUNMX0tFWU1BU0tfUENMX0lEIFx1MDAyNiAweEZGMDApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjE1OiNkZWZpbmUgUFJFU1RFUkFfQUNMX0NIQUlOX01BU0tcdFx0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6MTY6XHQoUFJFU1RFUkFfQUNMX0tFWU1BU0tfUENMX0lEIFx1MDAzZVx1MDAzZSA4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaC0xNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6MTg6I2RlZmluZSBQUkVTVEVSQV9BQ0xfUENMX0lEX01BS0UodWlkLCBjaGFpbl9pZClcdFx0XHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDoxOTpcdCgoKHVpZCkgXHUwMDI2IFBSRVNURVJBX0FDTF9LRVlNQVNLX1BDTF9JRF9VU0VSKSB8XHRcdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjIwOlx0KCgoY2hhaW5faWQpIFx1MDAzY1x1MDAzYyA4KSBcdTAwMjYgUFJFU1RFUkFfQUNMX0tFWU1BU0tfUENMX0lEX0NIQUlOKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmgtMjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oLTIyLSNkZWZpbmUgcnVsZV9tYXRjaF9zZXRfbihtYXRjaF9wLCB0eXBlLCB2YWxfcCwgc2l6ZSlcdFx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6MjM6XHRtZW1jcHkoXHUwMDI2KG1hdGNoX3ApW1BSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfIyN0eXBlXSxcdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oLTI0LVx0ICAgICAgIHZhbF9wLCBzaXplKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaC0yNS0jZGVmaW5lIHJ1bGVfbWF0Y2hfc2V0KG1hdGNoX3AsIHR5cGUsIHZhbClcdFx0XHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDoyNjpcdG1lbWNweShcdTAwMjYobWF0Y2hfcClbUFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV8jI3R5cGVdLFx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmgtMjctXHQgICAgICAgXHUwMDI2KHZhbCksIHNpemVvZih2YWwpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg9Mjk9ZW51bSBwcmVzdGVyYV9hY2xfbWF0Y2hfdHlwZSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjMwOlx0UFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9QQ0xfSUQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjMxOlx0UFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9FVEhfVFlQRSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6MzI6XHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX0VUSF9ETUFDXzAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjMzOlx0UFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9FVEhfRE1BQ18xLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDozNDpcdFBSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfRVRIX1NNQUNfMCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6MzU6XHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX0VUSF9TTUFDXzEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjM2Olx0UFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9JUF9QUk9UTyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6Mzc6XHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX1NZU19QT1JULFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDozODpcdFBSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfU1lTX0RFVixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6Mzk6XHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX0lQX1NSQyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NDA6XHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX0lQX0RTVCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NDE6XHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX0w0X1BPUlRfU1JDLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo0MjpcdFBSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfTDRfUE9SVF9EU1QsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjQzOlx0UFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9MNF9QT1JUX1JBTkdFX1NSQyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NDQ6XHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX0w0X1BPUlRfUkFOR0VfRFNULFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo0NTpcdFBSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfVkxBTl9JRCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NDY6XHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX1ZMQU5fVFBJRCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NDc6XHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX0lDTVBfVFlQRSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NDg6XHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX0lDTVBfQ09ERSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmgtNDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjUwOlx0X19QUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX01BWFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaC01MS19O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg9NTM9ZW51bSBwcmVzdGVyYV9hY2xfcnVsZV9hY3Rpb24ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo1NDpcdFBSRVNURVJBX0FDTF9SVUxFX0FDVElPTl9BQ0NFUFQgPSAwLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo1NTpcdFBSRVNURVJBX0FDTF9SVUxFX0FDVElPTl9EUk9QID0gMSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NTY6XHRQUkVTVEVSQV9BQ0xfUlVMRV9BQ1RJT05fVFJBUCA9IDIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjU3Olx0UFJFU1RFUkFfQUNMX1JVTEVfQUNUSU9OX0pVTVAgPSA1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo1ODpcdFBSRVNURVJBX0FDTF9SVUxFX0FDVElPTl9DT1VOVCA9IDcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjU5Olx0UFJFU1RFUkFfQUNMX1JVTEVfQUNUSU9OX1BPTElDRSA9IDgsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oLTYwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo2MTpcdFBSRVNURVJBX0FDTF9SVUxFX0FDVElPTl9NQVhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmgtNjItfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oPTY0PWVudW0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo2NTpcdFBSRVNURVJBX0FDTF9JRkFDRV9UWVBFX1BPUlQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjY2Olx0UFJFU1RFUkFfQUNMX0lGQUNFX1RZUEVfSU5ERVhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmgtNjctfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oPTY5PXN0cnVjdCBwcmVzdGVyYV9hY2xfbWF0Y2gge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo3MDpcdF9fYmUzMiBrZXlbX19QUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX01BWF07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjcxOlx0X19iZTMyIG1hc2tbX19QUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX01BWF07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oLTcyLX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaD0yMDc9aW50IHByZXN0ZXJhX2FjbF9jaGFpbl90b19jbGllbnQodTMyIGNoYWluX2luZGV4LCBib29sIGluZ3Jlc3MsIHUzMiAqY2xpZW50KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmgtMjA4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDoyMDk6I2VuZGlmIC8qIF9QUkVTVEVSQV9BQ0xfSF8gKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2NvdW50ZXIuaC0zLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9jb3VudGVyLmg6NDojaWZuZGVmIF9QUkVTVEVSQV9DT1VOVEVSX0hfXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2NvdW50ZXIuaDo1OiNkZWZpbmUgX1BSRVNURVJBX0NPVU5URVJfSF9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfY291bnRlci5oLTYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9jb3VudGVyLmg9MjY9aW50IHByZXN0ZXJhX2NvdW50ZXJfc3RhdHNfZ2V0KHN0cnVjdCBwcmVzdGVyYV9jb3VudGVyICpjb3VudGVyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfY291bnRlci5oLTI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9jb3VudGVyLmg6MzA6I2VuZGlmIC8qIF9QUkVTVEVSQV9DT1VOVEVSX0hfICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM9MTI9ZW51bSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxMzpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9CQVNFID0gREVWTElOS19UUkFQX0dFTkVSSUNfSURfTUFYLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTQ6XHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfQVJQX0JDLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTU6XHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfSVNfSVMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxNjpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9PU1BGLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTc6XHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfSVBfQkNfTUFDLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTg6XHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfUk9VVEVSX01DLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTk6XHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfVlJSUCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjIwOlx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX0RIQ1AsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyMTpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9NQUNfVE9fTUUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyMjpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9JUFY0X09QVElPTlMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyMzpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9JUF9ERUZBVUxUX1JPVVRFLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjQ6XHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfSVBfVE9fTUUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyNTpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9JUFY0X0lDTVBfUkVESVJFQ1QsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyNjpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9BQ0xfQ09ERV8wLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6Mjc6XHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfQUNMX0NPREVfMSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjI4Olx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX0FDTF9DT0RFXzIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyOTpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9BQ0xfQ09ERV8zLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MzA6XHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfQUNMX0NPREVfNCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjMxOlx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX0FDTF9DT0RFXzUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzozMjpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9BQ0xfQ09ERV82LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MzM6XHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfQUNMX0NPREVfNyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjM0Olx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX0JHUCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjM1Olx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX1NTSCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjM2Olx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX1RFTE5FVCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjM3Olx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX0lDTVAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzozODpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9NRVRfUkVELFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6Mzk6XHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfSVBfU0lQX0lTX1pFUk8sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo0MDpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9JUF9VQ19ESVBfREFfTUlTTUFUQ0gsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo0MTpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9JTExFR0FMX0lQVjRfSERSLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6NDI6XHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfSUxMRUdBTF9JUF9BRERSLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6NDM6XHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfSU5WQUxJRF9TQSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjQ0Olx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX0xPQ0FMX1BPUlQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo0NTpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9QT1JUX05PX1ZMQU4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo0NjpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9SWERNQV9EUk9QLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtNDctfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTQ4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6NDk6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9BUlBfQkMgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTUwLVx0XCYjMzQ7YXJwX2JjXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo1MTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0lTX0lTIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy01Mi1cdFwmIzM0O2lzX2lzXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo1MzojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX09TUEYgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTU0LVx0XCYjMzQ7b3NwZlwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6NTU6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9JUF9CQ19NQUMgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTU2LVx0XCYjMzQ7aXBfYmNfbWFjXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo1NzojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX1JPVVRFUl9NQyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtNTgtXHRcJiMzNDtyb3V0ZXJfbWNcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjU5OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfVlJSUCBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtNjAtXHRcJiMzNDt2cnJwXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo2MTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0RIQ1AgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTYyLVx0XCYjMzQ7ZGhjcFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6NjM6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9NQUNfVE9fTUUgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTY0LVx0XCYjMzQ7bWFjX3RvX21lXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo2NTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0lQVjRfT1BUSU9OUyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtNjYtXHRcJiMzNDtpcHY0X29wdGlvbnNcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjY3OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfSVBfREVGQVVMVF9ST1VURSBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtNjgtXHRcJiMzNDtpcF9kZWZhdWx0X3JvdXRlXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo2OTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0lQX1RPX01FIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy03MC1cdFwmIzM0O2lwX3RvX21lXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo3MTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0lQVjRfSUNNUF9SRURJUkVDVCBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtNzItXHRcJiMzNDtpcHY0X2ljbXBfcmVkaXJlY3RcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjczOiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfQUNMX0NPREVfMCBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtNzQtXHRcJiMzNDthY2xfY29kZV8wXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo3NTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0FDTF9DT0RFXzEgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTc2LVx0XCYjMzQ7YWNsX2NvZGVfMVwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6Nzc6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9BQ0xfQ09ERV8yIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy03OC1cdFwmIzM0O2FjbF9jb2RlXzJcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjc5OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfQUNMX0NPREVfMyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtODAtXHRcJiMzNDthY2xfY29kZV8zXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo4MTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0FDTF9DT0RFXzQgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTgyLVx0XCYjMzQ7YWNsX2NvZGVfNFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6ODM6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9BQ0xfQ09ERV81IFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy04NC1cdFwmIzM0O2FjbF9jb2RlXzVcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjg1OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfQUNMX0NPREVfNiBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtODYtXHRcJiMzNDthY2xfY29kZV82XCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo4NzojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0FDTF9DT0RFXzcgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTg4LVx0XCYjMzQ7YWNsX2NvZGVfN1wmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6ODk6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9CR1AgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTkwLVx0XCYjMzQ7YmdwXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo5MTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX1NTSCBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtOTItXHRcJiMzNDtzc2hcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjkzOiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfVEVMTkVUIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy05NC1cdFwmIzM0O3RlbG5ldFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6OTU6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9JQ01QIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy05Ni1cdFwmIzM0O2ljbXBcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjk3OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfUlhETUFfRFJPUCBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtOTgtXHRcJiMzNDtyeGRtYV9kcm9wXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo5OTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX1BPUlRfTk9fVkxBTiBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTAwLVx0XCYjMzQ7cG9ydF9ub192bGFuXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxMDE6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9MT0NBTF9QT1JUIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xMDItXHRcJiMzNDtsb2NhbF9wb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxMDM6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9JTlZBTElEX1NBIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xMDQtXHRcJiMzNDtpbnZhbGlkX3NhXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxMDU6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9JTExFR0FMX0lQX0FERFIgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTEwNi1cdFwmIzM0O2lsbGVnYWxfaXBfYWRkclwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTA3OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfSUxMRUdBTF9JUFY0X0hEUiBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTA4LVx0XCYjMzQ7aWxsZWdhbF9pcHY0X2hkclwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTA5OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfSVBfVUNfRElQX0RBX01JU01BVENIIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xMTAtXHRcJiMzNDtpcF91Y19kaXBfZGFfbWlzbWF0Y2hcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjExMTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0lQX1NJUF9JU19aRVJPIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xMTItXHRcJiMzNDtpcF9zaXBfaXNfemVyb1wmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTEzOiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfTUVUX1JFRCBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTE0LVx0XCYjMzQ7bWV0X3JlZFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jPTEyNj1zdHJ1Y3QgcHJlc3RlcmFfdHJhcF9kYXRhIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xMzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxMzI6I2RlZmluZSBQUkVTVEVSQV9UUkFQX01FVEFEQVRBIERFVkxJTktfVFJBUF9NRVRBREFUQV9UWVBFX0ZfSU5fUE9SVFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTMzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTM0OiNkZWZpbmUgUFJFU1RFUkFfVFJBUF9DT05UUk9MKF9pZCwgX2dyb3VwX2lkLCBfYWN0aW9uKVx0XHRcdCAgICAgIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xMzUtXHRERVZMSU5LX1RSQVBfR0VORVJJQyhDT05UUk9MLCBfYWN0aW9uLCBfaWQsXHRcdFx0ICAgICAgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTEzNi1cdFx0XHQgICAgIERFVkxJTktfVFJBUF9HUk9VUF9HRU5FUklDX0lEXyMjX2dyb3VwX2lkLFx0ICAgICAgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjEzNzpcdFx0XHQgICAgIFBSRVNURVJBX1RSQVBfTUVUQURBVEEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xMzgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxMzk6I2RlZmluZSBQUkVTVEVSQV9UUkFQX0RSSVZFUl9DT05UUk9MKF9pZCwgX2dyb3VwX2lkKVx0XHRcdCAgICAgIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxNDA6XHRERVZMSU5LX1RSQVBfRFJJVkVSKENPTlRST0wsIFRSQVAsIERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF8jI19pZCwgICAgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE0MTpcdFx0XHQgICAgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfIyNfaWQsXHRcdCAgICAgIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xNDItXHRcdFx0ICAgIERFVkxJTktfVFJBUF9HUk9VUF9HRU5FUklDX0lEXyMjX2dyb3VwX2lkLFx0ICAgICAgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE0MzpcdFx0XHQgICAgUFJFU1RFUkFfVFJBUF9NRVRBREFUQSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTE0NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE0NTojZGVmaW5lIFBSRVNURVJBX1RSQVBfRVhDRVBUSU9OKF9pZCwgX2dyb3VwX2lkKVx0XHRcdFx0ICAgICAgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTE0Ni1cdERFVkxJTktfVFJBUF9HRU5FUklDKEVYQ0VQVElPTiwgVFJBUCwgX2lkLFx0XHRcdCAgICAgIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xNDctXHRcdFx0ICAgICBERVZMSU5LX1RSQVBfR1JPVVBfR0VORVJJQ19JRF8jI19ncm91cF9pZCxcdCAgICAgIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxNDg6XHRcdFx0ICAgICBQUkVTVEVSQV9UUkFQX01FVEFEQVRBKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTQ5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTUwOiNkZWZpbmUgUFJFU1RFUkFfVFJBUF9EUklWRVJfRVhDRVBUSU9OKF9pZCwgX2dyb3VwX2lkKVx0XHRcdCAgICAgIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxNTE6XHRERVZMSU5LX1RSQVBfRFJJVkVSKEVYQ0VQVElPTiwgVFJBUCwgREVWTElOS19QUkVTVEVSQV9UUkFQX0lEXyMjX2lkLCAgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE1MjpcdFx0XHQgICAgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfIyNfaWQsXHRcdCAgICAgIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xNTMtXHRcdFx0ICAgIERFVkxJTktfVFJBUF9HUk9VUF9HRU5FUklDX0lEXyMjX2dyb3VwX2lkLFx0ICAgICAgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE1NDpcdFx0XHQgICAgUFJFU1RFUkFfVFJBUF9NRVRBREFUQSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTE1NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE1NjojZGVmaW5lIFBSRVNURVJBX1RSQVBfRFJJVkVSX0RST1AoX2lkLCBfZ3JvdXBfaWQpXHRcdFx0ICAgICAgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE1NzpcdERFVkxJTktfVFJBUF9EUklWRVIoRFJPUCwgRFJPUCwgREVWTElOS19QUkVTVEVSQV9UUkFQX0lEXyMjX2lkLFx0ICAgICAgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE1ODpcdFx0XHQgICAgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfIyNfaWQsXHRcdCAgICAgIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xNTktXHRcdFx0ICAgIERFVkxJTktfVFJBUF9HUk9VUF9HRU5FUklDX0lEXyMjX2dyb3VwX2lkLFx0ICAgICAgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE2MDpcdFx0XHQgICAgUFJFU1RFUkFfVFJBUF9NRVRBREFUQSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTE2MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYz0xODM9c3RhdGljIHN0cnVjdCBwcmVzdGVyYV90cmFwIHByZXN0ZXJhX3RyYXBfaXRlbXNfYXJyW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xODQtXHR7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxODU6XHRcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9EUklWRVJfQ09OVFJPTChBUlBfQkMsIE5FSUdIX0RJU0NPVkVSWSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xODYtXHRcdC5jcHVfY29kZSA9IDUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTg4LVx0e1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTg5Olx0XHQudHJhcCA9IFBSRVNURVJBX1RSQVBfRFJJVkVSX0NPTlRST0woSVNfSVMsIExPQ0FMX0RFTElWRVJZKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTE5MC1cdFx0LmNwdV9jb2RlID0gMTMsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTkyLVx0e1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTkzOlx0XHQudHJhcCA9IFBSRVNURVJBX1RSQVBfRFJJVkVSX0NPTlRST0woT1NQRiwgT1NQRiksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xOTQtXHRcdC5jcHVfY29kZSA9IDE2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTE5Ni1cdHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE5NzpcdFx0LnRyYXAgPSBQUkVTVEVSQV9UUkFQX0RSSVZFUl9DT05UUk9MKElQX0JDX01BQywgTE9DQUxfREVMSVZFUlkpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTk4LVx0XHQuY3B1X2NvZGUgPSAxOSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yMDAtXHR7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyMDE6XHRcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9DT05UUk9MKFNUUCwgU1RQLCBUUkFQKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIwMi1cdFx0LmNwdV9jb2RlID0gMjYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjA0LVx0e1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjA1Olx0XHQudHJhcCA9IFBSRVNURVJBX1RSQVBfQ09OVFJPTChMQUNQLCBMQUNQLCBUUkFQKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIwNi1cdFx0LmNwdV9jb2RlID0gMjcsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjA4LVx0e1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjA5Olx0XHQudHJhcCA9IFBSRVNURVJBX1RSQVBfQ09OVFJPTChMTERQLCBMTERQLCBUUkFQKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIxMC1cdFx0LmNwdV9jb2RlID0gMjgsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjEyLVx0e1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjEzOlx0XHQudHJhcCA9IFBSRVNURVJBX1RSQVBfRFJJVkVSX0NPTlRST0woUk9VVEVSX01DLCBMT0NBTF9ERUxJVkVSWSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yMTQtXHRcdC5jcHVfY29kZSA9IDI5LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIxNi1cdHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjIxNzpcdFx0LnRyYXAgPSBQUkVTVEVSQV9UUkFQX0RSSVZFUl9DT05UUk9MKFZSUlAsIFZSUlApLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjE4LVx0XHQuY3B1X2NvZGUgPSAzMCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yMjAtXHR7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyMjE6XHRcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9EUklWRVJfQ09OVFJPTChESENQLCBESENQKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIyMi1cdFx0LmNwdV9jb2RlID0gMzMsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjI0LVx0e1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjI1Olx0XHQudHJhcCA9IFBSRVNURVJBX1RSQVBfRVhDRVBUSU9OKE1UVV9FUlJPUiwgTDNfRVhDRVBUSU9OUyksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yMjYtXHRcdC5jcHVfY29kZSA9IDYzLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIyOC1cdHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjIyOTpcdFx0LnRyYXAgPSBQUkVTVEVSQV9UUkFQX0RSSVZFUl9DT05UUk9MKE1BQ19UT19NRSwgTE9DQUxfREVMSVZFUlkpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjMwLVx0XHQuY3B1X2NvZGUgPSA2NSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yMzItXHR7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyMzM6XHRcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9FWENFUFRJT04oVFRMX0VSUk9SLCBMM19FWENFUFRJT05TKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIzNC1cdFx0LmNwdV9jb2RlID0gMTMzLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIzNi1cdHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjIzNzpcdFx0LnRyYXAgPSBQUkVTVEVSQV9UUkFQX0RSSVZFUl9FWENFUFRJT04oSVBWNF9PUFRJT05TLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjM4LVx0XHRcdFx0XHRcdCAgICAgICBMM19FWENFUFRJT05TKSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yNDEtXHR7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyNDI6XHRcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9EUklWRVJfQ09OVFJPTChJUF9ERUZBVUxUX1JPVVRFLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjQzLVx0XHRcdFx0XHRcdCAgICAgTE9DQUxfREVMSVZFUlkpLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTI0Ni1cdHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjI0NzpcdFx0LnRyYXAgPSBQUkVTVEVSQV9UUkFQX0NPTlRST0woTE9DQUxfUk9VVEUsIExPQ0FMX0RFTElWRVJZLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjQ4LVx0XHRcdFx0XHQgICAgICBUUkFQKSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yNTEtXHR7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyNTI6XHRcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9EUklWRVJfRVhDRVBUSU9OKElQVjRfSUNNUF9SRURJUkVDVCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTI1My1cdFx0XHRcdFx0XHQgICAgICAgTDNfRVhDRVBUSU9OUyksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjU2LVx0e1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjU3Olx0XHQudHJhcCA9IFBSRVNURVJBX1RSQVBfQ09OVFJPTChBUlBfUkVTUE9OU0UsIE5FSUdIX0RJU0NPVkVSWSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTI1OC1cdFx0XHRcdFx0ICAgICAgVFJBUCksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjYxLVx0e1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjYyOlx0XHQudHJhcCA9IFBSRVNURVJBX1RSQVBfRFJJVkVSX0NPTlRST0woQUNMX0NPREVfMCwgQUNMX1RSQVApLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjYzLVx0XHQuY3B1X2NvZGUgPSAxOTIsXG4tLVxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMDc6Mjk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTkzNTgKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAyNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgaW1tZWRpYXRlIHRob3VnaHQgcHJvY2VzcywgZm9jdXNpbmcgb24gdGhlIGZpbGVzIG1lbnRpb25lZCwgYXNzdW1pbmcgSSYjMzk7bSBkZWVwIGluIGVtYmVkZGVkIHN5c3RlbXMgZGV2ZWxvcG1lbnQgYW5kIGZhbWlsaWFyIHdpdGggdGhpcyBjb2RlYmFzZToKCioqUmV2aWV3aW5nIEtleSBQcmVzdGVyYSBGaWxlcyoqCgpPa2F5LCB0aW1lIHRvIGRpZyBpbi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGRpdmUgaW50byBgcHJlc3RlcmFfcGNpLmNgLCBgcHJlc3RlcmFfbWFpbi5jYCwgYW5kIHRoZSBgS2NvbmZpZ2AgZmlsZS4gSSBpbW1lZGlhdGVseSB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbi4gYHByZXN0ZXJhX3BjaS5jYCBpcyB2ZXJ5IGxpa2VseSB0aGUgaW50ZXJmYWNlIGZvciB0aGUgUENJIGJ1cyBpbnRlcmFjdGlvbnMsIHdoaWNoIGlzIGVzc2VudGlhbCB0byB0aGUgb3ZlcmFsbCBvcGVyYXRpb24gb2YgdGhlIHByZXN0ZXJhIGJhc2VkIHN3aXRjaC4gIGBwcmVzdGVyYV9tYWluLmNgIHByb2JhYmx5IGNvbnRhaW5zIHRoZSBjb3JlIGluaXRpYWxpemF0aW9uLCBjb250cm9sIGZsb3csIGFuZCBwb3RlbnRpYWxseSB0aGUgbWFpbiBsb29wIG9yIGVudHJ5IHBvaW50IGZvciB0aGUgUHJlc3RlcmEtc3BlY2lmaWMgZnVuY3Rpb25hbGl0eS4gR2l2ZW4gbXkgZXhwZXJpZW5jZSwgSSBleHBlY3QgdGhhdCBtYWluIGZpbGUgdG8gbWFuYWdlIHRoZSBjb3JlIG9mIHRoZSBBU0lDIGRyaXZlci4KCkFuZCBvZiBjb3Vyc2UsIEkgbmVlZCB0byBjaGVjayBgS2NvbmZpZ2AuIFRoYXQmIzM5O3Mgd2hlcmUgYWxsIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBQcmVzdGVyYSBkcml2ZXIgd2lsbCBsaXZlLiBVbmRlcnN0YW5kaW5nIHRoZSBhdmFpbGFibGUgY29uZmlndXJhdGlvbnMgaXMgY3J1Y2lhbC4gSSYjMzk7bGwgbmVlZCB0byBzZWUgd2hhdCBmZWF0dXJlcyBhcmUgZW5hYmxlZCwgd2hhdCBoYXJkd2FyZSB2YXJpYW50cyBhcmUgc3VwcG9ydGVkLCBhbmQgYW55IGJ1aWxkLXRpbWUgb3IgY29tcGlsZS10aW1lIG9wdGlvbnMgdGhhdCBpbmZsdWVuY2UgdGhlIGRyaXZlciYjMzk7cyBiZWhhdmlvci4gVGhlIGBLY29uZmlnYCB3aWxsIHByb3ZpZGUgdGhlIGtub2JzIHRoYXQgSSBuZWVkIHRvIHR3ZWFrIGZvciBhIGdpdmVuIGRlcGxveW1lbnQgb3IgdG8gdGVzdCBhIHBhcnRpY3VsYXIgYXJlYS4KCknigJltIGFudGljaXBhdGluZyBkZXBlbmRlbmNpZXMgYW5kIGludGVyYWN0aW9ucyBiZXR3ZWVuIHRoZXNlIGZpbGVzLCBzbyBJJiMzOTtsbCBiZSBsb29raW5nIGZvciBjcm9zcy1yZWZlcmVuY2VzIGJldHdlZW4gdGhlbSBhcyBJIGdvLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDA3OjI5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA0MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4gICAyOlx0I1xuICAgMzpcdCMgTWFydmVsbCBQcmVzdGVyYSBkcml2ZXJzIGNvbmZpZ3VyYXRpb25cbiAgIDQ6XHQjXG4gICA1Olx0XG4gICA2Olx0Y29uZmlnIFBSRVNURVJBXG4gICA3Olx0XHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIFByZXN0ZXJhIFN3aXRjaCBBU0lDcyBzdXBwb3J0XCYjMzQ7XG4gICA4Olx0XHRkZXBlbmRzIG9uIE5FVF9TV0lUQ0hERVYgXHUwMDI2XHUwMDI2IFZMQU5fODAyMVFcbiAgIDk6XHRcdGRlcGVuZHMgb24gQlJJREdFIHx8IEJSSURHRT1uXG4gIDEwOlx0XHRzZWxlY3QgTkVUX0RFVkxJTktcbiAgMTE6XHRcdHNlbGVjdCBQSFlMSU5LXG4gIDEyOlx0XHRoZWxwXG4gIDEzOlx0XHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIE1hcnZlbGwgUHJlc3RlcmEgU3dpdGNoIEFTSUNzIGZhbWlseS5cbiAgMTQ6XHRcbiAgMTU6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXG4gIDE2Olx0XHQgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBwcmVzdGVyYS5cbiAgMTc6XHRcbiAgMTg6XHRjb25maWcgUFJFU1RFUkFfUENJXG4gIDE5Olx0XHR0cmlzdGF0ZSBcJiMzNDtQQ0kgaW50ZXJmYWNlIGRyaXZlciBmb3IgTWFydmVsbCBQcmVzdGVyYSBTd2l0Y2ggQVNJQ3MgZmFtaWx5XCYjMzQ7XG4gIDIwOlx0XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgSEFTX0lPTUVNIFx1MDAyNlx1MDAyNiBQUkVTVEVSQVxuICAyMTpcdFx0ZGVmYXVsdCBQUkVTVEVSQVxuICAyMjpcdFx0aGVscFxuICAyMzpcdFx0ICBUaGlzIGlzIGltcGxlbWVudGF0aW9uIG9mIFBDSSBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgTWFydmVsbCBQcmVzdGVyYVxuICAyNDpcdFx0ICBTd2l0Y2ggQVNJQ3MgZmFtaWx5LlxuICAyNTpcdFxuICAyNjpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGVcbiAgMjc6XHRcdCAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHByZXN0ZXJhX3BjaS5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwNzoyOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDA4MQoJCQkJCQkJb3V0cHV0OiA0NwoJCQkJCQkJdGhvdWdodHM6IDMxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzczoKCioqRGl2aW5nIGludG8gdGhlIGBwcmVzdGVyYV9wY2kuY2AgQ29kZSoqCgpBbHJpZ2h0LCBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIGhvdyB0aGlzIGBwcmVzdGVyYV9wY2kuY2AgbW9kdWxlIGlzIHdvcmtpbmcuIE15IGltbWVkaWF0ZSBmb2N1cyBpcyB0d29mb2xkOiBmaXJzdCwgSSB3YW50IHRvIGNvbmZpcm0gd2hhdCBhY3R1YWwgaGFyZHdhcmUgY29tcG9uZW50cyBhcmUgYmVpbmcgZGlyZWN0bHkgYm91bmQgdG8gdGhpcyBkcml2ZXIuIEFyZSB3ZSB0YWxraW5nIGFib3V0IHNwZWNpZmljIFBDSSBkZXZpY2VzIHRoYXQgaXQmIzM5O3MgZGVzaWduZWQgdG8gbWFuYWdlPyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGF0IHJlbGF0aW9uc2hpcC4gU2Vjb25kLCBhbmQgdGhpcyBpcyBjcnVjaWFsIGZvciB0ZXN0aW5nIGFuZCBkZXZlbG9wbWVudCwgSSBuZWVkIHRvIHNlZSBpZiB0aGVyZSYjMzk7cyBhbnkgc3VwcG9ydCBmb3IgbW9jayBkZXZpY2VzIG9yIHZpcnR1YWwgZGV2aWNlIGltcGxlbWVudGF0aW9ucyB3aXRoaW4gdGhpcyBmaWxlLiBEb2VzIGl0IGluY2x1ZGUgYW55IGFic3RyYWN0aW9ucyB0aGF0IHdvdWxkIGFsbG93IG1lIHRvIHNpbXVsYXRlIHRoZSBoYXJkd2FyZSBlbnZpcm9ubWVudCBmb3IgdGVzdGluZyBwdXJwb3Nlcywgb3IgYXJlIHdlIHRpZ2h0bHkgY291cGxlZCB3aXRoIHRoZSBwaHlzaWNhbCBoYXJkd2FyZT8gVGhlIGFuc3dlcnMgaGVyZSB3aWxsIGd1aWRlIG15IG5leHQgc3RlcHMgaW4gdW5kZXJzdGFuZGluZyB0aGUgZHJpdmVyJiMzOTtzIGZsZXhpYmlsaXR5IGFuZCBwb3RlbnRpYWwgZm9yIGluZGVwZW5kZW50IGFuYWx5c2lzLiBMZXQmIzM5O3Mgc2VlIHdoYXQgdGhlIGNvZGUgcmV2ZWFscy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwNzoyOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfcGNpLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZSBPUiBHUEwtMi4wXG4gICAyOlx0LyogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjAgTWFydmVsbCBJbnRlcm5hdGlvbmFsIEx0ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZCAqL1xuICAgMzpcdFxuICAgNDpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L2JpdGZpZWxkLmhcdTAwM2VcbiAgIDU6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9jaXJjX2J1Zi5oXHUwMDNlXG4gICA2Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvZGV2aWNlLmhcdTAwM2VcbiAgIDc6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9maXJtd2FyZS5oXHUwMDNlXG4gICA4Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvaW9wb2xsLmhcdTAwM2VcbiAgIDk6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9rZXJuZWwuaFx1MDAzZVxuICAxMDpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L21vZHVsZS5oXHUwMDNlXG4gIDExOlx0I2luY2x1ZGUgXHUwMDNjbGludXgvcGNpLmhcdTAwM2VcbiAgMTI6XHRcbiAgMTM6XHQjaW5jbHVkZSBcJiMzNDtwcmVzdGVyYS5oXCYjMzQ7XG4gIDE0Olx0XG4gIDE1Olx0I2RlZmluZSBQUkVTVEVSQV9NU0dfTUFYX1NJWkUgMTUwMFxuICAxNjpcdFxuICAxNzpcdCNkZWZpbmUgUFJFU1RFUkFfU1VQUF9GV19NQUpfVkVSXHQ0XG4gIDE4Olx0I2RlZmluZSBQUkVTVEVSQV9TVVBQX0ZXX01JTl9WRVJcdDFcbiAgMTk6XHRcbiAgMjA6XHQjZGVmaW5lIFBSRVNURVJBX1BSRVZfRldfTUFKX1ZFUlx0NFxuICAyMTpcdCNkZWZpbmUgUFJFU1RFUkFfUFJFVl9GV19NSU5fVkVSXHQwXG4gIDIyOlx0XG4gIDIzOlx0I2RlZmluZSBQUkVTVEVSQV9GV19QQVRIX0ZNVFx0XCYjMzQ7bXJ2bC9wcmVzdGVyYS9tdnN3X3ByZXN0ZXJhX2Z3LXYldS4ldS5pbWdcJiMzNDtcbiAgMjQ6XHQjZGVmaW5lIFBSRVNURVJBX0ZXX0FSTTY0X1BBVEhfRk1UIFwmIzM0O21ydmwvcHJlc3RlcmEvbXZzd19wcmVzdGVyYV9md19hcm02NC12JXUuJXUuaW1nXCYjMzQ7XG4gIDI1Olx0XG4gIDI2Olx0I2RlZmluZSBQUkVTVEVSQV9GV19IRFJfTUFHSUNcdFx0MHgzNTFEOUQwNlxuICAyNzpcdCNkZWZpbmUgUFJFU1RFUkFfRldfRExfVElNRU9VVF9NU1x0NTAwMDBcbiAgMjg6XHQjZGVmaW5lIFBSRVNURVJBX0ZXX0JMS19TWlx0XHQxMDI0XG4gIDI5Olx0XG4gIDMwOlx0I2RlZmluZSBQUkVTVEVSQV9GV19WRVJfTUFKX01VTCAxMDAwMDAwXG4gIDMxOlx0I2RlZmluZSBQUkVTVEVSQV9GV19WRVJfTUlOX01VTCAxMDAwXG4gIDMyOlx0XG4gIDMzOlx0I2RlZmluZSBQUkVTVEVSQV9GV19WRVJfTUFKKHYpXHQoKHYpIC8gUFJFU1RFUkFfRldfVkVSX01BSl9NVUwpXG4gIDM0Olx0XG4gIDM1Olx0I2RlZmluZSBQUkVTVEVSQV9GV19WRVJfTUlOKHYpIFxcXG4gIDM2Olx0XHQoKCh2KSAtIChQUkVTVEVSQV9GV19WRVJfTUFKKHYpICogUFJFU1RFUkFfRldfVkVSX01BSl9NVUwpKSAvIFxcXG4gIDM3Olx0XHRcdFx0UFJFU1RFUkFfRldfVkVSX01JTl9NVUwpXG4gIDM4Olx0XG4gIDM5Olx0I2RlZmluZSBQUkVTVEVSQV9GV19WRVJfUEFUQ0godikgXFxcbiAgNDA6XHRcdCgodikgLSAoUFJFU1RFUkFfRldfVkVSX01BSih2KSAqIFBSRVNURVJBX0ZXX1ZFUl9NQUpfTVVMKSAtIFxcXG4gIDQxOlx0XHRcdFx0KFBSRVNURVJBX0ZXX1ZFUl9NSU4odikgKiBQUkVTVEVSQV9GV19WRVJfTUlOX01VTCkpXG4gIDQyOlx0XG4gIDQzOlx0ZW51bSBwcmVzdGVyYV9wY2lfYmFyX3Qge1xuICA0NDpcdFx0UFJFU1RFUkFfUENJX0JBUl9GVyA9IDIsXG4gIDQ1Olx0XHRQUkVTVEVSQV9QQ0lfQkFSX1BQID0gNCxcbiAgNDY6XHR9O1xuICA0NzpcdFxuICA0ODpcdHN0cnVjdCBwcmVzdGVyYV9md19oZWFkZXIge1xuICA0OTpcdFx0X19iZTMyIG1hZ2ljX251bWJlcjtcbiAgNTA6XHRcdF9fYmUzMiB2ZXJzaW9uX3ZhbHVlO1xuICA1MTpcdFx0dTggcmVzZXJ2ZWRbOF07XG4gIDUyOlx0fTtcbiAgNTM6XHRcbiAgNTQ6XHRzdHJ1Y3QgcHJlc3RlcmFfbGRyX3JlZ3Mge1xuICA1NTpcdFx0dTMyIGxkcl9yZWFkeTtcbiAgNTY6XHRcdHUzMiBwYWQxO1xuICA1NzpcdFxuICA1ODpcdFx0dTMyIGxkcl9pbWdfc2l6ZTtcbiAgNTk6XHRcdHUzMiBsZHJfY3RsX2ZsYWdzO1xuICA2MDpcdFxuICA2MTpcdFx0dTMyIGxkcl9idWZfb2ZmcztcbiAgNjI6XHRcdHUzMiBsZHJfYnVmX3NpemU7XG4gIDYzOlx0XG4gIDY0Olx0XHR1MzIgbGRyX2J1Zl9yZDtcbiAgNjU6XHRcdHUzMiBwYWQyO1xuICA2NjpcdFx0dTMyIGxkcl9idWZfd3I7XG4gIDY3Olx0XG4gIDY4Olx0XHR1MzIgbGRyX3N0YXR1cztcbiAgNjk6XHR9O1xuICA3MDpcdFxuICA3MTpcdCNkZWZpbmUgUFJFU1RFUkFfTERSX1JFR19PRkZTRVQoZilcdG9mZnNldG9mKHN0cnVjdCBwcmVzdGVyYV9sZHJfcmVncywgZilcbiAgNzI6XHRcbiAgNzM6XHQjZGVmaW5lIFBSRVNURVJBX0xEUl9SRUFEWV9NQUdJQ1x0MHhmMDBkZmVlZFxuICA3NDpcdFxuICA3NTpcdCNkZWZpbmUgUFJFU1RFUkFfTERSX1NUQVRVU19JTUdfRExcdEJJVCgwKVxuICA3NjpcdCNkZWZpbmUgUFJFU1RFUkFfTERSX1NUQVRVU19TVEFSVF9GV1x0QklUKDEpXG4gIDc3Olx0I2RlZmluZSBQUkVTVEVSQV9MRFJfU1RBVFVTX0lOVkFMSURfSU1HXHRCSVQoMilcbiAgNzg6XHQjZGVmaW5lIFBSRVNURVJBX0xEUl9TVEFUVVNfTk9NRU1cdEJJVCgzKVxuICA3OTpcdFxuICA4MDpcdCNkZWZpbmUgUFJFU1RFUkFfTERSX1JFR19CQVNFKGZ3KVx0KChmdyktXHUwMDNlbGRyX3JlZ3MpXG4gIDgxOlx0I2RlZmluZSBQUkVTVEVSQV9MRFJfUkVHX0FERFIoZncsIHJlZylcdChQUkVTVEVSQV9MRFJfUkVHX0JBU0UoZncpICYjNDM7IChyZWcpKVxuICA4MjpcdFxuICA4MzpcdC8qIGZ3IGxvYWRlciByZWdpc3RlcnMgKi9cbiAgODQ6XHQjZGVmaW5lIFBSRVNURVJBX0xEUl9SRUFEWV9SRUdcdFx0UFJFU1RFUkFfTERSX1JFR19PRkZTRVQobGRyX3JlYWR5KVxuICA4NTpcdCNkZWZpbmUgUFJFU1RFUkFfTERSX0lNR19TSVpFX1JFR1x0UFJFU1RFUkFfTERSX1JFR19PRkZTRVQobGRyX2ltZ19zaXplKVxuICA4NjpcdCNkZWZpbmUgUFJFU1RFUkFfTERSX0NUTF9SRUdcdFx0UFJFU1RFUkFfTERSX1JFR19PRkZTRVQobGRyX2N0bF9mbGFncylcbiAgODc6XHQjZGVmaW5lIFBSRVNURVJBX0xEUl9CVUZfU0laRV9SRUdcdFBSRVNURVJBX0xEUl9SRUdfT0ZGU0VUKGxkcl9idWZfc2l6ZSlcbiAgODg6XHQjZGVmaW5lIFBSRVNURVJBX0xEUl9CVUZfT0ZGU19SRUdcdFBSRVNURVJBX0xEUl9SRUdfT0ZGU0VUKGxkcl9idWZfb2ZmcylcbiAgODk6XHQjZGVmaW5lIFBSRVNURVJBX0xEUl9CVUZfUkRfUkVHXHRcdFBSRVNURVJBX0xEUl9SRUdfT0ZGU0VUKGxkcl9idWZfcmQpXG4gIDkwOlx0I2RlZmluZSBQUkVTVEVSQV9MRFJfQlVGX1dSX1JFR1x0XHRQUkVTVEVSQV9MRFJfUkVHX09GRlNFVChsZHJfYnVmX3dyKVxuICA5MTpcdCNkZWZpbmUgUFJFU1RFUkFfTERSX1NUQVRVU19SRUdcdFx0UFJFU1RFUkFfTERSX1JFR19PRkZTRVQobGRyX3N0YXR1cylcbiAgOTI6XHRcbiAgOTM6XHQjZGVmaW5lIFBSRVNURVJBX0xEUl9DVExfRExfU1RBUlRcdEJJVCgwKVxuICA5NDpcdFxuICA5NTpcdCNkZWZpbmUgUFJFU1RFUkFfRVZUX1FOVU1fTUFYXHQ0XG4gIDk2Olx0XG4gIDk3Olx0c3RydWN0IHByZXN0ZXJhX2Z3X2V2dHFfcmVncyB7XG4gIDk4Olx0XHR1MzIgcmRfaWR4O1xuICA5OTpcdFx0dTMyIHBhZDE7XG4gMTAwOlx0XHR1MzIgd3JfaWR4O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDA3OjI5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyMTc0CgkJCQkJCQlvdXRwdXQ6IDQ5CgkJCQkJCQl0aG91Z2h0czogMjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipEaXZpbmcgRGVlcGVyIGludG8gYHByZXN0ZXJhX3BjaS5jYCoqCgpPa2F5LCB0aW1lIHRvIHN5c3RlbWF0aWNhbGx5IGdvIHRocm91Z2ggdGhlIHJlbWFpbmluZyBwYXJ0cyBvZiBgcHJlc3RlcmFfcGNpLmNgLiBJJiMzOTt2ZSBhbHJlYWR5IGdvdCBhIGdvb2QgZ3Jhc3Agb24gdGhlIGFyY2hpdGVjdHVyZSwgYnV0IG5vdyBJIG5lZWQgdG8gc29saWRpZnkgbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgZHJpdmVyJiMzOTtzIHNwZWNpZmljcy4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIGZvY3VzaW5nIG9uIHR3byBrZXkgYXJlYXM6IHRoZSBQQ0kgZHJpdmVyIGRldmljZSBJRHMgYW5kIHRoZSBgcHJvYmVgIGZ1bmN0aW9uLiBUaGUgZGV2aWNlIElEcyB3aWxsIGRlZmluZSB3aGljaCBQQ0kgZGV2aWNlcyB0aGlzIGRyaXZlciBpcyBkZXNpZ25lZCB0byBoYW5kbGUsIHdoaWNoIGlzIGNyaXRpY2FsLiBJIG5lZWQgdG8gc2VlIHRoZSByYW5nZSBhbmQgc2NvcGUgb2YgZGV2aWNlcyBpdCBjb3ZlcnMsIGFuZCBpZiBhbnl0aGluZyBzZWVtcyB1bnVzdWFsIG9yIGNvdWxkIGJlIGEgcG90ZW50aWFsIHBvaW50IG9mIGNvbmZsaWN0LiBUaGVuLCB0aGUgYHByb2JlYCBmdW5jdGlvbiBpdHNlbGYuIFRoaXMgaXMgd2hlcmUgdGhlIHJ1YmJlciBtZWV0cyB0aGUgcm9hZC4gSXQmIzM5O3MgdGhlIGNvcmUgb2YgdGhlIGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQgY29ubmVjdGlvbiB0byB0aGUgZHJpdmVyLiBJIG5lZWQgdG8gdHJhY2UgaXRzIGxvZ2ljIHZlcnkgY2FyZWZ1bGx5LCBwYXlpbmcgY2xvc2UgYXR0ZW50aW9uIHRvIHJlc291cmNlIGFsbG9jYXRpb24sIGRldmljZSBjb25maWd1cmF0aW9uLCBpbnRlcnJ1cHQgc2V0dXAsIGFuZCBob3cgaXQgaGFuZGxlcyBwb3RlbnRpYWwgZXJyb3JzLiBJJiMzOTtsbCBiZSBsb29raW5nIGZvciBhbnkgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9ucywgcmVzb3VyY2UgbGVha3MsIG9yIGluZWZmaWNpZW50IG1ldGhvZHMuIEkmIzM5O2xsIG5lZWQgdG8gc2NydXRpbml6ZSBob3cgaXQgaGFuZGxlcyBkaWZmZXJlbnQgaGFyZHdhcmUgcmV2aXNpb25zIG9yIHBvdGVudGlhbCBjb3JuZXIgY2FzZXMuIFRoaXMgbGV2ZWwgb2YgZGV0YWlsIGlzIGtleSBmb3IgYW50aWNpcGF0aW5nIHBvdGVudGlhbCBpc3N1ZXMsIGFuZCwgb2YgY291cnNlLCBtYWtpbmcgc3VyZSBpdCBmb2xsb3dzIGJlc3QgcHJhY3RpY2VzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwNzoyOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfcGNpLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA3NTAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMTAwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA3NTA6XHRcdGRldl9pbmZvKGZ3LVx1MDAzZWRldi5kZXYsIFwmIzM0O0xvYWRpbmcgJXMgLi4uXCYjMzQ7LCBmd19wYXRoKTtcbiA3NTE6XHRcbiA3NTI6XHRcdGZ3LVx1MDAzZXJldl9zdXBwLm1haiA9IHZlcl9tYWo7XG4gNzUzOlx0XHRmdy1cdTAwM2VyZXZfc3VwcC5taW4gPSB2ZXJfbWluO1xuIDc1NDpcdFx0ZnctXHUwMDNlcmV2X3N1cHAuc3ViID0gMDtcbiA3NTU6XHRcbiA3NTY6XHRcdHJldHVybiAwO1xuIDc1NzpcdH1cbiA3NTg6XHRcbiA3NTk6XHRzdGF0aWMgdm9pZCBwcmVzdGVyYV9md19wdXQoc3RydWN0IHByZXN0ZXJhX2Z3ICpmdylcbiA3NjA6XHR7XG4gNzYxOlx0XHRyZWxlYXNlX2Zpcm13YXJlKGZ3LVx1MDAzZWJpbik7XG4gNzYyOlx0fVxuIDc2MzpcdFxuIDc2NDpcdHN0YXRpYyBpbnQgcHJlc3RlcmFfZndfbG9hZChzdHJ1Y3QgcHJlc3RlcmFfZncgKmZ3KVxuIDc2NTpcdHtcbiA3NjY6XHRcdHNpemVfdCBobGVuID0gc2l6ZW9mKHN0cnVjdCBwcmVzdGVyYV9md19oZWFkZXIpO1xuIDc2NzpcdFx0aW50IGVycjtcbiA3Njg6XHRcbiA3Njk6XHRcdGVyciA9IHByZXN0ZXJhX2xkcl93YWl0X3JlZzMyKGZ3LCBQUkVTVEVSQV9MRFJfUkVBRFlfUkVHLFxuIDc3MDpcdFx0XHRcdFx0ICAgICAgUFJFU1RFUkFfTERSX1JFQURZX01BR0lDLFxuIDc3MTpcdFx0XHRcdFx0ICAgICAgNSAqIE1TRUNfUEVSX1NFQyk7XG4gNzcyOlx0XHRpZiAoZXJyKSB7XG4gNzczOlx0XHRcdGRldl9lcnIoZnctXHUwMDNlZGV2LmRldiwgXCYjMzQ7d2FpdGluZyBmb3IgRlcgbG9hZGVyIGlzIHRpbWVkIG91dFwmIzM0Oyk7XG4gNzc0Olx0XHRcdHJldHVybiBlcnI7XG4gNzc1Olx0XHR9XG4gNzc2Olx0XG4gNzc3Olx0XHRmdy1cdTAwM2VsZHJfcmluZ19idWYgPSBmdy1cdTAwM2VsZHJfcmVncyAmIzQzO1xuIDc3ODpcdFx0XHRwcmVzdGVyYV9sZHJfcmVhZChmdywgUFJFU1RFUkFfTERSX0JVRl9PRkZTX1JFRyk7XG4gNzc5Olx0XG4gNzgwOlx0XHRmdy1cdTAwM2VsZHJfYnVmX2xlbiA9XG4gNzgxOlx0XHRcdHByZXN0ZXJhX2xkcl9yZWFkKGZ3LCBQUkVTVEVSQV9MRFJfQlVGX1NJWkVfUkVHKTtcbiA3ODI6XHRcbiA3ODM6XHRcdGZ3LVx1MDAzZWxkcl93cl9pZHggPSAwO1xuIDc4NDpcdFxuIDc4NTpcdFx0ZXJyID0gcHJlc3RlcmFfZndfZ2V0KGZ3KTtcbiA3ODY6XHRcdGlmIChlcnIpXG4gNzg3Olx0XHRcdHJldHVybiBlcnI7XG4gNzg4Olx0XG4gNzg5Olx0XHRlcnIgPSBwcmVzdGVyYV9md19oZHJfcGFyc2UoZncpO1xuIDc5MDpcdFx0aWYgKGVycikge1xuIDc5MTpcdFx0XHRkZXZfZXJyKGZ3LVx1MDAzZWRldi5kZXYsIFwmIzM0O0ZXIGltYWdlIGhlYWRlciBpcyBpbnZhbGlkXFxuXCYjMzQ7KTtcbiA3OTI6XHRcdFx0Z290byBvdXRfcmVsZWFzZTtcbiA3OTM6XHRcdH1cbiA3OTQ6XHRcbiA3OTU6XHRcdHByZXN0ZXJhX2xkcl93cml0ZShmdywgUFJFU1RFUkFfTERSX0lNR19TSVpFX1JFRywgZnctXHUwMDNlYmluLVx1MDAzZXNpemUgLSBobGVuKTtcbiA3OTY6XHRcdHByZXN0ZXJhX2xkcl93cml0ZShmdywgUFJFU1RFUkFfTERSX0NUTF9SRUcsIFBSRVNURVJBX0xEUl9DVExfRExfU1RBUlQpO1xuIDc5NzpcdFxuIDc5ODpcdFx0ZXJyID0gcHJlc3RlcmFfbGRyX2Z3X3NlbmQoZncsIGZ3LVx1MDAzZWJpbi1cdTAwM2VkYXRhICYjNDM7IGhsZW4sXG4gNzk5Olx0XHRcdFx0XHQgICBmdy1cdTAwM2ViaW4tXHUwMDNlc2l6ZSAtIGhsZW4pO1xuIDgwMDpcdFxuIDgwMTpcdG91dF9yZWxlYXNlOlxuIDgwMjpcdFx0cHJlc3RlcmFfZndfcHV0KGZ3KTtcbiA4MDM6XHRcdHJldHVybiBlcnI7XG4gODA0Olx0fVxuIDgwNTpcdFxuIDgwNjpcdHN0YXRpYyBib29sIHByZXN0ZXJhX3BjaV9wcF91c2VfYmFyMihzdHJ1Y3QgcGNpX2RldiAqcGRldilcbiA4MDc6XHR7XG4gODA4Olx0XHRzd2l0Y2ggKHBkZXYtXHUwMDNlZGV2aWNlKSB7XG4gODA5Olx0XHRjYXNlIFBSRVNURVJBX0RFVl9JRF85OERYNzMxMk06XG4gODEwOlx0XHRjYXNlIFBSRVNURVJBX0RFVl9JRF85OERYMzUwMDpcbiA4MTE6XHRcdGNhc2UgUFJFU1RFUkFfREVWX0lEXzk4RFgzNTAxOlxuIDgxMjpcdFx0Y2FzZSBQUkVTVEVSQV9ERVZfSURfOThEWDM1MTA6XG4gODEzOlx0XHRjYXNlIFBSRVNURVJBX0RFVl9JRF85OERYMzUyMDpcbiA4MTQ6XHRcdFx0cmV0dXJuIHRydWU7XG4gODE1Olx0XG4gODE2Olx0XHRkZWZhdWx0OlxuIDgxNzpcdFx0XHRyZXR1cm4gZmFsc2U7XG4gODE4Olx0XHR9XG4gODE5Olx0fVxuIDgyMDpcdFxuIDgyMTpcdHN0YXRpYyB1MzIgcHJlc3RlcmFfcGNpX3BwX2JhcjJfb2ZmcyhzdHJ1Y3QgcGNpX2RldiAqcGRldilcbiA4MjI6XHR7XG4gODIzOlx0XHRpZiAocGNpX3Jlc291cmNlX2xlbihwZGV2LCAyKSA9PSAweDEwMDAwMDApXG4gODI0Olx0XHRcdHJldHVybiAweDA7XG4gODI1Olx0XHRlbHNlXG4gODI2Olx0XHRcdHJldHVybiAocGNpX3Jlc291cmNlX2xlbihwZGV2LCAyKSAvIDIpO1xuIDgyNzpcdH1cbiA4Mjg6XHRcbiA4Mjk6XHRzdGF0aWMgdTMyIHByZXN0ZXJhX3BjaV9md19iYXIyX29mZnMoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4gODMwOlx0e1xuIDgzMTpcdFx0aWYgKHBjaV9yZXNvdXJjZV9sZW4ocGRldiwgMikgPT0gMHgxMDAwMDAwKVxuIDgzMjpcdFx0XHRyZXR1cm4gMHg0MDAwMDA7XG4gODMzOlx0XHRlbHNlXG4gODM0Olx0XHRcdHJldHVybiAweDA7XG4gODM1Olx0fVxuIDgzNjpcdFxuIDgzNzpcdHN0YXRpYyBpbnQgcHJlc3RlcmFfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuIDgzODpcdFx0XHRcdCAgICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbiA4Mzk6XHR7XG4gODQwOlx0XHRjb25zdCBjaGFyICpkcml2ZXJfbmFtZSA9IGRldl9kcml2ZXJfc3RyaW5nKFx1MDAyNnBkZXYtXHUwMDNlZGV2KTtcbiA4NDE6XHRcdHU4IF9faW9tZW0gKm1lbV9hZGRyLCAqcHBfYWRkciA9IE5VTEw7XG4gODQyOlx0XHRzdHJ1Y3QgcHJlc3RlcmFfZncgKmZ3O1xuIDg0MzpcdFx0aW50IGVycjtcbiA4NDQ6XHRcbiA4NDU6XHRcdGVyciA9IHBjaW1fZW5hYmxlX2RldmljZShwZGV2KTtcbiA4NDY6XHRcdGlmIChlcnIpIHtcbiA4NDc6XHRcdFx0ZGV2X2VycihcdTAwMjZwZGV2LVx1MDAzZWRldiwgXCYjMzQ7cGNpX2VuYWJsZV9kZXZpY2UgZmFpbGVkXFxuXCYjMzQ7KTtcbiA4NDg6XHRcdFx0Z290byBlcnJfcGNpX2VuYWJsZV9kZXZpY2U7XG4gODQ5Olx0XHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDA3OjI5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0MDk1CgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgcmV2aWV3aW5nIGBwcmVzdGVyYV9wY2kuY2A6CgoqKkRpdmluZyBpbnRvIHRoZSBQQ0kgRGV2aWNlIFRhYmxlIGluIHByZXN0ZXJhX3BjaS5jKioKCkFscmlnaHQsIHRpbWUgdG8gZGlnIGRlZXBlciBpbnRvIHRoaXMgYHByZXN0ZXJhX3BjaS5jYCBmaWxlLiBJIG5lZWQgdG8gZ2V0IGEgY2xlYXIgcGljdHVyZSBvZiBob3cgdGhlIFBDSSBkZXZpY2VzIGFyZSBoYW5kbGVkLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gZ29pbmcgdG8gZm9jdXMgb24gd2hlcmUgdGhlIFBDSSBkZXZpY2UgdGFibGUgaXMgZGVmaW5lZCBhbmQgcG9wdWxhdGVkLiBVbmRlcnN0YW5kaW5nIHRoaXMgdGFibGUgaXMgYWJzb2x1dGVseSBjcnVjaWFsIHRvIGdyYXNwaW5nIGhvdyB0aGUgZHJpdmVyIGludGVyYWN0cyB3aXRoIHRoZSBoYXJkd2FyZS4gSSB3YW50IHRvIHNlZSBob3cgdGhlIHN5c3RlbSBpZGVudGlmaWVzIGFuZCBjb25maWd1cmVzIHRoZXNlIFByZXN0ZXJhLXNwZWNpZmljIGRldmljZXMgb24gdGhlIFBDSSBidXMuIExldCYjMzk7cyBzZWUgaG93IHRoZSByZXN0IG9mIHRoaXMgY29kZSBsYXlzIHRoaW5ncyBvdXQuIEhvcGVmdWxseSwgaXQmIzM5O3Mgd2VsbC1jb21tZW50ZWQgYW5kIGVhc3kgdG8gbmF2aWdhdGUhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDA3OjI5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9wY2kuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDkxMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA2MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgOTEwOlx0XHRJTklUX1dPUksoXHUwMDI2ZnctXHUwMDNlZXZ0X3dvcmssIHByZXN0ZXJhX2Z3X2V2dF93b3JrX2ZuKTtcbiA5MTE6XHRcbiA5MTI6XHRcdGVyciA9IHBjaV9hbGxvY19pcnFfdmVjdG9ycyhwZGV2LCAxLCAxLCBQQ0lfSVJRX01TSSk7XG4gOTEzOlx0XHRpZiAoZXJyIFx1MDAzYyAwKSB7XG4gOTE0Olx0XHRcdGRldl9lcnIoXHUwMDI2cGRldi1cdTAwM2VkZXYsIFwmIzM0O01TSSBJUlEgaW5pdCBmYWlsZWRcXG5cJiMzNDspO1xuIDkxNTpcdFx0XHRnb3RvIGVycl9pcnFfYWxsb2M7XG4gOTE2Olx0XHR9XG4gOTE3Olx0XG4gOTE4Olx0XHRlcnIgPSByZXF1ZXN0X2lycShwY2lfaXJxX3ZlY3RvcihwZGV2LCAwKSwgcHJlc3RlcmFfcGNpX2lycV9oYW5kbGVyLFxuIDkxOTpcdFx0XHRcdCAgMCwgZHJpdmVyX25hbWUsIGZ3KTtcbiA5MjA6XHRcdGlmIChlcnIpIHtcbiA5MjE6XHRcdFx0ZGV2X2VycihcdTAwMjZwZGV2LVx1MDAzZWRldiwgXCYjMzQ7ZmFpbCB0byByZXF1ZXN0IElSUVxcblwmIzM0Oyk7XG4gOTIyOlx0XHRcdGdvdG8gZXJyX3JlcXVlc3RfaXJxO1xuIDkyMzpcdFx0fVxuIDkyNDpcdFxuIDkyNTpcdFx0ZXJyID0gcHJlc3RlcmFfZGV2aWNlX3JlZ2lzdGVyKFx1MDAyNmZ3LVx1MDAzZWRldik7XG4gOTI2Olx0XHRpZiAoZXJyKVxuIDkyNzpcdFx0XHRnb3RvIGVycl9wcmVzdGVyYV9kZXZfcmVnaXN0ZXI7XG4gOTI4Olx0XG4gOTI5Olx0XHRyZXR1cm4gMDtcbiA5MzA6XHRcbiA5MzE6XHRlcnJfcHJlc3RlcmFfZGV2X3JlZ2lzdGVyOlxuIDkzMjpcdFx0ZnJlZV9pcnEocGNpX2lycV92ZWN0b3IocGRldiwgMCksIGZ3KTtcbiA5MzM6XHRlcnJfcmVxdWVzdF9pcnE6XG4gOTM0Olx0XHRwY2lfZnJlZV9pcnFfdmVjdG9ycyhwZGV2KTtcbiA5MzU6XHRlcnJfaXJxX2FsbG9jOlxuIDkzNjpcdFx0ZGVzdHJveV93b3JrcXVldWUoZnctXHUwMDNld3EpO1xuIDkzNzpcdGVycl93cV9hbGxvYzpcbiA5Mzg6XHRcdHByZXN0ZXJhX2Z3X3VuaW5pdChmdyk7XG4gOTM5Olx0ZXJyX3ByZXN0ZXJhX2Z3X2luaXQ6XG4gOTQwOlx0ZXJyX3BjaV9kZXZfYWxsb2M6XG4gOTQxOlx0ZXJyX3BwX2lvcmVtYXA6XG4gOTQyOlx0ZXJyX21lbV9pb3JlbWFwOlxuIDk0MzpcdGVycl9kbWFfbWFzazpcbiA5NDQ6XHRlcnJfcGNpX3JlcXVlc3RfcmVnaW9uczpcbiA5NDU6XHRlcnJfcGNpX2VuYWJsZV9kZXZpY2U6XG4gOTQ2Olx0XHRyZXR1cm4gZXJyO1xuIDk0NzpcdH1cbiA5NDg6XHRcbiA5NDk6XHRzdGF0aWMgdm9pZCBwcmVzdGVyYV9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuIDk1MDpcdHtcbiA5NTE6XHRcdHN0cnVjdCBwcmVzdGVyYV9mdyAqZncgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7XG4gOTUyOlx0XG4gOTUzOlx0XHRwcmVzdGVyYV9kZXZpY2VfdW5yZWdpc3RlcihcdTAwMjZmdy1cdTAwM2VkZXYpO1xuIDk1NDpcdFx0ZnJlZV9pcnEocGNpX2lycV92ZWN0b3IocGRldiwgMCksIGZ3KTtcbiA5NTU6XHRcdHBjaV9mcmVlX2lycV92ZWN0b3JzKHBkZXYpO1xuIDk1NjpcdFx0ZGVzdHJveV93b3JrcXVldWUoZnctXHUwMDNld3EpO1xuIDk1NzpcdFx0cHJlc3RlcmFfZndfdW5pbml0KGZ3KTtcbiA5NTg6XHR9XG4gOTU5Olx0XG4gOTYwOlx0c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHByZXN0ZXJhX3BjaV9kZXZpY2VzW10gPSB7XG4gOTYxOlx0XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NQVJWRUxMLCBQUkVTVEVSQV9ERVZfSURfQUMzWF85OERYXzU1KSB9LFxuIDk2MjpcdFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUFSVkVMTCwgUFJFU1RFUkFfREVWX0lEX0FDM1hfOThEWF82NSkgfSxcbiA5NjM6XHRcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01BUlZFTEwsIFBSRVNURVJBX0RFVl9JRF9BTERSSU4yKSB9LFxuIDk2NDpcdFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUFSVkVMTCwgUFJFU1RFUkFfREVWX0lEXzk4RFg3MzEyTSkgfSxcbiA5NjU6XHRcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01BUlZFTEwsIFBSRVNURVJBX0RFVl9JRF85OERYMzUwMCkgfSxcbiA5NjY6XHRcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01BUlZFTEwsIFBSRVNURVJBX0RFVl9JRF85OERYMzUwMSkgfSxcbiA5Njc6XHRcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01BUlZFTEwsIFBSRVNURVJBX0RFVl9JRF85OERYMzUxMCkgfSxcbiA5Njg6XHRcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01BUlZFTEwsIFBSRVNURVJBX0RFVl9JRF85OERYMzUyMCkgfSxcbiA5Njk6XHRcdHsgfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwNzoyOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTQ3NgoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDE5OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSAmIzM0O1dvcnRoRnV6emluZyYjMzQ7IENyaXRlcmlhKioKCk9rYXksIGxldCYjMzk7cyBzZWUsIHRoZSBpbnN0cnVjdGlvbnMgaW4gU2VjdGlvbiAyIHJlZ2FyZGluZyB3aGVuICpub3QqIHRvIGZ1enogYXJlIGNsZWFyLiBXZSYjMzk7cmUgbG9va2luZyBhdCAmIzM0O05FR0FUSVZFIENSSVRFUklBLCYjMzQ7IHNwZWNpZmljYWxseSB3aGVuIHdlIHNob3VsZCByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuIFRoZSByZWxldmFudCBjb25kaXRpb24gaGVyZSBpcyAmIzM0O1N0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZS4mIzM0OyBJdCBzcGVjaWZpZXMgdmVuZG9yLXNwZWNpZmljIGRyaXZlcnMgZm9yIHRoaW5ncyBsaWtlIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgYW5kIEdQVXMsIHRoYXQgcmVxdWlyZSBzcGVjaWFsaXplZCBwaHlzaWNhbCBoYXJkd2FyZSAoQVNJQy9QQ0llIGNhcmRzKSB0aGF0ICphcmVuJiMzOTt0KiBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgoKTm93LCBJIGtub3cgdGhlIE1hcnZlbGwgUHJlc3RlcmEgc3dpdGNoIEFTSUNzIGZhbWlseSwgbGlrZSB0aGUgQWxkcmluMiBhbmQgOThEWCogc2VyaWVzLCBhbmQgQUMzWCwgZmFsbHMgc3F1YXJlbHkgaW50byB0aGF0IGNhdGVnb3J5LiBJdOKAmXMgYSB2ZW5kb3Itc3BlY2lmaWMgc3dpdGNoIEFTSUMgZHJpdmVyLCBtZWFuaW5nIGl0IGFic29sdXRlbHkgcmVxdWlyZXMgc3BlY2lmaWMgaGFyZHdhcmUgKHRoZSBwaHlzaWNhbCBBU0lDcyBhbmQgUENJZSBjYXJkcykgYW5kIGl0cyBmaXJtd2FyZSB0byBmdW5jdGlvbiBwcm9wZXJseS4gV2UgY2FuJiMzOTt0IHJlYWRpbHkgc2ltdWxhdGUgb3IgZW11bGF0ZSB0aGlzIGVudmlyb25tZW50IHVzaW5nIHN0YW5kYXJkIFFFTVUgb3IgaW4gYSB0b29sIGxpa2Ugc3l6a2FsbGVyLiBUaGVyZWZvcmUsIHRoaXMgZml0cyB0aGUgJiMzNDtzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmUmIzM0OyBjcml0ZXJpYSBwZXJmZWN0bHkuIEdpdmVuIHRoYXQsIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlcmUgYXJlbiYjMzk7dCBhbnkgb3RoZXIgcmVsYXRlZCBmaWxlcyBvciBtb2R1bGVzIHRoYXQgbWlnaHQgY29tcGxpY2F0ZSB0aGUgZGVjaXNpb24sIGJ1dCBteSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgdGhhdCB0aGlzIGlzIGRlZmluaXRlbHkgbm90IGZ1enphYmxlIGluIG91ciBjdXJyZW50IHNldHVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwNzoyOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmNvZGVzZWFyY2gtZGlyLWluZGV4PC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtEaXImIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGVzJiMzNDs6IFsKICAgICYjMzQ7cHJlc3RlcmEuaCYjMzQ7LAogICAgJiMzNDtwcmVzdGVyYV9hY2wuYyYjMzQ7LAogICAgJiMzNDtwcmVzdGVyYV9hY2wuaCYjMzQ7LAogICAgJiMzNDtwcmVzdGVyYV9jb3VudGVyLmMmIzM0OywKICAgICYjMzQ7cHJlc3RlcmFfY291bnRlci5oJiMzNDssCiAgICAmIzM0O3ByZXN0ZXJhX2RldmxpbmsuYyYjMzQ7LAogICAgJiMzNDtwcmVzdGVyYV9kZXZsaW5rLmgmIzM0OywKICAgICYjMzQ7cHJlc3RlcmFfZHNhLmMmIzM0OywKICAgICYjMzQ7cHJlc3RlcmFfZHNhLmgmIzM0OywKICAgICYjMzQ7cHJlc3RlcmFfZXRodG9vbC5jJiMzNDssCiAgICAmIzM0O3ByZXN0ZXJhX2V0aHRvb2wuaCYjMzQ7LAogICAgJiMzNDtwcmVzdGVyYV9mbG93LmMmIzM0OywKICAgICYjMzQ7cHJlc3RlcmFfZmxvdy5oJiMzNDssCiAgICAmIzM0O3ByZXN0ZXJhX2Zsb3dlci5jJiMzNDssCiAgICAmIzM0O3ByZXN0ZXJhX2Zsb3dlci5oJiMzNDssCiAgICAmIzM0O3ByZXN0ZXJhX2h3LmMmIzM0OywKICAgICYjMzQ7cHJlc3RlcmFfaHcuaCYjMzQ7LAogICAgJiMzNDtwcmVzdGVyYV9tYWluLmMmIzM0OywKICAgICYjMzQ7cHJlc3RlcmFfbWF0Y2hhbGwuYyYjMzQ7LAogICAgJiMzNDtwcmVzdGVyYV9tYXRjaGFsbC5oJiMzNDssCiAgICAmIzM0O3ByZXN0ZXJhX3BjaS5jJiMzNDssCiAgICAmIzM0O3ByZXN0ZXJhX3JvdXRlci5jJiMzNDssCiAgICAmIzM0O3ByZXN0ZXJhX3JvdXRlcl9ody5jJiMzNDssCiAgICAmIzM0O3ByZXN0ZXJhX3JvdXRlcl9ody5oJiMzNDssCiAgICAmIzM0O3ByZXN0ZXJhX3J4dHguYyYjMzQ7LAogICAgJiMzNDtwcmVzdGVyYV9yeHR4LmgmIzM0OywKICAgICYjMzQ7cHJlc3RlcmFfc3Bhbi5jJiMzNDssCiAgICAmIzM0O3ByZXN0ZXJhX3NwYW4uaCYjMzQ7LAogICAgJiMzNDtwcmVzdGVyYV9zd2l0Y2hkZXYuYyYjMzQ7LAogICAgJiMzNDtwcmVzdGVyYV9zd2l0Y2hkZXYuaCYjMzQ7CiAgXSwKICAmIzM0O1N1YmRpcnMmIzM0OzogbnVsbAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDA3OjI5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2Mjc2CgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogNTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgaWYgSSB3ZXJlIHRoaW5raW5nIHRoZXNlIHRob3VnaHRzOgoKKipBbmFseXppbmcgdGhlIEhhcmR3YXJlIENvdW50ZXIgRnVuY3Rpb24qKgoKT2theSwgc28gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGlzIGBwcmVzdGVyYV9od19jb3VudGVyc19nZXRgIGZ1bmN0aW9uLiBTcGVjaWZpY2FsbHksIGl0IHNlZW1zIGl0JiMzOTtzIGJlZW4gbW9kaWZpZWQgcmVjZW50bHkuIFJpZ2h0LCBJIHJlbWVtYmVyIHRoYXQgYHByZXN0ZXJhX2h3X2NvdW50ZXJzX2dldGAgaXMgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfaHcuY2AuIFRpbWUgdG8gZGl2ZSBpbnRvIHRoZSBjb2RlLiBMZXQmIzM5O3MgZ2V0IHRoYXQgZmlsZSBvcGVuIGFuZCByZWFkIHRocm91Z2ggdGhhdCBzcGVjaWZpYyBmdW5jdGlvbiBpbiBgcHJlc3RlcmFfaHcuY2AuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQmIzM5O3MgYmVlbiBjaGFuZ2VkIGFuZCBob3cgaXQgaW1wYWN0cyB0aGUgb3ZlcmFsbCBmbG93LiBMZXQmIzM5O3Mgc2VlLi4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDA3OjI5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9ody5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjMxMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA0MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsyMzEwOlx0XHRzdHJ1Y3QgcHJlc3RlcmFfbXNnX2NvdW50ZXJfcmVzcCAqcmVzcDtcbjIzMTE6XHRcdHN0cnVjdCBwcmVzdGVyYV9tc2dfY291bnRlcl9yZXEgcmVxID0ge1xuMjMxMjpcdFx0XHQuYmxvY2tfaWQgPSBfX2NwdV90b19sZTMyKGlkeCksXG4yMzEzOlx0XHRcdC5udW1fY291bnRlcnMgPSBfX2NwdV90b19sZTMyKCpsZW4pLFxuMjMxNDpcdFx0fTtcbjIzMTU6XHRcdHNpemVfdCBzaXplID0gc3RydWN0X3NpemUocmVzcCwgc3RhdHMsICpsZW4pO1xuMjMxNjpcdFx0aW50IGVyciwgaTtcbjIzMTc6XHRcbjIzMTg6XHRcdHJlc3AgPSBrbWFsbG9jKHNpemUsIEdGUF9LRVJORUwpO1xuMjMxOTpcdFx0aWYgKCFyZXNwKVxuMjMyMDpcdFx0XHRyZXR1cm4gLUVOT01FTTtcbjIzMjE6XHRcbjIzMjI6XHRcdGVyciA9IHByZXN0ZXJhX2NtZF9yZXQoc3csIFBSRVNURVJBX0NNRF9UWVBFX0NPVU5URVJfR0VULFxuMjMyMzpcdFx0XHRcdCAgICAgICBcdTAwMjZyZXEuY21kLCBzaXplb2YocmVxKSwgXHUwMDI2cmVzcC1cdTAwM2VyZXQsIHNpemUpO1xuMjMyNDpcdFx0aWYgKGVycilcbjIzMjU6XHRcdFx0Z290byBmcmVlX2J1ZmY7XG4yMzI2Olx0XG4yMzI3Olx0XHRpZiAoX19sZTMyX3RvX2NwdShyZXNwLVx1MDAzZW51bV9jb3VudGVycykgXHUwMDNlICpsZW4pIHtcbjIzMjg6XHRcdFx0ZXJyID0gLUVJTlZBTDtcbjIzMjk6XHRcdFx0Z290byBmcmVlX2J1ZmY7XG4yMzMwOlx0XHR9XG4yMzMxOlx0XG4yMzMyOlx0XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBfX2xlMzJfdG9fY3B1KHJlc3AtXHUwMDNlbnVtX2NvdW50ZXJzKTsgaSYjNDM7JiM0MzspIHtcbjIzMzM6XHRcdFx0c3RhdHNbaV0ucGFja2V0cyAmIzQzOz0gX19sZTY0X3RvX2NwdShyZXNwLVx1MDAzZXN0YXRzW2ldLnBhY2tldHMpO1xuMjMzNDpcdFx0XHRzdGF0c1tpXS5ieXRlcyAmIzQzOz0gX19sZTY0X3RvX2NwdShyZXNwLVx1MDAzZXN0YXRzW2ldLmJ5dGVzKTtcbjIzMzU6XHRcdH1cbjIzMzY6XHRcbjIzMzc6XHRcdCpsZW4gPSBfX2xlMzJfdG9fY3B1KHJlc3AtXHUwMDNlbnVtX2NvdW50ZXJzKTtcbjIzMzg6XHRcdCpkb25lID0gX19sZTMyX3RvX2NwdShyZXNwLVx1MDAzZWRvbmUpO1xuMjMzOTpcdFxuMjM0MDpcdGZyZWVfYnVmZjpcbjIzNDE6XHRcdGtmcmVlKHJlc3ApO1xuMjM0MjpcdFx0cmV0dXJuIGVycjtcbjIzNDM6XHR9XG4yMzQ0Olx0XG4yMzQ1Olx0aW50IHByZXN0ZXJhX2h3X2NvdW50ZXJfYmxvY2tfZ2V0KHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3LFxuMjM0NjpcdFx0XHRcdFx0ICB1MzIgY2xpZW50LCB1MzIgKmJsb2NrX2lkLCB1MzIgKm9mZnNldCxcbjIzNDc6XHRcdFx0XHRcdCAgdTMyICpudW1fY291bnRlcnMpXG4yMzQ4Olx0e1xuMjM0OTpcdFx0c3RydWN0IHByZXN0ZXJhX21zZ19jb3VudGVyX3Jlc3AgcmVzcDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMDc6Mjk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjcxODQKCQkJCQkJCW91dHB1dDogMTkKCQkJCQkJCXRob3VnaHRzOiAzNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipDaGVja2luZyBmb3IgVmlydHVhbCBQUkVTVEVSQSBOZXR3b3JrIERldmljZXMqKgoKT2theSwgbGV0JiMzOTtzIGp1c3QgbWFrZSBzdXJlIEkmIzM5O20gbm90IG1pc3NpbmcgYW55dGhpbmcgb2J2aW91cyBoZXJlLiBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgaWYgdGhlcmUmIzM5O3MgYW55IGV4aXN0aW5nIHZpcnR1YWwgb3IgbW9jayBuZXR3b3JrIGRldmljZSBzdXBwb3J0IHdpdGhpbiB0aGUga2VybmVsIHRyZWUgc3BlY2lmaWNhbGx5IGZvciBQcmVzdGVyYS4gSSB2YWd1ZWx5IHJlY2FsbCBzb21ldGhpbmcsIGJ1dCBtZW1vcnkgaXNuJiMzOTt0IGFsd2F5cyByZWxpYWJsZS4gVGhlIG1vc3QgbG9naWNhbCBmaXJzdCBzdGVwIGlzIHRvIHBlcmZvcm0gYSB0YXJnZXRlZCBzZWFyY2guIEkmIzM5O2xsIGZvY3VzIG15IHF1ZXJ5IHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0YCBkaXJlY3RvcnksIGJlY2F1c2UgdGhhdCYjMzk7cyB3aGVyZSBhbGwgdGhlIG5ldHdvcmstcmVsYXRlZCBkcml2ZXJzIGxpdmUuIEEgc2ltcGxlIGtleXdvcmQgc2VhcmNoIGZvciAmIzM0O1BSRVNURVJBJiMzNDsgc2hvdWxkIHlpZWxkIHRoZSByZWxldmFudCByZXN1bHRzIC0gZmluZ2VycyBjcm9zc2VkLiBIb3BlZnVsbHksIGl0JiMzOTtsbCB0dXJuIHVwIHNvbWV0aGluZyBJIGNhbiB3b3JrIHdpdGguIFRpbWUgdG8gc2VlIHdoYXQgdGhlIGtlcm5lbCByZXZlYWxzIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwNzoyOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtDT05GSUdfUFJFU1RFUkEmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfUFJFU1RFUkEpXHQmIzQzOz0gcHJlc3RlcmEub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZS0zLXByZXN0ZXJhLW9ianNcdFx0Oj0gcHJlc3RlcmFfbWFpbi5vIHByZXN0ZXJhX2h3Lm8gcHJlc3RlcmFfZHNhLm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL01ha2VmaWxlLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX1BSRVNURVJBX1BDSSlcdCYjNDM7PSBwcmVzdGVyYV9wY2kub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwNzoyOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNzU2MwoJCQkJCQkJb3V0cHV0OiAxMTEKCQkJCQkJCXRob3VnaHRzOiAyNjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudDogVGhpcyBDb2RlIGlzIFVuZnV6emFibGUqKgoKT2theSwgaGVyZSYjMzk7cyB0aGUgc2l0dWF0aW9uLiBJJiMzOTt2ZSBiZWVuIHRhc2tlZCB3aXRoIGFzc2Vzc2luZyBpZiB0aGlzIHNwZWNpZmljIGNvZGUgcmVsYXRlZCB0byB0aGUgTWFydmVsbCBQcmVzdGVyYSBzd2l0Y2ggZHJpdmVyLCBgUFJFU1RFUkFfUENJYCwgaXMgc3VpdGFibGUgZm9yIGZ1enppbmcuIEFmdGVyIGRpZ2dpbmcgaW4sIEkmIzM5O3ZlIGNvbWUgdG8gdGhlIGNvbmNsdXNpb24gdGhhdCBpdCBpc24mIzM5O3QsIGFuZCBoZXJlJiMzOTtzIHdoeS4KClRoZSBvbmx5IGludGVyZmFjZSBkcml2ZXIgaW4gcGxheSBoZXJlIGlzIGBQUkVTVEVSQV9QQ0lgLCB3aGljaCBpcyBzcGVjaWZpY2FsbHkgZGVzaWduZWQgdG8gaW50ZXJhY3Qgd2l0aCBNYXJ2ZWxsIFByZXN0ZXJhIFN3aXRjaCBBU0lDcy4gSXQgdGFsa3MgdG8gdGhlIGhhcmR3YXJlIHRocm91Z2ggUENJIEJBUnMgYW5kIGxvYWRzIGEgcHJvcHJpZXRhcnkgZmlybXdhcmUgZmlsZSwgYG12c3dfcHJlc3RlcmFfZncqLmltZ2AuIFRoZSBiaWcsIGdsYXJpbmcgcHJvYmxlbT8gVGhpcyBoYXJkd2FyZSBzZXR1cCBpc24mIzM5O3QgZW11bGF0ZWQgaW4gdGhlIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLgoKU28sIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24gc3lzdGVtYXRpY2FsbHkuIEkgbmVlZGVkIHRvIGVuc3VyZSB0aGlzIHdhc24mIzM5O3QgZ29pbmcgdG8gaGF2ZSBhIHBvc2l0aXZlIGltcGFjdCBvbiBhIGZ1enouCgpUaGUgbmVnYXRpdmUgY3JpdGVyaWEgSSBjaGVja2VkIHdlcmUgdGhpbmdzIGxpa2U6IGhhcmR3YXJlIGRyaXZlcnMgdGhhdCBuZWVkIHBoeXNpY2FsIEFTSUNzLCBQQ0llIGNhcmRzLCBTbWFydE5JQ3MsIG9yIEdQVXMgKGxpa2UgYG1seHN3YCwgYHBkc19jb3JlYCwgYHFlZGAsIGBpb25pY2AsIG9yIGBhbWRncHVgKS4gVGhvc2UgYXJlIG5vLWdvcywgYW5kIGd1ZXNzIHdoYXQ/IFRoaXMgZHJpdmVyICphYnNvbHV0ZWx5KiBmYWxscyBpbnRvIHRoYXQgY2F0ZWdvcnkuCgpNeSBjb25jbHVzaW9uIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQ6IHRoZSBjb2RlIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmNgLCBpcyBtb2RpZnlpbmcgdGhlIE1hcnZlbGwgUHJlc3RlcmEgc3dpdGNoIGRyaXZlci4gSXQgcmVxdWlyZXMgKmFjdHVhbCogTWFydmVsbCBQcmVzdGVyYSBTd2l0Y2ggQVNJQyBQQ0llIGhhcmR3YXJlIGFuZCBwcm9wcmlldGFyeSBmaXJtd2FyZSB0byBmdW5jdGlvbi4gQmVjYXVzZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCByZXByZXNlbnRlZCBpbiBhIHN0YW5kYXJkIHZpcnR1YWwgZW52aXJvbm1lbnQsIHRoZSBjb2RlIEkmIzM5O20gbG9va2luZyBhdCBpcyAqc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlKiBmb3IgZnV6emluZy4KClRodXMsIEkmIzM5O20gc2V0dGluZyBgV29ydGhGdXp6aW5nYCB0byBgZmFsc2VgLiBUaGVyZSBhcmUgbm8gc3BlY2lmaWMgY29uZmlndXJhdGlvbiBvcHRpb25zIHRvIGVuYWJsZSwgYW5kIG5vIHNwZWNpZmljIHN5bWJvbHMgdG8gZm9jdXMgb24uIFRoZSBkcml2ZXIgaXMgb2ZmLWxpbWl0cyB0byBmdXp6aW5nLiBUaW1lIHRvIGNhbGwgaXQgaW4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDA3OjI5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgbW9kaWZpZWQgY29kZSBpcyBsb2NhdGVkIGluIHRoZSBNYXJ2ZWxsIFByZXN0ZXJhIHN3aXRjaCBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfaHcuYyksIHdoaWNoIHN1cHBvcnRzIE1hcnZlbGwgUHJlc3RlcmEgc3dpdGNoIEFTSUNzIG92ZXIgUENJLiBUaGlzIGRyaXZlciByZXF1aXJlcyBzcGVjaWZpYyBwaHlzaWNhbCBBU0lDIGhhcmR3YXJlIGFuZCBmaXJtd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIG1vZGlmaWVkIGNvZGUgaXMgbG9jYXRlZCBpbiB0aGUgTWFydmVsbCBQcmVzdGVyYSBzd2l0Y2ggZHJpdmVyIChkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmMpLCB3aGljaCBzdXBwb3J0cyBNYXJ2ZWxsIFByZXN0ZXJhIHN3aXRjaCBBU0lDcyBvdmVyIFBDSS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgc3BlY2lmaWMgcGh5c2ljYWwgQVNJQyBoYXJkd2FyZSBhbmQgZmlybXdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwNzoyOTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDktMDdUMDc6Mjk6MjEuNTU0NDgwNTAxWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzU4NjY5NzU5OTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBtb2RpZmllZCBjb2RlIGlzIGxvY2F0ZWQgaW4gdGhlIE1hcnZlbGwgUHJlc3RlcmEgc3dpdGNoIGRyaXZlciAoZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9ody5jKSwgd2hpY2ggc3VwcG9ydHMgTWFydmVsbCBQcmVzdGVyYSBzd2l0Y2ggQVNJQ3Mgb3ZlciBQQ0kuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIEFTSUMgaGFyZHdhcmUgYW5kIGZpcm13YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMDc6Mjk6MjEuNTU0NDg2NTFaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc3MjQxOTY3OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDE5NThiYmIzZTZkOGJiNWIyM2E3NmIwMmU2N2ZiNmJlZDM1YzBkYjNcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIE1vbiBTZXAgNyAwNzoyOToyMCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmNcXG5pbmRleCA3Njk1Y2JiMmNlNjI2Li5jNGNiNWYyMjg5M2M5IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfaHcuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfaHcuY1xcbkBAIC0yMzI0LDYgKzIzMjQsMTEgQEAgaW50IHByZXN0ZXJhX2h3X2NvdW50ZXJzX2dldChzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdywgdTMyIGlkeCxcXG4gXFx0aWYgKGVycilcXG4gXFx0XFx0Z290byBmcmVlX2J1ZmY7XFxuIFxcbitcXHRpZiAoX19sZTMyX3RvX2NwdShyZXNwLVxcdTAwM2VudW1fY291bnRlcnMpIFxcdTAwM2UgKmxlbikge1xcbitcXHRcXHRlcnIgPSAtRUlOVkFMO1xcbitcXHRcXHRnb3RvIGZyZWVfYnVmZjtcXG4rXFx0fVxcbitcXG4gXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIF9fbGUzMl90b19jcHUocmVzcC1cXHUwMDNlbnVtX2NvdW50ZXJzKTsgaSsrKSB7XFxuIFxcdFxcdHN0YXRzW2ldLnBhY2tldHMgKz0gX19sZTY0X3RvX2NwdShyZXNwLVxcdTAwM2VzdGF0c1tpXS5wYWNrZXRzKTtcXG4gXFx0XFx0c3RhdHNbaV0uYnl0ZXMgKz0gX19sZTY0X3RvX2NwdShyZXNwLVxcdTAwM2VzdGF0c1tpXS5ieXRlcyk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDA3OjI5OjIyLjMyODU1Njk3WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjozNTA5Mjg3ODE3MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgbW9kaWZpZWQgY29kZSBpcyBsb2NhdGVkIGluIHRoZSBNYXJ2ZWxsIFByZXN0ZXJhIHN3aXRjaCBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfaHcuYyksIHdoaWNoIHN1cHBvcnRzIE1hcnZlbGwgUHJlc3RlcmEgc3dpdGNoIEFTSUNzIG92ZXIgUENJLiBUaGlzIGRyaXZlciByZXF1aXJlcyBzcGVjaWZpYyBwaHlzaWNhbCBBU0lDIGhhcmR3YXJlIGFuZCBmaXJtd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3NcbnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4xLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncyxcbmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuXG5cbi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6XG4gIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWRcbiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS5cbiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLFxuICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuXG5cbi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgXCJOTyBGVU5DVElPTkFMIENIQU5HRVwiIChORkNJKSBPUiBcIlJFRkFDVE9SSU5HXCIgQ0xBSU1TOlxuICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzIFwiY2xlYW51cHNcIiwgXCJyZWZhY3RvcmluZ3NcIiwgb3Igc3RhdGVcbiAgXCJObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZFwiLiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS5cbiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50XG4gIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLlxuICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLlxuXG4tIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOlxuICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosXG4gIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLlxuICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyXG4gIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczpcblxuLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOlxuICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy5cbiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLylcbiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuXG4gICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHNcbiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLlxuICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy5cbi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOlxuICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6XG4gICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nXG4gICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuXG4gICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6XG4tIENvcmUgU3Vic3lzdGVtczpcbiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksXG4gICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLlxuLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6XG4gICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLlxuLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6XG4gICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLlxuLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOlxuICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOlxuXG4tIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzpcbiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXNcbiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHRcbiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuXG4gIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyBcImZvY3VzZWRcIixcbiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLlxuXG4tIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzpcbiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzXG4gIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LlxuXG4tIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKTpcbiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFja1xuICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy5cbiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyXG4gIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5JZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOlxuLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuLSBDaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLlxuLSBTdHJpcCBhbnkgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiVGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjRcblxuRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMTk1OGJiYjNlNmQ4YmI1YjIzYTc2YjAyZTY3ZmI2YmVkMzVjMGRiM1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gU2VwIDcgMDc6Mjk6MjAgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmNcbmluZGV4IDc2OTVjYmIyY2U2MjYuLmM0Y2I1ZjIyODkzYzkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfaHcuY1xuQEAgLTIzMjQsNiArMjMyNCwxMSBAQCBpbnQgcHJlc3RlcmFfaHdfY291bnRlcnNfZ2V0KHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3LCB1MzIgaWR4LFxuIFx0aWYgKGVycilcbiBcdFx0Z290byBmcmVlX2J1ZmY7XG4gXG4rXHRpZiAoX19sZTMyX3RvX2NwdShyZXNwLVx1MDAzZW51bV9jb3VudGVycykgXHUwMDNlICpsZW4pIHtcbitcdFx0ZXJyID0gLUVJTlZBTDtcbitcdFx0Z290byBmcmVlX2J1ZmY7XG4rXHR9XG4rXG4gXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBfX2xlMzJfdG9fY3B1KHJlc3AtXHUwMDNlbnVtX2NvdW50ZXJzKTsgaSsrKSB7XG4gXHRcdHN0YXRzW2ldLnBhY2tldHMgKz0gX19sZTY0X3RvX2NwdShyZXNwLVx1MDAzZXN0YXRzW2ldLnBhY2tldHMpO1xuIFx0XHRzdGF0c1tpXS5ieXRlcyArPSBfX2xlNjRfdG9fY3B1KHJlc3AtXHUwMDNlc3RhdHNbaV0uYnl0ZXMpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMDc6Mjk6MjIuMzI4NTU5NloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQzNjg3OTkxMzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgTWFydmVsbCBQcmVzdGVyYSBEcml2ZXIgUGF0Y2gqKlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGludG8gdGhpcyBwYXRjaC4gTXkgaW5pdGlhbCBmb2N1cyBpcyBvbiB0aGUgZGlmZiwgc3BlY2lmaWNhbGx5IHRoZSBjaGFuZ2VzIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmNgLiBGaXJzdCwgSSBuZWVkIHRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2Ygd2hhdCB0aGUgYHByZXN0ZXJhYCBkcml2ZXIgYWN0dWFsbHkgKmlzKi4gVGhlIHF1ZXN0aW9uIG9uIG15IG1pbmQgcmlnaHQgbm93IGlzIHdoZXRoZXIgdGhpcyBNYXJ2ZWxsIFByZXN0ZXJhIHN3aXRjaCBkcml2ZXIgaXMgc29tZXRoaW5nIEkgY2FuIHJlbGlhYmx5IHJlYWNoIGFuZCBmdXp6IHdpdGhpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdvb2dsZSBDb21wdXRlIEVuZ2luZS4gVGhhdCdzIGtleSBmb3IgZWZmaWNpZW50IGFuYWx5c2lzLlxuXG5UaGVyZWZvcmUsIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBzZXR1cCByZXF1aXJlbWVudHMuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgS2NvbmZpZyBlbnRyaWVzLCBQQ0kgSURzLCBvciBwbGF0Zm9ybS1zcGVjaWZpYyBkZXRhaWxzIHdpdGhpbiB0aGUgZHJpdmVyIGNvZGUuIElmIGl0IG5lZWRzIHNwZWNpZmljIGhhcmR3YXJlLCB0aGF0J3MgYSBzaWduaWZpY2FudCBjb25zaWRlcmF0aW9uLiBJJ2xsIHByb2JhYmx5IHN0YXJ0IHdpdGggYSBgZ3JlcHBlcmAgcnVuIG9yIGp1c3QgYSB0YXJnZXRlZCBmaWxlIGluc3BlY3Rpb24gaW4gdGhlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL2AgZGlyZWN0b3J5LiBUaGF0IHNob3VsZCBnaXZlIG1lIHRoZSBjb250ZXh0IEkgbmVlZCB0byBwcm9jZWVkIGVmZmVjdGl2ZWx5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyOTcxLCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTIwLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMDc6Mjk6MjYuNjk3MzYzNTM5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNTAzODU4OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJQUkVTVEVSQVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMzUyOCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnOjY6Y29uZmlnIFBSRVNURVJBXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnLTctXFx0dHJpc3RhdGUgXFxcIk1hcnZlbGwgUHJlc3RlcmEgU3dpdGNoIEFTSUNzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL0tjb25maWctMTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnOjE4OmNvbmZpZyBQUkVTVEVSQV9QQ0lcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL0tjb25maWctMTktXFx0dHJpc3RhdGUgXFxcIlBDSSBpbnRlcmZhY2UgZHJpdmVyIGZvciBNYXJ2ZWxsIFByZXN0ZXJhIFN3aXRjaCBBU0lDcyBmYW1pbHlcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnOjIwOlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IEhBU19JT01FTSBcXHUwMDI2XFx1MDAyNiBQUkVTVEVSQVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvS2NvbmZpZzoyMTpcXHRkZWZhdWx0IFBSRVNURVJBXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnLTIyLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZToyOm9iai0kKENPTkZJR19QUkVTVEVSQSlcXHQrPSBwcmVzdGVyYS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZS0zLXByZXN0ZXJhLW9ianNcXHRcXHQ6PSBwcmVzdGVyYV9tYWluLm8gcHJlc3RlcmFfaHcubyBwcmVzdGVyYV9kc2EubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL01ha2VmaWxlLTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19QUkVTVEVSQV9QQ0kpXFx0Kz0gcHJlc3RlcmFfcGNpLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDo0OiNpZm5kZWYgX1BSRVNURVJBX0hfXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjU6I2RlZmluZSBfUFJFU1RFUkFfSF9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtNi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTQ6I2RlZmluZSBQUkVTVEVSQV9EUlZfTkFNRVxcdFxcXCJwcmVzdGVyYVxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjE2OiNkZWZpbmUgUFJFU1RFUkFfREVGQVVMVF9WSUQgICAgMVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaD00ND1zdHJ1Y3QgcHJlc3RlcmFfcG9ydF9zdGF0cyB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtNzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjc3OiNkZWZpbmUgUFJFU1RFUkFfQVBfUE9SVF9NQVggICAoMTApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTc4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oPTE4ND1lbnVtIHByZXN0ZXJhX2V2ZW50X3R5cGUge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxODU6XFx0UFJFU1RFUkFfRVZFTlRfVFlQRV9VTlNQRUMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE4Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTg3OlxcdFBSRVNURVJBX0VWRU5UX1RZUEVfUE9SVCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTg4OlxcdFBSRVNURVJBX0VWRU5UX1RZUEVfRkRCLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxODk6XFx0UFJFU1RFUkFfRVZFTlRfVFlQRV9SWFRYLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xOTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjE5MTpcXHRQUkVTVEVSQV9FVkVOVF9UWVBFX01BWFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xOTItfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaD0xOTQ9ZW51bSBwcmVzdGVyYV9yeHR4X2V2ZW50X2lkIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTk1OlxcdFBSRVNURVJBX1JYVFhfRVZFTlRfVU5TUEVDLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxOTY6XFx0UFJFU1RFUkFfUlhUWF9FVkVOVF9SQ1ZfUEtULFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xOTctfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaD0xOTk9ZW51bSBwcmVzdGVyYV9wb3J0X2V2ZW50X2lkIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjAwOlxcdFBSRVNURVJBX1BPUlRfRVZFTlRfVU5TUEVDLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyMDE6XFx0UFJFU1RFUkFfUE9SVF9FVkVOVF9NQUNfU1RBVEVfQ0hBTkdFRCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjAyLX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg9MjI2PWVudW0gcHJlc3RlcmFfZmRiX2VudHJ5X3R5cGUge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyMjc6XFx0UFJFU1RFUkFfRkRCX0VOVFJZX1RZUEVfUkVHX1BPUlQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjIyODpcXHRQUkVTVEVSQV9GREJfRU5UUllfVFlQRV9MQUcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjIyOTpcXHRQUkVTVEVSQV9GREJfRU5UUllfVFlQRV9NQVhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjMwLX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg9MjMyPWVudW0gcHJlc3RlcmFfZmRiX2V2ZW50X2lkIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjMzOlxcdFBSRVNURVJBX0ZEQl9FVkVOVF9VTlNQRUMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjIzNDpcXHRQUkVTVEVSQV9GREJfRVZFTlRfTEVBUk5FRCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjM1OlxcdFBSRVNURVJBX0ZEQl9FVkVOVF9BR0VELFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yMzYtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaD0yNTg9ZW51bSBwcmVzdGVyYV9pZl90eXBlIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjU5LVxcdC8qIHRoZSBpbnRlcmZhY2UgaXMgb2YgcG9ydCB0eXBlIChkZXYscG9ydCkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjYwOlxcdFBSRVNURVJBX0lGX1BPUlRfRSA9IDAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI2MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjYyLVxcdC8qIHRoZSBpbnRlcmZhY2UgaXMgb2YgbGFnIHR5cGUgKGxhZy1pZCkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjYzOlxcdFBSRVNURVJBX0lGX0xBR19FID0gMSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjY0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yNjUtXFx0LyogdGhlIGludGVyZmFjZSBpcyBvZiBWaWQgdHlwZSAodmxhbi1pZCkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjY2OlxcdFBSRVNURVJBX0lGX1ZJRF9FID0gMyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjY3LX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg9NDE0PXByZXN0ZXJhX2Zsb29kX2RvbWFpbl9wb3J0X2ZpbmQoc3RydWN0IHByZXN0ZXJhX2Zsb29kX2RvbWFpbiAqZmxvb2RfZG9tYWluLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTQxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6NDE3OiNlbmRpZiAvKiBfUFJFU1RFUkFfSF8gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTEtI2RlZmluZSBBQ0xfS0VZTUFTS19TSVpFXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTI6XFx0KHNpemVvZihfX2JlMzIpICogX19QUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX01BWClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYz03MT1zdHJ1Y3QgcHJlc3RlcmFfYWNsX3Z0Y2FtIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTcyLVxcdHN0cnVjdCBsaXN0X2hlYWQgbGlzdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjczOlxcdF9fYmUzMiBrZXltYXNrW19fUFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9NQVhdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNzQtXFx0cmVmY291bnRfdCByZWZjb3VudDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM9MTAyPWludCBwcmVzdGVyYV9hY2xfY2hhaW5fdG9fY2xpZW50KHUzMiBjaGFpbl9pbmRleCwgYm9vbCBpbmdyZXNzLCB1MzIgKmNsaWVudClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTA0LVxcdHN0YXRpYyBjb25zdCB1MzIgaW5ncmVzc19jbGllbnRfbWFwW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxMDU6XFx0XFx0UFJFU1RFUkFfSFdfQ09VTlRFUl9DTElFTlRfSU5HUkVTU19MT09LVVBfMCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjEwNjpcXHRcXHRQUkVTVEVSQV9IV19DT1VOVEVSX0NMSUVOVF9JTkdSRVNTX0xPT0tVUF8xLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTA3OlxcdFxcdFBSRVNURVJBX0hXX0NPVU5URVJfQ0xJRU5UX0lOR1JFU1NfTE9PS1VQXzJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEwOC1cXHR9O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xMTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxMTU6XFx0XFx0KmNsaWVudCA9IFBSRVNURVJBX0hXX0NPVU5URVJfQ0xJRU5UX0VHUkVTU19MT09LVVA7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xMTYtXFx0XFx0cmV0dXJuIDA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jPTEyNj1zdGF0aWMgYm9vbCBwcmVzdGVyYV9hY2xfY2hhaW5faXNfc3VwcG9ydGVkKHUzMiBjaGFpbl9pbmRleCwgYm9vbCBpbmdyZXNzKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xMzEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxMzI6XFx0cmV0dXJuIChjaGFpbl9pbmRleCBcXHUwMDI2IH5QUkVTVEVSQV9BQ0xfQ0hBSU5fTUFTSykgPT0gMDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEzMy19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jPTEzNj1wcmVzdGVyYV9hY2xfcnVsZXNldF9jcmVhdGUoc3RydWN0IHByZXN0ZXJhX2FjbCAqYWNsLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xNjUtXFx0LyogbWFrZSBwY2wtaWQgYmFzZWQgb24gdWlkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxNjY6XFx0cnVsZXNldC1cXHUwMDNlcGNsX2lkID0gUFJFU1RFUkFfQUNMX1BDTF9JRF9NQUtFKCh1OCl1aWQsIGNoYWluX2luZGV4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTE2Ny1cXHRydWxlc2V0LVxcdTAwM2VpbmRleCA9IHVpZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM9MTk4PWludCBwcmVzdGVyYV9hY2xfcnVsZXNldF9vZmZsb2FkKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldCAqcnVsZXNldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjA1LVxcdGRpciA9IHJ1bGVzZXQtXFx1MDAzZWluZ3Jlc3MgP1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjA2OlxcdFxcdFBSRVNURVJBX0hXX1ZUQ0FNX0RJUl9JTkdSRVNTIDogUFJFU1RFUkFfSFdfVlRDQU1fRElSX0VHUkVTUztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTIwNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjIyLVxcdFxcdGlmYWNlLmluZGV4ID0gcnVsZXNldC1cXHUwMDNlaW5kZXg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyMjM6XFx0XFx0aWZhY2UudHlwZSA9IFBSRVNURVJBX0FDTF9JRkFDRV9UWVBFX0lOREVYO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjI0LVxcdFxcdGVyciA9IHByZXN0ZXJhX2h3X3Z0Y2FtX2lmYWNlX2JpbmQocnVsZXNldC1cXHUwMDNlYWNsLVxcdTAwM2VzdywgXFx1MDAyNmlmYWNlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYz0yNDA9c3RhdGljIHZvaWQgcHJlc3RlcmFfYWNsX3J1bGVzZXRfZGVzdHJveShzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQgKnJ1bGVzZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI0Mi1cXHRzdHJ1Y3QgcHJlc3RlcmFfYWNsICphY2wgPSBydWxlc2V0LVxcdTAwM2VhY2w7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyNDM6XFx0dTggdWlkID0gcnVsZXNldC1cXHUwMDNlcGNsX2lkIFxcdTAwMjYgUFJFU1RFUkFfQUNMX0tFWU1BU0tfUENMX0lEX1VTRVI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yNDQtXFx0aW50IGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjUxLVxcdFxcdFxcdHN0cnVjdCBwcmVzdGVyYV9hY2xfaWZhY2UgaWZhY2UgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyNTI6XFx0XFx0XFx0XFx0LnR5cGUgPSBQUkVTVEVSQV9BQ0xfSUZBQ0VfVFlQRV9JTkRFWCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI1My1cXHRcXHRcXHRcXHQuaW5kZXggPSBydWxlc2V0LVxcdTAwM2VpbmRleFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYz0zMjE9aW50IHByZXN0ZXJhX2FjbF9ydWxlc2V0X2JpbmQoc3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpydWxlc2V0LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMjQtXFx0c3RydWN0IHByZXN0ZXJhX2FjbF9pZmFjZSBpZmFjZSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjMyNTpcXHRcXHQudHlwZSA9IFBSRVNURVJBX0FDTF9JRkFDRV9UWVBFX1BPUlQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMjYtXFx0XFx0LnBvcnQgPSBwb3J0XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jPTMzMz1pbnQgcHJlc3RlcmFfYWNsX3J1bGVzZXRfdW5iaW5kKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldCAqcnVsZXNldCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzM2LVxcdHN0cnVjdCBwcmVzdGVyYV9hY2xfaWZhY2UgaWZhY2UgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozMzc6XFx0XFx0LnR5cGUgPSBQUkVTVEVSQV9BQ0xfSUZBQ0VfVFlQRV9QT1JULFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzM4LVxcdFxcdC5wb3J0ID0gcG9ydFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYz00MDA9cHJlc3RlcmFfYWNsX3J1bGVfa2V5bWFza19wY2xfaWRfc2V0KHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZSAqcnVsZSwgdTE2IHBjbF9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNDAyLVxcdHN0cnVjdCBwcmVzdGVyYV9hY2xfbWF0Y2ggKnJfbWF0Y2ggPSBcXHUwMDI2cnVsZS1cXHUwMDNlcmVfa2V5Lm1hdGNoO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NDAzOlxcdF9fYmUxNiBwY2xfaWRfbWFzayA9IGh0b25zKFBSRVNURVJBX0FDTF9LRVlNQVNLX1BDTF9JRCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy00MDQtXFx0X19iZTE2IHBjbF9pZF9rZXkgPSBodG9ucyhwY2xfaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYz01ODQ9c3RhdGljIGludCBfX3ByZXN0ZXJhX2FjbF9ydWxlX2VudHJ5Mmh3X2FkZChzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNTg2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjU4NzpcXHRzdHJ1Y3QgcHJlc3RlcmFfYWNsX2h3X2FjdGlvbl9pbmZvIGFjdF9od1tQUkVTVEVSQV9BQ0xfUlVMRV9BQ1RJT05fTUFYXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTU4OC1cXHRpbnQgYWN0X251bTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNTk0LVxcdGlmIChlLVxcdTAwM2VhY2NlcHQudmFsaWQpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjU5NTpcXHRcXHRhY3RfaHdbYWN0X251bV0uaWQgPSBQUkVTVEVSQV9BQ0xfUlVMRV9BQ1RJT05fQUNDRVBUO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNTk2LVxcdFxcdGFjdF9udW0rKztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNTk5LVxcdGlmIChlLVxcdTAwM2Vkcm9wLnZhbGlkKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo2MDA6XFx0XFx0YWN0X2h3W2FjdF9udW1dLmlkID0gUFJFU1RFUkFfQUNMX1JVTEVfQUNUSU9OX0RST1A7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy02MDEtXFx0XFx0YWN0X251bSsrO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy02MDQtXFx0aWYgKGUtXFx1MDAzZXRyYXAudmFsaWQpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjYwNTpcXHRcXHRhY3RfaHdbYWN0X251bV0uaWQgPSBQUkVTVEVSQV9BQ0xfUlVMRV9BQ1RJT05fVFJBUDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTYwNi1cXHRcXHRhY3RfbnVtKys7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTYwOS1cXHRpZiAoZS1cXHUwMDNlcG9saWNlLnZhbGlkKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo2MTA6XFx0XFx0YWN0X2h3W2FjdF9udW1dLmlkID0gUFJFU1RFUkFfQUNMX1JVTEVfQUNUSU9OX1BPTElDRTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTYxMS1cXHRcXHRhY3RfaHdbYWN0X251bV0ucG9saWNlID0gZS1cXHUwMDNlcG9saWNlLmk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTYxNS1cXHRpZiAoZS1cXHUwMDNlanVtcC52YWxpZCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NjE2OlxcdFxcdGFjdF9od1thY3RfbnVtXS5pZCA9IFBSRVNURVJBX0FDTF9SVUxFX0FDVElPTl9KVU1QO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNjE3LVxcdFxcdGFjdF9od1thY3RfbnVtXS5qdW1wID0gZS1cXHUwMDNlanVtcC5pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy02MjEtXFx0aWYgKGUtXFx1MDAzZWNvdW50ZXIuYmxvY2spIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjYyMjpcXHRcXHRhY3RfaHdbYWN0X251bV0uaWQgPSBQUkVTVEVSQV9BQ0xfUlVMRV9BQ1RJT05fQ09VTlQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy02MjMtXFx0XFx0YWN0X2h3W2FjdF9udW1dLmNvdW50LmlkID0gZS1cXHUwMDNlY291bnRlci5pZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM9NjU5PV9fcHJlc3RlcmFfYWNsX3J1bGVfZW50cnlfYWN0X2NvbnN0cnVjdChzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNjc1LVxcdGlmIChhcmctXFx1MDAzZXBvbGljZS52YWxpZCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6Njc2OlxcdFxcdHU4IHR5cGUgPSBhcmctXFx1MDAzZXBvbGljZS5pbmdyZXNzID8gUFJFU1RFUkFfUE9MSUNFUl9UWVBFX0lOR1JFU1MgOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6Njc3OlxcdFxcdFxcdFxcdFxcdFxcdFBSRVNURVJBX1BPTElDRVJfVFlQRV9FR1JFU1M7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy02NzgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jPTc0Nz1zdGF0aWMgaW50IF9fcHJlc3RlcmFfYWNsX3Z0Y2FtX2lkX3RyeV9maXQoc3RydWN0IHByZXN0ZXJhX2FjbCAqYWNsLCB1OCBsb29rdXAsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTc2My1cXHRcXHQvKiB0cnkgdG8gZml0IHdpdGggdnRjYW0ga2V5bWFzayAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NzY0OlxcdFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBfX1BSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfTUFYOyBpKyspIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTc2NS1cXHRcXHRcXHRfX2JlMzIgX19rZXltYXNrID0gKChfX2JlMzIgKilrZXltYXNrKVtpXTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNzc1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6Nzc2OlxcdFxcdGlmIChpID09IF9fUFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9NQVgpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy03NzctXFx0XFx0XFx0Lyoga2V5bWFzayBmaXRzIHZ0Y2FtIGtleW1hc2ssIHJldHVybiBpdCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaC0zLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NDojaWZuZGVmIF9QUkVTVEVSQV9BQ0xfSF9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjU6I2RlZmluZSBfUFJFU1RFUkFfQUNMX0hfXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaC02LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaC05LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6MTA6I2RlZmluZSBQUkVTVEVSQV9BQ0xfS0VZTUFTS19QQ0xfSURcXHRcXHQweDNGRlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6MTE6I2RlZmluZSBQUkVTVEVSQV9BQ0xfS0VZTUFTS19QQ0xfSURfVVNFUlxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjEyOlxcdChQUkVTVEVSQV9BQ0xfS0VZTUFTS19QQ0xfSUQgXFx1MDAyNiAweDAwRkYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDoxMzojZGVmaW5lIFBSRVNURVJBX0FDTF9LRVlNQVNLX1BDTF9JRF9DSEFJTlxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjE0OlxcdChQUkVTVEVSQV9BQ0xfS0VZTUFTS19QQ0xfSUQgXFx1MDAyNiAweEZGMDApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDoxNTojZGVmaW5lIFBSRVNURVJBX0FDTF9DSEFJTl9NQVNLXFx0XFx0XFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6MTY6XFx0KFBSRVNURVJBX0FDTF9LRVlNQVNLX1BDTF9JRCBcXHUwMDNlXFx1MDAzZSA4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmgtMTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDoxODojZGVmaW5lIFBSRVNURVJBX0FDTF9QQ0xfSURfTUFLRSh1aWQsIGNoYWluX2lkKVxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjE5OlxcdCgoKHVpZCkgXFx1MDAyNiBQUkVTVEVSQV9BQ0xfS0VZTUFTS19QQ0xfSURfVVNFUikgfFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjIwOlxcdCgoKGNoYWluX2lkKSBcXHUwMDNjXFx1MDAzYyA4KSBcXHUwMDI2IFBSRVNURVJBX0FDTF9LRVlNQVNLX1BDTF9JRF9DSEFJTikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaC0yMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oLTIyLSNkZWZpbmUgcnVsZV9tYXRjaF9zZXRfbihtYXRjaF9wLCB0eXBlLCB2YWxfcCwgc2l6ZSlcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDoyMzpcXHRtZW1jcHkoXFx1MDAyNihtYXRjaF9wKVtQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFXyMjdHlwZV0sXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmgtMjQtXFx0ICAgICAgIHZhbF9wLCBzaXplKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmgtMjUtI2RlZmluZSBydWxlX21hdGNoX3NldChtYXRjaF9wLCB0eXBlLCB2YWwpXFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6MjY6XFx0bWVtY3B5KFxcdTAwMjYobWF0Y2hfcClbUFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV8jI3R5cGVdLFxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oLTI3LVxcdCAgICAgICBcXHUwMDI2KHZhbCksIHNpemVvZih2YWwpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaD0yOT1lbnVtIHByZXN0ZXJhX2FjbF9tYXRjaF90eXBlIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjMwOlxcdFBSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfUENMX0lELFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6MzE6XFx0UFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9FVEhfVFlQRSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjMyOlxcdFBSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfRVRIX0RNQUNfMCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjMzOlxcdFBSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfRVRIX0RNQUNfMSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjM0OlxcdFBSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfRVRIX1NNQUNfMCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjM1OlxcdFBSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfRVRIX1NNQUNfMSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjM2OlxcdFBSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfSVBfUFJPVE8sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDozNzpcXHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX1NZU19QT1JULFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6Mzg6XFx0UFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9TWVNfREVWLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6Mzk6XFx0UFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9JUF9TUkMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo0MDpcXHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX0lQX0RTVCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjQxOlxcdFBSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfTDRfUE9SVF9TUkMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo0MjpcXHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX0w0X1BPUlRfRFNULFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NDM6XFx0UFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9MNF9QT1JUX1JBTkdFX1NSQyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjQ0OlxcdFBSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfTDRfUE9SVF9SQU5HRV9EU1QsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo0NTpcXHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX1ZMQU5fSUQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo0NjpcXHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX1ZMQU5fVFBJRCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjQ3OlxcdFBSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfSUNNUF9UWVBFLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NDg6XFx0UFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9JQ01QX0NPREUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaC00OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjUwOlxcdF9fUFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9NQVhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oLTUxLX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oPTUzPWVudW0gcHJlc3RlcmFfYWNsX3J1bGVfYWN0aW9uIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjU0OlxcdFBSRVNURVJBX0FDTF9SVUxFX0FDVElPTl9BQ0NFUFQgPSAwLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NTU6XFx0UFJFU1RFUkFfQUNMX1JVTEVfQUNUSU9OX0RST1AgPSAxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NTY6XFx0UFJFU1RFUkFfQUNMX1JVTEVfQUNUSU9OX1RSQVAgPSAyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NTc6XFx0UFJFU1RFUkFfQUNMX1JVTEVfQUNUSU9OX0pVTVAgPSA1LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NTg6XFx0UFJFU1RFUkFfQUNMX1JVTEVfQUNUSU9OX0NPVU5UID0gNyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjU5OlxcdFBSRVNURVJBX0FDTF9SVUxFX0FDVElPTl9QT0xJQ0UgPSA4LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmgtNjAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo2MTpcXHRQUkVTVEVSQV9BQ0xfUlVMRV9BQ1RJT05fTUFYXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaC02Mi19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaD02ND1lbnVtIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjY1OlxcdFBSRVNURVJBX0FDTF9JRkFDRV9UWVBFX1BPUlQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo2NjpcXHRQUkVTVEVSQV9BQ0xfSUZBQ0VfVFlQRV9JTkRFWFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmgtNjctfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg9Njk9c3RydWN0IHByZXN0ZXJhX2FjbF9tYXRjaCB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo3MDpcXHRfX2JlMzIga2V5W19fUFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9NQVhdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NzE6XFx0X19iZTMyIG1hc2tbX19QUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX01BWF07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaC03Mi19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaD0yMDc9aW50IHByZXN0ZXJhX2FjbF9jaGFpbl90b19jbGllbnQodTMyIGNoYWluX2luZGV4LCBib29sIGluZ3Jlc3MsIHUzMiAqY2xpZW50KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oLTIwOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjIwOTojZW5kaWYgLyogX1BSRVNURVJBX0FDTF9IXyAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9jb3VudGVyLmgtMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2NvdW50ZXIuaDo0OiNpZm5kZWYgX1BSRVNURVJBX0NPVU5URVJfSF9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2NvdW50ZXIuaDo1OiNkZWZpbmUgX1BSRVNURVJBX0NPVU5URVJfSF9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2NvdW50ZXIuaC02LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9jb3VudGVyLmg9MjY9aW50IHByZXN0ZXJhX2NvdW50ZXJfc3RhdHNfZ2V0KHN0cnVjdCBwcmVzdGVyYV9jb3VudGVyICpjb3VudGVyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9jb3VudGVyLmgtMjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9jb3VudGVyLmg6MzA6I2VuZGlmIC8qIF9QUkVTVEVSQV9DT1VOVEVSX0hfICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYz0xMj1lbnVtIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxMzpcXHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfQkFTRSA9IERFVkxJTktfVFJBUF9HRU5FUklDX0lEX01BWCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxNDpcXHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfQVJQX0JDLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE1OlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9JU19JUyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxNjpcXHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfT1NQRixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxNzpcXHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfSVBfQkNfTUFDLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE4OlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9ST1VURVJfTUMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTk6XFx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX1ZSUlAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjA6XFx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX0RIQ1AsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjE6XFx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX01BQ19UT19NRSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyMjpcXHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfSVBWNF9PUFRJT05TLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjIzOlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9JUF9ERUZBVUxUX1JPVVRFLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjI0OlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9JUF9UT19NRSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyNTpcXHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfSVBWNF9JQ01QX1JFRElSRUNULFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjI2OlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9BQ0xfQ09ERV8wLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjI3OlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9BQ0xfQ09ERV8xLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjI4OlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9BQ0xfQ09ERV8yLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjI5OlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9BQ0xfQ09ERV8zLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjMwOlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9BQ0xfQ09ERV80LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjMxOlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9BQ0xfQ09ERV81LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjMyOlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9BQ0xfQ09ERV82LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjMzOlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9BQ0xfQ09ERV83LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjM0OlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9CR1AsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MzU6XFx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX1NTSCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzozNjpcXHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfVEVMTkVULFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjM3OlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9JQ01QLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjM4OlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9NRVRfUkVELFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjM5OlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9JUF9TSVBfSVNfWkVSTyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo0MDpcXHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfSVBfVUNfRElQX0RBX01JU01BVENILFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjQxOlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9JTExFR0FMX0lQVjRfSERSLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjQyOlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9JTExFR0FMX0lQX0FERFIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6NDM6XFx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX0lOVkFMSURfU0EsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6NDQ6XFx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX0xPQ0FMX1BPUlQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6NDU6XFx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX1BPUlRfTk9fVkxBTixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo0NjpcXHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfUlhETUFfRFJPUCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy00Ny19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTQ4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjQ5OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfQVJQX0JDIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy01MC1cXHRcXFwiYXJwX2JjXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjUxOiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfSVNfSVMgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTUyLVxcdFxcXCJpc19pc1xcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo1MzojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX09TUEYgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTU0LVxcdFxcXCJvc3BmXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjU1OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfSVBfQkNfTUFDIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy01Ni1cXHRcXFwiaXBfYmNfbWFjXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjU3OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfUk9VVEVSX01DIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy01OC1cXHRcXFwicm91dGVyX21jXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjU5OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfVlJSUCBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtNjAtXFx0XFxcInZycnBcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6NjE6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9ESENQIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy02Mi1cXHRcXFwiZGhjcFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo2MzojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX01BQ19UT19NRSBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtNjQtXFx0XFxcIm1hY190b19tZVxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo2NTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0lQVjRfT1BUSU9OUyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtNjYtXFx0XFxcImlwdjRfb3B0aW9uc1xcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo2NzojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0lQX0RFRkFVTFRfUk9VVEUgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTY4LVxcdFxcXCJpcF9kZWZhdWx0X3JvdXRlXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjY5OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfSVBfVE9fTUUgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTcwLVxcdFxcXCJpcF90b19tZVxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo3MTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0lQVjRfSUNNUF9SRURJUkVDVCBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtNzItXFx0XFxcImlwdjRfaWNtcF9yZWRpcmVjdFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo3MzojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0FDTF9DT0RFXzAgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTc0LVxcdFxcXCJhY2xfY29kZV8wXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjc1OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfQUNMX0NPREVfMSBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtNzYtXFx0XFxcImFjbF9jb2RlXzFcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6Nzc6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9BQ0xfQ09ERV8yIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy03OC1cXHRcXFwiYWNsX2NvZGVfMlxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo3OTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0FDTF9DT0RFXzMgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTgwLVxcdFxcXCJhY2xfY29kZV8zXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjgxOiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfQUNMX0NPREVfNCBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtODItXFx0XFxcImFjbF9jb2RlXzRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6ODM6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9BQ0xfQ09ERV81IFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy04NC1cXHRcXFwiYWNsX2NvZGVfNVxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo4NTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0FDTF9DT0RFXzYgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTg2LVxcdFxcXCJhY2xfY29kZV82XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjg3OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfQUNMX0NPREVfNyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtODgtXFx0XFxcImFjbF9jb2RlXzdcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6ODk6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9CR1AgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTkwLVxcdFxcXCJiZ3BcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6OTE6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9TU0ggXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTkyLVxcdFxcXCJzc2hcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6OTM6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9URUxORVQgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTk0LVxcdFxcXCJ0ZWxuZXRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6OTU6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9JQ01QIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy05Ni1cXHRcXFwiaWNtcFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo5NzojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX1JYRE1BX0RST1AgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTk4LVxcdFxcXCJyeGRtYV9kcm9wXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjk5OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfUE9SVF9OT19WTEFOIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xMDAtXFx0XFxcInBvcnRfbm9fdmxhblxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxMDE6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9MT0NBTF9QT1JUIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xMDItXFx0XFxcImxvY2FsX3BvcnRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTAzOiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfSU5WQUxJRF9TQSBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTA0LVxcdFxcXCJpbnZhbGlkX3NhXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjEwNTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0lMTEVHQUxfSVBfQUREUiBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTA2LVxcdFxcXCJpbGxlZ2FsX2lwX2FkZHJcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTA3OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfSUxMRUdBTF9JUFY0X0hEUiBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTA4LVxcdFxcXCJpbGxlZ2FsX2lwdjRfaGRyXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjEwOTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0lQX1VDX0RJUF9EQV9NSVNNQVRDSCBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTEwLVxcdFxcXCJpcF91Y19kaXBfZGFfbWlzbWF0Y2hcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTExOiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfSVBfU0lQX0lTX1pFUk8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTExMi1cXHRcXFwiaXBfc2lwX2lzX3plcm9cXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTEzOiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfTUVUX1JFRCBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTE0LVxcdFxcXCJtZXRfcmVkXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM9MTI2PXN0cnVjdCBwcmVzdGVyYV90cmFwX2RhdGEge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTMxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjEzMjojZGVmaW5lIFBSRVNURVJBX1RSQVBfTUVUQURBVEEgREVWTElOS19UUkFQX01FVEFEQVRBX1RZUEVfRl9JTl9QT1JUXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTMzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjEzNDojZGVmaW5lIFBSRVNURVJBX1RSQVBfQ09OVFJPTChfaWQsIF9ncm91cF9pZCwgX2FjdGlvbilcXHRcXHRcXHQgICAgICBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTM1LVxcdERFVkxJTktfVFJBUF9HRU5FUklDKENPTlRST0wsIF9hY3Rpb24sIF9pZCxcXHRcXHRcXHQgICAgICBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTM2LVxcdFxcdFxcdCAgICAgREVWTElOS19UUkFQX0dST1VQX0dFTkVSSUNfSURfIyNfZ3JvdXBfaWQsXFx0ICAgICAgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjEzNzpcXHRcXHRcXHQgICAgIFBSRVNURVJBX1RSQVBfTUVUQURBVEEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTM4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjEzOTojZGVmaW5lIFBSRVNURVJBX1RSQVBfRFJJVkVSX0NPTlRST0woX2lkLCBfZ3JvdXBfaWQpXFx0XFx0XFx0ICAgICAgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE0MDpcXHRERVZMSU5LX1RSQVBfRFJJVkVSKENPTlRST0wsIFRSQVAsIERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF8jI19pZCwgICAgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE0MTpcXHRcXHRcXHQgICAgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfIyNfaWQsXFx0XFx0ICAgICAgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTE0Mi1cXHRcXHRcXHQgICAgREVWTElOS19UUkFQX0dST1VQX0dFTkVSSUNfSURfIyNfZ3JvdXBfaWQsXFx0ICAgICAgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE0MzpcXHRcXHRcXHQgICAgUFJFU1RFUkFfVFJBUF9NRVRBREFUQSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTQ1OiNkZWZpbmUgUFJFU1RFUkFfVFJBUF9FWENFUFRJT04oX2lkLCBfZ3JvdXBfaWQpXFx0XFx0XFx0XFx0ICAgICAgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTE0Ni1cXHRERVZMSU5LX1RSQVBfR0VORVJJQyhFWENFUFRJT04sIFRSQVAsIF9pZCxcXHRcXHRcXHQgICAgICBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTQ3LVxcdFxcdFxcdCAgICAgREVWTElOS19UUkFQX0dST1VQX0dFTkVSSUNfSURfIyNfZ3JvdXBfaWQsXFx0ICAgICAgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE0ODpcXHRcXHRcXHQgICAgIFBSRVNURVJBX1RSQVBfTUVUQURBVEEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTQ5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE1MDojZGVmaW5lIFBSRVNURVJBX1RSQVBfRFJJVkVSX0VYQ0VQVElPTihfaWQsIF9ncm91cF9pZClcXHRcXHRcXHQgICAgICBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTUxOlxcdERFVkxJTktfVFJBUF9EUklWRVIoRVhDRVBUSU9OLCBUUkFQLCBERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfIyNfaWQsICBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTUyOlxcdFxcdFxcdCAgICBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV8jI19pZCxcXHRcXHQgICAgICBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTUzLVxcdFxcdFxcdCAgICBERVZMSU5LX1RSQVBfR1JPVVBfR0VORVJJQ19JRF8jI19ncm91cF9pZCxcXHQgICAgICBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTU0OlxcdFxcdFxcdCAgICBQUkVTVEVSQV9UUkFQX01FVEFEQVRBKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTE1NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxNTY6I2RlZmluZSBQUkVTVEVSQV9UUkFQX0RSSVZFUl9EUk9QKF9pZCwgX2dyb3VwX2lkKVxcdFxcdFxcdCAgICAgIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxNTc6XFx0REVWTElOS19UUkFQX0RSSVZFUihEUk9QLCBEUk9QLCBERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfIyNfaWQsXFx0ICAgICAgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE1ODpcXHRcXHRcXHQgICAgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfIyNfaWQsXFx0XFx0ICAgICAgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTE1OS1cXHRcXHRcXHQgICAgREVWTElOS19UUkFQX0dST1VQX0dFTkVSSUNfSURfIyNfZ3JvdXBfaWQsXFx0ICAgICAgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE2MDpcXHRcXHRcXHQgICAgUFJFU1RFUkFfVFJBUF9NRVRBREFUQSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xNjEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYz0xODM9c3RhdGljIHN0cnVjdCBwcmVzdGVyYV90cmFwIHByZXN0ZXJhX3RyYXBfaXRlbXNfYXJyW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTg0LVxcdHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxODU6XFx0XFx0LnRyYXAgPSBQUkVTVEVSQV9UUkFQX0RSSVZFUl9DT05UUk9MKEFSUF9CQywgTkVJR0hfRElTQ09WRVJZKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xODYtXFx0XFx0LmNwdV9jb2RlID0gNSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTE4OC1cXHR7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTg5OlxcdFxcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9EUklWRVJfQ09OVFJPTChJU19JUywgTE9DQUxfREVMSVZFUlkpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTE5MC1cXHRcXHQuY3B1X2NvZGUgPSAxMyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTE5Mi1cXHR7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTkzOlxcdFxcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9EUklWRVJfQ09OVFJPTChPU1BGLCBPU1BGKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xOTQtXFx0XFx0LmNwdV9jb2RlID0gMTYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xOTYtXFx0e1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE5NzpcXHRcXHQudHJhcCA9IFBSRVNURVJBX1RSQVBfRFJJVkVSX0NPTlRST0woSVBfQkNfTUFDLCBMT0NBTF9ERUxJVkVSWSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTk4LVxcdFxcdC5jcHVfY29kZSA9IDE5LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjAwLVxcdHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyMDE6XFx0XFx0LnRyYXAgPSBQUkVTVEVSQV9UUkFQX0NPTlRST0woU1RQLCBTVFAsIFRSQVApLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIwMi1cXHRcXHQuY3B1X2NvZGUgPSAyNixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIwNC1cXHR7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjA1OlxcdFxcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9DT05UUk9MKExBQ1AsIExBQ1AsIFRSQVApLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIwNi1cXHRcXHQuY3B1X2NvZGUgPSAyNyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIwOC1cXHR7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjA5OlxcdFxcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9DT05UUk9MKExMRFAsIExMRFAsIFRSQVApLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIxMC1cXHRcXHQuY3B1X2NvZGUgPSAyOCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIxMi1cXHR7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjEzOlxcdFxcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9EUklWRVJfQ09OVFJPTChST1VURVJfTUMsIExPQ0FMX0RFTElWRVJZKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yMTQtXFx0XFx0LmNwdV9jb2RlID0gMjksXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yMTYtXFx0e1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjIxNzpcXHRcXHQudHJhcCA9IFBSRVNURVJBX1RSQVBfRFJJVkVSX0NPTlRST0woVlJSUCwgVlJSUCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjE4LVxcdFxcdC5jcHVfY29kZSA9IDMwLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjIwLVxcdHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyMjE6XFx0XFx0LnRyYXAgPSBQUkVTVEVSQV9UUkFQX0RSSVZFUl9DT05UUk9MKERIQ1AsIERIQ1ApLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIyMi1cXHRcXHQuY3B1X2NvZGUgPSAzMyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIyNC1cXHR7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjI1OlxcdFxcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9FWENFUFRJT04oTVRVX0VSUk9SLCBMM19FWENFUFRJT05TKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yMjYtXFx0XFx0LmNwdV9jb2RlID0gNjMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yMjgtXFx0e1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjIyOTpcXHRcXHQudHJhcCA9IFBSRVNURVJBX1RSQVBfRFJJVkVSX0NPTlRST0woTUFDX1RPX01FLCBMT0NBTF9ERUxJVkVSWSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjMwLVxcdFxcdC5jcHVfY29kZSA9IDY1LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjMyLVxcdHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyMzM6XFx0XFx0LnRyYXAgPSBQUkVTVEVSQV9UUkFQX0VYQ0VQVElPTihUVExfRVJST1IsIEwzX0VYQ0VQVElPTlMpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIzNC1cXHRcXHQuY3B1X2NvZGUgPSAxMzMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yMzYtXFx0e1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjIzNzpcXHRcXHQudHJhcCA9IFBSRVNURVJBX1RSQVBfRFJJVkVSX0VYQ0VQVElPTihJUFY0X09QVElPTlMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjM4LVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICBMM19FWENFUFRJT05TKSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTI0MS1cXHR7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjQyOlxcdFxcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9EUklWRVJfQ09OVFJPTChJUF9ERUZBVUxUX1JPVVRFLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTI0My1cXHRcXHRcXHRcXHRcXHRcXHQgICAgIExPQ0FMX0RFTElWRVJZKSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTI0Ni1cXHR7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjQ3OlxcdFxcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9DT05UUk9MKExPQ0FMX1JPVVRFLCBMT0NBTF9ERUxJVkVSWSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yNDgtXFx0XFx0XFx0XFx0XFx0ICAgICAgVFJBUCksXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yNTEtXFx0e1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjI1MjpcXHRcXHQudHJhcCA9IFBSRVNURVJBX1RSQVBfRFJJVkVSX0VYQ0VQVElPTihJUFY0X0lDTVBfUkVESVJFQ1QsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjUzLVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICBMM19FWENFUFRJT05TKSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTI1Ni1cXHR7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjU3OlxcdFxcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9DT05UUk9MKEFSUF9SRVNQT05TRSwgTkVJR0hfRElTQ09WRVJZLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTI1OC1cXHRcXHRcXHRcXHRcXHQgICAgICBUUkFQKSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTI2MS1cXHR7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjYyOlxcdFxcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9EUklWRVJfQ09OVFJPTChBQ0xfQ09ERV8wLCBBQ0xfVFJBUCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjYzLVxcdFxcdC5jcHVfY29kZSA9IDE5MixcXG4tLVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QwNzoyOToyNi44MTI0MDg0MzdaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo0NzA4Mjc5MjQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IGltbWVkaWF0ZSB0aG91Z2h0IHByb2Nlc3MsIGZvY3VzaW5nIG9uIHRoZSBmaWxlcyBtZW50aW9uZWQsIGFzc3VtaW5nIEknbSBkZWVwIGluIGVtYmVkZGVkIHN5c3RlbXMgZGV2ZWxvcG1lbnQgYW5kIGZhbWlsaWFyIHdpdGggdGhpcyBjb2RlYmFzZTpcblxuKipSZXZpZXdpbmcgS2V5IFByZXN0ZXJhIEZpbGVzKipcblxuT2theSwgdGltZSB0byBkaWcgaW4uIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBkaXZlIGludG8gYHByZXN0ZXJhX3BjaS5jYCwgYHByZXN0ZXJhX21haW4uY2AsIGFuZCB0aGUgYEtjb25maWdgIGZpbGUuIEkgaW1tZWRpYXRlbHkgdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb24uIGBwcmVzdGVyYV9wY2kuY2AgaXMgdmVyeSBsaWtlbHkgdGhlIGludGVyZmFjZSBmb3IgdGhlIFBDSSBidXMgaW50ZXJhY3Rpb25zLCB3aGljaCBpcyBlc3NlbnRpYWwgdG8gdGhlIG92ZXJhbGwgb3BlcmF0aW9uIG9mIHRoZSBwcmVzdGVyYSBiYXNlZCBzd2l0Y2guICBgcHJlc3RlcmFfbWFpbi5jYCBwcm9iYWJseSBjb250YWlucyB0aGUgY29yZSBpbml0aWFsaXphdGlvbiwgY29udHJvbCBmbG93LCBhbmQgcG90ZW50aWFsbHkgdGhlIG1haW4gbG9vcCBvciBlbnRyeSBwb2ludCBmb3IgdGhlIFByZXN0ZXJhLXNwZWNpZmljIGZ1bmN0aW9uYWxpdHkuIEdpdmVuIG15IGV4cGVyaWVuY2UsIEkgZXhwZWN0IHRoYXQgbWFpbiBmaWxlIHRvIG1hbmFnZSB0aGUgY29yZSBvZiB0aGUgQVNJQyBkcml2ZXIuXG5cbkFuZCBvZiBjb3Vyc2UsIEkgbmVlZCB0byBjaGVjayBgS2NvbmZpZ2AuIFRoYXQncyB3aGVyZSBhbGwgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIFByZXN0ZXJhIGRyaXZlciB3aWxsIGxpdmUuIFVuZGVyc3RhbmRpbmcgdGhlIGF2YWlsYWJsZSBjb25maWd1cmF0aW9ucyBpcyBjcnVjaWFsLiBJJ2xsIG5lZWQgdG8gc2VlIHdoYXQgZmVhdHVyZXMgYXJlIGVuYWJsZWQsIHdoYXQgaGFyZHdhcmUgdmFyaWFudHMgYXJlIHN1cHBvcnRlZCwgYW5kIGFueSBidWlsZC10aW1lIG9yIGNvbXBpbGUtdGltZSBvcHRpb25zIHRoYXQgaW5mbHVlbmNlIHRoZSBkcml2ZXIncyBiZWhhdmlvci4gVGhlIGBLY29uZmlnYCB3aWxsIHByb3ZpZGUgdGhlIGtub2JzIHRoYXQgSSBuZWVkIHRvIHR3ZWFrIGZvciBhIGdpdmVuIGRlcGxveW1lbnQgb3IgdG8gdGVzdCBhIHBhcnRpY3VsYXIgYXJlYS5cblxuSeKAmW0gYW50aWNpcGF0aW5nIGRlcGVuZGVuY2llcyBhbmQgaW50ZXJhY3Rpb25zIGJldHdlZW4gdGhlc2UgZmlsZXMsIHNvIEknbGwgYmUgbG9va2luZyBmb3IgY3Jvc3MtcmVmZXJlbmNlcyBiZXR3ZWVuIHRoZW0gYXMgSSBnby5cblxuXG4iLCJJbnB1dFRva2VucyI6MTkzNTgsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QwNzoyOTozMS41MjA2OTI0NjJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDA0NjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDQwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHQjXFxuICAgMzpcXHQjIE1hcnZlbGwgUHJlc3RlcmEgZHJpdmVycyBjb25maWd1cmF0aW9uXFxuICAgNDpcXHQjXFxuICAgNTpcXHRcXG4gICA2OlxcdGNvbmZpZyBQUkVTVEVSQVxcbiAgIDc6XFx0XFx0dHJpc3RhdGUgXFxcIk1hcnZlbGwgUHJlc3RlcmEgU3dpdGNoIEFTSUNzIHN1cHBvcnRcXFwiXFxuICAgODpcXHRcXHRkZXBlbmRzIG9uIE5FVF9TV0lUQ0hERVYgXFx1MDAyNlxcdTAwMjYgVkxBTl84MDIxUVxcbiAgIDk6XFx0XFx0ZGVwZW5kcyBvbiBCUklER0UgfHwgQlJJREdFPW5cXG4gIDEwOlxcdFxcdHNlbGVjdCBORVRfREVWTElOS1xcbiAgMTE6XFx0XFx0c2VsZWN0IFBIWUxJTktcXG4gIDEyOlxcdFxcdGhlbHBcXG4gIDEzOlxcdFxcdCAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgTWFydmVsbCBQcmVzdGVyYSBTd2l0Y2ggQVNJQ3MgZmFtaWx5LlxcbiAgMTQ6XFx0XFxuICAxNTpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZVxcbiAgMTY6XFx0XFx0ICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgcHJlc3RlcmEuXFxuICAxNzpcXHRcXG4gIDE4OlxcdGNvbmZpZyBQUkVTVEVSQV9QQ0lcXG4gIDE5OlxcdFxcdHRyaXN0YXRlIFxcXCJQQ0kgaW50ZXJmYWNlIGRyaXZlciBmb3IgTWFydmVsbCBQcmVzdGVyYSBTd2l0Y2ggQVNJQ3MgZmFtaWx5XFxcIlxcbiAgMjA6XFx0XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgSEFTX0lPTUVNIFxcdTAwMjZcXHUwMDI2IFBSRVNURVJBXFxuICAyMTpcXHRcXHRkZWZhdWx0IFBSRVNURVJBXFxuICAyMjpcXHRcXHRoZWxwXFxuICAyMzpcXHRcXHQgIFRoaXMgaXMgaW1wbGVtZW50YXRpb24gb2YgUENJIGludGVyZmFjZSBzdXBwb3J0IGZvciBNYXJ2ZWxsIFByZXN0ZXJhXFxuICAyNDpcXHRcXHQgIFN3aXRjaCBBU0lDcyBmYW1pbHkuXFxuICAyNTpcXHRcXG4gIDI2OlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXFxuICAyNzpcXHRcXHQgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBwcmVzdGVyYV9wY2kuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDA3OjI5OjMxLjUyMDgzNjAyMloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjIxMjU3NzU0MzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3M6XG5cbioqRGl2aW5nIGludG8gdGhlIGBwcmVzdGVyYV9wY2kuY2AgQ29kZSoqXG5cbkFscmlnaHQsIEkgbmVlZCB0byBnZXQgYSBoYW5kbGUgb24gaG93IHRoaXMgYHByZXN0ZXJhX3BjaS5jYCBtb2R1bGUgaXMgd29ya2luZy4gTXkgaW1tZWRpYXRlIGZvY3VzIGlzIHR3b2ZvbGQ6IGZpcnN0LCBJIHdhbnQgdG8gY29uZmlybSB3aGF0IGFjdHVhbCBoYXJkd2FyZSBjb21wb25lbnRzIGFyZSBiZWluZyBkaXJlY3RseSBib3VuZCB0byB0aGlzIGRyaXZlci4gQXJlIHdlIHRhbGtpbmcgYWJvdXQgc3BlY2lmaWMgUENJIGRldmljZXMgdGhhdCBpdCdzIGRlc2lnbmVkIHRvIG1hbmFnZT8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhhdCByZWxhdGlvbnNoaXAuIFNlY29uZCwgYW5kIHRoaXMgaXMgY3J1Y2lhbCBmb3IgdGVzdGluZyBhbmQgZGV2ZWxvcG1lbnQsIEkgbmVlZCB0byBzZWUgaWYgdGhlcmUncyBhbnkgc3VwcG9ydCBmb3IgbW9jayBkZXZpY2VzIG9yIHZpcnR1YWwgZGV2aWNlIGltcGxlbWVudGF0aW9ucyB3aXRoaW4gdGhpcyBmaWxlLiBEb2VzIGl0IGluY2x1ZGUgYW55IGFic3RyYWN0aW9ucyB0aGF0IHdvdWxkIGFsbG93IG1lIHRvIHNpbXVsYXRlIHRoZSBoYXJkd2FyZSBlbnZpcm9ubWVudCBmb3IgdGVzdGluZyBwdXJwb3Nlcywgb3IgYXJlIHdlIHRpZ2h0bHkgY291cGxlZCB3aXRoIHRoZSBwaHlzaWNhbCBoYXJkd2FyZT8gVGhlIGFuc3dlcnMgaGVyZSB3aWxsIGd1aWRlIG15IG5leHQgc3RlcHMgaW4gdW5kZXJzdGFuZGluZyB0aGUgZHJpdmVyJ3MgZmxleGliaWxpdHkgYW5kIHBvdGVudGlhbCBmb3IgaW5kZXBlbmRlbnQgYW5hbHlzaXMuIExldCdzIHNlZSB3aGF0IHRoZSBjb2RlIHJldmVhbHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwMDgxLCJPdXRwdXRUb2tlbnMiOjQ3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzEsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QwNzoyOTozMy42NDY2MTcxNzNaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjYyNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9wY2kuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAxMDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlIE9SIEdQTC0yLjBcXG4gICAyOlxcdC8qIENvcHlyaWdodCAoYykgMjAxOS0yMDIwIE1hcnZlbGwgSW50ZXJuYXRpb25hbCBMdGQuIEFsbCByaWdodHMgcmVzZXJ2ZWQgKi9cXG4gICAzOlxcdFxcbiAgIDQ6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2JpdGZpZWxkLmhcXHUwMDNlXFxuICAgNTpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvY2lyY19idWYuaFxcdTAwM2VcXG4gICA2OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9kZXZpY2UuaFxcdTAwM2VcXG4gICA3OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9maXJtd2FyZS5oXFx1MDAzZVxcbiAgIDg6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2lvcG9sbC5oXFx1MDAzZVxcbiAgIDk6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2tlcm5lbC5oXFx1MDAzZVxcbiAgMTA6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L21vZHVsZS5oXFx1MDAzZVxcbiAgMTE6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BjaS5oXFx1MDAzZVxcbiAgMTI6XFx0XFxuICAxMzpcXHQjaW5jbHVkZSBcXFwicHJlc3RlcmEuaFxcXCJcXG4gIDE0OlxcdFxcbiAgMTU6XFx0I2RlZmluZSBQUkVTVEVSQV9NU0dfTUFYX1NJWkUgMTUwMFxcbiAgMTY6XFx0XFxuICAxNzpcXHQjZGVmaW5lIFBSRVNURVJBX1NVUFBfRldfTUFKX1ZFUlxcdDRcXG4gIDE4OlxcdCNkZWZpbmUgUFJFU1RFUkFfU1VQUF9GV19NSU5fVkVSXFx0MVxcbiAgMTk6XFx0XFxuICAyMDpcXHQjZGVmaW5lIFBSRVNURVJBX1BSRVZfRldfTUFKX1ZFUlxcdDRcXG4gIDIxOlxcdCNkZWZpbmUgUFJFU1RFUkFfUFJFVl9GV19NSU5fVkVSXFx0MFxcbiAgMjI6XFx0XFxuICAyMzpcXHQjZGVmaW5lIFBSRVNURVJBX0ZXX1BBVEhfRk1UXFx0XFxcIm1ydmwvcHJlc3RlcmEvbXZzd19wcmVzdGVyYV9mdy12JXUuJXUuaW1nXFxcIlxcbiAgMjQ6XFx0I2RlZmluZSBQUkVTVEVSQV9GV19BUk02NF9QQVRIX0ZNVCBcXFwibXJ2bC9wcmVzdGVyYS9tdnN3X3ByZXN0ZXJhX2Z3X2FybTY0LXYldS4ldS5pbWdcXFwiXFxuICAyNTpcXHRcXG4gIDI2OlxcdCNkZWZpbmUgUFJFU1RFUkFfRldfSERSX01BR0lDXFx0XFx0MHgzNTFEOUQwNlxcbiAgMjc6XFx0I2RlZmluZSBQUkVTVEVSQV9GV19ETF9USU1FT1VUX01TXFx0NTAwMDBcXG4gIDI4OlxcdCNkZWZpbmUgUFJFU1RFUkFfRldfQkxLX1NaXFx0XFx0MTAyNFxcbiAgMjk6XFx0XFxuICAzMDpcXHQjZGVmaW5lIFBSRVNURVJBX0ZXX1ZFUl9NQUpfTVVMIDEwMDAwMDBcXG4gIDMxOlxcdCNkZWZpbmUgUFJFU1RFUkFfRldfVkVSX01JTl9NVUwgMTAwMFxcbiAgMzI6XFx0XFxuICAzMzpcXHQjZGVmaW5lIFBSRVNURVJBX0ZXX1ZFUl9NQUoodilcXHQoKHYpIC8gUFJFU1RFUkFfRldfVkVSX01BSl9NVUwpXFxuICAzNDpcXHRcXG4gIDM1OlxcdCNkZWZpbmUgUFJFU1RFUkFfRldfVkVSX01JTih2KSBcXFxcXFxuICAzNjpcXHRcXHQoKCh2KSAtIChQUkVTVEVSQV9GV19WRVJfTUFKKHYpICogUFJFU1RFUkFfRldfVkVSX01BSl9NVUwpKSAvIFxcXFxcXG4gIDM3OlxcdFxcdFxcdFxcdFBSRVNURVJBX0ZXX1ZFUl9NSU5fTVVMKVxcbiAgMzg6XFx0XFxuICAzOTpcXHQjZGVmaW5lIFBSRVNURVJBX0ZXX1ZFUl9QQVRDSCh2KSBcXFxcXFxuICA0MDpcXHRcXHQoKHYpIC0gKFBSRVNURVJBX0ZXX1ZFUl9NQUoodikgKiBQUkVTVEVSQV9GV19WRVJfTUFKX01VTCkgLSBcXFxcXFxuICA0MTpcXHRcXHRcXHRcXHQoUFJFU1RFUkFfRldfVkVSX01JTih2KSAqIFBSRVNURVJBX0ZXX1ZFUl9NSU5fTVVMKSlcXG4gIDQyOlxcdFxcbiAgNDM6XFx0ZW51bSBwcmVzdGVyYV9wY2lfYmFyX3Qge1xcbiAgNDQ6XFx0XFx0UFJFU1RFUkFfUENJX0JBUl9GVyA9IDIsXFxuICA0NTpcXHRcXHRQUkVTVEVSQV9QQ0lfQkFSX1BQID0gNCxcXG4gIDQ2OlxcdH07XFxuICA0NzpcXHRcXG4gIDQ4OlxcdHN0cnVjdCBwcmVzdGVyYV9md19oZWFkZXIge1xcbiAgNDk6XFx0XFx0X19iZTMyIG1hZ2ljX251bWJlcjtcXG4gIDUwOlxcdFxcdF9fYmUzMiB2ZXJzaW9uX3ZhbHVlO1xcbiAgNTE6XFx0XFx0dTggcmVzZXJ2ZWRbOF07XFxuICA1MjpcXHR9O1xcbiAgNTM6XFx0XFxuICA1NDpcXHRzdHJ1Y3QgcHJlc3RlcmFfbGRyX3JlZ3Mge1xcbiAgNTU6XFx0XFx0dTMyIGxkcl9yZWFkeTtcXG4gIDU2OlxcdFxcdHUzMiBwYWQxO1xcbiAgNTc6XFx0XFxuICA1ODpcXHRcXHR1MzIgbGRyX2ltZ19zaXplO1xcbiAgNTk6XFx0XFx0dTMyIGxkcl9jdGxfZmxhZ3M7XFxuICA2MDpcXHRcXG4gIDYxOlxcdFxcdHUzMiBsZHJfYnVmX29mZnM7XFxuICA2MjpcXHRcXHR1MzIgbGRyX2J1Zl9zaXplO1xcbiAgNjM6XFx0XFxuICA2NDpcXHRcXHR1MzIgbGRyX2J1Zl9yZDtcXG4gIDY1OlxcdFxcdHUzMiBwYWQyO1xcbiAgNjY6XFx0XFx0dTMyIGxkcl9idWZfd3I7XFxuICA2NzpcXHRcXG4gIDY4OlxcdFxcdHUzMiBsZHJfc3RhdHVzO1xcbiAgNjk6XFx0fTtcXG4gIDcwOlxcdFxcbiAgNzE6XFx0I2RlZmluZSBQUkVTVEVSQV9MRFJfUkVHX09GRlNFVChmKVxcdG9mZnNldG9mKHN0cnVjdCBwcmVzdGVyYV9sZHJfcmVncywgZilcXG4gIDcyOlxcdFxcbiAgNzM6XFx0I2RlZmluZSBQUkVTVEVSQV9MRFJfUkVBRFlfTUFHSUNcXHQweGYwMGRmZWVkXFxuICA3NDpcXHRcXG4gIDc1OlxcdCNkZWZpbmUgUFJFU1RFUkFfTERSX1NUQVRVU19JTUdfRExcXHRCSVQoMClcXG4gIDc2OlxcdCNkZWZpbmUgUFJFU1RFUkFfTERSX1NUQVRVU19TVEFSVF9GV1xcdEJJVCgxKVxcbiAgNzc6XFx0I2RlZmluZSBQUkVTVEVSQV9MRFJfU1RBVFVTX0lOVkFMSURfSU1HXFx0QklUKDIpXFxuICA3ODpcXHQjZGVmaW5lIFBSRVNURVJBX0xEUl9TVEFUVVNfTk9NRU1cXHRCSVQoMylcXG4gIDc5OlxcdFxcbiAgODA6XFx0I2RlZmluZSBQUkVTVEVSQV9MRFJfUkVHX0JBU0UoZncpXFx0KChmdyktXFx1MDAzZWxkcl9yZWdzKVxcbiAgODE6XFx0I2RlZmluZSBQUkVTVEVSQV9MRFJfUkVHX0FERFIoZncsIHJlZylcXHQoUFJFU1RFUkFfTERSX1JFR19CQVNFKGZ3KSArIChyZWcpKVxcbiAgODI6XFx0XFxuICA4MzpcXHQvKiBmdyBsb2FkZXIgcmVnaXN0ZXJzICovXFxuICA4NDpcXHQjZGVmaW5lIFBSRVNURVJBX0xEUl9SRUFEWV9SRUdcXHRcXHRQUkVTVEVSQV9MRFJfUkVHX09GRlNFVChsZHJfcmVhZHkpXFxuICA4NTpcXHQjZGVmaW5lIFBSRVNURVJBX0xEUl9JTUdfU0laRV9SRUdcXHRQUkVTVEVSQV9MRFJfUkVHX09GRlNFVChsZHJfaW1nX3NpemUpXFxuICA4NjpcXHQjZGVmaW5lIFBSRVNURVJBX0xEUl9DVExfUkVHXFx0XFx0UFJFU1RFUkFfTERSX1JFR19PRkZTRVQobGRyX2N0bF9mbGFncylcXG4gIDg3OlxcdCNkZWZpbmUgUFJFU1RFUkFfTERSX0JVRl9TSVpFX1JFR1xcdFBSRVNURVJBX0xEUl9SRUdfT0ZGU0VUKGxkcl9idWZfc2l6ZSlcXG4gIDg4OlxcdCNkZWZpbmUgUFJFU1RFUkFfTERSX0JVRl9PRkZTX1JFR1xcdFBSRVNURVJBX0xEUl9SRUdfT0ZGU0VUKGxkcl9idWZfb2ZmcylcXG4gIDg5OlxcdCNkZWZpbmUgUFJFU1RFUkFfTERSX0JVRl9SRF9SRUdcXHRcXHRQUkVTVEVSQV9MRFJfUkVHX09GRlNFVChsZHJfYnVmX3JkKVxcbiAgOTA6XFx0I2RlZmluZSBQUkVTVEVSQV9MRFJfQlVGX1dSX1JFR1xcdFxcdFBSRVNURVJBX0xEUl9SRUdfT0ZGU0VUKGxkcl9idWZfd3IpXFxuICA5MTpcXHQjZGVmaW5lIFBSRVNURVJBX0xEUl9TVEFUVVNfUkVHXFx0XFx0UFJFU1RFUkFfTERSX1JFR19PRkZTRVQobGRyX3N0YXR1cylcXG4gIDkyOlxcdFxcbiAgOTM6XFx0I2RlZmluZSBQUkVTVEVSQV9MRFJfQ1RMX0RMX1NUQVJUXFx0QklUKDApXFxuICA5NDpcXHRcXG4gIDk1OlxcdCNkZWZpbmUgUFJFU1RFUkFfRVZUX1FOVU1fTUFYXFx0NFxcbiAgOTY6XFx0XFxuICA5NzpcXHRzdHJ1Y3QgcHJlc3RlcmFfZndfZXZ0cV9yZWdzIHtcXG4gIDk4OlxcdFxcdHUzMiByZF9pZHg7XFxuICA5OTpcXHRcXHR1MzIgcGFkMTtcXG4gMTAwOlxcdFxcdHUzMiB3cl9pZHg7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDA3OjI5OjMzLjY0Njc4NTk3M1oiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjI1MDkzMzAxOTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6XG5cbioqRGl2aW5nIERlZXBlciBpbnRvIGBwcmVzdGVyYV9wY2kuY2AqKlxuXG5Pa2F5LCB0aW1lIHRvIHN5c3RlbWF0aWNhbGx5IGdvIHRocm91Z2ggdGhlIHJlbWFpbmluZyBwYXJ0cyBvZiBgcHJlc3RlcmFfcGNpLmNgLiBJJ3ZlIGFscmVhZHkgZ290IGEgZ29vZCBncmFzcCBvbiB0aGUgYXJjaGl0ZWN0dXJlLCBidXQgbm93IEkgbmVlZCB0byBzb2xpZGlmeSBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBkcml2ZXIncyBzcGVjaWZpY3MuIFNwZWNpZmljYWxseSwgSSdtIGZvY3VzaW5nIG9uIHR3byBrZXkgYXJlYXM6IHRoZSBQQ0kgZHJpdmVyIGRldmljZSBJRHMgYW5kIHRoZSBgcHJvYmVgIGZ1bmN0aW9uLiBUaGUgZGV2aWNlIElEcyB3aWxsIGRlZmluZSB3aGljaCBQQ0kgZGV2aWNlcyB0aGlzIGRyaXZlciBpcyBkZXNpZ25lZCB0byBoYW5kbGUsIHdoaWNoIGlzIGNyaXRpY2FsLiBJIG5lZWQgdG8gc2VlIHRoZSByYW5nZSBhbmQgc2NvcGUgb2YgZGV2aWNlcyBpdCBjb3ZlcnMsIGFuZCBpZiBhbnl0aGluZyBzZWVtcyB1bnVzdWFsIG9yIGNvdWxkIGJlIGEgcG90ZW50aWFsIHBvaW50IG9mIGNvbmZsaWN0LiBUaGVuLCB0aGUgYHByb2JlYCBmdW5jdGlvbiBpdHNlbGYuIFRoaXMgaXMgd2hlcmUgdGhlIHJ1YmJlciBtZWV0cyB0aGUgcm9hZC4gSXQncyB0aGUgY29yZSBvZiB0aGUgZGV2aWNlIGluaXRpYWxpemF0aW9uIGFuZCBjb25uZWN0aW9uIHRvIHRoZSBkcml2ZXIuIEkgbmVlZCB0byB0cmFjZSBpdHMgbG9naWMgdmVyeSBjYXJlZnVsbHksIHBheWluZyBjbG9zZSBhdHRlbnRpb24gdG8gcmVzb3VyY2UgYWxsb2NhdGlvbiwgZGV2aWNlIGNvbmZpZ3VyYXRpb24sIGludGVycnVwdCBzZXR1cCwgYW5kIGhvdyBpdCBoYW5kbGVzIHBvdGVudGlhbCBlcnJvcnMuIEknbGwgYmUgbG9va2luZyBmb3IgYW55IHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbnMsIHJlc291cmNlIGxlYWtzLCBvciBpbmVmZmljaWVudCBtZXRob2RzLiBJJ2xsIG5lZWQgdG8gc2NydXRpbml6ZSBob3cgaXQgaGFuZGxlcyBkaWZmZXJlbnQgaGFyZHdhcmUgcmV2aXNpb25zIG9yIHBvdGVudGlhbCBjb3JuZXIgY2FzZXMuIFRoaXMgbGV2ZWwgb2YgZGV0YWlsIGlzIGtleSBmb3IgYW50aWNpcGF0aW5nIHBvdGVudGlhbCBpc3N1ZXMsIGFuZCwgb2YgY291cnNlLCBtYWtpbmcgc3VyZSBpdCBmb2xsb3dzIGJlc3QgcHJhY3RpY2VzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjE3NCwiT3V0cHV0VG9rZW5zIjo0OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI3LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMDc6Mjk6MzYuMTU2MTIwNjI4WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NTUwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3BjaS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDc1MCxcbiAgXCJMaW5lQ291bnRcIjogMTAwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiA3NTA6XFx0XFx0ZGV2X2luZm8oZnctXFx1MDAzZWRldi5kZXYsIFxcXCJMb2FkaW5nICVzIC4uLlxcXCIsIGZ3X3BhdGgpO1xcbiA3NTE6XFx0XFxuIDc1MjpcXHRcXHRmdy1cXHUwMDNlcmV2X3N1cHAubWFqID0gdmVyX21hajtcXG4gNzUzOlxcdFxcdGZ3LVxcdTAwM2VyZXZfc3VwcC5taW4gPSB2ZXJfbWluO1xcbiA3NTQ6XFx0XFx0ZnctXFx1MDAzZXJldl9zdXBwLnN1YiA9IDA7XFxuIDc1NTpcXHRcXG4gNzU2OlxcdFxcdHJldHVybiAwO1xcbiA3NTc6XFx0fVxcbiA3NTg6XFx0XFxuIDc1OTpcXHRzdGF0aWMgdm9pZCBwcmVzdGVyYV9md19wdXQoc3RydWN0IHByZXN0ZXJhX2Z3ICpmdylcXG4gNzYwOlxcdHtcXG4gNzYxOlxcdFxcdHJlbGVhc2VfZmlybXdhcmUoZnctXFx1MDAzZWJpbik7XFxuIDc2MjpcXHR9XFxuIDc2MzpcXHRcXG4gNzY0OlxcdHN0YXRpYyBpbnQgcHJlc3RlcmFfZndfbG9hZChzdHJ1Y3QgcHJlc3RlcmFfZncgKmZ3KVxcbiA3NjU6XFx0e1xcbiA3NjY6XFx0XFx0c2l6ZV90IGhsZW4gPSBzaXplb2Yoc3RydWN0IHByZXN0ZXJhX2Z3X2hlYWRlcik7XFxuIDc2NzpcXHRcXHRpbnQgZXJyO1xcbiA3Njg6XFx0XFxuIDc2OTpcXHRcXHRlcnIgPSBwcmVzdGVyYV9sZHJfd2FpdF9yZWczMihmdywgUFJFU1RFUkFfTERSX1JFQURZX1JFRyxcXG4gNzcwOlxcdFxcdFxcdFxcdFxcdCAgICAgIFBSRVNURVJBX0xEUl9SRUFEWV9NQUdJQyxcXG4gNzcxOlxcdFxcdFxcdFxcdFxcdCAgICAgIDUgKiBNU0VDX1BFUl9TRUMpO1xcbiA3NzI6XFx0XFx0aWYgKGVycikge1xcbiA3NzM6XFx0XFx0XFx0ZGV2X2Vycihmdy1cXHUwMDNlZGV2LmRldiwgXFxcIndhaXRpbmcgZm9yIEZXIGxvYWRlciBpcyB0aW1lZCBvdXRcXFwiKTtcXG4gNzc0OlxcdFxcdFxcdHJldHVybiBlcnI7XFxuIDc3NTpcXHRcXHR9XFxuIDc3NjpcXHRcXG4gNzc3OlxcdFxcdGZ3LVxcdTAwM2VsZHJfcmluZ19idWYgPSBmdy1cXHUwMDNlbGRyX3JlZ3MgK1xcbiA3Nzg6XFx0XFx0XFx0cHJlc3RlcmFfbGRyX3JlYWQoZncsIFBSRVNURVJBX0xEUl9CVUZfT0ZGU19SRUcpO1xcbiA3Nzk6XFx0XFxuIDc4MDpcXHRcXHRmdy1cXHUwMDNlbGRyX2J1Zl9sZW4gPVxcbiA3ODE6XFx0XFx0XFx0cHJlc3RlcmFfbGRyX3JlYWQoZncsIFBSRVNURVJBX0xEUl9CVUZfU0laRV9SRUcpO1xcbiA3ODI6XFx0XFxuIDc4MzpcXHRcXHRmdy1cXHUwMDNlbGRyX3dyX2lkeCA9IDA7XFxuIDc4NDpcXHRcXG4gNzg1OlxcdFxcdGVyciA9IHByZXN0ZXJhX2Z3X2dldChmdyk7XFxuIDc4NjpcXHRcXHRpZiAoZXJyKVxcbiA3ODc6XFx0XFx0XFx0cmV0dXJuIGVycjtcXG4gNzg4OlxcdFxcbiA3ODk6XFx0XFx0ZXJyID0gcHJlc3RlcmFfZndfaGRyX3BhcnNlKGZ3KTtcXG4gNzkwOlxcdFxcdGlmIChlcnIpIHtcXG4gNzkxOlxcdFxcdFxcdGRldl9lcnIoZnctXFx1MDAzZWRldi5kZXYsIFxcXCJGVyBpbWFnZSBoZWFkZXIgaXMgaW52YWxpZFxcXFxuXFxcIik7XFxuIDc5MjpcXHRcXHRcXHRnb3RvIG91dF9yZWxlYXNlO1xcbiA3OTM6XFx0XFx0fVxcbiA3OTQ6XFx0XFxuIDc5NTpcXHRcXHRwcmVzdGVyYV9sZHJfd3JpdGUoZncsIFBSRVNURVJBX0xEUl9JTUdfU0laRV9SRUcsIGZ3LVxcdTAwM2ViaW4tXFx1MDAzZXNpemUgLSBobGVuKTtcXG4gNzk2OlxcdFxcdHByZXN0ZXJhX2xkcl93cml0ZShmdywgUFJFU1RFUkFfTERSX0NUTF9SRUcsIFBSRVNURVJBX0xEUl9DVExfRExfU1RBUlQpO1xcbiA3OTc6XFx0XFxuIDc5ODpcXHRcXHRlcnIgPSBwcmVzdGVyYV9sZHJfZndfc2VuZChmdywgZnctXFx1MDAzZWJpbi1cXHUwMDNlZGF0YSArIGhsZW4sXFxuIDc5OTpcXHRcXHRcXHRcXHRcXHQgICBmdy1cXHUwMDNlYmluLVxcdTAwM2VzaXplIC0gaGxlbik7XFxuIDgwMDpcXHRcXG4gODAxOlxcdG91dF9yZWxlYXNlOlxcbiA4MDI6XFx0XFx0cHJlc3RlcmFfZndfcHV0KGZ3KTtcXG4gODAzOlxcdFxcdHJldHVybiBlcnI7XFxuIDgwNDpcXHR9XFxuIDgwNTpcXHRcXG4gODA2OlxcdHN0YXRpYyBib29sIHByZXN0ZXJhX3BjaV9wcF91c2VfYmFyMihzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4gODA3OlxcdHtcXG4gODA4OlxcdFxcdHN3aXRjaCAocGRldi1cXHUwMDNlZGV2aWNlKSB7XFxuIDgwOTpcXHRcXHRjYXNlIFBSRVNURVJBX0RFVl9JRF85OERYNzMxMk06XFxuIDgxMDpcXHRcXHRjYXNlIFBSRVNURVJBX0RFVl9JRF85OERYMzUwMDpcXG4gODExOlxcdFxcdGNhc2UgUFJFU1RFUkFfREVWX0lEXzk4RFgzNTAxOlxcbiA4MTI6XFx0XFx0Y2FzZSBQUkVTVEVSQV9ERVZfSURfOThEWDM1MTA6XFxuIDgxMzpcXHRcXHRjYXNlIFBSRVNURVJBX0RFVl9JRF85OERYMzUyMDpcXG4gODE0OlxcdFxcdFxcdHJldHVybiB0cnVlO1xcbiA4MTU6XFx0XFxuIDgxNjpcXHRcXHRkZWZhdWx0OlxcbiA4MTc6XFx0XFx0XFx0cmV0dXJuIGZhbHNlO1xcbiA4MTg6XFx0XFx0fVxcbiA4MTk6XFx0fVxcbiA4MjA6XFx0XFxuIDgyMTpcXHRzdGF0aWMgdTMyIHByZXN0ZXJhX3BjaV9wcF9iYXIyX29mZnMoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuIDgyMjpcXHR7XFxuIDgyMzpcXHRcXHRpZiAocGNpX3Jlc291cmNlX2xlbihwZGV2LCAyKSA9PSAweDEwMDAwMDApXFxuIDgyNDpcXHRcXHRcXHRyZXR1cm4gMHgwO1xcbiA4MjU6XFx0XFx0ZWxzZVxcbiA4MjY6XFx0XFx0XFx0cmV0dXJuIChwY2lfcmVzb3VyY2VfbGVuKHBkZXYsIDIpIC8gMik7XFxuIDgyNzpcXHR9XFxuIDgyODpcXHRcXG4gODI5OlxcdHN0YXRpYyB1MzIgcHJlc3RlcmFfcGNpX2Z3X2JhcjJfb2ZmcyhzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4gODMwOlxcdHtcXG4gODMxOlxcdFxcdGlmIChwY2lfcmVzb3VyY2VfbGVuKHBkZXYsIDIpID09IDB4MTAwMDAwMClcXG4gODMyOlxcdFxcdFxcdHJldHVybiAweDQwMDAwMDtcXG4gODMzOlxcdFxcdGVsc2VcXG4gODM0OlxcdFxcdFxcdHJldHVybiAweDA7XFxuIDgzNTpcXHR9XFxuIDgzNjpcXHRcXG4gODM3OlxcdHN0YXRpYyBpbnQgcHJlc3RlcmFfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbiA4Mzg6XFx0XFx0XFx0XFx0ICAgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbiA4Mzk6XFx0e1xcbiA4NDA6XFx0XFx0Y29uc3QgY2hhciAqZHJpdmVyX25hbWUgPSBkZXZfZHJpdmVyX3N0cmluZyhcXHUwMDI2cGRldi1cXHUwMDNlZGV2KTtcXG4gODQxOlxcdFxcdHU4IF9faW9tZW0gKm1lbV9hZGRyLCAqcHBfYWRkciA9IE5VTEw7XFxuIDg0MjpcXHRcXHRzdHJ1Y3QgcHJlc3RlcmFfZncgKmZ3O1xcbiA4NDM6XFx0XFx0aW50IGVycjtcXG4gODQ0OlxcdFxcbiA4NDU6XFx0XFx0ZXJyID0gcGNpbV9lbmFibGVfZGV2aWNlKHBkZXYpO1xcbiA4NDY6XFx0XFx0aWYgKGVycikge1xcbiA4NDc6XFx0XFx0XFx0ZGV2X2VycihcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBcXFwicGNpX2VuYWJsZV9kZXZpY2UgZmFpbGVkXFxcXG5cXFwiKTtcXG4gODQ4OlxcdFxcdFxcdGdvdG8gZXJyX3BjaV9lbmFibGVfZGV2aWNlO1xcbiA4NDk6XFx0XFx0fVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QwNzoyOTozNi4xNTYyODA5NzhaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjM2MDAwMzMxNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIHJldmlld2luZyBgcHJlc3RlcmFfcGNpLmNgOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBQQ0kgRGV2aWNlIFRhYmxlIGluIHByZXN0ZXJhX3BjaS5jKipcblxuQWxyaWdodCwgdGltZSB0byBkaWcgZGVlcGVyIGludG8gdGhpcyBgcHJlc3RlcmFfcGNpLmNgIGZpbGUuIEkgbmVlZCB0byBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIGhvdyB0aGUgUENJIGRldmljZXMgYXJlIGhhbmRsZWQuIFNwZWNpZmljYWxseSwgSSdtIGdvaW5nIHRvIGZvY3VzIG9uIHdoZXJlIHRoZSBQQ0kgZGV2aWNlIHRhYmxlIGlzIGRlZmluZWQgYW5kIHBvcHVsYXRlZC4gVW5kZXJzdGFuZGluZyB0aGlzIHRhYmxlIGlzIGFic29sdXRlbHkgY3J1Y2lhbCB0byBncmFzcGluZyBob3cgdGhlIGRyaXZlciBpbnRlcmFjdHMgd2l0aCB0aGUgaGFyZHdhcmUuIEkgd2FudCB0byBzZWUgaG93IHRoZSBzeXN0ZW0gaWRlbnRpZmllcyBhbmQgY29uZmlndXJlcyB0aGVzZSBQcmVzdGVyYS1zcGVjaWZpYyBkZXZpY2VzIG9uIHRoZSBQQ0kgYnVzLiBMZXQncyBzZWUgaG93IHRoZSByZXN0IG9mIHRoaXMgY29kZSBsYXlzIHRoaW5ncyBvdXQuIEhvcGVmdWxseSwgaXQncyB3ZWxsLWNvbW1lbnRlZCBhbmQgZWFzeSB0byBuYXZpZ2F0ZSFcblxuXG4iLCJJbnB1dFRva2VucyI6MjQwOTUsIk91dHB1dFRva2VucyI6NDgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDA3OjI5OjM4LjUxNjI4Njg3NVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjM4ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9wY2kuY1wiLFxuICBcIkZpcnN0TGluZVwiOiA5MTAsXG4gIFwiTGluZUNvdW50XCI6IDYwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiA5MTA6XFx0XFx0SU5JVF9XT1JLKFxcdTAwMjZmdy1cXHUwMDNlZXZ0X3dvcmssIHByZXN0ZXJhX2Z3X2V2dF93b3JrX2ZuKTtcXG4gOTExOlxcdFxcbiA5MTI6XFx0XFx0ZXJyID0gcGNpX2FsbG9jX2lycV92ZWN0b3JzKHBkZXYsIDEsIDEsIFBDSV9JUlFfTVNJKTtcXG4gOTEzOlxcdFxcdGlmIChlcnIgXFx1MDAzYyAwKSB7XFxuIDkxNDpcXHRcXHRcXHRkZXZfZXJyKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIFxcXCJNU0kgSVJRIGluaXQgZmFpbGVkXFxcXG5cXFwiKTtcXG4gOTE1OlxcdFxcdFxcdGdvdG8gZXJyX2lycV9hbGxvYztcXG4gOTE2OlxcdFxcdH1cXG4gOTE3OlxcdFxcbiA5MTg6XFx0XFx0ZXJyID0gcmVxdWVzdF9pcnEocGNpX2lycV92ZWN0b3IocGRldiwgMCksIHByZXN0ZXJhX3BjaV9pcnFfaGFuZGxlcixcXG4gOTE5OlxcdFxcdFxcdFxcdCAgMCwgZHJpdmVyX25hbWUsIGZ3KTtcXG4gOTIwOlxcdFxcdGlmIChlcnIpIHtcXG4gOTIxOlxcdFxcdFxcdGRldl9lcnIoXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgXFxcImZhaWwgdG8gcmVxdWVzdCBJUlFcXFxcblxcXCIpO1xcbiA5MjI6XFx0XFx0XFx0Z290byBlcnJfcmVxdWVzdF9pcnE7XFxuIDkyMzpcXHRcXHR9XFxuIDkyNDpcXHRcXG4gOTI1OlxcdFxcdGVyciA9IHByZXN0ZXJhX2RldmljZV9yZWdpc3RlcihcXHUwMDI2ZnctXFx1MDAzZWRldik7XFxuIDkyNjpcXHRcXHRpZiAoZXJyKVxcbiA5Mjc6XFx0XFx0XFx0Z290byBlcnJfcHJlc3RlcmFfZGV2X3JlZ2lzdGVyO1xcbiA5Mjg6XFx0XFxuIDkyOTpcXHRcXHRyZXR1cm4gMDtcXG4gOTMwOlxcdFxcbiA5MzE6XFx0ZXJyX3ByZXN0ZXJhX2Rldl9yZWdpc3RlcjpcXG4gOTMyOlxcdFxcdGZyZWVfaXJxKHBjaV9pcnFfdmVjdG9yKHBkZXYsIDApLCBmdyk7XFxuIDkzMzpcXHRlcnJfcmVxdWVzdF9pcnE6XFxuIDkzNDpcXHRcXHRwY2lfZnJlZV9pcnFfdmVjdG9ycyhwZGV2KTtcXG4gOTM1OlxcdGVycl9pcnFfYWxsb2M6XFxuIDkzNjpcXHRcXHRkZXN0cm95X3dvcmtxdWV1ZShmdy1cXHUwMDNld3EpO1xcbiA5Mzc6XFx0ZXJyX3dxX2FsbG9jOlxcbiA5Mzg6XFx0XFx0cHJlc3RlcmFfZndfdW5pbml0KGZ3KTtcXG4gOTM5OlxcdGVycl9wcmVzdGVyYV9md19pbml0OlxcbiA5NDA6XFx0ZXJyX3BjaV9kZXZfYWxsb2M6XFxuIDk0MTpcXHRlcnJfcHBfaW9yZW1hcDpcXG4gOTQyOlxcdGVycl9tZW1faW9yZW1hcDpcXG4gOTQzOlxcdGVycl9kbWFfbWFzazpcXG4gOTQ0OlxcdGVycl9wY2lfcmVxdWVzdF9yZWdpb25zOlxcbiA5NDU6XFx0ZXJyX3BjaV9lbmFibGVfZGV2aWNlOlxcbiA5NDY6XFx0XFx0cmV0dXJuIGVycjtcXG4gOTQ3OlxcdH1cXG4gOTQ4OlxcdFxcbiA5NDk6XFx0c3RhdGljIHZvaWQgcHJlc3RlcmFfcGNpX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4gOTUwOlxcdHtcXG4gOTUxOlxcdFxcdHN0cnVjdCBwcmVzdGVyYV9mdyAqZncgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7XFxuIDk1MjpcXHRcXG4gOTUzOlxcdFxcdHByZXN0ZXJhX2RldmljZV91bnJlZ2lzdGVyKFxcdTAwMjZmdy1cXHUwMDNlZGV2KTtcXG4gOTU0OlxcdFxcdGZyZWVfaXJxKHBjaV9pcnFfdmVjdG9yKHBkZXYsIDApLCBmdyk7XFxuIDk1NTpcXHRcXHRwY2lfZnJlZV9pcnFfdmVjdG9ycyhwZGV2KTtcXG4gOTU2OlxcdFxcdGRlc3Ryb3lfd29ya3F1ZXVlKGZ3LVxcdTAwM2V3cSk7XFxuIDk1NzpcXHRcXHRwcmVzdGVyYV9md191bmluaXQoZncpO1xcbiA5NTg6XFx0fVxcbiA5NTk6XFx0XFxuIDk2MDpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgcHJlc3RlcmFfcGNpX2RldmljZXNbXSA9IHtcXG4gOTYxOlxcdFxcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01BUlZFTEwsIFBSRVNURVJBX0RFVl9JRF9BQzNYXzk4RFhfNTUpIH0sXFxuIDk2MjpcXHRcXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NQVJWRUxMLCBQUkVTVEVSQV9ERVZfSURfQUMzWF85OERYXzY1KSB9LFxcbiA5NjM6XFx0XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUFSVkVMTCwgUFJFU1RFUkFfREVWX0lEX0FMRFJJTjIpIH0sXFxuIDk2NDpcXHRcXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NQVJWRUxMLCBQUkVTVEVSQV9ERVZfSURfOThEWDczMTJNKSB9LFxcbiA5NjU6XFx0XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUFSVkVMTCwgUFJFU1RFUkFfREVWX0lEXzk4RFgzNTAwKSB9LFxcbiA5NjY6XFx0XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUFSVkVMTCwgUFJFU1RFUkFfREVWX0lEXzk4RFgzNTAxKSB9LFxcbiA5Njc6XFx0XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUFSVkVMTCwgUFJFU1RFUkFfREVWX0lEXzk4RFgzNTEwKSB9LFxcbiA5Njg6XFx0XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUFSVkVMTCwgUFJFU1RFUkFfREVWX0lEXzk4RFgzNTIwKSB9LFxcbiA5Njk6XFx0XFx0eyB9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDA3OjI5OjM4LjUxNjQ1MzAxNVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo2MTA5MDAxNDI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFwiV29ydGhGdXp6aW5nXCIgQ3JpdGVyaWEqKlxuXG5Pa2F5LCBsZXQncyBzZWUsIHRoZSBpbnN0cnVjdGlvbnMgaW4gU2VjdGlvbiAyIHJlZ2FyZGluZyB3aGVuICpub3QqIHRvIGZ1enogYXJlIGNsZWFyLiBXZSdyZSBsb29raW5nIGF0IFwiTkVHQVRJVkUgQ1JJVEVSSUEsXCIgc3BlY2lmaWNhbGx5IHdoZW4gd2Ugc2hvdWxkIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC4gVGhlIHJlbGV2YW50IGNvbmRpdGlvbiBoZXJlIGlzIFwiU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlLlwiIEl0IHNwZWNpZmllcyB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVycyBmb3IgdGhpbmdzIGxpa2UgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBhbmQgR1BVcywgdGhhdCByZXF1aXJlIHNwZWNpYWxpemVkIHBoeXNpY2FsIGhhcmR3YXJlIChBU0lDL1BDSWUgY2FyZHMpIHRoYXQgKmFyZW4ndCogZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cblxuTm93LCBJIGtub3cgdGhlIE1hcnZlbGwgUHJlc3RlcmEgc3dpdGNoIEFTSUNzIGZhbWlseSwgbGlrZSB0aGUgQWxkcmluMiBhbmQgOThEWCogc2VyaWVzLCBhbmQgQUMzWCwgZmFsbHMgc3F1YXJlbHkgaW50byB0aGF0IGNhdGVnb3J5LiBJdOKAmXMgYSB2ZW5kb3Itc3BlY2lmaWMgc3dpdGNoIEFTSUMgZHJpdmVyLCBtZWFuaW5nIGl0IGFic29sdXRlbHkgcmVxdWlyZXMgc3BlY2lmaWMgaGFyZHdhcmUgKHRoZSBwaHlzaWNhbCBBU0lDcyBhbmQgUENJZSBjYXJkcykgYW5kIGl0cyBmaXJtd2FyZSB0byBmdW5jdGlvbiBwcm9wZXJseS4gV2UgY2FuJ3QgcmVhZGlseSBzaW11bGF0ZSBvciBlbXVsYXRlIHRoaXMgZW52aXJvbm1lbnQgdXNpbmcgc3RhbmRhcmQgUUVNVSBvciBpbiBhIHRvb2wgbGlrZSBzeXprYWxsZXIuIFRoZXJlZm9yZSwgdGhpcyBmaXRzIHRoZSBcInN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZVwiIGNyaXRlcmlhIHBlcmZlY3RseS4gR2l2ZW4gdGhhdCwgSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGVyZSBhcmVuJ3QgYW55IG90aGVyIHJlbGF0ZWQgZmlsZXMgb3IgbW9kdWxlcyB0aGF0IG1pZ2h0IGNvbXBsaWNhdGUgdGhlIGRlY2lzaW9uLCBidXQgbXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgdGhpcyBpcyBkZWZpbml0ZWx5IG5vdCBmdXp6YWJsZSBpbiBvdXIgY3VycmVudCBzZXR1cC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjU0NzYsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOTgsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QwNzoyOTo0NC42MjU0NTcwN1oiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJjb2Rlc2VhcmNoLWRpci1pbmRleCIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwOTM0OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkRpclwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmFcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRmlsZXNcIjogW1xuICAgIFwicHJlc3RlcmEuaFwiLFxuICAgIFwicHJlc3RlcmFfYWNsLmNcIixcbiAgICBcInByZXN0ZXJhX2FjbC5oXCIsXG4gICAgXCJwcmVzdGVyYV9jb3VudGVyLmNcIixcbiAgICBcInByZXN0ZXJhX2NvdW50ZXIuaFwiLFxuICAgIFwicHJlc3RlcmFfZGV2bGluay5jXCIsXG4gICAgXCJwcmVzdGVyYV9kZXZsaW5rLmhcIixcbiAgICBcInByZXN0ZXJhX2RzYS5jXCIsXG4gICAgXCJwcmVzdGVyYV9kc2EuaFwiLFxuICAgIFwicHJlc3RlcmFfZXRodG9vbC5jXCIsXG4gICAgXCJwcmVzdGVyYV9ldGh0b29sLmhcIixcbiAgICBcInByZXN0ZXJhX2Zsb3cuY1wiLFxuICAgIFwicHJlc3RlcmFfZmxvdy5oXCIsXG4gICAgXCJwcmVzdGVyYV9mbG93ZXIuY1wiLFxuICAgIFwicHJlc3RlcmFfZmxvd2VyLmhcIixcbiAgICBcInByZXN0ZXJhX2h3LmNcIixcbiAgICBcInByZXN0ZXJhX2h3LmhcIixcbiAgICBcInByZXN0ZXJhX21haW4uY1wiLFxuICAgIFwicHJlc3RlcmFfbWF0Y2hhbGwuY1wiLFxuICAgIFwicHJlc3RlcmFfbWF0Y2hhbGwuaFwiLFxuICAgIFwicHJlc3RlcmFfcGNpLmNcIixcbiAgICBcInByZXN0ZXJhX3JvdXRlci5jXCIsXG4gICAgXCJwcmVzdGVyYV9yb3V0ZXJfaHcuY1wiLFxuICAgIFwicHJlc3RlcmFfcm91dGVyX2h3LmhcIixcbiAgICBcInByZXN0ZXJhX3J4dHguY1wiLFxuICAgIFwicHJlc3RlcmFfcnh0eC5oXCIsXG4gICAgXCJwcmVzdGVyYV9zcGFuLmNcIixcbiAgICBcInByZXN0ZXJhX3NwYW4uaFwiLFxuICAgIFwicHJlc3RlcmFfc3dpdGNoZGV2LmNcIixcbiAgICBcInByZXN0ZXJhX3N3aXRjaGRldi5oXCJcbiAgXSxcbiAgXCJTdWJkaXJzXCI6IG51bGxcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDA3OjI5OjQ0LjYyNTU2ODA1WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjI1OTMwNTcxOTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyBpZiBJIHdlcmUgdGhpbmtpbmcgdGhlc2UgdGhvdWdodHM6XG5cbioqQW5hbHl6aW5nIHRoZSBIYXJkd2FyZSBDb3VudGVyIEZ1bmN0aW9uKipcblxuT2theSwgc28gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGlzIGBwcmVzdGVyYV9od19jb3VudGVyc19nZXRgIGZ1bmN0aW9uLiBTcGVjaWZpY2FsbHksIGl0IHNlZW1zIGl0J3MgYmVlbiBtb2RpZmllZCByZWNlbnRseS4gUmlnaHQsIEkgcmVtZW1iZXIgdGhhdCBgcHJlc3RlcmFfaHdfY291bnRlcnNfZ2V0YCBpcyBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9ody5jYC4gVGltZSB0byBkaXZlIGludG8gdGhlIGNvZGUuIExldCdzIGdldCB0aGF0IGZpbGUgb3BlbiBhbmQgcmVhZCB0aHJvdWdoIHRoYXQgc3BlY2lmaWMgZnVuY3Rpb24gaW4gYHByZXN0ZXJhX2h3LmNgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0J3MgYmVlbiBjaGFuZ2VkIGFuZCBob3cgaXQgaW1wYWN0cyB0aGUgb3ZlcmFsbCBmbG93LiBMZXQncyBzZWUuLi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjYyNzYsIk91dHB1dFRva2VucyI6NDgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NywiVG9vbENhbGxzIjpbImNvZGVzZWFyY2gtZGlyLWluZGV4Il19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMDc6Mjk6NDcuMjE4NjI3ODM0WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxMzUwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmNcIixcbiAgXCJGaXJzdExpbmVcIjogMjMxMCxcbiAgXCJMaW5lQ291bnRcIjogNDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMjMxMDpcXHRcXHRzdHJ1Y3QgcHJlc3RlcmFfbXNnX2NvdW50ZXJfcmVzcCAqcmVzcDtcXG4yMzExOlxcdFxcdHN0cnVjdCBwcmVzdGVyYV9tc2dfY291bnRlcl9yZXEgcmVxID0ge1xcbjIzMTI6XFx0XFx0XFx0LmJsb2NrX2lkID0gX19jcHVfdG9fbGUzMihpZHgpLFxcbjIzMTM6XFx0XFx0XFx0Lm51bV9jb3VudGVycyA9IF9fY3B1X3RvX2xlMzIoKmxlbiksXFxuMjMxNDpcXHRcXHR9O1xcbjIzMTU6XFx0XFx0c2l6ZV90IHNpemUgPSBzdHJ1Y3Rfc2l6ZShyZXNwLCBzdGF0cywgKmxlbik7XFxuMjMxNjpcXHRcXHRpbnQgZXJyLCBpO1xcbjIzMTc6XFx0XFxuMjMxODpcXHRcXHRyZXNwID0ga21hbGxvYyhzaXplLCBHRlBfS0VSTkVMKTtcXG4yMzE5OlxcdFxcdGlmICghcmVzcClcXG4yMzIwOlxcdFxcdFxcdHJldHVybiAtRU5PTUVNO1xcbjIzMjE6XFx0XFxuMjMyMjpcXHRcXHRlcnIgPSBwcmVzdGVyYV9jbWRfcmV0KHN3LCBQUkVTVEVSQV9DTURfVFlQRV9DT1VOVEVSX0dFVCxcXG4yMzIzOlxcdFxcdFxcdFxcdCAgICAgICBcXHUwMDI2cmVxLmNtZCwgc2l6ZW9mKHJlcSksIFxcdTAwMjZyZXNwLVxcdTAwM2VyZXQsIHNpemUpO1xcbjIzMjQ6XFx0XFx0aWYgKGVycilcXG4yMzI1OlxcdFxcdFxcdGdvdG8gZnJlZV9idWZmO1xcbjIzMjY6XFx0XFxuMjMyNzpcXHRcXHRpZiAoX19sZTMyX3RvX2NwdShyZXNwLVxcdTAwM2VudW1fY291bnRlcnMpIFxcdTAwM2UgKmxlbikge1xcbjIzMjg6XFx0XFx0XFx0ZXJyID0gLUVJTlZBTDtcXG4yMzI5OlxcdFxcdFxcdGdvdG8gZnJlZV9idWZmO1xcbjIzMzA6XFx0XFx0fVxcbjIzMzE6XFx0XFxuMjMzMjpcXHRcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgX19sZTMyX3RvX2NwdShyZXNwLVxcdTAwM2VudW1fY291bnRlcnMpOyBpKyspIHtcXG4yMzMzOlxcdFxcdFxcdHN0YXRzW2ldLnBhY2tldHMgKz0gX19sZTY0X3RvX2NwdShyZXNwLVxcdTAwM2VzdGF0c1tpXS5wYWNrZXRzKTtcXG4yMzM0OlxcdFxcdFxcdHN0YXRzW2ldLmJ5dGVzICs9IF9fbGU2NF90b19jcHUocmVzcC1cXHUwMDNlc3RhdHNbaV0uYnl0ZXMpO1xcbjIzMzU6XFx0XFx0fVxcbjIzMzY6XFx0XFxuMjMzNzpcXHRcXHQqbGVuID0gX19sZTMyX3RvX2NwdShyZXNwLVxcdTAwM2VudW1fY291bnRlcnMpO1xcbjIzMzg6XFx0XFx0KmRvbmUgPSBfX2xlMzJfdG9fY3B1KHJlc3AtXFx1MDAzZWRvbmUpO1xcbjIzMzk6XFx0XFxuMjM0MDpcXHRmcmVlX2J1ZmY6XFxuMjM0MTpcXHRcXHRrZnJlZShyZXNwKTtcXG4yMzQyOlxcdFxcdHJldHVybiBlcnI7XFxuMjM0MzpcXHR9XFxuMjM0NDpcXHRcXG4yMzQ1OlxcdGludCBwcmVzdGVyYV9od19jb3VudGVyX2Jsb2NrX2dldChzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdyxcXG4yMzQ2OlxcdFxcdFxcdFxcdFxcdCAgdTMyIGNsaWVudCwgdTMyICpibG9ja19pZCwgdTMyICpvZmZzZXQsXFxuMjM0NzpcXHRcXHRcXHRcXHRcXHQgIHUzMiAqbnVtX2NvdW50ZXJzKVxcbjIzNDg6XFx0e1xcbjIzNDk6XFx0XFx0c3RydWN0IHByZXN0ZXJhX21zZ19jb3VudGVyX3Jlc3AgcmVzcDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMDc6Mjk6NDcuMjE4ODQzMzg1WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjI0NDExMTEyOTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQ2hlY2tpbmcgZm9yIFZpcnR1YWwgUFJFU1RFUkEgTmV0d29yayBEZXZpY2VzKipcblxuT2theSwgbGV0J3MganVzdCBtYWtlIHN1cmUgSSdtIG5vdCBtaXNzaW5nIGFueXRoaW5nIG9idmlvdXMgaGVyZS4gSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIGlmIHRoZXJlJ3MgYW55IGV4aXN0aW5nIHZpcnR1YWwgb3IgbW9jayBuZXR3b3JrIGRldmljZSBzdXBwb3J0IHdpdGhpbiB0aGUga2VybmVsIHRyZWUgc3BlY2lmaWNhbGx5IGZvciBQcmVzdGVyYS4gSSB2YWd1ZWx5IHJlY2FsbCBzb21ldGhpbmcsIGJ1dCBtZW1vcnkgaXNuJ3QgYWx3YXlzIHJlbGlhYmxlLiBUaGUgbW9zdCBsb2dpY2FsIGZpcnN0IHN0ZXAgaXMgdG8gcGVyZm9ybSBhIHRhcmdldGVkIHNlYXJjaC4gSSdsbCBmb2N1cyBteSBxdWVyeSB3aXRoaW4gdGhlIGBkcml2ZXJzL25ldGAgZGlyZWN0b3J5LCBiZWNhdXNlIHRoYXQncyB3aGVyZSBhbGwgdGhlIG5ldHdvcmstcmVsYXRlZCBkcml2ZXJzIGxpdmUuIEEgc2ltcGxlIGtleXdvcmQgc2VhcmNoIGZvciBcIlBSRVNURVJBXCIgc2hvdWxkIHlpZWxkIHRoZSByZWxldmFudCByZXN1bHRzIC0gZmluZ2VycyBjcm9zc2VkLiBIb3BlZnVsbHksIGl0J2xsIHR1cm4gdXAgc29tZXRoaW5nIEkgY2FuIHdvcmsgd2l0aC4gVGltZSB0byBzZWUgd2hhdCB0aGUga2VybmVsIHJldmVhbHMhXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3MTg0LCJPdXRwdXRUb2tlbnMiOjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzYsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QwNzoyOTo0OS42NTk5NTg5ODFaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1MTgwNTcwNzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiQ09ORklHX1BSRVNURVJBXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZToyOm9iai0kKENPTkZJR19QUkVTVEVSQSlcXHQrPSBwcmVzdGVyYS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZS0zLXByZXN0ZXJhLW9ianNcXHRcXHQ6PSBwcmVzdGVyYV9tYWluLm8gcHJlc3RlcmFfaHcubyBwcmVzdGVyYV9kc2EubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL01ha2VmaWxlLTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19QUkVTVEVSQV9QQ0kpXFx0Kz0gcHJlc3RlcmFfcGNpLm9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMDc6Mjk6NTQuMTc4MDcwNTI4WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjMyNDMzMjE4NzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudDogVGhpcyBDb2RlIGlzIFVuZnV6emFibGUqKlxuXG5Pa2F5LCBoZXJlJ3MgdGhlIHNpdHVhdGlvbi4gSSd2ZSBiZWVuIHRhc2tlZCB3aXRoIGFzc2Vzc2luZyBpZiB0aGlzIHNwZWNpZmljIGNvZGUgcmVsYXRlZCB0byB0aGUgTWFydmVsbCBQcmVzdGVyYSBzd2l0Y2ggZHJpdmVyLCBgUFJFU1RFUkFfUENJYCwgaXMgc3VpdGFibGUgZm9yIGZ1enppbmcuIEFmdGVyIGRpZ2dpbmcgaW4sIEkndmUgY29tZSB0byB0aGUgY29uY2x1c2lvbiB0aGF0IGl0IGlzbid0LCBhbmQgaGVyZSdzIHdoeS5cblxuVGhlIG9ubHkgaW50ZXJmYWNlIGRyaXZlciBpbiBwbGF5IGhlcmUgaXMgYFBSRVNURVJBX1BDSWAsIHdoaWNoIGlzIHNwZWNpZmljYWxseSBkZXNpZ25lZCB0byBpbnRlcmFjdCB3aXRoIE1hcnZlbGwgUHJlc3RlcmEgU3dpdGNoIEFTSUNzLiBJdCB0YWxrcyB0byB0aGUgaGFyZHdhcmUgdGhyb3VnaCBQQ0kgQkFScyBhbmQgbG9hZHMgYSBwcm9wcmlldGFyeSBmaXJtd2FyZSBmaWxlLCBgbXZzd19wcmVzdGVyYV9mdyouaW1nYC4gVGhlIGJpZywgZ2xhcmluZyBwcm9ibGVtPyBUaGlzIGhhcmR3YXJlIHNldHVwIGlzbid0IGVtdWxhdGVkIGluIHRoZSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS5cblxuU28sIGxldCdzIGJyZWFrIHRoaXMgZG93biBzeXN0ZW1hdGljYWxseS4gSSBuZWVkZWQgdG8gZW5zdXJlIHRoaXMgd2Fzbid0IGdvaW5nIHRvIGhhdmUgYSBwb3NpdGl2ZSBpbXBhY3Qgb24gYSBmdXp6LlxuXG5UaGUgbmVnYXRpdmUgY3JpdGVyaWEgSSBjaGVja2VkIHdlcmUgdGhpbmdzIGxpa2U6IGhhcmR3YXJlIGRyaXZlcnMgdGhhdCBuZWVkIHBoeXNpY2FsIEFTSUNzLCBQQ0llIGNhcmRzLCBTbWFydE5JQ3MsIG9yIEdQVXMgKGxpa2UgYG1seHN3YCwgYHBkc19jb3JlYCwgYHFlZGAsIGBpb25pY2AsIG9yIGBhbWRncHVgKS4gVGhvc2UgYXJlIG5vLWdvcywgYW5kIGd1ZXNzIHdoYXQ/IFRoaXMgZHJpdmVyICphYnNvbHV0ZWx5KiBmYWxscyBpbnRvIHRoYXQgY2F0ZWdvcnkuXG5cbk15IGNvbmNsdXNpb24gaXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZDogdGhlIGNvZGUgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfaHcuY2AsIGlzIG1vZGlmeWluZyB0aGUgTWFydmVsbCBQcmVzdGVyYSBzd2l0Y2ggZHJpdmVyLiBJdCByZXF1aXJlcyAqYWN0dWFsKiBNYXJ2ZWxsIFByZXN0ZXJhIFN3aXRjaCBBU0lDIFBDSWUgaGFyZHdhcmUgYW5kIHByb3ByaWV0YXJ5IGZpcm13YXJlIHRvIGZ1bmN0aW9uLiBCZWNhdXNlIHRoaXMgaGFyZHdhcmUgaXMgbm90IHJlcHJlc2VudGVkIGluIGEgc3RhbmRhcmQgdmlydHVhbCBlbnZpcm9ubWVudCwgdGhlIGNvZGUgSSdtIGxvb2tpbmcgYXQgaXMgKnN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSogZm9yIGZ1enppbmcuXG5cblRodXMsIEknbSBzZXR0aW5nIGBXb3J0aEZ1enppbmdgIHRvIGBmYWxzZWAuIFRoZXJlIGFyZSBubyBzcGVjaWZpYyBjb25maWd1cmF0aW9uIG9wdGlvbnMgdG8gZW5hYmxlLCBhbmQgbm8gc3BlY2lmaWMgc3ltYm9scyB0byBmb2N1cyBvbi4gVGhlIGRyaXZlciBpcyBvZmYtbGltaXRzIHRvIGZ1enppbmcuIFRpbWUgdG8gY2FsbCBpdCBpbi5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc1NjMsIk91dHB1dFRva2VucyI6MTExLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjYwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDA3OjI5OjU3LjQyMTM5NTc3M1oiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM2OTYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIG1vZGlmaWVkIGNvZGUgaXMgbG9jYXRlZCBpbiB0aGUgTWFydmVsbCBQcmVzdGVyYSBzd2l0Y2ggZHJpdmVyIChkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmMpLCB3aGljaCBzdXBwb3J0cyBNYXJ2ZWxsIFByZXN0ZXJhIHN3aXRjaCBBU0lDcyBvdmVyIFBDSS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgc3BlY2lmaWMgcGh5c2ljYWwgQVNJQyBoYXJkd2FyZSBhbmQgZmlybXdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBtb2RpZmllZCBjb2RlIGlzIGxvY2F0ZWQgaW4gdGhlIE1hcnZlbGwgUHJlc3RlcmEgc3dpdGNoIGRyaXZlciAoZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9ody5jKSwgd2hpY2ggc3VwcG9ydHMgTWFydmVsbCBQcmVzdGVyYSBzd2l0Y2ggQVNJQ3Mgb3ZlciBQQ0kuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIEFTSUMgaGFyZHdhcmUgYW5kIGZpcm13YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMDc6Mjk6NTcuNDIxNDM4MTkzWiIsIlNlcSI6MjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozODcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowmvgfn[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-07 06:47:24 +0000 UTC FinishedAt: 2026-09-07 07:29:58 +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+CgkJCTx0ZD4yMDI2LzA5LzA3IDA3OjI5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgbW9kaWZpZWQgY29kZSBpcyBsb2NhdGVkIGluIHRoZSBNYXJ2ZWxsIFByZXN0ZXJhIHN3aXRjaCBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfaHcuYyksIHdoaWNoIHN1cHBvcnRzIE1hcnZlbGwgUHJlc3RlcmEgc3dpdGNoIEFTSUNzIG92ZXIgUENJLiBUaGlzIGRyaXZlciByZXF1aXJlcyBzcGVjaWZpYyBwaHlzaWNhbCBBU0lDIGhhcmR3YXJlIGFuZCBmaXJtd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMDc6Mjk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAxOTU4YmJiM2U2ZDhiYjViMjNhNzZiMDJlNjdmYjZiZWQzNWMwZGIzXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBTZXAgNyAwNzoyOToyMCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmNcbmluZGV4IDc2OTVjYmIyY2U2MjYuLmM0Y2I1ZjIyODkzYzkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfaHcuY1xuQEAgLTIzMjQsNiAmIzQzOzIzMjQsMTEgQEAgaW50IHByZXN0ZXJhX2h3X2NvdW50ZXJzX2dldChzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdywgdTMyIGlkeCxcbiBcdGlmIChlcnIpXG4gXHRcdGdvdG8gZnJlZV9idWZmO1xuIFxuJiM0MztcdGlmIChfX2xlMzJfdG9fY3B1KHJlc3AtXHUwMDNlbnVtX2NvdW50ZXJzKSBcdTAwM2UgKmxlbikge1xuJiM0MztcdFx0ZXJyID0gLUVJTlZBTDtcbiYjNDM7XHRcdGdvdG8gZnJlZV9idWZmO1xuJiM0MztcdH1cbiYjNDM7XG4gXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBfX2xlMzJfdG9fY3B1KHJlc3AtXHUwMDNlbnVtX2NvdW50ZXJzKTsgaSYjNDM7JiM0MzspIHtcbiBcdFx0c3RhdHNbaV0ucGFja2V0cyAmIzQzOz0gX19sZTY0X3RvX2NwdShyZXNwLVx1MDAzZXN0YXRzW2ldLnBhY2tldHMpO1xuIFx0XHRzdGF0c1tpXS5ieXRlcyAmIzQzOz0gX19sZTY0X3RvX2NwdShyZXNwLVx1MDAzZXN0YXRzW2ldLmJ5dGVzKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwNzoyOTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBtb2RpZmllZCBjb2RlIGlzIGxvY2F0ZWQgaW4gdGhlIE1hcnZlbGwgUHJlc3RlcmEgc3dpdGNoIGRyaXZlciAoZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9ody5jKSwgd2hpY2ggc3VwcG9ydHMgTWFydmVsbCBQcmVzdGVyYSBzd2l0Y2ggQVNJQ3Mgb3ZlciBQQ0kuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIEFTSUMgaGFyZHdhcmUgYW5kIGZpcm13YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzCnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoxLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsCmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuCgotIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOgogIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQKICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLgogIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCwKICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuCgotIERPIE5PVCBCTElORExZIFRSVVNUICYjMzQ7Tk8gRlVOQ1RJT05BTCBDSEFOR0UmIzM0OyAoTkZDSSkgT1IgJiMzNDtSRUZBQ1RPUklORyYjMzQ7IENMQUlNUzoKICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzICYjMzQ7Y2xlYW51cHMmIzM0OywgJiMzNDtyZWZhY3RvcmluZ3MmIzM0Oywgb3Igc3RhdGUKICAmIzM0O05vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkJiMzNDsuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLgogIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudAogIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLgogIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuCgotIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOgogIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKiwKICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy4KICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyCiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczoKCi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczoKICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy4KICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKQogICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLgogICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHMKICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuCiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuCi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOgogICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6CiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmcKICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLgogICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOgotIENvcmUgU3Vic3lzdGVtczoKICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSwKICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy4KLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6CiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuCi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOgogICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLgotIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6CiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo0LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6CgotIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzoKICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1cwogIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0CiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuCiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzICYjMzQ7Zm9jdXNlZCYjMzQ7LAogIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy4KCi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOgogIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50cwogIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LgoKLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6CiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFjawogIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLgogIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlcgogIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZToKLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgotIENoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuCi0gU3RyaXAgYW55ICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0CgpGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDE5NThiYmIzZTZkOGJiNWIyM2E3NmIwMmU2N2ZiNmJlZDM1YzBkYjMKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIFNlcCA3IDA3OjI5OjIwIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9ody5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9ody5jCmluZGV4IDc2OTVjYmIyY2U2MjYuLmM0Y2I1ZjIyODkzYzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfaHcuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmMKQEAgLTIzMjQsNiAmIzQzOzIzMjQsMTEgQEAgaW50IHByZXN0ZXJhX2h3X2NvdW50ZXJzX2dldChzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdywgdTMyIGlkeCwKIAlpZiAoZXJyKQogCQlnb3RvIGZyZWVfYnVmZjsKIAomIzQzOwlpZiAoX19sZTMyX3RvX2NwdShyZXNwLSZndDtudW1fY291bnRlcnMpICZndDsgKmxlbikgewomIzQzOwkJZXJyID0gLUVJTlZBTDsKJiM0MzsJCWdvdG8gZnJlZV9idWZmOwomIzQzOwl9CiYjNDM7CiAJZm9yIChpID0gMDsgaSAmbHQ7IF9fbGUzMl90b19jcHUocmVzcC0mZ3Q7bnVtX2NvdW50ZXJzKTsgaSYjNDM7JiM0MzspIHsKIAkJc3RhdHNbaV0ucGFja2V0cyAmIzQzOz0gX19sZTY0X3RvX2NwdShyZXNwLSZndDtzdGF0c1tpXS5wYWNrZXRzKTsKIAkJc3RhdHNbaV0uYnl0ZXMgJiM0Mzs9IF9fbGU2NF90b19jcHUocmVzcC0mZ3Q7c3RhdHNbaV0uYnl0ZXMpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwNzoyOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTcxCgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMTIwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIE1hcnZlbGwgUHJlc3RlcmEgRHJpdmVyIFBhdGNoKioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBwYXRjaC4gTXkgaW5pdGlhbCBmb2N1cyBpcyBvbiB0aGUgZGlmZiwgc3BlY2lmaWNhbGx5IHRoZSBjaGFuZ2VzIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmNgLiBGaXJzdCwgSSBuZWVkIHRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2Ygd2hhdCB0aGUgYHByZXN0ZXJhYCBkcml2ZXIgYWN0dWFsbHkgKmlzKi4gVGhlIHF1ZXN0aW9uIG9uIG15IG1pbmQgcmlnaHQgbm93IGlzIHdoZXRoZXIgdGhpcyBNYXJ2ZWxsIFByZXN0ZXJhIHN3aXRjaCBkcml2ZXIgaXMgc29tZXRoaW5nIEkgY2FuIHJlbGlhYmx5IHJlYWNoIGFuZCBmdXp6IHdpdGhpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdvb2dsZSBDb21wdXRlIEVuZ2luZS4gVGhhdCYjMzk7cyBrZXkgZm9yIGVmZmljaWVudCBhbmFseXNpcy4KClRoZXJlZm9yZSwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIHNldHVwIHJlcXVpcmVtZW50cy4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgS2NvbmZpZyBlbnRyaWVzLCBQQ0kgSURzLCBvciBwbGF0Zm9ybS1zcGVjaWZpYyBkZXRhaWxzIHdpdGhpbiB0aGUgZHJpdmVyIGNvZGUuIElmIGl0IG5lZWRzIHNwZWNpZmljIGhhcmR3YXJlLCB0aGF0JiMzOTtzIGEgc2lnbmlmaWNhbnQgY29uc2lkZXJhdGlvbi4gSSYjMzk7bGwgcHJvYmFibHkgc3RhcnQgd2l0aCBhIGBncmVwcGVyYCBydW4gb3IganVzdCBhIHRhcmdldGVkIGZpbGUgaW5zcGVjdGlvbiBpbiB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvYCBkaXJlY3RvcnkuIFRoYXQgc2hvdWxkIGdpdmUgbWUgdGhlIGNvbnRleHQgSSBuZWVkIHRvIHByb2NlZWQgZWZmZWN0aXZlbHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMDc6Mjk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7UFJFU1RFUkEmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAzNTI4IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL0tjb25maWctNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvS2NvbmZpZzo2OmNvbmZpZyBQUkVTVEVSQVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnLTctXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIFByZXN0ZXJhIFN3aXRjaCBBU0lDcyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnLTE3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnOjE4OmNvbmZpZyBQUkVTVEVSQV9QQ0lcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvS2NvbmZpZy0xOS1cdHRyaXN0YXRlIFwmIzM0O1BDSSBpbnRlcmZhY2UgZHJpdmVyIGZvciBNYXJ2ZWxsIFByZXN0ZXJhIFN3aXRjaCBBU0lDcyBmYW1pbHlcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvS2NvbmZpZzoyMDpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBIQVNfSU9NRU0gXHUwMDI2XHUwMDI2IFBSRVNURVJBXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL0tjb25maWc6MjE6XHRkZWZhdWx0IFBSRVNURVJBXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL0tjb25maWctMjItXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfUFJFU1RFUkEpXHQmIzQzOz0gcHJlc3RlcmEub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZS0zLXByZXN0ZXJhLW9ianNcdFx0Oj0gcHJlc3RlcmFfbWFpbi5vIHByZXN0ZXJhX2h3Lm8gcHJlc3RlcmFfZHNhLm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL01ha2VmaWxlLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX1BSRVNURVJBX1BDSSlcdCYjNDM7PSBwcmVzdGVyYV9wY2kub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjQ6I2lmbmRlZiBfUFJFU1RFUkFfSF9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDo1OiNkZWZpbmUgX1BSRVNURVJBX0hfXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtNi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTQ6I2RlZmluZSBQUkVTVEVSQV9EUlZfTkFNRVx0XCYjMzQ7cHJlc3RlcmFcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxNjojZGVmaW5lIFBSRVNURVJBX0RFRkFVTFRfVklEICAgIDFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg9NDQ9c3RydWN0IHByZXN0ZXJhX3BvcnRfc3RhdHMge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC03Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDo3NzojZGVmaW5lIFBSRVNURVJBX0FQX1BPUlRfTUFYICAgKDEwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTc4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaD0xODQ9ZW51bSBwcmVzdGVyYV9ldmVudF90eXBlIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxODU6XHRQUkVTVEVSQV9FVkVOVF9UWVBFX1VOU1BFQyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xODYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTg3Olx0UFJFU1RFUkFfRVZFTlRfVFlQRV9QT1JULFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjE4ODpcdFBSRVNURVJBX0VWRU5UX1RZUEVfRkRCLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjE4OTpcdFBSRVNURVJBX0VWRU5UX1RZUEVfUlhUWCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xOTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTkxOlx0UFJFU1RFUkFfRVZFTlRfVFlQRV9NQVhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xOTItfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg9MTk0PWVudW0gcHJlc3RlcmFfcnh0eF9ldmVudF9pZCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTk1Olx0UFJFU1RFUkFfUlhUWF9FVkVOVF9VTlNQRUMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTk2Olx0UFJFU1RFUkFfUlhUWF9FVkVOVF9SQ1ZfUEtULFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE5Ny19O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaD0xOTk9ZW51bSBwcmVzdGVyYV9wb3J0X2V2ZW50X2lkIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyMDA6XHRQUkVTVEVSQV9QT1JUX0VWRU5UX1VOU1BFQyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyMDE6XHRQUkVTVEVSQV9QT1JUX0VWRU5UX01BQ19TVEFURV9DSEFOR0VELFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTIwMi19O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaD0yMjY9ZW51bSBwcmVzdGVyYV9mZGJfZW50cnlfdHlwZSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjI3Olx0UFJFU1RFUkFfRkRCX0VOVFJZX1RZUEVfUkVHX1BPUlQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjI4Olx0UFJFU1RFUkFfRkRCX0VOVFJZX1RZUEVfTEFHLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjIyOTpcdFBSRVNURVJBX0ZEQl9FTlRSWV9UWVBFX01BWFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTIzMC19O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaD0yMzI9ZW51bSBwcmVzdGVyYV9mZGJfZXZlbnRfaWQge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjIzMzpcdFBSRVNURVJBX0ZEQl9FVkVOVF9VTlNQRUMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjM0Olx0UFJFU1RFUkFfRkRCX0VWRU5UX0xFQVJORUQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjM1Olx0UFJFU1RFUkFfRkRCX0VWRU5UX0FHRUQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjM2LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oPTI1OD1lbnVtIHByZXN0ZXJhX2lmX3R5cGUge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI1OS1cdC8qIHRoZSBpbnRlcmZhY2UgaXMgb2YgcG9ydCB0eXBlIChkZXYscG9ydCkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyNjA6XHRQUkVTVEVSQV9JRl9QT1JUX0UgPSAwLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI2MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yNjItXHQvKiB0aGUgaW50ZXJmYWNlIGlzIG9mIGxhZyB0eXBlIChsYWctaWQpICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjYzOlx0UFJFU1RFUkFfSUZfTEFHX0UgPSAxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI2NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yNjUtXHQvKiB0aGUgaW50ZXJmYWNlIGlzIG9mIFZpZCB0eXBlICh2bGFuLWlkKSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI2NjpcdFBSRVNURVJBX0lGX1ZJRF9FID0gMyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yNjctfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg9NDE0PXByZXN0ZXJhX2Zsb29kX2RvbWFpbl9wb3J0X2ZpbmQoc3RydWN0IHByZXN0ZXJhX2Zsb29kX2RvbWFpbiAqZmxvb2RfZG9tYWluLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC00MTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6NDE3OiNlbmRpZiAvKiBfUFJFU1RFUkFfSF8gKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTExLSNkZWZpbmUgQUNMX0tFWU1BU0tfU0laRVx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTI6XHQoc2l6ZW9mKF9fYmUzMikgKiBfX1BSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfTUFYKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jPTcxPXN0cnVjdCBwcmVzdGVyYV9hY2xfdnRjYW0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy03Mi1cdHN0cnVjdCBsaXN0X2hlYWQgbGlzdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NzM6XHRfX2JlMzIga2V5bWFza1tfX1BSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfTUFYXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNzQtXHRyZWZjb3VudF90IHJlZmNvdW50O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM9MTAyPWludCBwcmVzdGVyYV9hY2xfY2hhaW5fdG9fY2xpZW50KHUzMiBjaGFpbl9pbmRleCwgYm9vbCBpbmdyZXNzLCB1MzIgKmNsaWVudClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEwNC1cdHN0YXRpYyBjb25zdCB1MzIgaW5ncmVzc19jbGllbnRfbWFwW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjEwNTpcdFx0UFJFU1RFUkFfSFdfQ09VTlRFUl9DTElFTlRfSU5HUkVTU19MT09LVVBfMCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTA2Olx0XHRQUkVTVEVSQV9IV19DT1VOVEVSX0NMSUVOVF9JTkdSRVNTX0xPT0tVUF8xLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxMDc6XHRcdFBSRVNURVJBX0hXX0NPVU5URVJfQ0xJRU5UX0lOR1JFU1NfTE9PS1VQXzJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTA4LVx0fTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTExNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTE1Olx0XHQqY2xpZW50ID0gUFJFU1RFUkFfSFdfQ09VTlRFUl9DTElFTlRfRUdSRVNTX0xPT0tVUDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTE2LVx0XHRyZXR1cm4gMDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jPTEyNj1zdGF0aWMgYm9vbCBwcmVzdGVyYV9hY2xfY2hhaW5faXNfc3VwcG9ydGVkKHUzMiBjaGFpbl9pbmRleCwgYm9vbCBpbmdyZXNzKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTMxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxMzI6XHRyZXR1cm4gKGNoYWluX2luZGV4IFx1MDAyNiB+UFJFU1RFUkFfQUNMX0NIQUlOX01BU0spID09IDA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEzMy19XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYz0xMzY9cHJlc3RlcmFfYWNsX3J1bGVzZXRfY3JlYXRlKHN0cnVjdCBwcmVzdGVyYV9hY2wgKmFjbCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTE2NS1cdC8qIG1ha2UgcGNsLWlkIGJhc2VkIG9uIHVpZCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxNjY6XHRydWxlc2V0LVx1MDAzZXBjbF9pZCA9IFBSRVNURVJBX0FDTF9QQ0xfSURfTUFLRSgodTgpdWlkLCBjaGFpbl9pbmRleCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTE2Ny1cdHJ1bGVzZXQtXHUwMDNlaW5kZXggPSB1aWQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYz0xOTg9aW50IHByZXN0ZXJhX2FjbF9ydWxlc2V0X29mZmxvYWQoc3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpydWxlc2V0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjA1LVx0ZGlyID0gcnVsZXNldC1cdTAwM2VpbmdyZXNzID9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjA2Olx0XHRQUkVTVEVSQV9IV19WVENBTV9ESVJfSU5HUkVTUyA6IFBSRVNURVJBX0hXX1ZUQ0FNX0RJUl9FR1JFU1M7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTIwNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTIyMi1cdFx0aWZhY2UuaW5kZXggPSBydWxlc2V0LVx1MDAzZWluZGV4O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyMjM6XHRcdGlmYWNlLnR5cGUgPSBQUkVTVEVSQV9BQ0xfSUZBQ0VfVFlQRV9JTkRFWDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjI0LVx0XHRlcnIgPSBwcmVzdGVyYV9od192dGNhbV9pZmFjZV9iaW5kKHJ1bGVzZXQtXHUwMDNlYWNsLVx1MDAzZXN3LCBcdTAwMjZpZmFjZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jPTI0MD1zdGF0aWMgdm9pZCBwcmVzdGVyYV9hY2xfcnVsZXNldF9kZXN0cm95KHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldCAqcnVsZXNldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI0Mi1cdHN0cnVjdCBwcmVzdGVyYV9hY2wgKmFjbCA9IHJ1bGVzZXQtXHUwMDNlYWNsO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyNDM6XHR1OCB1aWQgPSBydWxlc2V0LVx1MDAzZXBjbF9pZCBcdTAwMjYgUFJFU1RFUkFfQUNMX0tFWU1BU0tfUENMX0lEX1VTRVI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI0NC1cdGludCBlcnI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yNTEtXHRcdFx0c3RydWN0IHByZXN0ZXJhX2FjbF9pZmFjZSBpZmFjZSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjUyOlx0XHRcdFx0LnR5cGUgPSBQUkVTVEVSQV9BQ0xfSUZBQ0VfVFlQRV9JTkRFWCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjUzLVx0XHRcdFx0LmluZGV4ID0gcnVsZXNldC1cdTAwM2VpbmRleFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM9MzIxPWludCBwcmVzdGVyYV9hY2xfcnVsZXNldF9iaW5kKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldCAqcnVsZXNldCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTMyNC1cdHN0cnVjdCBwcmVzdGVyYV9hY2xfaWZhY2UgaWZhY2UgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjMyNTpcdFx0LnR5cGUgPSBQUkVTVEVSQV9BQ0xfSUZBQ0VfVFlQRV9QT1JULFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMjYtXHRcdC5wb3J0ID0gcG9ydFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM9MzMzPWludCBwcmVzdGVyYV9hY2xfcnVsZXNldF91bmJpbmQoc3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpydWxlc2V0LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzM2LVx0c3RydWN0IHByZXN0ZXJhX2FjbF9pZmFjZSBpZmFjZSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MzM3Olx0XHQudHlwZSA9IFBSRVNURVJBX0FDTF9JRkFDRV9UWVBFX1BPUlQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTMzOC1cdFx0LnBvcnQgPSBwb3J0XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYz00MDA9cHJlc3RlcmFfYWNsX3J1bGVfa2V5bWFza19wY2xfaWRfc2V0KHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZSAqcnVsZSwgdTE2IHBjbF9pZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTQwMi1cdHN0cnVjdCBwcmVzdGVyYV9hY2xfbWF0Y2ggKnJfbWF0Y2ggPSBcdTAwMjZydWxlLVx1MDAzZXJlX2tleS5tYXRjaDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NDAzOlx0X19iZTE2IHBjbF9pZF9tYXNrID0gaHRvbnMoUFJFU1RFUkFfQUNMX0tFWU1BU0tfUENMX0lEKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNDA0LVx0X19iZTE2IHBjbF9pZF9rZXkgPSBodG9ucyhwY2xfaWQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM9NTg0PXN0YXRpYyBpbnQgX19wcmVzdGVyYV9hY2xfcnVsZV9lbnRyeTJod19hZGQoc3RydWN0IHByZXN0ZXJhX3N3aXRjaCAqc3csXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy01ODYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo1ODc6XHRzdHJ1Y3QgcHJlc3RlcmFfYWNsX2h3X2FjdGlvbl9pbmZvIGFjdF9od1tQUkVTVEVSQV9BQ0xfUlVMRV9BQ1RJT05fTUFYXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNTg4LVx0aW50IGFjdF9udW07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy01OTQtXHRpZiAoZS1cdTAwM2VhY2NlcHQudmFsaWQpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NTk1Olx0XHRhY3RfaHdbYWN0X251bV0uaWQgPSBQUkVTVEVSQV9BQ0xfUlVMRV9BQ1RJT05fQUNDRVBUO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy01OTYtXHRcdGFjdF9udW0mIzQzOyYjNDM7O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNTk5LVx0aWYgKGUtXHUwMDNlZHJvcC52YWxpZCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo2MDA6XHRcdGFjdF9od1thY3RfbnVtXS5pZCA9IFBSRVNURVJBX0FDTF9SVUxFX0FDVElPTl9EUk9QO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy02MDEtXHRcdGFjdF9udW0mIzQzOyYjNDM7O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNjA0LVx0aWYgKGUtXHUwMDNldHJhcC52YWxpZCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo2MDU6XHRcdGFjdF9od1thY3RfbnVtXS5pZCA9IFBSRVNURVJBX0FDTF9SVUxFX0FDVElPTl9UUkFQO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy02MDYtXHRcdGFjdF9udW0mIzQzOyYjNDM7O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNjA5LVx0aWYgKGUtXHUwMDNlcG9saWNlLnZhbGlkKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjYxMDpcdFx0YWN0X2h3W2FjdF9udW1dLmlkID0gUFJFU1RFUkFfQUNMX1JVTEVfQUNUSU9OX1BPTElDRTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNjExLVx0XHRhY3RfaHdbYWN0X251bV0ucG9saWNlID0gZS1cdTAwM2Vwb2xpY2UuaTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTYxNS1cdGlmIChlLVx1MDAzZWp1bXAudmFsaWQpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NjE2Olx0XHRhY3RfaHdbYWN0X251bV0uaWQgPSBQUkVTVEVSQV9BQ0xfUlVMRV9BQ1RJT05fSlVNUDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNjE3LVx0XHRhY3RfaHdbYWN0X251bV0uanVtcCA9IGUtXHUwMDNlanVtcC5pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNjIxLVx0aWYgKGUtXHUwMDNlY291bnRlci5ibG9jaykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo2MjI6XHRcdGFjdF9od1thY3RfbnVtXS5pZCA9IFBSRVNURVJBX0FDTF9SVUxFX0FDVElPTl9DT1VOVDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNjIzLVx0XHRhY3RfaHdbYWN0X251bV0uY291bnQuaWQgPSBlLVx1MDAzZWNvdW50ZXIuaWQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYz02NTk9X19wcmVzdGVyYV9hY2xfcnVsZV9lbnRyeV9hY3RfY29uc3RydWN0KHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNjc1LVx0aWYgKGFyZy1cdTAwM2Vwb2xpY2UudmFsaWQpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6Njc2Olx0XHR1OCB0eXBlID0gYXJnLVx1MDAzZXBvbGljZS5pbmdyZXNzID8gUFJFU1RFUkFfUE9MSUNFUl9UWVBFX0lOR1JFU1MgOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo2Nzc6XHRcdFx0XHRcdFx0UFJFU1RFUkFfUE9MSUNFUl9UWVBFX0VHUkVTUztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNjc4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM9NzQ3PXN0YXRpYyBpbnQgX19wcmVzdGVyYV9hY2xfdnRjYW1faWRfdHJ5X2ZpdChzdHJ1Y3QgcHJlc3RlcmFfYWNsICphY2wsIHU4IGxvb2t1cCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTc2My1cdFx0LyogdHJ5IHRvIGZpdCB3aXRoIHZ0Y2FtIGtleW1hc2sgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NzY0Olx0XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBfX1BSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfTUFYOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy03NjUtXHRcdFx0X19iZTMyIF9fa2V5bWFzayA9ICgoX19iZTMyICopa2V5bWFzaylbaV07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy03NzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjc3NjpcdFx0aWYgKGkgPT0gX19QUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX01BWClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNzc3LVx0XHRcdC8qIGtleW1hc2sgZml0cyB2dGNhbSBrZXltYXNrLCByZXR1cm4gaXQgKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oLTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjQ6I2lmbmRlZiBfUFJFU1RFUkFfQUNMX0hfXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjU6I2RlZmluZSBfUFJFU1RFUkFfQUNMX0hfXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oLTYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaC05LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDoxMDojZGVmaW5lIFBSRVNURVJBX0FDTF9LRVlNQVNLX1BDTF9JRFx0XHQweDNGRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDoxMTojZGVmaW5lIFBSRVNURVJBX0FDTF9LRVlNQVNLX1BDTF9JRF9VU0VSXHRcdFx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6MTI6XHQoUFJFU1RFUkFfQUNMX0tFWU1BU0tfUENMX0lEIFx1MDAyNiAweDAwRkYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjEzOiNkZWZpbmUgUFJFU1RFUkFfQUNMX0tFWU1BU0tfUENMX0lEX0NIQUlOXHRcdFx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6MTQ6XHQoUFJFU1RFUkFfQUNMX0tFWU1BU0tfUENMX0lEIFx1MDAyNiAweEZGMDApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjE1OiNkZWZpbmUgUFJFU1RFUkFfQUNMX0NIQUlOX01BU0tcdFx0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6MTY6XHQoUFJFU1RFUkFfQUNMX0tFWU1BU0tfUENMX0lEIFx1MDAzZVx1MDAzZSA4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaC0xNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6MTg6I2RlZmluZSBQUkVTVEVSQV9BQ0xfUENMX0lEX01BS0UodWlkLCBjaGFpbl9pZClcdFx0XHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDoxOTpcdCgoKHVpZCkgXHUwMDI2IFBSRVNURVJBX0FDTF9LRVlNQVNLX1BDTF9JRF9VU0VSKSB8XHRcdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjIwOlx0KCgoY2hhaW5faWQpIFx1MDAzY1x1MDAzYyA4KSBcdTAwMjYgUFJFU1RFUkFfQUNMX0tFWU1BU0tfUENMX0lEX0NIQUlOKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmgtMjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oLTIyLSNkZWZpbmUgcnVsZV9tYXRjaF9zZXRfbihtYXRjaF9wLCB0eXBlLCB2YWxfcCwgc2l6ZSlcdFx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6MjM6XHRtZW1jcHkoXHUwMDI2KG1hdGNoX3ApW1BSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfIyN0eXBlXSxcdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oLTI0LVx0ICAgICAgIHZhbF9wLCBzaXplKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaC0yNS0jZGVmaW5lIHJ1bGVfbWF0Y2hfc2V0KG1hdGNoX3AsIHR5cGUsIHZhbClcdFx0XHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDoyNjpcdG1lbWNweShcdTAwMjYobWF0Y2hfcClbUFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV8jI3R5cGVdLFx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmgtMjctXHQgICAgICAgXHUwMDI2KHZhbCksIHNpemVvZih2YWwpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg9Mjk9ZW51bSBwcmVzdGVyYV9hY2xfbWF0Y2hfdHlwZSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjMwOlx0UFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9QQ0xfSUQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjMxOlx0UFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9FVEhfVFlQRSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6MzI6XHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX0VUSF9ETUFDXzAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjMzOlx0UFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9FVEhfRE1BQ18xLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDozNDpcdFBSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfRVRIX1NNQUNfMCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6MzU6XHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX0VUSF9TTUFDXzEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjM2Olx0UFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9JUF9QUk9UTyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6Mzc6XHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX1NZU19QT1JULFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDozODpcdFBSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfU1lTX0RFVixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6Mzk6XHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX0lQX1NSQyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NDA6XHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX0lQX0RTVCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NDE6XHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX0w0X1BPUlRfU1JDLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo0MjpcdFBSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfTDRfUE9SVF9EU1QsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjQzOlx0UFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9MNF9QT1JUX1JBTkdFX1NSQyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NDQ6XHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX0w0X1BPUlRfUkFOR0VfRFNULFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo0NTpcdFBSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfVkxBTl9JRCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NDY6XHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX1ZMQU5fVFBJRCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NDc6XHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX0lDTVBfVFlQRSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NDg6XHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX0lDTVBfQ09ERSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmgtNDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjUwOlx0X19QUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX01BWFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaC01MS19O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg9NTM9ZW51bSBwcmVzdGVyYV9hY2xfcnVsZV9hY3Rpb24ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo1NDpcdFBSRVNURVJBX0FDTF9SVUxFX0FDVElPTl9BQ0NFUFQgPSAwLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo1NTpcdFBSRVNURVJBX0FDTF9SVUxFX0FDVElPTl9EUk9QID0gMSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NTY6XHRQUkVTVEVSQV9BQ0xfUlVMRV9BQ1RJT05fVFJBUCA9IDIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjU3Olx0UFJFU1RFUkFfQUNMX1JVTEVfQUNUSU9OX0pVTVAgPSA1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo1ODpcdFBSRVNURVJBX0FDTF9SVUxFX0FDVElPTl9DT1VOVCA9IDcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjU5Olx0UFJFU1RFUkFfQUNMX1JVTEVfQUNUSU9OX1BPTElDRSA9IDgsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oLTYwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo2MTpcdFBSRVNURVJBX0FDTF9SVUxFX0FDVElPTl9NQVhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmgtNjItfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oPTY0PWVudW0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo2NTpcdFBSRVNURVJBX0FDTF9JRkFDRV9UWVBFX1BPUlQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjY2Olx0UFJFU1RFUkFfQUNMX0lGQUNFX1RZUEVfSU5ERVhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmgtNjctfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oPTY5PXN0cnVjdCBwcmVzdGVyYV9hY2xfbWF0Y2gge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo3MDpcdF9fYmUzMiBrZXlbX19QUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX01BWF07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjcxOlx0X19iZTMyIG1hc2tbX19QUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX01BWF07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oLTcyLX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaD0yMDc9aW50IHByZXN0ZXJhX2FjbF9jaGFpbl90b19jbGllbnQodTMyIGNoYWluX2luZGV4LCBib29sIGluZ3Jlc3MsIHUzMiAqY2xpZW50KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmgtMjA4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDoyMDk6I2VuZGlmIC8qIF9QUkVTVEVSQV9BQ0xfSF8gKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2NvdW50ZXIuaC0zLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9jb3VudGVyLmg6NDojaWZuZGVmIF9QUkVTVEVSQV9DT1VOVEVSX0hfXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2NvdW50ZXIuaDo1OiNkZWZpbmUgX1BSRVNURVJBX0NPVU5URVJfSF9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfY291bnRlci5oLTYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9jb3VudGVyLmg9MjY9aW50IHByZXN0ZXJhX2NvdW50ZXJfc3RhdHNfZ2V0KHN0cnVjdCBwcmVzdGVyYV9jb3VudGVyICpjb3VudGVyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfY291bnRlci5oLTI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9jb3VudGVyLmg6MzA6I2VuZGlmIC8qIF9QUkVTVEVSQV9DT1VOVEVSX0hfICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM9MTI9ZW51bSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxMzpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9CQVNFID0gREVWTElOS19UUkFQX0dFTkVSSUNfSURfTUFYLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTQ6XHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfQVJQX0JDLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTU6XHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfSVNfSVMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxNjpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9PU1BGLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTc6XHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfSVBfQkNfTUFDLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTg6XHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfUk9VVEVSX01DLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTk6XHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfVlJSUCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjIwOlx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX0RIQ1AsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyMTpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9NQUNfVE9fTUUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyMjpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9JUFY0X09QVElPTlMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyMzpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9JUF9ERUZBVUxUX1JPVVRFLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjQ6XHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfSVBfVE9fTUUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyNTpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9JUFY0X0lDTVBfUkVESVJFQ1QsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyNjpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9BQ0xfQ09ERV8wLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6Mjc6XHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfQUNMX0NPREVfMSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjI4Olx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX0FDTF9DT0RFXzIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyOTpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9BQ0xfQ09ERV8zLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MzA6XHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfQUNMX0NPREVfNCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjMxOlx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX0FDTF9DT0RFXzUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzozMjpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9BQ0xfQ09ERV82LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MzM6XHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfQUNMX0NPREVfNyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjM0Olx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX0JHUCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjM1Olx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX1NTSCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjM2Olx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX1RFTE5FVCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjM3Olx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX0lDTVAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzozODpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9NRVRfUkVELFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6Mzk6XHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfSVBfU0lQX0lTX1pFUk8sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo0MDpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9JUF9VQ19ESVBfREFfTUlTTUFUQ0gsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo0MTpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9JTExFR0FMX0lQVjRfSERSLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6NDI6XHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfSUxMRUdBTF9JUF9BRERSLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6NDM6XHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfSU5WQUxJRF9TQSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjQ0Olx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX0xPQ0FMX1BPUlQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo0NTpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9QT1JUX05PX1ZMQU4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo0NjpcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9SWERNQV9EUk9QLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtNDctfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTQ4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6NDk6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9BUlBfQkMgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTUwLVx0XCYjMzQ7YXJwX2JjXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo1MTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0lTX0lTIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy01Mi1cdFwmIzM0O2lzX2lzXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo1MzojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX09TUEYgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTU0LVx0XCYjMzQ7b3NwZlwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6NTU6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9JUF9CQ19NQUMgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTU2LVx0XCYjMzQ7aXBfYmNfbWFjXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo1NzojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX1JPVVRFUl9NQyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtNTgtXHRcJiMzNDtyb3V0ZXJfbWNcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjU5OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfVlJSUCBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtNjAtXHRcJiMzNDt2cnJwXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo2MTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0RIQ1AgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTYyLVx0XCYjMzQ7ZGhjcFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6NjM6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9NQUNfVE9fTUUgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTY0LVx0XCYjMzQ7bWFjX3RvX21lXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo2NTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0lQVjRfT1BUSU9OUyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtNjYtXHRcJiMzNDtpcHY0X29wdGlvbnNcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjY3OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfSVBfREVGQVVMVF9ST1VURSBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtNjgtXHRcJiMzNDtpcF9kZWZhdWx0X3JvdXRlXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo2OTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0lQX1RPX01FIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy03MC1cdFwmIzM0O2lwX3RvX21lXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo3MTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0lQVjRfSUNNUF9SRURJUkVDVCBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtNzItXHRcJiMzNDtpcHY0X2ljbXBfcmVkaXJlY3RcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjczOiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfQUNMX0NPREVfMCBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtNzQtXHRcJiMzNDthY2xfY29kZV8wXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo3NTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0FDTF9DT0RFXzEgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTc2LVx0XCYjMzQ7YWNsX2NvZGVfMVwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6Nzc6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9BQ0xfQ09ERV8yIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy03OC1cdFwmIzM0O2FjbF9jb2RlXzJcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjc5OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfQUNMX0NPREVfMyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtODAtXHRcJiMzNDthY2xfY29kZV8zXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo4MTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0FDTF9DT0RFXzQgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTgyLVx0XCYjMzQ7YWNsX2NvZGVfNFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6ODM6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9BQ0xfQ09ERV81IFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy04NC1cdFwmIzM0O2FjbF9jb2RlXzVcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjg1OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfQUNMX0NPREVfNiBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtODYtXHRcJiMzNDthY2xfY29kZV82XCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo4NzojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0FDTF9DT0RFXzcgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTg4LVx0XCYjMzQ7YWNsX2NvZGVfN1wmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6ODk6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9CR1AgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTkwLVx0XCYjMzQ7YmdwXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo5MTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX1NTSCBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtOTItXHRcJiMzNDtzc2hcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjkzOiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfVEVMTkVUIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy05NC1cdFwmIzM0O3RlbG5ldFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6OTU6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9JQ01QIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy05Ni1cdFwmIzM0O2ljbXBcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjk3OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfUlhETUFfRFJPUCBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtOTgtXHRcJiMzNDtyeGRtYV9kcm9wXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo5OTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX1BPUlRfTk9fVkxBTiBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTAwLVx0XCYjMzQ7cG9ydF9ub192bGFuXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxMDE6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9MT0NBTF9QT1JUIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xMDItXHRcJiMzNDtsb2NhbF9wb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxMDM6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9JTlZBTElEX1NBIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xMDQtXHRcJiMzNDtpbnZhbGlkX3NhXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxMDU6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9JTExFR0FMX0lQX0FERFIgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTEwNi1cdFwmIzM0O2lsbGVnYWxfaXBfYWRkclwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTA3OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfSUxMRUdBTF9JUFY0X0hEUiBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTA4LVx0XCYjMzQ7aWxsZWdhbF9pcHY0X2hkclwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTA5OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfSVBfVUNfRElQX0RBX01JU01BVENIIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xMTAtXHRcJiMzNDtpcF91Y19kaXBfZGFfbWlzbWF0Y2hcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjExMTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0lQX1NJUF9JU19aRVJPIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xMTItXHRcJiMzNDtpcF9zaXBfaXNfemVyb1wmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTEzOiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfTUVUX1JFRCBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTE0LVx0XCYjMzQ7bWV0X3JlZFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jPTEyNj1zdHJ1Y3QgcHJlc3RlcmFfdHJhcF9kYXRhIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xMzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxMzI6I2RlZmluZSBQUkVTVEVSQV9UUkFQX01FVEFEQVRBIERFVkxJTktfVFJBUF9NRVRBREFUQV9UWVBFX0ZfSU5fUE9SVFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTMzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTM0OiNkZWZpbmUgUFJFU1RFUkFfVFJBUF9DT05UUk9MKF9pZCwgX2dyb3VwX2lkLCBfYWN0aW9uKVx0XHRcdCAgICAgIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xMzUtXHRERVZMSU5LX1RSQVBfR0VORVJJQyhDT05UUk9MLCBfYWN0aW9uLCBfaWQsXHRcdFx0ICAgICAgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTEzNi1cdFx0XHQgICAgIERFVkxJTktfVFJBUF9HUk9VUF9HRU5FUklDX0lEXyMjX2dyb3VwX2lkLFx0ICAgICAgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjEzNzpcdFx0XHQgICAgIFBSRVNURVJBX1RSQVBfTUVUQURBVEEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xMzgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxMzk6I2RlZmluZSBQUkVTVEVSQV9UUkFQX0RSSVZFUl9DT05UUk9MKF9pZCwgX2dyb3VwX2lkKVx0XHRcdCAgICAgIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxNDA6XHRERVZMSU5LX1RSQVBfRFJJVkVSKENPTlRST0wsIFRSQVAsIERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF8jI19pZCwgICAgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE0MTpcdFx0XHQgICAgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfIyNfaWQsXHRcdCAgICAgIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xNDItXHRcdFx0ICAgIERFVkxJTktfVFJBUF9HUk9VUF9HRU5FUklDX0lEXyMjX2dyb3VwX2lkLFx0ICAgICAgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE0MzpcdFx0XHQgICAgUFJFU1RFUkFfVFJBUF9NRVRBREFUQSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTE0NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE0NTojZGVmaW5lIFBSRVNURVJBX1RSQVBfRVhDRVBUSU9OKF9pZCwgX2dyb3VwX2lkKVx0XHRcdFx0ICAgICAgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTE0Ni1cdERFVkxJTktfVFJBUF9HRU5FUklDKEVYQ0VQVElPTiwgVFJBUCwgX2lkLFx0XHRcdCAgICAgIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xNDctXHRcdFx0ICAgICBERVZMSU5LX1RSQVBfR1JPVVBfR0VORVJJQ19JRF8jI19ncm91cF9pZCxcdCAgICAgIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxNDg6XHRcdFx0ICAgICBQUkVTVEVSQV9UUkFQX01FVEFEQVRBKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTQ5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTUwOiNkZWZpbmUgUFJFU1RFUkFfVFJBUF9EUklWRVJfRVhDRVBUSU9OKF9pZCwgX2dyb3VwX2lkKVx0XHRcdCAgICAgIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxNTE6XHRERVZMSU5LX1RSQVBfRFJJVkVSKEVYQ0VQVElPTiwgVFJBUCwgREVWTElOS19QUkVTVEVSQV9UUkFQX0lEXyMjX2lkLCAgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE1MjpcdFx0XHQgICAgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfIyNfaWQsXHRcdCAgICAgIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xNTMtXHRcdFx0ICAgIERFVkxJTktfVFJBUF9HUk9VUF9HRU5FUklDX0lEXyMjX2dyb3VwX2lkLFx0ICAgICAgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE1NDpcdFx0XHQgICAgUFJFU1RFUkFfVFJBUF9NRVRBREFUQSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTE1NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE1NjojZGVmaW5lIFBSRVNURVJBX1RSQVBfRFJJVkVSX0RST1AoX2lkLCBfZ3JvdXBfaWQpXHRcdFx0ICAgICAgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE1NzpcdERFVkxJTktfVFJBUF9EUklWRVIoRFJPUCwgRFJPUCwgREVWTElOS19QUkVTVEVSQV9UUkFQX0lEXyMjX2lkLFx0ICAgICAgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE1ODpcdFx0XHQgICAgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfIyNfaWQsXHRcdCAgICAgIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xNTktXHRcdFx0ICAgIERFVkxJTktfVFJBUF9HUk9VUF9HRU5FUklDX0lEXyMjX2dyb3VwX2lkLFx0ICAgICAgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE2MDpcdFx0XHQgICAgUFJFU1RFUkFfVFJBUF9NRVRBREFUQSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTE2MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYz0xODM9c3RhdGljIHN0cnVjdCBwcmVzdGVyYV90cmFwIHByZXN0ZXJhX3RyYXBfaXRlbXNfYXJyW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xODQtXHR7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxODU6XHRcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9EUklWRVJfQ09OVFJPTChBUlBfQkMsIE5FSUdIX0RJU0NPVkVSWSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xODYtXHRcdC5jcHVfY29kZSA9IDUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTg4LVx0e1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTg5Olx0XHQudHJhcCA9IFBSRVNURVJBX1RSQVBfRFJJVkVSX0NPTlRST0woSVNfSVMsIExPQ0FMX0RFTElWRVJZKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTE5MC1cdFx0LmNwdV9jb2RlID0gMTMsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTkyLVx0e1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTkzOlx0XHQudHJhcCA9IFBSRVNURVJBX1RSQVBfRFJJVkVSX0NPTlRST0woT1NQRiwgT1NQRiksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xOTQtXHRcdC5jcHVfY29kZSA9IDE2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTE5Ni1cdHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE5NzpcdFx0LnRyYXAgPSBQUkVTVEVSQV9UUkFQX0RSSVZFUl9DT05UUk9MKElQX0JDX01BQywgTE9DQUxfREVMSVZFUlkpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTk4LVx0XHQuY3B1X2NvZGUgPSAxOSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yMDAtXHR7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyMDE6XHRcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9DT05UUk9MKFNUUCwgU1RQLCBUUkFQKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIwMi1cdFx0LmNwdV9jb2RlID0gMjYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjA0LVx0e1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjA1Olx0XHQudHJhcCA9IFBSRVNURVJBX1RSQVBfQ09OVFJPTChMQUNQLCBMQUNQLCBUUkFQKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIwNi1cdFx0LmNwdV9jb2RlID0gMjcsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjA4LVx0e1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjA5Olx0XHQudHJhcCA9IFBSRVNURVJBX1RSQVBfQ09OVFJPTChMTERQLCBMTERQLCBUUkFQKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIxMC1cdFx0LmNwdV9jb2RlID0gMjgsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjEyLVx0e1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjEzOlx0XHQudHJhcCA9IFBSRVNURVJBX1RSQVBfRFJJVkVSX0NPTlRST0woUk9VVEVSX01DLCBMT0NBTF9ERUxJVkVSWSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yMTQtXHRcdC5jcHVfY29kZSA9IDI5LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIxNi1cdHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjIxNzpcdFx0LnRyYXAgPSBQUkVTVEVSQV9UUkFQX0RSSVZFUl9DT05UUk9MKFZSUlAsIFZSUlApLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjE4LVx0XHQuY3B1X2NvZGUgPSAzMCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yMjAtXHR7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyMjE6XHRcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9EUklWRVJfQ09OVFJPTChESENQLCBESENQKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIyMi1cdFx0LmNwdV9jb2RlID0gMzMsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjI0LVx0e1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjI1Olx0XHQudHJhcCA9IFBSRVNURVJBX1RSQVBfRVhDRVBUSU9OKE1UVV9FUlJPUiwgTDNfRVhDRVBUSU9OUyksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yMjYtXHRcdC5jcHVfY29kZSA9IDYzLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIyOC1cdHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjIyOTpcdFx0LnRyYXAgPSBQUkVTVEVSQV9UUkFQX0RSSVZFUl9DT05UUk9MKE1BQ19UT19NRSwgTE9DQUxfREVMSVZFUlkpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjMwLVx0XHQuY3B1X2NvZGUgPSA2NSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yMzItXHR7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyMzM6XHRcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9FWENFUFRJT04oVFRMX0VSUk9SLCBMM19FWENFUFRJT05TKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIzNC1cdFx0LmNwdV9jb2RlID0gMTMzLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIzNi1cdHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjIzNzpcdFx0LnRyYXAgPSBQUkVTVEVSQV9UUkFQX0RSSVZFUl9FWENFUFRJT04oSVBWNF9PUFRJT05TLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjM4LVx0XHRcdFx0XHRcdCAgICAgICBMM19FWENFUFRJT05TKSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yNDEtXHR7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyNDI6XHRcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9EUklWRVJfQ09OVFJPTChJUF9ERUZBVUxUX1JPVVRFLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjQzLVx0XHRcdFx0XHRcdCAgICAgTE9DQUxfREVMSVZFUlkpLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTI0Ni1cdHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjI0NzpcdFx0LnRyYXAgPSBQUkVTVEVSQV9UUkFQX0NPTlRST0woTE9DQUxfUk9VVEUsIExPQ0FMX0RFTElWRVJZLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjQ4LVx0XHRcdFx0XHQgICAgICBUUkFQKSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yNTEtXHR7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyNTI6XHRcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9EUklWRVJfRVhDRVBUSU9OKElQVjRfSUNNUF9SRURJUkVDVCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTI1My1cdFx0XHRcdFx0XHQgICAgICAgTDNfRVhDRVBUSU9OUyksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjU2LVx0e1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjU3Olx0XHQudHJhcCA9IFBSRVNURVJBX1RSQVBfQ09OVFJPTChBUlBfUkVTUE9OU0UsIE5FSUdIX0RJU0NPVkVSWSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTI1OC1cdFx0XHRcdFx0ICAgICAgVFJBUCksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjYxLVx0e1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjYyOlx0XHQudHJhcCA9IFBSRVNURVJBX1RSQVBfRFJJVkVSX0NPTlRST0woQUNMX0NPREVfMCwgQUNMX1RSQVApLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjYzLVx0XHQuY3B1X2NvZGUgPSAxOTIsXG4tLVxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMDc6Mjk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTkzNTgKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAyNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgaW1tZWRpYXRlIHRob3VnaHQgcHJvY2VzcywgZm9jdXNpbmcgb24gdGhlIGZpbGVzIG1lbnRpb25lZCwgYXNzdW1pbmcgSSYjMzk7bSBkZWVwIGluIGVtYmVkZGVkIHN5c3RlbXMgZGV2ZWxvcG1lbnQgYW5kIGZhbWlsaWFyIHdpdGggdGhpcyBjb2RlYmFzZToKCioqUmV2aWV3aW5nIEtleSBQcmVzdGVyYSBGaWxlcyoqCgpPa2F5LCB0aW1lIHRvIGRpZyBpbi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGRpdmUgaW50byBgcHJlc3RlcmFfcGNpLmNgLCBgcHJlc3RlcmFfbWFpbi5jYCwgYW5kIHRoZSBgS2NvbmZpZ2AgZmlsZS4gSSBpbW1lZGlhdGVseSB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbi4gYHByZXN0ZXJhX3BjaS5jYCBpcyB2ZXJ5IGxpa2VseSB0aGUgaW50ZXJmYWNlIGZvciB0aGUgUENJIGJ1cyBpbnRlcmFjdGlvbnMsIHdoaWNoIGlzIGVzc2VudGlhbCB0byB0aGUgb3ZlcmFsbCBvcGVyYXRpb24gb2YgdGhlIHByZXN0ZXJhIGJhc2VkIHN3aXRjaC4gIGBwcmVzdGVyYV9tYWluLmNgIHByb2JhYmx5IGNvbnRhaW5zIHRoZSBjb3JlIGluaXRpYWxpemF0aW9uLCBjb250cm9sIGZsb3csIGFuZCBwb3RlbnRpYWxseSB0aGUgbWFpbiBsb29wIG9yIGVudHJ5IHBvaW50IGZvciB0aGUgUHJlc3RlcmEtc3BlY2lmaWMgZnVuY3Rpb25hbGl0eS4gR2l2ZW4gbXkgZXhwZXJpZW5jZSwgSSBleHBlY3QgdGhhdCBtYWluIGZpbGUgdG8gbWFuYWdlIHRoZSBjb3JlIG9mIHRoZSBBU0lDIGRyaXZlci4KCkFuZCBvZiBjb3Vyc2UsIEkgbmVlZCB0byBjaGVjayBgS2NvbmZpZ2AuIFRoYXQmIzM5O3Mgd2hlcmUgYWxsIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBQcmVzdGVyYSBkcml2ZXIgd2lsbCBsaXZlLiBVbmRlcnN0YW5kaW5nIHRoZSBhdmFpbGFibGUgY29uZmlndXJhdGlvbnMgaXMgY3J1Y2lhbC4gSSYjMzk7bGwgbmVlZCB0byBzZWUgd2hhdCBmZWF0dXJlcyBhcmUgZW5hYmxlZCwgd2hhdCBoYXJkd2FyZSB2YXJpYW50cyBhcmUgc3VwcG9ydGVkLCBhbmQgYW55IGJ1aWxkLXRpbWUgb3IgY29tcGlsZS10aW1lIG9wdGlvbnMgdGhhdCBpbmZsdWVuY2UgdGhlIGRyaXZlciYjMzk7cyBiZWhhdmlvci4gVGhlIGBLY29uZmlnYCB3aWxsIHByb3ZpZGUgdGhlIGtub2JzIHRoYXQgSSBuZWVkIHRvIHR3ZWFrIGZvciBhIGdpdmVuIGRlcGxveW1lbnQgb3IgdG8gdGVzdCBhIHBhcnRpY3VsYXIgYXJlYS4KCknigJltIGFudGljaXBhdGluZyBkZXBlbmRlbmNpZXMgYW5kIGludGVyYWN0aW9ucyBiZXR3ZWVuIHRoZXNlIGZpbGVzLCBzbyBJJiMzOTtsbCBiZSBsb29raW5nIGZvciBjcm9zcy1yZWZlcmVuY2VzIGJldHdlZW4gdGhlbSBhcyBJIGdvLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDA3OjI5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA0MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4gICAyOlx0I1xuICAgMzpcdCMgTWFydmVsbCBQcmVzdGVyYSBkcml2ZXJzIGNvbmZpZ3VyYXRpb25cbiAgIDQ6XHQjXG4gICA1Olx0XG4gICA2Olx0Y29uZmlnIFBSRVNURVJBXG4gICA3Olx0XHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIFByZXN0ZXJhIFN3aXRjaCBBU0lDcyBzdXBwb3J0XCYjMzQ7XG4gICA4Olx0XHRkZXBlbmRzIG9uIE5FVF9TV0lUQ0hERVYgXHUwMDI2XHUwMDI2IFZMQU5fODAyMVFcbiAgIDk6XHRcdGRlcGVuZHMgb24gQlJJREdFIHx8IEJSSURHRT1uXG4gIDEwOlx0XHRzZWxlY3QgTkVUX0RFVkxJTktcbiAgMTE6XHRcdHNlbGVjdCBQSFlMSU5LXG4gIDEyOlx0XHRoZWxwXG4gIDEzOlx0XHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIE1hcnZlbGwgUHJlc3RlcmEgU3dpdGNoIEFTSUNzIGZhbWlseS5cbiAgMTQ6XHRcbiAgMTU6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXG4gIDE2Olx0XHQgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBwcmVzdGVyYS5cbiAgMTc6XHRcbiAgMTg6XHRjb25maWcgUFJFU1RFUkFfUENJXG4gIDE5Olx0XHR0cmlzdGF0ZSBcJiMzNDtQQ0kgaW50ZXJmYWNlIGRyaXZlciBmb3IgTWFydmVsbCBQcmVzdGVyYSBTd2l0Y2ggQVNJQ3MgZmFtaWx5XCYjMzQ7XG4gIDIwOlx0XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgSEFTX0lPTUVNIFx1MDAyNlx1MDAyNiBQUkVTVEVSQVxuICAyMTpcdFx0ZGVmYXVsdCBQUkVTVEVSQVxuICAyMjpcdFx0aGVscFxuICAyMzpcdFx0ICBUaGlzIGlzIGltcGxlbWVudGF0aW9uIG9mIFBDSSBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgTWFydmVsbCBQcmVzdGVyYVxuICAyNDpcdFx0ICBTd2l0Y2ggQVNJQ3MgZmFtaWx5LlxuICAyNTpcdFxuICAyNjpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGVcbiAgMjc6XHRcdCAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHByZXN0ZXJhX3BjaS5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwNzoyOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDA4MQoJCQkJCQkJb3V0cHV0OiA0NwoJCQkJCQkJdGhvdWdodHM6IDMxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzczoKCioqRGl2aW5nIGludG8gdGhlIGBwcmVzdGVyYV9wY2kuY2AgQ29kZSoqCgpBbHJpZ2h0LCBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIGhvdyB0aGlzIGBwcmVzdGVyYV9wY2kuY2AgbW9kdWxlIGlzIHdvcmtpbmcuIE15IGltbWVkaWF0ZSBmb2N1cyBpcyB0d29mb2xkOiBmaXJzdCwgSSB3YW50IHRvIGNvbmZpcm0gd2hhdCBhY3R1YWwgaGFyZHdhcmUgY29tcG9uZW50cyBhcmUgYmVpbmcgZGlyZWN0bHkgYm91bmQgdG8gdGhpcyBkcml2ZXIuIEFyZSB3ZSB0YWxraW5nIGFib3V0IHNwZWNpZmljIFBDSSBkZXZpY2VzIHRoYXQgaXQmIzM5O3MgZGVzaWduZWQgdG8gbWFuYWdlPyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGF0IHJlbGF0aW9uc2hpcC4gU2Vjb25kLCBhbmQgdGhpcyBpcyBjcnVjaWFsIGZvciB0ZXN0aW5nIGFuZCBkZXZlbG9wbWVudCwgSSBuZWVkIHRvIHNlZSBpZiB0aGVyZSYjMzk7cyBhbnkgc3VwcG9ydCBmb3IgbW9jayBkZXZpY2VzIG9yIHZpcnR1YWwgZGV2aWNlIGltcGxlbWVudGF0aW9ucyB3aXRoaW4gdGhpcyBmaWxlLiBEb2VzIGl0IGluY2x1ZGUgYW55IGFic3RyYWN0aW9ucyB0aGF0IHdvdWxkIGFsbG93IG1lIHRvIHNpbXVsYXRlIHRoZSBoYXJkd2FyZSBlbnZpcm9ubWVudCBmb3IgdGVzdGluZyBwdXJwb3Nlcywgb3IgYXJlIHdlIHRpZ2h0bHkgY291cGxlZCB3aXRoIHRoZSBwaHlzaWNhbCBoYXJkd2FyZT8gVGhlIGFuc3dlcnMgaGVyZSB3aWxsIGd1aWRlIG15IG5leHQgc3RlcHMgaW4gdW5kZXJzdGFuZGluZyB0aGUgZHJpdmVyJiMzOTtzIGZsZXhpYmlsaXR5IGFuZCBwb3RlbnRpYWwgZm9yIGluZGVwZW5kZW50IGFuYWx5c2lzLiBMZXQmIzM5O3Mgc2VlIHdoYXQgdGhlIGNvZGUgcmV2ZWFscy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwNzoyOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfcGNpLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZSBPUiBHUEwtMi4wXG4gICAyOlx0LyogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjAgTWFydmVsbCBJbnRlcm5hdGlvbmFsIEx0ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZCAqL1xuICAgMzpcdFxuICAgNDpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L2JpdGZpZWxkLmhcdTAwM2VcbiAgIDU6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9jaXJjX2J1Zi5oXHUwMDNlXG4gICA2Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvZGV2aWNlLmhcdTAwM2VcbiAgIDc6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9maXJtd2FyZS5oXHUwMDNlXG4gICA4Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvaW9wb2xsLmhcdTAwM2VcbiAgIDk6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9rZXJuZWwuaFx1MDAzZVxuICAxMDpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L21vZHVsZS5oXHUwMDNlXG4gIDExOlx0I2luY2x1ZGUgXHUwMDNjbGludXgvcGNpLmhcdTAwM2VcbiAgMTI6XHRcbiAgMTM6XHQjaW5jbHVkZSBcJiMzNDtwcmVzdGVyYS5oXCYjMzQ7XG4gIDE0Olx0XG4gIDE1Olx0I2RlZmluZSBQUkVTVEVSQV9NU0dfTUFYX1NJWkUgMTUwMFxuICAxNjpcdFxuICAxNzpcdCNkZWZpbmUgUFJFU1RFUkFfU1VQUF9GV19NQUpfVkVSXHQ0XG4gIDE4Olx0I2RlZmluZSBQUkVTVEVSQV9TVVBQX0ZXX01JTl9WRVJcdDFcbiAgMTk6XHRcbiAgMjA6XHQjZGVmaW5lIFBSRVNURVJBX1BSRVZfRldfTUFKX1ZFUlx0NFxuICAyMTpcdCNkZWZpbmUgUFJFU1RFUkFfUFJFVl9GV19NSU5fVkVSXHQwXG4gIDIyOlx0XG4gIDIzOlx0I2RlZmluZSBQUkVTVEVSQV9GV19QQVRIX0ZNVFx0XCYjMzQ7bXJ2bC9wcmVzdGVyYS9tdnN3X3ByZXN0ZXJhX2Z3LXYldS4ldS5pbWdcJiMzNDtcbiAgMjQ6XHQjZGVmaW5lIFBSRVNURVJBX0ZXX0FSTTY0X1BBVEhfRk1UIFwmIzM0O21ydmwvcHJlc3RlcmEvbXZzd19wcmVzdGVyYV9md19hcm02NC12JXUuJXUuaW1nXCYjMzQ7XG4gIDI1Olx0XG4gIDI2Olx0I2RlZmluZSBQUkVTVEVSQV9GV19IRFJfTUFHSUNcdFx0MHgzNTFEOUQwNlxuICAyNzpcdCNkZWZpbmUgUFJFU1RFUkFfRldfRExfVElNRU9VVF9NU1x0NTAwMDBcbiAgMjg6XHQjZGVmaW5lIFBSRVNURVJBX0ZXX0JMS19TWlx0XHQxMDI0XG4gIDI5Olx0XG4gIDMwOlx0I2RlZmluZSBQUkVTVEVSQV9GV19WRVJfTUFKX01VTCAxMDAwMDAwXG4gIDMxOlx0I2RlZmluZSBQUkVTVEVSQV9GV19WRVJfTUlOX01VTCAxMDAwXG4gIDMyOlx0XG4gIDMzOlx0I2RlZmluZSBQUkVTVEVSQV9GV19WRVJfTUFKKHYpXHQoKHYpIC8gUFJFU1RFUkFfRldfVkVSX01BSl9NVUwpXG4gIDM0Olx0XG4gIDM1Olx0I2RlZmluZSBQUkVTVEVSQV9GV19WRVJfTUlOKHYpIFxcXG4gIDM2Olx0XHQoKCh2KSAtIChQUkVTVEVSQV9GV19WRVJfTUFKKHYpICogUFJFU1RFUkFfRldfVkVSX01BSl9NVUwpKSAvIFxcXG4gIDM3Olx0XHRcdFx0UFJFU1RFUkFfRldfVkVSX01JTl9NVUwpXG4gIDM4Olx0XG4gIDM5Olx0I2RlZmluZSBQUkVTVEVSQV9GV19WRVJfUEFUQ0godikgXFxcbiAgNDA6XHRcdCgodikgLSAoUFJFU1RFUkFfRldfVkVSX01BSih2KSAqIFBSRVNURVJBX0ZXX1ZFUl9NQUpfTVVMKSAtIFxcXG4gIDQxOlx0XHRcdFx0KFBSRVNURVJBX0ZXX1ZFUl9NSU4odikgKiBQUkVTVEVSQV9GV19WRVJfTUlOX01VTCkpXG4gIDQyOlx0XG4gIDQzOlx0ZW51bSBwcmVzdGVyYV9wY2lfYmFyX3Qge1xuICA0NDpcdFx0UFJFU1RFUkFfUENJX0JBUl9GVyA9IDIsXG4gIDQ1Olx0XHRQUkVTVEVSQV9QQ0lfQkFSX1BQID0gNCxcbiAgNDY6XHR9O1xuICA0NzpcdFxuICA0ODpcdHN0cnVjdCBwcmVzdGVyYV9md19oZWFkZXIge1xuICA0OTpcdFx0X19iZTMyIG1hZ2ljX251bWJlcjtcbiAgNTA6XHRcdF9fYmUzMiB2ZXJzaW9uX3ZhbHVlO1xuICA1MTpcdFx0dTggcmVzZXJ2ZWRbOF07XG4gIDUyOlx0fTtcbiAgNTM6XHRcbiAgNTQ6XHRzdHJ1Y3QgcHJlc3RlcmFfbGRyX3JlZ3Mge1xuICA1NTpcdFx0dTMyIGxkcl9yZWFkeTtcbiAgNTY6XHRcdHUzMiBwYWQxO1xuICA1NzpcdFxuICA1ODpcdFx0dTMyIGxkcl9pbWdfc2l6ZTtcbiAgNTk6XHRcdHUzMiBsZHJfY3RsX2ZsYWdzO1xuICA2MDpcdFxuICA2MTpcdFx0dTMyIGxkcl9idWZfb2ZmcztcbiAgNjI6XHRcdHUzMiBsZHJfYnVmX3NpemU7XG4gIDYzOlx0XG4gIDY0Olx0XHR1MzIgbGRyX2J1Zl9yZDtcbiAgNjU6XHRcdHUzMiBwYWQyO1xuICA2NjpcdFx0dTMyIGxkcl9idWZfd3I7XG4gIDY3Olx0XG4gIDY4Olx0XHR1MzIgbGRyX3N0YXR1cztcbiAgNjk6XHR9O1xuICA3MDpcdFxuICA3MTpcdCNkZWZpbmUgUFJFU1RFUkFfTERSX1JFR19PRkZTRVQoZilcdG9mZnNldG9mKHN0cnVjdCBwcmVzdGVyYV9sZHJfcmVncywgZilcbiAgNzI6XHRcbiAgNzM6XHQjZGVmaW5lIFBSRVNURVJBX0xEUl9SRUFEWV9NQUdJQ1x0MHhmMDBkZmVlZFxuICA3NDpcdFxuICA3NTpcdCNkZWZpbmUgUFJFU1RFUkFfTERSX1NUQVRVU19JTUdfRExcdEJJVCgwKVxuICA3NjpcdCNkZWZpbmUgUFJFU1RFUkFfTERSX1NUQVRVU19TVEFSVF9GV1x0QklUKDEpXG4gIDc3Olx0I2RlZmluZSBQUkVTVEVSQV9MRFJfU1RBVFVTX0lOVkFMSURfSU1HXHRCSVQoMilcbiAgNzg6XHQjZGVmaW5lIFBSRVNURVJBX0xEUl9TVEFUVVNfTk9NRU1cdEJJVCgzKVxuICA3OTpcdFxuICA4MDpcdCNkZWZpbmUgUFJFU1RFUkFfTERSX1JFR19CQVNFKGZ3KVx0KChmdyktXHUwMDNlbGRyX3JlZ3MpXG4gIDgxOlx0I2RlZmluZSBQUkVTVEVSQV9MRFJfUkVHX0FERFIoZncsIHJlZylcdChQUkVTVEVSQV9MRFJfUkVHX0JBU0UoZncpICYjNDM7IChyZWcpKVxuICA4MjpcdFxuICA4MzpcdC8qIGZ3IGxvYWRlciByZWdpc3RlcnMgKi9cbiAgODQ6XHQjZGVmaW5lIFBSRVNURVJBX0xEUl9SRUFEWV9SRUdcdFx0UFJFU1RFUkFfTERSX1JFR19PRkZTRVQobGRyX3JlYWR5KVxuICA4NTpcdCNkZWZpbmUgUFJFU1RFUkFfTERSX0lNR19TSVpFX1JFR1x0UFJFU1RFUkFfTERSX1JFR19PRkZTRVQobGRyX2ltZ19zaXplKVxuICA4NjpcdCNkZWZpbmUgUFJFU1RFUkFfTERSX0NUTF9SRUdcdFx0UFJFU1RFUkFfTERSX1JFR19PRkZTRVQobGRyX2N0bF9mbGFncylcbiAgODc6XHQjZGVmaW5lIFBSRVNURVJBX0xEUl9CVUZfU0laRV9SRUdcdFBSRVNURVJBX0xEUl9SRUdfT0ZGU0VUKGxkcl9idWZfc2l6ZSlcbiAgODg6XHQjZGVmaW5lIFBSRVNURVJBX0xEUl9CVUZfT0ZGU19SRUdcdFBSRVNURVJBX0xEUl9SRUdfT0ZGU0VUKGxkcl9idWZfb2ZmcylcbiAgODk6XHQjZGVmaW5lIFBSRVNURVJBX0xEUl9CVUZfUkRfUkVHXHRcdFBSRVNURVJBX0xEUl9SRUdfT0ZGU0VUKGxkcl9idWZfcmQpXG4gIDkwOlx0I2RlZmluZSBQUkVTVEVSQV9MRFJfQlVGX1dSX1JFR1x0XHRQUkVTVEVSQV9MRFJfUkVHX09GRlNFVChsZHJfYnVmX3dyKVxuICA5MTpcdCNkZWZpbmUgUFJFU1RFUkFfTERSX1NUQVRVU19SRUdcdFx0UFJFU1RFUkFfTERSX1JFR19PRkZTRVQobGRyX3N0YXR1cylcbiAgOTI6XHRcbiAgOTM6XHQjZGVmaW5lIFBSRVNURVJBX0xEUl9DVExfRExfU1RBUlRcdEJJVCgwKVxuICA5NDpcdFxuICA5NTpcdCNkZWZpbmUgUFJFU1RFUkFfRVZUX1FOVU1fTUFYXHQ0XG4gIDk2Olx0XG4gIDk3Olx0c3RydWN0IHByZXN0ZXJhX2Z3X2V2dHFfcmVncyB7XG4gIDk4Olx0XHR1MzIgcmRfaWR4O1xuICA5OTpcdFx0dTMyIHBhZDE7XG4gMTAwOlx0XHR1MzIgd3JfaWR4O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDA3OjI5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyMTc0CgkJCQkJCQlvdXRwdXQ6IDQ5CgkJCQkJCQl0aG91Z2h0czogMjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipEaXZpbmcgRGVlcGVyIGludG8gYHByZXN0ZXJhX3BjaS5jYCoqCgpPa2F5LCB0aW1lIHRvIHN5c3RlbWF0aWNhbGx5IGdvIHRocm91Z2ggdGhlIHJlbWFpbmluZyBwYXJ0cyBvZiBgcHJlc3RlcmFfcGNpLmNgLiBJJiMzOTt2ZSBhbHJlYWR5IGdvdCBhIGdvb2QgZ3Jhc3Agb24gdGhlIGFyY2hpdGVjdHVyZSwgYnV0IG5vdyBJIG5lZWQgdG8gc29saWRpZnkgbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgZHJpdmVyJiMzOTtzIHNwZWNpZmljcy4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIGZvY3VzaW5nIG9uIHR3byBrZXkgYXJlYXM6IHRoZSBQQ0kgZHJpdmVyIGRldmljZSBJRHMgYW5kIHRoZSBgcHJvYmVgIGZ1bmN0aW9uLiBUaGUgZGV2aWNlIElEcyB3aWxsIGRlZmluZSB3aGljaCBQQ0kgZGV2aWNlcyB0aGlzIGRyaXZlciBpcyBkZXNpZ25lZCB0byBoYW5kbGUsIHdoaWNoIGlzIGNyaXRpY2FsLiBJIG5lZWQgdG8gc2VlIHRoZSByYW5nZSBhbmQgc2NvcGUgb2YgZGV2aWNlcyBpdCBjb3ZlcnMsIGFuZCBpZiBhbnl0aGluZyBzZWVtcyB1bnVzdWFsIG9yIGNvdWxkIGJlIGEgcG90ZW50aWFsIHBvaW50IG9mIGNvbmZsaWN0LiBUaGVuLCB0aGUgYHByb2JlYCBmdW5jdGlvbiBpdHNlbGYuIFRoaXMgaXMgd2hlcmUgdGhlIHJ1YmJlciBtZWV0cyB0aGUgcm9hZC4gSXQmIzM5O3MgdGhlIGNvcmUgb2YgdGhlIGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQgY29ubmVjdGlvbiB0byB0aGUgZHJpdmVyLiBJIG5lZWQgdG8gdHJhY2UgaXRzIGxvZ2ljIHZlcnkgY2FyZWZ1bGx5LCBwYXlpbmcgY2xvc2UgYXR0ZW50aW9uIHRvIHJlc291cmNlIGFsbG9jYXRpb24sIGRldmljZSBjb25maWd1cmF0aW9uLCBpbnRlcnJ1cHQgc2V0dXAsIGFuZCBob3cgaXQgaGFuZGxlcyBwb3RlbnRpYWwgZXJyb3JzLiBJJiMzOTtsbCBiZSBsb29raW5nIGZvciBhbnkgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9ucywgcmVzb3VyY2UgbGVha3MsIG9yIGluZWZmaWNpZW50IG1ldGhvZHMuIEkmIzM5O2xsIG5lZWQgdG8gc2NydXRpbml6ZSBob3cgaXQgaGFuZGxlcyBkaWZmZXJlbnQgaGFyZHdhcmUgcmV2aXNpb25zIG9yIHBvdGVudGlhbCBjb3JuZXIgY2FzZXMuIFRoaXMgbGV2ZWwgb2YgZGV0YWlsIGlzIGtleSBmb3IgYW50aWNpcGF0aW5nIHBvdGVudGlhbCBpc3N1ZXMsIGFuZCwgb2YgY291cnNlLCBtYWtpbmcgc3VyZSBpdCBmb2xsb3dzIGJlc3QgcHJhY3RpY2VzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwNzoyOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfcGNpLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA3NTAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMTAwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA3NTA6XHRcdGRldl9pbmZvKGZ3LVx1MDAzZWRldi5kZXYsIFwmIzM0O0xvYWRpbmcgJXMgLi4uXCYjMzQ7LCBmd19wYXRoKTtcbiA3NTE6XHRcbiA3NTI6XHRcdGZ3LVx1MDAzZXJldl9zdXBwLm1haiA9IHZlcl9tYWo7XG4gNzUzOlx0XHRmdy1cdTAwM2VyZXZfc3VwcC5taW4gPSB2ZXJfbWluO1xuIDc1NDpcdFx0ZnctXHUwMDNlcmV2X3N1cHAuc3ViID0gMDtcbiA3NTU6XHRcbiA3NTY6XHRcdHJldHVybiAwO1xuIDc1NzpcdH1cbiA3NTg6XHRcbiA3NTk6XHRzdGF0aWMgdm9pZCBwcmVzdGVyYV9md19wdXQoc3RydWN0IHByZXN0ZXJhX2Z3ICpmdylcbiA3NjA6XHR7XG4gNzYxOlx0XHRyZWxlYXNlX2Zpcm13YXJlKGZ3LVx1MDAzZWJpbik7XG4gNzYyOlx0fVxuIDc2MzpcdFxuIDc2NDpcdHN0YXRpYyBpbnQgcHJlc3RlcmFfZndfbG9hZChzdHJ1Y3QgcHJlc3RlcmFfZncgKmZ3KVxuIDc2NTpcdHtcbiA3NjY6XHRcdHNpemVfdCBobGVuID0gc2l6ZW9mKHN0cnVjdCBwcmVzdGVyYV9md19oZWFkZXIpO1xuIDc2NzpcdFx0aW50IGVycjtcbiA3Njg6XHRcbiA3Njk6XHRcdGVyciA9IHByZXN0ZXJhX2xkcl93YWl0X3JlZzMyKGZ3LCBQUkVTVEVSQV9MRFJfUkVBRFlfUkVHLFxuIDc3MDpcdFx0XHRcdFx0ICAgICAgUFJFU1RFUkFfTERSX1JFQURZX01BR0lDLFxuIDc3MTpcdFx0XHRcdFx0ICAgICAgNSAqIE1TRUNfUEVSX1NFQyk7XG4gNzcyOlx0XHRpZiAoZXJyKSB7XG4gNzczOlx0XHRcdGRldl9lcnIoZnctXHUwMDNlZGV2LmRldiwgXCYjMzQ7d2FpdGluZyBmb3IgRlcgbG9hZGVyIGlzIHRpbWVkIG91dFwmIzM0Oyk7XG4gNzc0Olx0XHRcdHJldHVybiBlcnI7XG4gNzc1Olx0XHR9XG4gNzc2Olx0XG4gNzc3Olx0XHRmdy1cdTAwM2VsZHJfcmluZ19idWYgPSBmdy1cdTAwM2VsZHJfcmVncyAmIzQzO1xuIDc3ODpcdFx0XHRwcmVzdGVyYV9sZHJfcmVhZChmdywgUFJFU1RFUkFfTERSX0JVRl9PRkZTX1JFRyk7XG4gNzc5Olx0XG4gNzgwOlx0XHRmdy1cdTAwM2VsZHJfYnVmX2xlbiA9XG4gNzgxOlx0XHRcdHByZXN0ZXJhX2xkcl9yZWFkKGZ3LCBQUkVTVEVSQV9MRFJfQlVGX1NJWkVfUkVHKTtcbiA3ODI6XHRcbiA3ODM6XHRcdGZ3LVx1MDAzZWxkcl93cl9pZHggPSAwO1xuIDc4NDpcdFxuIDc4NTpcdFx0ZXJyID0gcHJlc3RlcmFfZndfZ2V0KGZ3KTtcbiA3ODY6XHRcdGlmIChlcnIpXG4gNzg3Olx0XHRcdHJldHVybiBlcnI7XG4gNzg4Olx0XG4gNzg5Olx0XHRlcnIgPSBwcmVzdGVyYV9md19oZHJfcGFyc2UoZncpO1xuIDc5MDpcdFx0aWYgKGVycikge1xuIDc5MTpcdFx0XHRkZXZfZXJyKGZ3LVx1MDAzZWRldi5kZXYsIFwmIzM0O0ZXIGltYWdlIGhlYWRlciBpcyBpbnZhbGlkXFxuXCYjMzQ7KTtcbiA3OTI6XHRcdFx0Z290byBvdXRfcmVsZWFzZTtcbiA3OTM6XHRcdH1cbiA3OTQ6XHRcbiA3OTU6XHRcdHByZXN0ZXJhX2xkcl93cml0ZShmdywgUFJFU1RFUkFfTERSX0lNR19TSVpFX1JFRywgZnctXHUwMDNlYmluLVx1MDAzZXNpemUgLSBobGVuKTtcbiA3OTY6XHRcdHByZXN0ZXJhX2xkcl93cml0ZShmdywgUFJFU1RFUkFfTERSX0NUTF9SRUcsIFBSRVNURVJBX0xEUl9DVExfRExfU1RBUlQpO1xuIDc5NzpcdFxuIDc5ODpcdFx0ZXJyID0gcHJlc3RlcmFfbGRyX2Z3X3NlbmQoZncsIGZ3LVx1MDAzZWJpbi1cdTAwM2VkYXRhICYjNDM7IGhsZW4sXG4gNzk5Olx0XHRcdFx0XHQgICBmdy1cdTAwM2ViaW4tXHUwMDNlc2l6ZSAtIGhsZW4pO1xuIDgwMDpcdFxuIDgwMTpcdG91dF9yZWxlYXNlOlxuIDgwMjpcdFx0cHJlc3RlcmFfZndfcHV0KGZ3KTtcbiA4MDM6XHRcdHJldHVybiBlcnI7XG4gODA0Olx0fVxuIDgwNTpcdFxuIDgwNjpcdHN0YXRpYyBib29sIHByZXN0ZXJhX3BjaV9wcF91c2VfYmFyMihzdHJ1Y3QgcGNpX2RldiAqcGRldilcbiA4MDc6XHR7XG4gODA4Olx0XHRzd2l0Y2ggKHBkZXYtXHUwMDNlZGV2aWNlKSB7XG4gODA5Olx0XHRjYXNlIFBSRVNURVJBX0RFVl9JRF85OERYNzMxMk06XG4gODEwOlx0XHRjYXNlIFBSRVNURVJBX0RFVl9JRF85OERYMzUwMDpcbiA4MTE6XHRcdGNhc2UgUFJFU1RFUkFfREVWX0lEXzk4RFgzNTAxOlxuIDgxMjpcdFx0Y2FzZSBQUkVTVEVSQV9ERVZfSURfOThEWDM1MTA6XG4gODEzOlx0XHRjYXNlIFBSRVNURVJBX0RFVl9JRF85OERYMzUyMDpcbiA4MTQ6XHRcdFx0cmV0dXJuIHRydWU7XG4gODE1Olx0XG4gODE2Olx0XHRkZWZhdWx0OlxuIDgxNzpcdFx0XHRyZXR1cm4gZmFsc2U7XG4gODE4Olx0XHR9XG4gODE5Olx0fVxuIDgyMDpcdFxuIDgyMTpcdHN0YXRpYyB1MzIgcHJlc3RlcmFfcGNpX3BwX2JhcjJfb2ZmcyhzdHJ1Y3QgcGNpX2RldiAqcGRldilcbiA4MjI6XHR7XG4gODIzOlx0XHRpZiAocGNpX3Jlc291cmNlX2xlbihwZGV2LCAyKSA9PSAweDEwMDAwMDApXG4gODI0Olx0XHRcdHJldHVybiAweDA7XG4gODI1Olx0XHRlbHNlXG4gODI2Olx0XHRcdHJldHVybiAocGNpX3Jlc291cmNlX2xlbihwZGV2LCAyKSAvIDIpO1xuIDgyNzpcdH1cbiA4Mjg6XHRcbiA4Mjk6XHRzdGF0aWMgdTMyIHByZXN0ZXJhX3BjaV9md19iYXIyX29mZnMoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4gODMwOlx0e1xuIDgzMTpcdFx0aWYgKHBjaV9yZXNvdXJjZV9sZW4ocGRldiwgMikgPT0gMHgxMDAwMDAwKVxuIDgzMjpcdFx0XHRyZXR1cm4gMHg0MDAwMDA7XG4gODMzOlx0XHRlbHNlXG4gODM0Olx0XHRcdHJldHVybiAweDA7XG4gODM1Olx0fVxuIDgzNjpcdFxuIDgzNzpcdHN0YXRpYyBpbnQgcHJlc3RlcmFfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuIDgzODpcdFx0XHRcdCAgICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbiA4Mzk6XHR7XG4gODQwOlx0XHRjb25zdCBjaGFyICpkcml2ZXJfbmFtZSA9IGRldl9kcml2ZXJfc3RyaW5nKFx1MDAyNnBkZXYtXHUwMDNlZGV2KTtcbiA4NDE6XHRcdHU4IF9faW9tZW0gKm1lbV9hZGRyLCAqcHBfYWRkciA9IE5VTEw7XG4gODQyOlx0XHRzdHJ1Y3QgcHJlc3RlcmFfZncgKmZ3O1xuIDg0MzpcdFx0aW50IGVycjtcbiA4NDQ6XHRcbiA4NDU6XHRcdGVyciA9IHBjaW1fZW5hYmxlX2RldmljZShwZGV2KTtcbiA4NDY6XHRcdGlmIChlcnIpIHtcbiA4NDc6XHRcdFx0ZGV2X2VycihcdTAwMjZwZGV2LVx1MDAzZWRldiwgXCYjMzQ7cGNpX2VuYWJsZV9kZXZpY2UgZmFpbGVkXFxuXCYjMzQ7KTtcbiA4NDg6XHRcdFx0Z290byBlcnJfcGNpX2VuYWJsZV9kZXZpY2U7XG4gODQ5Olx0XHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDA3OjI5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0MDk1CgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgcmV2aWV3aW5nIGBwcmVzdGVyYV9wY2kuY2A6CgoqKkRpdmluZyBpbnRvIHRoZSBQQ0kgRGV2aWNlIFRhYmxlIGluIHByZXN0ZXJhX3BjaS5jKioKCkFscmlnaHQsIHRpbWUgdG8gZGlnIGRlZXBlciBpbnRvIHRoaXMgYHByZXN0ZXJhX3BjaS5jYCBmaWxlLiBJIG5lZWQgdG8gZ2V0IGEgY2xlYXIgcGljdHVyZSBvZiBob3cgdGhlIFBDSSBkZXZpY2VzIGFyZSBoYW5kbGVkLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gZ29pbmcgdG8gZm9jdXMgb24gd2hlcmUgdGhlIFBDSSBkZXZpY2UgdGFibGUgaXMgZGVmaW5lZCBhbmQgcG9wdWxhdGVkLiBVbmRlcnN0YW5kaW5nIHRoaXMgdGFibGUgaXMgYWJzb2x1dGVseSBjcnVjaWFsIHRvIGdyYXNwaW5nIGhvdyB0aGUgZHJpdmVyIGludGVyYWN0cyB3aXRoIHRoZSBoYXJkd2FyZS4gSSB3YW50IHRvIHNlZSBob3cgdGhlIHN5c3RlbSBpZGVudGlmaWVzIGFuZCBjb25maWd1cmVzIHRoZXNlIFByZXN0ZXJhLXNwZWNpZmljIGRldmljZXMgb24gdGhlIFBDSSBidXMuIExldCYjMzk7cyBzZWUgaG93IHRoZSByZXN0IG9mIHRoaXMgY29kZSBsYXlzIHRoaW5ncyBvdXQuIEhvcGVmdWxseSwgaXQmIzM5O3Mgd2VsbC1jb21tZW50ZWQgYW5kIGVhc3kgdG8gbmF2aWdhdGUhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDA3OjI5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9wY2kuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDkxMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA2MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgOTEwOlx0XHRJTklUX1dPUksoXHUwMDI2ZnctXHUwMDNlZXZ0X3dvcmssIHByZXN0ZXJhX2Z3X2V2dF93b3JrX2ZuKTtcbiA5MTE6XHRcbiA5MTI6XHRcdGVyciA9IHBjaV9hbGxvY19pcnFfdmVjdG9ycyhwZGV2LCAxLCAxLCBQQ0lfSVJRX01TSSk7XG4gOTEzOlx0XHRpZiAoZXJyIFx1MDAzYyAwKSB7XG4gOTE0Olx0XHRcdGRldl9lcnIoXHUwMDI2cGRldi1cdTAwM2VkZXYsIFwmIzM0O01TSSBJUlEgaW5pdCBmYWlsZWRcXG5cJiMzNDspO1xuIDkxNTpcdFx0XHRnb3RvIGVycl9pcnFfYWxsb2M7XG4gOTE2Olx0XHR9XG4gOTE3Olx0XG4gOTE4Olx0XHRlcnIgPSByZXF1ZXN0X2lycShwY2lfaXJxX3ZlY3RvcihwZGV2LCAwKSwgcHJlc3RlcmFfcGNpX2lycV9oYW5kbGVyLFxuIDkxOTpcdFx0XHRcdCAgMCwgZHJpdmVyX25hbWUsIGZ3KTtcbiA5MjA6XHRcdGlmIChlcnIpIHtcbiA5MjE6XHRcdFx0ZGV2X2VycihcdTAwMjZwZGV2LVx1MDAzZWRldiwgXCYjMzQ7ZmFpbCB0byByZXF1ZXN0IElSUVxcblwmIzM0Oyk7XG4gOTIyOlx0XHRcdGdvdG8gZXJyX3JlcXVlc3RfaXJxO1xuIDkyMzpcdFx0fVxuIDkyNDpcdFxuIDkyNTpcdFx0ZXJyID0gcHJlc3RlcmFfZGV2aWNlX3JlZ2lzdGVyKFx1MDAyNmZ3LVx1MDAzZWRldik7XG4gOTI2Olx0XHRpZiAoZXJyKVxuIDkyNzpcdFx0XHRnb3RvIGVycl9wcmVzdGVyYV9kZXZfcmVnaXN0ZXI7XG4gOTI4Olx0XG4gOTI5Olx0XHRyZXR1cm4gMDtcbiA5MzA6XHRcbiA5MzE6XHRlcnJfcHJlc3RlcmFfZGV2X3JlZ2lzdGVyOlxuIDkzMjpcdFx0ZnJlZV9pcnEocGNpX2lycV92ZWN0b3IocGRldiwgMCksIGZ3KTtcbiA5MzM6XHRlcnJfcmVxdWVzdF9pcnE6XG4gOTM0Olx0XHRwY2lfZnJlZV9pcnFfdmVjdG9ycyhwZGV2KTtcbiA5MzU6XHRlcnJfaXJxX2FsbG9jOlxuIDkzNjpcdFx0ZGVzdHJveV93b3JrcXVldWUoZnctXHUwMDNld3EpO1xuIDkzNzpcdGVycl93cV9hbGxvYzpcbiA5Mzg6XHRcdHByZXN0ZXJhX2Z3X3VuaW5pdChmdyk7XG4gOTM5Olx0ZXJyX3ByZXN0ZXJhX2Z3X2luaXQ6XG4gOTQwOlx0ZXJyX3BjaV9kZXZfYWxsb2M6XG4gOTQxOlx0ZXJyX3BwX2lvcmVtYXA6XG4gOTQyOlx0ZXJyX21lbV9pb3JlbWFwOlxuIDk0MzpcdGVycl9kbWFfbWFzazpcbiA5NDQ6XHRlcnJfcGNpX3JlcXVlc3RfcmVnaW9uczpcbiA5NDU6XHRlcnJfcGNpX2VuYWJsZV9kZXZpY2U6XG4gOTQ2Olx0XHRyZXR1cm4gZXJyO1xuIDk0NzpcdH1cbiA5NDg6XHRcbiA5NDk6XHRzdGF0aWMgdm9pZCBwcmVzdGVyYV9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuIDk1MDpcdHtcbiA5NTE6XHRcdHN0cnVjdCBwcmVzdGVyYV9mdyAqZncgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7XG4gOTUyOlx0XG4gOTUzOlx0XHRwcmVzdGVyYV9kZXZpY2VfdW5yZWdpc3RlcihcdTAwMjZmdy1cdTAwM2VkZXYpO1xuIDk1NDpcdFx0ZnJlZV9pcnEocGNpX2lycV92ZWN0b3IocGRldiwgMCksIGZ3KTtcbiA5NTU6XHRcdHBjaV9mcmVlX2lycV92ZWN0b3JzKHBkZXYpO1xuIDk1NjpcdFx0ZGVzdHJveV93b3JrcXVldWUoZnctXHUwMDNld3EpO1xuIDk1NzpcdFx0cHJlc3RlcmFfZndfdW5pbml0KGZ3KTtcbiA5NTg6XHR9XG4gOTU5Olx0XG4gOTYwOlx0c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHByZXN0ZXJhX3BjaV9kZXZpY2VzW10gPSB7XG4gOTYxOlx0XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NQVJWRUxMLCBQUkVTVEVSQV9ERVZfSURfQUMzWF85OERYXzU1KSB9LFxuIDk2MjpcdFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUFSVkVMTCwgUFJFU1RFUkFfREVWX0lEX0FDM1hfOThEWF82NSkgfSxcbiA5NjM6XHRcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01BUlZFTEwsIFBSRVNURVJBX0RFVl9JRF9BTERSSU4yKSB9LFxuIDk2NDpcdFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUFSVkVMTCwgUFJFU1RFUkFfREVWX0lEXzk4RFg3MzEyTSkgfSxcbiA5NjU6XHRcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01BUlZFTEwsIFBSRVNURVJBX0RFVl9JRF85OERYMzUwMCkgfSxcbiA5NjY6XHRcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01BUlZFTEwsIFBSRVNURVJBX0RFVl9JRF85OERYMzUwMSkgfSxcbiA5Njc6XHRcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01BUlZFTEwsIFBSRVNURVJBX0RFVl9JRF85OERYMzUxMCkgfSxcbiA5Njg6XHRcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01BUlZFTEwsIFBSRVNURVJBX0RFVl9JRF85OERYMzUyMCkgfSxcbiA5Njk6XHRcdHsgfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwNzoyOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTQ3NgoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDE5OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSAmIzM0O1dvcnRoRnV6emluZyYjMzQ7IENyaXRlcmlhKioKCk9rYXksIGxldCYjMzk7cyBzZWUsIHRoZSBpbnN0cnVjdGlvbnMgaW4gU2VjdGlvbiAyIHJlZ2FyZGluZyB3aGVuICpub3QqIHRvIGZ1enogYXJlIGNsZWFyLiBXZSYjMzk7cmUgbG9va2luZyBhdCAmIzM0O05FR0FUSVZFIENSSVRFUklBLCYjMzQ7IHNwZWNpZmljYWxseSB3aGVuIHdlIHNob3VsZCByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuIFRoZSByZWxldmFudCBjb25kaXRpb24gaGVyZSBpcyAmIzM0O1N0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZS4mIzM0OyBJdCBzcGVjaWZpZXMgdmVuZG9yLXNwZWNpZmljIGRyaXZlcnMgZm9yIHRoaW5ncyBsaWtlIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgYW5kIEdQVXMsIHRoYXQgcmVxdWlyZSBzcGVjaWFsaXplZCBwaHlzaWNhbCBoYXJkd2FyZSAoQVNJQy9QQ0llIGNhcmRzKSB0aGF0ICphcmVuJiMzOTt0KiBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgoKTm93LCBJIGtub3cgdGhlIE1hcnZlbGwgUHJlc3RlcmEgc3dpdGNoIEFTSUNzIGZhbWlseSwgbGlrZSB0aGUgQWxkcmluMiBhbmQgOThEWCogc2VyaWVzLCBhbmQgQUMzWCwgZmFsbHMgc3F1YXJlbHkgaW50byB0aGF0IGNhdGVnb3J5LiBJdOKAmXMgYSB2ZW5kb3Itc3BlY2lmaWMgc3dpdGNoIEFTSUMgZHJpdmVyLCBtZWFuaW5nIGl0IGFic29sdXRlbHkgcmVxdWlyZXMgc3BlY2lmaWMgaGFyZHdhcmUgKHRoZSBwaHlzaWNhbCBBU0lDcyBhbmQgUENJZSBjYXJkcykgYW5kIGl0cyBmaXJtd2FyZSB0byBmdW5jdGlvbiBwcm9wZXJseS4gV2UgY2FuJiMzOTt0IHJlYWRpbHkgc2ltdWxhdGUgb3IgZW11bGF0ZSB0aGlzIGVudmlyb25tZW50IHVzaW5nIHN0YW5kYXJkIFFFTVUgb3IgaW4gYSB0b29sIGxpa2Ugc3l6a2FsbGVyLiBUaGVyZWZvcmUsIHRoaXMgZml0cyB0aGUgJiMzNDtzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmUmIzM0OyBjcml0ZXJpYSBwZXJmZWN0bHkuIEdpdmVuIHRoYXQsIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlcmUgYXJlbiYjMzk7dCBhbnkgb3RoZXIgcmVsYXRlZCBmaWxlcyBvciBtb2R1bGVzIHRoYXQgbWlnaHQgY29tcGxpY2F0ZSB0aGUgZGVjaXNpb24sIGJ1dCBteSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgdGhhdCB0aGlzIGlzIGRlZmluaXRlbHkgbm90IGZ1enphYmxlIGluIG91ciBjdXJyZW50IHNldHVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwNzoyOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmNvZGVzZWFyY2gtZGlyLWluZGV4PC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtEaXImIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGVzJiMzNDs6IFsKICAgICYjMzQ7cHJlc3RlcmEuaCYjMzQ7LAogICAgJiMzNDtwcmVzdGVyYV9hY2wuYyYjMzQ7LAogICAgJiMzNDtwcmVzdGVyYV9hY2wuaCYjMzQ7LAogICAgJiMzNDtwcmVzdGVyYV9jb3VudGVyLmMmIzM0OywKICAgICYjMzQ7cHJlc3RlcmFfY291bnRlci5oJiMzNDssCiAgICAmIzM0O3ByZXN0ZXJhX2RldmxpbmsuYyYjMzQ7LAogICAgJiMzNDtwcmVzdGVyYV9kZXZsaW5rLmgmIzM0OywKICAgICYjMzQ7cHJlc3RlcmFfZHNhLmMmIzM0OywKICAgICYjMzQ7cHJlc3RlcmFfZHNhLmgmIzM0OywKICAgICYjMzQ7cHJlc3RlcmFfZXRodG9vbC5jJiMzNDssCiAgICAmIzM0O3ByZXN0ZXJhX2V0aHRvb2wuaCYjMzQ7LAogICAgJiMzNDtwcmVzdGVyYV9mbG93LmMmIzM0OywKICAgICYjMzQ7cHJlc3RlcmFfZmxvdy5oJiMzNDssCiAgICAmIzM0O3ByZXN0ZXJhX2Zsb3dlci5jJiMzNDssCiAgICAmIzM0O3ByZXN0ZXJhX2Zsb3dlci5oJiMzNDssCiAgICAmIzM0O3ByZXN0ZXJhX2h3LmMmIzM0OywKICAgICYjMzQ7cHJlc3RlcmFfaHcuaCYjMzQ7LAogICAgJiMzNDtwcmVzdGVyYV9tYWluLmMmIzM0OywKICAgICYjMzQ7cHJlc3RlcmFfbWF0Y2hhbGwuYyYjMzQ7LAogICAgJiMzNDtwcmVzdGVyYV9tYXRjaGFsbC5oJiMzNDssCiAgICAmIzM0O3ByZXN0ZXJhX3BjaS5jJiMzNDssCiAgICAmIzM0O3ByZXN0ZXJhX3JvdXRlci5jJiMzNDssCiAgICAmIzM0O3ByZXN0ZXJhX3JvdXRlcl9ody5jJiMzNDssCiAgICAmIzM0O3ByZXN0ZXJhX3JvdXRlcl9ody5oJiMzNDssCiAgICAmIzM0O3ByZXN0ZXJhX3J4dHguYyYjMzQ7LAogICAgJiMzNDtwcmVzdGVyYV9yeHR4LmgmIzM0OywKICAgICYjMzQ7cHJlc3RlcmFfc3Bhbi5jJiMzNDssCiAgICAmIzM0O3ByZXN0ZXJhX3NwYW4uaCYjMzQ7LAogICAgJiMzNDtwcmVzdGVyYV9zd2l0Y2hkZXYuYyYjMzQ7LAogICAgJiMzNDtwcmVzdGVyYV9zd2l0Y2hkZXYuaCYjMzQ7CiAgXSwKICAmIzM0O1N1YmRpcnMmIzM0OzogbnVsbAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDA3OjI5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2Mjc2CgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogNTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgaWYgSSB3ZXJlIHRoaW5raW5nIHRoZXNlIHRob3VnaHRzOgoKKipBbmFseXppbmcgdGhlIEhhcmR3YXJlIENvdW50ZXIgRnVuY3Rpb24qKgoKT2theSwgc28gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGlzIGBwcmVzdGVyYV9od19jb3VudGVyc19nZXRgIGZ1bmN0aW9uLiBTcGVjaWZpY2FsbHksIGl0IHNlZW1zIGl0JiMzOTtzIGJlZW4gbW9kaWZpZWQgcmVjZW50bHkuIFJpZ2h0LCBJIHJlbWVtYmVyIHRoYXQgYHByZXN0ZXJhX2h3X2NvdW50ZXJzX2dldGAgaXMgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfaHcuY2AuIFRpbWUgdG8gZGl2ZSBpbnRvIHRoZSBjb2RlLiBMZXQmIzM5O3MgZ2V0IHRoYXQgZmlsZSBvcGVuIGFuZCByZWFkIHRocm91Z2ggdGhhdCBzcGVjaWZpYyBmdW5jdGlvbiBpbiBgcHJlc3RlcmFfaHcuY2AuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQmIzM5O3MgYmVlbiBjaGFuZ2VkIGFuZCBob3cgaXQgaW1wYWN0cyB0aGUgb3ZlcmFsbCBmbG93LiBMZXQmIzM5O3Mgc2VlLi4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDA3OjI5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9ody5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjMxMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA0MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsyMzEwOlx0XHRzdHJ1Y3QgcHJlc3RlcmFfbXNnX2NvdW50ZXJfcmVzcCAqcmVzcDtcbjIzMTE6XHRcdHN0cnVjdCBwcmVzdGVyYV9tc2dfY291bnRlcl9yZXEgcmVxID0ge1xuMjMxMjpcdFx0XHQuYmxvY2tfaWQgPSBfX2NwdV90b19sZTMyKGlkeCksXG4yMzEzOlx0XHRcdC5udW1fY291bnRlcnMgPSBfX2NwdV90b19sZTMyKCpsZW4pLFxuMjMxNDpcdFx0fTtcbjIzMTU6XHRcdHNpemVfdCBzaXplID0gc3RydWN0X3NpemUocmVzcCwgc3RhdHMsICpsZW4pO1xuMjMxNjpcdFx0aW50IGVyciwgaTtcbjIzMTc6XHRcbjIzMTg6XHRcdHJlc3AgPSBrbWFsbG9jKHNpemUsIEdGUF9LRVJORUwpO1xuMjMxOTpcdFx0aWYgKCFyZXNwKVxuMjMyMDpcdFx0XHRyZXR1cm4gLUVOT01FTTtcbjIzMjE6XHRcbjIzMjI6XHRcdGVyciA9IHByZXN0ZXJhX2NtZF9yZXQoc3csIFBSRVNURVJBX0NNRF9UWVBFX0NPVU5URVJfR0VULFxuMjMyMzpcdFx0XHRcdCAgICAgICBcdTAwMjZyZXEuY21kLCBzaXplb2YocmVxKSwgXHUwMDI2cmVzcC1cdTAwM2VyZXQsIHNpemUpO1xuMjMyNDpcdFx0aWYgKGVycilcbjIzMjU6XHRcdFx0Z290byBmcmVlX2J1ZmY7XG4yMzI2Olx0XG4yMzI3Olx0XHRpZiAoX19sZTMyX3RvX2NwdShyZXNwLVx1MDAzZW51bV9jb3VudGVycykgXHUwMDNlICpsZW4pIHtcbjIzMjg6XHRcdFx0ZXJyID0gLUVJTlZBTDtcbjIzMjk6XHRcdFx0Z290byBmcmVlX2J1ZmY7XG4yMzMwOlx0XHR9XG4yMzMxOlx0XG4yMzMyOlx0XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBfX2xlMzJfdG9fY3B1KHJlc3AtXHUwMDNlbnVtX2NvdW50ZXJzKTsgaSYjNDM7JiM0MzspIHtcbjIzMzM6XHRcdFx0c3RhdHNbaV0ucGFja2V0cyAmIzQzOz0gX19sZTY0X3RvX2NwdShyZXNwLVx1MDAzZXN0YXRzW2ldLnBhY2tldHMpO1xuMjMzNDpcdFx0XHRzdGF0c1tpXS5ieXRlcyAmIzQzOz0gX19sZTY0X3RvX2NwdShyZXNwLVx1MDAzZXN0YXRzW2ldLmJ5dGVzKTtcbjIzMzU6XHRcdH1cbjIzMzY6XHRcbjIzMzc6XHRcdCpsZW4gPSBfX2xlMzJfdG9fY3B1KHJlc3AtXHUwMDNlbnVtX2NvdW50ZXJzKTtcbjIzMzg6XHRcdCpkb25lID0gX19sZTMyX3RvX2NwdShyZXNwLVx1MDAzZWRvbmUpO1xuMjMzOTpcdFxuMjM0MDpcdGZyZWVfYnVmZjpcbjIzNDE6XHRcdGtmcmVlKHJlc3ApO1xuMjM0MjpcdFx0cmV0dXJuIGVycjtcbjIzNDM6XHR9XG4yMzQ0Olx0XG4yMzQ1Olx0aW50IHByZXN0ZXJhX2h3X2NvdW50ZXJfYmxvY2tfZ2V0KHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3LFxuMjM0NjpcdFx0XHRcdFx0ICB1MzIgY2xpZW50LCB1MzIgKmJsb2NrX2lkLCB1MzIgKm9mZnNldCxcbjIzNDc6XHRcdFx0XHRcdCAgdTMyICpudW1fY291bnRlcnMpXG4yMzQ4Olx0e1xuMjM0OTpcdFx0c3RydWN0IHByZXN0ZXJhX21zZ19jb3VudGVyX3Jlc3AgcmVzcDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDcgMDc6Mjk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjcxODQKCQkJCQkJCW91dHB1dDogMTkKCQkJCQkJCXRob3VnaHRzOiAzNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipDaGVja2luZyBmb3IgVmlydHVhbCBQUkVTVEVSQSBOZXR3b3JrIERldmljZXMqKgoKT2theSwgbGV0JiMzOTtzIGp1c3QgbWFrZSBzdXJlIEkmIzM5O20gbm90IG1pc3NpbmcgYW55dGhpbmcgb2J2aW91cyBoZXJlLiBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgaWYgdGhlcmUmIzM5O3MgYW55IGV4aXN0aW5nIHZpcnR1YWwgb3IgbW9jayBuZXR3b3JrIGRldmljZSBzdXBwb3J0IHdpdGhpbiB0aGUga2VybmVsIHRyZWUgc3BlY2lmaWNhbGx5IGZvciBQcmVzdGVyYS4gSSB2YWd1ZWx5IHJlY2FsbCBzb21ldGhpbmcsIGJ1dCBtZW1vcnkgaXNuJiMzOTt0IGFsd2F5cyByZWxpYWJsZS4gVGhlIG1vc3QgbG9naWNhbCBmaXJzdCBzdGVwIGlzIHRvIHBlcmZvcm0gYSB0YXJnZXRlZCBzZWFyY2guIEkmIzM5O2xsIGZvY3VzIG15IHF1ZXJ5IHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0YCBkaXJlY3RvcnksIGJlY2F1c2UgdGhhdCYjMzk7cyB3aGVyZSBhbGwgdGhlIG5ldHdvcmstcmVsYXRlZCBkcml2ZXJzIGxpdmUuIEEgc2ltcGxlIGtleXdvcmQgc2VhcmNoIGZvciAmIzM0O1BSRVNURVJBJiMzNDsgc2hvdWxkIHlpZWxkIHRoZSByZWxldmFudCByZXN1bHRzIC0gZmluZ2VycyBjcm9zc2VkLiBIb3BlZnVsbHksIGl0JiMzOTtsbCB0dXJuIHVwIHNvbWV0aGluZyBJIGNhbiB3b3JrIHdpdGguIFRpbWUgdG8gc2VlIHdoYXQgdGhlIGtlcm5lbCByZXZlYWxzIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwNzoyOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtDT05GSUdfUFJFU1RFUkEmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfUFJFU1RFUkEpXHQmIzQzOz0gcHJlc3RlcmEub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZS0zLXByZXN0ZXJhLW9ianNcdFx0Oj0gcHJlc3RlcmFfbWFpbi5vIHByZXN0ZXJhX2h3Lm8gcHJlc3RlcmFfZHNhLm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL01ha2VmaWxlLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX1BSRVNURVJBX1BDSSlcdCYjNDM7PSBwcmVzdGVyYV9wY2kub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwNzoyOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNzU2MwoJCQkJCQkJb3V0cHV0OiAxMTEKCQkJCQkJCXRob3VnaHRzOiAyNjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudDogVGhpcyBDb2RlIGlzIFVuZnV6emFibGUqKgoKT2theSwgaGVyZSYjMzk7cyB0aGUgc2l0dWF0aW9uLiBJJiMzOTt2ZSBiZWVuIHRhc2tlZCB3aXRoIGFzc2Vzc2luZyBpZiB0aGlzIHNwZWNpZmljIGNvZGUgcmVsYXRlZCB0byB0aGUgTWFydmVsbCBQcmVzdGVyYSBzd2l0Y2ggZHJpdmVyLCBgUFJFU1RFUkFfUENJYCwgaXMgc3VpdGFibGUgZm9yIGZ1enppbmcuIEFmdGVyIGRpZ2dpbmcgaW4sIEkmIzM5O3ZlIGNvbWUgdG8gdGhlIGNvbmNsdXNpb24gdGhhdCBpdCBpc24mIzM5O3QsIGFuZCBoZXJlJiMzOTtzIHdoeS4KClRoZSBvbmx5IGludGVyZmFjZSBkcml2ZXIgaW4gcGxheSBoZXJlIGlzIGBQUkVTVEVSQV9QQ0lgLCB3aGljaCBpcyBzcGVjaWZpY2FsbHkgZGVzaWduZWQgdG8gaW50ZXJhY3Qgd2l0aCBNYXJ2ZWxsIFByZXN0ZXJhIFN3aXRjaCBBU0lDcy4gSXQgdGFsa3MgdG8gdGhlIGhhcmR3YXJlIHRocm91Z2ggUENJIEJBUnMgYW5kIGxvYWRzIGEgcHJvcHJpZXRhcnkgZmlybXdhcmUgZmlsZSwgYG12c3dfcHJlc3RlcmFfZncqLmltZ2AuIFRoZSBiaWcsIGdsYXJpbmcgcHJvYmxlbT8gVGhpcyBoYXJkd2FyZSBzZXR1cCBpc24mIzM5O3QgZW11bGF0ZWQgaW4gdGhlIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLgoKU28sIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24gc3lzdGVtYXRpY2FsbHkuIEkgbmVlZGVkIHRvIGVuc3VyZSB0aGlzIHdhc24mIzM5O3QgZ29pbmcgdG8gaGF2ZSBhIHBvc2l0aXZlIGltcGFjdCBvbiBhIGZ1enouCgpUaGUgbmVnYXRpdmUgY3JpdGVyaWEgSSBjaGVja2VkIHdlcmUgdGhpbmdzIGxpa2U6IGhhcmR3YXJlIGRyaXZlcnMgdGhhdCBuZWVkIHBoeXNpY2FsIEFTSUNzLCBQQ0llIGNhcmRzLCBTbWFydE5JQ3MsIG9yIEdQVXMgKGxpa2UgYG1seHN3YCwgYHBkc19jb3JlYCwgYHFlZGAsIGBpb25pY2AsIG9yIGBhbWRncHVgKS4gVGhvc2UgYXJlIG5vLWdvcywgYW5kIGd1ZXNzIHdoYXQ/IFRoaXMgZHJpdmVyICphYnNvbHV0ZWx5KiBmYWxscyBpbnRvIHRoYXQgY2F0ZWdvcnkuCgpNeSBjb25jbHVzaW9uIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQ6IHRoZSBjb2RlIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmNgLCBpcyBtb2RpZnlpbmcgdGhlIE1hcnZlbGwgUHJlc3RlcmEgc3dpdGNoIGRyaXZlci4gSXQgcmVxdWlyZXMgKmFjdHVhbCogTWFydmVsbCBQcmVzdGVyYSBTd2l0Y2ggQVNJQyBQQ0llIGhhcmR3YXJlIGFuZCBwcm9wcmlldGFyeSBmaXJtd2FyZSB0byBmdW5jdGlvbi4gQmVjYXVzZSB0aGlzIGhhcmR3YXJlIGlzIG5vdCByZXByZXNlbnRlZCBpbiBhIHN0YW5kYXJkIHZpcnR1YWwgZW52aXJvbm1lbnQsIHRoZSBjb2RlIEkmIzM5O20gbG9va2luZyBhdCBpcyAqc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlKiBmb3IgZnV6emluZy4KClRodXMsIEkmIzM5O20gc2V0dGluZyBgV29ydGhGdXp6aW5nYCB0byBgZmFsc2VgLiBUaGVyZSBhcmUgbm8gc3BlY2lmaWMgY29uZmlndXJhdGlvbiBvcHRpb25zIHRvIGVuYWJsZSwgYW5kIG5vIHNwZWNpZmljIHN5bWJvbHMgdG8gZm9jdXMgb24uIFRoZSBkcml2ZXIgaXMgb2ZmLWxpbWl0cyB0byBmdXp6aW5nLiBUaW1lIHRvIGNhbGwgaXQgaW4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA3IDA3OjI5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgbW9kaWZpZWQgY29kZSBpcyBsb2NhdGVkIGluIHRoZSBNYXJ2ZWxsIFByZXN0ZXJhIHN3aXRjaCBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfaHcuYyksIHdoaWNoIHN1cHBvcnRzIE1hcnZlbGwgUHJlc3RlcmEgc3dpdGNoIEFTSUNzIG92ZXIgUENJLiBUaGlzIGRyaXZlciByZXF1aXJlcyBzcGVjaWZpYyBwaHlzaWNhbCBBU0lDIGhhcmR3YXJlIGFuZCBmaXJtd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIG1vZGlmaWVkIGNvZGUgaXMgbG9jYXRlZCBpbiB0aGUgTWFydmVsbCBQcmVzdGVyYSBzd2l0Y2ggZHJpdmVyIChkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmMpLCB3aGljaCBzdXBwb3J0cyBNYXJ2ZWxsIFByZXN0ZXJhIHN3aXRjaCBBU0lDcyBvdmVyIFBDSS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgc3BlY2lmaWMgcGh5c2ljYWwgQVNJQyBoYXJkd2FyZSBhbmQgZmlybXdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNyAwNzoyOTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDktMDdUMDc6Mjk6MjEuNTU0NDgwNTAxWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzU4NjY5NzU5OTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBtb2RpZmllZCBjb2RlIGlzIGxvY2F0ZWQgaW4gdGhlIE1hcnZlbGwgUHJlc3RlcmEgc3dpdGNoIGRyaXZlciAoZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9ody5jKSwgd2hpY2ggc3VwcG9ydHMgTWFydmVsbCBQcmVzdGVyYSBzd2l0Y2ggQVNJQ3Mgb3ZlciBQQ0kuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIEFTSUMgaGFyZHdhcmUgYW5kIGZpcm13YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMDc6Mjk6MjEuNTU0NDg2NTFaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc3MjQxOTY3OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDE5NThiYmIzZTZkOGJiNWIyM2E3NmIwMmU2N2ZiNmJlZDM1YzBkYjNcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIE1vbiBTZXAgNyAwNzoyOToyMCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmNcXG5pbmRleCA3Njk1Y2JiMmNlNjI2Li5jNGNiNWYyMjg5M2M5IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfaHcuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfaHcuY1xcbkBAIC0yMzI0LDYgKzIzMjQsMTEgQEAgaW50IHByZXN0ZXJhX2h3X2NvdW50ZXJzX2dldChzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdywgdTMyIGlkeCxcXG4gXFx0aWYgKGVycilcXG4gXFx0XFx0Z290byBmcmVlX2J1ZmY7XFxuIFxcbitcXHRpZiAoX19sZTMyX3RvX2NwdShyZXNwLVxcdTAwM2VudW1fY291bnRlcnMpIFxcdTAwM2UgKmxlbikge1xcbitcXHRcXHRlcnIgPSAtRUlOVkFMO1xcbitcXHRcXHRnb3RvIGZyZWVfYnVmZjtcXG4rXFx0fVxcbitcXG4gXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIF9fbGUzMl90b19jcHUocmVzcC1cXHUwMDNlbnVtX2NvdW50ZXJzKTsgaSsrKSB7XFxuIFxcdFxcdHN0YXRzW2ldLnBhY2tldHMgKz0gX19sZTY0X3RvX2NwdShyZXNwLVxcdTAwM2VzdGF0c1tpXS5wYWNrZXRzKTtcXG4gXFx0XFx0c3RhdHNbaV0uYnl0ZXMgKz0gX19sZTY0X3RvX2NwdShyZXNwLVxcdTAwM2VzdGF0c1tpXS5ieXRlcyk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDA3OjI5OjIyLjMyODU1Njk3WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjozNTA5Mjg3ODE3MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgbW9kaWZpZWQgY29kZSBpcyBsb2NhdGVkIGluIHRoZSBNYXJ2ZWxsIFByZXN0ZXJhIHN3aXRjaCBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfaHcuYyksIHdoaWNoIHN1cHBvcnRzIE1hcnZlbGwgUHJlc3RlcmEgc3dpdGNoIEFTSUNzIG92ZXIgUENJLiBUaGlzIGRyaXZlciByZXF1aXJlcyBzcGVjaWZpYyBwaHlzaWNhbCBBU0lDIGhhcmR3YXJlIGFuZCBmaXJtd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3NcbnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4xLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncyxcbmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuXG5cbi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6XG4gIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWRcbiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS5cbiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLFxuICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuXG5cbi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgXCJOTyBGVU5DVElPTkFMIENIQU5HRVwiIChORkNJKSBPUiBcIlJFRkFDVE9SSU5HXCIgQ0xBSU1TOlxuICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzIFwiY2xlYW51cHNcIiwgXCJyZWZhY3RvcmluZ3NcIiwgb3Igc3RhdGVcbiAgXCJObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZFwiLiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS5cbiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50XG4gIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLlxuICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLlxuXG4tIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOlxuICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosXG4gIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLlxuICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyXG4gIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczpcblxuLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOlxuICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy5cbiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLylcbiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuXG4gICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHNcbiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLlxuICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy5cbi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOlxuICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6XG4gICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nXG4gICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuXG4gICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6XG4tIENvcmUgU3Vic3lzdGVtczpcbiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksXG4gICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLlxuLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6XG4gICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLlxuLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6XG4gICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLlxuLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOlxuICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOlxuXG4tIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzpcbiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXNcbiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHRcbiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuXG4gIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyBcImZvY3VzZWRcIixcbiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLlxuXG4tIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzpcbiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzXG4gIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LlxuXG4tIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKTpcbiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFja1xuICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy5cbiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyXG4gIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5JZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOlxuLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuLSBDaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLlxuLSBTdHJpcCBhbnkgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiVGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjRcblxuRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMTk1OGJiYjNlNmQ4YmI1YjIzYTc2YjAyZTY3ZmI2YmVkMzVjMGRiM1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gU2VwIDcgMDc6Mjk6MjAgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmNcbmluZGV4IDc2OTVjYmIyY2U2MjYuLmM0Y2I1ZjIyODkzYzkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfaHcuY1xuQEAgLTIzMjQsNiArMjMyNCwxMSBAQCBpbnQgcHJlc3RlcmFfaHdfY291bnRlcnNfZ2V0KHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3LCB1MzIgaWR4LFxuIFx0aWYgKGVycilcbiBcdFx0Z290byBmcmVlX2J1ZmY7XG4gXG4rXHRpZiAoX19sZTMyX3RvX2NwdShyZXNwLVx1MDAzZW51bV9jb3VudGVycykgXHUwMDNlICpsZW4pIHtcbitcdFx0ZXJyID0gLUVJTlZBTDtcbitcdFx0Z290byBmcmVlX2J1ZmY7XG4rXHR9XG4rXG4gXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBfX2xlMzJfdG9fY3B1KHJlc3AtXHUwMDNlbnVtX2NvdW50ZXJzKTsgaSsrKSB7XG4gXHRcdHN0YXRzW2ldLnBhY2tldHMgKz0gX19sZTY0X3RvX2NwdShyZXNwLVx1MDAzZXN0YXRzW2ldLnBhY2tldHMpO1xuIFx0XHRzdGF0c1tpXS5ieXRlcyArPSBfX2xlNjRfdG9fY3B1KHJlc3AtXHUwMDNlc3RhdHNbaV0uYnl0ZXMpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMDc6Mjk6MjIuMzI4NTU5NloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQzNjg3OTkxMzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgTWFydmVsbCBQcmVzdGVyYSBEcml2ZXIgUGF0Y2gqKlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGludG8gdGhpcyBwYXRjaC4gTXkgaW5pdGlhbCBmb2N1cyBpcyBvbiB0aGUgZGlmZiwgc3BlY2lmaWNhbGx5IHRoZSBjaGFuZ2VzIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmNgLiBGaXJzdCwgSSBuZWVkIHRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2Ygd2hhdCB0aGUgYHByZXN0ZXJhYCBkcml2ZXIgYWN0dWFsbHkgKmlzKi4gVGhlIHF1ZXN0aW9uIG9uIG15IG1pbmQgcmlnaHQgbm93IGlzIHdoZXRoZXIgdGhpcyBNYXJ2ZWxsIFByZXN0ZXJhIHN3aXRjaCBkcml2ZXIgaXMgc29tZXRoaW5nIEkgY2FuIHJlbGlhYmx5IHJlYWNoIGFuZCBmdXp6IHdpdGhpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdvb2dsZSBDb21wdXRlIEVuZ2luZS4gVGhhdCdzIGtleSBmb3IgZWZmaWNpZW50IGFuYWx5c2lzLlxuXG5UaGVyZWZvcmUsIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBzZXR1cCByZXF1aXJlbWVudHMuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgS2NvbmZpZyBlbnRyaWVzLCBQQ0kgSURzLCBvciBwbGF0Zm9ybS1zcGVjaWZpYyBkZXRhaWxzIHdpdGhpbiB0aGUgZHJpdmVyIGNvZGUuIElmIGl0IG5lZWRzIHNwZWNpZmljIGhhcmR3YXJlLCB0aGF0J3MgYSBzaWduaWZpY2FudCBjb25zaWRlcmF0aW9uLiBJJ2xsIHByb2JhYmx5IHN0YXJ0IHdpdGggYSBgZ3JlcHBlcmAgcnVuIG9yIGp1c3QgYSB0YXJnZXRlZCBmaWxlIGluc3BlY3Rpb24gaW4gdGhlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL2AgZGlyZWN0b3J5LiBUaGF0IHNob3VsZCBnaXZlIG1lIHRoZSBjb250ZXh0IEkgbmVlZCB0byBwcm9jZWVkIGVmZmVjdGl2ZWx5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyOTcxLCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTIwLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMDc6Mjk6MjYuNjk3MzYzNTM5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNTAzODU4OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJQUkVTVEVSQVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMzUyOCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnOjY6Y29uZmlnIFBSRVNURVJBXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnLTctXFx0dHJpc3RhdGUgXFxcIk1hcnZlbGwgUHJlc3RlcmEgU3dpdGNoIEFTSUNzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL0tjb25maWctMTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnOjE4OmNvbmZpZyBQUkVTVEVSQV9QQ0lcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL0tjb25maWctMTktXFx0dHJpc3RhdGUgXFxcIlBDSSBpbnRlcmZhY2UgZHJpdmVyIGZvciBNYXJ2ZWxsIFByZXN0ZXJhIFN3aXRjaCBBU0lDcyBmYW1pbHlcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnOjIwOlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IEhBU19JT01FTSBcXHUwMDI2XFx1MDAyNiBQUkVTVEVSQVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvS2NvbmZpZzoyMTpcXHRkZWZhdWx0IFBSRVNURVJBXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnLTIyLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZToyOm9iai0kKENPTkZJR19QUkVTVEVSQSlcXHQrPSBwcmVzdGVyYS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZS0zLXByZXN0ZXJhLW9ianNcXHRcXHQ6PSBwcmVzdGVyYV9tYWluLm8gcHJlc3RlcmFfaHcubyBwcmVzdGVyYV9kc2EubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL01ha2VmaWxlLTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19QUkVTVEVSQV9QQ0kpXFx0Kz0gcHJlc3RlcmFfcGNpLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDo0OiNpZm5kZWYgX1BSRVNURVJBX0hfXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjU6I2RlZmluZSBfUFJFU1RFUkFfSF9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtNi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTQ6I2RlZmluZSBQUkVTVEVSQV9EUlZfTkFNRVxcdFxcXCJwcmVzdGVyYVxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjE2OiNkZWZpbmUgUFJFU1RFUkFfREVGQVVMVF9WSUQgICAgMVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaD00ND1zdHJ1Y3QgcHJlc3RlcmFfcG9ydF9zdGF0cyB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtNzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjc3OiNkZWZpbmUgUFJFU1RFUkFfQVBfUE9SVF9NQVggICAoMTApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTc4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oPTE4ND1lbnVtIHByZXN0ZXJhX2V2ZW50X3R5cGUge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxODU6XFx0UFJFU1RFUkFfRVZFTlRfVFlQRV9VTlNQRUMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE4Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTg3OlxcdFBSRVNURVJBX0VWRU5UX1RZUEVfUE9SVCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTg4OlxcdFBSRVNURVJBX0VWRU5UX1RZUEVfRkRCLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxODk6XFx0UFJFU1RFUkFfRVZFTlRfVFlQRV9SWFRYLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xOTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjE5MTpcXHRQUkVTVEVSQV9FVkVOVF9UWVBFX01BWFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xOTItfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaD0xOTQ9ZW51bSBwcmVzdGVyYV9yeHR4X2V2ZW50X2lkIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTk1OlxcdFBSRVNURVJBX1JYVFhfRVZFTlRfVU5TUEVDLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxOTY6XFx0UFJFU1RFUkFfUlhUWF9FVkVOVF9SQ1ZfUEtULFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xOTctfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaD0xOTk9ZW51bSBwcmVzdGVyYV9wb3J0X2V2ZW50X2lkIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjAwOlxcdFBSRVNURVJBX1BPUlRfRVZFTlRfVU5TUEVDLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyMDE6XFx0UFJFU1RFUkFfUE9SVF9FVkVOVF9NQUNfU1RBVEVfQ0hBTkdFRCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjAyLX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg9MjI2PWVudW0gcHJlc3RlcmFfZmRiX2VudHJ5X3R5cGUge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyMjc6XFx0UFJFU1RFUkFfRkRCX0VOVFJZX1RZUEVfUkVHX1BPUlQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjIyODpcXHRQUkVTVEVSQV9GREJfRU5UUllfVFlQRV9MQUcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjIyOTpcXHRQUkVTVEVSQV9GREJfRU5UUllfVFlQRV9NQVhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjMwLX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg9MjMyPWVudW0gcHJlc3RlcmFfZmRiX2V2ZW50X2lkIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjMzOlxcdFBSRVNURVJBX0ZEQl9FVkVOVF9VTlNQRUMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjIzNDpcXHRQUkVTVEVSQV9GREJfRVZFTlRfTEVBUk5FRCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjM1OlxcdFBSRVNURVJBX0ZEQl9FVkVOVF9BR0VELFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yMzYtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaD0yNTg9ZW51bSBwcmVzdGVyYV9pZl90eXBlIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjU5LVxcdC8qIHRoZSBpbnRlcmZhY2UgaXMgb2YgcG9ydCB0eXBlIChkZXYscG9ydCkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjYwOlxcdFBSRVNURVJBX0lGX1BPUlRfRSA9IDAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI2MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjYyLVxcdC8qIHRoZSBpbnRlcmZhY2UgaXMgb2YgbGFnIHR5cGUgKGxhZy1pZCkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjYzOlxcdFBSRVNURVJBX0lGX0xBR19FID0gMSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjY0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yNjUtXFx0LyogdGhlIGludGVyZmFjZSBpcyBvZiBWaWQgdHlwZSAodmxhbi1pZCkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjY2OlxcdFBSRVNURVJBX0lGX1ZJRF9FID0gMyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjY3LX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg9NDE0PXByZXN0ZXJhX2Zsb29kX2RvbWFpbl9wb3J0X2ZpbmQoc3RydWN0IHByZXN0ZXJhX2Zsb29kX2RvbWFpbiAqZmxvb2RfZG9tYWluLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTQxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6NDE3OiNlbmRpZiAvKiBfUFJFU1RFUkFfSF8gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTEtI2RlZmluZSBBQ0xfS0VZTUFTS19TSVpFXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTI6XFx0KHNpemVvZihfX2JlMzIpICogX19QUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX01BWClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYz03MT1zdHJ1Y3QgcHJlc3RlcmFfYWNsX3Z0Y2FtIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTcyLVxcdHN0cnVjdCBsaXN0X2hlYWQgbGlzdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjczOlxcdF9fYmUzMiBrZXltYXNrW19fUFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9NQVhdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNzQtXFx0cmVmY291bnRfdCByZWZjb3VudDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM9MTAyPWludCBwcmVzdGVyYV9hY2xfY2hhaW5fdG9fY2xpZW50KHUzMiBjaGFpbl9pbmRleCwgYm9vbCBpbmdyZXNzLCB1MzIgKmNsaWVudClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTA0LVxcdHN0YXRpYyBjb25zdCB1MzIgaW5ncmVzc19jbGllbnRfbWFwW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxMDU6XFx0XFx0UFJFU1RFUkFfSFdfQ09VTlRFUl9DTElFTlRfSU5HUkVTU19MT09LVVBfMCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjEwNjpcXHRcXHRQUkVTVEVSQV9IV19DT1VOVEVSX0NMSUVOVF9JTkdSRVNTX0xPT0tVUF8xLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTA3OlxcdFxcdFBSRVNURVJBX0hXX0NPVU5URVJfQ0xJRU5UX0lOR1JFU1NfTE9PS1VQXzJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEwOC1cXHR9O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xMTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxMTU6XFx0XFx0KmNsaWVudCA9IFBSRVNURVJBX0hXX0NPVU5URVJfQ0xJRU5UX0VHUkVTU19MT09LVVA7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xMTYtXFx0XFx0cmV0dXJuIDA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jPTEyNj1zdGF0aWMgYm9vbCBwcmVzdGVyYV9hY2xfY2hhaW5faXNfc3VwcG9ydGVkKHUzMiBjaGFpbl9pbmRleCwgYm9vbCBpbmdyZXNzKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xMzEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxMzI6XFx0cmV0dXJuIChjaGFpbl9pbmRleCBcXHUwMDI2IH5QUkVTVEVSQV9BQ0xfQ0hBSU5fTUFTSykgPT0gMDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEzMy19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jPTEzNj1wcmVzdGVyYV9hY2xfcnVsZXNldF9jcmVhdGUoc3RydWN0IHByZXN0ZXJhX2FjbCAqYWNsLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xNjUtXFx0LyogbWFrZSBwY2wtaWQgYmFzZWQgb24gdWlkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxNjY6XFx0cnVsZXNldC1cXHUwMDNlcGNsX2lkID0gUFJFU1RFUkFfQUNMX1BDTF9JRF9NQUtFKCh1OCl1aWQsIGNoYWluX2luZGV4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTE2Ny1cXHRydWxlc2V0LVxcdTAwM2VpbmRleCA9IHVpZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM9MTk4PWludCBwcmVzdGVyYV9hY2xfcnVsZXNldF9vZmZsb2FkKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldCAqcnVsZXNldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjA1LVxcdGRpciA9IHJ1bGVzZXQtXFx1MDAzZWluZ3Jlc3MgP1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjA2OlxcdFxcdFBSRVNURVJBX0hXX1ZUQ0FNX0RJUl9JTkdSRVNTIDogUFJFU1RFUkFfSFdfVlRDQU1fRElSX0VHUkVTUztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTIwNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjIyLVxcdFxcdGlmYWNlLmluZGV4ID0gcnVsZXNldC1cXHUwMDNlaW5kZXg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyMjM6XFx0XFx0aWZhY2UudHlwZSA9IFBSRVNURVJBX0FDTF9JRkFDRV9UWVBFX0lOREVYO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjI0LVxcdFxcdGVyciA9IHByZXN0ZXJhX2h3X3Z0Y2FtX2lmYWNlX2JpbmQocnVsZXNldC1cXHUwMDNlYWNsLVxcdTAwM2VzdywgXFx1MDAyNmlmYWNlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYz0yNDA9c3RhdGljIHZvaWQgcHJlc3RlcmFfYWNsX3J1bGVzZXRfZGVzdHJveShzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQgKnJ1bGVzZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI0Mi1cXHRzdHJ1Y3QgcHJlc3RlcmFfYWNsICphY2wgPSBydWxlc2V0LVxcdTAwM2VhY2w7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyNDM6XFx0dTggdWlkID0gcnVsZXNldC1cXHUwMDNlcGNsX2lkIFxcdTAwMjYgUFJFU1RFUkFfQUNMX0tFWU1BU0tfUENMX0lEX1VTRVI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yNDQtXFx0aW50IGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjUxLVxcdFxcdFxcdHN0cnVjdCBwcmVzdGVyYV9hY2xfaWZhY2UgaWZhY2UgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyNTI6XFx0XFx0XFx0XFx0LnR5cGUgPSBQUkVTVEVSQV9BQ0xfSUZBQ0VfVFlQRV9JTkRFWCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI1My1cXHRcXHRcXHRcXHQuaW5kZXggPSBydWxlc2V0LVxcdTAwM2VpbmRleFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYz0zMjE9aW50IHByZXN0ZXJhX2FjbF9ydWxlc2V0X2JpbmQoc3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpydWxlc2V0LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMjQtXFx0c3RydWN0IHByZXN0ZXJhX2FjbF9pZmFjZSBpZmFjZSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjMyNTpcXHRcXHQudHlwZSA9IFBSRVNURVJBX0FDTF9JRkFDRV9UWVBFX1BPUlQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMjYtXFx0XFx0LnBvcnQgPSBwb3J0XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jPTMzMz1pbnQgcHJlc3RlcmFfYWNsX3J1bGVzZXRfdW5iaW5kKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldCAqcnVsZXNldCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzM2LVxcdHN0cnVjdCBwcmVzdGVyYV9hY2xfaWZhY2UgaWZhY2UgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozMzc6XFx0XFx0LnR5cGUgPSBQUkVTVEVSQV9BQ0xfSUZBQ0VfVFlQRV9QT1JULFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzM4LVxcdFxcdC5wb3J0ID0gcG9ydFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYz00MDA9cHJlc3RlcmFfYWNsX3J1bGVfa2V5bWFza19wY2xfaWRfc2V0KHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZSAqcnVsZSwgdTE2IHBjbF9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNDAyLVxcdHN0cnVjdCBwcmVzdGVyYV9hY2xfbWF0Y2ggKnJfbWF0Y2ggPSBcXHUwMDI2cnVsZS1cXHUwMDNlcmVfa2V5Lm1hdGNoO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NDAzOlxcdF9fYmUxNiBwY2xfaWRfbWFzayA9IGh0b25zKFBSRVNURVJBX0FDTF9LRVlNQVNLX1BDTF9JRCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy00MDQtXFx0X19iZTE2IHBjbF9pZF9rZXkgPSBodG9ucyhwY2xfaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYz01ODQ9c3RhdGljIGludCBfX3ByZXN0ZXJhX2FjbF9ydWxlX2VudHJ5Mmh3X2FkZChzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNTg2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjU4NzpcXHRzdHJ1Y3QgcHJlc3RlcmFfYWNsX2h3X2FjdGlvbl9pbmZvIGFjdF9od1tQUkVTVEVSQV9BQ0xfUlVMRV9BQ1RJT05fTUFYXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTU4OC1cXHRpbnQgYWN0X251bTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNTk0LVxcdGlmIChlLVxcdTAwM2VhY2NlcHQudmFsaWQpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjU5NTpcXHRcXHRhY3RfaHdbYWN0X251bV0uaWQgPSBQUkVTVEVSQV9BQ0xfUlVMRV9BQ1RJT05fQUNDRVBUO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNTk2LVxcdFxcdGFjdF9udW0rKztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNTk5LVxcdGlmIChlLVxcdTAwM2Vkcm9wLnZhbGlkKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo2MDA6XFx0XFx0YWN0X2h3W2FjdF9udW1dLmlkID0gUFJFU1RFUkFfQUNMX1JVTEVfQUNUSU9OX0RST1A7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy02MDEtXFx0XFx0YWN0X251bSsrO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy02MDQtXFx0aWYgKGUtXFx1MDAzZXRyYXAudmFsaWQpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjYwNTpcXHRcXHRhY3RfaHdbYWN0X251bV0uaWQgPSBQUkVTVEVSQV9BQ0xfUlVMRV9BQ1RJT05fVFJBUDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTYwNi1cXHRcXHRhY3RfbnVtKys7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTYwOS1cXHRpZiAoZS1cXHUwMDNlcG9saWNlLnZhbGlkKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo2MTA6XFx0XFx0YWN0X2h3W2FjdF9udW1dLmlkID0gUFJFU1RFUkFfQUNMX1JVTEVfQUNUSU9OX1BPTElDRTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTYxMS1cXHRcXHRhY3RfaHdbYWN0X251bV0ucG9saWNlID0gZS1cXHUwMDNlcG9saWNlLmk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTYxNS1cXHRpZiAoZS1cXHUwMDNlanVtcC52YWxpZCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NjE2OlxcdFxcdGFjdF9od1thY3RfbnVtXS5pZCA9IFBSRVNURVJBX0FDTF9SVUxFX0FDVElPTl9KVU1QO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNjE3LVxcdFxcdGFjdF9od1thY3RfbnVtXS5qdW1wID0gZS1cXHUwMDNlanVtcC5pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy02MjEtXFx0aWYgKGUtXFx1MDAzZWNvdW50ZXIuYmxvY2spIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjYyMjpcXHRcXHRhY3RfaHdbYWN0X251bV0uaWQgPSBQUkVTVEVSQV9BQ0xfUlVMRV9BQ1RJT05fQ09VTlQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy02MjMtXFx0XFx0YWN0X2h3W2FjdF9udW1dLmNvdW50LmlkID0gZS1cXHUwMDNlY291bnRlci5pZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM9NjU5PV9fcHJlc3RlcmFfYWNsX3J1bGVfZW50cnlfYWN0X2NvbnN0cnVjdChzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNjc1LVxcdGlmIChhcmctXFx1MDAzZXBvbGljZS52YWxpZCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6Njc2OlxcdFxcdHU4IHR5cGUgPSBhcmctXFx1MDAzZXBvbGljZS5pbmdyZXNzID8gUFJFU1RFUkFfUE9MSUNFUl9UWVBFX0lOR1JFU1MgOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6Njc3OlxcdFxcdFxcdFxcdFxcdFxcdFBSRVNURVJBX1BPTElDRVJfVFlQRV9FR1JFU1M7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy02NzgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jPTc0Nz1zdGF0aWMgaW50IF9fcHJlc3RlcmFfYWNsX3Z0Y2FtX2lkX3RyeV9maXQoc3RydWN0IHByZXN0ZXJhX2FjbCAqYWNsLCB1OCBsb29rdXAsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTc2My1cXHRcXHQvKiB0cnkgdG8gZml0IHdpdGggdnRjYW0ga2V5bWFzayAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NzY0OlxcdFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBfX1BSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfTUFYOyBpKyspIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTc2NS1cXHRcXHRcXHRfX2JlMzIgX19rZXltYXNrID0gKChfX2JlMzIgKilrZXltYXNrKVtpXTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNzc1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6Nzc2OlxcdFxcdGlmIChpID09IF9fUFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9NQVgpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy03NzctXFx0XFx0XFx0Lyoga2V5bWFzayBmaXRzIHZ0Y2FtIGtleW1hc2ssIHJldHVybiBpdCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaC0zLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NDojaWZuZGVmIF9QUkVTVEVSQV9BQ0xfSF9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjU6I2RlZmluZSBfUFJFU1RFUkFfQUNMX0hfXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaC02LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaC05LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6MTA6I2RlZmluZSBQUkVTVEVSQV9BQ0xfS0VZTUFTS19QQ0xfSURcXHRcXHQweDNGRlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6MTE6I2RlZmluZSBQUkVTVEVSQV9BQ0xfS0VZTUFTS19QQ0xfSURfVVNFUlxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjEyOlxcdChQUkVTVEVSQV9BQ0xfS0VZTUFTS19QQ0xfSUQgXFx1MDAyNiAweDAwRkYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDoxMzojZGVmaW5lIFBSRVNURVJBX0FDTF9LRVlNQVNLX1BDTF9JRF9DSEFJTlxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjE0OlxcdChQUkVTVEVSQV9BQ0xfS0VZTUFTS19QQ0xfSUQgXFx1MDAyNiAweEZGMDApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDoxNTojZGVmaW5lIFBSRVNURVJBX0FDTF9DSEFJTl9NQVNLXFx0XFx0XFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6MTY6XFx0KFBSRVNURVJBX0FDTF9LRVlNQVNLX1BDTF9JRCBcXHUwMDNlXFx1MDAzZSA4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmgtMTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDoxODojZGVmaW5lIFBSRVNURVJBX0FDTF9QQ0xfSURfTUFLRSh1aWQsIGNoYWluX2lkKVxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjE5OlxcdCgoKHVpZCkgXFx1MDAyNiBQUkVTVEVSQV9BQ0xfS0VZTUFTS19QQ0xfSURfVVNFUikgfFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjIwOlxcdCgoKGNoYWluX2lkKSBcXHUwMDNjXFx1MDAzYyA4KSBcXHUwMDI2IFBSRVNURVJBX0FDTF9LRVlNQVNLX1BDTF9JRF9DSEFJTikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaC0yMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oLTIyLSNkZWZpbmUgcnVsZV9tYXRjaF9zZXRfbihtYXRjaF9wLCB0eXBlLCB2YWxfcCwgc2l6ZSlcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDoyMzpcXHRtZW1jcHkoXFx1MDAyNihtYXRjaF9wKVtQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFXyMjdHlwZV0sXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmgtMjQtXFx0ICAgICAgIHZhbF9wLCBzaXplKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmgtMjUtI2RlZmluZSBydWxlX21hdGNoX3NldChtYXRjaF9wLCB0eXBlLCB2YWwpXFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6MjY6XFx0bWVtY3B5KFxcdTAwMjYobWF0Y2hfcClbUFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV8jI3R5cGVdLFxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oLTI3LVxcdCAgICAgICBcXHUwMDI2KHZhbCksIHNpemVvZih2YWwpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaD0yOT1lbnVtIHByZXN0ZXJhX2FjbF9tYXRjaF90eXBlIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjMwOlxcdFBSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfUENMX0lELFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6MzE6XFx0UFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9FVEhfVFlQRSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjMyOlxcdFBSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfRVRIX0RNQUNfMCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjMzOlxcdFBSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfRVRIX0RNQUNfMSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjM0OlxcdFBSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfRVRIX1NNQUNfMCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjM1OlxcdFBSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfRVRIX1NNQUNfMSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjM2OlxcdFBSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfSVBfUFJPVE8sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDozNzpcXHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX1NZU19QT1JULFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6Mzg6XFx0UFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9TWVNfREVWLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6Mzk6XFx0UFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9JUF9TUkMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo0MDpcXHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX0lQX0RTVCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjQxOlxcdFBSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfTDRfUE9SVF9TUkMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo0MjpcXHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX0w0X1BPUlRfRFNULFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NDM6XFx0UFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9MNF9QT1JUX1JBTkdFX1NSQyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjQ0OlxcdFBSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfTDRfUE9SVF9SQU5HRV9EU1QsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo0NTpcXHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX1ZMQU5fSUQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo0NjpcXHRQUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX1ZMQU5fVFBJRCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjQ3OlxcdFBSRVNURVJBX0FDTF9SVUxFX01BVENIX1RZUEVfSUNNUF9UWVBFLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NDg6XFx0UFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9JQ01QX0NPREUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaC00OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjUwOlxcdF9fUFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9NQVhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oLTUxLX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oPTUzPWVudW0gcHJlc3RlcmFfYWNsX3J1bGVfYWN0aW9uIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjU0OlxcdFBSRVNURVJBX0FDTF9SVUxFX0FDVElPTl9BQ0NFUFQgPSAwLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NTU6XFx0UFJFU1RFUkFfQUNMX1JVTEVfQUNUSU9OX0RST1AgPSAxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NTY6XFx0UFJFU1RFUkFfQUNMX1JVTEVfQUNUSU9OX1RSQVAgPSAyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NTc6XFx0UFJFU1RFUkFfQUNMX1JVTEVfQUNUSU9OX0pVTVAgPSA1LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NTg6XFx0UFJFU1RFUkFfQUNMX1JVTEVfQUNUSU9OX0NPVU5UID0gNyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjU5OlxcdFBSRVNURVJBX0FDTF9SVUxFX0FDVElPTl9QT0xJQ0UgPSA4LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmgtNjAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo2MTpcXHRQUkVTVEVSQV9BQ0xfUlVMRV9BQ1RJT05fTUFYXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaC02Mi19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaD02ND1lbnVtIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjY1OlxcdFBSRVNURVJBX0FDTF9JRkFDRV9UWVBFX1BPUlQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo2NjpcXHRQUkVTVEVSQV9BQ0xfSUZBQ0VfVFlQRV9JTkRFWFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmgtNjctfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg9Njk9c3RydWN0IHByZXN0ZXJhX2FjbF9tYXRjaCB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaDo3MDpcXHRfX2JlMzIga2V5W19fUFJFU1RFUkFfQUNMX1JVTEVfTUFUQ0hfVFlQRV9NQVhdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmg6NzE6XFx0X19iZTMyIG1hc2tbX19QUkVTVEVSQV9BQ0xfUlVMRV9NQVRDSF9UWVBFX01BWF07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaC03Mi19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuaD0yMDc9aW50IHByZXN0ZXJhX2FjbF9jaGFpbl90b19jbGllbnQodTMyIGNoYWluX2luZGV4LCBib29sIGluZ3Jlc3MsIHUzMiAqY2xpZW50KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oLTIwOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5oOjIwOTojZW5kaWYgLyogX1BSRVNURVJBX0FDTF9IXyAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9jb3VudGVyLmgtMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2NvdW50ZXIuaDo0OiNpZm5kZWYgX1BSRVNURVJBX0NPVU5URVJfSF9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2NvdW50ZXIuaDo1OiNkZWZpbmUgX1BSRVNURVJBX0NPVU5URVJfSF9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2NvdW50ZXIuaC02LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9jb3VudGVyLmg9MjY9aW50IHByZXN0ZXJhX2NvdW50ZXJfc3RhdHNfZ2V0KHN0cnVjdCBwcmVzdGVyYV9jb3VudGVyICpjb3VudGVyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9jb3VudGVyLmgtMjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9jb3VudGVyLmg6MzA6I2VuZGlmIC8qIF9QUkVTVEVSQV9DT1VOVEVSX0hfICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYz0xMj1lbnVtIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxMzpcXHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfQkFTRSA9IERFVkxJTktfVFJBUF9HRU5FUklDX0lEX01BWCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxNDpcXHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfQVJQX0JDLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE1OlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9JU19JUyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxNjpcXHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfT1NQRixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxNzpcXHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfSVBfQkNfTUFDLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE4OlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9ST1VURVJfTUMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTk6XFx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX1ZSUlAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjA6XFx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX0RIQ1AsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjE6XFx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX01BQ19UT19NRSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyMjpcXHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfSVBWNF9PUFRJT05TLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjIzOlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9JUF9ERUZBVUxUX1JPVVRFLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjI0OlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9JUF9UT19NRSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyNTpcXHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfSVBWNF9JQ01QX1JFRElSRUNULFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjI2OlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9BQ0xfQ09ERV8wLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjI3OlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9BQ0xfQ09ERV8xLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjI4OlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9BQ0xfQ09ERV8yLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjI5OlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9BQ0xfQ09ERV8zLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjMwOlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9BQ0xfQ09ERV80LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjMxOlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9BQ0xfQ09ERV81LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjMyOlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9BQ0xfQ09ERV82LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjMzOlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9BQ0xfQ09ERV83LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjM0OlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9CR1AsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MzU6XFx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX1NTSCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzozNjpcXHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfVEVMTkVULFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjM3OlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9JQ01QLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjM4OlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9NRVRfUkVELFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjM5OlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9JUF9TSVBfSVNfWkVSTyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo0MDpcXHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfSVBfVUNfRElQX0RBX01JU01BVENILFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjQxOlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9JTExFR0FMX0lQVjRfSERSLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjQyOlxcdERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF9JTExFR0FMX0lQX0FERFIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6NDM6XFx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX0lOVkFMSURfU0EsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6NDQ6XFx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX0xPQ0FMX1BPUlQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6NDU6XFx0REVWTElOS19QUkVTVEVSQV9UUkFQX0lEX1BPUlRfTk9fVkxBTixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo0NjpcXHRERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfUlhETUFfRFJPUCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy00Ny19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTQ4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjQ5OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfQVJQX0JDIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy01MC1cXHRcXFwiYXJwX2JjXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjUxOiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfSVNfSVMgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTUyLVxcdFxcXCJpc19pc1xcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo1MzojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX09TUEYgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTU0LVxcdFxcXCJvc3BmXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjU1OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfSVBfQkNfTUFDIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy01Ni1cXHRcXFwiaXBfYmNfbWFjXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjU3OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfUk9VVEVSX01DIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy01OC1cXHRcXFwicm91dGVyX21jXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjU5OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfVlJSUCBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtNjAtXFx0XFxcInZycnBcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6NjE6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9ESENQIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy02Mi1cXHRcXFwiZGhjcFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo2MzojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX01BQ19UT19NRSBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtNjQtXFx0XFxcIm1hY190b19tZVxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo2NTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0lQVjRfT1BUSU9OUyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtNjYtXFx0XFxcImlwdjRfb3B0aW9uc1xcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo2NzojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0lQX0RFRkFVTFRfUk9VVEUgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTY4LVxcdFxcXCJpcF9kZWZhdWx0X3JvdXRlXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjY5OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfSVBfVE9fTUUgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTcwLVxcdFxcXCJpcF90b19tZVxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo3MTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0lQVjRfSUNNUF9SRURJUkVDVCBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtNzItXFx0XFxcImlwdjRfaWNtcF9yZWRpcmVjdFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo3MzojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0FDTF9DT0RFXzAgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTc0LVxcdFxcXCJhY2xfY29kZV8wXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjc1OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfQUNMX0NPREVfMSBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtNzYtXFx0XFxcImFjbF9jb2RlXzFcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6Nzc6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9BQ0xfQ09ERV8yIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy03OC1cXHRcXFwiYWNsX2NvZGVfMlxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo3OTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0FDTF9DT0RFXzMgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTgwLVxcdFxcXCJhY2xfY29kZV8zXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjgxOiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfQUNMX0NPREVfNCBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtODItXFx0XFxcImFjbF9jb2RlXzRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6ODM6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9BQ0xfQ09ERV81IFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy04NC1cXHRcXFwiYWNsX2NvZGVfNVxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo4NTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0FDTF9DT0RFXzYgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTg2LVxcdFxcXCJhY2xfY29kZV82XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjg3OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfQUNMX0NPREVfNyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtODgtXFx0XFxcImFjbF9jb2RlXzdcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6ODk6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9CR1AgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTkwLVxcdFxcXCJiZ3BcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6OTE6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9TU0ggXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTkyLVxcdFxcXCJzc2hcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6OTM6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9URUxORVQgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTk0LVxcdFxcXCJ0ZWxuZXRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6OTU6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9JQ01QIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy05Ni1cXHRcXFwiaWNtcFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzo5NzojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX1JYRE1BX0RST1AgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTk4LVxcdFxcXCJyeGRtYV9kcm9wXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjk5OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfUE9SVF9OT19WTEFOIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xMDAtXFx0XFxcInBvcnRfbm9fdmxhblxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxMDE6I2RlZmluZSBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV9MT0NBTF9QT1JUIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xMDItXFx0XFxcImxvY2FsX3BvcnRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTAzOiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfSU5WQUxJRF9TQSBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTA0LVxcdFxcXCJpbnZhbGlkX3NhXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjEwNTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0lMTEVHQUxfSVBfQUREUiBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTA2LVxcdFxcXCJpbGxlZ2FsX2lwX2FkZHJcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTA3OiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfSUxMRUdBTF9JUFY0X0hEUiBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTA4LVxcdFxcXCJpbGxlZ2FsX2lwdjRfaGRyXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjEwOTojZGVmaW5lIERFVkxJTktfUFJFU1RFUkFfVFJBUF9OQU1FX0lQX1VDX0RJUF9EQV9NSVNNQVRDSCBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTEwLVxcdFxcXCJpcF91Y19kaXBfZGFfbWlzbWF0Y2hcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTExOiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfSVBfU0lQX0lTX1pFUk8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTExMi1cXHRcXFwiaXBfc2lwX2lzX3plcm9cXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTEzOiNkZWZpbmUgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfTUVUX1JFRCBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTE0LVxcdFxcXCJtZXRfcmVkXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM9MTI2PXN0cnVjdCBwcmVzdGVyYV90cmFwX2RhdGEge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTMxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjEzMjojZGVmaW5lIFBSRVNURVJBX1RSQVBfTUVUQURBVEEgREVWTElOS19UUkFQX01FVEFEQVRBX1RZUEVfRl9JTl9QT1JUXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTMzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjEzNDojZGVmaW5lIFBSRVNURVJBX1RSQVBfQ09OVFJPTChfaWQsIF9ncm91cF9pZCwgX2FjdGlvbilcXHRcXHRcXHQgICAgICBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTM1LVxcdERFVkxJTktfVFJBUF9HRU5FUklDKENPTlRST0wsIF9hY3Rpb24sIF9pZCxcXHRcXHRcXHQgICAgICBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTM2LVxcdFxcdFxcdCAgICAgREVWTElOS19UUkFQX0dST1VQX0dFTkVSSUNfSURfIyNfZ3JvdXBfaWQsXFx0ICAgICAgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjEzNzpcXHRcXHRcXHQgICAgIFBSRVNURVJBX1RSQVBfTUVUQURBVEEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTM4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjEzOTojZGVmaW5lIFBSRVNURVJBX1RSQVBfRFJJVkVSX0NPTlRST0woX2lkLCBfZ3JvdXBfaWQpXFx0XFx0XFx0ICAgICAgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE0MDpcXHRERVZMSU5LX1RSQVBfRFJJVkVSKENPTlRST0wsIFRSQVAsIERFVkxJTktfUFJFU1RFUkFfVFJBUF9JRF8jI19pZCwgICAgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE0MTpcXHRcXHRcXHQgICAgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfIyNfaWQsXFx0XFx0ICAgICAgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTE0Mi1cXHRcXHRcXHQgICAgREVWTElOS19UUkFQX0dST1VQX0dFTkVSSUNfSURfIyNfZ3JvdXBfaWQsXFx0ICAgICAgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE0MzpcXHRcXHRcXHQgICAgUFJFU1RFUkFfVFJBUF9NRVRBREFUQSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTQ1OiNkZWZpbmUgUFJFU1RFUkFfVFJBUF9FWENFUFRJT04oX2lkLCBfZ3JvdXBfaWQpXFx0XFx0XFx0XFx0ICAgICAgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTE0Ni1cXHRERVZMSU5LX1RSQVBfR0VORVJJQyhFWENFUFRJT04sIFRSQVAsIF9pZCxcXHRcXHRcXHQgICAgICBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTQ3LVxcdFxcdFxcdCAgICAgREVWTElOS19UUkFQX0dST1VQX0dFTkVSSUNfSURfIyNfZ3JvdXBfaWQsXFx0ICAgICAgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE0ODpcXHRcXHRcXHQgICAgIFBSRVNURVJBX1RSQVBfTUVUQURBVEEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTQ5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE1MDojZGVmaW5lIFBSRVNURVJBX1RSQVBfRFJJVkVSX0VYQ0VQVElPTihfaWQsIF9ncm91cF9pZClcXHRcXHRcXHQgICAgICBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTUxOlxcdERFVkxJTktfVFJBUF9EUklWRVIoRVhDRVBUSU9OLCBUUkFQLCBERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfIyNfaWQsICBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTUyOlxcdFxcdFxcdCAgICBERVZMSU5LX1BSRVNURVJBX1RSQVBfTkFNRV8jI19pZCxcXHRcXHQgICAgICBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTUzLVxcdFxcdFxcdCAgICBERVZMSU5LX1RSQVBfR1JPVVBfR0VORVJJQ19JRF8jI19ncm91cF9pZCxcXHQgICAgICBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTU0OlxcdFxcdFxcdCAgICBQUkVTVEVSQV9UUkFQX01FVEFEQVRBKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTE1NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxNTY6I2RlZmluZSBQUkVTVEVSQV9UUkFQX0RSSVZFUl9EUk9QKF9pZCwgX2dyb3VwX2lkKVxcdFxcdFxcdCAgICAgIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxNTc6XFx0REVWTElOS19UUkFQX0RSSVZFUihEUk9QLCBEUk9QLCBERVZMSU5LX1BSRVNURVJBX1RSQVBfSURfIyNfaWQsXFx0ICAgICAgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE1ODpcXHRcXHRcXHQgICAgREVWTElOS19QUkVTVEVSQV9UUkFQX05BTUVfIyNfaWQsXFx0XFx0ICAgICAgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTE1OS1cXHRcXHRcXHQgICAgREVWTElOS19UUkFQX0dST1VQX0dFTkVSSUNfSURfIyNfZ3JvdXBfaWQsXFx0ICAgICAgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE2MDpcXHRcXHRcXHQgICAgUFJFU1RFUkFfVFJBUF9NRVRBREFUQSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xNjEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYz0xODM9c3RhdGljIHN0cnVjdCBwcmVzdGVyYV90cmFwIHByZXN0ZXJhX3RyYXBfaXRlbXNfYXJyW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTg0LVxcdHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoxODU6XFx0XFx0LnRyYXAgPSBQUkVTVEVSQV9UUkFQX0RSSVZFUl9DT05UUk9MKEFSUF9CQywgTkVJR0hfRElTQ09WRVJZKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xODYtXFx0XFx0LmNwdV9jb2RlID0gNSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTE4OC1cXHR7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTg5OlxcdFxcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9EUklWRVJfQ09OVFJPTChJU19JUywgTE9DQUxfREVMSVZFUlkpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTE5MC1cXHRcXHQuY3B1X2NvZGUgPSAxMyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTE5Mi1cXHR7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MTkzOlxcdFxcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9EUklWRVJfQ09OVFJPTChPU1BGLCBPU1BGKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xOTQtXFx0XFx0LmNwdV9jb2RlID0gMTYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0xOTYtXFx0e1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjE5NzpcXHRcXHQudHJhcCA9IFBSRVNURVJBX1RSQVBfRFJJVkVSX0NPTlRST0woSVBfQkNfTUFDLCBMT0NBTF9ERUxJVkVSWSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMTk4LVxcdFxcdC5jcHVfY29kZSA9IDE5LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjAwLVxcdHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyMDE6XFx0XFx0LnRyYXAgPSBQUkVTVEVSQV9UUkFQX0NPTlRST0woU1RQLCBTVFAsIFRSQVApLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIwMi1cXHRcXHQuY3B1X2NvZGUgPSAyNixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIwNC1cXHR7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjA1OlxcdFxcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9DT05UUk9MKExBQ1AsIExBQ1AsIFRSQVApLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIwNi1cXHRcXHQuY3B1X2NvZGUgPSAyNyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIwOC1cXHR7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjA5OlxcdFxcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9DT05UUk9MKExMRFAsIExMRFAsIFRSQVApLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIxMC1cXHRcXHQuY3B1X2NvZGUgPSAyOCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIxMi1cXHR7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjEzOlxcdFxcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9EUklWRVJfQ09OVFJPTChST1VURVJfTUMsIExPQ0FMX0RFTElWRVJZKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yMTQtXFx0XFx0LmNwdV9jb2RlID0gMjksXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yMTYtXFx0e1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjIxNzpcXHRcXHQudHJhcCA9IFBSRVNURVJBX1RSQVBfRFJJVkVSX0NPTlRST0woVlJSUCwgVlJSUCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjE4LVxcdFxcdC5jcHVfY29kZSA9IDMwLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjIwLVxcdHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyMjE6XFx0XFx0LnRyYXAgPSBQUkVTVEVSQV9UUkFQX0RSSVZFUl9DT05UUk9MKERIQ1AsIERIQ1ApLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIyMi1cXHRcXHQuY3B1X2NvZGUgPSAzMyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIyNC1cXHR7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjI1OlxcdFxcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9FWENFUFRJT04oTVRVX0VSUk9SLCBMM19FWENFUFRJT05TKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yMjYtXFx0XFx0LmNwdV9jb2RlID0gNjMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yMjgtXFx0e1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjIyOTpcXHRcXHQudHJhcCA9IFBSRVNURVJBX1RSQVBfRFJJVkVSX0NPTlRST0woTUFDX1RPX01FLCBMT0NBTF9ERUxJVkVSWSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjMwLVxcdFxcdC5jcHVfY29kZSA9IDY1LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjMyLVxcdHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYzoyMzM6XFx0XFx0LnRyYXAgPSBQUkVTVEVSQV9UUkFQX0VYQ0VQVElPTihUVExfRVJST1IsIEwzX0VYQ0VQVElPTlMpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTIzNC1cXHRcXHQuY3B1X2NvZGUgPSAxMzMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yMzYtXFx0e1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjIzNzpcXHRcXHQudHJhcCA9IFBSRVNURVJBX1RSQVBfRFJJVkVSX0VYQ0VQVElPTihJUFY0X09QVElPTlMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjM4LVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICBMM19FWENFUFRJT05TKSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTI0MS1cXHR7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjQyOlxcdFxcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9EUklWRVJfQ09OVFJPTChJUF9ERUZBVUxUX1JPVVRFLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTI0My1cXHRcXHRcXHRcXHRcXHRcXHQgICAgIExPQ0FMX0RFTElWRVJZKSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTI0Ni1cXHR7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjQ3OlxcdFxcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9DT05UUk9MKExPQ0FMX1JPVVRFLCBMT0NBTF9ERUxJVkVSWSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yNDgtXFx0XFx0XFx0XFx0XFx0ICAgICAgVFJBUCksXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RldmxpbmsuYy0yNTEtXFx0e1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jOjI1MjpcXHRcXHQudHJhcCA9IFBSRVNURVJBX1RSQVBfRFJJVkVSX0VYQ0VQVElPTihJUFY0X0lDTVBfUkVESVJFQ1QsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjUzLVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICBMM19FWENFUFRJT05TKSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTI1Ni1cXHR7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjU3OlxcdFxcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9DT05UUk9MKEFSUF9SRVNQT05TRSwgTkVJR0hfRElTQ09WRVJZLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTI1OC1cXHRcXHRcXHRcXHRcXHQgICAgICBUUkFQKSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZGV2bGluay5jLTI2MS1cXHR7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmM6MjYyOlxcdFxcdC50cmFwID0gUFJFU1RFUkFfVFJBUF9EUklWRVJfQ09OVFJPTChBQ0xfQ09ERV8wLCBBQ0xfVFJBUCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kZXZsaW5rLmMtMjYzLVxcdFxcdC5jcHVfY29kZSA9IDE5MixcXG4tLVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QwNzoyOToyNi44MTI0MDg0MzdaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo0NzA4Mjc5MjQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IGltbWVkaWF0ZSB0aG91Z2h0IHByb2Nlc3MsIGZvY3VzaW5nIG9uIHRoZSBmaWxlcyBtZW50aW9uZWQsIGFzc3VtaW5nIEknbSBkZWVwIGluIGVtYmVkZGVkIHN5c3RlbXMgZGV2ZWxvcG1lbnQgYW5kIGZhbWlsaWFyIHdpdGggdGhpcyBjb2RlYmFzZTpcblxuKipSZXZpZXdpbmcgS2V5IFByZXN0ZXJhIEZpbGVzKipcblxuT2theSwgdGltZSB0byBkaWcgaW4uIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBkaXZlIGludG8gYHByZXN0ZXJhX3BjaS5jYCwgYHByZXN0ZXJhX21haW4uY2AsIGFuZCB0aGUgYEtjb25maWdgIGZpbGUuIEkgaW1tZWRpYXRlbHkgdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb24uIGBwcmVzdGVyYV9wY2kuY2AgaXMgdmVyeSBsaWtlbHkgdGhlIGludGVyZmFjZSBmb3IgdGhlIFBDSSBidXMgaW50ZXJhY3Rpb25zLCB3aGljaCBpcyBlc3NlbnRpYWwgdG8gdGhlIG92ZXJhbGwgb3BlcmF0aW9uIG9mIHRoZSBwcmVzdGVyYSBiYXNlZCBzd2l0Y2guICBgcHJlc3RlcmFfbWFpbi5jYCBwcm9iYWJseSBjb250YWlucyB0aGUgY29yZSBpbml0aWFsaXphdGlvbiwgY29udHJvbCBmbG93LCBhbmQgcG90ZW50aWFsbHkgdGhlIG1haW4gbG9vcCBvciBlbnRyeSBwb2ludCBmb3IgdGhlIFByZXN0ZXJhLXNwZWNpZmljIGZ1bmN0aW9uYWxpdHkuIEdpdmVuIG15IGV4cGVyaWVuY2UsIEkgZXhwZWN0IHRoYXQgbWFpbiBmaWxlIHRvIG1hbmFnZSB0aGUgY29yZSBvZiB0aGUgQVNJQyBkcml2ZXIuXG5cbkFuZCBvZiBjb3Vyc2UsIEkgbmVlZCB0byBjaGVjayBgS2NvbmZpZ2AuIFRoYXQncyB3aGVyZSBhbGwgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIFByZXN0ZXJhIGRyaXZlciB3aWxsIGxpdmUuIFVuZGVyc3RhbmRpbmcgdGhlIGF2YWlsYWJsZSBjb25maWd1cmF0aW9ucyBpcyBjcnVjaWFsLiBJJ2xsIG5lZWQgdG8gc2VlIHdoYXQgZmVhdHVyZXMgYXJlIGVuYWJsZWQsIHdoYXQgaGFyZHdhcmUgdmFyaWFudHMgYXJlIHN1cHBvcnRlZCwgYW5kIGFueSBidWlsZC10aW1lIG9yIGNvbXBpbGUtdGltZSBvcHRpb25zIHRoYXQgaW5mbHVlbmNlIHRoZSBkcml2ZXIncyBiZWhhdmlvci4gVGhlIGBLY29uZmlnYCB3aWxsIHByb3ZpZGUgdGhlIGtub2JzIHRoYXQgSSBuZWVkIHRvIHR3ZWFrIGZvciBhIGdpdmVuIGRlcGxveW1lbnQgb3IgdG8gdGVzdCBhIHBhcnRpY3VsYXIgYXJlYS5cblxuSeKAmW0gYW50aWNpcGF0aW5nIGRlcGVuZGVuY2llcyBhbmQgaW50ZXJhY3Rpb25zIGJldHdlZW4gdGhlc2UgZmlsZXMsIHNvIEknbGwgYmUgbG9va2luZyBmb3IgY3Jvc3MtcmVmZXJlbmNlcyBiZXR3ZWVuIHRoZW0gYXMgSSBnby5cblxuXG4iLCJJbnB1dFRva2VucyI6MTkzNTgsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QwNzoyOTozMS41MjA2OTI0NjJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDA0NjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDQwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHQjXFxuICAgMzpcXHQjIE1hcnZlbGwgUHJlc3RlcmEgZHJpdmVycyBjb25maWd1cmF0aW9uXFxuICAgNDpcXHQjXFxuICAgNTpcXHRcXG4gICA2OlxcdGNvbmZpZyBQUkVTVEVSQVxcbiAgIDc6XFx0XFx0dHJpc3RhdGUgXFxcIk1hcnZlbGwgUHJlc3RlcmEgU3dpdGNoIEFTSUNzIHN1cHBvcnRcXFwiXFxuICAgODpcXHRcXHRkZXBlbmRzIG9uIE5FVF9TV0lUQ0hERVYgXFx1MDAyNlxcdTAwMjYgVkxBTl84MDIxUVxcbiAgIDk6XFx0XFx0ZGVwZW5kcyBvbiBCUklER0UgfHwgQlJJREdFPW5cXG4gIDEwOlxcdFxcdHNlbGVjdCBORVRfREVWTElOS1xcbiAgMTE6XFx0XFx0c2VsZWN0IFBIWUxJTktcXG4gIDEyOlxcdFxcdGhlbHBcXG4gIDEzOlxcdFxcdCAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgTWFydmVsbCBQcmVzdGVyYSBTd2l0Y2ggQVNJQ3MgZmFtaWx5LlxcbiAgMTQ6XFx0XFxuICAxNTpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZVxcbiAgMTY6XFx0XFx0ICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgcHJlc3RlcmEuXFxuICAxNzpcXHRcXG4gIDE4OlxcdGNvbmZpZyBQUkVTVEVSQV9QQ0lcXG4gIDE5OlxcdFxcdHRyaXN0YXRlIFxcXCJQQ0kgaW50ZXJmYWNlIGRyaXZlciBmb3IgTWFydmVsbCBQcmVzdGVyYSBTd2l0Y2ggQVNJQ3MgZmFtaWx5XFxcIlxcbiAgMjA6XFx0XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgSEFTX0lPTUVNIFxcdTAwMjZcXHUwMDI2IFBSRVNURVJBXFxuICAyMTpcXHRcXHRkZWZhdWx0IFBSRVNURVJBXFxuICAyMjpcXHRcXHRoZWxwXFxuICAyMzpcXHRcXHQgIFRoaXMgaXMgaW1wbGVtZW50YXRpb24gb2YgUENJIGludGVyZmFjZSBzdXBwb3J0IGZvciBNYXJ2ZWxsIFByZXN0ZXJhXFxuICAyNDpcXHRcXHQgIFN3aXRjaCBBU0lDcyBmYW1pbHkuXFxuICAyNTpcXHRcXG4gIDI2OlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXFxuICAyNzpcXHRcXHQgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBwcmVzdGVyYV9wY2kuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDA3OjI5OjMxLjUyMDgzNjAyMloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjIxMjU3NzU0MzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3M6XG5cbioqRGl2aW5nIGludG8gdGhlIGBwcmVzdGVyYV9wY2kuY2AgQ29kZSoqXG5cbkFscmlnaHQsIEkgbmVlZCB0byBnZXQgYSBoYW5kbGUgb24gaG93IHRoaXMgYHByZXN0ZXJhX3BjaS5jYCBtb2R1bGUgaXMgd29ya2luZy4gTXkgaW1tZWRpYXRlIGZvY3VzIGlzIHR3b2ZvbGQ6IGZpcnN0LCBJIHdhbnQgdG8gY29uZmlybSB3aGF0IGFjdHVhbCBoYXJkd2FyZSBjb21wb25lbnRzIGFyZSBiZWluZyBkaXJlY3RseSBib3VuZCB0byB0aGlzIGRyaXZlci4gQXJlIHdlIHRhbGtpbmcgYWJvdXQgc3BlY2lmaWMgUENJIGRldmljZXMgdGhhdCBpdCdzIGRlc2lnbmVkIHRvIG1hbmFnZT8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhhdCByZWxhdGlvbnNoaXAuIFNlY29uZCwgYW5kIHRoaXMgaXMgY3J1Y2lhbCBmb3IgdGVzdGluZyBhbmQgZGV2ZWxvcG1lbnQsIEkgbmVlZCB0byBzZWUgaWYgdGhlcmUncyBhbnkgc3VwcG9ydCBmb3IgbW9jayBkZXZpY2VzIG9yIHZpcnR1YWwgZGV2aWNlIGltcGxlbWVudGF0aW9ucyB3aXRoaW4gdGhpcyBmaWxlLiBEb2VzIGl0IGluY2x1ZGUgYW55IGFic3RyYWN0aW9ucyB0aGF0IHdvdWxkIGFsbG93IG1lIHRvIHNpbXVsYXRlIHRoZSBoYXJkd2FyZSBlbnZpcm9ubWVudCBmb3IgdGVzdGluZyBwdXJwb3Nlcywgb3IgYXJlIHdlIHRpZ2h0bHkgY291cGxlZCB3aXRoIHRoZSBwaHlzaWNhbCBoYXJkd2FyZT8gVGhlIGFuc3dlcnMgaGVyZSB3aWxsIGd1aWRlIG15IG5leHQgc3RlcHMgaW4gdW5kZXJzdGFuZGluZyB0aGUgZHJpdmVyJ3MgZmxleGliaWxpdHkgYW5kIHBvdGVudGlhbCBmb3IgaW5kZXBlbmRlbnQgYW5hbHlzaXMuIExldCdzIHNlZSB3aGF0IHRoZSBjb2RlIHJldmVhbHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwMDgxLCJPdXRwdXRUb2tlbnMiOjQ3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzEsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QwNzoyOTozMy42NDY2MTcxNzNaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjYyNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9wY2kuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAxMDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlIE9SIEdQTC0yLjBcXG4gICAyOlxcdC8qIENvcHlyaWdodCAoYykgMjAxOS0yMDIwIE1hcnZlbGwgSW50ZXJuYXRpb25hbCBMdGQuIEFsbCByaWdodHMgcmVzZXJ2ZWQgKi9cXG4gICAzOlxcdFxcbiAgIDQ6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2JpdGZpZWxkLmhcXHUwMDNlXFxuICAgNTpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvY2lyY19idWYuaFxcdTAwM2VcXG4gICA2OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9kZXZpY2UuaFxcdTAwM2VcXG4gICA3OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9maXJtd2FyZS5oXFx1MDAzZVxcbiAgIDg6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2lvcG9sbC5oXFx1MDAzZVxcbiAgIDk6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2tlcm5lbC5oXFx1MDAzZVxcbiAgMTA6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L21vZHVsZS5oXFx1MDAzZVxcbiAgMTE6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BjaS5oXFx1MDAzZVxcbiAgMTI6XFx0XFxuICAxMzpcXHQjaW5jbHVkZSBcXFwicHJlc3RlcmEuaFxcXCJcXG4gIDE0OlxcdFxcbiAgMTU6XFx0I2RlZmluZSBQUkVTVEVSQV9NU0dfTUFYX1NJWkUgMTUwMFxcbiAgMTY6XFx0XFxuICAxNzpcXHQjZGVmaW5lIFBSRVNURVJBX1NVUFBfRldfTUFKX1ZFUlxcdDRcXG4gIDE4OlxcdCNkZWZpbmUgUFJFU1RFUkFfU1VQUF9GV19NSU5fVkVSXFx0MVxcbiAgMTk6XFx0XFxuICAyMDpcXHQjZGVmaW5lIFBSRVNURVJBX1BSRVZfRldfTUFKX1ZFUlxcdDRcXG4gIDIxOlxcdCNkZWZpbmUgUFJFU1RFUkFfUFJFVl9GV19NSU5fVkVSXFx0MFxcbiAgMjI6XFx0XFxuICAyMzpcXHQjZGVmaW5lIFBSRVNURVJBX0ZXX1BBVEhfRk1UXFx0XFxcIm1ydmwvcHJlc3RlcmEvbXZzd19wcmVzdGVyYV9mdy12JXUuJXUuaW1nXFxcIlxcbiAgMjQ6XFx0I2RlZmluZSBQUkVTVEVSQV9GV19BUk02NF9QQVRIX0ZNVCBcXFwibXJ2bC9wcmVzdGVyYS9tdnN3X3ByZXN0ZXJhX2Z3X2FybTY0LXYldS4ldS5pbWdcXFwiXFxuICAyNTpcXHRcXG4gIDI2OlxcdCNkZWZpbmUgUFJFU1RFUkFfRldfSERSX01BR0lDXFx0XFx0MHgzNTFEOUQwNlxcbiAgMjc6XFx0I2RlZmluZSBQUkVTVEVSQV9GV19ETF9USU1FT1VUX01TXFx0NTAwMDBcXG4gIDI4OlxcdCNkZWZpbmUgUFJFU1RFUkFfRldfQkxLX1NaXFx0XFx0MTAyNFxcbiAgMjk6XFx0XFxuICAzMDpcXHQjZGVmaW5lIFBSRVNURVJBX0ZXX1ZFUl9NQUpfTVVMIDEwMDAwMDBcXG4gIDMxOlxcdCNkZWZpbmUgUFJFU1RFUkFfRldfVkVSX01JTl9NVUwgMTAwMFxcbiAgMzI6XFx0XFxuICAzMzpcXHQjZGVmaW5lIFBSRVNURVJBX0ZXX1ZFUl9NQUoodilcXHQoKHYpIC8gUFJFU1RFUkFfRldfVkVSX01BSl9NVUwpXFxuICAzNDpcXHRcXG4gIDM1OlxcdCNkZWZpbmUgUFJFU1RFUkFfRldfVkVSX01JTih2KSBcXFxcXFxuICAzNjpcXHRcXHQoKCh2KSAtIChQUkVTVEVSQV9GV19WRVJfTUFKKHYpICogUFJFU1RFUkFfRldfVkVSX01BSl9NVUwpKSAvIFxcXFxcXG4gIDM3OlxcdFxcdFxcdFxcdFBSRVNURVJBX0ZXX1ZFUl9NSU5fTVVMKVxcbiAgMzg6XFx0XFxuICAzOTpcXHQjZGVmaW5lIFBSRVNURVJBX0ZXX1ZFUl9QQVRDSCh2KSBcXFxcXFxuICA0MDpcXHRcXHQoKHYpIC0gKFBSRVNURVJBX0ZXX1ZFUl9NQUoodikgKiBQUkVTVEVSQV9GV19WRVJfTUFKX01VTCkgLSBcXFxcXFxuICA0MTpcXHRcXHRcXHRcXHQoUFJFU1RFUkFfRldfVkVSX01JTih2KSAqIFBSRVNURVJBX0ZXX1ZFUl9NSU5fTVVMKSlcXG4gIDQyOlxcdFxcbiAgNDM6XFx0ZW51bSBwcmVzdGVyYV9wY2lfYmFyX3Qge1xcbiAgNDQ6XFx0XFx0UFJFU1RFUkFfUENJX0JBUl9GVyA9IDIsXFxuICA0NTpcXHRcXHRQUkVTVEVSQV9QQ0lfQkFSX1BQID0gNCxcXG4gIDQ2OlxcdH07XFxuICA0NzpcXHRcXG4gIDQ4OlxcdHN0cnVjdCBwcmVzdGVyYV9md19oZWFkZXIge1xcbiAgNDk6XFx0XFx0X19iZTMyIG1hZ2ljX251bWJlcjtcXG4gIDUwOlxcdFxcdF9fYmUzMiB2ZXJzaW9uX3ZhbHVlO1xcbiAgNTE6XFx0XFx0dTggcmVzZXJ2ZWRbOF07XFxuICA1MjpcXHR9O1xcbiAgNTM6XFx0XFxuICA1NDpcXHRzdHJ1Y3QgcHJlc3RlcmFfbGRyX3JlZ3Mge1xcbiAgNTU6XFx0XFx0dTMyIGxkcl9yZWFkeTtcXG4gIDU2OlxcdFxcdHUzMiBwYWQxO1xcbiAgNTc6XFx0XFxuICA1ODpcXHRcXHR1MzIgbGRyX2ltZ19zaXplO1xcbiAgNTk6XFx0XFx0dTMyIGxkcl9jdGxfZmxhZ3M7XFxuICA2MDpcXHRcXG4gIDYxOlxcdFxcdHUzMiBsZHJfYnVmX29mZnM7XFxuICA2MjpcXHRcXHR1MzIgbGRyX2J1Zl9zaXplO1xcbiAgNjM6XFx0XFxuICA2NDpcXHRcXHR1MzIgbGRyX2J1Zl9yZDtcXG4gIDY1OlxcdFxcdHUzMiBwYWQyO1xcbiAgNjY6XFx0XFx0dTMyIGxkcl9idWZfd3I7XFxuICA2NzpcXHRcXG4gIDY4OlxcdFxcdHUzMiBsZHJfc3RhdHVzO1xcbiAgNjk6XFx0fTtcXG4gIDcwOlxcdFxcbiAgNzE6XFx0I2RlZmluZSBQUkVTVEVSQV9MRFJfUkVHX09GRlNFVChmKVxcdG9mZnNldG9mKHN0cnVjdCBwcmVzdGVyYV9sZHJfcmVncywgZilcXG4gIDcyOlxcdFxcbiAgNzM6XFx0I2RlZmluZSBQUkVTVEVSQV9MRFJfUkVBRFlfTUFHSUNcXHQweGYwMGRmZWVkXFxuICA3NDpcXHRcXG4gIDc1OlxcdCNkZWZpbmUgUFJFU1RFUkFfTERSX1NUQVRVU19JTUdfRExcXHRCSVQoMClcXG4gIDc2OlxcdCNkZWZpbmUgUFJFU1RFUkFfTERSX1NUQVRVU19TVEFSVF9GV1xcdEJJVCgxKVxcbiAgNzc6XFx0I2RlZmluZSBQUkVTVEVSQV9MRFJfU1RBVFVTX0lOVkFMSURfSU1HXFx0QklUKDIpXFxuICA3ODpcXHQjZGVmaW5lIFBSRVNURVJBX0xEUl9TVEFUVVNfTk9NRU1cXHRCSVQoMylcXG4gIDc5OlxcdFxcbiAgODA6XFx0I2RlZmluZSBQUkVTVEVSQV9MRFJfUkVHX0JBU0UoZncpXFx0KChmdyktXFx1MDAzZWxkcl9yZWdzKVxcbiAgODE6XFx0I2RlZmluZSBQUkVTVEVSQV9MRFJfUkVHX0FERFIoZncsIHJlZylcXHQoUFJFU1RFUkFfTERSX1JFR19CQVNFKGZ3KSArIChyZWcpKVxcbiAgODI6XFx0XFxuICA4MzpcXHQvKiBmdyBsb2FkZXIgcmVnaXN0ZXJzICovXFxuICA4NDpcXHQjZGVmaW5lIFBSRVNURVJBX0xEUl9SRUFEWV9SRUdcXHRcXHRQUkVTVEVSQV9MRFJfUkVHX09GRlNFVChsZHJfcmVhZHkpXFxuICA4NTpcXHQjZGVmaW5lIFBSRVNURVJBX0xEUl9JTUdfU0laRV9SRUdcXHRQUkVTVEVSQV9MRFJfUkVHX09GRlNFVChsZHJfaW1nX3NpemUpXFxuICA4NjpcXHQjZGVmaW5lIFBSRVNURVJBX0xEUl9DVExfUkVHXFx0XFx0UFJFU1RFUkFfTERSX1JFR19PRkZTRVQobGRyX2N0bF9mbGFncylcXG4gIDg3OlxcdCNkZWZpbmUgUFJFU1RFUkFfTERSX0JVRl9TSVpFX1JFR1xcdFBSRVNURVJBX0xEUl9SRUdfT0ZGU0VUKGxkcl9idWZfc2l6ZSlcXG4gIDg4OlxcdCNkZWZpbmUgUFJFU1RFUkFfTERSX0JVRl9PRkZTX1JFR1xcdFBSRVNURVJBX0xEUl9SRUdfT0ZGU0VUKGxkcl9idWZfb2ZmcylcXG4gIDg5OlxcdCNkZWZpbmUgUFJFU1RFUkFfTERSX0JVRl9SRF9SRUdcXHRcXHRQUkVTVEVSQV9MRFJfUkVHX09GRlNFVChsZHJfYnVmX3JkKVxcbiAgOTA6XFx0I2RlZmluZSBQUkVTVEVSQV9MRFJfQlVGX1dSX1JFR1xcdFxcdFBSRVNURVJBX0xEUl9SRUdfT0ZGU0VUKGxkcl9idWZfd3IpXFxuICA5MTpcXHQjZGVmaW5lIFBSRVNURVJBX0xEUl9TVEFUVVNfUkVHXFx0XFx0UFJFU1RFUkFfTERSX1JFR19PRkZTRVQobGRyX3N0YXR1cylcXG4gIDkyOlxcdFxcbiAgOTM6XFx0I2RlZmluZSBQUkVTVEVSQV9MRFJfQ1RMX0RMX1NUQVJUXFx0QklUKDApXFxuICA5NDpcXHRcXG4gIDk1OlxcdCNkZWZpbmUgUFJFU1RFUkFfRVZUX1FOVU1fTUFYXFx0NFxcbiAgOTY6XFx0XFxuICA5NzpcXHRzdHJ1Y3QgcHJlc3RlcmFfZndfZXZ0cV9yZWdzIHtcXG4gIDk4OlxcdFxcdHUzMiByZF9pZHg7XFxuICA5OTpcXHRcXHR1MzIgcGFkMTtcXG4gMTAwOlxcdFxcdHUzMiB3cl9pZHg7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDA3OjI5OjMzLjY0Njc4NTk3M1oiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjI1MDkzMzAxOTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6XG5cbioqRGl2aW5nIERlZXBlciBpbnRvIGBwcmVzdGVyYV9wY2kuY2AqKlxuXG5Pa2F5LCB0aW1lIHRvIHN5c3RlbWF0aWNhbGx5IGdvIHRocm91Z2ggdGhlIHJlbWFpbmluZyBwYXJ0cyBvZiBgcHJlc3RlcmFfcGNpLmNgLiBJJ3ZlIGFscmVhZHkgZ290IGEgZ29vZCBncmFzcCBvbiB0aGUgYXJjaGl0ZWN0dXJlLCBidXQgbm93IEkgbmVlZCB0byBzb2xpZGlmeSBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBkcml2ZXIncyBzcGVjaWZpY3MuIFNwZWNpZmljYWxseSwgSSdtIGZvY3VzaW5nIG9uIHR3byBrZXkgYXJlYXM6IHRoZSBQQ0kgZHJpdmVyIGRldmljZSBJRHMgYW5kIHRoZSBgcHJvYmVgIGZ1bmN0aW9uLiBUaGUgZGV2aWNlIElEcyB3aWxsIGRlZmluZSB3aGljaCBQQ0kgZGV2aWNlcyB0aGlzIGRyaXZlciBpcyBkZXNpZ25lZCB0byBoYW5kbGUsIHdoaWNoIGlzIGNyaXRpY2FsLiBJIG5lZWQgdG8gc2VlIHRoZSByYW5nZSBhbmQgc2NvcGUgb2YgZGV2aWNlcyBpdCBjb3ZlcnMsIGFuZCBpZiBhbnl0aGluZyBzZWVtcyB1bnVzdWFsIG9yIGNvdWxkIGJlIGEgcG90ZW50aWFsIHBvaW50IG9mIGNvbmZsaWN0LiBUaGVuLCB0aGUgYHByb2JlYCBmdW5jdGlvbiBpdHNlbGYuIFRoaXMgaXMgd2hlcmUgdGhlIHJ1YmJlciBtZWV0cyB0aGUgcm9hZC4gSXQncyB0aGUgY29yZSBvZiB0aGUgZGV2aWNlIGluaXRpYWxpemF0aW9uIGFuZCBjb25uZWN0aW9uIHRvIHRoZSBkcml2ZXIuIEkgbmVlZCB0byB0cmFjZSBpdHMgbG9naWMgdmVyeSBjYXJlZnVsbHksIHBheWluZyBjbG9zZSBhdHRlbnRpb24gdG8gcmVzb3VyY2UgYWxsb2NhdGlvbiwgZGV2aWNlIGNvbmZpZ3VyYXRpb24sIGludGVycnVwdCBzZXR1cCwgYW5kIGhvdyBpdCBoYW5kbGVzIHBvdGVudGlhbCBlcnJvcnMuIEknbGwgYmUgbG9va2luZyBmb3IgYW55IHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbnMsIHJlc291cmNlIGxlYWtzLCBvciBpbmVmZmljaWVudCBtZXRob2RzLiBJJ2xsIG5lZWQgdG8gc2NydXRpbml6ZSBob3cgaXQgaGFuZGxlcyBkaWZmZXJlbnQgaGFyZHdhcmUgcmV2aXNpb25zIG9yIHBvdGVudGlhbCBjb3JuZXIgY2FzZXMuIFRoaXMgbGV2ZWwgb2YgZGV0YWlsIGlzIGtleSBmb3IgYW50aWNpcGF0aW5nIHBvdGVudGlhbCBpc3N1ZXMsIGFuZCwgb2YgY291cnNlLCBtYWtpbmcgc3VyZSBpdCBmb2xsb3dzIGJlc3QgcHJhY3RpY2VzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjE3NCwiT3V0cHV0VG9rZW5zIjo0OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI3LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMDc6Mjk6MzYuMTU2MTIwNjI4WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NTUwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3BjaS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDc1MCxcbiAgXCJMaW5lQ291bnRcIjogMTAwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiA3NTA6XFx0XFx0ZGV2X2luZm8oZnctXFx1MDAzZWRldi5kZXYsIFxcXCJMb2FkaW5nICVzIC4uLlxcXCIsIGZ3X3BhdGgpO1xcbiA3NTE6XFx0XFxuIDc1MjpcXHRcXHRmdy1cXHUwMDNlcmV2X3N1cHAubWFqID0gdmVyX21hajtcXG4gNzUzOlxcdFxcdGZ3LVxcdTAwM2VyZXZfc3VwcC5taW4gPSB2ZXJfbWluO1xcbiA3NTQ6XFx0XFx0ZnctXFx1MDAzZXJldl9zdXBwLnN1YiA9IDA7XFxuIDc1NTpcXHRcXG4gNzU2OlxcdFxcdHJldHVybiAwO1xcbiA3NTc6XFx0fVxcbiA3NTg6XFx0XFxuIDc1OTpcXHRzdGF0aWMgdm9pZCBwcmVzdGVyYV9md19wdXQoc3RydWN0IHByZXN0ZXJhX2Z3ICpmdylcXG4gNzYwOlxcdHtcXG4gNzYxOlxcdFxcdHJlbGVhc2VfZmlybXdhcmUoZnctXFx1MDAzZWJpbik7XFxuIDc2MjpcXHR9XFxuIDc2MzpcXHRcXG4gNzY0OlxcdHN0YXRpYyBpbnQgcHJlc3RlcmFfZndfbG9hZChzdHJ1Y3QgcHJlc3RlcmFfZncgKmZ3KVxcbiA3NjU6XFx0e1xcbiA3NjY6XFx0XFx0c2l6ZV90IGhsZW4gPSBzaXplb2Yoc3RydWN0IHByZXN0ZXJhX2Z3X2hlYWRlcik7XFxuIDc2NzpcXHRcXHRpbnQgZXJyO1xcbiA3Njg6XFx0XFxuIDc2OTpcXHRcXHRlcnIgPSBwcmVzdGVyYV9sZHJfd2FpdF9yZWczMihmdywgUFJFU1RFUkFfTERSX1JFQURZX1JFRyxcXG4gNzcwOlxcdFxcdFxcdFxcdFxcdCAgICAgIFBSRVNURVJBX0xEUl9SRUFEWV9NQUdJQyxcXG4gNzcxOlxcdFxcdFxcdFxcdFxcdCAgICAgIDUgKiBNU0VDX1BFUl9TRUMpO1xcbiA3NzI6XFx0XFx0aWYgKGVycikge1xcbiA3NzM6XFx0XFx0XFx0ZGV2X2Vycihmdy1cXHUwMDNlZGV2LmRldiwgXFxcIndhaXRpbmcgZm9yIEZXIGxvYWRlciBpcyB0aW1lZCBvdXRcXFwiKTtcXG4gNzc0OlxcdFxcdFxcdHJldHVybiBlcnI7XFxuIDc3NTpcXHRcXHR9XFxuIDc3NjpcXHRcXG4gNzc3OlxcdFxcdGZ3LVxcdTAwM2VsZHJfcmluZ19idWYgPSBmdy1cXHUwMDNlbGRyX3JlZ3MgK1xcbiA3Nzg6XFx0XFx0XFx0cHJlc3RlcmFfbGRyX3JlYWQoZncsIFBSRVNURVJBX0xEUl9CVUZfT0ZGU19SRUcpO1xcbiA3Nzk6XFx0XFxuIDc4MDpcXHRcXHRmdy1cXHUwMDNlbGRyX2J1Zl9sZW4gPVxcbiA3ODE6XFx0XFx0XFx0cHJlc3RlcmFfbGRyX3JlYWQoZncsIFBSRVNURVJBX0xEUl9CVUZfU0laRV9SRUcpO1xcbiA3ODI6XFx0XFxuIDc4MzpcXHRcXHRmdy1cXHUwMDNlbGRyX3dyX2lkeCA9IDA7XFxuIDc4NDpcXHRcXG4gNzg1OlxcdFxcdGVyciA9IHByZXN0ZXJhX2Z3X2dldChmdyk7XFxuIDc4NjpcXHRcXHRpZiAoZXJyKVxcbiA3ODc6XFx0XFx0XFx0cmV0dXJuIGVycjtcXG4gNzg4OlxcdFxcbiA3ODk6XFx0XFx0ZXJyID0gcHJlc3RlcmFfZndfaGRyX3BhcnNlKGZ3KTtcXG4gNzkwOlxcdFxcdGlmIChlcnIpIHtcXG4gNzkxOlxcdFxcdFxcdGRldl9lcnIoZnctXFx1MDAzZWRldi5kZXYsIFxcXCJGVyBpbWFnZSBoZWFkZXIgaXMgaW52YWxpZFxcXFxuXFxcIik7XFxuIDc5MjpcXHRcXHRcXHRnb3RvIG91dF9yZWxlYXNlO1xcbiA3OTM6XFx0XFx0fVxcbiA3OTQ6XFx0XFxuIDc5NTpcXHRcXHRwcmVzdGVyYV9sZHJfd3JpdGUoZncsIFBSRVNURVJBX0xEUl9JTUdfU0laRV9SRUcsIGZ3LVxcdTAwM2ViaW4tXFx1MDAzZXNpemUgLSBobGVuKTtcXG4gNzk2OlxcdFxcdHByZXN0ZXJhX2xkcl93cml0ZShmdywgUFJFU1RFUkFfTERSX0NUTF9SRUcsIFBSRVNURVJBX0xEUl9DVExfRExfU1RBUlQpO1xcbiA3OTc6XFx0XFxuIDc5ODpcXHRcXHRlcnIgPSBwcmVzdGVyYV9sZHJfZndfc2VuZChmdywgZnctXFx1MDAzZWJpbi1cXHUwMDNlZGF0YSArIGhsZW4sXFxuIDc5OTpcXHRcXHRcXHRcXHRcXHQgICBmdy1cXHUwMDNlYmluLVxcdTAwM2VzaXplIC0gaGxlbik7XFxuIDgwMDpcXHRcXG4gODAxOlxcdG91dF9yZWxlYXNlOlxcbiA4MDI6XFx0XFx0cHJlc3RlcmFfZndfcHV0KGZ3KTtcXG4gODAzOlxcdFxcdHJldHVybiBlcnI7XFxuIDgwNDpcXHR9XFxuIDgwNTpcXHRcXG4gODA2OlxcdHN0YXRpYyBib29sIHByZXN0ZXJhX3BjaV9wcF91c2VfYmFyMihzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4gODA3OlxcdHtcXG4gODA4OlxcdFxcdHN3aXRjaCAocGRldi1cXHUwMDNlZGV2aWNlKSB7XFxuIDgwOTpcXHRcXHRjYXNlIFBSRVNURVJBX0RFVl9JRF85OERYNzMxMk06XFxuIDgxMDpcXHRcXHRjYXNlIFBSRVNURVJBX0RFVl9JRF85OERYMzUwMDpcXG4gODExOlxcdFxcdGNhc2UgUFJFU1RFUkFfREVWX0lEXzk4RFgzNTAxOlxcbiA4MTI6XFx0XFx0Y2FzZSBQUkVTVEVSQV9ERVZfSURfOThEWDM1MTA6XFxuIDgxMzpcXHRcXHRjYXNlIFBSRVNURVJBX0RFVl9JRF85OERYMzUyMDpcXG4gODE0OlxcdFxcdFxcdHJldHVybiB0cnVlO1xcbiA4MTU6XFx0XFxuIDgxNjpcXHRcXHRkZWZhdWx0OlxcbiA4MTc6XFx0XFx0XFx0cmV0dXJuIGZhbHNlO1xcbiA4MTg6XFx0XFx0fVxcbiA4MTk6XFx0fVxcbiA4MjA6XFx0XFxuIDgyMTpcXHRzdGF0aWMgdTMyIHByZXN0ZXJhX3BjaV9wcF9iYXIyX29mZnMoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuIDgyMjpcXHR7XFxuIDgyMzpcXHRcXHRpZiAocGNpX3Jlc291cmNlX2xlbihwZGV2LCAyKSA9PSAweDEwMDAwMDApXFxuIDgyNDpcXHRcXHRcXHRyZXR1cm4gMHgwO1xcbiA4MjU6XFx0XFx0ZWxzZVxcbiA4MjY6XFx0XFx0XFx0cmV0dXJuIChwY2lfcmVzb3VyY2VfbGVuKHBkZXYsIDIpIC8gMik7XFxuIDgyNzpcXHR9XFxuIDgyODpcXHRcXG4gODI5OlxcdHN0YXRpYyB1MzIgcHJlc3RlcmFfcGNpX2Z3X2JhcjJfb2ZmcyhzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4gODMwOlxcdHtcXG4gODMxOlxcdFxcdGlmIChwY2lfcmVzb3VyY2VfbGVuKHBkZXYsIDIpID09IDB4MTAwMDAwMClcXG4gODMyOlxcdFxcdFxcdHJldHVybiAweDQwMDAwMDtcXG4gODMzOlxcdFxcdGVsc2VcXG4gODM0OlxcdFxcdFxcdHJldHVybiAweDA7XFxuIDgzNTpcXHR9XFxuIDgzNjpcXHRcXG4gODM3OlxcdHN0YXRpYyBpbnQgcHJlc3RlcmFfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbiA4Mzg6XFx0XFx0XFx0XFx0ICAgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbiA4Mzk6XFx0e1xcbiA4NDA6XFx0XFx0Y29uc3QgY2hhciAqZHJpdmVyX25hbWUgPSBkZXZfZHJpdmVyX3N0cmluZyhcXHUwMDI2cGRldi1cXHUwMDNlZGV2KTtcXG4gODQxOlxcdFxcdHU4IF9faW9tZW0gKm1lbV9hZGRyLCAqcHBfYWRkciA9IE5VTEw7XFxuIDg0MjpcXHRcXHRzdHJ1Y3QgcHJlc3RlcmFfZncgKmZ3O1xcbiA4NDM6XFx0XFx0aW50IGVycjtcXG4gODQ0OlxcdFxcbiA4NDU6XFx0XFx0ZXJyID0gcGNpbV9lbmFibGVfZGV2aWNlKHBkZXYpO1xcbiA4NDY6XFx0XFx0aWYgKGVycikge1xcbiA4NDc6XFx0XFx0XFx0ZGV2X2VycihcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBcXFwicGNpX2VuYWJsZV9kZXZpY2UgZmFpbGVkXFxcXG5cXFwiKTtcXG4gODQ4OlxcdFxcdFxcdGdvdG8gZXJyX3BjaV9lbmFibGVfZGV2aWNlO1xcbiA4NDk6XFx0XFx0fVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QwNzoyOTozNi4xNTYyODA5NzhaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjM2MDAwMzMxNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIHJldmlld2luZyBgcHJlc3RlcmFfcGNpLmNgOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBQQ0kgRGV2aWNlIFRhYmxlIGluIHByZXN0ZXJhX3BjaS5jKipcblxuQWxyaWdodCwgdGltZSB0byBkaWcgZGVlcGVyIGludG8gdGhpcyBgcHJlc3RlcmFfcGNpLmNgIGZpbGUuIEkgbmVlZCB0byBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIGhvdyB0aGUgUENJIGRldmljZXMgYXJlIGhhbmRsZWQuIFNwZWNpZmljYWxseSwgSSdtIGdvaW5nIHRvIGZvY3VzIG9uIHdoZXJlIHRoZSBQQ0kgZGV2aWNlIHRhYmxlIGlzIGRlZmluZWQgYW5kIHBvcHVsYXRlZC4gVW5kZXJzdGFuZGluZyB0aGlzIHRhYmxlIGlzIGFic29sdXRlbHkgY3J1Y2lhbCB0byBncmFzcGluZyBob3cgdGhlIGRyaXZlciBpbnRlcmFjdHMgd2l0aCB0aGUgaGFyZHdhcmUuIEkgd2FudCB0byBzZWUgaG93IHRoZSBzeXN0ZW0gaWRlbnRpZmllcyBhbmQgY29uZmlndXJlcyB0aGVzZSBQcmVzdGVyYS1zcGVjaWZpYyBkZXZpY2VzIG9uIHRoZSBQQ0kgYnVzLiBMZXQncyBzZWUgaG93IHRoZSByZXN0IG9mIHRoaXMgY29kZSBsYXlzIHRoaW5ncyBvdXQuIEhvcGVmdWxseSwgaXQncyB3ZWxsLWNvbW1lbnRlZCBhbmQgZWFzeSB0byBuYXZpZ2F0ZSFcblxuXG4iLCJJbnB1dFRva2VucyI6MjQwOTUsIk91dHB1dFRva2VucyI6NDgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDA3OjI5OjM4LjUxNjI4Njg3NVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjM4ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9wY2kuY1wiLFxuICBcIkZpcnN0TGluZVwiOiA5MTAsXG4gIFwiTGluZUNvdW50XCI6IDYwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiA5MTA6XFx0XFx0SU5JVF9XT1JLKFxcdTAwMjZmdy1cXHUwMDNlZXZ0X3dvcmssIHByZXN0ZXJhX2Z3X2V2dF93b3JrX2ZuKTtcXG4gOTExOlxcdFxcbiA5MTI6XFx0XFx0ZXJyID0gcGNpX2FsbG9jX2lycV92ZWN0b3JzKHBkZXYsIDEsIDEsIFBDSV9JUlFfTVNJKTtcXG4gOTEzOlxcdFxcdGlmIChlcnIgXFx1MDAzYyAwKSB7XFxuIDkxNDpcXHRcXHRcXHRkZXZfZXJyKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIFxcXCJNU0kgSVJRIGluaXQgZmFpbGVkXFxcXG5cXFwiKTtcXG4gOTE1OlxcdFxcdFxcdGdvdG8gZXJyX2lycV9hbGxvYztcXG4gOTE2OlxcdFxcdH1cXG4gOTE3OlxcdFxcbiA5MTg6XFx0XFx0ZXJyID0gcmVxdWVzdF9pcnEocGNpX2lycV92ZWN0b3IocGRldiwgMCksIHByZXN0ZXJhX3BjaV9pcnFfaGFuZGxlcixcXG4gOTE5OlxcdFxcdFxcdFxcdCAgMCwgZHJpdmVyX25hbWUsIGZ3KTtcXG4gOTIwOlxcdFxcdGlmIChlcnIpIHtcXG4gOTIxOlxcdFxcdFxcdGRldl9lcnIoXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgXFxcImZhaWwgdG8gcmVxdWVzdCBJUlFcXFxcblxcXCIpO1xcbiA5MjI6XFx0XFx0XFx0Z290byBlcnJfcmVxdWVzdF9pcnE7XFxuIDkyMzpcXHRcXHR9XFxuIDkyNDpcXHRcXG4gOTI1OlxcdFxcdGVyciA9IHByZXN0ZXJhX2RldmljZV9yZWdpc3RlcihcXHUwMDI2ZnctXFx1MDAzZWRldik7XFxuIDkyNjpcXHRcXHRpZiAoZXJyKVxcbiA5Mjc6XFx0XFx0XFx0Z290byBlcnJfcHJlc3RlcmFfZGV2X3JlZ2lzdGVyO1xcbiA5Mjg6XFx0XFxuIDkyOTpcXHRcXHRyZXR1cm4gMDtcXG4gOTMwOlxcdFxcbiA5MzE6XFx0ZXJyX3ByZXN0ZXJhX2Rldl9yZWdpc3RlcjpcXG4gOTMyOlxcdFxcdGZyZWVfaXJxKHBjaV9pcnFfdmVjdG9yKHBkZXYsIDApLCBmdyk7XFxuIDkzMzpcXHRlcnJfcmVxdWVzdF9pcnE6XFxuIDkzNDpcXHRcXHRwY2lfZnJlZV9pcnFfdmVjdG9ycyhwZGV2KTtcXG4gOTM1OlxcdGVycl9pcnFfYWxsb2M6XFxuIDkzNjpcXHRcXHRkZXN0cm95X3dvcmtxdWV1ZShmdy1cXHUwMDNld3EpO1xcbiA5Mzc6XFx0ZXJyX3dxX2FsbG9jOlxcbiA5Mzg6XFx0XFx0cHJlc3RlcmFfZndfdW5pbml0KGZ3KTtcXG4gOTM5OlxcdGVycl9wcmVzdGVyYV9md19pbml0OlxcbiA5NDA6XFx0ZXJyX3BjaV9kZXZfYWxsb2M6XFxuIDk0MTpcXHRlcnJfcHBfaW9yZW1hcDpcXG4gOTQyOlxcdGVycl9tZW1faW9yZW1hcDpcXG4gOTQzOlxcdGVycl9kbWFfbWFzazpcXG4gOTQ0OlxcdGVycl9wY2lfcmVxdWVzdF9yZWdpb25zOlxcbiA5NDU6XFx0ZXJyX3BjaV9lbmFibGVfZGV2aWNlOlxcbiA5NDY6XFx0XFx0cmV0dXJuIGVycjtcXG4gOTQ3OlxcdH1cXG4gOTQ4OlxcdFxcbiA5NDk6XFx0c3RhdGljIHZvaWQgcHJlc3RlcmFfcGNpX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4gOTUwOlxcdHtcXG4gOTUxOlxcdFxcdHN0cnVjdCBwcmVzdGVyYV9mdyAqZncgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7XFxuIDk1MjpcXHRcXG4gOTUzOlxcdFxcdHByZXN0ZXJhX2RldmljZV91bnJlZ2lzdGVyKFxcdTAwMjZmdy1cXHUwMDNlZGV2KTtcXG4gOTU0OlxcdFxcdGZyZWVfaXJxKHBjaV9pcnFfdmVjdG9yKHBkZXYsIDApLCBmdyk7XFxuIDk1NTpcXHRcXHRwY2lfZnJlZV9pcnFfdmVjdG9ycyhwZGV2KTtcXG4gOTU2OlxcdFxcdGRlc3Ryb3lfd29ya3F1ZXVlKGZ3LVxcdTAwM2V3cSk7XFxuIDk1NzpcXHRcXHRwcmVzdGVyYV9md191bmluaXQoZncpO1xcbiA5NTg6XFx0fVxcbiA5NTk6XFx0XFxuIDk2MDpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgcHJlc3RlcmFfcGNpX2RldmljZXNbXSA9IHtcXG4gOTYxOlxcdFxcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01BUlZFTEwsIFBSRVNURVJBX0RFVl9JRF9BQzNYXzk4RFhfNTUpIH0sXFxuIDk2MjpcXHRcXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NQVJWRUxMLCBQUkVTVEVSQV9ERVZfSURfQUMzWF85OERYXzY1KSB9LFxcbiA5NjM6XFx0XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUFSVkVMTCwgUFJFU1RFUkFfREVWX0lEX0FMRFJJTjIpIH0sXFxuIDk2NDpcXHRcXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NQVJWRUxMLCBQUkVTVEVSQV9ERVZfSURfOThEWDczMTJNKSB9LFxcbiA5NjU6XFx0XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUFSVkVMTCwgUFJFU1RFUkFfREVWX0lEXzk4RFgzNTAwKSB9LFxcbiA5NjY6XFx0XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUFSVkVMTCwgUFJFU1RFUkFfREVWX0lEXzk4RFgzNTAxKSB9LFxcbiA5Njc6XFx0XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUFSVkVMTCwgUFJFU1RFUkFfREVWX0lEXzk4RFgzNTEwKSB9LFxcbiA5Njg6XFx0XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUFSVkVMTCwgUFJFU1RFUkFfREVWX0lEXzk4RFgzNTIwKSB9LFxcbiA5Njk6XFx0XFx0eyB9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDA3OjI5OjM4LjUxNjQ1MzAxNVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo2MTA5MDAxNDI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFwiV29ydGhGdXp6aW5nXCIgQ3JpdGVyaWEqKlxuXG5Pa2F5LCBsZXQncyBzZWUsIHRoZSBpbnN0cnVjdGlvbnMgaW4gU2VjdGlvbiAyIHJlZ2FyZGluZyB3aGVuICpub3QqIHRvIGZ1enogYXJlIGNsZWFyLiBXZSdyZSBsb29raW5nIGF0IFwiTkVHQVRJVkUgQ1JJVEVSSUEsXCIgc3BlY2lmaWNhbGx5IHdoZW4gd2Ugc2hvdWxkIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC4gVGhlIHJlbGV2YW50IGNvbmRpdGlvbiBoZXJlIGlzIFwiU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlLlwiIEl0IHNwZWNpZmllcyB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVycyBmb3IgdGhpbmdzIGxpa2UgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBhbmQgR1BVcywgdGhhdCByZXF1aXJlIHNwZWNpYWxpemVkIHBoeXNpY2FsIGhhcmR3YXJlIChBU0lDL1BDSWUgY2FyZHMpIHRoYXQgKmFyZW4ndCogZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cblxuTm93LCBJIGtub3cgdGhlIE1hcnZlbGwgUHJlc3RlcmEgc3dpdGNoIEFTSUNzIGZhbWlseSwgbGlrZSB0aGUgQWxkcmluMiBhbmQgOThEWCogc2VyaWVzLCBhbmQgQUMzWCwgZmFsbHMgc3F1YXJlbHkgaW50byB0aGF0IGNhdGVnb3J5LiBJdOKAmXMgYSB2ZW5kb3Itc3BlY2lmaWMgc3dpdGNoIEFTSUMgZHJpdmVyLCBtZWFuaW5nIGl0IGFic29sdXRlbHkgcmVxdWlyZXMgc3BlY2lmaWMgaGFyZHdhcmUgKHRoZSBwaHlzaWNhbCBBU0lDcyBhbmQgUENJZSBjYXJkcykgYW5kIGl0cyBmaXJtd2FyZSB0byBmdW5jdGlvbiBwcm9wZXJseS4gV2UgY2FuJ3QgcmVhZGlseSBzaW11bGF0ZSBvciBlbXVsYXRlIHRoaXMgZW52aXJvbm1lbnQgdXNpbmcgc3RhbmRhcmQgUUVNVSBvciBpbiBhIHRvb2wgbGlrZSBzeXprYWxsZXIuIFRoZXJlZm9yZSwgdGhpcyBmaXRzIHRoZSBcInN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZVwiIGNyaXRlcmlhIHBlcmZlY3RseS4gR2l2ZW4gdGhhdCwgSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGVyZSBhcmVuJ3QgYW55IG90aGVyIHJlbGF0ZWQgZmlsZXMgb3IgbW9kdWxlcyB0aGF0IG1pZ2h0IGNvbXBsaWNhdGUgdGhlIGRlY2lzaW9uLCBidXQgbXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgdGhpcyBpcyBkZWZpbml0ZWx5IG5vdCBmdXp6YWJsZSBpbiBvdXIgY3VycmVudCBzZXR1cC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjU0NzYsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOTgsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QwNzoyOTo0NC42MjU0NTcwN1oiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJjb2Rlc2VhcmNoLWRpci1pbmRleCIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwOTM0OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkRpclwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmFcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRmlsZXNcIjogW1xuICAgIFwicHJlc3RlcmEuaFwiLFxuICAgIFwicHJlc3RlcmFfYWNsLmNcIixcbiAgICBcInByZXN0ZXJhX2FjbC5oXCIsXG4gICAgXCJwcmVzdGVyYV9jb3VudGVyLmNcIixcbiAgICBcInByZXN0ZXJhX2NvdW50ZXIuaFwiLFxuICAgIFwicHJlc3RlcmFfZGV2bGluay5jXCIsXG4gICAgXCJwcmVzdGVyYV9kZXZsaW5rLmhcIixcbiAgICBcInByZXN0ZXJhX2RzYS5jXCIsXG4gICAgXCJwcmVzdGVyYV9kc2EuaFwiLFxuICAgIFwicHJlc3RlcmFfZXRodG9vbC5jXCIsXG4gICAgXCJwcmVzdGVyYV9ldGh0b29sLmhcIixcbiAgICBcInByZXN0ZXJhX2Zsb3cuY1wiLFxuICAgIFwicHJlc3RlcmFfZmxvdy5oXCIsXG4gICAgXCJwcmVzdGVyYV9mbG93ZXIuY1wiLFxuICAgIFwicHJlc3RlcmFfZmxvd2VyLmhcIixcbiAgICBcInByZXN0ZXJhX2h3LmNcIixcbiAgICBcInByZXN0ZXJhX2h3LmhcIixcbiAgICBcInByZXN0ZXJhX21haW4uY1wiLFxuICAgIFwicHJlc3RlcmFfbWF0Y2hhbGwuY1wiLFxuICAgIFwicHJlc3RlcmFfbWF0Y2hhbGwuaFwiLFxuICAgIFwicHJlc3RlcmFfcGNpLmNcIixcbiAgICBcInByZXN0ZXJhX3JvdXRlci5jXCIsXG4gICAgXCJwcmVzdGVyYV9yb3V0ZXJfaHcuY1wiLFxuICAgIFwicHJlc3RlcmFfcm91dGVyX2h3LmhcIixcbiAgICBcInByZXN0ZXJhX3J4dHguY1wiLFxuICAgIFwicHJlc3RlcmFfcnh0eC5oXCIsXG4gICAgXCJwcmVzdGVyYV9zcGFuLmNcIixcbiAgICBcInByZXN0ZXJhX3NwYW4uaFwiLFxuICAgIFwicHJlc3RlcmFfc3dpdGNoZGV2LmNcIixcbiAgICBcInByZXN0ZXJhX3N3aXRjaGRldi5oXCJcbiAgXSxcbiAgXCJTdWJkaXJzXCI6IG51bGxcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDA3OjI5OjQ0LjYyNTU2ODA1WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjI1OTMwNTcxOTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyBpZiBJIHdlcmUgdGhpbmtpbmcgdGhlc2UgdGhvdWdodHM6XG5cbioqQW5hbHl6aW5nIHRoZSBIYXJkd2FyZSBDb3VudGVyIEZ1bmN0aW9uKipcblxuT2theSwgc28gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGlzIGBwcmVzdGVyYV9od19jb3VudGVyc19nZXRgIGZ1bmN0aW9uLiBTcGVjaWZpY2FsbHksIGl0IHNlZW1zIGl0J3MgYmVlbiBtb2RpZmllZCByZWNlbnRseS4gUmlnaHQsIEkgcmVtZW1iZXIgdGhhdCBgcHJlc3RlcmFfaHdfY291bnRlcnNfZ2V0YCBpcyBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9ody5jYC4gVGltZSB0byBkaXZlIGludG8gdGhlIGNvZGUuIExldCdzIGdldCB0aGF0IGZpbGUgb3BlbiBhbmQgcmVhZCB0aHJvdWdoIHRoYXQgc3BlY2lmaWMgZnVuY3Rpb24gaW4gYHByZXN0ZXJhX2h3LmNgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0J3MgYmVlbiBjaGFuZ2VkIGFuZCBob3cgaXQgaW1wYWN0cyB0aGUgb3ZlcmFsbCBmbG93LiBMZXQncyBzZWUuLi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjYyNzYsIk91dHB1dFRva2VucyI6NDgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NywiVG9vbENhbGxzIjpbImNvZGVzZWFyY2gtZGlyLWluZGV4Il19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMDc6Mjk6NDcuMjE4NjI3ODM0WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxMzUwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmNcIixcbiAgXCJGaXJzdExpbmVcIjogMjMxMCxcbiAgXCJMaW5lQ291bnRcIjogNDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMjMxMDpcXHRcXHRzdHJ1Y3QgcHJlc3RlcmFfbXNnX2NvdW50ZXJfcmVzcCAqcmVzcDtcXG4yMzExOlxcdFxcdHN0cnVjdCBwcmVzdGVyYV9tc2dfY291bnRlcl9yZXEgcmVxID0ge1xcbjIzMTI6XFx0XFx0XFx0LmJsb2NrX2lkID0gX19jcHVfdG9fbGUzMihpZHgpLFxcbjIzMTM6XFx0XFx0XFx0Lm51bV9jb3VudGVycyA9IF9fY3B1X3RvX2xlMzIoKmxlbiksXFxuMjMxNDpcXHRcXHR9O1xcbjIzMTU6XFx0XFx0c2l6ZV90IHNpemUgPSBzdHJ1Y3Rfc2l6ZShyZXNwLCBzdGF0cywgKmxlbik7XFxuMjMxNjpcXHRcXHRpbnQgZXJyLCBpO1xcbjIzMTc6XFx0XFxuMjMxODpcXHRcXHRyZXNwID0ga21hbGxvYyhzaXplLCBHRlBfS0VSTkVMKTtcXG4yMzE5OlxcdFxcdGlmICghcmVzcClcXG4yMzIwOlxcdFxcdFxcdHJldHVybiAtRU5PTUVNO1xcbjIzMjE6XFx0XFxuMjMyMjpcXHRcXHRlcnIgPSBwcmVzdGVyYV9jbWRfcmV0KHN3LCBQUkVTVEVSQV9DTURfVFlQRV9DT1VOVEVSX0dFVCxcXG4yMzIzOlxcdFxcdFxcdFxcdCAgICAgICBcXHUwMDI2cmVxLmNtZCwgc2l6ZW9mKHJlcSksIFxcdTAwMjZyZXNwLVxcdTAwM2VyZXQsIHNpemUpO1xcbjIzMjQ6XFx0XFx0aWYgKGVycilcXG4yMzI1OlxcdFxcdFxcdGdvdG8gZnJlZV9idWZmO1xcbjIzMjY6XFx0XFxuMjMyNzpcXHRcXHRpZiAoX19sZTMyX3RvX2NwdShyZXNwLVxcdTAwM2VudW1fY291bnRlcnMpIFxcdTAwM2UgKmxlbikge1xcbjIzMjg6XFx0XFx0XFx0ZXJyID0gLUVJTlZBTDtcXG4yMzI5OlxcdFxcdFxcdGdvdG8gZnJlZV9idWZmO1xcbjIzMzA6XFx0XFx0fVxcbjIzMzE6XFx0XFxuMjMzMjpcXHRcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgX19sZTMyX3RvX2NwdShyZXNwLVxcdTAwM2VudW1fY291bnRlcnMpOyBpKyspIHtcXG4yMzMzOlxcdFxcdFxcdHN0YXRzW2ldLnBhY2tldHMgKz0gX19sZTY0X3RvX2NwdShyZXNwLVxcdTAwM2VzdGF0c1tpXS5wYWNrZXRzKTtcXG4yMzM0OlxcdFxcdFxcdHN0YXRzW2ldLmJ5dGVzICs9IF9fbGU2NF90b19jcHUocmVzcC1cXHUwMDNlc3RhdHNbaV0uYnl0ZXMpO1xcbjIzMzU6XFx0XFx0fVxcbjIzMzY6XFx0XFxuMjMzNzpcXHRcXHQqbGVuID0gX19sZTMyX3RvX2NwdShyZXNwLVxcdTAwM2VudW1fY291bnRlcnMpO1xcbjIzMzg6XFx0XFx0KmRvbmUgPSBfX2xlMzJfdG9fY3B1KHJlc3AtXFx1MDAzZWRvbmUpO1xcbjIzMzk6XFx0XFxuMjM0MDpcXHRmcmVlX2J1ZmY6XFxuMjM0MTpcXHRcXHRrZnJlZShyZXNwKTtcXG4yMzQyOlxcdFxcdHJldHVybiBlcnI7XFxuMjM0MzpcXHR9XFxuMjM0NDpcXHRcXG4yMzQ1OlxcdGludCBwcmVzdGVyYV9od19jb3VudGVyX2Jsb2NrX2dldChzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdyxcXG4yMzQ2OlxcdFxcdFxcdFxcdFxcdCAgdTMyIGNsaWVudCwgdTMyICpibG9ja19pZCwgdTMyICpvZmZzZXQsXFxuMjM0NzpcXHRcXHRcXHRcXHRcXHQgIHUzMiAqbnVtX2NvdW50ZXJzKVxcbjIzNDg6XFx0e1xcbjIzNDk6XFx0XFx0c3RydWN0IHByZXN0ZXJhX21zZ19jb3VudGVyX3Jlc3AgcmVzcDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMDc6Mjk6NDcuMjE4ODQzMzg1WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjI0NDExMTEyOTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQ2hlY2tpbmcgZm9yIFZpcnR1YWwgUFJFU1RFUkEgTmV0d29yayBEZXZpY2VzKipcblxuT2theSwgbGV0J3MganVzdCBtYWtlIHN1cmUgSSdtIG5vdCBtaXNzaW5nIGFueXRoaW5nIG9idmlvdXMgaGVyZS4gSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIGlmIHRoZXJlJ3MgYW55IGV4aXN0aW5nIHZpcnR1YWwgb3IgbW9jayBuZXR3b3JrIGRldmljZSBzdXBwb3J0IHdpdGhpbiB0aGUga2VybmVsIHRyZWUgc3BlY2lmaWNhbGx5IGZvciBQcmVzdGVyYS4gSSB2YWd1ZWx5IHJlY2FsbCBzb21ldGhpbmcsIGJ1dCBtZW1vcnkgaXNuJ3QgYWx3YXlzIHJlbGlhYmxlLiBUaGUgbW9zdCBsb2dpY2FsIGZpcnN0IHN0ZXAgaXMgdG8gcGVyZm9ybSBhIHRhcmdldGVkIHNlYXJjaC4gSSdsbCBmb2N1cyBteSBxdWVyeSB3aXRoaW4gdGhlIGBkcml2ZXJzL25ldGAgZGlyZWN0b3J5LCBiZWNhdXNlIHRoYXQncyB3aGVyZSBhbGwgdGhlIG5ldHdvcmstcmVsYXRlZCBkcml2ZXJzIGxpdmUuIEEgc2ltcGxlIGtleXdvcmQgc2VhcmNoIGZvciBcIlBSRVNURVJBXCIgc2hvdWxkIHlpZWxkIHRoZSByZWxldmFudCByZXN1bHRzIC0gZmluZ2VycyBjcm9zc2VkLiBIb3BlZnVsbHksIGl0J2xsIHR1cm4gdXAgc29tZXRoaW5nIEkgY2FuIHdvcmsgd2l0aC4gVGltZSB0byBzZWUgd2hhdCB0aGUga2VybmVsIHJldmVhbHMhXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3MTg0LCJPdXRwdXRUb2tlbnMiOjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzYsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wN1QwNzoyOTo0OS42NTk5NTg5ODFaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1MTgwNTcwNzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiQ09ORklHX1BSRVNURVJBXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZToyOm9iai0kKENPTkZJR19QUkVTVEVSQSlcXHQrPSBwcmVzdGVyYS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZS0zLXByZXN0ZXJhLW9ianNcXHRcXHQ6PSBwcmVzdGVyYV9tYWluLm8gcHJlc3RlcmFfaHcubyBwcmVzdGVyYV9kc2EubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL01ha2VmaWxlLTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19QUkVTVEVSQV9QQ0kpXFx0Kz0gcHJlc3RlcmFfcGNpLm9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMDc6Mjk6NTQuMTc4MDcwNTI4WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjMyNDMzMjE4NzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudDogVGhpcyBDb2RlIGlzIFVuZnV6emFibGUqKlxuXG5Pa2F5LCBoZXJlJ3MgdGhlIHNpdHVhdGlvbi4gSSd2ZSBiZWVuIHRhc2tlZCB3aXRoIGFzc2Vzc2luZyBpZiB0aGlzIHNwZWNpZmljIGNvZGUgcmVsYXRlZCB0byB0aGUgTWFydmVsbCBQcmVzdGVyYSBzd2l0Y2ggZHJpdmVyLCBgUFJFU1RFUkFfUENJYCwgaXMgc3VpdGFibGUgZm9yIGZ1enppbmcuIEFmdGVyIGRpZ2dpbmcgaW4sIEkndmUgY29tZSB0byB0aGUgY29uY2x1c2lvbiB0aGF0IGl0IGlzbid0LCBhbmQgaGVyZSdzIHdoeS5cblxuVGhlIG9ubHkgaW50ZXJmYWNlIGRyaXZlciBpbiBwbGF5IGhlcmUgaXMgYFBSRVNURVJBX1BDSWAsIHdoaWNoIGlzIHNwZWNpZmljYWxseSBkZXNpZ25lZCB0byBpbnRlcmFjdCB3aXRoIE1hcnZlbGwgUHJlc3RlcmEgU3dpdGNoIEFTSUNzLiBJdCB0YWxrcyB0byB0aGUgaGFyZHdhcmUgdGhyb3VnaCBQQ0kgQkFScyBhbmQgbG9hZHMgYSBwcm9wcmlldGFyeSBmaXJtd2FyZSBmaWxlLCBgbXZzd19wcmVzdGVyYV9mdyouaW1nYC4gVGhlIGJpZywgZ2xhcmluZyBwcm9ibGVtPyBUaGlzIGhhcmR3YXJlIHNldHVwIGlzbid0IGVtdWxhdGVkIGluIHRoZSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS5cblxuU28sIGxldCdzIGJyZWFrIHRoaXMgZG93biBzeXN0ZW1hdGljYWxseS4gSSBuZWVkZWQgdG8gZW5zdXJlIHRoaXMgd2Fzbid0IGdvaW5nIHRvIGhhdmUgYSBwb3NpdGl2ZSBpbXBhY3Qgb24gYSBmdXp6LlxuXG5UaGUgbmVnYXRpdmUgY3JpdGVyaWEgSSBjaGVja2VkIHdlcmUgdGhpbmdzIGxpa2U6IGhhcmR3YXJlIGRyaXZlcnMgdGhhdCBuZWVkIHBoeXNpY2FsIEFTSUNzLCBQQ0llIGNhcmRzLCBTbWFydE5JQ3MsIG9yIEdQVXMgKGxpa2UgYG1seHN3YCwgYHBkc19jb3JlYCwgYHFlZGAsIGBpb25pY2AsIG9yIGBhbWRncHVgKS4gVGhvc2UgYXJlIG5vLWdvcywgYW5kIGd1ZXNzIHdoYXQ/IFRoaXMgZHJpdmVyICphYnNvbHV0ZWx5KiBmYWxscyBpbnRvIHRoYXQgY2F0ZWdvcnkuXG5cbk15IGNvbmNsdXNpb24gaXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZDogdGhlIGNvZGUgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfaHcuY2AsIGlzIG1vZGlmeWluZyB0aGUgTWFydmVsbCBQcmVzdGVyYSBzd2l0Y2ggZHJpdmVyLiBJdCByZXF1aXJlcyAqYWN0dWFsKiBNYXJ2ZWxsIFByZXN0ZXJhIFN3aXRjaCBBU0lDIFBDSWUgaGFyZHdhcmUgYW5kIHByb3ByaWV0YXJ5IGZpcm13YXJlIHRvIGZ1bmN0aW9uLiBCZWNhdXNlIHRoaXMgaGFyZHdhcmUgaXMgbm90IHJlcHJlc2VudGVkIGluIGEgc3RhbmRhcmQgdmlydHVhbCBlbnZpcm9ubWVudCwgdGhlIGNvZGUgSSdtIGxvb2tpbmcgYXQgaXMgKnN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSogZm9yIGZ1enppbmcuXG5cblRodXMsIEknbSBzZXR0aW5nIGBXb3J0aEZ1enppbmdgIHRvIGBmYWxzZWAuIFRoZXJlIGFyZSBubyBzcGVjaWZpYyBjb25maWd1cmF0aW9uIG9wdGlvbnMgdG8gZW5hYmxlLCBhbmQgbm8gc3BlY2lmaWMgc3ltYm9scyB0byBmb2N1cyBvbi4gVGhlIGRyaXZlciBpcyBvZmYtbGltaXRzIHRvIGZ1enppbmcuIFRpbWUgdG8gY2FsbCBpdCBpbi5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc1NjMsIk91dHB1dFRva2VucyI6MTExLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjYwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA3VDA3OjI5OjU3LjQyMTM5NTc3M1oiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM2OTYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIG1vZGlmaWVkIGNvZGUgaXMgbG9jYXRlZCBpbiB0aGUgTWFydmVsbCBQcmVzdGVyYSBzd2l0Y2ggZHJpdmVyIChkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2h3LmMpLCB3aGljaCBzdXBwb3J0cyBNYXJ2ZWxsIFByZXN0ZXJhIHN3aXRjaCBBU0lDcyBvdmVyIFBDSS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgc3BlY2lmaWMgcGh5c2ljYWwgQVNJQyBoYXJkd2FyZSBhbmQgZmlybXdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBtb2RpZmllZCBjb2RlIGlzIGxvY2F0ZWQgaW4gdGhlIE1hcnZlbGwgUHJlc3RlcmEgc3dpdGNoIGRyaXZlciAoZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9ody5jKSwgd2hpY2ggc3VwcG9ydHMgTWFydmVsbCBQcmVzdGVyYSBzd2l0Y2ggQVNJQ3Mgb3ZlciBQQ0kuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIEFTSUMgaGFyZHdhcmUgYW5kIGZpcm13YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDdUMDc6Mjk6NTcuNDIxNDM4MTkzWiIsIlNlcSI6MjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozODcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowmvgfn[1] Phase: Running StartedAt: 2026-09-07 07:30:08 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmvgfn[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-07 07:30:08 +0000 UTC FinishedAt: 2026-09-07 07:30:14 +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,}