Name: series-workflowbvh4k Phase: Failed StartedAt: 2026-08-11 12:00:23 +0000 UTC FinishedAt: 2026-08-11 12:02:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbvh4k[0] Phase: Succeeded StartedAt: 2026-08-11 12:00:23 +0000 UTC FinishedAt: 2026-08-11 12:02:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbvh4k[0].run-triage Phase: Succeeded StartedAt: 2026-08-11 12:00:23 +0000 UTC FinishedAt: 2026-08-11 12:02:05 +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+CgkJCTx0ZD4yMDI2LzA4LzExIDEyOjAxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEh1YXdlaSBJbnRlbGxpZ2VudCBOSUMgKGhpbmljMykgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGRyaXZlci4gVGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIGNvZGUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDEyOjAxPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNmQ5MjRmMDY1YTEyMzQ2ODNmNDhmYWE3MDBjMDk0NTE5Yjg3YzZmYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgQXVnIDExIDEyOjAxOjM1IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jXG5pbmRleCA5MzA2YmYwMDIwY2FmLi5jYzU0MWU3YTIzMTg2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xuQEAgLTI2MSw4ICYjNDM7MjYxLDcgQEAgc3RhdGljIGludCBoaW5pYzNfdHhfY3N1bShzdHJ1Y3QgaGluaWMzX3R4cSAqdHhxLCBzdHJ1Y3QgaGluaWMzX3NxX3Rhc2sgKnRhc2ssXG4gXHRcdCAgICAoKHN0cnVjdCB1ZHBoZHIgKilza2JfdHJhbnNwb3J0X2hlYWRlcihza2IpKS1cdTAwM2VkZXN0ICE9XG4gXHRcdCAgICBWWExBTl9PRkZMT0FEX1BPUlRfTEUpIHtcbiBcdFx0XHQvKiBVbnN1cHBvcnRlZCB0dW5uZWwgcGFja2V0LCBkaXNhYmxlIGNzdW0gb2ZmbG9hZCAqL1xuLVx0XHRcdHNrYl9jaGVja3N1bV9oZWxwKHNrYik7XG4tXHRcdFx0cmV0dXJuIDA7XG4mIzQzO1x0XHRcdHJldHVybiBza2JfY2hlY2tzdW1faGVscChza2IpO1xuIFx0XHR9XG4gXHR9XG4gXG5AQCAtNDEyLDYgJiM0Mzs0MTEsMTAgQEAgc3RhdGljIHUzMiBoaW5pYzNfdHhfb2ZmbG9hZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgaGluaWMzX3NxX3Rhc2sgKnRhc2ssXG4gXHRcdG9mZmxvYWQgfD0gSElOSUMzX1RYX09GRkxPQURfVFNPO1xuIFx0fSBlbHNlIHtcbiBcdFx0dHNvX2NzX2VuID0gaGluaWMzX3R4X2NzdW0odHhxLCB0YXNrLCBza2IpO1xuJiM0MztcdFx0aWYgKHRzb19jc19lbiBcdTAwM2MgMCkge1xuJiM0MztcdFx0XHRvZmZsb2FkID0gSElOSUMzX1RYX09GRkxPQURfSU5WQUxJRDtcbiYjNDM7XHRcdFx0cmV0dXJuIG9mZmxvYWQ7XG4mIzQzO1x0XHR9XG4gXHRcdGlmICh0c29fY3NfZW4pXG4gXHRcdFx0b2ZmbG9hZCB8PSBISU5JQzNfVFhfT0ZGTE9BRF9DU1VNO1xuIFx0fVxuQEAgLTU0NSw2ICYjNDM7NTQ4LDcgQEAgc3RhdGljIG5ldGRldl90eF90IGhpbmljM19zZW5kX29uZV9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcdFx0c2tiLVx1MDAzZWxlbiA9IE1JTl9TS0JfTEVOO1xuIFx0fVxuIFxuJiM0MztcdG9mZmxvYWQgPSBoaW5pYzNfdHhfb2ZmbG9hZChza2IsIFx1MDAyNnRhc2ssIFx1MDAyNnF1ZXVlX2luZm8sIHR4cSk7XG4gXHRudW1fc2dlID0gc2tiX3NoaW5mbyhza2IpLVx1MDAzZW5yX2ZyYWdzICYjNDM7IDE7XG4gXHQvKiBhc3N1bWUgbm9ybWFsIHdxZSBmb3JtYXQgJiM0MzsgMSB3cWViYiBmb3IgdGFzayBpbmZvICovXG4gXHR3cWViYl9jbnQgPSBudW1fc2dlICYjNDM7IDE7XG5AQCAtNTYwLDcgJiM0Mzs1NjQsNiBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaGluaWMzX3NlbmRfb25lX3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHRyZXR1cm4gTkVUREVWX1RYX0JVU1k7XG4gXHR9XG4gXG4tXHRvZmZsb2FkID0gaGluaWMzX3R4X29mZmxvYWQoc2tiLCBcdTAwMjZ0YXNrLCBcdTAwMjZxdWV1ZV9pbmZvLCB0eHEpO1xuIFx0aWYgKHVubGlrZWx5KG9mZmxvYWQgPT0gSElOSUMzX1RYX09GRkxPQURfSU5WQUxJRCkpIHtcbiBcdFx0Z290byBlcnJfZHJvcF9wa3Q7XG4gXHR9IGVsc2UgaWYgKCFvZmZsb2FkKSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTI6MDE8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBIdWF3ZWkgSW50ZWxsaWdlbnQgTklDIChoaW5pYzMpIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBoYXJkd2FyZSBkcml2ZXIuIFRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cywgbWFraW5nIHRoZSBjb2RlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDZkOTI0ZjA2NWExMjM0NjgzZjQ4ZmFhNzAwYzA5NDUxOWI4N2M2ZmIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEF1ZyAxMSAxMjowMTozNSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jCmluZGV4IDkzMDZiZjAwMjBjYWYuLmNjNTQxZTdhMjMxODYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguYwpAQCAtMjYxLDggJiM0MzsyNjEsNyBAQCBzdGF0aWMgaW50IGhpbmljM190eF9jc3VtKHN0cnVjdCBoaW5pYzNfdHhxICp0eHEsIHN0cnVjdCBoaW5pYzNfc3FfdGFzayAqdGFzaywKIAkJICAgICgoc3RydWN0IHVkcGhkciAqKXNrYl90cmFuc3BvcnRfaGVhZGVyKHNrYikpLSZndDtkZXN0ICE9CiAJCSAgICBWWExBTl9PRkZMT0FEX1BPUlRfTEUpIHsKIAkJCS8qIFVuc3VwcG9ydGVkIHR1bm5lbCBwYWNrZXQsIGRpc2FibGUgY3N1bSBvZmZsb2FkICovCi0JCQlza2JfY2hlY2tzdW1faGVscChza2IpOwotCQkJcmV0dXJuIDA7CiYjNDM7CQkJcmV0dXJuIHNrYl9jaGVja3N1bV9oZWxwKHNrYik7CiAJCX0KIAl9CiAKQEAgLTQxMiw2ICYjNDM7NDExLDEwIEBAIHN0YXRpYyB1MzIgaGluaWMzX3R4X29mZmxvYWQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGhpbmljM19zcV90YXNrICp0YXNrLAogCQlvZmZsb2FkIHw9IEhJTklDM19UWF9PRkZMT0FEX1RTTzsKIAl9IGVsc2UgewogCQl0c29fY3NfZW4gPSBoaW5pYzNfdHhfY3N1bSh0eHEsIHRhc2ssIHNrYik7CiYjNDM7CQlpZiAodHNvX2NzX2VuICZsdDsgMCkgewomIzQzOwkJCW9mZmxvYWQgPSBISU5JQzNfVFhfT0ZGTE9BRF9JTlZBTElEOwomIzQzOwkJCXJldHVybiBvZmZsb2FkOwomIzQzOwkJfQogCQlpZiAodHNvX2NzX2VuKQogCQkJb2ZmbG9hZCB8PSBISU5JQzNfVFhfT0ZGTE9BRF9DU1VNOwogCX0KQEAgLTU0NSw2ICYjNDM7NTQ4LDcgQEAgc3RhdGljIG5ldGRldl90eF90IGhpbmljM19zZW5kX29uZV9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJc2tiLSZndDtsZW4gPSBNSU5fU0tCX0xFTjsKIAl9CiAKJiM0MzsJb2ZmbG9hZCA9IGhpbmljM190eF9vZmZsb2FkKHNrYiwgJmFtcDt0YXNrLCAmYW1wO3F1ZXVlX2luZm8sIHR4cSk7CiAJbnVtX3NnZSA9IHNrYl9zaGluZm8oc2tiKS0mZ3Q7bnJfZnJhZ3MgJiM0MzsgMTsKIAkvKiBhc3N1bWUgbm9ybWFsIHdxZSBmb3JtYXQgJiM0MzsgMSB3cWViYiBmb3IgdGFzayBpbmZvICovCiAJd3FlYmJfY250ID0gbnVtX3NnZSAmIzQzOyAxOwpAQCAtNTYwLDcgJiM0Mzs1NjQsNiBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaGluaWMzX3NlbmRfb25lX3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQlyZXR1cm4gTkVUREVWX1RYX0JVU1k7CiAJfQogCi0Jb2ZmbG9hZCA9IGhpbmljM190eF9vZmZsb2FkKHNrYiwgJmFtcDt0YXNrLCAmYW1wO3F1ZXVlX2luZm8sIHR4cSk7CiAJaWYgKHVubGlrZWx5KG9mZmxvYWQgPT0gSElOSUMzX1RYX09GRkxPQURfSU5WQUxJRCkpIHsKIAkJZ290byBlcnJfZHJvcF9wa3Q7CiAJfSBlbHNlIGlmICghb2ZmbG9hZCkgewo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAxMjowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTIwCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMjEyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIEh1YXdlaSBOSUMgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRhcmdldGluZyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY2AuIE15IGluaXRpYWwgcmVhZCBpcyB0aGF0IHRoZXkmIzM5O3JlIGZ1bmRhbWVudGFsbHkgY2hhbmdpbmcgaG93IGNoZWNrc3VtIG9mZmxvYWQgaXMgaGFuZGxlZC4gU3BlY2lmaWNhbGx5LCBgaGluaWMzX3R4X2NzdW1gIGlzIG5vdyByZXR1cm5pbmcgdGhlIHJlc3VsdCBvZiBgc2tiX2NoZWNrc3VtX2hlbHAoc2tiKWAgaW5zdGVhZCBvZiBzaW1wbHkgMC4gVGhhdCYjMzk7cyBhIGtleSBzaGlmdCwgYmVjYXVzZSB3ZSYjMzk7cmUgbm8gbG9uZ2VyIHVuY29uZGl0aW9uYWxseSBjbGFpbWluZyBzdWNjZXNzLiBXZSBhcmUgYWN0dWFsbHkgKnVzaW5nKiB0aGUgcmVzdWx0IG9mIHRoZSBgc2tiX2NoZWNrc3VtX2hlbHBgIGZ1bmN0aW9uISBUaGF0IG1ha2VzIHRvdGFsIHNlbnNlOyB3ZSBuZWVkIHRvIHByb3BhZ2F0ZSBwb3RlbnRpYWwgZXJyb3JzLgoKVGhlIG5leHQgdGhpbmcgSSBzZWUgaXMgYSBjb25kaXRpb25hbCBjaGVjayBvbiB0aGUgcmV0dXJuIHZhbHVlIG9mIGBoaW5pYzNfdHhfY3N1bWAgd2l0aGluIGBoaW5pYzNfdHhfb2ZmbG9hZGAuIElmIGl0JiMzOTtzIG5lZ2F0aXZlLCB3ZSYjMzk7cmUgbm93IHJldHVybmluZyBgSElOSUMzX1RYX09GRkxPQURfSU5WQUxJRGAuIEFnYWluLCBzZW5zaWJsZS4gRXJyb3IgcHJvcGFnYXRpb24gaXMgY3JpdGljYWwuIEEgbmVnYXRpdmUgcmV0dXJuIGZyb20gdGhlIGNoZWNrc3VtIGhlbHBlciBpbmRpY2F0ZXMgc29tZXRoaW5nIHdlbnQgd3JvbmcsIGFuZCB3ZSBuZWVkIHRvIHNpZ25hbCB0aGF0IHRvIHRoZSBoaWdoZXItbGV2ZWwgdHJhbnNtaXNzaW9uIGZ1bmN0aW9uLiBHb29kLgoKVGhlIHBhdGNoIGFsc28gbW92ZXMgdGhlIGNhbGwgdG8gYGhpbmljM190eF9vZmZsb2FkYCAqZWFybGllciogaW4gYGhpbmljM19zZW5kX29uZV9za2JgLCBiZWZvcmUgYG51bV9zZ2VgIGFuZCBgd3FlYmJfY250YCBhcmUgY2FsY3VsYXRlZC4gVGhhdCYjMzk7cyBpbnRlcmVzdGluZy4gSSBiZXQgdGhpcyBpcyB0byBhdm9pZCB1bm5lY2Vzc2FyeSB3b3JrIGlmIHRoZSBvZmZsb2FkIGF0dGVtcHQgZmFpbHMuIENhbGN1bGF0aW5nIHRoZSBzY2F0dGVyLWdhdGhlciBlbGVtZW50cyBhbmQgd29yayBxdWV1ZSBlbnRyeSBidWZmZXIgY291bnQgd291bGQgYmUgd2FzdGVkIGVmZm9ydCBpZiB0aGUgY2hlY2tzdW0gb2ZmbG9hZCBmYWlscywgc28gbW92aW5nIHRoZSBjaGVjayB1cCBmcm9udCBtYWtlcyBzZW5zZSBmb3IgZWZmaWNpZW5jeS4KCk5vdywgYSBicmllZiBwYXVzZS4gYGhpbmljM2AuIFJpZ2h0LiBIdWF3ZWkgSW50ZWxsaWdlbnQgTklDIGRyaXZlci4gSSBrbm93IHRoYXQgbmFtZS4gSSYjMzk7bSB3b25kZXJpbmcsIGlzIHRoaXMgYSBwaHlzaWNhbCBoYXJkd2FyZSBkcml2ZXIsIG9yIGRvZXMgaXQgYWxzbyBzdXBwb3J0IHZpcnR1YWxpemF0aW9uPyBMZXQmIzM5O3MgYXNzdW1lIGl0JiMzOTtzIHBoeXNpY2FsLiBJcyBpdCBsaWtlbHkgdG8gYmUgcmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/IExpa2VseSwgYnV0IEkgbmVlZCB0byBjb25maXJtIHRoZSB1bmRlcmx5aW5nIGRldmljZS4gSSYjMzk7bGwgY2hlY2sgaWYgaXQmIzM5O3MgYSBQQ0kgZHJpdmVyIHRvIGNvbmZpcm0sIHNpbmNlIHRoYXQmIzM5O3MgdGhlIG1vc3QgY29tbW9uIGNhc2UgaW4gdGhlc2Ugc2NlbmFyaW9zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDEyOjAxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2hpbmljMyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA2NDg5IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL0tjb25maWc9Nj1jb25maWcgSElOSUMzXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9LY29uZmlnLTIwLVx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9LY29uZmlnOjIxOlx0ICBUaGUgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGhpbmljMy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlLTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjQ6b2JqLSQoQ09ORklHX0hJTklDMykgJiM0Mzs9IGhpbmljMy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjY6aGluaWMzLW9ianMgOj0gaGluaWMzX2NtZHEubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZTo3Olx0ICAgICAgIGhpbmljM19jb21tb24ubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZTo4Olx0ICAgICAgIGhpbmljM19lcXMubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZTo5Olx0ICAgICAgIGhpbmljM19ldGh0b29sLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTA6XHQgICAgICAgaGluaWMzX2ZpbHRlci5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjExOlx0ICAgICAgIGhpbmljM19od19jZmcubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToxMjpcdCAgICAgICBoaW5pYzNfaHdfY29tbS5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjEzOlx0ICAgICAgIGhpbmljM19od2Rldi5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjE0Olx0ICAgICAgIGhpbmljM19od2lmLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTU6XHQgICAgICAgaGluaWMzX2lycS5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjE2Olx0ICAgICAgIGhpbmljM19sbGQubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToxNzpcdCAgICAgICBoaW5pYzNfbWFpbi5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjE4Olx0ICAgICAgIGhpbmljM19tYm94Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTk6XHQgICAgICAgaGluaWMzX21nbXQubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToyMDpcdCAgICAgICBoaW5pYzNfbmV0ZGV2X29wcy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjIxOlx0ICAgICAgIGhpbmljM19uaWNfY2ZnLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MjI6XHQgICAgICAgaGluaWMzX25pY19pby5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjIzOlx0ICAgICAgIGhpbmljM19xdWV1ZV9jb21tb24ubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToyNDpcdCAgICAgICBoaW5pYzNfcnNzLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MjU6XHQgICAgICAgaGluaWMzX3J4Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MjY6XHQgICAgICAgaGluaWMzX3R4Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6Mjc6XHQgICAgICAgaGluaWMzX3dxLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4OiNpbmNsdWRlIFwmIzM0O2hpbmljM19jbWRxLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5OiNpbmNsdWRlIFwmIzM0O2hpbmljM19lcXMuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwOiNpbmNsdWRlIFwmIzM0O2hpbmljM19od2Rldi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTE6I2luY2x1ZGUgXCYjMzQ7aGluaWMzX2h3aWYuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEyOiNpbmNsdWRlIFwmIzM0O2hpbmljM19tYm94LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM9MTEyPWVudW0gY21kcV9jbWRfdHlwZSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTExOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMTk6c3RhdGljIHZvaWQgaGluaWMzX2R1bXBfY21kcV93cWVfaGVhZChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMjAtXHRcdFx0XHQgICAgICBzdHJ1Y3QgY21kcV93cWUgKndxZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTMyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEzMzpzdGF0aWMgc3RydWN0IGNtZHFfd3FlICpjbWRxX3JlYWRfd3FlKHN0cnVjdCBoaW5pYzNfd3EgKndxLCB1MTYgKmNpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEzNC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTM1Olx0aWYgKGhpbmljM193cV9nZXRfdXNlZCh3cSkgPT0gMClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMzYtXHRcdHJldHVybiBOVUxMO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xNDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTQzOnN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqaGluaWMzX2FsbG9jX2NtZF9idWYoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTQ0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxNDU6XHRzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmNtZF9idWY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTQ2Olx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTQ3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xNzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTcyOnZvaWQgaGluaWMzX2ZyZWVfY21kX2J1ZihzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxNzM6XHRcdFx0IHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqY21kX2J1ZilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xNzQte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjE3NTpcdHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE3Ni1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjE4NjpzdGF0aWMgdm9pZCBjbWRxX2NsZWFyX2NtZF9idWYoc3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpjbWRfaW5mbyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxODc6XHRcdFx0ICAgICAgIHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE4OC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTg5LVx0aWYgKGNtZF9pbmZvLVx1MDAzZWJ1Zl9pbikge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjE5MDpcdFx0aGluaWMzX2ZyZWVfY21kX2J1Zihod2RldiwgY21kX2luZm8tXHUwMDNlYnVmX2luKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xOTEtXHRcdGNtZF9pbmZvLVx1MDAzZWJ1Zl9pbiA9IE5VTEw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE5NC1cdGlmIChjbWRfaW5mby1cdTAwM2VidWZfb3V0KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTk1Olx0XHRoaW5pYzNfZnJlZV9jbWRfYnVmKGh3ZGV2LCBjbWRfaW5mby1cdTAwM2VidWZfb3V0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xOTYtXHRcdGNtZF9pbmZvLVx1MDAzZWJ1Zl9vdXQgPSBOVUxMO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xOTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MjAwOnN0YXRpYyB2b2lkIGNsZWFyX3dxZV9jb21wbGV0ZV9iaXQoc3RydWN0IGhpbmljM19jbWRxICpjbWRxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIwMS1cdFx0XHRcdCAgIHN0cnVjdCBjbWRxX3dxZSAqd3FlLCB1MTYgY2kpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIxNy1cdHdtYigpOyAvKiB2ZXJpZnkgd3FlIGlzIGNsZWFyIGJlZm9yZSB1cGRhdGluZyBjaSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjIxODpcdGhpbmljM193cV9wdXRfd3FlYmJzKFx1MDAyNmNtZHEtXHUwMDNld3EsIENNRFFfV1FFX05VTV9XUUVCQlMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIxOS19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjIwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjIyMTpzdGF0aWMgaW50IGNtZHFfYXJtX2NlcV9oYW5kbGVyKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yMjItXHRcdFx0XHRzdHJ1Y3QgY21kcV93cWUgKndxZSwgdTE2IGNpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yMzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MjM1OnN0YXRpYyB2b2lkIGNtZHFfdXBkYXRlX2NtZF9zdGF0dXMoc3RydWN0IGhpbmljM19jbWRxICpjbWRxLCB1MTYgcHJvZF9pZHgsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjM2LVx0XHRcdFx0ICAgc3RydWN0IGNtZHFfd3FlICp3cWUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjM3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoyMzg6XHRzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKmNtZF9pbmZvO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIzOS1cdHN0cnVjdCBjbWRxX3dxZV9sY21kICp3cWVfbGNtZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjUyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjI1MzpzdGF0aWMgdm9pZCBjbWRxX3N5bmNfY21kX2hhbmRsZXIoc3RydWN0IGhpbmljM19jbWRxICpjbWRxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTI1NC1cdFx0XHRcdCAgc3RydWN0IGNtZHFfd3FlICp3cWUsIHUxNiBjaSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjc0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjI3NTp2b2lkIGhpbmljM19jbWRxX2NlcV9oYW5kbGVyKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LCBfX2xlMzIgY2VxZV9kYXRhKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTI3Ni17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Mjc3Olx0ZW51bSBoaW5pYzNfY21kcV90eXBlIGNtZHFfdHlwZSA9IENNRFFfQ0VRRV9HRVQoY2VxZV9kYXRhLCBUWVBFKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoyNzg6XHRzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcyA9IGh3ZGV2LVx1MDAzZWNtZHFzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjI3OTpcdHN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyAqY21kX2luZm87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjgwLVx0c3RydWN0IGNtZHFfd3FlX2xjbWQgKndxZV9sY21kO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjI4MTpcdHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yODItXHRzdHJ1Y3QgY21kcV93cWUgKndxZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjk3LVx0XHRcdFx0IGNtZHFfdHlwZSwgY2kpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjI5ODpcdFx0XHRoaW5pYzNfZHVtcF9jbWRxX3dxZV9oZWFkKGh3ZGV2LCB3cWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTI5OS1cdFx0XHRmYWxsdGhyb3VnaDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjMzNTpzdGF0aWMgaW50IGNtZHFfcGFyYW1zX3ZhbGlkKGNvbnN0IHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjMzNjpcdFx0XHQgICAgIGNvbnN0IHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX2luKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTMzNy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM0Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzozNDc6c3RhdGljIGludCB3YWl0X2NtZHFzX2VuYWJsZShzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zNDgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYz0zNjQ9c3RhdGljIHZvaWQgY21kcV9zZXRfY29tcGxldGlvbihzdHJ1Y3QgY21kcV9jb21wbGV0aW9uICpjb21wbGV0ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzozNjU6XHRcdFx0XHRzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9vdXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzY2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzozNjc6XHRzdHJ1Y3QgaGluaWMzX3NnZSAqc2dlID0gXHUwMDI2Y29tcGxldGUtXHUwMDNlcmVzcC5zZ2U7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzY4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM2OTpcdGhpbmljM19zZXRfc2dlKHNnZSwgYnVmX291dC1cdTAwM2VkbWFfYWRkciwgY3B1X3RvX2xlMzIoQ01EUV9CVUZfU0laRSkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM3MC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzcxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM3MjpzdGF0aWMgc3RydWN0IGNtZHFfd3FlICpjbWRxX2dldF93cWUoc3RydWN0IGhpbmljM193cSAqd3EsIHUxNiAqcGkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzczLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzozNzQ6XHRpZiAoIWhpbmljM193cV9mcmVlX3dxZWJicyh3cSkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzc1LVx0XHRyZXR1cm4gTlVMTDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zNzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Mzc3Olx0cmV0dXJuIGhpbmljM193cV9nZXRfb25lX3dxZWJiKHdxLCBwaSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzc4LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM9MzgwPXN0YXRpYyB2b2lkIGNtZHFfc2V0X2xjbWRfYnVmZGVzYyhzdHJ1Y3QgY21kcV93cWVfbGNtZCAqd3FlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM4MTpcdFx0XHRcdCAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzgyLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzozODM6XHRoaW5pYzNfc2V0X3NnZShcdTAwMjZ3cWUtXHUwMDNlYnVmX2Rlc2Muc2dlLCBidWZfaW4tXHUwMDNlZG1hX2FkZHIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzg0LVx0XHQgICAgICAgKF9fZm9yY2UgX19sZTMyKWJ1Zl9pbi1cdTAwM2VzaXplKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzg2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM4NzpzdGF0aWMgdm9pZCBjbWRxX3NldF9kYihzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Mzg4Olx0XHRcdGVudW0gaGluaWMzX2NtZHFfdHlwZSBjbWRxX3R5cGUsIHUxNiBwcm9kX2lkeClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zODkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYz00NTk9c3RhdGljIHZvaWQgY21kcV9zZXRfbGNtZF93cWUoc3RydWN0IGNtZHFfd3FlICp3cWUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNDYwLVx0XHRcdCAgICAgIGVudW0gY21kcV9jbWRfdHlwZSBjbWRfdHlwZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo0NjE6XHRcdFx0ICAgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NDYyOlx0XHRcdCAgICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX291dCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy00NjMtXHRcdFx0ICAgICAgdTggd3JhcHBlZCwgdTggbW9kLCB1OCBjbWQsIHUxNiBwcm9kX2lkeClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNDg0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjQ4NTpzdGF0aWMgaW50IGhpbmljM19jbWRxX3N5bmNfdGltZW91dF9jaGVjayhzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNDg2LVx0XHRcdFx0XHQgIHN0cnVjdCBjbWRxX3dxZSAqd3FlLCB1MTYgcGkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTUwMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo1MDQ6c3RhdGljIHZvaWQgY2xlYXJfY21kX2luZm8oc3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpjbWRfaW5mbyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo1MDU6XHRcdFx0ICAgY29uc3Qgc3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpzYXZlZF9jbWRfaW5mbylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01MDYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01MTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTE3OnN0YXRpYyBpbnQgd2FpdF9jbWRxX3N5bmNfY21kX2NvbXBsZXRpb24oc3RydWN0IGhpbmljM19jbWRxICpjbWRxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjUxODpcdFx0XHRcdFx0IHN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyAqY21kX2luZm8sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTE5Olx0XHRcdFx0XHQgc3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpzYXZlZF9jbWRfaW5mbyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01MjAtXHRcdFx0XHRcdCB1NjQgY3Vycl9tc2dfaWQsIHUxNiBjdXJyX3Byb2RfaWR4LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NDAtXHRpZiAoY3Vycl9tc2dfaWQgPT0gY21kX2luZm8tXHUwMDNlY21kcV9tc2dfaWQpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo1NDE6XHRcdGVyciA9IGhpbmljM19jbWRxX3N5bmNfdGltZW91dF9jaGVjayhjbWRxLCBjdXJyX3dxZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NDItXHRcdFx0XHRcdFx0ICAgICBjdXJyX3Byb2RfaWR4KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTU1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU1NjpcdGhpbmljM19kdW1wX2NlcV9pbmZvKGNtZHEtXHUwMDNlaHdkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU1Ny1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTYwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU2MTpzdGF0aWMgaW50IGNtZHFfc3luY19jbWRfZXhlYyhzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsIHU4IG1vZCwgdTggY21kLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU2MjpcdFx0XHQgICAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9pbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo1NjM6XHRcdFx0ICAgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfb3V0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU2NC1cdFx0XHQgICAgICBfX2xlNjQgKm91dF9wYXJhbSwgdTggY21kX3R5cGUsIHU4IHdxZV9jbWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTY1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo1NjY6XHRzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKmNtZF9pbmZvLCBzYXZlZF9jbWRfaW5mbztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NjctXHRpbnQgY21wdF9jb2RlID0gQ01EUV9TRU5EX0NNUFRfQ09ERTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NjgtXHRzdHJ1Y3QgY21kcV93cWUgKmN1cnJfd3FlLCB3cWUgPSB7fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo1Njk6XHRzdHJ1Y3QgaGluaWMzX3dxICp3cSA9IFx1MDAyNmNtZHEtXHUwMDNld3E7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTcwLVx0dTE2IGN1cnJfcHJvZF9pZHgsIG5leHRfcHJvZF9pZHg7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTYzNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2MzU6c3RhdGljIGludCBjbWRxX3N5bmNfY21kX2RpcmVjdF9yZXNwKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSwgdTggbW9kLCB1OCBjbWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjM2Olx0XHRcdFx0ICAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9pbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02MzctXHRcdFx0XHQgICAgIF9fbGU2NCAqb3V0X3BhcmFtKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjQ0OnN0YXRpYyBpbnQgY21kcV9zeW5jX2NtZF9kZXRhaWxfcmVzcChzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsIHU4IG1vZCwgdTggY21kLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY0NTpcdFx0XHRcdCAgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjQ2Olx0XHRcdFx0ICAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9vdXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjQ3LVx0XHRcdFx0ICAgICBfX2xlNjQgKm91dF9wYXJhbSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjUzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY1NDppbnQgaGluaWMzX2NtZF9idWZfcGFpcl9pbml0KHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY1NTpcdFx0XHQgICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1Zl9wYWlyICpwYWlyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY1Ni17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjU3Olx0cGFpci1cdTAwM2VpbiA9IGhpbmljM19hbGxvY19jbWRfYnVmKGh3ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NTgtXHRpZiAoIXBhaXItXHUwMDNlaW4pXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY2MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2NjE6XHRwYWlyLVx1MDAzZW91dCA9IGhpbmljM19hbGxvY19jbWRfYnVmKGh3ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NjItXHRpZiAoIXBhaXItXHUwMDNlb3V0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NjctZXJyX2ZyZWVfY21kX2J1Zl9pbjpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2Njg6XHRoaW5pYzNfZnJlZV9jbWRfYnVmKGh3ZGV2LCBwYWlyLVx1MDAzZWluKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NjktZXJyX291dDpcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjcyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY3Mzp2b2lkIGhpbmljM19jbWRfYnVmX3BhaXJfdW5pbml0KHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY3NDpcdFx0XHRcdHN0cnVjdCBoaW5pYzNfY21kX2J1Zl9wYWlyICpwYWlyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY3NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Njc2Olx0aGluaWMzX2ZyZWVfY21kX2J1Zihod2RldiwgcGFpci1cdTAwM2Vpbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Njc3Olx0aGluaWMzX2ZyZWVfY21kX2J1Zihod2RldiwgcGFpci1cdTAwM2VvdXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY3OC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjc5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY4MDppbnQgaGluaWMzX2NtZHFfZGlyZWN0X3Jlc3Aoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsIHU4IG1vZCwgdTggY21kLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY4MTpcdFx0XHQgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4sIF9fbGU2NCAqb3V0X3BhcmFtKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY4Mi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjgzOlx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjg0LVx0aW50IGVycjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjcxMzppbnQgaGluaWMzX2NtZHFfZGV0YWlsX3Jlc3Aoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsIHU4IG1vZCwgdTggY21kLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjcxNDpcdFx0XHQgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzE1Olx0XHRcdCAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9vdXQsIF9fbGU2NCAqb3V0X3BhcmFtKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTcxNi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzE3Olx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzE4LVx0aW50IGVycjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzQ1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjc0NjpzdGF0aWMgdm9pZCBjbWRxX2luaXRfcXVldWVfY3R4dChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldiwgdTggY21kcV9pZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NDctXHRcdFx0XHQgc3RydWN0IGNvbW1fY21kcV9jdHh0X2luZm8gKmN0eHRfaW5mbylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NDgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjc0OTpcdGNvbnN0IHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc1MC1cdHU2NCBjbWRxX2ZpcnN0X2Jsb2NrX3BhZGRyLCBwZm47XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzUxOlx0Y29uc3Qgc3RydWN0IGhpbmljM193cSAqd3E7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzUyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NTQtXHR3cSA9IFx1MDAyNmNtZHFzLVx1MDAzZWNtZHFbY21kcV9pZF0ud3E7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzU1Olx0cGZuID0gQ01EUV9QRk4oaGluaWMzX3dxX2dldF9maXJzdF93cWVfcGFnZV9hZGRyKHdxKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzU2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzY0Olx0aWYgKCFoaW5pYzNfd3FfaXNfMF9sZXZlbF9jbGEod3EpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzY1LVx0XHRjbWRxX2ZpcnN0X2Jsb2NrX3BhZGRyID0gY21kcXMtXHUwMDNld3FfYmxvY2tfcGFkZHI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3NzM6c3RhdGljIGludCBpbml0X2NtZHEoc3RydWN0IGhpbmljM19jbWRxICpjbWRxLCBzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3NzQ6XHRcdCAgICAgZW51bSBoaW5pYzNfY21kcV90eXBlIHFfdHlwZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NzUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03OTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzkzOnN0YXRpYyBpbnQgaGluaWMzX3NldF9jbWRxX2N0eHQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsIHU4IGNtZHFfaWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzk0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzk5LVx0Y21kcV9pbml0X3F1ZXVlX2N0eHQoaHdkZXYsIGNtZHFfaWQsIFx1MDAyNmNtZHFfY3R4dC5jdHh0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4MDA6XHRjbWRxX2N0eHQuZnVuY19pZCA9IGhpbmljM19nbG9iYWxfZnVuY19pZChod2Rldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODAxLVx0Y21kcV9jdHh0LmNtZHFfaWQgPSBjbWRxX2lkO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04MDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODA2Olx0ZXJyID0gaGluaWMzX3NlbmRfbWJveF90b19tZ210KGh3ZGV2LCBNR01UX01PRF9DT01NLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgwNy1cdFx0XHRcdCAgICAgICBDT01NX0NNRF9TRVRfQ01EUV9DVFhULCBcdTAwMjZtc2dfcGFyYW1zKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjgxNzpzdGF0aWMgaW50IGhpbmljM19zZXRfY21kcV9jdHh0cyhzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04MTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjgxOTpcdHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzID0gaHdkZXYtXHUwMDNlY21kcXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODIwLVx0dTggY21kcV90eXBlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04MjMtXHRmb3IgKGNtZHFfdHlwZSA9IDA7IGNtZHFfdHlwZSBcdTAwM2MgY21kcXMtXHUwMDNlY21kcV9udW07IGNtZHFfdHlwZSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4MjQ6XHRcdGVyciA9IGhpbmljM19zZXRfY21kcV9jdHh0KGh3ZGV2LCBjbWRxX3R5cGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgyNS1cdFx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjgzNTpzdGF0aWMgaW50IGNyZWF0ZV9jbWRxX3dxKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjgzNjpcdFx0XHQgIHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgzNy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg0MS1cdGZvciAoY21kcV90eXBlID0gMDsgY21kcV90eXBlIFx1MDAzYyBjbWRxcy1cdTAwM2VjbWRxX251bTsgY21kcV90eXBlJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjg0MjpcdFx0ZXJyID0gaGluaWMzX3dxX2NyZWF0ZShod2RldiwgXHUwMDI2Y21kcXMtXHUwMDNlY21kcVtjbWRxX3R5cGVdLndxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg0My1cdFx0XHRcdCAgICAgICBDTURRX0RFUFRILCBDTURRX1dRRUJCX1NJWkUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04NTItXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4NTM6XHRpZiAoIWhpbmljM193cV9pc18wX2xldmVsX2NsYShcdTAwMjZjbWRxcy1cdTAwM2VjbWRxW0hJTklDM19DTURRX1NZTkNdLndxKSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg1NC1cdFx0aWYgKGNtZHFzLVx1MDAzZWNtZHFbSElOSUMzX0NNRFFfU1lOQ10ud3EucXBhZ2VzLm51bV9wYWdlcyBcdTAwM2Vcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODgzLVx0XHRjbWRxX3R5cGUtLTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4ODQ6XHRcdGhpbmljM193cV9kZXN0cm95KGh3ZGV2LCBcdTAwMjZjbWRxcy1cdTAwM2VjbWRxW2NtZHFfdHlwZV0ud3EpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg4NS1cdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODg5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjg5MDpzdGF0aWMgdm9pZCBkZXN0cm95X2NtZHFfd3Eoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODkxOlx0XHRcdCAgICBzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04OTIte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04OTktXHRmb3IgKGNtZHFfdHlwZSA9IDA7IGNtZHFfdHlwZSBcdTAwM2MgY21kcXMtXHUwMDNlY21kcV9udW07IGNtZHFfdHlwZSYjNDM7JiM0MzspXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTAwOlx0XHRoaW5pYzNfd3FfZGVzdHJveShod2RldiwgXHUwMDI2Y21kcXMtXHUwMDNlY21kcVtjbWRxX3R5cGVdLndxKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05MDEtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTkwMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5MDM6c3RhdGljIGludCBpbml0X2NtZHFzKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTkwNC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTA1Olx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTA2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05MTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTE1Olx0Y21kcXMtXHUwMDNlY21kX2J1Zl9wb29sID0gZG1hX3Bvb2xfY3JlYXRlKFwmIzM0O2hpbmljM19jbWRxXCYjMzQ7LCBod2Rldi1cdTAwM2VkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTE2LVx0XHRcdFx0XHQgICAgICBDTURRX0JVRl9TSVpFLCBDTURRX0JVRl9TSVpFLCAwKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTI1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjkyNjpzdGF0aWMgdm9pZCBjbWRxX2ZsdXNoX3N5bmNfY21kKHN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyAqY21kX2luZm8pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTI3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTQ2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk0NzpzdGF0aWMgdm9pZCBoaW5pYzNfY21kcV9mbHVzaF9jbWQoc3RydWN0IGhpbmljM19jbWRxICpjbWRxKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk0OC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTQ5Olx0c3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpjbWRfaW5mbztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NTAtXHR1MTYgY2k7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk1My1cdHdoaWxlIChjbWRxX3JlYWRfd3FlKFx1MDAyNmNtZHEtXHUwMDNld3EsIFx1MDAyNmNpKSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk1NDpcdFx0aGluaWMzX3dxX3B1dF93cWViYnMoXHUwMDI2Y21kcS1cdTAwM2V3cSwgQ01EUV9XUUVfTlVNX1dRRUJCUyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTU1LVx0XHRjbWRfaW5mbyA9IFx1MDAyNmNtZHEtXHUwMDNlY21kX2luZm9zW2NpXTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTYyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk2Mzp2b2lkIGhpbmljM19jbWRxX2ZsdXNoX3N5bmNfY21kKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk2NC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTY1Olx0c3RydWN0IGhpbmljM19jbWRxICpjbWRxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk2Ni1cdHUxNiB3cWVfY250LCB3cWVfaWR4LCBpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk2NzpcdHN0cnVjdCBoaW5pYzNfd3EgKndxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk2OC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTcxLVx0d3EgPSBcdTAwMjZjbWRxLVx1MDAzZXdxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk3MjpcdHdxZV9jbnQgPSBoaW5pYzNfd3FfZ2V0X3VzZWQod3EpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk3My1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIHdxZV9jbnQ7IGkmIzQzOyYjNDM7KSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk3OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5ODA6c3RhdGljIHZvaWQgaGluaWMzX2NtZHFfcmVzZXRfYWxsX2NtZF9idWYoc3RydWN0IGhpbmljM19jbWRxICpjbWRxKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk4MS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk4Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5ODg6aW50IGhpbmljM19yZWluaXRfY21kcV9jdHh0cyhzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05ODkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk5MDpcdHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzID0gaHdkZXYtXHUwMDNlY21kcXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTkxLVx0dTggY21kcV90eXBlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05OTMtXHRmb3IgKGNtZHFfdHlwZSA9IDA7IGNtZHFfdHlwZSBcdTAwM2MgY21kcXMtXHUwMDNlY21kcV9udW07IGNtZHFfdHlwZSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5OTQ6XHRcdGhpbmljM19jbWRxX2ZsdXNoX2NtZChcdTAwMjZjbWRxcy1cdTAwM2VjbWRxW2NtZHFfdHlwZV0pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk5NTpcdFx0aGluaWMzX2NtZHFfcmVzZXRfYWxsX2NtZF9idWYoXHUwMDI2Y21kcXMtXHUwMDNlY21kcVtjbWRxX3R5cGVdKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05OTYtXHRcdGNtZHFzLVx1MDAzZWNtZHFbY21kcV90eXBlXS53cmFwcGVkID0gMTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5OTc6XHRcdGhpbmljM193cV9yZXNldChcdTAwMjZjbWRxcy1cdTAwM2VjbWRxW2NtZHFfdHlwZV0ud3EpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk5OC1cdH1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05OTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTAwMDpcdHJldHVybiBoaW5pYzNfc2V0X2NtZHFfY3R4dHMoaHdkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwMDEtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwMDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTAwMzppbnQgaGluaWMzX2NtZHFzX2luaXQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTAwNC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTAwNTpcdHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwMDYtXHR2b2lkIF9faW9tZW0gKmRiX2Jhc2U7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwMTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTAxOTpcdGVyciA9IGhpbmljM19hbGxvY19kYl9hZGRyKGh3ZGV2LCBcdTAwMjZkYl9iYXNlLCBOVUxMKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDIwLVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDM1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwMzY6XHRlcnIgPSBoaW5pYzNfc2V0X2NtZHFfY3R4dHMoaHdkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwMzctXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDQ3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwNDg6XHRoaW5pYzNfZnJlZV9kYl9hZGRyKGh3ZGV2LCBjbWRxcy1cdTAwM2VjbWRxc19kYl9iYXNlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDQ5LWVycl9kZXN0cm95X2NtZHFfd3E6XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTA1ODp2b2lkIGhpbmljM19jbWRxc19mcmVlKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNTkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwNjA6XHRzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcyA9IGh3ZGV2LVx1MDAzZWNtZHFzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNjEtXHR1OCBjbWRxX3R5cGU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNjUtXHRmb3IgKGNtZHFfdHlwZSA9IDA7IGNtZHFfdHlwZSBcdTAwM2MgY21kcXMtXHUwMDNlY21kcV9udW07IGNtZHFfdHlwZSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDY2Olx0XHRoaW5pYzNfY21kcV9mbHVzaF9jbWQoXHUwMDI2Y21kcXMtXHUwMDNlY21kcVtjbWRxX3R5cGVdKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDY3Olx0XHRoaW5pYzNfY21kcV9yZXNldF9hbGxfY21kX2J1ZihcdTAwMjZjbWRxcy1cdTAwM2VjbWRxW2NtZHFfdHlwZV0pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNjgtXHRcdGtmcmVlKGNtZHFzLVx1MDAzZWNtZHFbY21kcV90eXBlXS5jbWRfaW5mb3MpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDcwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwNzE6XHRoaW5pYzNfZnJlZV9kYl9hZGRyKGh3ZGV2LCBjbWRxcy1cdTAwM2VjbWRxc19kYl9iYXNlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDcyLVx0ZGVzdHJveV9jbWRxX3dxKGh3ZGV2LCBjbWRxcyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTA3Nzpib29sIGhpbmljM19jbWRxX2lkbGUoc3RydWN0IGhpbmljM19jbWRxICpjbWRxKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNzgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwNzk6XHRyZXR1cm4gaGluaWMzX3dxX2dldF91c2VkKFx1MDAyNmNtZHEtXHUwMDNld3EpID09IDA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTA4MC19XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6OTojaW5jbHVkZSBcJiMzNDtoaW5pYzNfaHdfaW50Zi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTA6I2luY2x1ZGUgXCYjMzQ7aGluaWMzX3dxLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg9MjU9c3RydWN0IGNtZHFfbGNtZF9idWZkZXNjIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoyNjpcdHN0cnVjdCBoaW5pYzNfc2dlIHNnZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0yNy1cdF9fbGU2NCAgICAgICAgICAgIHJzdmQyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaD00ND1zdHJ1Y3QgY21kcV9jb21wbGV0aW9uIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC00NS1cdHVuaW9uIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDo0NjpcdFx0c3RydWN0IGhpbmljM19zZ2UgICAgICAgc2dlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTQ3LVx0XHRzdHJ1Y3QgY21kcV9kaXJlY3RfcmVzcCBkaXJlY3Q7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oPTc1PXN0YXRpY19hc3NlcnQoc2l6ZW9mKHN0cnVjdCBjbWRxX3dxZSkgPT0gNjQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTc2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjc3OmVudW0gaGluaWMzX2NtZHFfdHlwZSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtNzgtXHRISU5JQzNfQ01EUV9TWU5DICAgICAgPSAwLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC04MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDo4MjplbnVtIGhpbmljM19jbWRxX3N0YXR1cyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtODMtXHRISU5JQzNfQ01EUV9FTkFCTEUgPSBCSVQoMCksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjg2OmVudW0gaGluaWMzX2NtZHFfY21kX3R5cGUge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTg3LVx0SElOSUMzX0NNRF9UWVBFX05PTkUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTk1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjk2OnN0cnVjdCBoaW5pYzNfY21kX2J1ZiB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtOTctXHR2b2lkICAgICAgICpidWY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTEwMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMDM6c3RydWN0IGhpbmljM19jbWRfYnVmX3BhaXIge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEwNDpcdHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqaW47XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTA1Olx0c3RydWN0IGhpbmljM19jbWRfYnVmICpvdXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTA2LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTA3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEwODpzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEwOTpcdGVudW0gaGluaWMzX2NtZHFfY21kX3R5cGUgY21kX3R5cGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTEwLVx0c3RydWN0IGNvbXBsZXRpb24gICAgICAgICAqZG9uZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTE1LVx0dTY0ICAgICAgICAgICAgICAgICAgICAgICBjbWRxX21zZ19pZDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMTY6XHRzdHJ1Y3QgaGluaWMzX2NtZF9idWYgICAgICpidWZfaW47XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTE3Olx0c3RydWN0IGhpbmljM19jbWRfYnVmICAgICAqYnVmX291dDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMTgtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTIwOnN0cnVjdCBoaW5pYzNfY21kcSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTIxOlx0c3RydWN0IGhpbmljM193cSAgICAgICAgICAgIHdxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEyMjpcdGVudW0gaGluaWMzX2NtZHFfdHlwZSAgICAgICBjbWRxX3R5cGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTIzLVx0dTggICAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBwZWQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTEyNS1cdHNwaW5sb2NrX3QgICAgICAgICAgICAgICAgICBjbWRxX2xvY2s7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTI2Olx0c3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpjbWRfaW5mb3M7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTI3Olx0c3RydWN0IGhpbmljM19od2RldiAgICAgICAgICpod2RldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMjgtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTMwOnN0cnVjdCBoaW5pYzNfY21kcXMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEzMTpcdHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEzMjpcdHN0cnVjdCBoaW5pYzNfY21kcSAgY21kcVtISU5JQzNfTUFYX0NNRFFfVFlQRVNdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTEzMy1cdHN0cnVjdCBkbWFfcG9vbCAgICAgKmNtZF9idWZfcG9vbDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTQ4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE0OTppbnQgaGluaWMzX2NtZHFzX2luaXQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE1MDp2b2lkIGhpbmljM19jbWRxc19mcmVlKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xNTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTUyOnN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqaGluaWMzX2FsbG9jX2NtZF9idWYoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE1Mzp2b2lkIGhpbmljM19mcmVlX2NtZF9idWYoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTU0Olx0XHRcdCBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmNtZF9idWYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE1NTp2b2lkIGhpbmljM19jbWRxX2NlcV9oYW5kbGVyKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LCBfX2xlMzIgY2VxZV9kYXRhKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xNTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTU3OmludCBoaW5pYzNfY21kX2J1Zl9wYWlyX2luaXQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTU4Olx0XHRcdCAgICAgc3RydWN0IGhpbmljM19jbWRfYnVmX3BhaXIgKnBhaXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE1OTp2b2lkIGhpbmljM19jbWRfYnVmX3BhaXJfdW5pbml0KHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2MDpcdFx0XHRcdHN0cnVjdCBoaW5pYzNfY21kX2J1Zl9wYWlyICpwYWlyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNjE6aW50IGhpbmljM19jbWRxX2RpcmVjdF9yZXNwKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LCB1OCBtb2QsIHU4IGNtZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNjI6XHRcdFx0ICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX2luLCBfX2xlNjQgKm91dF9wYXJhbSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTYzOmludCBoaW5pYzNfY21kcV9kZXRhaWxfcmVzcChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldiwgdTggbW9kLCB1OCBjbWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTY0Olx0XHRcdCAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9pbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNjU6XHRcdFx0ICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX291dCwgX19sZTY0ICpvdXRfcGFyYW0pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTE2Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNjc6dm9pZCBoaW5pYzNfY21kcV9mbHVzaF9zeW5jX2NtZChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2Rldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTY4OmludCBoaW5pYzNfcmVpbml0X2NtZHFfY3R4dHMoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2OTpib29sIGhpbmljM19jbWRxX2lkbGUoc3RydWN0IGhpbmljM19jbWRxICpjbWRxKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xNzAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmMtNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NvbW1vbi5jOjg6I2luY2x1ZGUgXCYjMzQ7aGluaWMzX2NvbW1vbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYy05LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmM6MTA6aW50IGhpbmljM19kbWFfemFsbG9jX2NvaGVyZW50X2FsaWduKHN0cnVjdCBkZXZpY2UgKmRldiwgdTMyIHNpemUsIHUzMiBhbGlnbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NvbW1vbi5jLTExLVx0XHRcdFx0ICAgICBnZnBfdCBmbGFnLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmM6MTI6XHRcdFx0XHQgICAgIHN0cnVjdCBoaW5pYzNfZG1hX2FkZHJfYWxpZ24gKm1lbV9hbGlnbilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NvbW1vbi5jLTEzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYy00OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NvbW1vbi5jOjQ5OnZvaWQgaGluaWMzX2RtYV9mcmVlX2NvaGVyZW50X2FsaWduKHN0cnVjdCBkZXZpY2UgKmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NvbW1vbi5jOjUwOlx0XHRcdFx0ICAgIHN0cnVjdCBoaW5pYzNfZG1hX2FkZHJfYWxpZ24gKm1lbV9hbGlnbilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NvbW1vbi5jLTUxLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYy01NS1cblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDEyOjAxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5OTQ3CgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogNjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBOZXR3b3JrIERyaXZlcioqCgpPa2F5LCBzbyB0aGUgZHJpdmVyIGluIHF1ZXN0aW9uIGlzIGxvY2F0ZWQgYXQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsICYjMzQ7SG1tLCBpcyB0aGlzIGEgUENJZSBkcml2ZXIsIEkgd29uZGVyPyYjMzQ7IEdpdmVuIHRoZSBsb2NhdGlvbiwgdGhhdCYjMzk7cyBhIHJlYXNvbmFibGUgYXNzdW1wdGlvbiwgYnV0IEkgbmVlZCB0byBjb25maXJtLiBJJiMzOTtsbCBuZWVkIHRvIGRpZyBpbnRvIHRoZSBjb2RlIHRvIGJlIHN1cmUuIE15IG5leHQgc3RlcCB3aWxsIGJlIHRvIGV4YW1pbmUgdGhlIHNvdXJjZSBmaWxlcyBmb3IgdGhhdCBkcml2ZXIsIHNwZWNpZmljYWxseSBmb2N1c2luZyBvbiBgaGluaWMzX21haW4uY2AgYW5kIGBoaW5pYzNfaHdkZXYuY2AuIFRob3NlIGZpbGVzIHNob3VsZCBwcm92aWRlIGNsZWFyIGNsdWVzIGFib3V0IHRoZSBoYXJkd2FyZSBpdCYjMzk7cyBpbnRlcmZhY2luZyB3aXRoLCBjb25maXJtaW5nIGlmIGl0JiMzOTtzIGluZGVlZCBhIFBDSSBkZXZpY2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTI6MDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGNpX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2xsZC5jPTQzNj1zdGF0aWMgdm9pZCBoaW5pYzNfc2h1dGRvd24oc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfbGxkLmMtNDQ1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfbGxkLmM6NDQ2OnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBoaW5pYzNfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfbGxkLmMtNDQ3LVx0Lm5hbWUgICAgICAgICAgICA9IEhJTklDM19OSUNfRFJWX05BTUUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTI6MDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAzNTgKCQkJCQkJCW91dHB1dDogNzkKCQkJCQkJCXRob3VnaHRzOiA1MjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nIERlY2lzaW9uIGZvciBoaW5pYzMgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCYjMzk7cyBoaXR0aW5nIHRoZSBgaGluaWMzX2RyaXZlcmAuIFJpZ2h0IGF3YXksIHRoZSBwcm9tcHQganVtcHMgb3V0IGF0IG1lOiAmIzM0O1JldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6IC0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycy4uLiB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4mIzM0OwoKTGV0JiMzOTtzIHRoaW5rLiBJcyBgaGluaWMzYCBhIHZlbmRvci1zcGVjaWZpYyBTbWFydE5JQyBvciBOSUMgZHJpdmVyIHRoYXQgZGVtYW5kcyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiB0aGUgdXN1YWwgUUVNVSBzZXR1cHM/IFllcywgYGhpbmljM2Ag4oCTIEh1YXdlaSBJbnRlbGxpZ2VudCBOSUMg4oCTIGlzIGRlZmluaXRlbHkgdmVuZG9yLXNwZWNpZmljIGFuZCBoYXJkd2FyZS1kZXBlbmRlbnQuIEkmIzM5O2xsIHF1aWNrbHkgY2hlY2sgZm9yIGFueSBRRU1VIGVtdWxhdGlvbi4gVXN1YWxseSwgeW91JiMzOTtkIHNlZSB0aGluZ3MgbGlrZSBlMTAwMCwgdmlydGlvLW5ldCwgZXRjLiwgYnV0IG5vdGhpbmcgZm9yIGBoaW5pYzNgLiBOb3BlLCBubyBlbXVsYXRpb24uCgpTbywgaXQmIzM5O3MgY2xlYXI6IGBoaW5pYzNgIGZpdHMgc3F1YXJlbHkgaW50byB0aGF0IGNhdGVnb3J5IHNwZWNpZmllZCBpbiB0aGUgcHJvbXB0LiBJdCYjMzk7cyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIE5JQyBkcml2ZXIsIGFuZCBpdCYjMzk7cyBnb2luZyB0byBiZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdvb2dsZSBDb21wdXRlIEVuZ2luZSBvciBRRU1VLiBJdCYjMzk7cyBmdW5kYW1lbnRhbGx5IHRpZWQgdG8gdGhlIGhhcmR3YXJlLgoKVGhlcmVmb3JlLCB0aGUgZGVjaXNpb24mIzM5O3MgY2xlYXI6IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJIG5lZWQgdG8gY29uZmlybSB0aGUgc3BlY2lmaWMgZmlsZXMgbW9kaWZpZWQgYnkgdGhlIHBhdGNoLiBPaCwgaXQgbW9kaWZpZXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmNgLiBZZXMsIHRoYXQgY29uZmlybXMgaXQg4oCTIGV4YWN0bHkgdGhhdCB2ZW5kb3Itc3BlY2lmaWMgUENJZSBOSUMgZHJpdmVyLiBUaGVyZWZvcmUsIGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKVGhlIHJlYXNvbmluZyBpcyB0aGF0IHRoZSBwYXRjaCBpbXBhY3RzIHRoZSBIdWF3ZWkgSW50ZWxsaWdlbnQgTklDIChgaGluaWMzYCkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlci4gVGhpcyBoYXJkd2FyZSBpc24mIzM5O3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UsIG1ha2luZyB0aGUgY29kZSBpbmFjY2Vzc2libGUgZm9yIGZ1enppbmcuIFRodXMsIGl0IGlzIG5vdCB3b3J0aCBmdXp6aW5nLiBJIGp1c3Qgd2FudCB0byBkb3VibGUtY2hlY2sgdGhlcmUgYXJlbiYjMzk7dCBhbnkgb3RoZXIgY2hhbmdlcy4gTm9wZSwgb25seSB0aGF0IGZpbGUuIENvbmNsdXNpb246IHNhZmUgdG8gc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDEyOjAxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEh1YXdlaSBJbnRlbGxpZ2VudCBOSUMgKGhpbmljMykgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGRyaXZlci4gVGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIGNvZGUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgSHVhd2VpIEludGVsbGlnZW50IE5JQyAoaGluaWMzKSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUgZHJpdmVyLiBUaGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudHMsIG1ha2luZyB0aGUgY29kZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTI6MDE8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDEyOjAxOjM2LjIyMTk0OTIwN1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4NTc5ODgxMTY3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEh1YXdlaSBJbnRlbGxpZ2VudCBOSUMgKGhpbmljMykgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGRyaXZlci4gVGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIGNvZGUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxMjowMTozNi4yMjE5NTQ2NDdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQwNTYyNDgxNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDZkOTI0ZjA2NWExMjM0NjgzZjQ4ZmFhNzAwYzA5NDUxOWI4N2M2ZmJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBBdWcgMTEgMTI6MDE6MzUgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmNcXG5pbmRleCA5MzA2YmYwMDIwY2FmLi5jYzU0MWU3YTIzMTg2IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jXFxuQEAgLTI2MSw4ICsyNjEsNyBAQCBzdGF0aWMgaW50IGhpbmljM190eF9jc3VtKHN0cnVjdCBoaW5pYzNfdHhxICp0eHEsIHN0cnVjdCBoaW5pYzNfc3FfdGFzayAqdGFzayxcXG4gXFx0XFx0ICAgICgoc3RydWN0IHVkcGhkciAqKXNrYl90cmFuc3BvcnRfaGVhZGVyKHNrYikpLVxcdTAwM2VkZXN0ICE9XFxuIFxcdFxcdCAgICBWWExBTl9PRkZMT0FEX1BPUlRfTEUpIHtcXG4gXFx0XFx0XFx0LyogVW5zdXBwb3J0ZWQgdHVubmVsIHBhY2tldCwgZGlzYWJsZSBjc3VtIG9mZmxvYWQgKi9cXG4tXFx0XFx0XFx0c2tiX2NoZWNrc3VtX2hlbHAoc2tiKTtcXG4tXFx0XFx0XFx0cmV0dXJuIDA7XFxuK1xcdFxcdFxcdHJldHVybiBza2JfY2hlY2tzdW1faGVscChza2IpO1xcbiBcXHRcXHR9XFxuIFxcdH1cXG4gXFxuQEAgLTQxMiw2ICs0MTEsMTAgQEAgc3RhdGljIHUzMiBoaW5pYzNfdHhfb2ZmbG9hZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgaGluaWMzX3NxX3Rhc2sgKnRhc2ssXFxuIFxcdFxcdG9mZmxvYWQgfD0gSElOSUMzX1RYX09GRkxPQURfVFNPO1xcbiBcXHR9IGVsc2Uge1xcbiBcXHRcXHR0c29fY3NfZW4gPSBoaW5pYzNfdHhfY3N1bSh0eHEsIHRhc2ssIHNrYik7XFxuK1xcdFxcdGlmICh0c29fY3NfZW4gXFx1MDAzYyAwKSB7XFxuK1xcdFxcdFxcdG9mZmxvYWQgPSBISU5JQzNfVFhfT0ZGTE9BRF9JTlZBTElEO1xcbitcXHRcXHRcXHRyZXR1cm4gb2ZmbG9hZDtcXG4rXFx0XFx0fVxcbiBcXHRcXHRpZiAodHNvX2NzX2VuKVxcbiBcXHRcXHRcXHRvZmZsb2FkIHw9IEhJTklDM19UWF9PRkZMT0FEX0NTVU07XFxuIFxcdH1cXG5AQCAtNTQ1LDYgKzU0OCw3IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBoaW5pYzNfc2VuZF9vbmVfc2tiKHN0cnVjdCBza19idWZmICpza2IsXFxuIFxcdFxcdHNrYi1cXHUwMDNlbGVuID0gTUlOX1NLQl9MRU47XFxuIFxcdH1cXG4gXFxuK1xcdG9mZmxvYWQgPSBoaW5pYzNfdHhfb2ZmbG9hZChza2IsIFxcdTAwMjZ0YXNrLCBcXHUwMDI2cXVldWVfaW5mbywgdHhxKTtcXG4gXFx0bnVtX3NnZSA9IHNrYl9zaGluZm8oc2tiKS1cXHUwMDNlbnJfZnJhZ3MgKyAxO1xcbiBcXHQvKiBhc3N1bWUgbm9ybWFsIHdxZSBmb3JtYXQgKyAxIHdxZWJiIGZvciB0YXNrIGluZm8gKi9cXG4gXFx0d3FlYmJfY250ID0gbnVtX3NnZSArIDE7XFxuQEAgLTU2MCw3ICs1NjQsNiBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaGluaWMzX3NlbmRfb25lX3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbiBcXHRcXHRyZXR1cm4gTkVUREVWX1RYX0JVU1k7XFxuIFxcdH1cXG4gXFxuLVxcdG9mZmxvYWQgPSBoaW5pYzNfdHhfb2ZmbG9hZChza2IsIFxcdTAwMjZ0YXNrLCBcXHUwMDI2cXVldWVfaW5mbywgdHhxKTtcXG4gXFx0aWYgKHVubGlrZWx5KG9mZmxvYWQgPT0gSElOSUMzX1RYX09GRkxPQURfSU5WQUxJRCkpIHtcXG4gXFx0XFx0Z290byBlcnJfZHJvcF9wa3Q7XFxuIFxcdH0gZWxzZSBpZiAoIW9mZmxvYWQpIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMTI6MDE6MzYuNjI4MzY1MjU0WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MTgxNzM0NTEzNDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBIdWF3ZWkgSW50ZWxsaWdlbnQgTklDIChoaW5pYzMpIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBoYXJkd2FyZSBkcml2ZXIuIFRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cywgbWFraW5nIHRoZSBjb2RlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNmQ5MjRmMDY1YTEyMzQ2ODNmNDhmYWE3MDBjMDk0NTE5Yjg3YzZmYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgQXVnIDExIDEyOjAxOjM1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmNcbmluZGV4IDkzMDZiZjAwMjBjYWYuLmNjNTQxZTdhMjMxODYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jXG5AQCAtMjYxLDggKzI2MSw3IEBAIHN0YXRpYyBpbnQgaGluaWMzX3R4X2NzdW0oc3RydWN0IGhpbmljM190eHEgKnR4cSwgc3RydWN0IGhpbmljM19zcV90YXNrICp0YXNrLFxuIFx0XHQgICAgKChzdHJ1Y3QgdWRwaGRyICopc2tiX3RyYW5zcG9ydF9oZWFkZXIoc2tiKSktXHUwMDNlZGVzdCAhPVxuIFx0XHQgICAgVlhMQU5fT0ZGTE9BRF9QT1JUX0xFKSB7XG4gXHRcdFx0LyogVW5zdXBwb3J0ZWQgdHVubmVsIHBhY2tldCwgZGlzYWJsZSBjc3VtIG9mZmxvYWQgKi9cbi1cdFx0XHRza2JfY2hlY2tzdW1faGVscChza2IpO1xuLVx0XHRcdHJldHVybiAwO1xuK1x0XHRcdHJldHVybiBza2JfY2hlY2tzdW1faGVscChza2IpO1xuIFx0XHR9XG4gXHR9XG4gXG5AQCAtNDEyLDYgKzQxMSwxMCBAQCBzdGF0aWMgdTMyIGhpbmljM190eF9vZmZsb2FkKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBoaW5pYzNfc3FfdGFzayAqdGFzayxcbiBcdFx0b2ZmbG9hZCB8PSBISU5JQzNfVFhfT0ZGTE9BRF9UU087XG4gXHR9IGVsc2Uge1xuIFx0XHR0c29fY3NfZW4gPSBoaW5pYzNfdHhfY3N1bSh0eHEsIHRhc2ssIHNrYik7XG4rXHRcdGlmICh0c29fY3NfZW4gXHUwMDNjIDApIHtcbitcdFx0XHRvZmZsb2FkID0gSElOSUMzX1RYX09GRkxPQURfSU5WQUxJRDtcbitcdFx0XHRyZXR1cm4gb2ZmbG9hZDtcbitcdFx0fVxuIFx0XHRpZiAodHNvX2NzX2VuKVxuIFx0XHRcdG9mZmxvYWQgfD0gSElOSUMzX1RYX09GRkxPQURfQ1NVTTtcbiBcdH1cbkBAIC01NDUsNiArNTQ4LDcgQEAgc3RhdGljIG5ldGRldl90eF90IGhpbmljM19zZW5kX29uZV9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcdFx0c2tiLVx1MDAzZWxlbiA9IE1JTl9TS0JfTEVOO1xuIFx0fVxuIFxuK1x0b2ZmbG9hZCA9IGhpbmljM190eF9vZmZsb2FkKHNrYiwgXHUwMDI2dGFzaywgXHUwMDI2cXVldWVfaW5mbywgdHhxKTtcbiBcdG51bV9zZ2UgPSBza2Jfc2hpbmZvKHNrYiktXHUwMDNlbnJfZnJhZ3MgKyAxO1xuIFx0LyogYXNzdW1lIG5vcm1hbCB3cWUgZm9ybWF0ICsgMSB3cWViYiBmb3IgdGFzayBpbmZvICovXG4gXHR3cWViYl9jbnQgPSBudW1fc2dlICsgMTtcbkBAIC01NjAsNyArNTY0LDYgQEAgc3RhdGljIG5ldGRldl90eF90IGhpbmljM19zZW5kX29uZV9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcdFx0cmV0dXJuIE5FVERFVl9UWF9CVVNZO1xuIFx0fVxuIFxuLVx0b2ZmbG9hZCA9IGhpbmljM190eF9vZmZsb2FkKHNrYiwgXHUwMDI2dGFzaywgXHUwMDI2cXVldWVfaW5mbywgdHhxKTtcbiBcdGlmICh1bmxpa2VseShvZmZsb2FkID09IEhJTklDM19UWF9PRkZMT0FEX0lOVkFMSUQpKSB7XG4gXHRcdGdvdG8gZXJyX2Ryb3BfcGt0O1xuIFx0fSBlbHNlIGlmICghb2ZmbG9hZCkge1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMTI6MDE6MzYuNjI4MzY2NTU0WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTQ4ODcyNDgzNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBIdWF3ZWkgTklDIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGFyZ2V0aW5nIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jYC4gTXkgaW5pdGlhbCByZWFkIGlzIHRoYXQgdGhleSdyZSBmdW5kYW1lbnRhbGx5IGNoYW5naW5nIGhvdyBjaGVja3N1bSBvZmZsb2FkIGlzIGhhbmRsZWQuIFNwZWNpZmljYWxseSwgYGhpbmljM190eF9jc3VtYCBpcyBub3cgcmV0dXJuaW5nIHRoZSByZXN1bHQgb2YgYHNrYl9jaGVja3N1bV9oZWxwKHNrYilgIGluc3RlYWQgb2Ygc2ltcGx5IDAuIFRoYXQncyBhIGtleSBzaGlmdCwgYmVjYXVzZSB3ZSdyZSBubyBsb25nZXIgdW5jb25kaXRpb25hbGx5IGNsYWltaW5nIHN1Y2Nlc3MuIFdlIGFyZSBhY3R1YWxseSAqdXNpbmcqIHRoZSByZXN1bHQgb2YgdGhlIGBza2JfY2hlY2tzdW1faGVscGAgZnVuY3Rpb24hIFRoYXQgbWFrZXMgdG90YWwgc2Vuc2U7IHdlIG5lZWQgdG8gcHJvcGFnYXRlIHBvdGVudGlhbCBlcnJvcnMuXG5cblRoZSBuZXh0IHRoaW5nIEkgc2VlIGlzIGEgY29uZGl0aW9uYWwgY2hlY2sgb24gdGhlIHJldHVybiB2YWx1ZSBvZiBgaGluaWMzX3R4X2NzdW1gIHdpdGhpbiBgaGluaWMzX3R4X29mZmxvYWRgLiBJZiBpdCdzIG5lZ2F0aXZlLCB3ZSdyZSBub3cgcmV0dXJuaW5nIGBISU5JQzNfVFhfT0ZGTE9BRF9JTlZBTElEYC4gQWdhaW4sIHNlbnNpYmxlLiBFcnJvciBwcm9wYWdhdGlvbiBpcyBjcml0aWNhbC4gQSBuZWdhdGl2ZSByZXR1cm4gZnJvbSB0aGUgY2hlY2tzdW0gaGVscGVyIGluZGljYXRlcyBzb21ldGhpbmcgd2VudCB3cm9uZywgYW5kIHdlIG5lZWQgdG8gc2lnbmFsIHRoYXQgdG8gdGhlIGhpZ2hlci1sZXZlbCB0cmFuc21pc3Npb24gZnVuY3Rpb24uIEdvb2QuXG5cblRoZSBwYXRjaCBhbHNvIG1vdmVzIHRoZSBjYWxsIHRvIGBoaW5pYzNfdHhfb2ZmbG9hZGAgKmVhcmxpZXIqIGluIGBoaW5pYzNfc2VuZF9vbmVfc2tiYCwgYmVmb3JlIGBudW1fc2dlYCBhbmQgYHdxZWJiX2NudGAgYXJlIGNhbGN1bGF0ZWQuIFRoYXQncyBpbnRlcmVzdGluZy4gSSBiZXQgdGhpcyBpcyB0byBhdm9pZCB1bm5lY2Vzc2FyeSB3b3JrIGlmIHRoZSBvZmZsb2FkIGF0dGVtcHQgZmFpbHMuIENhbGN1bGF0aW5nIHRoZSBzY2F0dGVyLWdhdGhlciBlbGVtZW50cyBhbmQgd29yayBxdWV1ZSBlbnRyeSBidWZmZXIgY291bnQgd291bGQgYmUgd2FzdGVkIGVmZm9ydCBpZiB0aGUgY2hlY2tzdW0gb2ZmbG9hZCBmYWlscywgc28gbW92aW5nIHRoZSBjaGVjayB1cCBmcm9udCBtYWtlcyBzZW5zZSBmb3IgZWZmaWNpZW5jeS5cblxuTm93LCBhIGJyaWVmIHBhdXNlLiBgaGluaWMzYC4gUmlnaHQuIEh1YXdlaSBJbnRlbGxpZ2VudCBOSUMgZHJpdmVyLiBJIGtub3cgdGhhdCBuYW1lLiBJJ20gd29uZGVyaW5nLCBpcyB0aGlzIGEgcGh5c2ljYWwgaGFyZHdhcmUgZHJpdmVyLCBvciBkb2VzIGl0IGFsc28gc3VwcG9ydCB2aXJ0dWFsaXphdGlvbj8gTGV0J3MgYXNzdW1lIGl0J3MgcGh5c2ljYWwuIElzIGl0IGxpa2VseSB0byBiZSByZWFjaGFibGUgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gTGlrZWx5LCBidXQgSSBuZWVkIHRvIGNvbmZpcm0gdGhlIHVuZGVybHlpbmcgZGV2aWNlLiBJJ2xsIGNoZWNrIGlmIGl0J3MgYSBQQ0kgZHJpdmVyIHRvIGNvbmZpcm0sIHNpbmNlIHRoYXQncyB0aGUgbW9zdCBjb21tb24gY2FzZSBpbiB0aGVzZSBzY2VuYXJpb3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1MjAsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTIsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxMjowMTo0Mi4xMTcwOTM1NDlaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTE2MDQ4OTUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaGluaWMzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNjQ4OSBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9LY29uZmlnPTY9Y29uZmlnIEhJTklDM1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9LY29uZmlnLTIwLVxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL0tjb25maWc6MjE6XFx0ICBUaGUgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGhpbmljMy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGUtMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjQ6b2JqLSQoQ09ORklHX0hJTklDMykgKz0gaGluaWMzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZTo2OmhpbmljMy1vYmpzIDo9IGhpbmljM19jbWRxLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6NzpcXHQgICAgICAgaGluaWMzX2NvbW1vbi5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjg6XFx0ICAgICAgIGhpbmljM19lcXMubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZTo5OlxcdCAgICAgICBoaW5pYzNfZXRodG9vbC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjEwOlxcdCAgICAgICBoaW5pYzNfZmlsdGVyLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTE6XFx0ICAgICAgIGhpbmljM19od19jZmcubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToxMjpcXHQgICAgICAgaGluaWMzX2h3X2NvbW0ubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToxMzpcXHQgICAgICAgaGluaWMzX2h3ZGV2Lm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTQ6XFx0ICAgICAgIGhpbmljM19od2lmLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTU6XFx0ICAgICAgIGhpbmljM19pcnEubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToxNjpcXHQgICAgICAgaGluaWMzX2xsZC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjE3OlxcdCAgICAgICBoaW5pYzNfbWFpbi5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjE4OlxcdCAgICAgICBoaW5pYzNfbWJveC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjE5OlxcdCAgICAgICBoaW5pYzNfbWdtdC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjIwOlxcdCAgICAgICBoaW5pYzNfbmV0ZGV2X29wcy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjIxOlxcdCAgICAgICBoaW5pYzNfbmljX2NmZy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjIyOlxcdCAgICAgICBoaW5pYzNfbmljX2lvLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MjM6XFx0ICAgICAgIGhpbmljM19xdWV1ZV9jb21tb24ubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToyNDpcXHQgICAgICAgaGluaWMzX3Jzcy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjI1OlxcdCAgICAgICBoaW5pYzNfcngubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToyNjpcXHQgICAgICAgaGluaWMzX3R4Lm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6Mjc6XFx0ICAgICAgIGhpbmljM193cS5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODojaW5jbHVkZSBcXFwiaGluaWMzX2NtZHEuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTojaW5jbHVkZSBcXFwiaGluaWMzX2Vxcy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDojaW5jbHVkZSBcXFwiaGluaWMzX2h3ZGV2LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjExOiNpbmNsdWRlIFxcXCJoaW5pYzNfaHdpZi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMjojaW5jbHVkZSBcXFwiaGluaWMzX21ib3guaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM9MTEyPWVudW0gY21kcV9jbWRfdHlwZSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMTk6c3RhdGljIHZvaWQgaGluaWMzX2R1bXBfY21kcV93cWVfaGVhZChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTIwLVxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBjbWRxX3dxZSAqd3FlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEzMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTMzOnN0YXRpYyBzdHJ1Y3QgY21kcV93cWUgKmNtZHFfcmVhZF93cWUoc3RydWN0IGhpbmljM193cSAqd3EsIHUxNiAqY2kpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEzNC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEzNTpcXHRpZiAoaGluaWMzX3dxX2dldF91c2VkKHdxKSA9PSAwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMzYtXFx0XFx0cmV0dXJuIE5VTEw7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTQyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxNDM6c3RydWN0IGhpbmljM19jbWRfYnVmICpoaW5pYzNfYWxsb2NfY21kX2J1ZihzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTQ0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTQ1OlxcdHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqY21kX2J1ZjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTQ2OlxcdHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xNDctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxNzI6dm9pZCBoaW5pYzNfZnJlZV9jbWRfYnVmKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxNzM6XFx0XFx0XFx0IHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqY21kX2J1ZilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTc0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTc1OlxcdHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xNzYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxODY6c3RhdGljIHZvaWQgY21kcV9jbGVhcl9jbWRfYnVmKHN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyAqY21kX2luZm8sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjE4NzpcXHRcXHRcXHQgICAgICAgc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE4OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE4OS1cXHRpZiAoY21kX2luZm8tXFx1MDAzZWJ1Zl9pbikge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxOTA6XFx0XFx0aGluaWMzX2ZyZWVfY21kX2J1Zihod2RldiwgY21kX2luZm8tXFx1MDAzZWJ1Zl9pbik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE5MS1cXHRcXHRjbWRfaW5mby1cXHUwMDNlYnVmX2luID0gTlVMTDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xOTQtXFx0aWYgKGNtZF9pbmZvLVxcdTAwM2VidWZfb3V0KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjE5NTpcXHRcXHRoaW5pYzNfZnJlZV9jbWRfYnVmKGh3ZGV2LCBjbWRfaW5mby1cXHUwMDNlYnVmX291dCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE5Ni1cXHRcXHRjbWRfaW5mby1cXHUwMDNlYnVmX291dCA9IE5VTEw7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTk5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoyMDA6c3RhdGljIHZvaWQgY2xlYXJfd3FlX2NvbXBsZXRlX2JpdChzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIwMS1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgY21kcV93cWUgKndxZSwgdTE2IGNpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIxNy1cXHR3bWIoKTsgLyogdmVyaWZ5IHdxZSBpcyBjbGVhciBiZWZvcmUgdXBkYXRpbmcgY2kgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MjE4OlxcdGhpbmljM193cV9wdXRfd3FlYmJzKFxcdTAwMjZjbWRxLVxcdTAwM2V3cSwgQ01EUV9XUUVfTlVNX1dRRUJCUyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIxOS19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIyMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MjIxOnN0YXRpYyBpbnQgY21kcV9hcm1fY2VxX2hhbmRsZXIoc3RydWN0IGhpbmljM19jbWRxICpjbWRxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yMjItXFx0XFx0XFx0XFx0c3RydWN0IGNtZHFfd3FlICp3cWUsIHUxNiBjaSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yMzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjIzNTpzdGF0aWMgdm9pZCBjbWRxX3VwZGF0ZV9jbWRfc3RhdHVzKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSwgdTE2IHByb2RfaWR4LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yMzYtXFx0XFx0XFx0XFx0ICAgc3RydWN0IGNtZHFfd3FlICp3cWUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIzNy17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjIzODpcXHRzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKmNtZF9pbmZvO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yMzktXFx0c3RydWN0IGNtZHFfd3FlX2xjbWQgKndxZV9sY21kO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTI1Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MjUzOnN0YXRpYyB2b2lkIGNtZHFfc3luY19jbWRfaGFuZGxlcihzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTI1NC1cXHRcXHRcXHRcXHQgIHN0cnVjdCBjbWRxX3dxZSAqd3FlLCB1MTYgY2kpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjc0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoyNzU6dm9pZCBoaW5pYzNfY21kcV9jZXFfaGFuZGxlcihzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldiwgX19sZTMyIGNlcWVfZGF0YSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjc2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Mjc3OlxcdGVudW0gaGluaWMzX2NtZHFfdHlwZSBjbWRxX3R5cGUgPSBDTURRX0NFUUVfR0VUKGNlcWVfZGF0YSwgVFlQRSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjI3ODpcXHRzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcyA9IGh3ZGV2LVxcdTAwM2VjbWRxcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Mjc5OlxcdHN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyAqY21kX2luZm87XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTI4MC1cXHRzdHJ1Y3QgY21kcV93cWVfbGNtZCAqd3FlX2xjbWQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjI4MTpcXHRzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTI4Mi1cXHRzdHJ1Y3QgY21kcV93cWUgKndxZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yOTctXFx0XFx0XFx0XFx0IGNtZHFfdHlwZSwgY2kpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoyOTg6XFx0XFx0XFx0aGluaWMzX2R1bXBfY21kcV93cWVfaGVhZChod2Rldiwgd3FlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjk5LVxcdFxcdFxcdGZhbGx0aHJvdWdoO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTMzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MzM1OnN0YXRpYyBpbnQgY21kcV9wYXJhbXNfdmFsaWQoY29uc3Qgc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjMzNjpcXHRcXHRcXHQgICAgIGNvbnN0IHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX2luKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zMzcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MzQ3OnN0YXRpYyBpbnQgd2FpdF9jbWRxc19lbmFibGUoc3RydWN0IGhpbmljM19jbWRxcyAqY21kcXMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM0OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM9MzY0PXN0YXRpYyB2b2lkIGNtZHFfc2V0X2NvbXBsZXRpb24oc3RydWN0IGNtZHFfY29tcGxldGlvbiAqY29tcGxldGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM2NTpcXHRcXHRcXHRcXHRzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9vdXQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM2Ni17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM2NzpcXHRzdHJ1Y3QgaGluaWMzX3NnZSAqc2dlID0gXFx1MDAyNmNvbXBsZXRlLVxcdTAwM2VyZXNwLnNnZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzY4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzozNjk6XFx0aGluaWMzX3NldF9zZ2Uoc2dlLCBidWZfb3V0LVxcdTAwM2VkbWFfYWRkciwgY3B1X3RvX2xlMzIoQ01EUV9CVUZfU0laRSkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zNzAtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zNzEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM3MjpzdGF0aWMgc3RydWN0IGNtZHFfd3FlICpjbWRxX2dldF93cWUoc3RydWN0IGhpbmljM193cSAqd3EsIHUxNiAqcGkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM3My17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM3NDpcXHRpZiAoIWhpbmljM193cV9mcmVlX3dxZWJicyh3cSkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM3NS1cXHRcXHRyZXR1cm4gTlVMTDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzc2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzozNzc6XFx0cmV0dXJuIGhpbmljM193cV9nZXRfb25lX3dxZWJiKHdxLCBwaSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM3OC19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM9MzgwPXN0YXRpYyB2b2lkIGNtZHFfc2V0X2xjbWRfYnVmZGVzYyhzdHJ1Y3QgY21kcV93cWVfbGNtZCAqd3FlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzozODE6XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9pbilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzgyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MzgzOlxcdGhpbmljM19zZXRfc2dlKFxcdTAwMjZ3cWUtXFx1MDAzZWJ1Zl9kZXNjLnNnZSwgYnVmX2luLVxcdTAwM2VkbWFfYWRkcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzg0LVxcdFxcdCAgICAgICAoX19mb3JjZSBfX2xlMzIpYnVmX2luLVxcdTAwM2VzaXplKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zODYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM4NzpzdGF0aWMgdm9pZCBjbWRxX3NldF9kYihzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM4ODpcXHRcXHRcXHRlbnVtIGhpbmljM19jbWRxX3R5cGUgY21kcV90eXBlLCB1MTYgcHJvZF9pZHgpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM4OS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM9NDU5PXN0YXRpYyB2b2lkIGNtZHFfc2V0X2xjbWRfd3FlKHN0cnVjdCBjbWRxX3dxZSAqd3FlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy00NjAtXFx0XFx0XFx0ICAgICAgZW51bSBjbWRxX2NtZF90eXBlIGNtZF90eXBlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo0NjE6XFx0XFx0XFx0ICAgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjQ2MjpcXHRcXHRcXHQgICAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9vdXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTQ2My1cXHRcXHRcXHQgICAgICB1OCB3cmFwcGVkLCB1OCBtb2QsIHU4IGNtZCwgdTE2IHByb2RfaWR4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTQ4NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NDg1OnN0YXRpYyBpbnQgaGluaWMzX2NtZHFfc3luY190aW1lb3V0X2NoZWNrKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNDg2LVxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IGNtZHFfd3FlICp3cWUsIHUxNiBwaSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01MDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjUwNDpzdGF0aWMgdm9pZCBjbGVhcl9jbWRfaW5mbyhzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKmNtZF9pbmZvLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo1MDU6XFx0XFx0XFx0ICAgY29uc3Qgc3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpzYXZlZF9jbWRfaW5mbylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTA2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01MTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjUxNzpzdGF0aWMgaW50IHdhaXRfY21kcV9zeW5jX2NtZF9jb21wbGV0aW9uKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTE4OlxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKmNtZF9pbmZvLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo1MTk6XFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyAqc2F2ZWRfY21kX2luZm8sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTUyMC1cXHRcXHRcXHRcXHRcXHQgdTY0IGN1cnJfbXNnX2lkLCB1MTYgY3Vycl9wcm9kX2lkeCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NDAtXFx0aWYgKGN1cnJfbXNnX2lkID09IGNtZF9pbmZvLVxcdTAwM2VjbWRxX21zZ19pZCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo1NDE6XFx0XFx0ZXJyID0gaGluaWMzX2NtZHFfc3luY190aW1lb3V0X2NoZWNrKGNtZHEsIGN1cnJfd3FlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NDItXFx0XFx0XFx0XFx0XFx0XFx0ICAgICBjdXJyX3Byb2RfaWR4KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU1NjpcXHRoaW5pYzNfZHVtcF9jZXFfaW5mbyhjbWRxLVxcdTAwM2Vod2Rldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU1Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NjAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU2MTpzdGF0aWMgaW50IGNtZHFfc3luY19jbWRfZXhlYyhzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsIHU4IG1vZCwgdTggY21kLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo1NjI6XFx0XFx0XFx0ICAgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU2MzpcXHRcXHRcXHQgICAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9vdXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU2NC1cXHRcXHRcXHQgICAgICBfX2xlNjQgKm91dF9wYXJhbSwgdTggY21kX3R5cGUsIHU4IHdxZV9jbWQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU2NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU2NjpcXHRzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKmNtZF9pbmZvLCBzYXZlZF9jbWRfaW5mbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTY3LVxcdGludCBjbXB0X2NvZGUgPSBDTURRX1NFTkRfQ01QVF9DT0RFO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NjgtXFx0c3RydWN0IGNtZHFfd3FlICpjdXJyX3dxZSwgd3FlID0ge307XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU2OTpcXHRzdHJ1Y3QgaGluaWMzX3dxICp3cSA9IFxcdTAwMjZjbWRxLVxcdTAwM2V3cTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTcwLVxcdHUxNiBjdXJyX3Byb2RfaWR4LCBuZXh0X3Byb2RfaWR4O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTYzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjM1OnN0YXRpYyBpbnQgY21kcV9zeW5jX2NtZF9kaXJlY3RfcmVzcChzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsIHU4IG1vZCwgdTggY21kLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2MzY6XFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9pbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjM3LVxcdFxcdFxcdFxcdCAgICAgX19sZTY0ICpvdXRfcGFyYW0pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjQzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2NDQ6c3RhdGljIGludCBjbWRxX3N5bmNfY21kX2RldGFpbF9yZXNwKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSwgdTggbW9kLCB1OCBjbWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY0NTpcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX2luLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2NDY6XFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9vdXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY0Ny1cXHRcXHRcXHRcXHQgICAgIF9fbGU2NCAqb3V0X3BhcmFtKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY1My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjU0OmludCBoaW5pYzNfY21kX2J1Zl9wYWlyX2luaXQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY1NTpcXHRcXHRcXHQgICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1Zl9wYWlyICpwYWlyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NTYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2NTc6XFx0cGFpci1cXHUwMDNlaW4gPSBoaW5pYzNfYWxsb2NfY21kX2J1Zihod2Rldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY1OC1cXHRpZiAoIXBhaXItXFx1MDAzZWluKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY2MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjYxOlxcdHBhaXItXFx1MDAzZW91dCA9IGhpbmljM19hbGxvY19jbWRfYnVmKGh3ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjYyLVxcdGlmICghcGFpci1cXHUwMDNlb3V0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY2Ny1lcnJfZnJlZV9jbWRfYnVmX2luOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2Njg6XFx0aGluaWMzX2ZyZWVfY21kX2J1Zihod2RldiwgcGFpci1cXHUwMDNlaW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NjktZXJyX291dDpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY3Mzp2b2lkIGhpbmljM19jbWRfYnVmX3BhaXJfdW5pbml0KHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2NzQ6XFx0XFx0XFx0XFx0c3RydWN0IGhpbmljM19jbWRfYnVmX3BhaXIgKnBhaXIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY3NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY3NjpcXHRoaW5pYzNfZnJlZV9jbWRfYnVmKGh3ZGV2LCBwYWlyLVxcdTAwM2Vpbik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY3NzpcXHRoaW5pYzNfZnJlZV9jbWRfYnVmKGh3ZGV2LCBwYWlyLVxcdTAwM2VvdXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NzgtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NzktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY4MDppbnQgaGluaWMzX2NtZHFfZGlyZWN0X3Jlc3Aoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsIHU4IG1vZCwgdTggY21kLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2ODE6XFx0XFx0XFx0ICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX2luLCBfX2xlNjQgKm91dF9wYXJhbSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjgyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjgzOlxcdHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02ODQtXFx0aW50IGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03MTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjcxMzppbnQgaGluaWMzX2NtZHFfZGV0YWlsX3Jlc3Aoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsIHU4IG1vZCwgdTggY21kLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3MTQ6XFx0XFx0XFx0ICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX2luLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3MTU6XFx0XFx0XFx0ICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX291dCwgX19sZTY0ICpvdXRfcGFyYW0pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTcxNi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjcxNzpcXHRzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzE4LVxcdGludCBlcnI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzQ1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3NDY6c3RhdGljIHZvaWQgY21kcV9pbml0X3F1ZXVlX2N0eHQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsIHU4IGNtZHFfaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc0Ny1cXHRcXHRcXHRcXHQgc3RydWN0IGNvbW1fY21kcV9jdHh0X2luZm8gKmN0eHRfaW5mbylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzQ4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzQ5OlxcdGNvbnN0IHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NTAtXFx0dTY0IGNtZHFfZmlyc3RfYmxvY2tfcGFkZHIsIHBmbjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzUxOlxcdGNvbnN0IHN0cnVjdCBoaW5pYzNfd3EgKndxO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NTItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzU0LVxcdHdxID0gXFx1MDAyNmNtZHFzLVxcdTAwM2VjbWRxW2NtZHFfaWRdLndxO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3NTU6XFx0cGZuID0gQ01EUV9QRk4oaGluaWMzX3dxX2dldF9maXJzdF93cWVfcGFnZV9hZGRyKHdxKSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc1Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjc2NDpcXHRpZiAoIWhpbmljM193cV9pc18wX2xldmVsX2NsYSh3cSkpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzY1LVxcdFxcdGNtZHFfZmlyc3RfYmxvY2tfcGFkZHIgPSBjbWRxcy1cXHUwMDNld3FfYmxvY2tfcGFkZHI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzcyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3NzM6c3RhdGljIGludCBpbml0X2NtZHEoc3RydWN0IGhpbmljM19jbWRxICpjbWRxLCBzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Nzc0OlxcdFxcdCAgICAgZW51bSBoaW5pYzNfY21kcV90eXBlIHFfdHlwZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzc1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03OTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjc5MzpzdGF0aWMgaW50IGhpbmljM19zZXRfY21kcV9jdHh0KHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LCB1OCBjbWRxX2lkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03OTQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc5OS1cXHRjbWRxX2luaXRfcXVldWVfY3R4dChod2RldiwgY21kcV9pZCwgXFx1MDAyNmNtZHFfY3R4dC5jdHh0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODAwOlxcdGNtZHFfY3R4dC5mdW5jX2lkID0gaGluaWMzX2dsb2JhbF9mdW5jX2lkKGh3ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODAxLVxcdGNtZHFfY3R4dC5jbWRxX2lkID0gY21kcV9pZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04MDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjgwNjpcXHRlcnIgPSBoaW5pYzNfc2VuZF9tYm94X3RvX21nbXQoaHdkZXYsIE1HTVRfTU9EX0NPTU0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgwNy1cXHRcXHRcXHRcXHQgICAgICAgQ09NTV9DTURfU0VUX0NNRFFfQ1RYVCwgXFx1MDAyNm1zZ19wYXJhbXMpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODE3OnN0YXRpYyBpbnQgaGluaWMzX3NldF9jbWRxX2N0eHRzKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04MTgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4MTk6XFx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXMgPSBod2Rldi1cXHUwMDNlY21kcXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgyMC1cXHR1OCBjbWRxX3R5cGU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODIzLVxcdGZvciAoY21kcV90eXBlID0gMDsgY21kcV90eXBlIFxcdTAwM2MgY21kcXMtXFx1MDAzZWNtZHFfbnVtOyBjbWRxX3R5cGUrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4MjQ6XFx0XFx0ZXJyID0gaGluaWMzX3NldF9jbWRxX2N0eHQoaHdkZXYsIGNtZHFfdHlwZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgyNS1cXHRcXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODM1OnN0YXRpYyBpbnQgY3JlYXRlX2NtZHFfd3Eoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjgzNjpcXHRcXHRcXHQgIHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04Mzcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg0MS1cXHRmb3IgKGNtZHFfdHlwZSA9IDA7IGNtZHFfdHlwZSBcXHUwMDNjIGNtZHFzLVxcdTAwM2VjbWRxX251bTsgY21kcV90eXBlKyspIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODQyOlxcdFxcdGVyciA9IGhpbmljM193cV9jcmVhdGUoaHdkZXYsIFxcdTAwMjZjbWRxcy1cXHUwMDNlY21kcVtjbWRxX3R5cGVdLndxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04NDMtXFx0XFx0XFx0XFx0ICAgICAgIENNRFFfREVQVEgsIENNRFFfV1FFQkJfU0laRSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODUyLVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4NTM6XFx0aWYgKCFoaW5pYzNfd3FfaXNfMF9sZXZlbF9jbGEoXFx1MDAyNmNtZHFzLVxcdTAwM2VjbWRxW0hJTklDM19DTURRX1NZTkNdLndxKSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04NTQtXFx0XFx0aWYgKGNtZHFzLVxcdTAwM2VjbWRxW0hJTklDM19DTURRX1NZTkNdLndxLnFwYWdlcy5udW1fcGFnZXMgXFx1MDAzZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg4My1cXHRcXHRjbWRxX3R5cGUtLTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODg0OlxcdFxcdGhpbmljM193cV9kZXN0cm95KGh3ZGV2LCBcXHUwMDI2Y21kcXMtXFx1MDAzZWNtZHFbY21kcV90eXBlXS53cSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg4NS1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODg5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4OTA6c3RhdGljIHZvaWQgZGVzdHJveV9jbWRxX3dxKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4OTE6XFx0XFx0XFx0ICAgIHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04OTIte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg5OS1cXHRmb3IgKGNtZHFfdHlwZSA9IDA7IGNtZHFfdHlwZSBcXHUwMDNjIGNtZHFzLVxcdTAwM2VjbWRxX251bTsgY21kcV90eXBlKyspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjkwMDpcXHRcXHRoaW5pYzNfd3FfZGVzdHJveShod2RldiwgXFx1MDAyNmNtZHFzLVxcdTAwM2VjbWRxW2NtZHFfdHlwZV0ud3EpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05MDEtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05MDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjkwMzpzdGF0aWMgaW50IGluaXRfY21kcXMoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTkwNC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjkwNTpcXHRzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTA2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTkxNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTE1OlxcdGNtZHFzLVxcdTAwM2VjbWRfYnVmX3Bvb2wgPSBkbWFfcG9vbF9jcmVhdGUoXFxcImhpbmljM19jbWRxXFxcIiwgaHdkZXYtXFx1MDAzZWRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTE2LVxcdFxcdFxcdFxcdFxcdCAgICAgIENNRFFfQlVGX1NJWkUsIENNRFFfQlVGX1NJWkUsIDApO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTkyNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTI2OnN0YXRpYyB2b2lkIGNtZHFfZmx1c2hfc3luY19jbWQoc3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpjbWRfaW5mbylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTI3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk0NzpzdGF0aWMgdm9pZCBoaW5pYzNfY21kcV9mbHVzaF9jbWQoc3RydWN0IGhpbmljM19jbWRxICpjbWRxKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NDgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5NDk6XFx0c3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpjbWRfaW5mbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTUwLVxcdHUxNiBjaTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NTMtXFx0d2hpbGUgKGNtZHFfcmVhZF93cWUoXFx1MDAyNmNtZHEtXFx1MDAzZXdxLCBcXHUwMDI2Y2kpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk1NDpcXHRcXHRoaW5pYzNfd3FfcHV0X3dxZWJicyhcXHUwMDI2Y21kcS1cXHUwMDNld3EsIENNRFFfV1FFX05VTV9XUUVCQlMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NTUtXFx0XFx0Y21kX2luZm8gPSBcXHUwMDI2Y21kcS1cXHUwMDNlY21kX2luZm9zW2NpXTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk2Mzp2b2lkIGhpbmljM19jbWRxX2ZsdXNoX3N5bmNfY21kKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NjQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5NjU6XFx0c3RydWN0IGhpbmljM19jbWRxICpjbWRxO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NjYtXFx0dTE2IHdxZV9jbnQsIHdxZV9pZHgsIGk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk2NzpcXHRzdHJ1Y3QgaGluaWMzX3dxICp3cTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTY4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk3MS1cXHR3cSA9IFxcdTAwMjZjbWRxLVxcdTAwM2V3cTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTcyOlxcdHdxZV9jbnQgPSBoaW5pYzNfd3FfZ2V0X3VzZWQod3EpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NzMtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIHdxZV9jbnQ7IGkrKykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk3OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTgwOnN0YXRpYyB2b2lkIGhpbmljM19jbWRxX3Jlc2V0X2FsbF9jbWRfYnVmKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTgxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05ODctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk4ODppbnQgaGluaWMzX3JlaW5pdF9jbWRxX2N0eHRzKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05ODkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5OTA6XFx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXMgPSBod2Rldi1cXHUwMDNlY21kcXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk5MS1cXHR1OCBjbWRxX3R5cGU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTkzLVxcdGZvciAoY21kcV90eXBlID0gMDsgY21kcV90eXBlIFxcdTAwM2MgY21kcXMtXFx1MDAzZWNtZHFfbnVtOyBjbWRxX3R5cGUrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5OTQ6XFx0XFx0aGluaWMzX2NtZHFfZmx1c2hfY21kKFxcdTAwMjZjbWRxcy1cXHUwMDNlY21kcVtjbWRxX3R5cGVdKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTk1OlxcdFxcdGhpbmljM19jbWRxX3Jlc2V0X2FsbF9jbWRfYnVmKFxcdTAwMjZjbWRxcy1cXHUwMDNlY21kcVtjbWRxX3R5cGVdKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTk2LVxcdFxcdGNtZHFzLVxcdTAwM2VjbWRxW2NtZHFfdHlwZV0ud3JhcHBlZCA9IDE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk5NzpcXHRcXHRoaW5pYzNfd3FfcmVzZXQoXFx1MDAyNmNtZHFzLVxcdTAwM2VjbWRxW2NtZHFfdHlwZV0ud3EpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05OTgtXFx0fVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05OTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwMDA6XFx0cmV0dXJuIGhpbmljM19zZXRfY21kcV9jdHh0cyhod2Rldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwMDEtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDAzOmludCBoaW5pYzNfY21kcXNfaW5pdChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTAwNC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwMDU6XFx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwMDYtXFx0dm9pZCBfX2lvbWVtICpkYl9iYXNlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwMTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwMTk6XFx0ZXJyID0gaGluaWMzX2FsbG9jX2RiX2FkZHIoaHdkZXYsIFxcdTAwMjZkYl9iYXNlLCBOVUxMKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTAyMC1cXHRpZiAoZXJyKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTAzNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTAzNjpcXHRlcnIgPSBoaW5pYzNfc2V0X2NtZHFfY3R4dHMoaHdkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDM3LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTA0Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTA0ODpcXHRoaW5pYzNfZnJlZV9kYl9hZGRyKGh3ZGV2LCBjbWRxcy1cXHUwMDNlY21kcXNfZGJfYmFzZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNDktZXJyX2Rlc3Ryb3lfY21kcV93cTpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDU3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDU4OnZvaWQgaGluaWMzX2NtZHFzX2ZyZWUoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNTkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDYwOlxcdHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzID0gaHdkZXYtXFx1MDAzZWNtZHFzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDYxLVxcdHU4IGNtZHFfdHlwZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDY1LVxcdGZvciAoY21kcV90eXBlID0gMDsgY21kcV90eXBlIFxcdTAwM2MgY21kcXMtXFx1MDAzZWNtZHFfbnVtOyBjbWRxX3R5cGUrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDY2OlxcdFxcdGhpbmljM19jbWRxX2ZsdXNoX2NtZChcXHUwMDI2Y21kcXMtXFx1MDAzZWNtZHFbY21kcV90eXBlXSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwNjc6XFx0XFx0aGluaWMzX2NtZHFfcmVzZXRfYWxsX2NtZF9idWYoXFx1MDAyNmNtZHFzLVxcdTAwM2VjbWRxW2NtZHFfdHlwZV0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDY4LVxcdFxcdGtmcmVlKGNtZHFzLVxcdTAwM2VjbWRxW2NtZHFfdHlwZV0uY21kX2luZm9zKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDcwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDcxOlxcdGhpbmljM19mcmVlX2RiX2FkZHIoaHdkZXYsIGNtZHFzLVxcdTAwM2VjbWRxc19kYl9iYXNlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTA3Mi1cXHRkZXN0cm95X2NtZHFfd3EoaHdkZXYsIGNtZHFzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDc2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDc3OmJvb2wgaGluaWMzX2NtZHFfaWRsZShzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNzgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDc5OlxcdHJldHVybiBoaW5pYzNfd3FfZ2V0X3VzZWQoXFx1MDAyNmNtZHEtXFx1MDAzZXdxKSA9PSAwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDgwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC04LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDo5OiNpbmNsdWRlIFxcXCJoaW5pYzNfaHdfaW50Zi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMDojaW5jbHVkZSBcXFwiaGluaWMzX3dxLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTExLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oPTI1PXN0cnVjdCBjbWRxX2xjbWRfYnVmZGVzYyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjI2OlxcdHN0cnVjdCBoaW5pYzNfc2dlIHNnZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMjctXFx0X19sZTY0ICAgICAgICAgICAgcnN2ZDI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg9NDQ9c3RydWN0IGNtZHFfY29tcGxldGlvbiB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTQ1LVxcdHVuaW9uIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6NDY6XFx0XFx0c3RydWN0IGhpbmljM19zZ2UgICAgICAgc2dlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC00Ny1cXHRcXHRzdHJ1Y3QgY21kcV9kaXJlY3RfcmVzcCBkaXJlY3Q7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg9NzU9c3RhdGljX2Fzc2VydChzaXplb2Yoc3RydWN0IGNtZHFfd3FlKSA9PSA2NCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTc2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDo3NzplbnVtIGhpbmljM19jbWRxX3R5cGUge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC03OC1cXHRISU5JQzNfQ01EUV9TWU5DICAgICAgPSAwLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTgxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDo4MjplbnVtIGhpbmljM19jbWRxX3N0YXR1cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTgzLVxcdEhJTklDM19DTURRX0VOQUJMRSA9IEJJVCgwKSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC04NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6ODY6ZW51bSBoaW5pYzNfY21kcV9jbWRfdHlwZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTg3LVxcdEhJTklDM19DTURfVFlQRV9OT05FLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTk1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDo5NjpzdHJ1Y3QgaGluaWMzX2NtZF9idWYge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC05Ny1cXHR2b2lkICAgICAgICpidWY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMDM6c3RydWN0IGhpbmljM19jbWRfYnVmX3BhaXIge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMDQ6XFx0c3RydWN0IGhpbmljM19jbWRfYnVmICppbjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTA1OlxcdHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqb3V0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMDYtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTA3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMDg6c3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTA5OlxcdGVudW0gaGluaWMzX2NtZHFfY21kX3R5cGUgY21kX3R5cGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTExMC1cXHRzdHJ1Y3QgY29tcGxldGlvbiAgICAgICAgICpkb25lO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTExNS1cXHR1NjQgICAgICAgICAgICAgICAgICAgICAgIGNtZHFfbXNnX2lkO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMTY6XFx0c3RydWN0IGhpbmljM19jbWRfYnVmICAgICAqYnVmX2luO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMTc6XFx0c3RydWN0IGhpbmljM19jbWRfYnVmICAgICAqYnVmX291dDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTE4LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTExOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTIwOnN0cnVjdCBoaW5pYzNfY21kcSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEyMTpcXHRzdHJ1Y3QgaGluaWMzX3dxICAgICAgICAgICAgd3E7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEyMjpcXHRlbnVtIGhpbmljM19jbWRxX3R5cGUgICAgICAgY21kcV90eXBlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMjMtXFx0dTggICAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBwZWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTI1LVxcdHNwaW5sb2NrX3QgICAgICAgICAgICAgICAgICBjbWRxX2xvY2s7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEyNjpcXHRzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKmNtZF9pbmZvcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTI3OlxcdHN0cnVjdCBoaW5pYzNfaHdkZXYgICAgICAgICAqaHdkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTEyOC19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEzMDpzdHJ1Y3QgaGluaWMzX2NtZHFzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTMxOlxcdHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMzI6XFx0c3RydWN0IGhpbmljM19jbWRxICBjbWRxW0hJTklDM19NQVhfQ01EUV9UWVBFU107XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTEzMy1cXHRzdHJ1Y3QgZG1hX3Bvb2wgICAgICpjbWRfYnVmX3Bvb2w7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTQ4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNDk6aW50IGhpbmljM19jbWRxc19pbml0KHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTUwOnZvaWQgaGluaWMzX2NtZHFzX2ZyZWUoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xNTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE1MjpzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmhpbmljM19hbGxvY19jbWRfYnVmKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTUzOnZvaWQgaGluaWMzX2ZyZWVfY21kX2J1ZihzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTU0OlxcdFxcdFxcdCBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmNtZF9idWYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNTU6dm9pZCBoaW5pYzNfY21kcV9jZXFfaGFuZGxlcihzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldiwgX19sZTMyIGNlcWVfZGF0YSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTE1Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTU3OmludCBoaW5pYzNfY21kX2J1Zl9wYWlyX2luaXQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE1ODpcXHRcXHRcXHQgICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1Zl9wYWlyICpwYWlyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTU5OnZvaWQgaGluaWMzX2NtZF9idWZfcGFpcl91bmluaXQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2MDpcXHRcXHRcXHRcXHRzdHJ1Y3QgaGluaWMzX2NtZF9idWZfcGFpciAqcGFpcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2MTppbnQgaGluaWMzX2NtZHFfZGlyZWN0X3Jlc3Aoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsIHU4IG1vZCwgdTggY21kLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNjI6XFx0XFx0XFx0ICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX2luLCBfX2xlNjQgKm91dF9wYXJhbSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2MzppbnQgaGluaWMzX2NtZHFfZGV0YWlsX3Jlc3Aoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsIHU4IG1vZCwgdTggY21kLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNjQ6XFx0XFx0XFx0ICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX2luLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNjU6XFx0XFx0XFx0ICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX291dCwgX19sZTY0ICpvdXRfcGFyYW0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xNjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2Nzp2b2lkIGhpbmljM19jbWRxX2ZsdXNoX3N5bmNfY21kKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTY4OmludCBoaW5pYzNfcmVpbml0X2NtZHFfY3R4dHMoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNjk6Ym9vbCBoaW5pYzNfY21kcV9pZGxlKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTE3MC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NvbW1vbi5jLTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmM6ODojaW5jbHVkZSBcXFwiaGluaWMzX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NvbW1vbi5jLTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmM6MTA6aW50IGhpbmljM19kbWFfemFsbG9jX2NvaGVyZW50X2FsaWduKHN0cnVjdCBkZXZpY2UgKmRldiwgdTMyIHNpemUsIHUzMiBhbGlnbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYy0xMS1cXHRcXHRcXHRcXHQgICAgIGdmcF90IGZsYWcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmM6MTI6XFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgaGluaWMzX2RtYV9hZGRyX2FsaWduICptZW1fYWxpZ24pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmMtMTMte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmMtNDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmM6NDk6dm9pZCBoaW5pYzNfZG1hX2ZyZWVfY29oZXJlbnRfYWxpZ24oc3RydWN0IGRldmljZSAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NvbW1vbi5jOjUwOlxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgaGluaWMzX2RtYV9hZGRyX2FsaWduICptZW1fYWxpZ24pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmMtNTEte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmMtNTUtXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDEyOjAxOjQyLjE2ODcxMDA5NFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3NjIxMjAzODAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBOZXR3b3JrIERyaXZlcioqXG5cbk9rYXksIHNvIHRoZSBkcml2ZXIgaW4gcXVlc3Rpb24gaXMgbG9jYXRlZCBhdCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljM2AuIE15IGluaXRpYWwgdGhvdWdodCBpcywgXCJIbW0sIGlzIHRoaXMgYSBQQ0llIGRyaXZlciwgSSB3b25kZXI/XCIgR2l2ZW4gdGhlIGxvY2F0aW9uLCB0aGF0J3MgYSByZWFzb25hYmxlIGFzc3VtcHRpb24sIGJ1dCBJIG5lZWQgdG8gY29uZmlybS4gSSdsbCBuZWVkIHRvIGRpZyBpbnRvIHRoZSBjb2RlIHRvIGJlIHN1cmUuIE15IG5leHQgc3RlcCB3aWxsIGJlIHRvIGV4YW1pbmUgdGhlIHNvdXJjZSBmaWxlcyBmb3IgdGhhdCBkcml2ZXIsIHNwZWNpZmljYWxseSBmb2N1c2luZyBvbiBgaGluaWMzX21haW4uY2AgYW5kIGBoaW5pYzNfaHdkZXYuY2AuIFRob3NlIGZpbGVzIHNob3VsZCBwcm92aWRlIGNsZWFyIGNsdWVzIGFib3V0IHRoZSBoYXJkd2FyZSBpdCdzIGludGVyZmFjaW5nIHdpdGgsIGNvbmZpcm1pbmcgaWYgaXQncyBpbmRlZWQgYSBQQ0kgZGV2aWNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTk0NywiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDEyOjAxOjQ1LjkzMDgzMzk2NFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0Njg3MDY1NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwY2lfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2xsZC5jPTQzNj1zdGF0aWMgdm9pZCBoaW5pYzNfc2h1dGRvd24oc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19sbGQuYy00NDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfbGxkLmM6NDQ2OnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBoaW5pYzNfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2xsZC5jLTQ0Ny1cXHQubmFtZSAgICAgICAgICAgID0gSElOSUMzX05JQ19EUlZfTkFNRSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMTI6MDE6NDUuOTc3NzA4OTU5WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODgyNDA3NDg1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipXb3J0aEZ1enppbmcgRGVjaXNpb24gZm9yIGhpbmljMyBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCdzIGhpdHRpbmcgdGhlIGBoaW5pYzNfZHJpdmVyYC4gUmlnaHQgYXdheSwgdGhlIHByb21wdCBqdW1wcyBvdXQgYXQgbWU6IFwiUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczogLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzLi4uIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlwiXG5cbkxldCdzIHRoaW5rLiBJcyBgaGluaWMzYCBhIHZlbmRvci1zcGVjaWZpYyBTbWFydE5JQyBvciBOSUMgZHJpdmVyIHRoYXQgZGVtYW5kcyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiB0aGUgdXN1YWwgUUVNVSBzZXR1cHM/IFllcywgYGhpbmljM2Ag4oCTIEh1YXdlaSBJbnRlbGxpZ2VudCBOSUMg4oCTIGlzIGRlZmluaXRlbHkgdmVuZG9yLXNwZWNpZmljIGFuZCBoYXJkd2FyZS1kZXBlbmRlbnQuIEknbGwgcXVpY2tseSBjaGVjayBmb3IgYW55IFFFTVUgZW11bGF0aW9uLiBVc3VhbGx5LCB5b3UnZCBzZWUgdGhpbmdzIGxpa2UgZTEwMDAsIHZpcnRpby1uZXQsIGV0Yy4sIGJ1dCBub3RoaW5nIGZvciBgaGluaWMzYC4gTm9wZSwgbm8gZW11bGF0aW9uLlxuXG5TbywgaXQncyBjbGVhcjogYGhpbmljM2AgZml0cyBzcXVhcmVseSBpbnRvIHRoYXQgY2F0ZWdvcnkgc3BlY2lmaWVkIGluIHRoZSBwcm9tcHQuIEl0J3MgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBOSUMgZHJpdmVyLCBhbmQgaXQncyBnb2luZyB0byBiZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdvb2dsZSBDb21wdXRlIEVuZ2luZSBvciBRRU1VLiBJdCdzIGZ1bmRhbWVudGFsbHkgdGllZCB0byB0aGUgaGFyZHdhcmUuXG5cblRoZXJlZm9yZSwgdGhlIGRlY2lzaW9uJ3MgY2xlYXI6IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJIG5lZWQgdG8gY29uZmlybSB0aGUgc3BlY2lmaWMgZmlsZXMgbW9kaWZpZWQgYnkgdGhlIHBhdGNoLiBPaCwgaXQgbW9kaWZpZXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmNgLiBZZXMsIHRoYXQgY29uZmlybXMgaXQg4oCTIGV4YWN0bHkgdGhhdCB2ZW5kb3Itc3BlY2lmaWMgUENJZSBOSUMgZHJpdmVyLiBUaGVyZWZvcmUsIGBXb3J0aEZ1enppbmc9ZmFsc2VgLlxuXG5UaGUgcmVhc29uaW5nIGlzIHRoYXQgdGhlIHBhdGNoIGltcGFjdHMgdGhlIEh1YXdlaSBJbnRlbGxpZ2VudCBOSUMgKGBoaW5pYzNgKSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgZHJpdmVyLiBUaGlzIGhhcmR3YXJlIGlzbid0IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFLCBtYWtpbmcgdGhlIGNvZGUgaW5hY2Nlc3NpYmxlIGZvciBmdXp6aW5nLiBUaHVzLCBpdCBpcyBub3Qgd29ydGggZnV6emluZy4gSSBqdXN0IHdhbnQgdG8gZG91YmxlLWNoZWNrIHRoZXJlIGFyZW4ndCBhbnkgb3RoZXIgY2hhbmdlcy4gTm9wZSwgb25seSB0aGF0IGZpbGUuIENvbmNsdXNpb246IHNhZmUgdG8gc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDM1OCwiT3V0cHV0VG9rZW5zIjo3OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUyNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxMjowMTo1NC44MDE3ODcwMjNaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3OTYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBIdWF3ZWkgSW50ZWxsaWdlbnQgTklDIChoaW5pYzMpIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBoYXJkd2FyZSBkcml2ZXIuIFRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cywgbWFraW5nIHRoZSBjb2RlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEh1YXdlaSBJbnRlbGxpZ2VudCBOSUMgKGhpbmljMykgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGRyaXZlci4gVGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIGNvZGUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxMjowMTo1NC44MDE4MTg3NzRaIiwiU2VxIjo5LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowbvh4k[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-11 12:00:23 +0000 UTC FinishedAt: 2026-08-11 12:01:55 +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+CgkJCTx0ZD4yMDI2LzA4LzExIDEyOjAxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEh1YXdlaSBJbnRlbGxpZ2VudCBOSUMgKGhpbmljMykgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGRyaXZlci4gVGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIGNvZGUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDEyOjAxPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNmQ5MjRmMDY1YTEyMzQ2ODNmNDhmYWE3MDBjMDk0NTE5Yjg3YzZmYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgQXVnIDExIDEyOjAxOjM1IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jXG5pbmRleCA5MzA2YmYwMDIwY2FmLi5jYzU0MWU3YTIzMTg2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xuQEAgLTI2MSw4ICYjNDM7MjYxLDcgQEAgc3RhdGljIGludCBoaW5pYzNfdHhfY3N1bShzdHJ1Y3QgaGluaWMzX3R4cSAqdHhxLCBzdHJ1Y3QgaGluaWMzX3NxX3Rhc2sgKnRhc2ssXG4gXHRcdCAgICAoKHN0cnVjdCB1ZHBoZHIgKilza2JfdHJhbnNwb3J0X2hlYWRlcihza2IpKS1cdTAwM2VkZXN0ICE9XG4gXHRcdCAgICBWWExBTl9PRkZMT0FEX1BPUlRfTEUpIHtcbiBcdFx0XHQvKiBVbnN1cHBvcnRlZCB0dW5uZWwgcGFja2V0LCBkaXNhYmxlIGNzdW0gb2ZmbG9hZCAqL1xuLVx0XHRcdHNrYl9jaGVja3N1bV9oZWxwKHNrYik7XG4tXHRcdFx0cmV0dXJuIDA7XG4mIzQzO1x0XHRcdHJldHVybiBza2JfY2hlY2tzdW1faGVscChza2IpO1xuIFx0XHR9XG4gXHR9XG4gXG5AQCAtNDEyLDYgJiM0Mzs0MTEsMTAgQEAgc3RhdGljIHUzMiBoaW5pYzNfdHhfb2ZmbG9hZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgaGluaWMzX3NxX3Rhc2sgKnRhc2ssXG4gXHRcdG9mZmxvYWQgfD0gSElOSUMzX1RYX09GRkxPQURfVFNPO1xuIFx0fSBlbHNlIHtcbiBcdFx0dHNvX2NzX2VuID0gaGluaWMzX3R4X2NzdW0odHhxLCB0YXNrLCBza2IpO1xuJiM0MztcdFx0aWYgKHRzb19jc19lbiBcdTAwM2MgMCkge1xuJiM0MztcdFx0XHRvZmZsb2FkID0gSElOSUMzX1RYX09GRkxPQURfSU5WQUxJRDtcbiYjNDM7XHRcdFx0cmV0dXJuIG9mZmxvYWQ7XG4mIzQzO1x0XHR9XG4gXHRcdGlmICh0c29fY3NfZW4pXG4gXHRcdFx0b2ZmbG9hZCB8PSBISU5JQzNfVFhfT0ZGTE9BRF9DU1VNO1xuIFx0fVxuQEAgLTU0NSw2ICYjNDM7NTQ4LDcgQEAgc3RhdGljIG5ldGRldl90eF90IGhpbmljM19zZW5kX29uZV9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcdFx0c2tiLVx1MDAzZWxlbiA9IE1JTl9TS0JfTEVOO1xuIFx0fVxuIFxuJiM0MztcdG9mZmxvYWQgPSBoaW5pYzNfdHhfb2ZmbG9hZChza2IsIFx1MDAyNnRhc2ssIFx1MDAyNnF1ZXVlX2luZm8sIHR4cSk7XG4gXHRudW1fc2dlID0gc2tiX3NoaW5mbyhza2IpLVx1MDAzZW5yX2ZyYWdzICYjNDM7IDE7XG4gXHQvKiBhc3N1bWUgbm9ybWFsIHdxZSBmb3JtYXQgJiM0MzsgMSB3cWViYiBmb3IgdGFzayBpbmZvICovXG4gXHR3cWViYl9jbnQgPSBudW1fc2dlICYjNDM7IDE7XG5AQCAtNTYwLDcgJiM0Mzs1NjQsNiBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaGluaWMzX3NlbmRfb25lX3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHRyZXR1cm4gTkVUREVWX1RYX0JVU1k7XG4gXHR9XG4gXG4tXHRvZmZsb2FkID0gaGluaWMzX3R4X29mZmxvYWQoc2tiLCBcdTAwMjZ0YXNrLCBcdTAwMjZxdWV1ZV9pbmZvLCB0eHEpO1xuIFx0aWYgKHVubGlrZWx5KG9mZmxvYWQgPT0gSElOSUMzX1RYX09GRkxPQURfSU5WQUxJRCkpIHtcbiBcdFx0Z290byBlcnJfZHJvcF9wa3Q7XG4gXHR9IGVsc2UgaWYgKCFvZmZsb2FkKSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTI6MDE8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBIdWF3ZWkgSW50ZWxsaWdlbnQgTklDIChoaW5pYzMpIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBoYXJkd2FyZSBkcml2ZXIuIFRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cywgbWFraW5nIHRoZSBjb2RlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDZkOTI0ZjA2NWExMjM0NjgzZjQ4ZmFhNzAwYzA5NDUxOWI4N2M2ZmIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEF1ZyAxMSAxMjowMTozNSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jCmluZGV4IDkzMDZiZjAwMjBjYWYuLmNjNTQxZTdhMjMxODYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguYwpAQCAtMjYxLDggJiM0MzsyNjEsNyBAQCBzdGF0aWMgaW50IGhpbmljM190eF9jc3VtKHN0cnVjdCBoaW5pYzNfdHhxICp0eHEsIHN0cnVjdCBoaW5pYzNfc3FfdGFzayAqdGFzaywKIAkJICAgICgoc3RydWN0IHVkcGhkciAqKXNrYl90cmFuc3BvcnRfaGVhZGVyKHNrYikpLSZndDtkZXN0ICE9CiAJCSAgICBWWExBTl9PRkZMT0FEX1BPUlRfTEUpIHsKIAkJCS8qIFVuc3VwcG9ydGVkIHR1bm5lbCBwYWNrZXQsIGRpc2FibGUgY3N1bSBvZmZsb2FkICovCi0JCQlza2JfY2hlY2tzdW1faGVscChza2IpOwotCQkJcmV0dXJuIDA7CiYjNDM7CQkJcmV0dXJuIHNrYl9jaGVja3N1bV9oZWxwKHNrYik7CiAJCX0KIAl9CiAKQEAgLTQxMiw2ICYjNDM7NDExLDEwIEBAIHN0YXRpYyB1MzIgaGluaWMzX3R4X29mZmxvYWQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGhpbmljM19zcV90YXNrICp0YXNrLAogCQlvZmZsb2FkIHw9IEhJTklDM19UWF9PRkZMT0FEX1RTTzsKIAl9IGVsc2UgewogCQl0c29fY3NfZW4gPSBoaW5pYzNfdHhfY3N1bSh0eHEsIHRhc2ssIHNrYik7CiYjNDM7CQlpZiAodHNvX2NzX2VuICZsdDsgMCkgewomIzQzOwkJCW9mZmxvYWQgPSBISU5JQzNfVFhfT0ZGTE9BRF9JTlZBTElEOwomIzQzOwkJCXJldHVybiBvZmZsb2FkOwomIzQzOwkJfQogCQlpZiAodHNvX2NzX2VuKQogCQkJb2ZmbG9hZCB8PSBISU5JQzNfVFhfT0ZGTE9BRF9DU1VNOwogCX0KQEAgLTU0NSw2ICYjNDM7NTQ4LDcgQEAgc3RhdGljIG5ldGRldl90eF90IGhpbmljM19zZW5kX29uZV9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJc2tiLSZndDtsZW4gPSBNSU5fU0tCX0xFTjsKIAl9CiAKJiM0MzsJb2ZmbG9hZCA9IGhpbmljM190eF9vZmZsb2FkKHNrYiwgJmFtcDt0YXNrLCAmYW1wO3F1ZXVlX2luZm8sIHR4cSk7CiAJbnVtX3NnZSA9IHNrYl9zaGluZm8oc2tiKS0mZ3Q7bnJfZnJhZ3MgJiM0MzsgMTsKIAkvKiBhc3N1bWUgbm9ybWFsIHdxZSBmb3JtYXQgJiM0MzsgMSB3cWViYiBmb3IgdGFzayBpbmZvICovCiAJd3FlYmJfY250ID0gbnVtX3NnZSAmIzQzOyAxOwpAQCAtNTYwLDcgJiM0Mzs1NjQsNiBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaGluaWMzX3NlbmRfb25lX3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQlyZXR1cm4gTkVUREVWX1RYX0JVU1k7CiAJfQogCi0Jb2ZmbG9hZCA9IGhpbmljM190eF9vZmZsb2FkKHNrYiwgJmFtcDt0YXNrLCAmYW1wO3F1ZXVlX2luZm8sIHR4cSk7CiAJaWYgKHVubGlrZWx5KG9mZmxvYWQgPT0gSElOSUMzX1RYX09GRkxPQURfSU5WQUxJRCkpIHsKIAkJZ290byBlcnJfZHJvcF9wa3Q7CiAJfSBlbHNlIGlmICghb2ZmbG9hZCkgewo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAxMjowMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTIwCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMjEyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIEh1YXdlaSBOSUMgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRhcmdldGluZyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY2AuIE15IGluaXRpYWwgcmVhZCBpcyB0aGF0IHRoZXkmIzM5O3JlIGZ1bmRhbWVudGFsbHkgY2hhbmdpbmcgaG93IGNoZWNrc3VtIG9mZmxvYWQgaXMgaGFuZGxlZC4gU3BlY2lmaWNhbGx5LCBgaGluaWMzX3R4X2NzdW1gIGlzIG5vdyByZXR1cm5pbmcgdGhlIHJlc3VsdCBvZiBgc2tiX2NoZWNrc3VtX2hlbHAoc2tiKWAgaW5zdGVhZCBvZiBzaW1wbHkgMC4gVGhhdCYjMzk7cyBhIGtleSBzaGlmdCwgYmVjYXVzZSB3ZSYjMzk7cmUgbm8gbG9uZ2VyIHVuY29uZGl0aW9uYWxseSBjbGFpbWluZyBzdWNjZXNzLiBXZSBhcmUgYWN0dWFsbHkgKnVzaW5nKiB0aGUgcmVzdWx0IG9mIHRoZSBgc2tiX2NoZWNrc3VtX2hlbHBgIGZ1bmN0aW9uISBUaGF0IG1ha2VzIHRvdGFsIHNlbnNlOyB3ZSBuZWVkIHRvIHByb3BhZ2F0ZSBwb3RlbnRpYWwgZXJyb3JzLgoKVGhlIG5leHQgdGhpbmcgSSBzZWUgaXMgYSBjb25kaXRpb25hbCBjaGVjayBvbiB0aGUgcmV0dXJuIHZhbHVlIG9mIGBoaW5pYzNfdHhfY3N1bWAgd2l0aGluIGBoaW5pYzNfdHhfb2ZmbG9hZGAuIElmIGl0JiMzOTtzIG5lZ2F0aXZlLCB3ZSYjMzk7cmUgbm93IHJldHVybmluZyBgSElOSUMzX1RYX09GRkxPQURfSU5WQUxJRGAuIEFnYWluLCBzZW5zaWJsZS4gRXJyb3IgcHJvcGFnYXRpb24gaXMgY3JpdGljYWwuIEEgbmVnYXRpdmUgcmV0dXJuIGZyb20gdGhlIGNoZWNrc3VtIGhlbHBlciBpbmRpY2F0ZXMgc29tZXRoaW5nIHdlbnQgd3JvbmcsIGFuZCB3ZSBuZWVkIHRvIHNpZ25hbCB0aGF0IHRvIHRoZSBoaWdoZXItbGV2ZWwgdHJhbnNtaXNzaW9uIGZ1bmN0aW9uLiBHb29kLgoKVGhlIHBhdGNoIGFsc28gbW92ZXMgdGhlIGNhbGwgdG8gYGhpbmljM190eF9vZmZsb2FkYCAqZWFybGllciogaW4gYGhpbmljM19zZW5kX29uZV9za2JgLCBiZWZvcmUgYG51bV9zZ2VgIGFuZCBgd3FlYmJfY250YCBhcmUgY2FsY3VsYXRlZC4gVGhhdCYjMzk7cyBpbnRlcmVzdGluZy4gSSBiZXQgdGhpcyBpcyB0byBhdm9pZCB1bm5lY2Vzc2FyeSB3b3JrIGlmIHRoZSBvZmZsb2FkIGF0dGVtcHQgZmFpbHMuIENhbGN1bGF0aW5nIHRoZSBzY2F0dGVyLWdhdGhlciBlbGVtZW50cyBhbmQgd29yayBxdWV1ZSBlbnRyeSBidWZmZXIgY291bnQgd291bGQgYmUgd2FzdGVkIGVmZm9ydCBpZiB0aGUgY2hlY2tzdW0gb2ZmbG9hZCBmYWlscywgc28gbW92aW5nIHRoZSBjaGVjayB1cCBmcm9udCBtYWtlcyBzZW5zZSBmb3IgZWZmaWNpZW5jeS4KCk5vdywgYSBicmllZiBwYXVzZS4gYGhpbmljM2AuIFJpZ2h0LiBIdWF3ZWkgSW50ZWxsaWdlbnQgTklDIGRyaXZlci4gSSBrbm93IHRoYXQgbmFtZS4gSSYjMzk7bSB3b25kZXJpbmcsIGlzIHRoaXMgYSBwaHlzaWNhbCBoYXJkd2FyZSBkcml2ZXIsIG9yIGRvZXMgaXQgYWxzbyBzdXBwb3J0IHZpcnR1YWxpemF0aW9uPyBMZXQmIzM5O3MgYXNzdW1lIGl0JiMzOTtzIHBoeXNpY2FsLiBJcyBpdCBsaWtlbHkgdG8gYmUgcmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/IExpa2VseSwgYnV0IEkgbmVlZCB0byBjb25maXJtIHRoZSB1bmRlcmx5aW5nIGRldmljZS4gSSYjMzk7bGwgY2hlY2sgaWYgaXQmIzM5O3MgYSBQQ0kgZHJpdmVyIHRvIGNvbmZpcm0sIHNpbmNlIHRoYXQmIzM5O3MgdGhlIG1vc3QgY29tbW9uIGNhc2UgaW4gdGhlc2Ugc2NlbmFyaW9zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDEyOjAxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2hpbmljMyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA2NDg5IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL0tjb25maWc9Nj1jb25maWcgSElOSUMzXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9LY29uZmlnLTIwLVx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9LY29uZmlnOjIxOlx0ICBUaGUgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGhpbmljMy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlLTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjQ6b2JqLSQoQ09ORklHX0hJTklDMykgJiM0Mzs9IGhpbmljMy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjY6aGluaWMzLW9ianMgOj0gaGluaWMzX2NtZHEubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZTo3Olx0ICAgICAgIGhpbmljM19jb21tb24ubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZTo4Olx0ICAgICAgIGhpbmljM19lcXMubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZTo5Olx0ICAgICAgIGhpbmljM19ldGh0b29sLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTA6XHQgICAgICAgaGluaWMzX2ZpbHRlci5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjExOlx0ICAgICAgIGhpbmljM19od19jZmcubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToxMjpcdCAgICAgICBoaW5pYzNfaHdfY29tbS5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjEzOlx0ICAgICAgIGhpbmljM19od2Rldi5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjE0Olx0ICAgICAgIGhpbmljM19od2lmLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTU6XHQgICAgICAgaGluaWMzX2lycS5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjE2Olx0ICAgICAgIGhpbmljM19sbGQubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToxNzpcdCAgICAgICBoaW5pYzNfbWFpbi5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjE4Olx0ICAgICAgIGhpbmljM19tYm94Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTk6XHQgICAgICAgaGluaWMzX21nbXQubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToyMDpcdCAgICAgICBoaW5pYzNfbmV0ZGV2X29wcy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjIxOlx0ICAgICAgIGhpbmljM19uaWNfY2ZnLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MjI6XHQgICAgICAgaGluaWMzX25pY19pby5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjIzOlx0ICAgICAgIGhpbmljM19xdWV1ZV9jb21tb24ubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToyNDpcdCAgICAgICBoaW5pYzNfcnNzLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MjU6XHQgICAgICAgaGluaWMzX3J4Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MjY6XHQgICAgICAgaGluaWMzX3R4Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6Mjc6XHQgICAgICAgaGluaWMzX3dxLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4OiNpbmNsdWRlIFwmIzM0O2hpbmljM19jbWRxLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5OiNpbmNsdWRlIFwmIzM0O2hpbmljM19lcXMuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwOiNpbmNsdWRlIFwmIzM0O2hpbmljM19od2Rldi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTE6I2luY2x1ZGUgXCYjMzQ7aGluaWMzX2h3aWYuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEyOiNpbmNsdWRlIFwmIzM0O2hpbmljM19tYm94LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM9MTEyPWVudW0gY21kcV9jbWRfdHlwZSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTExOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMTk6c3RhdGljIHZvaWQgaGluaWMzX2R1bXBfY21kcV93cWVfaGVhZChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMjAtXHRcdFx0XHQgICAgICBzdHJ1Y3QgY21kcV93cWUgKndxZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTMyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEzMzpzdGF0aWMgc3RydWN0IGNtZHFfd3FlICpjbWRxX3JlYWRfd3FlKHN0cnVjdCBoaW5pYzNfd3EgKndxLCB1MTYgKmNpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEzNC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTM1Olx0aWYgKGhpbmljM193cV9nZXRfdXNlZCh3cSkgPT0gMClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMzYtXHRcdHJldHVybiBOVUxMO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xNDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTQzOnN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqaGluaWMzX2FsbG9jX2NtZF9idWYoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTQ0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxNDU6XHRzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmNtZF9idWY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTQ2Olx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTQ3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xNzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTcyOnZvaWQgaGluaWMzX2ZyZWVfY21kX2J1ZihzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxNzM6XHRcdFx0IHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqY21kX2J1ZilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xNzQte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjE3NTpcdHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE3Ni1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjE4NjpzdGF0aWMgdm9pZCBjbWRxX2NsZWFyX2NtZF9idWYoc3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpjbWRfaW5mbyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxODc6XHRcdFx0ICAgICAgIHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE4OC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTg5LVx0aWYgKGNtZF9pbmZvLVx1MDAzZWJ1Zl9pbikge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjE5MDpcdFx0aGluaWMzX2ZyZWVfY21kX2J1Zihod2RldiwgY21kX2luZm8tXHUwMDNlYnVmX2luKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xOTEtXHRcdGNtZF9pbmZvLVx1MDAzZWJ1Zl9pbiA9IE5VTEw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE5NC1cdGlmIChjbWRfaW5mby1cdTAwM2VidWZfb3V0KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTk1Olx0XHRoaW5pYzNfZnJlZV9jbWRfYnVmKGh3ZGV2LCBjbWRfaW5mby1cdTAwM2VidWZfb3V0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xOTYtXHRcdGNtZF9pbmZvLVx1MDAzZWJ1Zl9vdXQgPSBOVUxMO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xOTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MjAwOnN0YXRpYyB2b2lkIGNsZWFyX3dxZV9jb21wbGV0ZV9iaXQoc3RydWN0IGhpbmljM19jbWRxICpjbWRxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIwMS1cdFx0XHRcdCAgIHN0cnVjdCBjbWRxX3dxZSAqd3FlLCB1MTYgY2kpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIxNy1cdHdtYigpOyAvKiB2ZXJpZnkgd3FlIGlzIGNsZWFyIGJlZm9yZSB1cGRhdGluZyBjaSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjIxODpcdGhpbmljM193cV9wdXRfd3FlYmJzKFx1MDAyNmNtZHEtXHUwMDNld3EsIENNRFFfV1FFX05VTV9XUUVCQlMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIxOS19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjIwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjIyMTpzdGF0aWMgaW50IGNtZHFfYXJtX2NlcV9oYW5kbGVyKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yMjItXHRcdFx0XHRzdHJ1Y3QgY21kcV93cWUgKndxZSwgdTE2IGNpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yMzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MjM1OnN0YXRpYyB2b2lkIGNtZHFfdXBkYXRlX2NtZF9zdGF0dXMoc3RydWN0IGhpbmljM19jbWRxICpjbWRxLCB1MTYgcHJvZF9pZHgsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjM2LVx0XHRcdFx0ICAgc3RydWN0IGNtZHFfd3FlICp3cWUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjM3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoyMzg6XHRzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKmNtZF9pbmZvO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIzOS1cdHN0cnVjdCBjbWRxX3dxZV9sY21kICp3cWVfbGNtZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjUyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjI1MzpzdGF0aWMgdm9pZCBjbWRxX3N5bmNfY21kX2hhbmRsZXIoc3RydWN0IGhpbmljM19jbWRxICpjbWRxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTI1NC1cdFx0XHRcdCAgc3RydWN0IGNtZHFfd3FlICp3cWUsIHUxNiBjaSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjc0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjI3NTp2b2lkIGhpbmljM19jbWRxX2NlcV9oYW5kbGVyKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LCBfX2xlMzIgY2VxZV9kYXRhKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTI3Ni17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Mjc3Olx0ZW51bSBoaW5pYzNfY21kcV90eXBlIGNtZHFfdHlwZSA9IENNRFFfQ0VRRV9HRVQoY2VxZV9kYXRhLCBUWVBFKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoyNzg6XHRzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcyA9IGh3ZGV2LVx1MDAzZWNtZHFzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjI3OTpcdHN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyAqY21kX2luZm87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjgwLVx0c3RydWN0IGNtZHFfd3FlX2xjbWQgKndxZV9sY21kO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjI4MTpcdHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yODItXHRzdHJ1Y3QgY21kcV93cWUgKndxZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjk3LVx0XHRcdFx0IGNtZHFfdHlwZSwgY2kpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjI5ODpcdFx0XHRoaW5pYzNfZHVtcF9jbWRxX3dxZV9oZWFkKGh3ZGV2LCB3cWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTI5OS1cdFx0XHRmYWxsdGhyb3VnaDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjMzNTpzdGF0aWMgaW50IGNtZHFfcGFyYW1zX3ZhbGlkKGNvbnN0IHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjMzNjpcdFx0XHQgICAgIGNvbnN0IHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX2luKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTMzNy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM0Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzozNDc6c3RhdGljIGludCB3YWl0X2NtZHFzX2VuYWJsZShzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zNDgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYz0zNjQ9c3RhdGljIHZvaWQgY21kcV9zZXRfY29tcGxldGlvbihzdHJ1Y3QgY21kcV9jb21wbGV0aW9uICpjb21wbGV0ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzozNjU6XHRcdFx0XHRzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9vdXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzY2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzozNjc6XHRzdHJ1Y3QgaGluaWMzX3NnZSAqc2dlID0gXHUwMDI2Y29tcGxldGUtXHUwMDNlcmVzcC5zZ2U7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzY4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM2OTpcdGhpbmljM19zZXRfc2dlKHNnZSwgYnVmX291dC1cdTAwM2VkbWFfYWRkciwgY3B1X3RvX2xlMzIoQ01EUV9CVUZfU0laRSkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM3MC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzcxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM3MjpzdGF0aWMgc3RydWN0IGNtZHFfd3FlICpjbWRxX2dldF93cWUoc3RydWN0IGhpbmljM193cSAqd3EsIHUxNiAqcGkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzczLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzozNzQ6XHRpZiAoIWhpbmljM193cV9mcmVlX3dxZWJicyh3cSkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzc1LVx0XHRyZXR1cm4gTlVMTDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zNzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Mzc3Olx0cmV0dXJuIGhpbmljM193cV9nZXRfb25lX3dxZWJiKHdxLCBwaSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzc4LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM9MzgwPXN0YXRpYyB2b2lkIGNtZHFfc2V0X2xjbWRfYnVmZGVzYyhzdHJ1Y3QgY21kcV93cWVfbGNtZCAqd3FlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM4MTpcdFx0XHRcdCAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzgyLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzozODM6XHRoaW5pYzNfc2V0X3NnZShcdTAwMjZ3cWUtXHUwMDNlYnVmX2Rlc2Muc2dlLCBidWZfaW4tXHUwMDNlZG1hX2FkZHIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzg0LVx0XHQgICAgICAgKF9fZm9yY2UgX19sZTMyKWJ1Zl9pbi1cdTAwM2VzaXplKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzg2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM4NzpzdGF0aWMgdm9pZCBjbWRxX3NldF9kYihzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Mzg4Olx0XHRcdGVudW0gaGluaWMzX2NtZHFfdHlwZSBjbWRxX3R5cGUsIHUxNiBwcm9kX2lkeClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zODkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYz00NTk9c3RhdGljIHZvaWQgY21kcV9zZXRfbGNtZF93cWUoc3RydWN0IGNtZHFfd3FlICp3cWUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNDYwLVx0XHRcdCAgICAgIGVudW0gY21kcV9jbWRfdHlwZSBjbWRfdHlwZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo0NjE6XHRcdFx0ICAgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NDYyOlx0XHRcdCAgICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX291dCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy00NjMtXHRcdFx0ICAgICAgdTggd3JhcHBlZCwgdTggbW9kLCB1OCBjbWQsIHUxNiBwcm9kX2lkeClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNDg0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjQ4NTpzdGF0aWMgaW50IGhpbmljM19jbWRxX3N5bmNfdGltZW91dF9jaGVjayhzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNDg2LVx0XHRcdFx0XHQgIHN0cnVjdCBjbWRxX3dxZSAqd3FlLCB1MTYgcGkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTUwMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo1MDQ6c3RhdGljIHZvaWQgY2xlYXJfY21kX2luZm8oc3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpjbWRfaW5mbyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo1MDU6XHRcdFx0ICAgY29uc3Qgc3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpzYXZlZF9jbWRfaW5mbylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01MDYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01MTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTE3OnN0YXRpYyBpbnQgd2FpdF9jbWRxX3N5bmNfY21kX2NvbXBsZXRpb24oc3RydWN0IGhpbmljM19jbWRxICpjbWRxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjUxODpcdFx0XHRcdFx0IHN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyAqY21kX2luZm8sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTE5Olx0XHRcdFx0XHQgc3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpzYXZlZF9jbWRfaW5mbyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01MjAtXHRcdFx0XHRcdCB1NjQgY3Vycl9tc2dfaWQsIHUxNiBjdXJyX3Byb2RfaWR4LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NDAtXHRpZiAoY3Vycl9tc2dfaWQgPT0gY21kX2luZm8tXHUwMDNlY21kcV9tc2dfaWQpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo1NDE6XHRcdGVyciA9IGhpbmljM19jbWRxX3N5bmNfdGltZW91dF9jaGVjayhjbWRxLCBjdXJyX3dxZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NDItXHRcdFx0XHRcdFx0ICAgICBjdXJyX3Byb2RfaWR4KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTU1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU1NjpcdGhpbmljM19kdW1wX2NlcV9pbmZvKGNtZHEtXHUwMDNlaHdkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU1Ny1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTYwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU2MTpzdGF0aWMgaW50IGNtZHFfc3luY19jbWRfZXhlYyhzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsIHU4IG1vZCwgdTggY21kLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU2MjpcdFx0XHQgICAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9pbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo1NjM6XHRcdFx0ICAgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfb3V0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU2NC1cdFx0XHQgICAgICBfX2xlNjQgKm91dF9wYXJhbSwgdTggY21kX3R5cGUsIHU4IHdxZV9jbWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTY1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo1NjY6XHRzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKmNtZF9pbmZvLCBzYXZlZF9jbWRfaW5mbztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NjctXHRpbnQgY21wdF9jb2RlID0gQ01EUV9TRU5EX0NNUFRfQ09ERTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NjgtXHRzdHJ1Y3QgY21kcV93cWUgKmN1cnJfd3FlLCB3cWUgPSB7fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo1Njk6XHRzdHJ1Y3QgaGluaWMzX3dxICp3cSA9IFx1MDAyNmNtZHEtXHUwMDNld3E7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTcwLVx0dTE2IGN1cnJfcHJvZF9pZHgsIG5leHRfcHJvZF9pZHg7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTYzNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2MzU6c3RhdGljIGludCBjbWRxX3N5bmNfY21kX2RpcmVjdF9yZXNwKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSwgdTggbW9kLCB1OCBjbWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjM2Olx0XHRcdFx0ICAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9pbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02MzctXHRcdFx0XHQgICAgIF9fbGU2NCAqb3V0X3BhcmFtKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjQ0OnN0YXRpYyBpbnQgY21kcV9zeW5jX2NtZF9kZXRhaWxfcmVzcChzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsIHU4IG1vZCwgdTggY21kLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY0NTpcdFx0XHRcdCAgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjQ2Olx0XHRcdFx0ICAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9vdXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjQ3LVx0XHRcdFx0ICAgICBfX2xlNjQgKm91dF9wYXJhbSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjUzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY1NDppbnQgaGluaWMzX2NtZF9idWZfcGFpcl9pbml0KHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY1NTpcdFx0XHQgICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1Zl9wYWlyICpwYWlyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY1Ni17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjU3Olx0cGFpci1cdTAwM2VpbiA9IGhpbmljM19hbGxvY19jbWRfYnVmKGh3ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NTgtXHRpZiAoIXBhaXItXHUwMDNlaW4pXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY2MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2NjE6XHRwYWlyLVx1MDAzZW91dCA9IGhpbmljM19hbGxvY19jbWRfYnVmKGh3ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NjItXHRpZiAoIXBhaXItXHUwMDNlb3V0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NjctZXJyX2ZyZWVfY21kX2J1Zl9pbjpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2Njg6XHRoaW5pYzNfZnJlZV9jbWRfYnVmKGh3ZGV2LCBwYWlyLVx1MDAzZWluKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NjktZXJyX291dDpcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjcyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY3Mzp2b2lkIGhpbmljM19jbWRfYnVmX3BhaXJfdW5pbml0KHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY3NDpcdFx0XHRcdHN0cnVjdCBoaW5pYzNfY21kX2J1Zl9wYWlyICpwYWlyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY3NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Njc2Olx0aGluaWMzX2ZyZWVfY21kX2J1Zihod2RldiwgcGFpci1cdTAwM2Vpbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Njc3Olx0aGluaWMzX2ZyZWVfY21kX2J1Zihod2RldiwgcGFpci1cdTAwM2VvdXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY3OC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjc5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY4MDppbnQgaGluaWMzX2NtZHFfZGlyZWN0X3Jlc3Aoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsIHU4IG1vZCwgdTggY21kLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY4MTpcdFx0XHQgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4sIF9fbGU2NCAqb3V0X3BhcmFtKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY4Mi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjgzOlx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjg0LVx0aW50IGVycjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjcxMzppbnQgaGluaWMzX2NtZHFfZGV0YWlsX3Jlc3Aoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsIHU4IG1vZCwgdTggY21kLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjcxNDpcdFx0XHQgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzE1Olx0XHRcdCAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9vdXQsIF9fbGU2NCAqb3V0X3BhcmFtKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTcxNi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzE3Olx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzE4LVx0aW50IGVycjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzQ1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjc0NjpzdGF0aWMgdm9pZCBjbWRxX2luaXRfcXVldWVfY3R4dChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldiwgdTggY21kcV9pZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NDctXHRcdFx0XHQgc3RydWN0IGNvbW1fY21kcV9jdHh0X2luZm8gKmN0eHRfaW5mbylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NDgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjc0OTpcdGNvbnN0IHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc1MC1cdHU2NCBjbWRxX2ZpcnN0X2Jsb2NrX3BhZGRyLCBwZm47XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzUxOlx0Y29uc3Qgc3RydWN0IGhpbmljM193cSAqd3E7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzUyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NTQtXHR3cSA9IFx1MDAyNmNtZHFzLVx1MDAzZWNtZHFbY21kcV9pZF0ud3E7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzU1Olx0cGZuID0gQ01EUV9QRk4oaGluaWMzX3dxX2dldF9maXJzdF93cWVfcGFnZV9hZGRyKHdxKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzU2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzY0Olx0aWYgKCFoaW5pYzNfd3FfaXNfMF9sZXZlbF9jbGEod3EpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzY1LVx0XHRjbWRxX2ZpcnN0X2Jsb2NrX3BhZGRyID0gY21kcXMtXHUwMDNld3FfYmxvY2tfcGFkZHI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3NzM6c3RhdGljIGludCBpbml0X2NtZHEoc3RydWN0IGhpbmljM19jbWRxICpjbWRxLCBzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3NzQ6XHRcdCAgICAgZW51bSBoaW5pYzNfY21kcV90eXBlIHFfdHlwZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NzUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03OTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzkzOnN0YXRpYyBpbnQgaGluaWMzX3NldF9jbWRxX2N0eHQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsIHU4IGNtZHFfaWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzk0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzk5LVx0Y21kcV9pbml0X3F1ZXVlX2N0eHQoaHdkZXYsIGNtZHFfaWQsIFx1MDAyNmNtZHFfY3R4dC5jdHh0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4MDA6XHRjbWRxX2N0eHQuZnVuY19pZCA9IGhpbmljM19nbG9iYWxfZnVuY19pZChod2Rldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODAxLVx0Y21kcV9jdHh0LmNtZHFfaWQgPSBjbWRxX2lkO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04MDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODA2Olx0ZXJyID0gaGluaWMzX3NlbmRfbWJveF90b19tZ210KGh3ZGV2LCBNR01UX01PRF9DT01NLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgwNy1cdFx0XHRcdCAgICAgICBDT01NX0NNRF9TRVRfQ01EUV9DVFhULCBcdTAwMjZtc2dfcGFyYW1zKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjgxNzpzdGF0aWMgaW50IGhpbmljM19zZXRfY21kcV9jdHh0cyhzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04MTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjgxOTpcdHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzID0gaHdkZXYtXHUwMDNlY21kcXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODIwLVx0dTggY21kcV90eXBlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04MjMtXHRmb3IgKGNtZHFfdHlwZSA9IDA7IGNtZHFfdHlwZSBcdTAwM2MgY21kcXMtXHUwMDNlY21kcV9udW07IGNtZHFfdHlwZSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4MjQ6XHRcdGVyciA9IGhpbmljM19zZXRfY21kcV9jdHh0KGh3ZGV2LCBjbWRxX3R5cGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgyNS1cdFx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjgzNTpzdGF0aWMgaW50IGNyZWF0ZV9jbWRxX3dxKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjgzNjpcdFx0XHQgIHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgzNy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg0MS1cdGZvciAoY21kcV90eXBlID0gMDsgY21kcV90eXBlIFx1MDAzYyBjbWRxcy1cdTAwM2VjbWRxX251bTsgY21kcV90eXBlJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjg0MjpcdFx0ZXJyID0gaGluaWMzX3dxX2NyZWF0ZShod2RldiwgXHUwMDI2Y21kcXMtXHUwMDNlY21kcVtjbWRxX3R5cGVdLndxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg0My1cdFx0XHRcdCAgICAgICBDTURRX0RFUFRILCBDTURRX1dRRUJCX1NJWkUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04NTItXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4NTM6XHRpZiAoIWhpbmljM193cV9pc18wX2xldmVsX2NsYShcdTAwMjZjbWRxcy1cdTAwM2VjbWRxW0hJTklDM19DTURRX1NZTkNdLndxKSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg1NC1cdFx0aWYgKGNtZHFzLVx1MDAzZWNtZHFbSElOSUMzX0NNRFFfU1lOQ10ud3EucXBhZ2VzLm51bV9wYWdlcyBcdTAwM2Vcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODgzLVx0XHRjbWRxX3R5cGUtLTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4ODQ6XHRcdGhpbmljM193cV9kZXN0cm95KGh3ZGV2LCBcdTAwMjZjbWRxcy1cdTAwM2VjbWRxW2NtZHFfdHlwZV0ud3EpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg4NS1cdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODg5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjg5MDpzdGF0aWMgdm9pZCBkZXN0cm95X2NtZHFfd3Eoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODkxOlx0XHRcdCAgICBzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04OTIte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04OTktXHRmb3IgKGNtZHFfdHlwZSA9IDA7IGNtZHFfdHlwZSBcdTAwM2MgY21kcXMtXHUwMDNlY21kcV9udW07IGNtZHFfdHlwZSYjNDM7JiM0MzspXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTAwOlx0XHRoaW5pYzNfd3FfZGVzdHJveShod2RldiwgXHUwMDI2Y21kcXMtXHUwMDNlY21kcVtjbWRxX3R5cGVdLndxKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05MDEtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTkwMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5MDM6c3RhdGljIGludCBpbml0X2NtZHFzKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTkwNC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTA1Olx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTA2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05MTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTE1Olx0Y21kcXMtXHUwMDNlY21kX2J1Zl9wb29sID0gZG1hX3Bvb2xfY3JlYXRlKFwmIzM0O2hpbmljM19jbWRxXCYjMzQ7LCBod2Rldi1cdTAwM2VkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTE2LVx0XHRcdFx0XHQgICAgICBDTURRX0JVRl9TSVpFLCBDTURRX0JVRl9TSVpFLCAwKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTI1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjkyNjpzdGF0aWMgdm9pZCBjbWRxX2ZsdXNoX3N5bmNfY21kKHN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyAqY21kX2luZm8pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTI3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTQ2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk0NzpzdGF0aWMgdm9pZCBoaW5pYzNfY21kcV9mbHVzaF9jbWQoc3RydWN0IGhpbmljM19jbWRxICpjbWRxKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk0OC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTQ5Olx0c3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpjbWRfaW5mbztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NTAtXHR1MTYgY2k7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk1My1cdHdoaWxlIChjbWRxX3JlYWRfd3FlKFx1MDAyNmNtZHEtXHUwMDNld3EsIFx1MDAyNmNpKSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk1NDpcdFx0aGluaWMzX3dxX3B1dF93cWViYnMoXHUwMDI2Y21kcS1cdTAwM2V3cSwgQ01EUV9XUUVfTlVNX1dRRUJCUyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTU1LVx0XHRjbWRfaW5mbyA9IFx1MDAyNmNtZHEtXHUwMDNlY21kX2luZm9zW2NpXTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTYyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk2Mzp2b2lkIGhpbmljM19jbWRxX2ZsdXNoX3N5bmNfY21kKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk2NC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTY1Olx0c3RydWN0IGhpbmljM19jbWRxICpjbWRxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk2Ni1cdHUxNiB3cWVfY250LCB3cWVfaWR4LCBpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk2NzpcdHN0cnVjdCBoaW5pYzNfd3EgKndxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk2OC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTcxLVx0d3EgPSBcdTAwMjZjbWRxLVx1MDAzZXdxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk3MjpcdHdxZV9jbnQgPSBoaW5pYzNfd3FfZ2V0X3VzZWQod3EpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk3My1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIHdxZV9jbnQ7IGkmIzQzOyYjNDM7KSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk3OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5ODA6c3RhdGljIHZvaWQgaGluaWMzX2NtZHFfcmVzZXRfYWxsX2NtZF9idWYoc3RydWN0IGhpbmljM19jbWRxICpjbWRxKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk4MS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk4Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5ODg6aW50IGhpbmljM19yZWluaXRfY21kcV9jdHh0cyhzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05ODkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk5MDpcdHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzID0gaHdkZXYtXHUwMDNlY21kcXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTkxLVx0dTggY21kcV90eXBlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05OTMtXHRmb3IgKGNtZHFfdHlwZSA9IDA7IGNtZHFfdHlwZSBcdTAwM2MgY21kcXMtXHUwMDNlY21kcV9udW07IGNtZHFfdHlwZSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5OTQ6XHRcdGhpbmljM19jbWRxX2ZsdXNoX2NtZChcdTAwMjZjbWRxcy1cdTAwM2VjbWRxW2NtZHFfdHlwZV0pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk5NTpcdFx0aGluaWMzX2NtZHFfcmVzZXRfYWxsX2NtZF9idWYoXHUwMDI2Y21kcXMtXHUwMDNlY21kcVtjbWRxX3R5cGVdKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05OTYtXHRcdGNtZHFzLVx1MDAzZWNtZHFbY21kcV90eXBlXS53cmFwcGVkID0gMTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5OTc6XHRcdGhpbmljM193cV9yZXNldChcdTAwMjZjbWRxcy1cdTAwM2VjbWRxW2NtZHFfdHlwZV0ud3EpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk5OC1cdH1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05OTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTAwMDpcdHJldHVybiBoaW5pYzNfc2V0X2NtZHFfY3R4dHMoaHdkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwMDEtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwMDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTAwMzppbnQgaGluaWMzX2NtZHFzX2luaXQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTAwNC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTAwNTpcdHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwMDYtXHR2b2lkIF9faW9tZW0gKmRiX2Jhc2U7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwMTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTAxOTpcdGVyciA9IGhpbmljM19hbGxvY19kYl9hZGRyKGh3ZGV2LCBcdTAwMjZkYl9iYXNlLCBOVUxMKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDIwLVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDM1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwMzY6XHRlcnIgPSBoaW5pYzNfc2V0X2NtZHFfY3R4dHMoaHdkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwMzctXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDQ3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwNDg6XHRoaW5pYzNfZnJlZV9kYl9hZGRyKGh3ZGV2LCBjbWRxcy1cdTAwM2VjbWRxc19kYl9iYXNlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDQ5LWVycl9kZXN0cm95X2NtZHFfd3E6XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTA1ODp2b2lkIGhpbmljM19jbWRxc19mcmVlKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNTkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwNjA6XHRzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcyA9IGh3ZGV2LVx1MDAzZWNtZHFzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNjEtXHR1OCBjbWRxX3R5cGU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNjUtXHRmb3IgKGNtZHFfdHlwZSA9IDA7IGNtZHFfdHlwZSBcdTAwM2MgY21kcXMtXHUwMDNlY21kcV9udW07IGNtZHFfdHlwZSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDY2Olx0XHRoaW5pYzNfY21kcV9mbHVzaF9jbWQoXHUwMDI2Y21kcXMtXHUwMDNlY21kcVtjbWRxX3R5cGVdKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDY3Olx0XHRoaW5pYzNfY21kcV9yZXNldF9hbGxfY21kX2J1ZihcdTAwMjZjbWRxcy1cdTAwM2VjbWRxW2NtZHFfdHlwZV0pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNjgtXHRcdGtmcmVlKGNtZHFzLVx1MDAzZWNtZHFbY21kcV90eXBlXS5jbWRfaW5mb3MpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDcwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwNzE6XHRoaW5pYzNfZnJlZV9kYl9hZGRyKGh3ZGV2LCBjbWRxcy1cdTAwM2VjbWRxc19kYl9iYXNlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDcyLVx0ZGVzdHJveV9jbWRxX3dxKGh3ZGV2LCBjbWRxcyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTA3Nzpib29sIGhpbmljM19jbWRxX2lkbGUoc3RydWN0IGhpbmljM19jbWRxICpjbWRxKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNzgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwNzk6XHRyZXR1cm4gaGluaWMzX3dxX2dldF91c2VkKFx1MDAyNmNtZHEtXHUwMDNld3EpID09IDA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTA4MC19XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6OTojaW5jbHVkZSBcJiMzNDtoaW5pYzNfaHdfaW50Zi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTA6I2luY2x1ZGUgXCYjMzQ7aGluaWMzX3dxLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg9MjU9c3RydWN0IGNtZHFfbGNtZF9idWZkZXNjIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoyNjpcdHN0cnVjdCBoaW5pYzNfc2dlIHNnZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0yNy1cdF9fbGU2NCAgICAgICAgICAgIHJzdmQyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaD00ND1zdHJ1Y3QgY21kcV9jb21wbGV0aW9uIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC00NS1cdHVuaW9uIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDo0NjpcdFx0c3RydWN0IGhpbmljM19zZ2UgICAgICAgc2dlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTQ3LVx0XHRzdHJ1Y3QgY21kcV9kaXJlY3RfcmVzcCBkaXJlY3Q7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oPTc1PXN0YXRpY19hc3NlcnQoc2l6ZW9mKHN0cnVjdCBjbWRxX3dxZSkgPT0gNjQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTc2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjc3OmVudW0gaGluaWMzX2NtZHFfdHlwZSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtNzgtXHRISU5JQzNfQ01EUV9TWU5DICAgICAgPSAwLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC04MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDo4MjplbnVtIGhpbmljM19jbWRxX3N0YXR1cyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtODMtXHRISU5JQzNfQ01EUV9FTkFCTEUgPSBCSVQoMCksXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjg2OmVudW0gaGluaWMzX2NtZHFfY21kX3R5cGUge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTg3LVx0SElOSUMzX0NNRF9UWVBFX05PTkUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTk1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjk2OnN0cnVjdCBoaW5pYzNfY21kX2J1ZiB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtOTctXHR2b2lkICAgICAgICpidWY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTEwMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMDM6c3RydWN0IGhpbmljM19jbWRfYnVmX3BhaXIge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEwNDpcdHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqaW47XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTA1Olx0c3RydWN0IGhpbmljM19jbWRfYnVmICpvdXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTA2LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTA3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEwODpzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEwOTpcdGVudW0gaGluaWMzX2NtZHFfY21kX3R5cGUgY21kX3R5cGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTEwLVx0c3RydWN0IGNvbXBsZXRpb24gICAgICAgICAqZG9uZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTE1LVx0dTY0ICAgICAgICAgICAgICAgICAgICAgICBjbWRxX21zZ19pZDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMTY6XHRzdHJ1Y3QgaGluaWMzX2NtZF9idWYgICAgICpidWZfaW47XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTE3Olx0c3RydWN0IGhpbmljM19jbWRfYnVmICAgICAqYnVmX291dDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMTgtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTIwOnN0cnVjdCBoaW5pYzNfY21kcSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTIxOlx0c3RydWN0IGhpbmljM193cSAgICAgICAgICAgIHdxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEyMjpcdGVudW0gaGluaWMzX2NtZHFfdHlwZSAgICAgICBjbWRxX3R5cGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTIzLVx0dTggICAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBwZWQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTEyNS1cdHNwaW5sb2NrX3QgICAgICAgICAgICAgICAgICBjbWRxX2xvY2s7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTI2Olx0c3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpjbWRfaW5mb3M7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTI3Olx0c3RydWN0IGhpbmljM19od2RldiAgICAgICAgICpod2RldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMjgtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTMwOnN0cnVjdCBoaW5pYzNfY21kcXMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEzMTpcdHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEzMjpcdHN0cnVjdCBoaW5pYzNfY21kcSAgY21kcVtISU5JQzNfTUFYX0NNRFFfVFlQRVNdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTEzMy1cdHN0cnVjdCBkbWFfcG9vbCAgICAgKmNtZF9idWZfcG9vbDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTQ4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE0OTppbnQgaGluaWMzX2NtZHFzX2luaXQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE1MDp2b2lkIGhpbmljM19jbWRxc19mcmVlKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xNTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTUyOnN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqaGluaWMzX2FsbG9jX2NtZF9idWYoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE1Mzp2b2lkIGhpbmljM19mcmVlX2NtZF9idWYoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTU0Olx0XHRcdCBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmNtZF9idWYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE1NTp2b2lkIGhpbmljM19jbWRxX2NlcV9oYW5kbGVyKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LCBfX2xlMzIgY2VxZV9kYXRhKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xNTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTU3OmludCBoaW5pYzNfY21kX2J1Zl9wYWlyX2luaXQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTU4Olx0XHRcdCAgICAgc3RydWN0IGhpbmljM19jbWRfYnVmX3BhaXIgKnBhaXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE1OTp2b2lkIGhpbmljM19jbWRfYnVmX3BhaXJfdW5pbml0KHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2MDpcdFx0XHRcdHN0cnVjdCBoaW5pYzNfY21kX2J1Zl9wYWlyICpwYWlyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNjE6aW50IGhpbmljM19jbWRxX2RpcmVjdF9yZXNwKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LCB1OCBtb2QsIHU4IGNtZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNjI6XHRcdFx0ICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX2luLCBfX2xlNjQgKm91dF9wYXJhbSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTYzOmludCBoaW5pYzNfY21kcV9kZXRhaWxfcmVzcChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldiwgdTggbW9kLCB1OCBjbWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTY0Olx0XHRcdCAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9pbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNjU6XHRcdFx0ICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX291dCwgX19sZTY0ICpvdXRfcGFyYW0pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTE2Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNjc6dm9pZCBoaW5pYzNfY21kcV9mbHVzaF9zeW5jX2NtZChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2Rldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTY4OmludCBoaW5pYzNfcmVpbml0X2NtZHFfY3R4dHMoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2OTpib29sIGhpbmljM19jbWRxX2lkbGUoc3RydWN0IGhpbmljM19jbWRxICpjbWRxKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xNzAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmMtNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NvbW1vbi5jOjg6I2luY2x1ZGUgXCYjMzQ7aGluaWMzX2NvbW1vbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYy05LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmM6MTA6aW50IGhpbmljM19kbWFfemFsbG9jX2NvaGVyZW50X2FsaWduKHN0cnVjdCBkZXZpY2UgKmRldiwgdTMyIHNpemUsIHUzMiBhbGlnbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NvbW1vbi5jLTExLVx0XHRcdFx0ICAgICBnZnBfdCBmbGFnLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmM6MTI6XHRcdFx0XHQgICAgIHN0cnVjdCBoaW5pYzNfZG1hX2FkZHJfYWxpZ24gKm1lbV9hbGlnbilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NvbW1vbi5jLTEzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYy00OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NvbW1vbi5jOjQ5OnZvaWQgaGluaWMzX2RtYV9mcmVlX2NvaGVyZW50X2FsaWduKHN0cnVjdCBkZXZpY2UgKmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NvbW1vbi5jOjUwOlx0XHRcdFx0ICAgIHN0cnVjdCBoaW5pYzNfZG1hX2FkZHJfYWxpZ24gKm1lbV9hbGlnbilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NvbW1vbi5jLTUxLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYy01NS1cblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDEyOjAxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5OTQ3CgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogNjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBOZXR3b3JrIERyaXZlcioqCgpPa2F5LCBzbyB0aGUgZHJpdmVyIGluIHF1ZXN0aW9uIGlzIGxvY2F0ZWQgYXQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsICYjMzQ7SG1tLCBpcyB0aGlzIGEgUENJZSBkcml2ZXIsIEkgd29uZGVyPyYjMzQ7IEdpdmVuIHRoZSBsb2NhdGlvbiwgdGhhdCYjMzk7cyBhIHJlYXNvbmFibGUgYXNzdW1wdGlvbiwgYnV0IEkgbmVlZCB0byBjb25maXJtLiBJJiMzOTtsbCBuZWVkIHRvIGRpZyBpbnRvIHRoZSBjb2RlIHRvIGJlIHN1cmUuIE15IG5leHQgc3RlcCB3aWxsIGJlIHRvIGV4YW1pbmUgdGhlIHNvdXJjZSBmaWxlcyBmb3IgdGhhdCBkcml2ZXIsIHNwZWNpZmljYWxseSBmb2N1c2luZyBvbiBgaGluaWMzX21haW4uY2AgYW5kIGBoaW5pYzNfaHdkZXYuY2AuIFRob3NlIGZpbGVzIHNob3VsZCBwcm92aWRlIGNsZWFyIGNsdWVzIGFib3V0IHRoZSBoYXJkd2FyZSBpdCYjMzk7cyBpbnRlcmZhY2luZyB3aXRoLCBjb25maXJtaW5nIGlmIGl0JiMzOTtzIGluZGVlZCBhIFBDSSBkZXZpY2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTI6MDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGNpX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2xsZC5jPTQzNj1zdGF0aWMgdm9pZCBoaW5pYzNfc2h1dGRvd24oc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfbGxkLmMtNDQ1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfbGxkLmM6NDQ2OnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBoaW5pYzNfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfbGxkLmMtNDQ3LVx0Lm5hbWUgICAgICAgICAgICA9IEhJTklDM19OSUNfRFJWX05BTUUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTI6MDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAzNTgKCQkJCQkJCW91dHB1dDogNzkKCQkJCQkJCXRob3VnaHRzOiA1MjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nIERlY2lzaW9uIGZvciBoaW5pYzMgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCYjMzk7cyBoaXR0aW5nIHRoZSBgaGluaWMzX2RyaXZlcmAuIFJpZ2h0IGF3YXksIHRoZSBwcm9tcHQganVtcHMgb3V0IGF0IG1lOiAmIzM0O1JldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6IC0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycy4uLiB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4mIzM0OwoKTGV0JiMzOTtzIHRoaW5rLiBJcyBgaGluaWMzYCBhIHZlbmRvci1zcGVjaWZpYyBTbWFydE5JQyBvciBOSUMgZHJpdmVyIHRoYXQgZGVtYW5kcyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiB0aGUgdXN1YWwgUUVNVSBzZXR1cHM/IFllcywgYGhpbmljM2Ag4oCTIEh1YXdlaSBJbnRlbGxpZ2VudCBOSUMg4oCTIGlzIGRlZmluaXRlbHkgdmVuZG9yLXNwZWNpZmljIGFuZCBoYXJkd2FyZS1kZXBlbmRlbnQuIEkmIzM5O2xsIHF1aWNrbHkgY2hlY2sgZm9yIGFueSBRRU1VIGVtdWxhdGlvbi4gVXN1YWxseSwgeW91JiMzOTtkIHNlZSB0aGluZ3MgbGlrZSBlMTAwMCwgdmlydGlvLW5ldCwgZXRjLiwgYnV0IG5vdGhpbmcgZm9yIGBoaW5pYzNgLiBOb3BlLCBubyBlbXVsYXRpb24uCgpTbywgaXQmIzM5O3MgY2xlYXI6IGBoaW5pYzNgIGZpdHMgc3F1YXJlbHkgaW50byB0aGF0IGNhdGVnb3J5IHNwZWNpZmllZCBpbiB0aGUgcHJvbXB0LiBJdCYjMzk7cyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIE5JQyBkcml2ZXIsIGFuZCBpdCYjMzk7cyBnb2luZyB0byBiZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdvb2dsZSBDb21wdXRlIEVuZ2luZSBvciBRRU1VLiBJdCYjMzk7cyBmdW5kYW1lbnRhbGx5IHRpZWQgdG8gdGhlIGhhcmR3YXJlLgoKVGhlcmVmb3JlLCB0aGUgZGVjaXNpb24mIzM5O3MgY2xlYXI6IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJIG5lZWQgdG8gY29uZmlybSB0aGUgc3BlY2lmaWMgZmlsZXMgbW9kaWZpZWQgYnkgdGhlIHBhdGNoLiBPaCwgaXQgbW9kaWZpZXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmNgLiBZZXMsIHRoYXQgY29uZmlybXMgaXQg4oCTIGV4YWN0bHkgdGhhdCB2ZW5kb3Itc3BlY2lmaWMgUENJZSBOSUMgZHJpdmVyLiBUaGVyZWZvcmUsIGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKVGhlIHJlYXNvbmluZyBpcyB0aGF0IHRoZSBwYXRjaCBpbXBhY3RzIHRoZSBIdWF3ZWkgSW50ZWxsaWdlbnQgTklDIChgaGluaWMzYCkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlci4gVGhpcyBoYXJkd2FyZSBpc24mIzM5O3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UsIG1ha2luZyB0aGUgY29kZSBpbmFjY2Vzc2libGUgZm9yIGZ1enppbmcuIFRodXMsIGl0IGlzIG5vdCB3b3J0aCBmdXp6aW5nLiBJIGp1c3Qgd2FudCB0byBkb3VibGUtY2hlY2sgdGhlcmUgYXJlbiYjMzk7dCBhbnkgb3RoZXIgY2hhbmdlcy4gTm9wZSwgb25seSB0aGF0IGZpbGUuIENvbmNsdXNpb246IHNhZmUgdG8gc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDEyOjAxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEh1YXdlaSBJbnRlbGxpZ2VudCBOSUMgKGhpbmljMykgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGRyaXZlci4gVGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIGNvZGUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgSHVhd2VpIEludGVsbGlnZW50IE5JQyAoaGluaWMzKSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgaGFyZHdhcmUgZHJpdmVyLiBUaGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudHMsIG1ha2luZyB0aGUgY29kZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTI6MDE8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDEyOjAxOjM2LjIyMTk0OTIwN1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4NTc5ODgxMTY3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEh1YXdlaSBJbnRlbGxpZ2VudCBOSUMgKGhpbmljMykgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGRyaXZlci4gVGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIGNvZGUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxMjowMTozNi4yMjE5NTQ2NDdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQwNTYyNDgxNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDZkOTI0ZjA2NWExMjM0NjgzZjQ4ZmFhNzAwYzA5NDUxOWI4N2M2ZmJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBBdWcgMTEgMTI6MDE6MzUgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmNcXG5pbmRleCA5MzA2YmYwMDIwY2FmLi5jYzU0MWU3YTIzMTg2IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jXFxuQEAgLTI2MSw4ICsyNjEsNyBAQCBzdGF0aWMgaW50IGhpbmljM190eF9jc3VtKHN0cnVjdCBoaW5pYzNfdHhxICp0eHEsIHN0cnVjdCBoaW5pYzNfc3FfdGFzayAqdGFzayxcXG4gXFx0XFx0ICAgICgoc3RydWN0IHVkcGhkciAqKXNrYl90cmFuc3BvcnRfaGVhZGVyKHNrYikpLVxcdTAwM2VkZXN0ICE9XFxuIFxcdFxcdCAgICBWWExBTl9PRkZMT0FEX1BPUlRfTEUpIHtcXG4gXFx0XFx0XFx0LyogVW5zdXBwb3J0ZWQgdHVubmVsIHBhY2tldCwgZGlzYWJsZSBjc3VtIG9mZmxvYWQgKi9cXG4tXFx0XFx0XFx0c2tiX2NoZWNrc3VtX2hlbHAoc2tiKTtcXG4tXFx0XFx0XFx0cmV0dXJuIDA7XFxuK1xcdFxcdFxcdHJldHVybiBza2JfY2hlY2tzdW1faGVscChza2IpO1xcbiBcXHRcXHR9XFxuIFxcdH1cXG4gXFxuQEAgLTQxMiw2ICs0MTEsMTAgQEAgc3RhdGljIHUzMiBoaW5pYzNfdHhfb2ZmbG9hZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgaGluaWMzX3NxX3Rhc2sgKnRhc2ssXFxuIFxcdFxcdG9mZmxvYWQgfD0gSElOSUMzX1RYX09GRkxPQURfVFNPO1xcbiBcXHR9IGVsc2Uge1xcbiBcXHRcXHR0c29fY3NfZW4gPSBoaW5pYzNfdHhfY3N1bSh0eHEsIHRhc2ssIHNrYik7XFxuK1xcdFxcdGlmICh0c29fY3NfZW4gXFx1MDAzYyAwKSB7XFxuK1xcdFxcdFxcdG9mZmxvYWQgPSBISU5JQzNfVFhfT0ZGTE9BRF9JTlZBTElEO1xcbitcXHRcXHRcXHRyZXR1cm4gb2ZmbG9hZDtcXG4rXFx0XFx0fVxcbiBcXHRcXHRpZiAodHNvX2NzX2VuKVxcbiBcXHRcXHRcXHRvZmZsb2FkIHw9IEhJTklDM19UWF9PRkZMT0FEX0NTVU07XFxuIFxcdH1cXG5AQCAtNTQ1LDYgKzU0OCw3IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBoaW5pYzNfc2VuZF9vbmVfc2tiKHN0cnVjdCBza19idWZmICpza2IsXFxuIFxcdFxcdHNrYi1cXHUwMDNlbGVuID0gTUlOX1NLQl9MRU47XFxuIFxcdH1cXG4gXFxuK1xcdG9mZmxvYWQgPSBoaW5pYzNfdHhfb2ZmbG9hZChza2IsIFxcdTAwMjZ0YXNrLCBcXHUwMDI2cXVldWVfaW5mbywgdHhxKTtcXG4gXFx0bnVtX3NnZSA9IHNrYl9zaGluZm8oc2tiKS1cXHUwMDNlbnJfZnJhZ3MgKyAxO1xcbiBcXHQvKiBhc3N1bWUgbm9ybWFsIHdxZSBmb3JtYXQgKyAxIHdxZWJiIGZvciB0YXNrIGluZm8gKi9cXG4gXFx0d3FlYmJfY250ID0gbnVtX3NnZSArIDE7XFxuQEAgLTU2MCw3ICs1NjQsNiBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaGluaWMzX3NlbmRfb25lX3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbiBcXHRcXHRyZXR1cm4gTkVUREVWX1RYX0JVU1k7XFxuIFxcdH1cXG4gXFxuLVxcdG9mZmxvYWQgPSBoaW5pYzNfdHhfb2ZmbG9hZChza2IsIFxcdTAwMjZ0YXNrLCBcXHUwMDI2cXVldWVfaW5mbywgdHhxKTtcXG4gXFx0aWYgKHVubGlrZWx5KG9mZmxvYWQgPT0gSElOSUMzX1RYX09GRkxPQURfSU5WQUxJRCkpIHtcXG4gXFx0XFx0Z290byBlcnJfZHJvcF9wa3Q7XFxuIFxcdH0gZWxzZSBpZiAoIW9mZmxvYWQpIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMTI6MDE6MzYuNjI4MzY1MjU0WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MTgxNzM0NTEzNDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBIdWF3ZWkgSW50ZWxsaWdlbnQgTklDIChoaW5pYzMpIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBoYXJkd2FyZSBkcml2ZXIuIFRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cywgbWFraW5nIHRoZSBjb2RlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNmQ5MjRmMDY1YTEyMzQ2ODNmNDhmYWE3MDBjMDk0NTE5Yjg3YzZmYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgQXVnIDExIDEyOjAxOjM1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmNcbmluZGV4IDkzMDZiZjAwMjBjYWYuLmNjNTQxZTdhMjMxODYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jXG5AQCAtMjYxLDggKzI2MSw3IEBAIHN0YXRpYyBpbnQgaGluaWMzX3R4X2NzdW0oc3RydWN0IGhpbmljM190eHEgKnR4cSwgc3RydWN0IGhpbmljM19zcV90YXNrICp0YXNrLFxuIFx0XHQgICAgKChzdHJ1Y3QgdWRwaGRyICopc2tiX3RyYW5zcG9ydF9oZWFkZXIoc2tiKSktXHUwMDNlZGVzdCAhPVxuIFx0XHQgICAgVlhMQU5fT0ZGTE9BRF9QT1JUX0xFKSB7XG4gXHRcdFx0LyogVW5zdXBwb3J0ZWQgdHVubmVsIHBhY2tldCwgZGlzYWJsZSBjc3VtIG9mZmxvYWQgKi9cbi1cdFx0XHRza2JfY2hlY2tzdW1faGVscChza2IpO1xuLVx0XHRcdHJldHVybiAwO1xuK1x0XHRcdHJldHVybiBza2JfY2hlY2tzdW1faGVscChza2IpO1xuIFx0XHR9XG4gXHR9XG4gXG5AQCAtNDEyLDYgKzQxMSwxMCBAQCBzdGF0aWMgdTMyIGhpbmljM190eF9vZmZsb2FkKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBoaW5pYzNfc3FfdGFzayAqdGFzayxcbiBcdFx0b2ZmbG9hZCB8PSBISU5JQzNfVFhfT0ZGTE9BRF9UU087XG4gXHR9IGVsc2Uge1xuIFx0XHR0c29fY3NfZW4gPSBoaW5pYzNfdHhfY3N1bSh0eHEsIHRhc2ssIHNrYik7XG4rXHRcdGlmICh0c29fY3NfZW4gXHUwMDNjIDApIHtcbitcdFx0XHRvZmZsb2FkID0gSElOSUMzX1RYX09GRkxPQURfSU5WQUxJRDtcbitcdFx0XHRyZXR1cm4gb2ZmbG9hZDtcbitcdFx0fVxuIFx0XHRpZiAodHNvX2NzX2VuKVxuIFx0XHRcdG9mZmxvYWQgfD0gSElOSUMzX1RYX09GRkxPQURfQ1NVTTtcbiBcdH1cbkBAIC01NDUsNiArNTQ4LDcgQEAgc3RhdGljIG5ldGRldl90eF90IGhpbmljM19zZW5kX29uZV9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcdFx0c2tiLVx1MDAzZWxlbiA9IE1JTl9TS0JfTEVOO1xuIFx0fVxuIFxuK1x0b2ZmbG9hZCA9IGhpbmljM190eF9vZmZsb2FkKHNrYiwgXHUwMDI2dGFzaywgXHUwMDI2cXVldWVfaW5mbywgdHhxKTtcbiBcdG51bV9zZ2UgPSBza2Jfc2hpbmZvKHNrYiktXHUwMDNlbnJfZnJhZ3MgKyAxO1xuIFx0LyogYXNzdW1lIG5vcm1hbCB3cWUgZm9ybWF0ICsgMSB3cWViYiBmb3IgdGFzayBpbmZvICovXG4gXHR3cWViYl9jbnQgPSBudW1fc2dlICsgMTtcbkBAIC01NjAsNyArNTY0LDYgQEAgc3RhdGljIG5ldGRldl90eF90IGhpbmljM19zZW5kX29uZV9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcdFx0cmV0dXJuIE5FVERFVl9UWF9CVVNZO1xuIFx0fVxuIFxuLVx0b2ZmbG9hZCA9IGhpbmljM190eF9vZmZsb2FkKHNrYiwgXHUwMDI2dGFzaywgXHUwMDI2cXVldWVfaW5mbywgdHhxKTtcbiBcdGlmICh1bmxpa2VseShvZmZsb2FkID09IEhJTklDM19UWF9PRkZMT0FEX0lOVkFMSUQpKSB7XG4gXHRcdGdvdG8gZXJyX2Ryb3BfcGt0O1xuIFx0fSBlbHNlIGlmICghb2ZmbG9hZCkge1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMTI6MDE6MzYuNjI4MzY2NTU0WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTQ4ODcyNDgzNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBIdWF3ZWkgTklDIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGFyZ2V0aW5nIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jYC4gTXkgaW5pdGlhbCByZWFkIGlzIHRoYXQgdGhleSdyZSBmdW5kYW1lbnRhbGx5IGNoYW5naW5nIGhvdyBjaGVja3N1bSBvZmZsb2FkIGlzIGhhbmRsZWQuIFNwZWNpZmljYWxseSwgYGhpbmljM190eF9jc3VtYCBpcyBub3cgcmV0dXJuaW5nIHRoZSByZXN1bHQgb2YgYHNrYl9jaGVja3N1bV9oZWxwKHNrYilgIGluc3RlYWQgb2Ygc2ltcGx5IDAuIFRoYXQncyBhIGtleSBzaGlmdCwgYmVjYXVzZSB3ZSdyZSBubyBsb25nZXIgdW5jb25kaXRpb25hbGx5IGNsYWltaW5nIHN1Y2Nlc3MuIFdlIGFyZSBhY3R1YWxseSAqdXNpbmcqIHRoZSByZXN1bHQgb2YgdGhlIGBza2JfY2hlY2tzdW1faGVscGAgZnVuY3Rpb24hIFRoYXQgbWFrZXMgdG90YWwgc2Vuc2U7IHdlIG5lZWQgdG8gcHJvcGFnYXRlIHBvdGVudGlhbCBlcnJvcnMuXG5cblRoZSBuZXh0IHRoaW5nIEkgc2VlIGlzIGEgY29uZGl0aW9uYWwgY2hlY2sgb24gdGhlIHJldHVybiB2YWx1ZSBvZiBgaGluaWMzX3R4X2NzdW1gIHdpdGhpbiBgaGluaWMzX3R4X29mZmxvYWRgLiBJZiBpdCdzIG5lZ2F0aXZlLCB3ZSdyZSBub3cgcmV0dXJuaW5nIGBISU5JQzNfVFhfT0ZGTE9BRF9JTlZBTElEYC4gQWdhaW4sIHNlbnNpYmxlLiBFcnJvciBwcm9wYWdhdGlvbiBpcyBjcml0aWNhbC4gQSBuZWdhdGl2ZSByZXR1cm4gZnJvbSB0aGUgY2hlY2tzdW0gaGVscGVyIGluZGljYXRlcyBzb21ldGhpbmcgd2VudCB3cm9uZywgYW5kIHdlIG5lZWQgdG8gc2lnbmFsIHRoYXQgdG8gdGhlIGhpZ2hlci1sZXZlbCB0cmFuc21pc3Npb24gZnVuY3Rpb24uIEdvb2QuXG5cblRoZSBwYXRjaCBhbHNvIG1vdmVzIHRoZSBjYWxsIHRvIGBoaW5pYzNfdHhfb2ZmbG9hZGAgKmVhcmxpZXIqIGluIGBoaW5pYzNfc2VuZF9vbmVfc2tiYCwgYmVmb3JlIGBudW1fc2dlYCBhbmQgYHdxZWJiX2NudGAgYXJlIGNhbGN1bGF0ZWQuIFRoYXQncyBpbnRlcmVzdGluZy4gSSBiZXQgdGhpcyBpcyB0byBhdm9pZCB1bm5lY2Vzc2FyeSB3b3JrIGlmIHRoZSBvZmZsb2FkIGF0dGVtcHQgZmFpbHMuIENhbGN1bGF0aW5nIHRoZSBzY2F0dGVyLWdhdGhlciBlbGVtZW50cyBhbmQgd29yayBxdWV1ZSBlbnRyeSBidWZmZXIgY291bnQgd291bGQgYmUgd2FzdGVkIGVmZm9ydCBpZiB0aGUgY2hlY2tzdW0gb2ZmbG9hZCBmYWlscywgc28gbW92aW5nIHRoZSBjaGVjayB1cCBmcm9udCBtYWtlcyBzZW5zZSBmb3IgZWZmaWNpZW5jeS5cblxuTm93LCBhIGJyaWVmIHBhdXNlLiBgaGluaWMzYC4gUmlnaHQuIEh1YXdlaSBJbnRlbGxpZ2VudCBOSUMgZHJpdmVyLiBJIGtub3cgdGhhdCBuYW1lLiBJJ20gd29uZGVyaW5nLCBpcyB0aGlzIGEgcGh5c2ljYWwgaGFyZHdhcmUgZHJpdmVyLCBvciBkb2VzIGl0IGFsc28gc3VwcG9ydCB2aXJ0dWFsaXphdGlvbj8gTGV0J3MgYXNzdW1lIGl0J3MgcGh5c2ljYWwuIElzIGl0IGxpa2VseSB0byBiZSByZWFjaGFibGUgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gTGlrZWx5LCBidXQgSSBuZWVkIHRvIGNvbmZpcm0gdGhlIHVuZGVybHlpbmcgZGV2aWNlLiBJJ2xsIGNoZWNrIGlmIGl0J3MgYSBQQ0kgZHJpdmVyIHRvIGNvbmZpcm0sIHNpbmNlIHRoYXQncyB0aGUgbW9zdCBjb21tb24gY2FzZSBpbiB0aGVzZSBzY2VuYXJpb3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1MjAsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTIsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxMjowMTo0Mi4xMTcwOTM1NDlaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTE2MDQ4OTUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaGluaWMzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNjQ4OSBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9LY29uZmlnPTY9Y29uZmlnIEhJTklDM1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9LY29uZmlnLTIwLVxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL0tjb25maWc6MjE6XFx0ICBUaGUgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGhpbmljMy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGUtMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjQ6b2JqLSQoQ09ORklHX0hJTklDMykgKz0gaGluaWMzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZTo2OmhpbmljMy1vYmpzIDo9IGhpbmljM19jbWRxLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6NzpcXHQgICAgICAgaGluaWMzX2NvbW1vbi5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjg6XFx0ICAgICAgIGhpbmljM19lcXMubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZTo5OlxcdCAgICAgICBoaW5pYzNfZXRodG9vbC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjEwOlxcdCAgICAgICBoaW5pYzNfZmlsdGVyLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTE6XFx0ICAgICAgIGhpbmljM19od19jZmcubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToxMjpcXHQgICAgICAgaGluaWMzX2h3X2NvbW0ubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToxMzpcXHQgICAgICAgaGluaWMzX2h3ZGV2Lm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTQ6XFx0ICAgICAgIGhpbmljM19od2lmLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTU6XFx0ICAgICAgIGhpbmljM19pcnEubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToxNjpcXHQgICAgICAgaGluaWMzX2xsZC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjE3OlxcdCAgICAgICBoaW5pYzNfbWFpbi5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjE4OlxcdCAgICAgICBoaW5pYzNfbWJveC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjE5OlxcdCAgICAgICBoaW5pYzNfbWdtdC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjIwOlxcdCAgICAgICBoaW5pYzNfbmV0ZGV2X29wcy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjIxOlxcdCAgICAgICBoaW5pYzNfbmljX2NmZy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjIyOlxcdCAgICAgICBoaW5pYzNfbmljX2lvLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MjM6XFx0ICAgICAgIGhpbmljM19xdWV1ZV9jb21tb24ubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToyNDpcXHQgICAgICAgaGluaWMzX3Jzcy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjI1OlxcdCAgICAgICBoaW5pYzNfcngubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToyNjpcXHQgICAgICAgaGluaWMzX3R4Lm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6Mjc6XFx0ICAgICAgIGhpbmljM193cS5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODojaW5jbHVkZSBcXFwiaGluaWMzX2NtZHEuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTojaW5jbHVkZSBcXFwiaGluaWMzX2Vxcy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDojaW5jbHVkZSBcXFwiaGluaWMzX2h3ZGV2LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjExOiNpbmNsdWRlIFxcXCJoaW5pYzNfaHdpZi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMjojaW5jbHVkZSBcXFwiaGluaWMzX21ib3guaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM9MTEyPWVudW0gY21kcV9jbWRfdHlwZSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMTk6c3RhdGljIHZvaWQgaGluaWMzX2R1bXBfY21kcV93cWVfaGVhZChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTIwLVxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBjbWRxX3dxZSAqd3FlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEzMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTMzOnN0YXRpYyBzdHJ1Y3QgY21kcV93cWUgKmNtZHFfcmVhZF93cWUoc3RydWN0IGhpbmljM193cSAqd3EsIHUxNiAqY2kpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEzNC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEzNTpcXHRpZiAoaGluaWMzX3dxX2dldF91c2VkKHdxKSA9PSAwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMzYtXFx0XFx0cmV0dXJuIE5VTEw7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTQyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxNDM6c3RydWN0IGhpbmljM19jbWRfYnVmICpoaW5pYzNfYWxsb2NfY21kX2J1ZihzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTQ0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTQ1OlxcdHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqY21kX2J1ZjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTQ2OlxcdHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xNDctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxNzI6dm9pZCBoaW5pYzNfZnJlZV9jbWRfYnVmKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxNzM6XFx0XFx0XFx0IHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqY21kX2J1ZilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTc0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTc1OlxcdHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xNzYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxODY6c3RhdGljIHZvaWQgY21kcV9jbGVhcl9jbWRfYnVmKHN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyAqY21kX2luZm8sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjE4NzpcXHRcXHRcXHQgICAgICAgc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE4OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE4OS1cXHRpZiAoY21kX2luZm8tXFx1MDAzZWJ1Zl9pbikge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxOTA6XFx0XFx0aGluaWMzX2ZyZWVfY21kX2J1Zihod2RldiwgY21kX2luZm8tXFx1MDAzZWJ1Zl9pbik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE5MS1cXHRcXHRjbWRfaW5mby1cXHUwMDNlYnVmX2luID0gTlVMTDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xOTQtXFx0aWYgKGNtZF9pbmZvLVxcdTAwM2VidWZfb3V0KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjE5NTpcXHRcXHRoaW5pYzNfZnJlZV9jbWRfYnVmKGh3ZGV2LCBjbWRfaW5mby1cXHUwMDNlYnVmX291dCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE5Ni1cXHRcXHRjbWRfaW5mby1cXHUwMDNlYnVmX291dCA9IE5VTEw7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTk5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoyMDA6c3RhdGljIHZvaWQgY2xlYXJfd3FlX2NvbXBsZXRlX2JpdChzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIwMS1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgY21kcV93cWUgKndxZSwgdTE2IGNpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIxNy1cXHR3bWIoKTsgLyogdmVyaWZ5IHdxZSBpcyBjbGVhciBiZWZvcmUgdXBkYXRpbmcgY2kgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MjE4OlxcdGhpbmljM193cV9wdXRfd3FlYmJzKFxcdTAwMjZjbWRxLVxcdTAwM2V3cSwgQ01EUV9XUUVfTlVNX1dRRUJCUyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIxOS19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIyMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MjIxOnN0YXRpYyBpbnQgY21kcV9hcm1fY2VxX2hhbmRsZXIoc3RydWN0IGhpbmljM19jbWRxICpjbWRxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yMjItXFx0XFx0XFx0XFx0c3RydWN0IGNtZHFfd3FlICp3cWUsIHUxNiBjaSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yMzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjIzNTpzdGF0aWMgdm9pZCBjbWRxX3VwZGF0ZV9jbWRfc3RhdHVzKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSwgdTE2IHByb2RfaWR4LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yMzYtXFx0XFx0XFx0XFx0ICAgc3RydWN0IGNtZHFfd3FlICp3cWUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIzNy17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjIzODpcXHRzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKmNtZF9pbmZvO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yMzktXFx0c3RydWN0IGNtZHFfd3FlX2xjbWQgKndxZV9sY21kO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTI1Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MjUzOnN0YXRpYyB2b2lkIGNtZHFfc3luY19jbWRfaGFuZGxlcihzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTI1NC1cXHRcXHRcXHRcXHQgIHN0cnVjdCBjbWRxX3dxZSAqd3FlLCB1MTYgY2kpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjc0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoyNzU6dm9pZCBoaW5pYzNfY21kcV9jZXFfaGFuZGxlcihzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldiwgX19sZTMyIGNlcWVfZGF0YSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjc2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Mjc3OlxcdGVudW0gaGluaWMzX2NtZHFfdHlwZSBjbWRxX3R5cGUgPSBDTURRX0NFUUVfR0VUKGNlcWVfZGF0YSwgVFlQRSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjI3ODpcXHRzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcyA9IGh3ZGV2LVxcdTAwM2VjbWRxcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Mjc5OlxcdHN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyAqY21kX2luZm87XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTI4MC1cXHRzdHJ1Y3QgY21kcV93cWVfbGNtZCAqd3FlX2xjbWQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjI4MTpcXHRzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTI4Mi1cXHRzdHJ1Y3QgY21kcV93cWUgKndxZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yOTctXFx0XFx0XFx0XFx0IGNtZHFfdHlwZSwgY2kpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoyOTg6XFx0XFx0XFx0aGluaWMzX2R1bXBfY21kcV93cWVfaGVhZChod2Rldiwgd3FlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjk5LVxcdFxcdFxcdGZhbGx0aHJvdWdoO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTMzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MzM1OnN0YXRpYyBpbnQgY21kcV9wYXJhbXNfdmFsaWQoY29uc3Qgc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjMzNjpcXHRcXHRcXHQgICAgIGNvbnN0IHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX2luKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zMzcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MzQ3OnN0YXRpYyBpbnQgd2FpdF9jbWRxc19lbmFibGUoc3RydWN0IGhpbmljM19jbWRxcyAqY21kcXMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM0OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM9MzY0PXN0YXRpYyB2b2lkIGNtZHFfc2V0X2NvbXBsZXRpb24oc3RydWN0IGNtZHFfY29tcGxldGlvbiAqY29tcGxldGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM2NTpcXHRcXHRcXHRcXHRzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9vdXQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM2Ni17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM2NzpcXHRzdHJ1Y3QgaGluaWMzX3NnZSAqc2dlID0gXFx1MDAyNmNvbXBsZXRlLVxcdTAwM2VyZXNwLnNnZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzY4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzozNjk6XFx0aGluaWMzX3NldF9zZ2Uoc2dlLCBidWZfb3V0LVxcdTAwM2VkbWFfYWRkciwgY3B1X3RvX2xlMzIoQ01EUV9CVUZfU0laRSkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zNzAtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zNzEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM3MjpzdGF0aWMgc3RydWN0IGNtZHFfd3FlICpjbWRxX2dldF93cWUoc3RydWN0IGhpbmljM193cSAqd3EsIHUxNiAqcGkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM3My17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM3NDpcXHRpZiAoIWhpbmljM193cV9mcmVlX3dxZWJicyh3cSkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM3NS1cXHRcXHRyZXR1cm4gTlVMTDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzc2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzozNzc6XFx0cmV0dXJuIGhpbmljM193cV9nZXRfb25lX3dxZWJiKHdxLCBwaSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM3OC19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM9MzgwPXN0YXRpYyB2b2lkIGNtZHFfc2V0X2xjbWRfYnVmZGVzYyhzdHJ1Y3QgY21kcV93cWVfbGNtZCAqd3FlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzozODE6XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9pbilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzgyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MzgzOlxcdGhpbmljM19zZXRfc2dlKFxcdTAwMjZ3cWUtXFx1MDAzZWJ1Zl9kZXNjLnNnZSwgYnVmX2luLVxcdTAwM2VkbWFfYWRkcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzg0LVxcdFxcdCAgICAgICAoX19mb3JjZSBfX2xlMzIpYnVmX2luLVxcdTAwM2VzaXplKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zODYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM4NzpzdGF0aWMgdm9pZCBjbWRxX3NldF9kYihzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM4ODpcXHRcXHRcXHRlbnVtIGhpbmljM19jbWRxX3R5cGUgY21kcV90eXBlLCB1MTYgcHJvZF9pZHgpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM4OS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM9NDU5PXN0YXRpYyB2b2lkIGNtZHFfc2V0X2xjbWRfd3FlKHN0cnVjdCBjbWRxX3dxZSAqd3FlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy00NjAtXFx0XFx0XFx0ICAgICAgZW51bSBjbWRxX2NtZF90eXBlIGNtZF90eXBlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo0NjE6XFx0XFx0XFx0ICAgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjQ2MjpcXHRcXHRcXHQgICAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9vdXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTQ2My1cXHRcXHRcXHQgICAgICB1OCB3cmFwcGVkLCB1OCBtb2QsIHU4IGNtZCwgdTE2IHByb2RfaWR4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTQ4NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NDg1OnN0YXRpYyBpbnQgaGluaWMzX2NtZHFfc3luY190aW1lb3V0X2NoZWNrKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNDg2LVxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IGNtZHFfd3FlICp3cWUsIHUxNiBwaSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01MDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjUwNDpzdGF0aWMgdm9pZCBjbGVhcl9jbWRfaW5mbyhzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKmNtZF9pbmZvLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo1MDU6XFx0XFx0XFx0ICAgY29uc3Qgc3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpzYXZlZF9jbWRfaW5mbylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTA2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01MTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjUxNzpzdGF0aWMgaW50IHdhaXRfY21kcV9zeW5jX2NtZF9jb21wbGV0aW9uKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTE4OlxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKmNtZF9pbmZvLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo1MTk6XFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyAqc2F2ZWRfY21kX2luZm8sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTUyMC1cXHRcXHRcXHRcXHRcXHQgdTY0IGN1cnJfbXNnX2lkLCB1MTYgY3Vycl9wcm9kX2lkeCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NDAtXFx0aWYgKGN1cnJfbXNnX2lkID09IGNtZF9pbmZvLVxcdTAwM2VjbWRxX21zZ19pZCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo1NDE6XFx0XFx0ZXJyID0gaGluaWMzX2NtZHFfc3luY190aW1lb3V0X2NoZWNrKGNtZHEsIGN1cnJfd3FlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NDItXFx0XFx0XFx0XFx0XFx0XFx0ICAgICBjdXJyX3Byb2RfaWR4KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU1NjpcXHRoaW5pYzNfZHVtcF9jZXFfaW5mbyhjbWRxLVxcdTAwM2Vod2Rldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU1Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NjAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU2MTpzdGF0aWMgaW50IGNtZHFfc3luY19jbWRfZXhlYyhzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsIHU4IG1vZCwgdTggY21kLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo1NjI6XFx0XFx0XFx0ICAgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU2MzpcXHRcXHRcXHQgICAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9vdXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU2NC1cXHRcXHRcXHQgICAgICBfX2xlNjQgKm91dF9wYXJhbSwgdTggY21kX3R5cGUsIHU4IHdxZV9jbWQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU2NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU2NjpcXHRzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKmNtZF9pbmZvLCBzYXZlZF9jbWRfaW5mbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTY3LVxcdGludCBjbXB0X2NvZGUgPSBDTURRX1NFTkRfQ01QVF9DT0RFO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NjgtXFx0c3RydWN0IGNtZHFfd3FlICpjdXJyX3dxZSwgd3FlID0ge307XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU2OTpcXHRzdHJ1Y3QgaGluaWMzX3dxICp3cSA9IFxcdTAwMjZjbWRxLVxcdTAwM2V3cTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTcwLVxcdHUxNiBjdXJyX3Byb2RfaWR4LCBuZXh0X3Byb2RfaWR4O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTYzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjM1OnN0YXRpYyBpbnQgY21kcV9zeW5jX2NtZF9kaXJlY3RfcmVzcChzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsIHU4IG1vZCwgdTggY21kLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2MzY6XFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9pbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjM3LVxcdFxcdFxcdFxcdCAgICAgX19sZTY0ICpvdXRfcGFyYW0pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjQzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2NDQ6c3RhdGljIGludCBjbWRxX3N5bmNfY21kX2RldGFpbF9yZXNwKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSwgdTggbW9kLCB1OCBjbWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY0NTpcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX2luLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2NDY6XFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9vdXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY0Ny1cXHRcXHRcXHRcXHQgICAgIF9fbGU2NCAqb3V0X3BhcmFtKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY1My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjU0OmludCBoaW5pYzNfY21kX2J1Zl9wYWlyX2luaXQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY1NTpcXHRcXHRcXHQgICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1Zl9wYWlyICpwYWlyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NTYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2NTc6XFx0cGFpci1cXHUwMDNlaW4gPSBoaW5pYzNfYWxsb2NfY21kX2J1Zihod2Rldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY1OC1cXHRpZiAoIXBhaXItXFx1MDAzZWluKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY2MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjYxOlxcdHBhaXItXFx1MDAzZW91dCA9IGhpbmljM19hbGxvY19jbWRfYnVmKGh3ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjYyLVxcdGlmICghcGFpci1cXHUwMDNlb3V0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY2Ny1lcnJfZnJlZV9jbWRfYnVmX2luOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2Njg6XFx0aGluaWMzX2ZyZWVfY21kX2J1Zihod2RldiwgcGFpci1cXHUwMDNlaW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NjktZXJyX291dDpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY3Mzp2b2lkIGhpbmljM19jbWRfYnVmX3BhaXJfdW5pbml0KHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2NzQ6XFx0XFx0XFx0XFx0c3RydWN0IGhpbmljM19jbWRfYnVmX3BhaXIgKnBhaXIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY3NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY3NjpcXHRoaW5pYzNfZnJlZV9jbWRfYnVmKGh3ZGV2LCBwYWlyLVxcdTAwM2Vpbik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY3NzpcXHRoaW5pYzNfZnJlZV9jbWRfYnVmKGh3ZGV2LCBwYWlyLVxcdTAwM2VvdXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NzgtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NzktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY4MDppbnQgaGluaWMzX2NtZHFfZGlyZWN0X3Jlc3Aoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsIHU4IG1vZCwgdTggY21kLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2ODE6XFx0XFx0XFx0ICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX2luLCBfX2xlNjQgKm91dF9wYXJhbSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjgyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjgzOlxcdHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02ODQtXFx0aW50IGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03MTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjcxMzppbnQgaGluaWMzX2NtZHFfZGV0YWlsX3Jlc3Aoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsIHU4IG1vZCwgdTggY21kLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3MTQ6XFx0XFx0XFx0ICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX2luLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3MTU6XFx0XFx0XFx0ICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX291dCwgX19sZTY0ICpvdXRfcGFyYW0pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTcxNi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjcxNzpcXHRzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzE4LVxcdGludCBlcnI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzQ1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3NDY6c3RhdGljIHZvaWQgY21kcV9pbml0X3F1ZXVlX2N0eHQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsIHU4IGNtZHFfaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc0Ny1cXHRcXHRcXHRcXHQgc3RydWN0IGNvbW1fY21kcV9jdHh0X2luZm8gKmN0eHRfaW5mbylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzQ4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzQ5OlxcdGNvbnN0IHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NTAtXFx0dTY0IGNtZHFfZmlyc3RfYmxvY2tfcGFkZHIsIHBmbjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzUxOlxcdGNvbnN0IHN0cnVjdCBoaW5pYzNfd3EgKndxO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NTItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzU0LVxcdHdxID0gXFx1MDAyNmNtZHFzLVxcdTAwM2VjbWRxW2NtZHFfaWRdLndxO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3NTU6XFx0cGZuID0gQ01EUV9QRk4oaGluaWMzX3dxX2dldF9maXJzdF93cWVfcGFnZV9hZGRyKHdxKSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc1Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjc2NDpcXHRpZiAoIWhpbmljM193cV9pc18wX2xldmVsX2NsYSh3cSkpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzY1LVxcdFxcdGNtZHFfZmlyc3RfYmxvY2tfcGFkZHIgPSBjbWRxcy1cXHUwMDNld3FfYmxvY2tfcGFkZHI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzcyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3NzM6c3RhdGljIGludCBpbml0X2NtZHEoc3RydWN0IGhpbmljM19jbWRxICpjbWRxLCBzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Nzc0OlxcdFxcdCAgICAgZW51bSBoaW5pYzNfY21kcV90eXBlIHFfdHlwZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzc1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03OTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjc5MzpzdGF0aWMgaW50IGhpbmljM19zZXRfY21kcV9jdHh0KHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LCB1OCBjbWRxX2lkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03OTQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc5OS1cXHRjbWRxX2luaXRfcXVldWVfY3R4dChod2RldiwgY21kcV9pZCwgXFx1MDAyNmNtZHFfY3R4dC5jdHh0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODAwOlxcdGNtZHFfY3R4dC5mdW5jX2lkID0gaGluaWMzX2dsb2JhbF9mdW5jX2lkKGh3ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODAxLVxcdGNtZHFfY3R4dC5jbWRxX2lkID0gY21kcV9pZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04MDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjgwNjpcXHRlcnIgPSBoaW5pYzNfc2VuZF9tYm94X3RvX21nbXQoaHdkZXYsIE1HTVRfTU9EX0NPTU0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgwNy1cXHRcXHRcXHRcXHQgICAgICAgQ09NTV9DTURfU0VUX0NNRFFfQ1RYVCwgXFx1MDAyNm1zZ19wYXJhbXMpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODE3OnN0YXRpYyBpbnQgaGluaWMzX3NldF9jbWRxX2N0eHRzKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04MTgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4MTk6XFx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXMgPSBod2Rldi1cXHUwMDNlY21kcXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgyMC1cXHR1OCBjbWRxX3R5cGU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODIzLVxcdGZvciAoY21kcV90eXBlID0gMDsgY21kcV90eXBlIFxcdTAwM2MgY21kcXMtXFx1MDAzZWNtZHFfbnVtOyBjbWRxX3R5cGUrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4MjQ6XFx0XFx0ZXJyID0gaGluaWMzX3NldF9jbWRxX2N0eHQoaHdkZXYsIGNtZHFfdHlwZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgyNS1cXHRcXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODM1OnN0YXRpYyBpbnQgY3JlYXRlX2NtZHFfd3Eoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjgzNjpcXHRcXHRcXHQgIHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04Mzcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg0MS1cXHRmb3IgKGNtZHFfdHlwZSA9IDA7IGNtZHFfdHlwZSBcXHUwMDNjIGNtZHFzLVxcdTAwM2VjbWRxX251bTsgY21kcV90eXBlKyspIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODQyOlxcdFxcdGVyciA9IGhpbmljM193cV9jcmVhdGUoaHdkZXYsIFxcdTAwMjZjbWRxcy1cXHUwMDNlY21kcVtjbWRxX3R5cGVdLndxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04NDMtXFx0XFx0XFx0XFx0ICAgICAgIENNRFFfREVQVEgsIENNRFFfV1FFQkJfU0laRSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODUyLVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4NTM6XFx0aWYgKCFoaW5pYzNfd3FfaXNfMF9sZXZlbF9jbGEoXFx1MDAyNmNtZHFzLVxcdTAwM2VjbWRxW0hJTklDM19DTURRX1NZTkNdLndxKSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04NTQtXFx0XFx0aWYgKGNtZHFzLVxcdTAwM2VjbWRxW0hJTklDM19DTURRX1NZTkNdLndxLnFwYWdlcy5udW1fcGFnZXMgXFx1MDAzZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg4My1cXHRcXHRjbWRxX3R5cGUtLTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODg0OlxcdFxcdGhpbmljM193cV9kZXN0cm95KGh3ZGV2LCBcXHUwMDI2Y21kcXMtXFx1MDAzZWNtZHFbY21kcV90eXBlXS53cSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg4NS1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODg5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4OTA6c3RhdGljIHZvaWQgZGVzdHJveV9jbWRxX3dxKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4OTE6XFx0XFx0XFx0ICAgIHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04OTIte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg5OS1cXHRmb3IgKGNtZHFfdHlwZSA9IDA7IGNtZHFfdHlwZSBcXHUwMDNjIGNtZHFzLVxcdTAwM2VjbWRxX251bTsgY21kcV90eXBlKyspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjkwMDpcXHRcXHRoaW5pYzNfd3FfZGVzdHJveShod2RldiwgXFx1MDAyNmNtZHFzLVxcdTAwM2VjbWRxW2NtZHFfdHlwZV0ud3EpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05MDEtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05MDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjkwMzpzdGF0aWMgaW50IGluaXRfY21kcXMoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTkwNC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjkwNTpcXHRzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTA2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTkxNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTE1OlxcdGNtZHFzLVxcdTAwM2VjbWRfYnVmX3Bvb2wgPSBkbWFfcG9vbF9jcmVhdGUoXFxcImhpbmljM19jbWRxXFxcIiwgaHdkZXYtXFx1MDAzZWRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTE2LVxcdFxcdFxcdFxcdFxcdCAgICAgIENNRFFfQlVGX1NJWkUsIENNRFFfQlVGX1NJWkUsIDApO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTkyNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTI2OnN0YXRpYyB2b2lkIGNtZHFfZmx1c2hfc3luY19jbWQoc3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpjbWRfaW5mbylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTI3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk0NzpzdGF0aWMgdm9pZCBoaW5pYzNfY21kcV9mbHVzaF9jbWQoc3RydWN0IGhpbmljM19jbWRxICpjbWRxKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NDgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5NDk6XFx0c3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpjbWRfaW5mbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTUwLVxcdHUxNiBjaTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NTMtXFx0d2hpbGUgKGNtZHFfcmVhZF93cWUoXFx1MDAyNmNtZHEtXFx1MDAzZXdxLCBcXHUwMDI2Y2kpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk1NDpcXHRcXHRoaW5pYzNfd3FfcHV0X3dxZWJicyhcXHUwMDI2Y21kcS1cXHUwMDNld3EsIENNRFFfV1FFX05VTV9XUUVCQlMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NTUtXFx0XFx0Y21kX2luZm8gPSBcXHUwMDI2Y21kcS1cXHUwMDNlY21kX2luZm9zW2NpXTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk2Mzp2b2lkIGhpbmljM19jbWRxX2ZsdXNoX3N5bmNfY21kKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NjQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5NjU6XFx0c3RydWN0IGhpbmljM19jbWRxICpjbWRxO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NjYtXFx0dTE2IHdxZV9jbnQsIHdxZV9pZHgsIGk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk2NzpcXHRzdHJ1Y3QgaGluaWMzX3dxICp3cTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTY4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk3MS1cXHR3cSA9IFxcdTAwMjZjbWRxLVxcdTAwM2V3cTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTcyOlxcdHdxZV9jbnQgPSBoaW5pYzNfd3FfZ2V0X3VzZWQod3EpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NzMtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIHdxZV9jbnQ7IGkrKykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk3OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTgwOnN0YXRpYyB2b2lkIGhpbmljM19jbWRxX3Jlc2V0X2FsbF9jbWRfYnVmKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTgxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05ODctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk4ODppbnQgaGluaWMzX3JlaW5pdF9jbWRxX2N0eHRzKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05ODkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5OTA6XFx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXMgPSBod2Rldi1cXHUwMDNlY21kcXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk5MS1cXHR1OCBjbWRxX3R5cGU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTkzLVxcdGZvciAoY21kcV90eXBlID0gMDsgY21kcV90eXBlIFxcdTAwM2MgY21kcXMtXFx1MDAzZWNtZHFfbnVtOyBjbWRxX3R5cGUrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5OTQ6XFx0XFx0aGluaWMzX2NtZHFfZmx1c2hfY21kKFxcdTAwMjZjbWRxcy1cXHUwMDNlY21kcVtjbWRxX3R5cGVdKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTk1OlxcdFxcdGhpbmljM19jbWRxX3Jlc2V0X2FsbF9jbWRfYnVmKFxcdTAwMjZjbWRxcy1cXHUwMDNlY21kcVtjbWRxX3R5cGVdKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTk2LVxcdFxcdGNtZHFzLVxcdTAwM2VjbWRxW2NtZHFfdHlwZV0ud3JhcHBlZCA9IDE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk5NzpcXHRcXHRoaW5pYzNfd3FfcmVzZXQoXFx1MDAyNmNtZHFzLVxcdTAwM2VjbWRxW2NtZHFfdHlwZV0ud3EpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05OTgtXFx0fVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05OTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwMDA6XFx0cmV0dXJuIGhpbmljM19zZXRfY21kcV9jdHh0cyhod2Rldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwMDEtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDAzOmludCBoaW5pYzNfY21kcXNfaW5pdChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTAwNC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwMDU6XFx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwMDYtXFx0dm9pZCBfX2lvbWVtICpkYl9iYXNlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwMTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwMTk6XFx0ZXJyID0gaGluaWMzX2FsbG9jX2RiX2FkZHIoaHdkZXYsIFxcdTAwMjZkYl9iYXNlLCBOVUxMKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTAyMC1cXHRpZiAoZXJyKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTAzNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTAzNjpcXHRlcnIgPSBoaW5pYzNfc2V0X2NtZHFfY3R4dHMoaHdkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDM3LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTA0Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTA0ODpcXHRoaW5pYzNfZnJlZV9kYl9hZGRyKGh3ZGV2LCBjbWRxcy1cXHUwMDNlY21kcXNfZGJfYmFzZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNDktZXJyX2Rlc3Ryb3lfY21kcV93cTpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDU3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDU4OnZvaWQgaGluaWMzX2NtZHFzX2ZyZWUoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNTkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDYwOlxcdHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzID0gaHdkZXYtXFx1MDAzZWNtZHFzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDYxLVxcdHU4IGNtZHFfdHlwZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDY1LVxcdGZvciAoY21kcV90eXBlID0gMDsgY21kcV90eXBlIFxcdTAwM2MgY21kcXMtXFx1MDAzZWNtZHFfbnVtOyBjbWRxX3R5cGUrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDY2OlxcdFxcdGhpbmljM19jbWRxX2ZsdXNoX2NtZChcXHUwMDI2Y21kcXMtXFx1MDAzZWNtZHFbY21kcV90eXBlXSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwNjc6XFx0XFx0aGluaWMzX2NtZHFfcmVzZXRfYWxsX2NtZF9idWYoXFx1MDAyNmNtZHFzLVxcdTAwM2VjbWRxW2NtZHFfdHlwZV0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDY4LVxcdFxcdGtmcmVlKGNtZHFzLVxcdTAwM2VjbWRxW2NtZHFfdHlwZV0uY21kX2luZm9zKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDcwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDcxOlxcdGhpbmljM19mcmVlX2RiX2FkZHIoaHdkZXYsIGNtZHFzLVxcdTAwM2VjbWRxc19kYl9iYXNlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTA3Mi1cXHRkZXN0cm95X2NtZHFfd3EoaHdkZXYsIGNtZHFzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDc2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDc3OmJvb2wgaGluaWMzX2NtZHFfaWRsZShzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNzgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDc5OlxcdHJldHVybiBoaW5pYzNfd3FfZ2V0X3VzZWQoXFx1MDAyNmNtZHEtXFx1MDAzZXdxKSA9PSAwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDgwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC04LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDo5OiNpbmNsdWRlIFxcXCJoaW5pYzNfaHdfaW50Zi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMDojaW5jbHVkZSBcXFwiaGluaWMzX3dxLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTExLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oPTI1PXN0cnVjdCBjbWRxX2xjbWRfYnVmZGVzYyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjI2OlxcdHN0cnVjdCBoaW5pYzNfc2dlIHNnZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMjctXFx0X19sZTY0ICAgICAgICAgICAgcnN2ZDI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg9NDQ9c3RydWN0IGNtZHFfY29tcGxldGlvbiB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTQ1LVxcdHVuaW9uIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6NDY6XFx0XFx0c3RydWN0IGhpbmljM19zZ2UgICAgICAgc2dlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC00Ny1cXHRcXHRzdHJ1Y3QgY21kcV9kaXJlY3RfcmVzcCBkaXJlY3Q7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg9NzU9c3RhdGljX2Fzc2VydChzaXplb2Yoc3RydWN0IGNtZHFfd3FlKSA9PSA2NCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTc2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDo3NzplbnVtIGhpbmljM19jbWRxX3R5cGUge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC03OC1cXHRISU5JQzNfQ01EUV9TWU5DICAgICAgPSAwLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTgxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDo4MjplbnVtIGhpbmljM19jbWRxX3N0YXR1cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTgzLVxcdEhJTklDM19DTURRX0VOQUJMRSA9IEJJVCgwKSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC04NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6ODY6ZW51bSBoaW5pYzNfY21kcV9jbWRfdHlwZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTg3LVxcdEhJTklDM19DTURfVFlQRV9OT05FLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTk1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDo5NjpzdHJ1Y3QgaGluaWMzX2NtZF9idWYge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC05Ny1cXHR2b2lkICAgICAgICpidWY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMDM6c3RydWN0IGhpbmljM19jbWRfYnVmX3BhaXIge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMDQ6XFx0c3RydWN0IGhpbmljM19jbWRfYnVmICppbjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTA1OlxcdHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqb3V0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMDYtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTA3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMDg6c3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTA5OlxcdGVudW0gaGluaWMzX2NtZHFfY21kX3R5cGUgY21kX3R5cGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTExMC1cXHRzdHJ1Y3QgY29tcGxldGlvbiAgICAgICAgICpkb25lO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTExNS1cXHR1NjQgICAgICAgICAgICAgICAgICAgICAgIGNtZHFfbXNnX2lkO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMTY6XFx0c3RydWN0IGhpbmljM19jbWRfYnVmICAgICAqYnVmX2luO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMTc6XFx0c3RydWN0IGhpbmljM19jbWRfYnVmICAgICAqYnVmX291dDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTE4LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTExOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTIwOnN0cnVjdCBoaW5pYzNfY21kcSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEyMTpcXHRzdHJ1Y3QgaGluaWMzX3dxICAgICAgICAgICAgd3E7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEyMjpcXHRlbnVtIGhpbmljM19jbWRxX3R5cGUgICAgICAgY21kcV90eXBlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMjMtXFx0dTggICAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBwZWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTI1LVxcdHNwaW5sb2NrX3QgICAgICAgICAgICAgICAgICBjbWRxX2xvY2s7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEyNjpcXHRzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKmNtZF9pbmZvcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTI3OlxcdHN0cnVjdCBoaW5pYzNfaHdkZXYgICAgICAgICAqaHdkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTEyOC19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEzMDpzdHJ1Y3QgaGluaWMzX2NtZHFzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTMxOlxcdHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMzI6XFx0c3RydWN0IGhpbmljM19jbWRxICBjbWRxW0hJTklDM19NQVhfQ01EUV9UWVBFU107XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTEzMy1cXHRzdHJ1Y3QgZG1hX3Bvb2wgICAgICpjbWRfYnVmX3Bvb2w7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTQ4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNDk6aW50IGhpbmljM19jbWRxc19pbml0KHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTUwOnZvaWQgaGluaWMzX2NtZHFzX2ZyZWUoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xNTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE1MjpzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmhpbmljM19hbGxvY19jbWRfYnVmKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTUzOnZvaWQgaGluaWMzX2ZyZWVfY21kX2J1ZihzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTU0OlxcdFxcdFxcdCBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmNtZF9idWYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNTU6dm9pZCBoaW5pYzNfY21kcV9jZXFfaGFuZGxlcihzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldiwgX19sZTMyIGNlcWVfZGF0YSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTE1Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTU3OmludCBoaW5pYzNfY21kX2J1Zl9wYWlyX2luaXQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE1ODpcXHRcXHRcXHQgICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1Zl9wYWlyICpwYWlyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTU5OnZvaWQgaGluaWMzX2NtZF9idWZfcGFpcl91bmluaXQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2MDpcXHRcXHRcXHRcXHRzdHJ1Y3QgaGluaWMzX2NtZF9idWZfcGFpciAqcGFpcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2MTppbnQgaGluaWMzX2NtZHFfZGlyZWN0X3Jlc3Aoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsIHU4IG1vZCwgdTggY21kLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNjI6XFx0XFx0XFx0ICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX2luLCBfX2xlNjQgKm91dF9wYXJhbSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2MzppbnQgaGluaWMzX2NtZHFfZGV0YWlsX3Jlc3Aoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsIHU4IG1vZCwgdTggY21kLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNjQ6XFx0XFx0XFx0ICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX2luLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNjU6XFx0XFx0XFx0ICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX291dCwgX19sZTY0ICpvdXRfcGFyYW0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xNjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2Nzp2b2lkIGhpbmljM19jbWRxX2ZsdXNoX3N5bmNfY21kKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTY4OmludCBoaW5pYzNfcmVpbml0X2NtZHFfY3R4dHMoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNjk6Ym9vbCBoaW5pYzNfY21kcV9pZGxlKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTE3MC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NvbW1vbi5jLTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmM6ODojaW5jbHVkZSBcXFwiaGluaWMzX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NvbW1vbi5jLTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmM6MTA6aW50IGhpbmljM19kbWFfemFsbG9jX2NvaGVyZW50X2FsaWduKHN0cnVjdCBkZXZpY2UgKmRldiwgdTMyIHNpemUsIHUzMiBhbGlnbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYy0xMS1cXHRcXHRcXHRcXHQgICAgIGdmcF90IGZsYWcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmM6MTI6XFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgaGluaWMzX2RtYV9hZGRyX2FsaWduICptZW1fYWxpZ24pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmMtMTMte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmMtNDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmM6NDk6dm9pZCBoaW5pYzNfZG1hX2ZyZWVfY29oZXJlbnRfYWxpZ24oc3RydWN0IGRldmljZSAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NvbW1vbi5jOjUwOlxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgaGluaWMzX2RtYV9hZGRyX2FsaWduICptZW1fYWxpZ24pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmMtNTEte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmMtNTUtXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDEyOjAxOjQyLjE2ODcxMDA5NFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3NjIxMjAzODAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBOZXR3b3JrIERyaXZlcioqXG5cbk9rYXksIHNvIHRoZSBkcml2ZXIgaW4gcXVlc3Rpb24gaXMgbG9jYXRlZCBhdCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljM2AuIE15IGluaXRpYWwgdGhvdWdodCBpcywgXCJIbW0sIGlzIHRoaXMgYSBQQ0llIGRyaXZlciwgSSB3b25kZXI/XCIgR2l2ZW4gdGhlIGxvY2F0aW9uLCB0aGF0J3MgYSByZWFzb25hYmxlIGFzc3VtcHRpb24sIGJ1dCBJIG5lZWQgdG8gY29uZmlybS4gSSdsbCBuZWVkIHRvIGRpZyBpbnRvIHRoZSBjb2RlIHRvIGJlIHN1cmUuIE15IG5leHQgc3RlcCB3aWxsIGJlIHRvIGV4YW1pbmUgdGhlIHNvdXJjZSBmaWxlcyBmb3IgdGhhdCBkcml2ZXIsIHNwZWNpZmljYWxseSBmb2N1c2luZyBvbiBgaGluaWMzX21haW4uY2AgYW5kIGBoaW5pYzNfaHdkZXYuY2AuIFRob3NlIGZpbGVzIHNob3VsZCBwcm92aWRlIGNsZWFyIGNsdWVzIGFib3V0IHRoZSBoYXJkd2FyZSBpdCdzIGludGVyZmFjaW5nIHdpdGgsIGNvbmZpcm1pbmcgaWYgaXQncyBpbmRlZWQgYSBQQ0kgZGV2aWNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTk0NywiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDEyOjAxOjQ1LjkzMDgzMzk2NFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0Njg3MDY1NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwY2lfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2xsZC5jPTQzNj1zdGF0aWMgdm9pZCBoaW5pYzNfc2h1dGRvd24oc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19sbGQuYy00NDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfbGxkLmM6NDQ2OnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBoaW5pYzNfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2xsZC5jLTQ0Ny1cXHQubmFtZSAgICAgICAgICAgID0gSElOSUMzX05JQ19EUlZfTkFNRSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMTI6MDE6NDUuOTc3NzA4OTU5WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODgyNDA3NDg1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipXb3J0aEZ1enppbmcgRGVjaXNpb24gZm9yIGhpbmljMyBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCdzIGhpdHRpbmcgdGhlIGBoaW5pYzNfZHJpdmVyYC4gUmlnaHQgYXdheSwgdGhlIHByb21wdCBqdW1wcyBvdXQgYXQgbWU6IFwiUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczogLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzLi4uIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlwiXG5cbkxldCdzIHRoaW5rLiBJcyBgaGluaWMzYCBhIHZlbmRvci1zcGVjaWZpYyBTbWFydE5JQyBvciBOSUMgZHJpdmVyIHRoYXQgZGVtYW5kcyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiB0aGUgdXN1YWwgUUVNVSBzZXR1cHM/IFllcywgYGhpbmljM2Ag4oCTIEh1YXdlaSBJbnRlbGxpZ2VudCBOSUMg4oCTIGlzIGRlZmluaXRlbHkgdmVuZG9yLXNwZWNpZmljIGFuZCBoYXJkd2FyZS1kZXBlbmRlbnQuIEknbGwgcXVpY2tseSBjaGVjayBmb3IgYW55IFFFTVUgZW11bGF0aW9uLiBVc3VhbGx5LCB5b3UnZCBzZWUgdGhpbmdzIGxpa2UgZTEwMDAsIHZpcnRpby1uZXQsIGV0Yy4sIGJ1dCBub3RoaW5nIGZvciBgaGluaWMzYC4gTm9wZSwgbm8gZW11bGF0aW9uLlxuXG5TbywgaXQncyBjbGVhcjogYGhpbmljM2AgZml0cyBzcXVhcmVseSBpbnRvIHRoYXQgY2F0ZWdvcnkgc3BlY2lmaWVkIGluIHRoZSBwcm9tcHQuIEl0J3MgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBOSUMgZHJpdmVyLCBhbmQgaXQncyBnb2luZyB0byBiZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdvb2dsZSBDb21wdXRlIEVuZ2luZSBvciBRRU1VLiBJdCdzIGZ1bmRhbWVudGFsbHkgdGllZCB0byB0aGUgaGFyZHdhcmUuXG5cblRoZXJlZm9yZSwgdGhlIGRlY2lzaW9uJ3MgY2xlYXI6IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJIG5lZWQgdG8gY29uZmlybSB0aGUgc3BlY2lmaWMgZmlsZXMgbW9kaWZpZWQgYnkgdGhlIHBhdGNoLiBPaCwgaXQgbW9kaWZpZXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmNgLiBZZXMsIHRoYXQgY29uZmlybXMgaXQg4oCTIGV4YWN0bHkgdGhhdCB2ZW5kb3Itc3BlY2lmaWMgUENJZSBOSUMgZHJpdmVyLiBUaGVyZWZvcmUsIGBXb3J0aEZ1enppbmc9ZmFsc2VgLlxuXG5UaGUgcmVhc29uaW5nIGlzIHRoYXQgdGhlIHBhdGNoIGltcGFjdHMgdGhlIEh1YXdlaSBJbnRlbGxpZ2VudCBOSUMgKGBoaW5pYzNgKSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgZHJpdmVyLiBUaGlzIGhhcmR3YXJlIGlzbid0IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFLCBtYWtpbmcgdGhlIGNvZGUgaW5hY2Nlc3NpYmxlIGZvciBmdXp6aW5nLiBUaHVzLCBpdCBpcyBub3Qgd29ydGggZnV6emluZy4gSSBqdXN0IHdhbnQgdG8gZG91YmxlLWNoZWNrIHRoZXJlIGFyZW4ndCBhbnkgb3RoZXIgY2hhbmdlcy4gTm9wZSwgb25seSB0aGF0IGZpbGUuIENvbmNsdXNpb246IHNhZmUgdG8gc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDM1OCwiT3V0cHV0VG9rZW5zIjo3OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUyNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxMjowMTo1NC44MDE3ODcwMjNaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3OTYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBIdWF3ZWkgSW50ZWxsaWdlbnQgTklDIChoaW5pYzMpIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBoYXJkd2FyZSBkcml2ZXIuIFRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cywgbWFraW5nIHRoZSBjb2RlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEh1YXdlaSBJbnRlbGxpZ2VudCBOSUMgKGhpbmljMykgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGRyaXZlci4gVGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIGNvZGUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxMjowMTo1NC44MDE4MTg3NzRaIiwiU2VxIjo5LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowbvh4k[1] Phase: Running StartedAt: 2026-08-11 12:02:05 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbvh4k[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-11 12:02:05 +0000 UTC FinishedAt: 2026-08-11 12:02:10 +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,}