Name: series-workflowbll42 Phase: Failed StartedAt: 2026-07-27 11:03:06 +0000 UTC FinishedAt: 2026-07-27 11:43:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbll42[0] Phase: Succeeded StartedAt: 2026-07-27 11:03:06 +0000 UTC FinishedAt: 2026-07-27 11:42:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbll42[0].run-triage Phase: Succeeded StartedAt: 2026-07-27 11:03:06 +0000 UTC FinishedAt: 2026-07-27 11:42:48 +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+CgkJCTx0ZD4yMDI2LzA3LzI3IDExOjQxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBueHB3aWZpIHdpcmVsZXNzIGRyaXZlciwgd2hpY2ggaXMgYW4gU0RJTy1iYXNlZCBkcml2ZXIgZm9yIE5YUCBJVzYxeCBjaGlwc2V0cy4gU2luY2Ugc3RhbmRhcmQgUUVNVS9HQ0UgZW52aXJvbm1lbnRzIGRvIG5vdCBlbXVsYXRlIHRoaXMgc3BlY2lmaWMgU0RJTyBoYXJkd2FyZSwgYW5kIHN5emthbGxlciBsYWNrcyBhIGdlbmVyaWMgU0RJTyBmdXp6ZXIsIHRoZSBkcml2ZXIgY2Fubm90IGJlIHByb2JlZCBhbmQgaXRzIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxMTo0MTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDI1NTY2MGVhNWQwNWEwODU5ZjJiNjQzZmM0ZDdhZGNmMjM2NmUxZjFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1bCAyNyAxMTo0MTo1MSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW5fcnhyZW9yZGVyLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW5fcnhyZW9yZGVyLmNcbmluZGV4IGM1ODE5Zjg5YjA4Y2U3Li5iMmZkNjI0NDk3YTNhZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbl9yeHJlb3JkZXIuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuX3J4cmVvcmRlci5jXG5AQCAtMTcxLDcgJiM0MzsxNzEsNiBAQCBueHB3aWZpX2RlbF9yeF9yZW9yZGVyX2VudHJ5KHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG4gXHRsaXN0X2RlbF9yY3UoXHUwMDI2dGJsLVx1MDAzZWxpc3QpO1xuIFx0c3Bpbl91bmxvY2tfYmgoXHUwMDI2cHJpdi1cdTAwM2VyeF9yZW9yZGVyX3RibF9sb2NrW3RpZF0pO1xuIFxuLVx0a2ZyZWUodGJsLVx1MDAzZXJ4X3Jlb3JkZXJfcHRyKTtcbiBcdGtmcmVlX3JjdSh0YmwsIHJjdSk7XG4gXG4gXHRhdG9taWNfc2V0KFx1MDAyNnByaXYtXHUwMDNlYWRhcHRlci1cdTAwM2VyeF9iYV90ZWFyZG93bl9wZW5kaW5nLCAwKTtcbkBAIC0yNzMsMTEgJiM0MzsyNzIsMTMgQEAgbnhwd2lmaV8xMW5fY3JlYXRlX3J4X3Jlb3JkZXJfdGJsKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsIHU4ICp0YSxcbiBcdFx0bnhwd2lmaV8xMW5fZGlzcGF0Y2hfcGt0X3VudGlsX3N0YXJ0X3dpbihwcml2LCB0YmwsIHNlcV9udW0pO1xuIFx0XHRyZXR1cm47XG4gXHR9XG4mIzQzO1xuIFx0LyogaWYgIXRibCB0aGVuIGNyZWF0ZSBvbmUgKi9cbi1cdG5ld19ub2RlID0ga3phbGxvY19vYmooKm5ld19ub2RlLCBHRlBfS0VSTkVMKTtcbiYjNDM7XHRuZXdfbm9kZSA9IGt6YWxsb2NfZmxleCgqbmV3X25vZGUsIHJ4X3Jlb3JkZXJfcHRyLCB3aW5fc2l6ZSk7XG4gXHRpZiAoIW5ld19ub2RlKVxuIFx0XHRyZXR1cm47XG4gXG4mIzQzO1x0bmV3X25vZGUtXHUwMDNld2luX3NpemUgPSB3aW5fc2l6ZTtcbiBcdElOSVRfTElTVF9IRUFEKFx1MDAyNm5ld19ub2RlLVx1MDAzZWxpc3QpO1xuIFx0bmV3X25vZGUtXHUwMDNldGlkID0gdGlkO1xuIFx0bWVtY3B5KG5ld19ub2RlLVx1MDAzZXRhLCB0YSwgRVRIX0FMRU4pO1xuQEAgLTMxMSwyNiAmIzQzOzMxMiwxMiBAQCBueHB3aWZpXzExbl9jcmVhdGVfcnhfcmVvcmRlcl90Ymwoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdiwgdTggKnRhLFxuIFx0XHRuZXdfbm9kZS1cdTAwM2VmbGFncyB8PSBSWFJFT1JfSU5JVF9XSU5ET1dfU0hJRlQ7XG4gXHR9XG4gXG4tXHRuZXdfbm9kZS1cdTAwM2V3aW5fc2l6ZSA9IHdpbl9zaXplO1xuLVxuLVx0bmV3X25vZGUtXHUwMDNlcnhfcmVvcmRlcl9wdHIgPSBrY2FsbG9jKHdpbl9zaXplLCBzaXplb2Yodm9pZCAqKSxcbi1cdFx0XHRcdFx0ICAgR0ZQX0tFUk5FTCk7XG4tXHRpZiAoIW5ld19ub2RlLVx1MDAzZXJ4X3Jlb3JkZXJfcHRyKSB7XG4tXHRcdGtmcmVlKG5ld19ub2RlKTtcbi1cdFx0bnhwd2lmaV9kYmcocHJpdi1cdTAwM2VhZGFwdGVyLCBFUlJPUixcbi1cdFx0XHQgICAgXCYjMzQ7JXM6IGZhaWxlZCB0byBhbGxvYyByZW9yZGVyX3B0clxcblwmIzM0OywgX19mdW5jX18pO1xuLVx0XHRyZXR1cm47XG4tXHR9XG4tXG4gXHRuZXdfbm9kZS1cdTAwM2V0aW1lcl9jb250ZXh0LnB0ciA9IG5ld19ub2RlO1xuIFx0bmV3X25vZGUtXHUwMDNldGltZXJfY29udGV4dC5wcml2ID0gcHJpdjtcbiBcdG5ld19ub2RlLVx1MDAzZXRpbWVyX2NvbnRleHQudGltZXJfaXNfc2V0ID0gZmFsc2U7XG4gXG4gXHR0aW1lcl9zZXR1cChcdTAwMjZuZXdfbm9kZS1cdTAwM2V0aW1lcl9jb250ZXh0LnRpbWVyLCBueHB3aWZpX2ZsdXNoX2RhdGEsIDApO1xuIFxuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2Mgd2luX3NpemU7ICYjNDM7JiM0MztpKVxuLVx0XHRuZXdfbm9kZS1cdTAwM2VyeF9yZW9yZGVyX3B0cltpXSA9IE5VTEw7XG4tXG4gXHRzcGluX2xvY2tfYmgoXHUwMDI2cHJpdi1cdTAwM2VyeF9yZW9yZGVyX3RibF9sb2NrW3RpZF0pO1xuIFx0bGlzdF9hZGRfdGFpbF9yY3UoXHUwMDI2bmV3X25vZGUtXHUwMDNlbGlzdCwgXHUwMDI2cHJpdi1cdTAwM2VyeF9yZW9yZGVyX3RibF9wdHJbdGlkXSk7XG4gXHRzcGluX3VubG9ja19iaChcdTAwMjZwcml2LVx1MDAzZXJ4X3Jlb3JkZXJfdGJsX2xvY2tbdGlkXSk7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5oXG5pbmRleCA0YWJmODA3NzFiZTIzZS4uMzQ5ZGZhNGQzZjg1ODEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL21haW4uaFxuQEAgLTY1NiwxMCAmIzQzOzY1NiwxMCBAQCBzdHJ1Y3Qgbnhwd2lmaV9yeF9yZW9yZGVyX3RibCB7XG4gXHRpbnQgaW5pdF93aW47XG4gXHRpbnQgc3RhcnRfd2luO1xuIFx0aW50IHdpbl9zaXplO1xuLVx0dm9pZCAqKnJ4X3Jlb3JkZXJfcHRyO1xuIFx0c3RydWN0IHJlb3JkZXJfdG1yX2NueHQgdGltZXJfY29udGV4dDtcbiBcdHU4IGFtc2R1O1xuIFx0dTggZmxhZ3M7XG4mIzQzO1x0c3RydWN0IHNrX2J1ZmYgKnJ4X3Jlb3JkZXJfcHRyW10gX19jb3VudGVkX2J5KHdpbl9zaXplKTtcbiB9O1xuIFxuIHN0cnVjdCBueHB3aWZpX2Jzc19wcmlvX25vZGUge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDExOjQxPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbnhwd2lmaSB3aXJlbGVzcyBkcml2ZXIsIHdoaWNoIGlzIGFuIFNESU8tYmFzZWQgZHJpdmVyIGZvciBOWFAgSVc2MXggY2hpcHNldHMuIFNpbmNlIHN0YW5kYXJkIFFFTVUvR0NFIGVudmlyb25tZW50cyBkbyBub3QgZW11bGF0ZSB0aGlzIHNwZWNpZmljIFNESU8gaGFyZHdhcmUsIGFuZCBzeXprYWxsZXIgbGFja3MgYSBnZW5lcmljIFNESU8gZnV6emVyLCB0aGUgZHJpdmVyIGNhbm5vdCBiZSBwcm9iZWQgYW5kIGl0cyBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAyNTU2NjBlYTVkMDVhMDg1OWYyYjY0M2ZjNGQ3YWRjZjIzNjZlMWYxCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBKdWwgMjcgMTE6NDE6NTEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW5fcnhyZW9yZGVyLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW5fcnhyZW9yZGVyLmMKaW5kZXggYzU4MTlmODliMDhjZTcuLmIyZmQ2MjQ0OTdhM2FkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW5fcnhyZW9yZGVyLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuX3J4cmVvcmRlci5jCkBAIC0xNzEsNyAmIzQzOzE3MSw2IEBAIG54cHdpZmlfZGVsX3J4X3Jlb3JkZXJfZW50cnkoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdiwKIAlsaXN0X2RlbF9yY3UoJmFtcDt0YmwtJmd0O2xpc3QpOwogCXNwaW5fdW5sb2NrX2JoKCZhbXA7cHJpdi0mZ3Q7cnhfcmVvcmRlcl90YmxfbG9ja1t0aWRdKTsKIAotCWtmcmVlKHRibC0mZ3Q7cnhfcmVvcmRlcl9wdHIpOwogCWtmcmVlX3JjdSh0YmwsIHJjdSk7CiAKIAlhdG9taWNfc2V0KCZhbXA7cHJpdi0mZ3Q7YWRhcHRlci0mZ3Q7cnhfYmFfdGVhcmRvd25fcGVuZGluZywgMCk7CkBAIC0yNzMsMTEgJiM0MzsyNzIsMTMgQEAgbnhwd2lmaV8xMW5fY3JlYXRlX3J4X3Jlb3JkZXJfdGJsKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsIHU4ICp0YSwKIAkJbnhwd2lmaV8xMW5fZGlzcGF0Y2hfcGt0X3VudGlsX3N0YXJ0X3dpbihwcml2LCB0YmwsIHNlcV9udW0pOwogCQlyZXR1cm47CiAJfQomIzQzOwogCS8qIGlmICF0YmwgdGhlbiBjcmVhdGUgb25lICovCi0JbmV3X25vZGUgPSBremFsbG9jX29iaigqbmV3X25vZGUsIEdGUF9LRVJORUwpOwomIzQzOwluZXdfbm9kZSA9IGt6YWxsb2NfZmxleCgqbmV3X25vZGUsIHJ4X3Jlb3JkZXJfcHRyLCB3aW5fc2l6ZSk7CiAJaWYgKCFuZXdfbm9kZSkKIAkJcmV0dXJuOwogCiYjNDM7CW5ld19ub2RlLSZndDt3aW5fc2l6ZSA9IHdpbl9zaXplOwogCUlOSVRfTElTVF9IRUFEKCZhbXA7bmV3X25vZGUtJmd0O2xpc3QpOwogCW5ld19ub2RlLSZndDt0aWQgPSB0aWQ7CiAJbWVtY3B5KG5ld19ub2RlLSZndDt0YSwgdGEsIEVUSF9BTEVOKTsKQEAgLTMxMSwyNiAmIzQzOzMxMiwxMiBAQCBueHB3aWZpXzExbl9jcmVhdGVfcnhfcmVvcmRlcl90Ymwoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdiwgdTggKnRhLAogCQluZXdfbm9kZS0mZ3Q7ZmxhZ3MgfD0gUlhSRU9SX0lOSVRfV0lORE9XX1NISUZUOwogCX0KIAotCW5ld19ub2RlLSZndDt3aW5fc2l6ZSA9IHdpbl9zaXplOwotCi0JbmV3X25vZGUtJmd0O3J4X3Jlb3JkZXJfcHRyID0ga2NhbGxvYyh3aW5fc2l6ZSwgc2l6ZW9mKHZvaWQgKiksCi0JCQkJCSAgIEdGUF9LRVJORUwpOwotCWlmICghbmV3X25vZGUtJmd0O3J4X3Jlb3JkZXJfcHRyKSB7Ci0JCWtmcmVlKG5ld19ub2RlKTsKLQkJbnhwd2lmaV9kYmcocHJpdi0mZ3Q7YWRhcHRlciwgRVJST1IsCi0JCQkgICAgJiMzNDslczogZmFpbGVkIHRvIGFsbG9jIHJlb3JkZXJfcHRyXG4mIzM0OywgX19mdW5jX18pOwotCQlyZXR1cm47Ci0JfQotCiAJbmV3X25vZGUtJmd0O3RpbWVyX2NvbnRleHQucHRyID0gbmV3X25vZGU7CiAJbmV3X25vZGUtJmd0O3RpbWVyX2NvbnRleHQucHJpdiA9IHByaXY7CiAJbmV3X25vZGUtJmd0O3RpbWVyX2NvbnRleHQudGltZXJfaXNfc2V0ID0gZmFsc2U7CiAKIAl0aW1lcl9zZXR1cCgmYW1wO25ld19ub2RlLSZndDt0aW1lcl9jb250ZXh0LnRpbWVyLCBueHB3aWZpX2ZsdXNoX2RhdGEsIDApOwogCi0JZm9yIChpID0gMDsgaSAmbHQ7IHdpbl9zaXplOyAmIzQzOyYjNDM7aSkKLQkJbmV3X25vZGUtJmd0O3J4X3Jlb3JkZXJfcHRyW2ldID0gTlVMTDsKLQogCXNwaW5fbG9ja19iaCgmYW1wO3ByaXYtJmd0O3J4X3Jlb3JkZXJfdGJsX2xvY2tbdGlkXSk7CiAJbGlzdF9hZGRfdGFpbF9yY3UoJmFtcDtuZXdfbm9kZS0mZ3Q7bGlzdCwgJmFtcDtwcml2LSZndDtyeF9yZW9yZGVyX3RibF9wdHJbdGlkXSk7CiAJc3Bpbl91bmxvY2tfYmgoJmFtcDtwcml2LSZndDtyeF9yZW9yZGVyX3RibF9sb2NrW3RpZF0pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5oCmluZGV4IDRhYmY4MDc3MWJlMjNlLi4zNDlkZmE0ZDNmODU4MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL21haW4uaApAQCAtNjU2LDEwICYjNDM7NjU2LDEwIEBAIHN0cnVjdCBueHB3aWZpX3J4X3Jlb3JkZXJfdGJsIHsKIAlpbnQgaW5pdF93aW47CiAJaW50IHN0YXJ0X3dpbjsKIAlpbnQgd2luX3NpemU7Ci0Jdm9pZCAqKnJ4X3Jlb3JkZXJfcHRyOwogCXN0cnVjdCByZW9yZGVyX3Rtcl9jbnh0IHRpbWVyX2NvbnRleHQ7CiAJdTggYW1zZHU7CiAJdTggZmxhZ3M7CiYjNDM7CXN0cnVjdCBza19idWZmICpyeF9yZW9yZGVyX3B0cltdIF9fY291bnRlZF9ieSh3aW5fc2l6ZSk7CiB9OwogCiBzdHJ1Y3Qgbnhwd2lmaV9ic3NfcHJpb19ub2RlIHsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTE6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjk4MQoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDM4NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBXaXJlbGVzcyBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0IHNlZW1zIGxpa2UgdGhleSYjMzk7cmUgbWFraW5nIHNvbWUgZmFpcmx5IHNpZ25pZmljYW50IGNoYW5nZXMgdG8gdGhlIHJlb3JkZXJpbmcgbG9naWMgaW4gdGhlIGBueHB3aWZpYCBkcml2ZXIuIFNwZWNpZmljYWxseSwgdGhleSYjMzk7cmUgYWx0ZXJpbmcgdGhlIGByeF9yZW9yZGVyX3B0cmAgZmllbGQgd2l0aGluIHRoZSBgbnhwd2lmaV9yeF9yZW9yZGVyX3RibGAgc3RydWN0LiBJdCYjMzk7cyBnb2luZyBmcm9tIGEgZG91YmxlIHBvaW50ZXIgdG8gYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIsIHdoaWNoIGlzIGEgcHJldHR5IGNsZWFyIGluZGljYXRpb24gb2Ygb3B0aW1pemluZyBtZW1vcnkgYWxsb2NhdGlvbiwgd2hpY2ggaXMgZ29vZC4gVGhlIGBremFsbG9jYCBjYWxscyBhcmUgYWxzbyBiZWluZyBzdHJlYW1saW5lZCB3aXRoIGBremFsbG9jX2ZsZXhgLCBhbmQgdGhleSYjMzk7cmUgcmVtb3ZpbmcgYSBga2ZyZWVgIGluIHRoZSBgbnhwd2lmaV9kZWxfcnhfcmVvcmRlcl9lbnRyeWAgZnVuY3Rpb24uCgpGdW5jdGlvbmFsbHksIHRoaXMgc2hvdWxkIGJlIGFuIGltcHJvdmVtZW50LCByZWR1Y2luZyBtZW1vcnkgZnJhZ21lbnRhdGlvbiBhbmQgcG90ZW50aWFsbHkgaW1wcm92aW5nIHBlcmZvcm1hbmNlLiBCdXQsIGl0JiMzOTtzIGEgd2lyZWxlc3MgZHJpdmVyIGFuZCBJIGFsd2F5cyBnZXQgYSBsaXR0bGUgY2F1dGlvdXMgd2l0aCB0aG9zZSwgZ2l2ZW4gdGhlIGNvbXBsZXhpdHkuICpueHB3aWZpKiwgdGhhdCByaW5ncyBhIGJlbGwuLi4gaXMgdGhhdCBhIHJlYWwsIGFjdGl2ZSBkcml2ZXI/IEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSBpZiBgbnhwd2lmaWAgaXMgYWN0dWFsbHkgcHJlc2VudCBpbiB0aGUga2VybmVsLCBvciBpZiBtYXliZSB0aGlzIGlzIGEgcmVuYW1lIHRoYXQgSSBzaG91bGQgYmUgdHJhY2tpbmcgYmFjayB0byBhbm90aGVyIGRyaXZlciBsaWtlIGBtd2lmaWV4YC4KCkdpdmVuIHRoZSBwYXRoLCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvYCwgaXQgc2VlbXMgdG8gYmUgbGVnaXQsIGxldCYjMzk7cyBrZWVwIGdvaW5nLgoKTXkgbmV4dCBpbW1lZGlhdGUgdGhvdWdodCBpcyB3aGV0aGVyIHRoaXMgZHJpdmVyIGlzIGV2ZW4gcmVhY2hhYmxlIGluIGEgdHlwaWNhbCBRRU1VIGVudmlyb25tZW50LiBXaXJlbGVzcyBkcml2ZXJzIGFyZSBub3RvcmlvdXMgZm9yIGJlaW5nIHRyaWNreS4gRHJpdmVycyBsaWtlIGBtYWM4MDIxMV9od3NpbWAgYXJlIGdlbmVyYWxseSBhY2Nlc3NpYmxlLCBidXQgaGFyZHdhcmUtc3BlY2lmaWMgb25lcyBsaWtlIHRoaXMsIHdlbGwsIGl0IGRlcGVuZHMuIElzIGl0IFNESU8sIFBDSWUsIG9yIFVTQj8gSWYgaXQmIzM5O3MgVVNCLCB0aGVyZSYjMzk7cyBhIGNoYW5jZSwgZGVwZW5kaW5nIG9uIHRoZSBpbXBsZW1lbnRhdGlvbiBhbmQgd2hldGhlciB3ZSBjYW4gZW11bGF0ZSBpdCB3aXRoIGEgZ2FkZ2V0IG9yIGR1bW15X2hjZC4gSXQgY291bGQgYmUgdmlydHVhbCwgYnV0IHRoYXQgd291bGQgYmUgYSByYXJpdHkgZm9yIGEgZHJpdmVyIG5hbWUgbGlrZSB0aGlzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGJ1c2VzIGFyZSBzdXBwb3J0ZWQgYW5kIHRoZW4gSSYjMzk7bGwgdW5kZXJzdGFuZCBpZiB0aGlzIHBhdGNoIGlzIGV2ZW4gZmVhc2libGUgdG8gdGVzdCwgb3IgaWYgaXQgaXMgZXZlbiByZWxldmFudCB0byBteSBjb25jZXJucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxMTo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtueHB3aWZpJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxNTE1MiBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTItLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzozOiAqIG54cHdpZmkgODAyLjExYWMgaGVscGVyc1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTQtICogQ29weXJpZ2h0IDIwMTEtMjAyNCBOWFBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM9MzY9c3RhdGljIHUxNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjM3Om54cHdpZmlfY29udmVydF9tY3NtYXBfdG9fbWF4cmF0ZShzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTM4LVx0XHRcdFx0ICB1MTYgYmFuZHMsIHUxNiBtY3NfbWFwKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy00Mi1cdHUzMiB1c3Jfdmh0X2NhcF9pbmZvID0gMDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzo0MzpcdHN0cnVjdCBueHB3aWZpX2FkYXB0ZXIgKmFkYXB0ZXIgPSBwcml2LVx1MDAzZWFkYXB0ZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtNDQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jPTc5PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6ODA6bnhwd2lmaV9maWxsX3ZodF9jYXBfaW5mbyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTgxLVx0XHRcdCAgc3RydWN0IGllZWU4MDIxMV92aHRfY2FwICp2aHRfY2FwLCB1MTYgYmFuZHMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtODIte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjgzOlx0c3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlciA9IHByaXYtXHUwMDNlYWRhcHRlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy04NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM9OTM9dm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjk0Om54cHdpZmlfZmlsbF92aHRfY2FwX3RsdihzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTk1LVx0XHRcdCBzdHJ1Y3QgaWVlZTgwMjExX3ZodF9jYXAgKnZodF9jYXAsIHUxNiBiYW5kcylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy05Ni17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6OTc6XHRzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyID0gcHJpdi1cdTAwM2VhZGFwdGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTk4LVx0dTE2IG1jc19tYXBfdXNlciwgbWNzX21hcF9yZXNwLCBtY3NfbWFwX3Jlc3VsdDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTAxLVx0LyogRmlsbCBWSFQgY2FwYWJpbGl0eSBpbmZvLiAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjEwMjpcdG54cHdpZmlfZmlsbF92aHRfY2FwX2luZm8ocHJpdiwgdmh0X2NhcCwgYmFuZHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTEwMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjEyNDpcdHRtcCA9IG54cHdpZmlfY29udmVydF9tY3NtYXBfdG9fbWF4cmF0ZShwcml2LCBiYW5kcywgbWNzX21hcF9yZXN1bHQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTEyNS1cdHZodF9jYXAtXHUwMDNlc3VwcF9tY3MucnhfaGlnaGVzdCA9IGNwdV90b19sZTE2KHRtcCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE0NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNDY6XHR0bXAgPSBueHB3aWZpX2NvbnZlcnRfbWNzbWFwX3RvX21heHJhdGUocHJpdiwgYmFuZHMsIG1jc19tYXBfcmVzdWx0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNDctXHR2aHRfY2FwLVx1MDAzZXN1cHBfbWNzLnR4X2hpZ2hlc3QgPSBjcHVfdG9fbGUxNih0bXApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTUwOmludCBueHB3aWZpX2NtZF9hcHBlbmRfMTFhY190bHYoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNTE6XHRcdFx0XHRzdHJ1Y3Qgbnhwd2lmaV9ic3NkZXNjcmlwdG9yICpic3NfZGVzYyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNTItXHRcdFx0XHR1OCAqKmJ1ZmZlcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNTMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE1NDpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX3ZodGNhcCAqdmh0X2NhcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNTU6XHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19vcGVyX21vZGVfbnRmICpvcGVyX250ZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNTYtXHRzdHJ1Y3QgaWVlZV90eXBlc19vcGVyX21vZGVfbnRmICppZWVlX29wZXJfbnRmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE1NzpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX3ZodF9vcGVyICp2aHRfb3A7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTU4Olx0c3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlciA9IHByaXYtXHUwMDNlYWRhcHRlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNTktXHR1OCBzdXBwX2Nod2Rfc2V0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNjktXHRpZiAoYnNzX2Rlc2MtXHUwMDNlYmNuX3ZodF9jYXApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNzA6XHRcdHZodF9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfdmh0Y2FwICopKmJ1ZmZlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNzEtXHRcdG1lbXNldCh2aHRfY2FwLCAwLCBzaXplb2YoKnZodF9jYXApKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTc0LVx0XHRcdGNwdV90b19sZTE2KHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3ZodF9jYXApKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNzU6XHRcdG1lbWNweSgodTggKil2aHRfY2FwICYjNDM7IHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE3Ni1cdFx0ICAgICAgICh1OCAqKWJzc19kZXNjLVx1MDAzZWJjbl92aHRfY2FwLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTc5Olx0XHRueHB3aWZpX2ZpbGxfdmh0X2NhcF90bHYocHJpdiwgXHUwMDI2dmh0X2NhcC1cdTAwM2V2aHRfY2FwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE4MC1cdFx0XHRcdFx0IGJzc19kZXNjLVx1MDAzZWJzc19iYW5kKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTg3LVx0XHRpZiAocHJpdi1cdTAwM2Vic3NfbW9kZSA9PSBOTDgwMjExX0lGVFlQRV9TVEFUSU9OKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTg4Olx0XHRcdHZodF9vcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc192aHRfb3BlciAqKSpidWZmZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTg5LVx0XHRcdG1lbXNldCh2aHRfb3AsIDAsIHNpemVvZigqdmh0X29wKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE5Mi1cdFx0XHR2aHRfb3AtXHUwMDNlaGVhZGVyLmxlbiAgPSBjcHVfdG9fbGUxNihzaXplb2YoKnZodF9vcCkgLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE5MzpcdFx0XHRcdHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xOTQtXHRcdFx0bWVtY3B5KCh1OCAqKXZodF9vcCAmIzQzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE5NTpcdFx0XHRcdHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE5Ni1cdFx0XHQgICAgICAgKHU4ICopYnNzX2Rlc2MtXHUwMDNlYmNuX3ZodF9vcGVyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0yNDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MjQ1OmludCBueHB3aWZpX2NtZF8xMWFjX2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTI0Ni1cdFx0XHQgc3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKmNtZCwgdTE2IGNtZF9hY3Rpb24sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MjQ3Olx0XHRcdCBzdHJ1Y3Qgbnhwd2lmaV8xMWFjX3ZodF9jZmcgKmNmZylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0yNDgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0yNjQtLyogSW5pdGlhbGl6ZSBCbG9ja0FjayBwYXJhbWV0ZXJzIGZvciAxMWFjLiAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjI2NTp2b2lkIG54cHdpZmlfc2V0XzExYWNfYmFfcGFyYW1zKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMjY2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmgtMi0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjM6ICogbnhwd2lmaTogODAyLjExYWMgKFZIVCkgZGVmaW5pdGlvbnNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuaC00LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oPTE0PWVudW0gdmh0X2NmZ19taXNjX2NvbmZpZyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oLTI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjI1OmludCBueHB3aWZpX2NtZF9hcHBlbmRfMTFhY190bHYoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuaDoyNjpcdFx0XHRcdHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oLTI3LVx0XHRcdFx0dTggKipidWZmZXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjI4OmludCBueHB3aWZpX2NtZF8xMWFjX2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oLTI5LVx0XHRcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuaDozMDpcdFx0XHQgc3RydWN0IG54cHdpZmlfMTFhY192aHRfY2ZnICpjZmcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjMxOnZvaWQgbnhwd2lmaV9maWxsX3ZodF9jYXBfdGx2KHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmgtMzItXHRcdFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV92aHRfY2FwICp2aHRfY2FwLCB1MTYgYmFuZHMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyOi8qIG54cHdpZmk6IDgwMi4xMWF4IChIRSkgc3VwcG9ydFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMtICogQ29weXJpZ2h0IChDKSAyMDExLTIwMjQgTlhQXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjExOnZvaWQgbnhwd2lmaV91cGRhdGVfMTFheF9jYXAoc3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMi1cdFx0XHQgICAgIHN0cnVjdCBod19zcGVjX2V4dGVuc2lvbiAqaHdfaGVfY2FwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNDpcdHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTU6XHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKmhlX2NhcCA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTY6XHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKnVzZXJfaGVfY2FwID0gTlVMTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNzpcdHU4IGhlYWRlcl9sZW4gPSBzaXplb2Yoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVhZGVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xOC1cdHUxNiBkYXRhX2xlbiA9IGxlMTZfdG9fY3B1KGh3X2hlX2NhcC1cdTAwM2VoZWFkZXIubGVuKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjItXHRpZiAoKGRhdGFfbGVuICYjNDM7IGhlYWRlcl9sZW4pIFx1MDAzZSBzaXplb2YoYWRhcHRlci1cdTAwM2Vod19oZV9jYXApKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjM6XHRcdG54cHdpZmlfZGJnKGFkYXB0ZXIsIEVSUk9SLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI0LVx0XHRcdCAgICBcJiMzNDtod19oZV9jYXAgdG9vIGJpZywgbGVuPSVkXFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyOTpcdGhlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilod19oZV9jYXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM3LVx0XHRoZV9jYXBfMmcgPSB0cnVlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM4Olx0XHRueHB3aWZpX2RiZ19kdW1wKGFkYXB0ZXIsIENNRF9ELCBcJiMzNDsyLjRHIEhFIGNhcGFiaWxpdHkgZWxlbWVudCBcJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzktXHRcdFx0XHQgYWRhcHRlci1cdTAwM2Vod18yZ19oZV9jYXAsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ1LVx0XHRhZGFwdGVyLVx1MDAzZWZ3X2JhbmRzIHw9IEJBTkRfQUFYO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ2Olx0XHRueHB3aWZpX2RiZ19kdW1wKGFkYXB0ZXIsIENNRF9ELCBcJiMzNDs1RyBIRSBjYXBhYmlsaXR5IGVsZW1lbnQgXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ3LVx0XHRcdFx0IGFkYXB0ZXItXHUwMDNlaHdfaGVfY2FwLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01Ny1cdFx0XHQgICAgICAgc2l6ZW9mKGFkYXB0ZXItXHUwMDNlaHdfMmdfaGVfY2FwKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTg6XHRcdFx0dXNlcl9oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTktXHRcdFx0XHRwcml2LVx1MDAzZXVzZXJfMmdfaGVfY2FwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy02My1cdFx0XHQgICAgICAgc2l6ZW9mKGFkYXB0ZXItXHUwMDNlaHdfaGVfY2FwKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NjQ6XHRcdFx0dXNlcl9oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNjUtXHRcdFx0XHRwcml2LVx1MDAzZXVzZXJfaGVfY2FwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy03OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo3OTpib29sIG54cHdpZmlfMTFheF9iYW5kY29uZmlnX2FsbG93ZWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo4MDpcdFx0XHRcdCAgICAgc3RydWN0IG54cHdpZmlfYnNzZGVzY3JpcHRvciAqYnNzX2Rlc2MpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtODEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy05NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo5NTppbnQgbnhwd2lmaV9maWxsX2hlX2NhcF90bHYoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo5NjpcdFx0XHQgICAgc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICpoZV9jYXAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtOTctXHRcdFx0ICAgIHUxNiBiYW5kcylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy05OC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6OTk6XHRzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyID0gcHJpdi1cdTAwM2VhZGFwdGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjEwMDpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqaHdfaGVfY2FwID0gTlVMTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMDEtXHR1MTYgcnhfbnNzLCB0eF9uc3M7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEwOC1cdFx0bWVtY3B5KGhlX2NhcCwgcHJpdi1cdTAwM2V1c2VyX2hlX2NhcCwgcHJpdi1cdTAwM2V1c2VyX2hlX2NhcF9sZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjEwOTpcdFx0aHdfaGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKWFkYXB0ZXItXHUwMDNlaHdfaGVfY2FwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTExMC1cdFx0cmV0X2xlbiA9IHByaXYtXHUwMDNldXNlcl9oZV9jYXBfbGVuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMTItXHRcdG1lbWNweShoZV9jYXAsIHByaXYtXHUwMDNldXNlcl8yZ19oZV9jYXAsIHByaXYtXHUwMDNldXNlcl8yZ19oZV9jYXBfbGVuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxMTM6XHRcdGh3X2hlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilhZGFwdGVyLVx1MDAzZWh3XzJnX2hlX2NhcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMTQtXHRcdHJldF9sZW4gPSBwcml2LVx1MDAzZXVzZXJfMmdfaGVfY2FwX2xlbjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTI1LVx0Zm9yIChuc3MgPSAxOyBuc3MgXHUwMDNjPSA4OyBuc3MmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTI2Olx0XHRjZmdfdmFsdWUgPSBueHB3aWZpX2dldF9oZV9uc3NfbWNzKGhlX2NhcC1cdTAwM2VyeF9tY3NfODAsIG5zcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTI3Olx0XHRod192YWx1ZSA9IG54cHdpZmlfZ2V0X2hlX25zc19tY3MoaHdfaGVfY2FwLVx1MDAzZXJ4X21jc184MCwgbnNzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMjgtXHRcdGlmIChyeF9uc3MgIT0gMCBcdTAwMjZcdTAwMjYgbnNzIFx1MDAzZSByeF9uc3MpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEzMC1cdFx0aWYgKGh3X3ZhbHVlID09IE5PX05TU19TVVBQT1JUIHx8IGNmZ192YWx1ZSA9PSBOT19OU1NfU1VQUE9SVClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxMzE6XHRcdFx0bnhwd2lmaV9zZXRfaGVfbnNzX21jcyhcdTAwMjZoZV9jYXAtXHUwMDNlcnhfbWNzXzgwLCBuc3MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTMyLVx0XHRcdFx0XHQgICAgICAgTk9fTlNTX1NVUFBPUlQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEzMy1cdFx0ZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjEzNDpcdFx0XHRueHB3aWZpX3NldF9oZV9uc3NfbWNzKFx1MDAyNmhlX2NhcC1cdTAwM2VyeF9tY3NfODAsIG5zcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMzUtXHRcdFx0XHRcdCAgICAgICBtaW4oY2ZnX3ZhbHVlLCBod192YWx1ZSkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMzgtXHRmb3IgKG5zcyA9IDE7IG5zcyBcdTAwM2M9IDg7IG5zcyYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxMzk6XHRcdGNmZ192YWx1ZSA9IG54cHdpZmlfZ2V0X2hlX25zc19tY3MoaGVfY2FwLVx1MDAzZXR4X21jc184MCwgbnNzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNDA6XHRcdGh3X3ZhbHVlID0gbnhwd2lmaV9nZXRfaGVfbnNzX21jcyhod19oZV9jYXAtXHUwMDNldHhfbWNzXzgwLCBuc3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE0MS1cdFx0aWYgKHR4X25zcyAhPSAwIFx1MDAyNlx1MDAyNiBuc3MgXHUwMDNlIHR4X25zcylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTQzLVx0XHRpZiAoaHdfdmFsdWUgPT0gTk9fTlNTX1NVUFBPUlQgfHwgY2ZnX3ZhbHVlID09IE5PX05TU19TVVBQT1JUKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE0NDpcdFx0XHRueHB3aWZpX3NldF9oZV9uc3NfbWNzKFx1MDAyNmhlX2NhcC1cdTAwM2V0eF9tY3NfODAsIG5zcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNDUtXHRcdFx0XHRcdCAgICAgICBOT19OU1NfU1VQUE9SVCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTQ2LVx0XHRlbHNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTQ3Olx0XHRcdG54cHdpZmlfc2V0X2hlX25zc19tY3MoXHUwMDI2aGVfY2FwLVx1MDAzZXR4X21jc184MCwgbnNzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE0OC1cdFx0XHRcdFx0ICAgICAgIG1pbihjZmdfdmFsdWUsIGh3X3ZhbHVlKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE1My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNTQ6aW50IG54cHdpZmlfY21kX2FwcGVuZF8xMWF4X3RsdihzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE1NTpcdFx0XHRcdHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE1Ni1cdFx0XHRcdHU4ICoqYnVmZmVyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE1Ny17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTU4Olx0c3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICpoZV9jYXAgPSBOVUxMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE1OS1cdGludCByZXRfbGVuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTY0Olx0aGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKSpidWZmZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTY1Olx0cmV0X2xlbiA9IG54cHdpZmlfZmlsbF9oZV9jYXBfdGx2KHByaXYsIGhlX2NhcCwgYnNzX2Rlc2MtXHUwMDNlYnNzX2JhbmQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE2Ni1cdCpidWZmZXIgJiM0Mzs9IHJldF9sZW47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNzE6aW50IG54cHdpZmlfY21kXzExYXhfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTcyLVx0XHRcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNzM6XHRcdFx0IHN0cnVjdCBueHB3aWZpXzExYXhfaGVfY2ZnICpheF9jZmcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTc0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTc2LVx0dTE2IGNtZF9zaXplO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE3NzpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlYWRlciAqaGVhZGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE3OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTg2LVx0ICAgIGF4X2NmZy1cdTAwM2VoZV9jYXBfY2ZnLmV4dF9pZCA9PSBXTEFOX0VJRF9FWFRfSEVfQ0FQQUJJTElUWSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE4NzpcdFx0aGVhZGVyID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlYWRlciAqKWhlX2NmZy1cdTAwM2V0bHY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTg4LVx0XHRoZWFkZXItXHUwMDNldHlwZSA9IGNwdV90b19sZTE2KGF4X2NmZy1cdTAwM2VoZV9jYXBfY2ZnLmlkKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjAwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIwMTppbnQgbnhwd2lmaV9yZXRfMTFheF9jZmcoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yMDItXHRcdFx0IHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpyZXNwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIwMzpcdFx0XHQgc3RydWN0IG54cHdpZmlfMTFheF9oZV9jZmcgKmF4X2NmZylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yMDQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIwNS1cdHN0cnVjdCBob3N0X2NtZF8xMWF4X2NmZyAqaGVfY2ZnID0gXHUwMDI2cmVzcC1cdTAwM2VwYXJhbXMuYXhfY2ZnO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIwNjpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlYWRlciAqaGVhZGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIwNy1cdHUxNiBsZWZ0X2xlbiwgdGx2X3R5cGUsIHRsdl9sZW47XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjA4LVx0dTggZXh0X2lkO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIwOTpcdHN0cnVjdCBueHB3aWZpXzExYXhfaGVfY2FwX2NmZyAqaGVfY2FwID0gXHUwMDI2YXhfY2ZnLVx1MDAzZWhlX2NhcF9jZmc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIxMS1cdGxlZnRfbGVuID0gbGUxNl90b19jcHUocmVzcC1cdTAwM2VzaXplKSAtIHNpemVvZigqaGVfY2ZnKSAtIFNfRFNfR0VOO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIxMjpcdGhlYWRlciA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIgKiloZV9jZmctXHUwMDNldGx2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIxMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjQyLVx0XHRsZWZ0X2xlbiAtPSAoc2l6ZW9mKCpoZWFkZXIpICYjNDM7IHRsdl9sZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI0MzpcdFx0aGVhZGVyID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlYWRlciAqKSgodTggKiloZWFkZXIgJiM0MztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yNDQtXHRcdFx0XHRcdFx0XHQgICAgc2l6ZW9mKCpoZWFkZXIpICYjNDM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI1MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNTE6aW50IG54cHdpZmlfY21kXzExYXhfY21kKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjUyLVx0XHRcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNTM6XHRcdFx0IHN0cnVjdCBueHB3aWZpXzExYXhfY21kX2NmZyAqYXhfY21kKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI1NC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjU1Olx0c3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlciA9IHByaXYtXHUwMDNlYWRhcHRlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yNTYtXHRzdHJ1Y3QgaG9zdF9jbWRfMTFheF9jbWQgKmhlX2NtZCA9IFx1MDAyNmNtZC1cdTAwM2VwYXJhbXMuYXhfY21kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI1Ny1cdHUxNiBjbWRfc2l6ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNTg6XHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3NyX2NtZCAqc3JfY21kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI1OTpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2RhdGEgKnRsdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjA6XHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X2JlYW1fY21kICpiZWFtX2NtZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjE6XHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X2h0Y19jbWQgKmh0Y19jbWQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjYyOlx0c3RydWN0IG54cHdpZmlfMTFheF90eG9taV9jbWQgKnR4bW9pX2NtZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjM6XHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3RvbHRpbWVfY21kICp0b2x0aW1lX2NtZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjQ6XHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3R4b3BfY21kICp0eG9wX2NtZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjU6XHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3NldF9ic3JwX2NtZCAqc2V0X2JzcnBfY21kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI2NjpcdHN0cnVjdCBueHB3aWZpXzExYXhfbGxkZV9jbWQgKmxsZGVfY21kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI2Ny1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjc1LVx0Y2FzZSBOWFBXSUZJXzExQVhDTURfU1JfU1VCSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6Mjc2Olx0XHRzcl9jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF9zcl9jbWQgKilcdTAwMjZheF9jbWQtXHUwMDNlcGFyYW07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI3ODpcdFx0dGx2ID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2RhdGEgKiloZV9jbWQtXHUwMDNldmFsO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI3OS1cdFx0dGx2LVx1MDAzZWhlYWRlci50eXBlID0gY3B1X3RvX2xlMTYoc3JfY21kLVx1MDAzZXR5cGUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yODUtXHRjYXNlIE5YUFdJRklfMTFBWENNRF9CRUFNX1NVQklEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI4NjpcdFx0YmVhbV9jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF9iZWFtX2NtZCAqKVx1MDAyNmF4X2NtZC1cdTAwM2VwYXJhbTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yODctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI5MS1cdGNhc2UgTlhQV0lGSV8xMUFYQ01EX0hUQ19TVUJJRDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyOTI6XHRcdGh0Y19jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF9odGNfY21kICopXHUwMDI2YXhfY21kLVx1MDAzZXBhcmFtO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI5My1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjk3LVx0Y2FzZSBOWFBXSUZJXzExQVhDTURfVFhPTUlfU1VCSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6Mjk4Olx0XHR0eG1vaV9jbWQgPVx0KHN0cnVjdCBueHB3aWZpXzExYXhfdHhvbWlfY21kICopXHUwMDI2YXhfY21kLVx1MDAzZXBhcmFtO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI5OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzAzLVx0Y2FzZSBOWFBXSUZJXzExQVhDTURfT0JTU19UT0xUSU1FX1NVQklEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjMwNDpcdFx0dG9sdGltZV9jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF90b2x0aW1lX2NtZCAqKVx1MDAyNmF4X2NtZC1cdTAwM2VwYXJhbTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMDUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMxMC1cdGNhc2UgTlhQV0lGSV8xMUFYQ01EX1RYT1BSVFNfU1VCSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzExOlx0XHR0eG9wX2NtZCA9IChzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3R4b3BfY21kICopXHUwMDI2YXhfY21kLVx1MDAzZXBhcmFtO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMxMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzE3LVx0Y2FzZSBOWFBXSUZJXzExQVhDTURfU0VUX0JTUlBfU1VCSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzE4Olx0XHRzZXRfYnNycF9jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF9zZXRfYnNycF9jbWQgKilcdTAwMjZheF9jbWQtXHUwMDNlcGFyYW07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzE5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMjMtXHRjYXNlIE5YUFdJRklfMTFBWENNRF9MTERFX1NVQklEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjMyNDpcdFx0bGxkZV9jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF9sbGRlX2NtZCAqKVx1MDAyNmF4X2NtZC1cdTAwM2VwYXJhbTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMjUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMyOS1cdGRlZmF1bHQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzMwOlx0XHRueHB3aWZpX2RiZyhhZGFwdGVyLCBFUlJPUixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMzEtXHRcdFx0ICAgIFwmIzM0OyVzOiBVbmtub3duIHN1YiBjb21tYW5kOiAlZFxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzQwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM0MTppbnQgbnhwd2lmaV9yZXRfMTFheF9jbWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zNDItXHRcdFx0IHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpyZXNwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM0MzpcdFx0XHQgc3RydWN0IG54cHdpZmlfMTFheF9jbWRfY2ZnICpheF9jbWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzQ0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzozNDU6XHRzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyID0gcHJpdi1cdTAwM2VhZGFwdGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM0Ni1cdHN0cnVjdCBob3N0X2NtZF8xMWF4X2NtZCAqaGVfY21kID0gXHUwMDI2cmVzcC1cdTAwM2VwYXJhbXMuYXhfY21kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM0NzpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2RhdGEgKnRsdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zNDgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM1Mi1cdGNhc2UgTlhQV0lGSV8xMUFYQ01EX1NSX1NVQklEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM1MzpcdFx0dGx2ID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2RhdGEgKiloZV9jbWQtXHUwMDNldmFsO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM1NC1cdFx0bWVtY3B5KGF4X2NtZC1cdTAwM2VwYXJhbS5zcl9jZmcucGFyYW0ub2Jzc19wZF9vZmZzZXQub2Zmc2V0LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zODMtXHRkZWZhdWx0OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM4NDpcdFx0bnhwd2lmaV9kYmcoYWRhcHRlciwgRVJST1IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzg1LVx0XHRcdCAgICBcJiMzNDslczogVW5rbm93biBzdWIgY29tbWFuZDogJWRcXG5cJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM5Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzozOTM6c3RhdGljIHU4IG54cHdpZmlfaXNfYXBfMTFheF90d3Rfc3VwcG9ydGVkKHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM5NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQwOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MTA6Ym9vbCBueHB3aWZpX2lzXzExYXhfdHd0X3N1cHBvcnRlZChzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQxMTpcdFx0XHRcdCAgIHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQxMi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDEzOlx0c3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICp1c2VyX2hlX2NhcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MTQ6XHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKmh3X2hlX2NhcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDE2Olx0aWYgKGJzc19kZXNjIFx1MDAyNlx1MDAyNiAoIW54cHdpZmlfaXNfYXBfMTFheF90d3Rfc3VwcG9ydGVkKGJzc19kZXNjKSkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MTc6XHRcdG54cHdpZmlfZGJnKHByaXYtXHUwMDNlYWRhcHRlciwgTVNHLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQxOC1cdFx0XHQgICAgXCYjMzQ7QVAgZG9uJiMzOTt0IHN1cHBvcnQgdHd0IGZlYXR1cmVcXG5cJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MjItXHRpZiAoYnNzX2Rlc2MtXHUwMDNlYnNzX2JhbmQgXHUwMDI2IEJBTkRfQSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQyMzpcdFx0aHdfaGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQyNC1cdFx0XHRwcml2LVx1MDAzZWFkYXB0ZXItXHUwMDNlaHdfaGVfY2FwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQyNTpcdFx0dXNlcl9oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDI2LVx0XHRcdHByaXYtXHUwMDNldXNlcl9oZV9jYXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDI3LVx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0Mjg6XHRcdGh3X2hlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MjktXHRcdFx0cHJpdi1cdTAwM2VhZGFwdGVyLVx1MDAzZWh3XzJnX2hlX2NhcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MzA6XHRcdHVzZXJfaGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQzMS1cdFx0XHRwcml2LVx1MDAzZXVzZXJfMmdfaGVfY2FwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MzQtXHRpZiAoIShod19oZV9jYXAtXHUwMDNlaGVfbWFjX2NhcFswXSBcdTAwMjYgSEVfTUFDX0NBUF9UV1RfUkVRX1NVUFBPUlQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDM1Olx0XHRueHB3aWZpX2RiZyhwcml2LVx1MDAzZWFkYXB0ZXIsIE1TRyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MzYtXHRcdFx0ICAgIFwmIzM0O0ZXIGRvbiYjMzk7dCBzdXBwb3J0IFRXVFxcblwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ0MC1cdGlmICghKHVzZXJfaGVfY2FwLVx1MDAzZWhlX21hY19jYXBbMF0gXHUwMDI2IEhFX01BQ19DQVBfVFdUX1JFUV9TVVBQT1JUKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ0MTpcdFx0bnhwd2lmaV9kYmcocHJpdi1cdTAwM2VhZGFwdGVyLCBNU0csXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDQyLVx0XHRcdCAgICBcJiMzNDtVU0VSIEhFX01BQ19DQVAgZG9uJiMzOTt0IHN1cHBvcnQgVFdUXFxuXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDQ4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ0OTp1OCBueHB3aWZpX2lzX3N0YV8xMWF4X3R3dF9yZXFfc3VwcG9ydGVkKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDUwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NTE6XHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKnVzZXJfaGVfY2FwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ1Mi1cdHU4IHJldCA9IDA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ1Ni1cdFx0aWYgKHByaXYtXHUwMDNlY29uZmlnX2JhbmRzIFx1MDAyNiBCQU5EX0FBWClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NTc6XHRcdFx0dXNlcl9oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopcHJpdi1cdTAwM2V1c2VyX2hlX2NhcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NTgtXHRcdGVsc2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NTk6XHRcdFx0dXNlcl9oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopcHJpdi1cdTAwM2V1c2VyXzJnX2hlX2NhcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NjAtXHRcdHJldCA9IHVzZXJfaGVfY2FwLVx1MDAzZWhlX21hY19jYXBbMF0gXHUwMDI2IEhFX01BQ19DQVBfVFdUX1JFUV9TVVBQT1JUO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDY2OmludCBueHB3aWZpX2NtZF90d3RfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDY3LVx0XHRcdHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpjbWQsIHUxNiBjbWRfYWN0aW9uLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ2ODpcdFx0XHRzdHJ1Y3Qgbnhwd2lmaV90d3RfY2ZnICp0d3RfY2ZnKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ2OS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDcwOlx0c3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlciA9IHByaXYtXHUwMDNlYWRhcHRlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NzEtXHRzdHJ1Y3QgaG9zdF9jbWRfdHd0X2NmZyAqdHd0X2NmZ19jbWQgPSBcdTAwMjZjbWQtXHUwMDNlcGFyYW1zLnR3dF9jZmc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDcyOlx0c3RydWN0IG54cHdpZmlfdHd0X3NldHVwICp0d3Rfc2V0dXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDczOlx0c3RydWN0IG54cHdpZmlfdHd0X3RlYXJkb3duICp0d3RfdGVhcmRvd247XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDc0Olx0c3RydWN0IG54cHdpZmlfdHd0X3JlcG9ydCAqdHd0X3JlcG9ydDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NzU6XHRzdHJ1Y3Qgbnhwd2lmaV90d3RfaW5mb3JtYXRpb24gKnR3dF9pbmZvcm1hdGlvbjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NzY6XHRzdHJ1Y3Qgbnhwd2lmaV9idHd0X2FwX2NvbmZpZyAqYnR3dF9hcF9jb25maWc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDc3LVx0dTggaTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDg3LVx0Y2FzZSBOWFBXSUZJXzExQVhfVFdUX1NFVFVQX1NVQklEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ4ODpcdFx0dHd0X3NldHVwID0gKHN0cnVjdCBueHB3aWZpX3R3dF9zZXR1cCAqKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ4OS1cdFx0XHR0d3RfY2ZnX2NtZC1cdTAwM2V2YWw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ5MTpcdFx0bWVtc2V0KHR3dF9zZXR1cCwgMHgwMCwgc2l6ZW9mKHN0cnVjdCBueHB3aWZpX3R3dF9zZXR1cCkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ5Mi1cdFx0dHd0X3NldHVwLVx1MDAzZWltcGxpY2l0ID0gdHd0X2NmZy1cdTAwM2VwYXJhbS50d3Rfc2V0dXAuaW1wbGljaXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUwNC1cdFx0dHd0X3NldHVwLVx1MDAzZWJjbl9taXNzX3RocmVzaG9sZCA9IHR3dF9jZmctXHUwMDNlcGFyYW0udHd0X3NldHVwLmJjbl9taXNzX3RocmVzaG9sZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1MDU6XHRcdGNtZF9zaXplICYjNDM7PSBzaXplb2Yoc3RydWN0IG54cHdpZmlfdHd0X3NldHVwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MDYtXHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUwNy1cdGNhc2UgTlhQV0lGSV8xMUFYX1RXVF9URUFSRE9XTl9TVUJJRDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1MDg6XHRcdHR3dF90ZWFyZG93biA9IChzdHJ1Y3Qgbnhwd2lmaV90d3RfdGVhcmRvd24gKilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MDktXHRcdFx0dHd0X2NmZ19jbWQtXHUwMDNldmFsO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUxMC1cdFx0bWVtc2V0KHR3dF90ZWFyZG93biwgMHgwMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1MTE6XHRcdCAgICAgICBzaXplb2Yoc3RydWN0IG54cHdpZmlfdHd0X3RlYXJkb3duKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTEyLVx0XHR0d3RfdGVhcmRvd24tXHUwMDNlZmxvd19pZGVudGlmaWVyID1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTE3LVx0XHRcdHR3dF9jZmctXHUwMDNlcGFyYW0udHd0X3RlYXJkb3duLnRlYXJkb3duX2FsbF90d3Q7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTE4Olx0XHRjbWRfc2l6ZSAmIzQzOz0gc2l6ZW9mKHN0cnVjdCBueHB3aWZpX3R3dF90ZWFyZG93bik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTE5LVx0XHRicmVhaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MjAtXHRjYXNlIE5YUFdJRklfMTFBWF9UV1RfUkVQT1JUX1NVQklEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjUyMTpcdFx0dHd0X3JlcG9ydCA9IChzdHJ1Y3Qgbnhwd2lmaV90d3RfcmVwb3J0ICopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTIyLVx0XHRcdHR3dF9jZmdfY21kLVx1MDAzZXZhbDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1MjM6XHRcdG1lbXNldCh0d3RfcmVwb3J0LCAweDAwLCBzaXplb2Yoc3RydWN0IG54cHdpZmlfdHd0X3JlcG9ydCkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUyNC1cdFx0dHd0X3JlcG9ydC1cdTAwM2V0eXBlID0gdHd0X2NmZy1cdTAwM2VwYXJhbS50d3RfcmVwb3J0LnR5cGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTI1Olx0XHRjbWRfc2l6ZSAmIzQzOz0gc2l6ZW9mKHN0cnVjdCBueHB3aWZpX3R3dF9yZXBvcnQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUyNi1cdFx0YnJlYWs7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTI3LVx0Y2FzZSBOWFBXSUZJXzExQVhfVFdUX0lORk9STUFUSU9OX1NVQklEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjUyODpcdFx0dHd0X2luZm9ybWF0aW9uID0gKHN0cnVjdCBueHB3aWZpX3R3dF9pbmZvcm1hdGlvbiAqKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUyOS1cdFx0XHR0d3RfY2ZnX2NtZC1cdTAwM2V2YWw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTMwLVx0XHRtZW1zZXQodHd0X2luZm9ybWF0aW9uLCAweDAwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjUzMTpcdFx0ICAgICAgIHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3RfaW5mb3JtYXRpb24pKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MzItXHRcdHR3dF9pbmZvcm1hdGlvbi1cdTAwM2VmbG93X2lkZW50aWZpZXIgPVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MzUtXHRcdFx0dHd0X2NmZy1cdTAwM2VwYXJhbS50d3RfaW5mb3JtYXRpb24uc3VzcGVuZF9kdXJhdGlvbjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1MzY6XHRcdGNtZF9zaXplICYjNDM7PSBzaXplb2Yoc3RydWN0IG54cHdpZmlfdHd0X2luZm9ybWF0aW9uKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MzctXHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUzOC1cdGNhc2UgTlhQV0lGSV8xMUFYX0JUV1RfQVBfQ09ORklHX1NVQklEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjUzOTpcdFx0YnR3dF9hcF9jb25maWcgPSAoc3RydWN0IG54cHdpZmlfYnR3dF9hcF9jb25maWcgKilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01NDAtXHRcdFx0XHQgdHd0X2NmZ19jbWQtXHUwMDNldmFsO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU0MS1cdFx0bWVtc2V0KGJ0d3RfYXBfY29uZmlnLCAweDAwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjU0MjpcdFx0ICAgICAgIHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV9idHd0X2FwX2NvbmZpZykpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU0My1cdFx0YnR3dF9hcF9jb25maWctXHUwMDNlYXBfYmNhc3RfYmV0X3N0YV93YWl0ID1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTYxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjU2MjpcdFx0Y21kX3NpemUgJiM0Mzs9IHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV9idHd0X2FwX2NvbmZpZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTYzLVx0XHRicmVhaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01NjQtXHRkZWZhdWx0OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjU2NTpcdFx0bnhwd2lmaV9kYmcoYWRhcHRlciwgRVJST1IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTY2LVx0XHRcdCAgICBcJiMzNDtVbmtub3duIHN1YiBpZDogJWRcXG5cJiMzNDssIHR3dF9jZmctXHUwMDNlc3ViX2lkKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTc0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjU3NTppbnQgbnhwd2lmaV9yZXRfdHd0X2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU3Ni1cdFx0XHRzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqcmVzcCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1Nzc6XHRcdFx0c3RydWN0IG54cHdpZmlfdHd0X2NmZyAqdHd0X2NmZylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01Nzgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01ODYtXHQgICAgdHd0X2NmZy1cdTAwM2VzdWJfaWQgPT0gTlhQV0lGSV8xMUFYX1RXVF9SRVBPUlRfU1VCSUQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1ODc6XHRcdHN0cnVjdCBueHB3aWZpX3R3dF9yZXBvcnQgKnR3dF9yZXBvcnQgPVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjU4ODpcdFx0XHQoc3RydWN0IG54cHdpZmlfdHd0X3JlcG9ydCAqKXR3dF9jZmdfY21kLVx1MDAzZXZhbDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01ODktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTkwOlx0XHRtZW1jcHkoXHUwMDI2dHd0X2NmZy1cdTAwM2VwYXJhbS50d3RfcmVwb3J0LCB0d3RfcmVwb3J0LCBzaXplb2Yoc3RydWN0IG54cHdpZmlfdHd0X3JlcG9ydCkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU5MS1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMi0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjM6ICogbnhwd2lmaTogODAyLjExYXggc3VwcG9ydFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTQtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg9MTc9c3RhdGljIGlubGluZSB1MTZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDoxODpueHB3aWZpX2dldF9oZV9uc3NfbWNzKF9fbGUxNiBtY3NfbWFwX3NldCwgaW50IG5zcykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTE5LVx0cmV0dXJuICgobGUxNl90b19jcHUobWNzX21hcF9zZXQpIFx1MDAzZVx1MDAzZSAoMiAqIChuc3MgLSAxKSkpIFx1MDAyNiAweDMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaD0yMj1zdGF0aWMgaW5saW5lIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDoyMzpueHB3aWZpX3NldF9oZV9uc3NfbWNzKF9fbGUxNiAqbWNzX21hcF9zZXQsIGludCBuc3MsIGludCB2YWx1ZSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTI0LVx0dTE2IHRlbXA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjMxOmJvb2wgbnhwd2lmaV9pc18xMWF4X3R3dF9zdXBwb3J0ZWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDozMjpcdFx0XHRcdCAgIHN0cnVjdCAgbnhwd2lmaV9ic3NkZXNjcmlwdG9yICpic3NfZGVzYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6MzQ6dm9pZCBueHB3aWZpX3VwZGF0ZV8xMWF4X2NhcChzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTM1LVx0XHRcdCAgICAgc3RydWN0IGh3X3NwZWNfZXh0ZW5zaW9uICpod19oZV9jYXApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjM3OmJvb2wgbnhwd2lmaV8xMWF4X2JhbmRjb25maWdfYWxsb3dlZChzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjM4Olx0XHRcdFx0ICAgICBzdHJ1Y3Qgbnhwd2lmaV9ic3NkZXNjcmlwdG9yICpic3NfZGVzYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NDA6aW50IG54cHdpZmlfY21kX2FwcGVuZF8xMWF4X3RsdihzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjQxOlx0XHRcdFx0c3RydWN0IG54cHdpZmlfYnNzZGVzY3JpcHRvciAqYnNzX2Rlc2MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNDItXHRcdFx0XHR1OCAqKmJ1ZmZlcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NDQ6aW50IG54cHdpZmlfZmlsbF9oZV9jYXBfdGx2KHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NDU6XHRcdFx0ICAgIHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqaGVfY2FwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTQ2LVx0XHRcdCAgICB1MTYgYmFuZHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjQ3OmludCBueHB3aWZpX2NtZF8xMWF4X2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTQ4LVx0XHRcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo0OTpcdFx0XHQgc3RydWN0IG54cHdpZmlfMTFheF9oZV9jZmcgKmF4X2NmZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NTE6aW50IG54cHdpZmlfcmV0XzExYXhfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNTItXHRcdFx0IHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpyZXNwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjUzOlx0XHRcdCBzdHJ1Y3Qgbnhwd2lmaV8xMWF4X2hlX2NmZyAqYXhfY2ZnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC01NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo1NTppbnQgbnhwd2lmaV9jbWRfMTFheF9jbWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC01Ni1cdFx0XHQgc3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKmNtZCwgdTE2IGNtZF9hY3Rpb24sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NTc6XHRcdFx0IHN0cnVjdCBueHB3aWZpXzExYXhfY21kX2NmZyAqYXhfY21kKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC01OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo1OTppbnQgbnhwd2lmaV9yZXRfMTFheF9jbWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC02MC1cdFx0XHQgc3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKnJlc3AsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NjE6XHRcdFx0IHN0cnVjdCBueHB3aWZpXzExYXhfY21kX2NmZyAqYXhfY21kKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC02Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo2MzppbnQgbnhwd2lmaV9jbWRfdHd0X2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTY0LVx0XHRcdHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpjbWQsIHUxNiBjbWRfYWN0aW9uLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjY1Olx0XHRcdHN0cnVjdCBueHB3aWZpX3R3dF9jZmcgKnR3dF9jZmcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTY2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjY3OmludCBueHB3aWZpX3JldF90d3RfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNjgtXHRcdFx0c3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKnJlc3AsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6Njk6XHRcdFx0c3RydWN0IG54cHdpZmlfdHd0X2NmZyAqdHd0X2NmZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NzE6dTggbnhwd2lmaV9pc19zdGFfMTFheF90d3RfcmVxX3N1cHBvcnRlZChzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC03Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYy0yLS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYzozOiAqIG54cHdpZmk6IDgwMi4xMWggaGVscGVyc1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFoLmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jLTEyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFoLmM6MTM6dm9pZCBueHB3aWZpX2luaXRfMTFoX3BhcmFtcyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFoLmMtMTQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jLTE4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFoLmM6MTk6aW50IG54cHdpZmlfaXNfMTFoX2FjdGl2ZShzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFoLmMtMjAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jPTI1PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYzoyNjpueHB3aWZpXzExaF9wcm9jZXNzX2luZnJhX2pvaW4oc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdiwgdTggKipidWZmZXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYzoyNzpcdFx0XHQgICAgICAgc3RydWN0IG54cHdpZmlfYnNzZGVzY3JpcHRvciAqYnNzX2Rlc2MpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYy0yOC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYzoyOTpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlYWRlciAqaWVfaGVhZGVyO1xuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTE6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAxNjYKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiA0NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSAmIzM0O254cHdpZmkmIzM0OyBEcml2ZXIqKgoKQWxyaWdodCwgc28gYG54cHdpZmlgLi4uIHRoYXQgcmluZ3MgYSBiZWxsLiBOb3cgdGhlIHF1ZXN0aW9uIGlzLCBpcyB0aGlzIGEgZ2VudWluZWx5IGluZGVwZW5kZW50IGRyaXZlciwgb3IgaXMgaXQgYSBzeW1ib2xpYyBsaW5rIG9yIHNvbWUga2luZCBvZiByZWJyYW5kaW5nIG9mIGFuIGV4aXN0aW5nIG9uZT8gTXkgZmlyc3QgaW5zdGluY3QgaXMgdG8gZGlnIGludG8gdGhlIHNvdXJjZSBjb2RlIHRvIGdldCBhIGhhbmRsZSBvbiBpdC4gTGV0JiMzOTtzIHNlZS4uLiBhIHF1aWNrIGNoZWNrIG9mIHRoZSBzdGFuZGFyZCBkcml2ZXIgbGF5b3V0IGlzIGluIG9yZGVyLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byBnZXQgaW50byB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlciAtIHRoZSBjb25maWd1cmF0aW9uIGFuZCBidWlsZCBmaWxlcy4KClRoZSBvYnZpb3VzIHBsYWNlcyB0byBzdGFydCBhcmUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWdgIGFuZCBgTWFrZWZpbGVgLiBUaGUgS2NvbmZpZyBmaWxlIHNob3VsZCBkZWZpbmUgdGhlIHJlbGV2YW50IGtlcm5lbCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIElmIGl0JiMzOTtzIGEgY29tcGxldGVseSBuZXcsIHN0YW5kLWFsb25lIGRyaXZlciwgSSYjMzk7ZCBleHBlY3QgdG8gc2VlIGl0cyBvd24gc2V0IG9mIG9wdGlvbnMuIElmIGl0JiMzOTtzIGEgcmVuYW1lIG9yIGhlYXZpbHkgbW9kaWZpZWQgdmFyaWFudCwgdGhlIEtjb25maWcgbWlnaHQgaW5jbHVkZSBhbmQgaW5oZXJpdCBjb25maWd1cmF0aW9ucyBmcm9tIGFub3RoZXIgZHJpdmVyLCBvciBtYWtlIGV4dGVuc2l2ZSB1c2Ugb2YgJiMzOTtzZWxlY3QmIzM5OyBzdGF0ZW1lbnRzLgoKVGhlIE1ha2VmaWxlLCBvZiBjb3Vyc2UsIHdpbGwgdGVsbCB0aGUgYnVpbGQgc3lzdGVtIGhvdyB0byBjb21waWxlIGFuZCBsaW5rIHRoZSBjb2RlLiBBIGxvb2sgYXQgdGhlIHNvdXJjZSBmaWxlcyBpbmNsdWRlZCwgdGhlIGRlcGVuZGVuY2llcywgYW5kIHRoZSBsaW5raW5nIHRhcmdldHMgd2lsbCBxdWlja2x5IHJldmVhbCBob3cgdGhpcyBkcml2ZXIgaXMgYXJjaGl0ZWN0ZWQgYW5kIGlmIGl0JiMzOTtzIGJhc2VkIG9uIHNvbWUgb3RoZXIgZXhpc3RpbmcgY29kZSBiYXNlIG9yIGlzIGEgY29tcGxldGVseSBzdGFuZC1hbG9uZSBpbXBsZW1lbnRhdGlvbi4gVGhpcyBpcyB0aGUgZmFzdGVzdCB3YXkgdG8gdW5kZXJzdGFuZCB0aGUgcmVsYXRpb25zaGlwcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxMTo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTlhQV0lGSSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnOjI6Y29uZmlnIE5YUFdJRklcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O05YUCBXaUZpIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWctMTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnOjEyOmNvbmZpZyBOWFBXSUZJX1NESU9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWctMTMtXHR0cmlzdGF0ZSBcJiMzNDtOWFAgV2lGaSBEcml2ZXIgZm9yIElXNjF4XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTE6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA3MjgKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAxOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipBbmFseXppbmcgdGhlIE5YUCBXaUZpIERyaXZlcjogQnVzIEludGVyZmFjZSBTdXBwb3J0KioKCkFscmlnaHQsIHNvIEkmIzM5O3ZlIGdvdCB0aGlzIE5YUCBXaUZpIGRyaXZlciBpbiBmcm9udCBvZiBtZS4gSW1tZWRpYXRlbHksIG15IGZvY3VzIHNoaWZ0cyB0byB0aGUgaGFyZHdhcmUgaW50ZXJmYWNlLiBHaXZlbiBteSBleHBlcmllbmNlLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgZnVuZGFtZW50YWwgYXJjaGl0ZWN0dXJlLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHRvIGRpdmUgcmlnaHQgaW50byB0aGUgY29kZSB0byBkZXRlcm1pbmUgdGhlIHN1cHBvcnRlZCBidXMgdHlwZXMuIElzIGl0IFNESU8/IFBDSWU/IE1heWJlIGV2ZW4gc29tZSBwcm9wcmlldGFyeSBpbnRlcmZhY2U/IFVuZGVyc3RhbmRpbmcgdGhlIGJ1cyBjb25uZWN0aW9uIGlzIGFic29sdXRlbHkgY3JpdGljYWwgdG8gZ3Jhc3BpbmcgdGhlIGRyaXZlciYjMzk7cyB1bmRlcmx5aW5nIGNvbW11bmljYXRpb24gc3RyYXRlZ3ksIGl0cyBwZXJmb3JtYW5jZSBsaW1pdGF0aW9ucywgYW5kIHBvdGVudGlhbCBpbnRlZ3JhdGlvbiBjaGFsbGVuZ2VzIHdpdGggc3BlY2lmaWMgaGFyZHdhcmUgcGxhdGZvcm1zLiBLbm93aW5nIHRoZSBzdXBwb3J0ZWQgYnVzKHNlcykgaXMgdGhlIGNyaXRpY2FsIGZpcnN0IHN0ZXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTE6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE5YUFdJRkkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWc6Mjpjb25maWcgTlhQV0lGSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7TlhQIFdpRmkgRHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZy0xMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWc6MTI6Y29uZmlnIE5YUFdJRklfU0RJT1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZy0xMy1cdHRyaXN0YXRlIFwmIzM0O05YUCBXaUZpIERyaXZlciBmb3IgSVc2MXhcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxMTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTExMAoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcy4gSGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBhcyBpZiB0aGV5JiMzOTtyZSBteSBvd246CgoqKkFuYWx5emluZyB0aGUgS2NvbmZpZyBGaWxlKioKCkFscmlnaHQsIHRpbWUgdG8gZ2V0IHRvIHdvcmsuIE15IGluaXRpYWwgdGhvdWdodCBpcywgJiMzNDtMZXQmIzM5O3MgcmVhZCB0aGUgS2NvbmZpZyBmaWxlLiYjMzQ7IFRoYXQmIzM5O3MgdGhlIGNvcmUgb2YgaXQsIHJlYWxseS4gSXQmIzM5O3MgdGhlIHN0YXJ0aW5nIHBvaW50LiBJIG5lZWQgdG8gZ2V0IGEgY2xlYXIgcGljdHVyZSBvZiB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zLCBkZXBlbmRlbmNpZXMsIGFuZCB0aGVpciBvdmVyYWxsIHN0cnVjdHVyZS4gVGhpcyBmaWxlIGlzIHRoZSBibHVlcHJpbnQsIHRoZSBoZWFydCBvZiB0aGUgY29uZmlndXJhdGlvbiBzeXN0ZW0sIHNvIHVuZGVyc3RhbmRpbmcgaXQgdGhvcm91Z2hseSBpcyBwYXJhbW91bnQgYmVmb3JlIEkgcHJvY2VlZCBhbnkgZnVydGhlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTE6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4gICAyOlx0Y29uZmlnIE5YUFdJRklcbiAgIDM6XHRcdHRyaXN0YXRlIFwmIzM0O05YUCBXaUZpIERyaXZlclwmIzM0O1xuICAgNDpcdFx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxuICAgNTpcdFx0aGVscFxuICAgNjpcdFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3Igd2lyZWxlc3MgYWRhcHRlcnMgYmFzZWQgb24gTlhQXG4gICA3Olx0XHQgIDgwMi4xMW4vYWMgY2hpcHNldHMuXG4gICA4Olx0XG4gICA5Olx0XHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgaXQgYXMgYSBtb2R1bGUsIGl0IHdpbGwgYmUgY2FsbGVkXG4gIDEwOlx0XHQgIG54cHdpZmkuXG4gIDExOlx0XG4gIDEyOlx0Y29uZmlnIE5YUFdJRklfU0RJT1xuICAxMzpcdFx0dHJpc3RhdGUgXCYjMzQ7TlhQIFdpRmkgRHJpdmVyIGZvciBJVzYxeFwmIzM0O1xuICAxNDpcdFx0ZGVwZW5kcyBvbiBOWFBXSUZJIFx1MDAyNlx1MDAyNiBNTUNcbiAgMTU6XHRcdHNlbGVjdCBGV19MT0FERVJcbiAgMTY6XHRcdHNlbGVjdCBXQU5UX0RFVl9DT1JFRFVNUFxuICAxNzpcdFx0aGVscFxuICAxODpcdFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3Igd2lyZWxlc3MgYWRhcHRlcnMgYmFzZWQgb24gTlhQXG4gIDE5Olx0XHQgIElXNjF4IGludGVyZmFjZS5cbiAgMjA6XHRcbiAgMjE6XHRcdCAgSWYgeW91IGNob29zZSB0byBidWlsZCBpdCBhcyBhIG1vZHVsZSwgaXQgd2lsbCBiZSBjYWxsZWRcbiAgMjI6XHRcdCAgbnhwd2lmaV9zZGlvLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxMTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTU4MAoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDE2NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBOWFAgV2lGaSBEcml2ZXIgYW5kIFN5emthbGxlciBDb21wYXRpYmlsaXR5KioKCk9rYXksIHNvIHRoaXMgZHJpdmVyIHNwZWNpZmljYWxseSB0YXJnZXRzIFNESU8gKGBOWFBXSUZJX1NESU9gKSwgd2hpY2ggaW1tZWRpYXRlbHkgcmFpc2VzIGEgZmxhZy4gTXkgZmlyc3QgdGhvdWdodCBpczogY2FuIEkgZXZlbiByZWFjaCB0aGlzIHRoaW5nIGluIGEgUUVNVSBlbnZpcm9ubWVudD8gU0RJTyBkZXZpY2VzIGFyZSBub3RvcmlvdXNseSBkaWZmaWN1bHQgdG8gZW11bGF0ZSB3ZWxsLiBUaGV5IHVzdWFsbHkgcmVxdWlyZSBhIHNwZWNpZmljIFNESENJIGNvbnRyb2xsZXIgbW9kZWwsIGFuZCB0aGVuIGFuIFNESU8gZGV2aWNlIG1vZGVsIGl0c2VsZi4gSSYjMzk7ZCBuZWVkIHRvIGNvbmZpcm0gdGhlIGF2YWlsYWJpbGl0eSBvZiB0aGVzZSBzcGVjaWZpYyBtb2RlbHMgaW4gdGhlIFFFTVUgY29uZmlndXJhdGlvbiBJJiMzOTttIHdvcmtpbmcgd2l0aC4KClRoZSBiaWdnZXIgaXNzdWUsIGFuZCB0aGlzIGlzIHdoZXJlIG15IGV4cGVyaWVuY2Uga2lja3MgaW4sIGlzIHRoYXQgc3l6a2FsbGVyIGRvZXNuJiMzOTt0IHR5cGljYWxseSBoYW5kbGUgU0RJTyBkZXZpY2VzIGRpcmVjdGx5IGluIHRoZSBzYW1lIHdheSBpdCBoYW5kbGVzIFVTQiBvciBQQ0kuIFRoZXJlIGlzbiYjMzk7dCBhIGdlbmVyaWMgU0RJTyBmdXp6ZXIgYmFrZWQgaW50byBzeXprYWxsZXIgbGlrZSB0aGVyZSBhcmUgZm9yIHRob3NlIG90aGVyIGludGVyZmFjZXMuIEkmIzM5O20gdXNlZCB0byBVU0IgKGR1bW15X2hjZCksIFBDSSAodmlhIFFFTVUpLCBhbmQgdmhjaSAoQmx1ZXRvb3RoKSBhcyB0aGUgYnJlYWQgYW5kIGJ1dHRlciB0YXJnZXRzLiBObyBnZW5lcmljIFNESU8gZnV6emVyIGV4aXN0cyB3aXRoaW4gaXRzIGFyY2hpdGVjdHVyZS4KCkhhbmcgb27igKYgaXMgdGhlcmUgZXZlbiBhbiBTRElPIGZ1enplciB3aXRoaW4gc3l6a2FsbGVyPyBEb3VibGUgY2hlY2tpbmfigKYgbm9wZS4gTm8gZ2VuZXJpYyBTRElPIGZ1enplciBhdCBhbGwuCgpUaGlzIG1ha2VzIG1lIHdvbmRlciBpZiB0aGVyZSYjMzk7cyBhIFVTQiBvciBQQ0kgdmFyaWFudCBvZiB0aGlzIG54cHdpZmkgZHJpdmVyIEkgY291bGQgdXNlIGFzIGEgdGFyZ2V0LiBMZXQgbWUgaW52ZXN0aWdhdGUgb3RoZXIgY29uZmlndXJhdGlvbnMsIGFuZCBzZWUgaWYgb3RoZXIgb3B0aW9ucyBhcmUgYXZhaWxhYmxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxMTo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTlhQV0lGSV8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWc9Mj1jb25maWcgTlhQV0lGSVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWctMTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnOjEyOmNvbmZpZyBOWFBXSUZJX1NESU9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWctMTMtXHR0cmlzdGF0ZSBcJiMzNDtOWFAgV2lGaSBEcml2ZXIgZm9yIElXNjF4XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDExOjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyMTk3CgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogMjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKk5hcnJvd2luZyB0aGUgU2NvcGU6IFNESU8gRm9jdXMqKgoKQWxyaWdodCwgdGhlIGluaXRpYWwgaHVuY2ggcG9pbnRzIHNxdWFyZWx5IGF0IFNESU8uIEJ1dCwgaG9sZCBvbiBhIHNlY29uZC4gQmVmb3JlIEkganVtcCB0byBjb25jbHVzaW9ucyBhbmQgZGVkaWNhdGUgYWxsIG15IHRpbWUgdG8gdGhhdCBwYXJ0aWN1bGFyIGludGVyZmFjZSwgaXQmIzM5O3MgYWx3YXlzIHdpc2UgdG8gYmUgdGhvcm91Z2guIEkgbmVlZCB0byBxdWlja2x5IHZlcmlmeSB0aGF0IHRoZXJlIGFyZW4mIzM5O3QgYW55IG90aGVyIGJ1cyB0eXBlcyBsdXJraW5nIHdpdGhpbiB0aGF0IGRpcmVjdG9yeSwgYmVjYXVzZSB0aGF0IHdvdWxkIGNoYW5nZSBldmVyeXRoaW5nLiBBIHF1aWNrIHNjYW4gdG8gZW5zdXJlIFNESU8gaXMgdGhlICpvbmx5KiBvcHRpb24sIGFuZCB0aGVuIEkgY2FuIHByb2NlZWQgY29uZmlkZW50bHkuIEkgZG9uJiMzOTt0IHdhbnQgdG8gd2FzdGUgdGltZSBvbiBhIHJlZCBoZXJyaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxMTo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmNvZGVzZWFyY2gtZGlyLWluZGV4PC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtEaXImIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZXMmIzM0OzogWwogICAgJiMzNDsxMWFjLmMmIzM0OywKICAgICYjMzQ7MTFhYy5oJiMzNDssCiAgICAmIzM0OzExYXguYyYjMzQ7LAogICAgJiMzNDsxMWF4LmgmIzM0OywKICAgICYjMzQ7MTFoLmMmIzM0OywKICAgICYjMzQ7MTFuLmMmIzM0OywKICAgICYjMzQ7MTFuLmgmIzM0OywKICAgICYjMzQ7MTFuX2FnZ3IuYyYjMzQ7LAogICAgJiMzNDsxMW5fYWdnci5oJiMzNDssCiAgICAmIzM0OzExbl9yeHJlb3JkZXIuYyYjMzQ7LAogICAgJiMzNDsxMW5fcnhyZW9yZGVyLmgmIzM0OywKICAgICYjMzQ7Y2ZnLmgmIzM0OywKICAgICYjMzQ7Y2ZnODAyMTEuYyYjMzQ7LAogICAgJiMzNDtjZmc4MDIxMS5oJiMzNDssCiAgICAmIzM0O2NmcC5jJiMzNDssCiAgICAmIzM0O2NtZGV2dC5jJiMzNDssCiAgICAmIzM0O2NtZGV2dC5oJiMzNDssCiAgICAmIzM0O2RlYnVnZnMuYyYjMzQ7LAogICAgJiMzNDtldGh0b29sLmMmIzM0OywKICAgICYjMzQ7ZncuaCYjMzQ7LAogICAgJiMzNDtpZS5jJiMzNDssCiAgICAmIzM0O2luaXQuYyYjMzQ7LAogICAgJiMzNDtqb2luLmMmIzM0OywKICAgICYjMzQ7bWFpbi5jJiMzNDssCiAgICAmIzM0O21haW4uaCYjMzQ7LAogICAgJiMzNDtzY2FuLmMmIzM0OywKICAgICYjMzQ7c2Rpby5jJiMzNDssCiAgICAmIzM0O3NkaW8uaCYjMzQ7LAogICAgJiMzNDtzdGFfY2ZnLmMmIzM0OywKICAgICYjMzQ7c3RhX2NtZC5jJiMzNDssCiAgICAmIzM0O3N0YV9ldmVudC5jJiMzNDssCiAgICAmIzM0O3N0YV9yeC5jJiMzNDssCiAgICAmIzM0O3N0YV90eC5jJiMzNDssCiAgICAmIzM0O3R4cnguYyYjMzQ7LAogICAgJiMzNDt1YXBfY21kLmMmIzM0OywKICAgICYjMzQ7dWFwX2V2ZW50LmMmIzM0OywKICAgICYjMzQ7dWFwX3R4cnguYyYjMzQ7LAogICAgJiMzNDt1dGlsLmMmIzM0OywKICAgICYjMzQ7dXRpbC5oJiMzNDssCiAgICAmIzM0O3dtbS5jJiMzNDssCiAgICAmIzM0O3dtbS5oJiMzNDsKICBdLAogICYjMzQ7U3ViZGlycyYjMzQ7OiBudWxsCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTE6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI3MjMKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAxNzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgdGhlIGBueHB3aWZpYCBTRElPIERyaXZlciBmb3IgRnV6emluZyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBgbnhwd2lmaWAgZHJpdmVyLCBhbmQgdGhlIG9ubHkgZmlsZXMgYXJlIGBzZGlvLmNgIGFuZCBgc2Rpby5oYC4gUmlnaHQgYXdheSwgdGhhdCYjMzk7cyBhIHByZXR0eSBzdHJvbmcgaW5kaWNhdG9yIHRoYXQgdGhpcyBpcyBwdXJlbHkgYW4gU0RJTy1iYXNlZCBkcml2ZXIuIFRoYXQmIzM5O3MgbXkgZmlyc3QgdGhvdWdodC4KClRoZSBuZXh0IHRoaW5nIHRoYXQganVtcHMgb3V0IGF0IG1lIGlzIHRoYXQgc3l6a2FsbGVyLCB0byBteSBrbm93bGVkZ2UsIGRvZXNuJiMzOTt0IGhhdmUgYSBkZWRpY2F0ZWQgU0RJTyBmdXp6ZXIgc2V0IHVwLiBHaXZlbiB0aGF0LCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGxpa2UgR0NFIG9yIFFFTVUsIHRoZSBjb2RlIHBhdGhzIHdpdGhpbiB0aGlzIGRyaXZlciBhcmUgcHJvYmFibHkgdW5yZWFjaGFibGUuIFRoYXQmIzM5O3MgYSBodWdlIHBvdGVudGlhbCBwcm9ibGVtIGZvciB0aG9yb3VnaCB0ZXN0aW5nLiBJJiMzOTttIHRoaW5raW5nIGFib3V0IHdheXMgdG8gdHJpZ2dlciBpdC4KCkhtbSwgd2FpdC4uLiBjb3VsZCB0aGlzIGJlIGFjY2Vzc2VkIHRocm91Z2ggc29tZXRoaW5nIGxpa2UgYG1hYzgwMjExX2h3c2ltYD8gSSYjMzk7bSB0cnlpbmcgdG8gcmVtZW1iZXIgaWYgdGhlcmUmIzM5O3MgYSBjb25uZWN0aW9uIHRoZXJlLiBObywgdGhhdCYjMzk7cyB3cm9uZy4gYG1hYzgwMjExX2h3c2ltYCBpcyBhIGNvbXBsZXRlbHkgc2VwYXJhdGUgdGhpbmcuIEl0JiMzOTtzIGEgZHJpdmVyIHRoYXQgZmFrZXMgYSBtYWM4MDIxMSBkZXZpY2UuIFRoZSBgbnhwd2lmaWAgZHJpdmVyIGlzIGEgZnVsbG1hYyBkcml2ZXIsIGFuZCBpdCByZWdpc3RlcnMgZGlyZWN0bHkgd2l0aCBjZmc4MDIxMS4gQW5kLCBpdCB0YWxrcyB0byBpdHMgZmlybXdhcmUgb3ZlciBTRElPLgoKVGhlcmVmb3JlLCBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQgYG54cHdpZmlgIGlzIGRlZmluaXRlbHkgcmVnaXN0ZXJpbmcgd2l0aCBgY2ZnODAyMTFgLiBUaGF0IHdpbGwgbWFrZSBhIGh1Z2UgZGlmZmVyZW5jZSBpbiBob3cgdG8gYXBwcm9hY2ggcmVhY2hpbmcgdGhlIGNvZGUgd2l0aCBmdXp6aW5nLiBMZXQmIzM5O3MgbG9vayBpbnRvIHRoYXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDExOjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWFjODAyMTEmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxMTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzI4MwoJCQkJCQkJb3V0cHV0OiAxMDUKCQkJCQkJCXRob3VnaHRzOiA0MTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVW5yZWFjaGFibGUgQ29kZSBpbiB0aGUgTlhQIFdpRmkgRHJpdmVyKioKCk9rYXksIHNvIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCwgbXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgaXQmIzM5O3MgZGVhbGluZyB3aXRoIHRoZSBgbnhwd2lmaWAgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCB1dGlsaXplcyBgY2ZnODAyMTFgLiBUaGF0JiMzOTtzIHRoZSBzdGFydGluZyBwb2ludC4gVGhlIGNydWNpYWwgaXNzdWUgaGVyZSwgdGhvdWdoLCBpcyB0aGF0IHRoaXMgZHJpdmVyIHJlbGllcyBvbiBhbiBTRElPIGJ1cyBhbmQsIGltcG9ydGFudGx5LCBzcGVjaWZpYyBoYXJkd2FyZSDigJMgdGhlIE5YUCBJVzYxeCBjaGlwc2V0LiBJbiBvdXIgc3RhbmRhcmQgZnV6emluZyBzZXR1cCwgZWl0aGVyIHdpdGggc3l6a2FsbGVyIG9yIFFFTVUsIHdlIGRvbiYjMzk7dCBoYXZlIHRoYXQgaGFyZHdhcmUuIFRoZXJlJiMzOTtzIG5vIFNESU8gZW11bGF0b3IgcHJlc2VudCwgYXQgbGVhc3Qgbm90IG9uZSB0aGF0JiMzOTtzIGVhc2lseSBhY2Nlc3NpYmxlIG9yIGludGVncmF0ZWQgaW50byB0aGUgc3RhbmRhcmQgZW52aXJvbm1lbnRzIHdlJiMzOTtyZSB1c2luZy4KClRoZXJlZm9yZSwgdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBkcml2ZXIgYW5kIGFueSBvZiB0aGUgc3Vic2VxdWVudCBwYWNrZXQgcHJvY2Vzc2luZyBmdW5jdGlvbnMsIHNwZWNpZmljYWxseSwgdGhlIGBueHB3aWZpXzExbl9jcmVhdGVfcnhfcmVvcmRlcl90YmxgIGZ1bmN0aW9uLCBhcmUgc2ltcGx5IHVucmVhY2hhYmxlLiBUaGlzIGlzIGJlY2F1c2UgdGhlIGRyaXZlciB3aWxsIG5ldmVyIHN1Y2Nlc3NmdWxseSBwcm9iZSBkdWUgdG8gdGhlIG1pc3NpbmcgU0RJTyBoYXJkd2FyZSBlbXVsYXRpb24uCgpMZXQgbWUganVzdCBkb3VibGUtY2hlY2ssIGJlY2F1c2UgaXQmIzM5O3MgYWx3YXlzIHdvcnRoIGEgdGhvcm91Z2ggbG9vay4gSXMgdGhlcmUgYW55IHdheSBTRElPIGl0c2VsZiBpcyBmdXp6ZWQ/IE5vcGUuIFN5emthbGxlciBkb2VzbiYjMzk7dCBoYXZlIGEgYHN5el9zZGlvXypgIHBzZXVkby1zeXNjYWxsLCBhbmQgd2hpbGUgUUVNVSAqZG9lcyogaGF2ZSBzb21lIFNESENJIGVtdWxhdGlvbiwgd2UmIzM5O2QgbmVlZCBhIHZlcnkgc3BlY2lmaWMgU0RJTyBkZXZpY2UgbW9kZWwgZW11bGF0aW5nIHRoZSBOWFAgSVc2MXggdG8gZXZlbiBnZXQgdGhlIGRyaXZlciB0byBwcm9iZSBhbmQgaW5pdGlhbGl6ZS4gUUVNVSYjMzk7cyBkZWZhdWx0IHNldHVwIGRvZXNuJiMzOTt0IG9mZmVyIHRoYXQuIFNvLCB0aGUgZHJpdmVyIHdvbiYjMzk7dCBwcm9iZSwgYW5kIHRoZSBmdW5jdGlvbiBpcyBuZXZlciBnb2luZyB0byBnZXQgZXhlY3V0ZWQsIHNpbXBsZSBhcyB0aGF0LgoKTGV0IG1lIGp1c3QgcXVpY2tseSByZXZpZXcgdGhlIHBhdGNoIGFnYWluIHRvIG1ha2Ugc3VyZSBpdCBkb2VzbiYjMzk7dCB0b3VjaCBhbnl0aGluZyBlbHNlIHRoYXQgbWlnaHQgYmUgcmVsZXZhbnQuIEl0JiMzOTtzIGp1c3QgdG91Y2hpbmcgZmlsZXMgd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9gIHNwZWNpZmljYWxseSBgMTFuX3J4cmVvcmRlci5jYCBhbmQgYG1haW4uaGAg4oCTIGFsbCBpbnNpZGUgdGhlIGBueHB3aWZpYCBkcml2ZXIuIENvbmZpcm1lZC4KClNvLCBnaXZlbiB0aGF0IHRoaXMgcGF0Y2ggbW9kaWZpZXMgY29kZSB3aXRoaW4gYSBkcml2ZXIgdGhhdCYjMzk7cyBpbmFjY2Vzc2libGUgaW4gb3VyIHN0YW5kYXJkIGZ1enppbmcgZW52aXJvbm1lbnRzLCBkdWUgdG8gdGhlIGxhY2sgb2YgU0RJTyBoYXJkd2FyZSBlbXVsYXRpb24sIGFuZCB0aGUgYWJzZW5jZSBvZiBhbnkgU0RJTy1zcGVjaWZpYyBmdXp6aW5nIGNhcGFiaWxpdGllcyBpbiBzeXprYWxsZXIsIEkgaGF2ZSB0byBjb25jbHVkZSB0aGF0IGl0IGlzIG5vdCB3b3J0aCBmdXp6aW5nLiBJIHdpbGwgc2V0IGBXb3J0aEZ1enppbmdgIHRvIGBmYWxzZWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDExOjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG54cHdpZmkgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCBpcyBhbiBTRElPLWJhc2VkIGRyaXZlciBmb3IgTlhQIElXNjF4IGNoaXBzZXRzLiBTaW5jZSBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgdGhpcyBzcGVjaWZpYyBTRElPIGhhcmR3YXJlLCBhbmQgc3l6a2FsbGVyIGxhY2tzIGEgZ2VuZXJpYyBTRElPIGZ1enplciwgdGhlIGRyaXZlciBjYW5ub3QgYmUgcHJvYmVkIGFuZCBpdHMgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbnhwd2lmaSB3aXJlbGVzcyBkcml2ZXIsIHdoaWNoIGlzIGFuIFNESU8tYmFzZWQgZHJpdmVyIGZvciBOWFAgSVc2MXggY2hpcHNldHMuIFNpbmNlIHN0YW5kYXJkIFFFTVUvR0NFIGVudmlyb25tZW50cyBkbyBub3QgZW11bGF0ZSB0aGlzIHNwZWNpZmljIFNESU8gaGFyZHdhcmUsIGFuZCBzeXprYWxsZXIgbGFja3MgYSBnZW5lcmljIFNESU8gZnV6emVyLCB0aGUgZHJpdmVyIGNhbm5vdCBiZSBwcm9iZWQgYW5kIGl0cyBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxMTo0MTo1My4zNjYyNjQyMzlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NDE4OTk2NTE1MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG54cHdpZmkgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCBpcyBhbiBTRElPLWJhc2VkIGRyaXZlciBmb3IgTlhQIElXNjF4IGNoaXBzZXRzLiBTaW5jZSBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgdGhpcyBzcGVjaWZpYyBTRElPIGhhcmR3YXJlLCBhbmQgc3l6a2FsbGVyIGxhY2tzIGEgZ2VuZXJpYyBTRElPIGZ1enplciwgdGhlIGRyaXZlciBjYW5ub3QgYmUgcHJvYmVkIGFuZCBpdHMgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxMTo0MTo1My4zNjYyNzE3ODlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4NzU3NDI2OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDI1NTY2MGVhNWQwNWEwODU5ZjJiNjQzZmM0ZDdhZGNmMjM2NmUxZjFcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIE1vbiBKdWwgMjcgMTE6NDE6NTEgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuX3J4cmVvcmRlci5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuX3J4cmVvcmRlci5jXFxuaW5kZXggYzU4MTlmODliMDhjZTcuLmIyZmQ2MjQ0OTdhM2FkIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbl9yeHJlb3JkZXIuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbl9yeHJlb3JkZXIuY1xcbkBAIC0xNzEsNyArMTcxLDYgQEAgbnhwd2lmaV9kZWxfcnhfcmVvcmRlcl9lbnRyeShzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbiBcXHRsaXN0X2RlbF9yY3UoXFx1MDAyNnRibC1cXHUwMDNlbGlzdCk7XFxuIFxcdHNwaW5fdW5sb2NrX2JoKFxcdTAwMjZwcml2LVxcdTAwM2VyeF9yZW9yZGVyX3RibF9sb2NrW3RpZF0pO1xcbiBcXG4tXFx0a2ZyZWUodGJsLVxcdTAwM2VyeF9yZW9yZGVyX3B0cik7XFxuIFxcdGtmcmVlX3JjdSh0YmwsIHJjdSk7XFxuIFxcbiBcXHRhdG9taWNfc2V0KFxcdTAwMjZwcml2LVxcdTAwM2VhZGFwdGVyLVxcdTAwM2VyeF9iYV90ZWFyZG93bl9wZW5kaW5nLCAwKTtcXG5AQCAtMjczLDExICsyNzIsMTMgQEAgbnhwd2lmaV8xMW5fY3JlYXRlX3J4X3Jlb3JkZXJfdGJsKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsIHU4ICp0YSxcXG4gXFx0XFx0bnhwd2lmaV8xMW5fZGlzcGF0Y2hfcGt0X3VudGlsX3N0YXJ0X3dpbihwcml2LCB0YmwsIHNlcV9udW0pO1xcbiBcXHRcXHRyZXR1cm47XFxuIFxcdH1cXG4rXFxuIFxcdC8qIGlmICF0YmwgdGhlbiBjcmVhdGUgb25lICovXFxuLVxcdG5ld19ub2RlID0ga3phbGxvY19vYmooKm5ld19ub2RlLCBHRlBfS0VSTkVMKTtcXG4rXFx0bmV3X25vZGUgPSBremFsbG9jX2ZsZXgoKm5ld19ub2RlLCByeF9yZW9yZGVyX3B0ciwgd2luX3NpemUpO1xcbiBcXHRpZiAoIW5ld19ub2RlKVxcbiBcXHRcXHRyZXR1cm47XFxuIFxcbitcXHRuZXdfbm9kZS1cXHUwMDNld2luX3NpemUgPSB3aW5fc2l6ZTtcXG4gXFx0SU5JVF9MSVNUX0hFQUQoXFx1MDAyNm5ld19ub2RlLVxcdTAwM2VsaXN0KTtcXG4gXFx0bmV3X25vZGUtXFx1MDAzZXRpZCA9IHRpZDtcXG4gXFx0bWVtY3B5KG5ld19ub2RlLVxcdTAwM2V0YSwgdGEsIEVUSF9BTEVOKTtcXG5AQCAtMzExLDI2ICszMTIsMTIgQEAgbnhwd2lmaV8xMW5fY3JlYXRlX3J4X3Jlb3JkZXJfdGJsKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsIHU4ICp0YSxcXG4gXFx0XFx0bmV3X25vZGUtXFx1MDAzZWZsYWdzIHw9IFJYUkVPUl9JTklUX1dJTkRPV19TSElGVDtcXG4gXFx0fVxcbiBcXG4tXFx0bmV3X25vZGUtXFx1MDAzZXdpbl9zaXplID0gd2luX3NpemU7XFxuLVxcbi1cXHRuZXdfbm9kZS1cXHUwMDNlcnhfcmVvcmRlcl9wdHIgPSBrY2FsbG9jKHdpbl9zaXplLCBzaXplb2Yodm9pZCAqKSxcXG4tXFx0XFx0XFx0XFx0XFx0ICAgR0ZQX0tFUk5FTCk7XFxuLVxcdGlmICghbmV3X25vZGUtXFx1MDAzZXJ4X3Jlb3JkZXJfcHRyKSB7XFxuLVxcdFxcdGtmcmVlKG5ld19ub2RlKTtcXG4tXFx0XFx0bnhwd2lmaV9kYmcocHJpdi1cXHUwMDNlYWRhcHRlciwgRVJST1IsXFxuLVxcdFxcdFxcdCAgICBcXFwiJXM6IGZhaWxlZCB0byBhbGxvYyByZW9yZGVyX3B0clxcXFxuXFxcIiwgX19mdW5jX18pO1xcbi1cXHRcXHRyZXR1cm47XFxuLVxcdH1cXG4tXFxuIFxcdG5ld19ub2RlLVxcdTAwM2V0aW1lcl9jb250ZXh0LnB0ciA9IG5ld19ub2RlO1xcbiBcXHRuZXdfbm9kZS1cXHUwMDNldGltZXJfY29udGV4dC5wcml2ID0gcHJpdjtcXG4gXFx0bmV3X25vZGUtXFx1MDAzZXRpbWVyX2NvbnRleHQudGltZXJfaXNfc2V0ID0gZmFsc2U7XFxuIFxcbiBcXHR0aW1lcl9zZXR1cChcXHUwMDI2bmV3X25vZGUtXFx1MDAzZXRpbWVyX2NvbnRleHQudGltZXIsIG54cHdpZmlfZmx1c2hfZGF0YSwgMCk7XFxuIFxcbi1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2Mgd2luX3NpemU7ICsraSlcXG4tXFx0XFx0bmV3X25vZGUtXFx1MDAzZXJ4X3Jlb3JkZXJfcHRyW2ldID0gTlVMTDtcXG4tXFxuIFxcdHNwaW5fbG9ja19iaChcXHUwMDI2cHJpdi1cXHUwMDNlcnhfcmVvcmRlcl90YmxfbG9ja1t0aWRdKTtcXG4gXFx0bGlzdF9hZGRfdGFpbF9yY3UoXFx1MDAyNm5ld19ub2RlLVxcdTAwM2VsaXN0LCBcXHUwMDI2cHJpdi1cXHUwMDNlcnhfcmVvcmRlcl90YmxfcHRyW3RpZF0pO1xcbiBcXHRzcGluX3VubG9ja19iaChcXHUwMDI2cHJpdi1cXHUwMDNlcnhfcmVvcmRlcl90YmxfbG9ja1t0aWRdKTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5oXFxuaW5kZXggNGFiZjgwNzcxYmUyM2UuLjM0OWRmYTRkM2Y4NTgxIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL21haW4uaFxcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL21haW4uaFxcbkBAIC02NTYsMTAgKzY1NiwxMCBAQCBzdHJ1Y3Qgbnhwd2lmaV9yeF9yZW9yZGVyX3RibCB7XFxuIFxcdGludCBpbml0X3dpbjtcXG4gXFx0aW50IHN0YXJ0X3dpbjtcXG4gXFx0aW50IHdpbl9zaXplO1xcbi1cXHR2b2lkICoqcnhfcmVvcmRlcl9wdHI7XFxuIFxcdHN0cnVjdCByZW9yZGVyX3Rtcl9jbnh0IHRpbWVyX2NvbnRleHQ7XFxuIFxcdHU4IGFtc2R1O1xcbiBcXHR1OCBmbGFncztcXG4rXFx0c3RydWN0IHNrX2J1ZmYgKnJ4X3Jlb3JkZXJfcHRyW10gX19jb3VudGVkX2J5KHdpbl9zaXplKTtcXG4gfTtcXG4gXFxuIHN0cnVjdCBueHB3aWZpX2Jzc19wcmlvX25vZGUge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxMTo0MTo1My44NTQ2MDA1OTdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo0MzcwMTYyMjg4MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG54cHdpZmkgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCBpcyBhbiBTRElPLWJhc2VkIGRyaXZlciBmb3IgTlhQIElXNjF4IGNoaXBzZXRzLiBTaW5jZSBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgdGhpcyBzcGVjaWZpYyBTRElPIGhhcmR3YXJlLCBhbmQgc3l6a2FsbGVyIGxhY2tzIGEgZ2VuZXJpYyBTRElPIGZ1enplciwgdGhlIGRyaXZlciBjYW5ub3QgYmUgcHJvYmVkIGFuZCBpdHMgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAyNTU2NjBlYTVkMDVhMDg1OWYyYjY0M2ZjNGQ3YWRjZjIzNjZlMWYxXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMjcgMTE6NDE6NTEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW5fcnhyZW9yZGVyLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW5fcnhyZW9yZGVyLmNcbmluZGV4IGM1ODE5Zjg5YjA4Y2U3Li5iMmZkNjI0NDk3YTNhZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbl9yeHJlb3JkZXIuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuX3J4cmVvcmRlci5jXG5AQCAtMTcxLDcgKzE3MSw2IEBAIG54cHdpZmlfZGVsX3J4X3Jlb3JkZXJfZW50cnkoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbiBcdGxpc3RfZGVsX3JjdShcdTAwMjZ0YmwtXHUwMDNlbGlzdCk7XG4gXHRzcGluX3VubG9ja19iaChcdTAwMjZwcml2LVx1MDAzZXJ4X3Jlb3JkZXJfdGJsX2xvY2tbdGlkXSk7XG4gXG4tXHRrZnJlZSh0YmwtXHUwMDNlcnhfcmVvcmRlcl9wdHIpO1xuIFx0a2ZyZWVfcmN1KHRibCwgcmN1KTtcbiBcbiBcdGF0b21pY19zZXQoXHUwMDI2cHJpdi1cdTAwM2VhZGFwdGVyLVx1MDAzZXJ4X2JhX3RlYXJkb3duX3BlbmRpbmcsIDApO1xuQEAgLTI3MywxMSArMjcyLDEzIEBAIG54cHdpZmlfMTFuX2NyZWF0ZV9yeF9yZW9yZGVyX3RibChzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LCB1OCAqdGEsXG4gXHRcdG54cHdpZmlfMTFuX2Rpc3BhdGNoX3BrdF91bnRpbF9zdGFydF93aW4ocHJpdiwgdGJsLCBzZXFfbnVtKTtcbiBcdFx0cmV0dXJuO1xuIFx0fVxuK1xuIFx0LyogaWYgIXRibCB0aGVuIGNyZWF0ZSBvbmUgKi9cbi1cdG5ld19ub2RlID0ga3phbGxvY19vYmooKm5ld19ub2RlLCBHRlBfS0VSTkVMKTtcbitcdG5ld19ub2RlID0ga3phbGxvY19mbGV4KCpuZXdfbm9kZSwgcnhfcmVvcmRlcl9wdHIsIHdpbl9zaXplKTtcbiBcdGlmICghbmV3X25vZGUpXG4gXHRcdHJldHVybjtcbiBcbitcdG5ld19ub2RlLVx1MDAzZXdpbl9zaXplID0gd2luX3NpemU7XG4gXHRJTklUX0xJU1RfSEVBRChcdTAwMjZuZXdfbm9kZS1cdTAwM2VsaXN0KTtcbiBcdG5ld19ub2RlLVx1MDAzZXRpZCA9IHRpZDtcbiBcdG1lbWNweShuZXdfbm9kZS1cdTAwM2V0YSwgdGEsIEVUSF9BTEVOKTtcbkBAIC0zMTEsMjYgKzMxMiwxMiBAQCBueHB3aWZpXzExbl9jcmVhdGVfcnhfcmVvcmRlcl90Ymwoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdiwgdTggKnRhLFxuIFx0XHRuZXdfbm9kZS1cdTAwM2VmbGFncyB8PSBSWFJFT1JfSU5JVF9XSU5ET1dfU0hJRlQ7XG4gXHR9XG4gXG4tXHRuZXdfbm9kZS1cdTAwM2V3aW5fc2l6ZSA9IHdpbl9zaXplO1xuLVxuLVx0bmV3X25vZGUtXHUwMDNlcnhfcmVvcmRlcl9wdHIgPSBrY2FsbG9jKHdpbl9zaXplLCBzaXplb2Yodm9pZCAqKSxcbi1cdFx0XHRcdFx0ICAgR0ZQX0tFUk5FTCk7XG4tXHRpZiAoIW5ld19ub2RlLVx1MDAzZXJ4X3Jlb3JkZXJfcHRyKSB7XG4tXHRcdGtmcmVlKG5ld19ub2RlKTtcbi1cdFx0bnhwd2lmaV9kYmcocHJpdi1cdTAwM2VhZGFwdGVyLCBFUlJPUixcbi1cdFx0XHQgICAgXCIlczogZmFpbGVkIHRvIGFsbG9jIHJlb3JkZXJfcHRyXFxuXCIsIF9fZnVuY19fKTtcbi1cdFx0cmV0dXJuO1xuLVx0fVxuLVxuIFx0bmV3X25vZGUtXHUwMDNldGltZXJfY29udGV4dC5wdHIgPSBuZXdfbm9kZTtcbiBcdG5ld19ub2RlLVx1MDAzZXRpbWVyX2NvbnRleHQucHJpdiA9IHByaXY7XG4gXHRuZXdfbm9kZS1cdTAwM2V0aW1lcl9jb250ZXh0LnRpbWVyX2lzX3NldCA9IGZhbHNlO1xuIFxuIFx0dGltZXJfc2V0dXAoXHUwMDI2bmV3X25vZGUtXHUwMDNldGltZXJfY29udGV4dC50aW1lciwgbnhwd2lmaV9mbHVzaF9kYXRhLCAwKTtcbiBcbi1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIHdpbl9zaXplOyArK2kpXG4tXHRcdG5ld19ub2RlLVx1MDAzZXJ4X3Jlb3JkZXJfcHRyW2ldID0gTlVMTDtcbi1cbiBcdHNwaW5fbG9ja19iaChcdTAwMjZwcml2LVx1MDAzZXJ4X3Jlb3JkZXJfdGJsX2xvY2tbdGlkXSk7XG4gXHRsaXN0X2FkZF90YWlsX3JjdShcdTAwMjZuZXdfbm9kZS1cdTAwM2VsaXN0LCBcdTAwMjZwcml2LVx1MDAzZXJ4X3Jlb3JkZXJfdGJsX3B0clt0aWRdKTtcbiBcdHNwaW5fdW5sb2NrX2JoKFx1MDAyNnByaXYtXHUwMDNlcnhfcmVvcmRlcl90YmxfbG9ja1t0aWRdKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmhcbmluZGV4IDRhYmY4MDc3MWJlMjNlLi4zNDlkZmE0ZDNmODU4MSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL21haW4uaFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5oXG5AQCAtNjU2LDEwICs2NTYsMTAgQEAgc3RydWN0IG54cHdpZmlfcnhfcmVvcmRlcl90Ymwge1xuIFx0aW50IGluaXRfd2luO1xuIFx0aW50IHN0YXJ0X3dpbjtcbiBcdGludCB3aW5fc2l6ZTtcbi1cdHZvaWQgKipyeF9yZW9yZGVyX3B0cjtcbiBcdHN0cnVjdCByZW9yZGVyX3Rtcl9jbnh0IHRpbWVyX2NvbnRleHQ7XG4gXHR1OCBhbXNkdTtcbiBcdHU4IGZsYWdzO1xuK1x0c3RydWN0IHNrX2J1ZmYgKnJ4X3Jlb3JkZXJfcHRyW10gX19jb3VudGVkX2J5KHdpbl9zaXplKTtcbiB9O1xuIFxuIHN0cnVjdCBueHB3aWZpX2Jzc19wcmlvX25vZGUge1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTE6NDE6NTMuODU0NjAxODY3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODczMjczMTA3MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBXaXJlbGVzcyBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCBzZWVtcyBsaWtlIHRoZXkncmUgbWFraW5nIHNvbWUgZmFpcmx5IHNpZ25pZmljYW50IGNoYW5nZXMgdG8gdGhlIHJlb3JkZXJpbmcgbG9naWMgaW4gdGhlIGBueHB3aWZpYCBkcml2ZXIuIFNwZWNpZmljYWxseSwgdGhleSdyZSBhbHRlcmluZyB0aGUgYHJ4X3Jlb3JkZXJfcHRyYCBmaWVsZCB3aXRoaW4gdGhlIGBueHB3aWZpX3J4X3Jlb3JkZXJfdGJsYCBzdHJ1Y3QuIEl0J3MgZ29pbmcgZnJvbSBhIGRvdWJsZSBwb2ludGVyIHRvIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyLCB3aGljaCBpcyBhIHByZXR0eSBjbGVhciBpbmRpY2F0aW9uIG9mIG9wdGltaXppbmcgbWVtb3J5IGFsbG9jYXRpb24sIHdoaWNoIGlzIGdvb2QuIFRoZSBga3phbGxvY2AgY2FsbHMgYXJlIGFsc28gYmVpbmcgc3RyZWFtbGluZWQgd2l0aCBga3phbGxvY19mbGV4YCwgYW5kIHRoZXkncmUgcmVtb3ZpbmcgYSBga2ZyZWVgIGluIHRoZSBgbnhwd2lmaV9kZWxfcnhfcmVvcmRlcl9lbnRyeWAgZnVuY3Rpb24uXG5cbkZ1bmN0aW9uYWxseSwgdGhpcyBzaG91bGQgYmUgYW4gaW1wcm92ZW1lbnQsIHJlZHVjaW5nIG1lbW9yeSBmcmFnbWVudGF0aW9uIGFuZCBwb3RlbnRpYWxseSBpbXByb3ZpbmcgcGVyZm9ybWFuY2UuIEJ1dCwgaXQncyBhIHdpcmVsZXNzIGRyaXZlciBhbmQgSSBhbHdheXMgZ2V0IGEgbGl0dGxlIGNhdXRpb3VzIHdpdGggdGhvc2UsIGdpdmVuIHRoZSBjb21wbGV4aXR5LiAqbnhwd2lmaSosIHRoYXQgcmluZ3MgYSBiZWxsLi4uIGlzIHRoYXQgYSByZWFsLCBhY3RpdmUgZHJpdmVyPyBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgaWYgYG54cHdpZmlgIGlzIGFjdHVhbGx5IHByZXNlbnQgaW4gdGhlIGtlcm5lbCwgb3IgaWYgbWF5YmUgdGhpcyBpcyBhIHJlbmFtZSB0aGF0IEkgc2hvdWxkIGJlIHRyYWNraW5nIGJhY2sgdG8gYW5vdGhlciBkcml2ZXIgbGlrZSBgbXdpZmlleGAuXG5cbkdpdmVuIHRoZSBwYXRoLCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvYCwgaXQgc2VlbXMgdG8gYmUgbGVnaXQsIGxldCdzIGtlZXAgZ29pbmcuXG5cbk15IG5leHQgaW1tZWRpYXRlIHRob3VnaHQgaXMgd2hldGhlciB0aGlzIGRyaXZlciBpcyBldmVuIHJlYWNoYWJsZSBpbiBhIHR5cGljYWwgUUVNVSBlbnZpcm9ubWVudC4gV2lyZWxlc3MgZHJpdmVycyBhcmUgbm90b3Jpb3VzIGZvciBiZWluZyB0cmlja3kuIERyaXZlcnMgbGlrZSBgbWFjODAyMTFfaHdzaW1gIGFyZSBnZW5lcmFsbHkgYWNjZXNzaWJsZSwgYnV0IGhhcmR3YXJlLXNwZWNpZmljIG9uZXMgbGlrZSB0aGlzLCB3ZWxsLCBpdCBkZXBlbmRzLiBJcyBpdCBTRElPLCBQQ0llLCBvciBVU0I/IElmIGl0J3MgVVNCLCB0aGVyZSdzIGEgY2hhbmNlLCBkZXBlbmRpbmcgb24gdGhlIGltcGxlbWVudGF0aW9uIGFuZCB3aGV0aGVyIHdlIGNhbiBlbXVsYXRlIGl0IHdpdGggYSBnYWRnZXQgb3IgZHVtbXlfaGNkLiBJdCBjb3VsZCBiZSB2aXJ0dWFsLCBidXQgdGhhdCB3b3VsZCBiZSBhIHJhcml0eSBmb3IgYSBkcml2ZXIgbmFtZSBsaWtlIHRoaXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgYnVzZXMgYXJlIHN1cHBvcnRlZCBhbmQgdGhlbiBJJ2xsIHVuZGVyc3RhbmQgaWYgdGhpcyBwYXRjaCBpcyBldmVuIGZlYXNpYmxlIHRvIHRlc3QsIG9yIGlmIGl0IGlzIGV2ZW4gcmVsZXZhbnQgdG8gbXkgY29uY2VybnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5ODEsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozODcsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxMTo0MjowMi41ODczMzUwMzdaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjU4OTI2OTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibnhwd2lmaVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxNTE1MiBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTItLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MzogKiBueHB3aWZpIDgwMi4xMWFjIGhlbHBlcnNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtNC0gKiBDb3B5cmlnaHQgMjAxMS0yMDI0IE5YUFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jPTM2PXN0YXRpYyB1MTZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6Mzc6bnhwd2lmaV9jb252ZXJ0X21jc21hcF90b19tYXhyYXRlKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTM4LVxcdFxcdFxcdFxcdCAgdTE2IGJhbmRzLCB1MTYgbWNzX21hcClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy00Mi1cXHR1MzIgdXNyX3ZodF9jYXBfaW5mbyA9IDA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjQzOlxcdHN0cnVjdCBueHB3aWZpX2FkYXB0ZXIgKmFkYXB0ZXIgPSBwcml2LVxcdTAwM2VhZGFwdGVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy00NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYz03OT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzo4MDpueHB3aWZpX2ZpbGxfdmh0X2NhcF9pbmZvKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTgxLVxcdFxcdFxcdCAgc3RydWN0IGllZWU4MDIxMV92aHRfY2FwICp2aHRfY2FwLCB1MTYgYmFuZHMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTgyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6ODM6XFx0c3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlciA9IHByaXYtXFx1MDAzZWFkYXB0ZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTg0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jPTkzPXZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6OTQ6bnhwd2lmaV9maWxsX3ZodF9jYXBfdGx2KHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTk1LVxcdFxcdFxcdCBzdHJ1Y3QgaWVlZTgwMjExX3ZodF9jYXAgKnZodF9jYXAsIHUxNiBiYW5kcylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtOTYte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzo5NzpcXHRzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyID0gcHJpdi1cXHUwMDNlYWRhcHRlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtOTgtXFx0dTE2IG1jc19tYXBfdXNlciwgbWNzX21hcF9yZXNwLCBtY3NfbWFwX3Jlc3VsdDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xMDEtXFx0LyogRmlsbCBWSFQgY2FwYWJpbGl0eSBpbmZvLiAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxMDI6XFx0bnhwd2lmaV9maWxsX3ZodF9jYXBfaW5mbyhwcml2LCB2aHRfY2FwLCBiYW5kcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTEwMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjEyNDpcXHR0bXAgPSBueHB3aWZpX2NvbnZlcnRfbWNzbWFwX3RvX21heHJhdGUocHJpdiwgYmFuZHMsIG1jc19tYXBfcmVzdWx0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTI1LVxcdHZodF9jYXAtXFx1MDAzZXN1cHBfbWNzLnJ4X2hpZ2hlc3QgPSBjcHVfdG9fbGUxNih0bXApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE0NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTQ2OlxcdHRtcCA9IG54cHdpZmlfY29udmVydF9tY3NtYXBfdG9fbWF4cmF0ZShwcml2LCBiYW5kcywgbWNzX21hcF9yZXN1bHQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNDctXFx0dmh0X2NhcC1cXHUwMDNlc3VwcF9tY3MudHhfaGlnaGVzdCA9IGNwdV90b19sZTE2KHRtcCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNTA6aW50IG54cHdpZmlfY21kX2FwcGVuZF8xMWFjX3RsdihzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNTE6XFx0XFx0XFx0XFx0c3RydWN0IG54cHdpZmlfYnNzZGVzY3JpcHRvciAqYnNzX2Rlc2MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE1Mi1cXHRcXHRcXHRcXHR1OCAqKmJ1ZmZlcilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTUzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTU0OlxcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX3ZodGNhcCAqdmh0X2NhcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTU1OlxcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX29wZXJfbW9kZV9udGYgKm9wZXJfbnRmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNTYtXFx0c3RydWN0IGllZWVfdHlwZXNfb3Blcl9tb2RlX250ZiAqaWVlZV9vcGVyX250ZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTU3OlxcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX3ZodF9vcGVyICp2aHRfb3A7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE1ODpcXHRzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyID0gcHJpdi1cXHUwMDNlYWRhcHRlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTU5LVxcdHU4IHN1cHBfY2h3ZF9zZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTY5LVxcdGlmIChic3NfZGVzYy1cXHUwMDNlYmNuX3ZodF9jYXApIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTcwOlxcdFxcdHZodF9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfdmh0Y2FwICopKmJ1ZmZlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTcxLVxcdFxcdG1lbXNldCh2aHRfY2FwLCAwLCBzaXplb2YoKnZodF9jYXApKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNzQtXFx0XFx0XFx0Y3B1X3RvX2xlMTYoc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdmh0X2NhcCkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNzU6XFx0XFx0bWVtY3B5KCh1OCAqKXZodF9jYXAgKyBzaXplb2Yoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVhZGVyKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTc2LVxcdFxcdCAgICAgICAodTggKilic3NfZGVzYy1cXHUwMDNlYmNuX3ZodF9jYXAsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTc4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNzk6XFx0XFx0bnhwd2lmaV9maWxsX3ZodF9jYXBfdGx2KHByaXYsIFxcdTAwMjZ2aHRfY2FwLVxcdTAwM2V2aHRfY2FwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xODAtXFx0XFx0XFx0XFx0XFx0IGJzc19kZXNjLVxcdTAwM2Vic3NfYmFuZCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTg3LVxcdFxcdGlmIChwcml2LVxcdTAwM2Vic3NfbW9kZSA9PSBOTDgwMjExX0lGVFlQRV9TVEFUSU9OKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE4ODpcXHRcXHRcXHR2aHRfb3AgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfdmh0X29wZXIgKikqYnVmZmVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xODktXFx0XFx0XFx0bWVtc2V0KHZodF9vcCwgMCwgc2l6ZW9mKCp2aHRfb3ApKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xOTItXFx0XFx0XFx0dmh0X29wLVxcdTAwM2VoZWFkZXIubGVuICA9IGNwdV90b19sZTE2KHNpemVvZigqdmh0X29wKSAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE5MzpcXHRcXHRcXHRcXHRzaXplb2Yoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVhZGVyKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE5NC1cXHRcXHRcXHRtZW1jcHkoKHU4ICopdmh0X29wICtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTk1OlxcdFxcdFxcdFxcdHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xOTYtXFx0XFx0XFx0ICAgICAgICh1OCAqKWJzc19kZXNjLVxcdTAwM2ViY25fdmh0X29wZXIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMjQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoyNDU6aW50IG54cHdpZmlfY21kXzExYWNfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTI0Ni1cXHRcXHRcXHQgc3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKmNtZCwgdTE2IGNtZF9hY3Rpb24sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjI0NzpcXHRcXHRcXHQgc3RydWN0IG54cHdpZmlfMTFhY192aHRfY2ZnICpjZmcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTI0OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMjY0LS8qIEluaXRpYWxpemUgQmxvY2tBY2sgcGFyYW1ldGVycyBmb3IgMTFhYy4gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MjY1OnZvaWQgbnhwd2lmaV9zZXRfMTFhY19iYV9wYXJhbXMoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMjY2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuaC0yLS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjM6ICogbnhwd2lmaTogODAyLjExYWMgKFZIVCkgZGVmaW5pdGlvbnNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmgtNC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oPTE0PWVudW0gdmh0X2NmZ19taXNjX2NvbmZpZyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmgtMjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjI1OmludCBueHB3aWZpX2NtZF9hcHBlbmRfMTFhY190bHYoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmg6MjY6XFx0XFx0XFx0XFx0c3RydWN0IG54cHdpZmlfYnNzZGVzY3JpcHRvciAqYnNzX2Rlc2MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oLTI3LVxcdFxcdFxcdFxcdHU4ICoqYnVmZmVyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmg6Mjg6aW50IG54cHdpZmlfY21kXzExYWNfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oLTI5LVxcdFxcdFxcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmg6MzA6XFx0XFx0XFx0IHN0cnVjdCBueHB3aWZpXzExYWNfdmh0X2NmZyAqY2ZnKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmg6MzE6dm9pZCBueHB3aWZpX2ZpbGxfdmh0X2NhcF90bHYoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmgtMzItXFx0XFx0XFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV92aHRfY2FwICp2aHRfY2FwLCB1MTYgYmFuZHMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEtLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyOi8qIG54cHdpZmk6IDgwMi4xMWF4IChIRSkgc3VwcG9ydFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zLSAqIENvcHlyaWdodCAoQykgMjAxMS0yMDI0IE5YUFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxMTp2b2lkIG54cHdpZmlfdXBkYXRlXzExYXhfY2FwKHN0cnVjdCBueHB3aWZpX2FkYXB0ZXIgKmFkYXB0ZXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEyLVxcdFxcdFxcdCAgICAgc3RydWN0IGh3X3NwZWNfZXh0ZW5zaW9uICpod19oZV9jYXApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTQ6XFx0c3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTU6XFx0c3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICpoZV9jYXAgPSBOVUxMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNjpcXHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKnVzZXJfaGVfY2FwID0gTlVMTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTc6XFx0dTggaGVhZGVyX2xlbiA9IHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xOC1cXHR1MTYgZGF0YV9sZW4gPSBsZTE2X3RvX2NwdShod19oZV9jYXAtXFx1MDAzZWhlYWRlci5sZW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIyLVxcdGlmICgoZGF0YV9sZW4gKyBoZWFkZXJfbGVuKSBcXHUwMDNlIHNpemVvZihhZGFwdGVyLVxcdTAwM2Vod19oZV9jYXApKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIzOlxcdFxcdG54cHdpZmlfZGJnKGFkYXB0ZXIsIEVSUk9SLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yNC1cXHRcXHRcXHQgICAgXFxcImh3X2hlX2NhcCB0b28gYmlnLCBsZW49JWRcXFxcblxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI5OlxcdGhlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilod19oZV9jYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM3LVxcdFxcdGhlX2NhcF8yZyA9IHRydWU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM4OlxcdFxcdG54cHdpZmlfZGJnX2R1bXAoYWRhcHRlciwgQ01EX0QsIFxcXCIyLjRHIEhFIGNhcGFiaWxpdHkgZWxlbWVudCBcXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zOS1cXHRcXHRcXHRcXHQgYWRhcHRlci1cXHUwMDNlaHdfMmdfaGVfY2FwLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ1LVxcdFxcdGFkYXB0ZXItXFx1MDAzZWZ3X2JhbmRzIHw9IEJBTkRfQUFYO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NjpcXHRcXHRueHB3aWZpX2RiZ19kdW1wKGFkYXB0ZXIsIENNRF9ELCBcXFwiNUcgSEUgY2FwYWJpbGl0eSBlbGVtZW50IFxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ3LVxcdFxcdFxcdFxcdCBhZGFwdGVyLVxcdTAwM2Vod19oZV9jYXAsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTctXFx0XFx0XFx0ICAgICAgIHNpemVvZihhZGFwdGVyLVxcdTAwM2Vod18yZ19oZV9jYXApKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTg6XFx0XFx0XFx0dXNlcl9oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU5LVxcdFxcdFxcdFxcdHByaXYtXFx1MDAzZXVzZXJfMmdfaGVfY2FwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTYzLVxcdFxcdFxcdCAgICAgICBzaXplb2YoYWRhcHRlci1cXHUwMDNlaHdfaGVfY2FwKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjY0OlxcdFxcdFxcdHVzZXJfaGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy02NS1cXHRcXHRcXHRcXHRwcml2LVxcdTAwM2V1c2VyX2hlX2NhcDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy03OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6Nzk6Ym9vbCBueHB3aWZpXzExYXhfYmFuZGNvbmZpZ19hbGxvd2VkKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjgwOlxcdFxcdFxcdFxcdCAgICAgc3RydWN0IG54cHdpZmlfYnNzZGVzY3JpcHRvciAqYnNzX2Rlc2MpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTgxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy05NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6OTU6aW50IG54cHdpZmlfZmlsbF9oZV9jYXBfdGx2KHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjk2OlxcdFxcdFxcdCAgICBzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKmhlX2NhcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtOTctXFx0XFx0XFx0ICAgIHUxNiBiYW5kcylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtOTgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo5OTpcXHRzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyID0gcHJpdi1cXHUwMDNlYWRhcHRlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTAwOlxcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqaHdfaGVfY2FwID0gTlVMTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTAxLVxcdHUxNiByeF9uc3MsIHR4X25zcztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMDgtXFx0XFx0bWVtY3B5KGhlX2NhcCwgcHJpdi1cXHUwMDNldXNlcl9oZV9jYXAsIHByaXYtXFx1MDAzZXVzZXJfaGVfY2FwX2xlbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjEwOTpcXHRcXHRod19oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopYWRhcHRlci1cXHUwMDNlaHdfaGVfY2FwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMTAtXFx0XFx0cmV0X2xlbiA9IHByaXYtXFx1MDAzZXVzZXJfaGVfY2FwX2xlbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMTItXFx0XFx0bWVtY3B5KGhlX2NhcCwgcHJpdi1cXHUwMDNldXNlcl8yZ19oZV9jYXAsIHByaXYtXFx1MDAzZXVzZXJfMmdfaGVfY2FwX2xlbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjExMzpcXHRcXHRod19oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopYWRhcHRlci1cXHUwMDNlaHdfMmdfaGVfY2FwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMTQtXFx0XFx0cmV0X2xlbiA9IHByaXYtXFx1MDAzZXVzZXJfMmdfaGVfY2FwX2xlbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMjUtXFx0Zm9yIChuc3MgPSAxOyBuc3MgXFx1MDAzYz0gODsgbnNzKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTI2OlxcdFxcdGNmZ192YWx1ZSA9IG54cHdpZmlfZ2V0X2hlX25zc19tY3MoaGVfY2FwLVxcdTAwM2VyeF9tY3NfODAsIG5zcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjEyNzpcXHRcXHRod192YWx1ZSA9IG54cHdpZmlfZ2V0X2hlX25zc19tY3MoaHdfaGVfY2FwLVxcdTAwM2VyeF9tY3NfODAsIG5zcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEyOC1cXHRcXHRpZiAocnhfbnNzICE9IDAgXFx1MDAyNlxcdTAwMjYgbnNzIFxcdTAwM2UgcnhfbnNzKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEzMC1cXHRcXHRpZiAoaHdfdmFsdWUgPT0gTk9fTlNTX1NVUFBPUlQgfHwgY2ZnX3ZhbHVlID09IE5PX05TU19TVVBQT1JUKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxMzE6XFx0XFx0XFx0bnhwd2lmaV9zZXRfaGVfbnNzX21jcyhcXHUwMDI2aGVfY2FwLVxcdTAwM2VyeF9tY3NfODAsIG5zcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTMyLVxcdFxcdFxcdFxcdFxcdCAgICAgICBOT19OU1NfU1VQUE9SVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEzMy1cXHRcXHRlbHNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjEzNDpcXHRcXHRcXHRueHB3aWZpX3NldF9oZV9uc3NfbWNzKFxcdTAwMjZoZV9jYXAtXFx1MDAzZXJ4X21jc184MCwgbnNzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMzUtXFx0XFx0XFx0XFx0XFx0ICAgICAgIG1pbihjZmdfdmFsdWUsIGh3X3ZhbHVlKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTM4LVxcdGZvciAobnNzID0gMTsgbnNzIFxcdTAwM2M9IDg7IG5zcysrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjEzOTpcXHRcXHRjZmdfdmFsdWUgPSBueHB3aWZpX2dldF9oZV9uc3NfbWNzKGhlX2NhcC1cXHUwMDNldHhfbWNzXzgwLCBuc3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNDA6XFx0XFx0aHdfdmFsdWUgPSBueHB3aWZpX2dldF9oZV9uc3NfbWNzKGh3X2hlX2NhcC1cXHUwMDNldHhfbWNzXzgwLCBuc3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNDEtXFx0XFx0aWYgKHR4X25zcyAhPSAwIFxcdTAwMjZcXHUwMDI2IG5zcyBcXHUwMDNlIHR4X25zcylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNDMtXFx0XFx0aWYgKGh3X3ZhbHVlID09IE5PX05TU19TVVBQT1JUIHx8IGNmZ192YWx1ZSA9PSBOT19OU1NfU1VQUE9SVClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTQ0OlxcdFxcdFxcdG54cHdpZmlfc2V0X2hlX25zc19tY3MoXFx1MDAyNmhlX2NhcC1cXHUwMDNldHhfbWNzXzgwLCBuc3MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE0NS1cXHRcXHRcXHRcXHRcXHQgICAgICAgTk9fTlNTX1NVUFBPUlQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNDYtXFx0XFx0ZWxzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNDc6XFx0XFx0XFx0bnhwd2lmaV9zZXRfaGVfbnNzX21jcyhcXHUwMDI2aGVfY2FwLVxcdTAwM2V0eF9tY3NfODAsIG5zcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTQ4LVxcdFxcdFxcdFxcdFxcdCAgICAgICBtaW4oY2ZnX3ZhbHVlLCBod192YWx1ZSkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE1My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTU0OmludCBueHB3aWZpX2NtZF9hcHBlbmRfMTFheF90bHYoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTU1OlxcdFxcdFxcdFxcdHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNTYtXFx0XFx0XFx0XFx0dTggKipidWZmZXIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE1Ny17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE1ODpcXHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKmhlX2NhcCA9IE5VTEw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE1OS1cXHRpbnQgcmV0X2xlbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE2NDpcXHRoZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopKmJ1ZmZlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTY1OlxcdHJldF9sZW4gPSBueHB3aWZpX2ZpbGxfaGVfY2FwX3Rsdihwcml2LCBoZV9jYXAsIGJzc19kZXNjLVxcdTAwM2Vic3NfYmFuZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE2Ni1cXHQqYnVmZmVyICs9IHJldF9sZW47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNzE6aW50IG54cHdpZmlfY21kXzExYXhfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE3Mi1cXHRcXHRcXHQgc3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKmNtZCwgdTE2IGNtZF9hY3Rpb24sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE3MzpcXHRcXHRcXHQgc3RydWN0IG54cHdpZmlfMTFheF9oZV9jZmcgKmF4X2NmZylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTc0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNzYtXFx0dTE2IGNtZF9zaXplO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNzc6XFx0c3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVhZGVyICpoZWFkZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE3OC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xODYtXFx0ICAgIGF4X2NmZy1cXHUwMDNlaGVfY2FwX2NmZy5leHRfaWQgPT0gV0xBTl9FSURfRVhUX0hFX0NBUEFCSUxJVFkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTg3OlxcdFxcdGhlYWRlciA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIgKiloZV9jZmctXFx1MDAzZXRsdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTg4LVxcdFxcdGhlYWRlci1cXHUwMDNldHlwZSA9IGNwdV90b19sZTE2KGF4X2NmZy1cXHUwMDNlaGVfY2FwX2NmZy5pZCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyMDE6aW50IG54cHdpZmlfcmV0XzExYXhfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIwMi1cXHRcXHRcXHQgc3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKnJlc3AsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIwMzpcXHRcXHRcXHQgc3RydWN0IG54cHdpZmlfMTFheF9oZV9jZmcgKmF4X2NmZylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjA0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjA1LVxcdHN0cnVjdCBob3N0X2NtZF8xMWF4X2NmZyAqaGVfY2ZnID0gXFx1MDAyNnJlc3AtXFx1MDAzZXBhcmFtcy5heF9jZmc7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIwNjpcXHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIgKmhlYWRlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjA3LVxcdHUxNiBsZWZ0X2xlbiwgdGx2X3R5cGUsIHRsdl9sZW47XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIwOC1cXHR1OCBleHRfaWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIwOTpcXHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X2hlX2NhcF9jZmcgKmhlX2NhcCA9IFxcdTAwMjZheF9jZmctXFx1MDAzZWhlX2NhcF9jZmc7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIxMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjExLVxcdGxlZnRfbGVuID0gbGUxNl90b19jcHUocmVzcC1cXHUwMDNlc2l6ZSkgLSBzaXplb2YoKmhlX2NmZykgLSBTX0RTX0dFTjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjEyOlxcdGhlYWRlciA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIgKiloZV9jZmctXFx1MDAzZXRsdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjEzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI0Mi1cXHRcXHRsZWZ0X2xlbiAtPSAoc2l6ZW9mKCpoZWFkZXIpICsgdGx2X2xlbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI0MzpcXHRcXHRoZWFkZXIgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVhZGVyICopKCh1OCAqKWhlYWRlciArXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI0NC1cXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgc2l6ZW9mKCpoZWFkZXIpICtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yNTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI1MTppbnQgbnhwd2lmaV9jbWRfMTFheF9jbWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjUyLVxcdFxcdFxcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjUzOlxcdFxcdFxcdCBzdHJ1Y3Qgbnhwd2lmaV8xMWF4X2NtZF9jZmcgKmF4X2NtZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjU0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjU1OlxcdHN0cnVjdCBueHB3aWZpX2FkYXB0ZXIgKmFkYXB0ZXIgPSBwcml2LVxcdTAwM2VhZGFwdGVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yNTYtXFx0c3RydWN0IGhvc3RfY21kXzExYXhfY21kICpoZV9jbWQgPSBcXHUwMDI2Y21kLVxcdTAwM2VwYXJhbXMuYXhfY21kO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yNTctXFx0dTE2IGNtZF9zaXplO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNTg6XFx0c3RydWN0IG54cHdpZmlfMTFheF9zcl9jbWQgKnNyX2NtZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjU5OlxcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2RhdGEgKnRsdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjYwOlxcdHN0cnVjdCBueHB3aWZpXzExYXhfYmVhbV9jbWQgKmJlYW1fY21kO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjE6XFx0c3RydWN0IG54cHdpZmlfMTFheF9odGNfY21kICpodGNfY21kO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjI6XFx0c3RydWN0IG54cHdpZmlfMTFheF90eG9taV9jbWQgKnR4bW9pX2NtZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjYzOlxcdHN0cnVjdCBueHB3aWZpXzExYXhfdG9sdGltZV9jbWQgKnRvbHRpbWVfY21kO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjQ6XFx0c3RydWN0IG54cHdpZmlfMTFheF90eG9wX2NtZCAqdHhvcF9jbWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI2NTpcXHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3NldF9ic3JwX2NtZCAqc2V0X2JzcnBfY21kO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjY6XFx0c3RydWN0IG54cHdpZmlfMTFheF9sbGRlX2NtZCAqbGxkZV9jbWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI2Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yNzUtXFx0Y2FzZSBOWFBXSUZJXzExQVhDTURfU1JfU1VCSUQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI3NjpcXHRcXHRzcl9jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF9zcl9jbWQgKilcXHUwMDI2YXhfY21kLVxcdTAwM2VwYXJhbTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjc3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNzg6XFx0XFx0dGx2ID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2RhdGEgKiloZV9jbWQtXFx1MDAzZXZhbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjc5LVxcdFxcdHRsdi1cXHUwMDNlaGVhZGVyLnR5cGUgPSBjcHVfdG9fbGUxNihzcl9jbWQtXFx1MDAzZXR5cGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI4NS1cXHRjYXNlIE5YUFdJRklfMTFBWENNRF9CRUFNX1NVQklEOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyODY6XFx0XFx0YmVhbV9jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF9iZWFtX2NtZCAqKVxcdTAwMjZheF9jbWQtXFx1MDAzZXBhcmFtO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yODctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjkxLVxcdGNhc2UgTlhQV0lGSV8xMUFYQ01EX0hUQ19TVUJJRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjkyOlxcdFxcdGh0Y19jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF9odGNfY21kICopXFx1MDAyNmF4X2NtZC1cXHUwMDNlcGFyYW07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI5My1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yOTctXFx0Y2FzZSBOWFBXSUZJXzExQVhDTURfVFhPTUlfU1VCSUQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI5ODpcXHRcXHR0eG1vaV9jbWQgPVxcdChzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3R4b21pX2NtZCAqKVxcdTAwMjZheF9jbWQtXFx1MDAzZXBhcmFtO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yOTktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzAzLVxcdGNhc2UgTlhQV0lGSV8xMUFYQ01EX09CU1NfVE9MVElNRV9TVUJJRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzA0OlxcdFxcdHRvbHRpbWVfY21kID0gKHN0cnVjdCBueHB3aWZpXzExYXhfdG9sdGltZV9jbWQgKilcXHUwMDI2YXhfY21kLVxcdTAwM2VwYXJhbTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzA1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMxMC1cXHRjYXNlIE5YUFdJRklfMTFBWENNRF9UWE9QUlRTX1NVQklEOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzozMTE6XFx0XFx0dHhvcF9jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF90eG9wX2NtZCAqKVxcdTAwMjZheF9jbWQtXFx1MDAzZXBhcmFtO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMTItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzE3LVxcdGNhc2UgTlhQV0lGSV8xMUFYQ01EX1NFVF9CU1JQX1NVQklEOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzozMTg6XFx0XFx0c2V0X2JzcnBfY21kID0gKHN0cnVjdCBueHB3aWZpXzExYXhfc2V0X2JzcnBfY21kICopXFx1MDAyNmF4X2NtZC1cXHUwMDNlcGFyYW07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMxOS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMjMtXFx0Y2FzZSBOWFBXSUZJXzExQVhDTURfTExERV9TVUJJRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzI0OlxcdFxcdGxsZGVfY21kID0gKHN0cnVjdCBueHB3aWZpXzExYXhfbGxkZV9jbWQgKilcXHUwMDI2YXhfY21kLVxcdTAwM2VwYXJhbTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzI1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMyOS1cXHRkZWZhdWx0OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzozMzA6XFx0XFx0bnhwd2lmaV9kYmcoYWRhcHRlciwgRVJST1IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMzMS1cXHRcXHRcXHQgICAgXFxcIiVzOiBVbmtub3duIHN1YiBjb21tYW5kOiAlZFxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zNDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM0MTppbnQgbnhwd2lmaV9yZXRfMTFheF9jbWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzQyLVxcdFxcdFxcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqcmVzcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzQzOlxcdFxcdFxcdCBzdHJ1Y3Qgbnhwd2lmaV8xMWF4X2NtZF9jZmcgKmF4X2NtZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzQ0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzQ1OlxcdHN0cnVjdCBueHB3aWZpX2FkYXB0ZXIgKmFkYXB0ZXIgPSBwcml2LVxcdTAwM2VhZGFwdGVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zNDYtXFx0c3RydWN0IGhvc3RfY21kXzExYXhfY21kICpoZV9jbWQgPSBcXHUwMDI2cmVzcC1cXHUwMDNlcGFyYW1zLmF4X2NtZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzQ3OlxcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2RhdGEgKnRsdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzQ4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM1Mi1cXHRjYXNlIE5YUFdJRklfMTFBWENNRF9TUl9TVUJJRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzUzOlxcdFxcdHRsdiA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19kYXRhICopaGVfY21kLVxcdTAwM2V2YWw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM1NC1cXHRcXHRtZW1jcHkoYXhfY21kLVxcdTAwM2VwYXJhbS5zcl9jZmcucGFyYW0ub2Jzc19wZF9vZmZzZXQub2Zmc2V0LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM4My1cXHRkZWZhdWx0OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzozODQ6XFx0XFx0bnhwd2lmaV9kYmcoYWRhcHRlciwgRVJST1IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM4NS1cXHRcXHRcXHQgICAgXFxcIiVzOiBVbmtub3duIHN1YiBjb21tYW5kOiAlZFxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zOTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM5MzpzdGF0aWMgdTggbnhwd2lmaV9pc19hcF8xMWF4X3R3dF9zdXBwb3J0ZWQoc3RydWN0IG54cHdpZmlfYnNzZGVzY3JpcHRvciAqYnNzX2Rlc2MpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM5NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDA5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MTA6Ym9vbCBueHB3aWZpX2lzXzExYXhfdHd0X3N1cHBvcnRlZChzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MTE6XFx0XFx0XFx0XFx0ICAgc3RydWN0IG54cHdpZmlfYnNzZGVzY3JpcHRvciAqYnNzX2Rlc2MpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQxMi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQxMzpcXHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKnVzZXJfaGVfY2FwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MTQ6XFx0c3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICpod19oZV9jYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDE2OlxcdGlmIChic3NfZGVzYyBcXHUwMDI2XFx1MDAyNiAoIW54cHdpZmlfaXNfYXBfMTFheF90d3Rfc3VwcG9ydGVkKGJzc19kZXNjKSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDE3OlxcdFxcdG54cHdpZmlfZGJnKHByaXYtXFx1MDAzZWFkYXB0ZXIsIE1TRyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDE4LVxcdFxcdFxcdCAgICBcXFwiQVAgZG9uJ3Qgc3VwcG9ydCB0d3QgZmVhdHVyZVxcXFxuXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDIyLVxcdGlmIChic3NfZGVzYy1cXHUwMDNlYnNzX2JhbmQgXFx1MDAyNiBCQU5EX0EpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDIzOlxcdFxcdGh3X2hlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDI0LVxcdFxcdFxcdHByaXYtXFx1MDAzZWFkYXB0ZXItXFx1MDAzZWh3X2hlX2NhcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDI1OlxcdFxcdHVzZXJfaGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MjYtXFx0XFx0XFx0cHJpdi1cXHUwMDNldXNlcl9oZV9jYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQyNy1cXHR9IGVsc2Uge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0Mjg6XFx0XFx0aHdfaGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MjktXFx0XFx0XFx0cHJpdi1cXHUwMDNlYWRhcHRlci1cXHUwMDNlaHdfMmdfaGVfY2FwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MzA6XFx0XFx0dXNlcl9oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQzMS1cXHRcXHRcXHRwcml2LVxcdTAwM2V1c2VyXzJnX2hlX2NhcDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MzQtXFx0aWYgKCEoaHdfaGVfY2FwLVxcdTAwM2VoZV9tYWNfY2FwWzBdIFxcdTAwMjYgSEVfTUFDX0NBUF9UV1RfUkVRX1NVUFBPUlQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQzNTpcXHRcXHRueHB3aWZpX2RiZyhwcml2LVxcdTAwM2VhZGFwdGVyLCBNU0csXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQzNi1cXHRcXHRcXHQgICAgXFxcIkZXIGRvbid0IHN1cHBvcnQgVFdUXFxcXG5cXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NDAtXFx0aWYgKCEodXNlcl9oZV9jYXAtXFx1MDAzZWhlX21hY19jYXBbMF0gXFx1MDAyNiBIRV9NQUNfQ0FQX1RXVF9SRVFfU1VQUE9SVCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDQxOlxcdFxcdG54cHdpZmlfZGJnKHByaXYtXFx1MDAzZWFkYXB0ZXIsIE1TRyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDQyLVxcdFxcdFxcdCAgICBcXFwiVVNFUiBIRV9NQUNfQ0FQIGRvbid0IHN1cHBvcnQgVFdUXFxcXG5cXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ0OTp1OCBueHB3aWZpX2lzX3N0YV8xMWF4X3R3dF9yZXFfc3VwcG9ydGVkKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ1MC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ1MTpcXHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKnVzZXJfaGVfY2FwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NTItXFx0dTggcmV0ID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NTYtXFx0XFx0aWYgKHByaXYtXFx1MDAzZWNvbmZpZ19iYW5kcyBcXHUwMDI2IEJBTkRfQUFYKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NTc6XFx0XFx0XFx0dXNlcl9oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopcHJpdi1cXHUwMDNldXNlcl9oZV9jYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ1OC1cXHRcXHRlbHNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ1OTpcXHRcXHRcXHR1c2VyX2hlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilwcml2LVxcdTAwM2V1c2VyXzJnX2hlX2NhcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDYwLVxcdFxcdHJldCA9IHVzZXJfaGVfY2FwLVxcdTAwM2VoZV9tYWNfY2FwWzBdIFxcdTAwMjYgSEVfTUFDX0NBUF9UV1RfUkVRX1NVUFBPUlQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDY1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NjY6aW50IG54cHdpZmlfY21kX3R3dF9jZmcoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDY3LVxcdFxcdFxcdHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpjbWQsIHUxNiBjbWRfYWN0aW9uLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0Njg6XFx0XFx0XFx0c3RydWN0IG54cHdpZmlfdHd0X2NmZyAqdHd0X2NmZylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDY5LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDcwOlxcdHN0cnVjdCBueHB3aWZpX2FkYXB0ZXIgKmFkYXB0ZXIgPSBwcml2LVxcdTAwM2VhZGFwdGVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NzEtXFx0c3RydWN0IGhvc3RfY21kX3R3dF9jZmcgKnR3dF9jZmdfY21kID0gXFx1MDAyNmNtZC1cXHUwMDNlcGFyYW1zLnR3dF9jZmc7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ3MjpcXHRzdHJ1Y3Qgbnhwd2lmaV90d3Rfc2V0dXAgKnR3dF9zZXR1cDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDczOlxcdHN0cnVjdCBueHB3aWZpX3R3dF90ZWFyZG93biAqdHd0X3RlYXJkb3duO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NzQ6XFx0c3RydWN0IG54cHdpZmlfdHd0X3JlcG9ydCAqdHd0X3JlcG9ydDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDc1OlxcdHN0cnVjdCBueHB3aWZpX3R3dF9pbmZvcm1hdGlvbiAqdHd0X2luZm9ybWF0aW9uO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NzY6XFx0c3RydWN0IG54cHdpZmlfYnR3dF9hcF9jb25maWcgKmJ0d3RfYXBfY29uZmlnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NzctXFx0dTggaTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00ODctXFx0Y2FzZSBOWFBXSUZJXzExQVhfVFdUX1NFVFVQX1NVQklEOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0ODg6XFx0XFx0dHd0X3NldHVwID0gKHN0cnVjdCBueHB3aWZpX3R3dF9zZXR1cCAqKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00ODktXFx0XFx0XFx0dHd0X2NmZ19jbWQtXFx1MDAzZXZhbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0OTE6XFx0XFx0bWVtc2V0KHR3dF9zZXR1cCwgMHgwMCwgc2l6ZW9mKHN0cnVjdCBueHB3aWZpX3R3dF9zZXR1cCkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00OTItXFx0XFx0dHd0X3NldHVwLVxcdTAwM2VpbXBsaWNpdCA9IHR3dF9jZmctXFx1MDAzZXBhcmFtLnR3dF9zZXR1cC5pbXBsaWNpdDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MDQtXFx0XFx0dHd0X3NldHVwLVxcdTAwM2ViY25fbWlzc190aHJlc2hvbGQgPSB0d3RfY2ZnLVxcdTAwM2VwYXJhbS50d3Rfc2V0dXAuYmNuX21pc3NfdGhyZXNob2xkO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1MDU6XFx0XFx0Y21kX3NpemUgKz0gc2l6ZW9mKHN0cnVjdCBueHB3aWZpX3R3dF9zZXR1cCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUwNi1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTA3LVxcdGNhc2UgTlhQV0lGSV8xMUFYX1RXVF9URUFSRE9XTl9TVUJJRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTA4OlxcdFxcdHR3dF90ZWFyZG93biA9IChzdHJ1Y3Qgbnhwd2lmaV90d3RfdGVhcmRvd24gKilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTA5LVxcdFxcdFxcdHR3dF9jZmdfY21kLVxcdTAwM2V2YWw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUxMC1cXHRcXHRtZW1zZXQodHd0X3RlYXJkb3duLCAweDAwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1MTE6XFx0XFx0ICAgICAgIHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3RfdGVhcmRvd24pKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTEyLVxcdFxcdHR3dF90ZWFyZG93bi1cXHUwMDNlZmxvd19pZGVudGlmaWVyID1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MTctXFx0XFx0XFx0dHd0X2NmZy1cXHUwMDNlcGFyYW0udHd0X3RlYXJkb3duLnRlYXJkb3duX2FsbF90d3Q7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjUxODpcXHRcXHRjbWRfc2l6ZSArPSBzaXplb2Yoc3RydWN0IG54cHdpZmlfdHd0X3RlYXJkb3duKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTE5LVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MjAtXFx0Y2FzZSBOWFBXSUZJXzExQVhfVFdUX1JFUE9SVF9TVUJJRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTIxOlxcdFxcdHR3dF9yZXBvcnQgPSAoc3RydWN0IG54cHdpZmlfdHd0X3JlcG9ydCAqKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MjItXFx0XFx0XFx0dHd0X2NmZ19jbWQtXFx1MDAzZXZhbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTIzOlxcdFxcdG1lbXNldCh0d3RfcmVwb3J0LCAweDAwLCBzaXplb2Yoc3RydWN0IG54cHdpZmlfdHd0X3JlcG9ydCkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MjQtXFx0XFx0dHd0X3JlcG9ydC1cXHUwMDNldHlwZSA9IHR3dF9jZmctXFx1MDAzZXBhcmFtLnR3dF9yZXBvcnQudHlwZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTI1OlxcdFxcdGNtZF9zaXplICs9IHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3RfcmVwb3J0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTI2LVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MjctXFx0Y2FzZSBOWFBXSUZJXzExQVhfVFdUX0lORk9STUFUSU9OX1NVQklEOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1Mjg6XFx0XFx0dHd0X2luZm9ybWF0aW9uID0gKHN0cnVjdCBueHB3aWZpX3R3dF9pbmZvcm1hdGlvbiAqKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MjktXFx0XFx0XFx0dHd0X2NmZ19jbWQtXFx1MDAzZXZhbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTMwLVxcdFxcdG1lbXNldCh0d3RfaW5mb3JtYXRpb24sIDB4MDAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjUzMTpcXHRcXHQgICAgICAgc2l6ZW9mKHN0cnVjdCBueHB3aWZpX3R3dF9pbmZvcm1hdGlvbikpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MzItXFx0XFx0dHd0X2luZm9ybWF0aW9uLVxcdTAwM2VmbG93X2lkZW50aWZpZXIgPVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUzNS1cXHRcXHRcXHR0d3RfY2ZnLVxcdTAwM2VwYXJhbS50d3RfaW5mb3JtYXRpb24uc3VzcGVuZF9kdXJhdGlvbjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTM2OlxcdFxcdGNtZF9zaXplICs9IHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3RfaW5mb3JtYXRpb24pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MzctXFx0XFx0YnJlYWs7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUzOC1cXHRjYXNlIE5YUFdJRklfMTFBWF9CVFdUX0FQX0NPTkZJR19TVUJJRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTM5OlxcdFxcdGJ0d3RfYXBfY29uZmlnID0gKHN0cnVjdCBueHB3aWZpX2J0d3RfYXBfY29uZmlnICopXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU0MC1cXHRcXHRcXHRcXHQgdHd0X2NmZ19jbWQtXFx1MDAzZXZhbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTQxLVxcdFxcdG1lbXNldChidHd0X2FwX2NvbmZpZywgMHgwMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTQyOlxcdFxcdCAgICAgICBzaXplb2Yoc3RydWN0IG54cHdpZmlfYnR3dF9hcF9jb25maWcpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTQzLVxcdFxcdGJ0d3RfYXBfY29uZmlnLVxcdTAwM2VhcF9iY2FzdF9iZXRfc3RhX3dhaXQgPVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU2MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTYyOlxcdFxcdGNtZF9zaXplICs9IHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV9idHd0X2FwX2NvbmZpZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU2My1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTY0LVxcdGRlZmF1bHQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjU2NTpcXHRcXHRueHB3aWZpX2RiZyhhZGFwdGVyLCBFUlJPUixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTY2LVxcdFxcdFxcdCAgICBcXFwiVW5rbm93biBzdWIgaWQ6ICVkXFxcXG5cXFwiLCB0d3RfY2ZnLVxcdTAwM2VzdWJfaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU3NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTc1OmludCBueHB3aWZpX3JldF90d3RfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU3Ni1cXHRcXHRcXHRzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqcmVzcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTc3OlxcdFxcdFxcdHN0cnVjdCBueHB3aWZpX3R3dF9jZmcgKnR3dF9jZmcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU3OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTg2LVxcdCAgICB0d3RfY2ZnLVxcdTAwM2VzdWJfaWQgPT0gTlhQV0lGSV8xMUFYX1RXVF9SRVBPUlRfU1VCSUQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTg3OlxcdFxcdHN0cnVjdCBueHB3aWZpX3R3dF9yZXBvcnQgKnR3dF9yZXBvcnQgPVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1ODg6XFx0XFx0XFx0KHN0cnVjdCBueHB3aWZpX3R3dF9yZXBvcnQgKil0d3RfY2ZnX2NtZC1cXHUwMDNldmFsO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01ODktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjU5MDpcXHRcXHRtZW1jcHkoXFx1MDAyNnR3dF9jZmctXFx1MDAzZXBhcmFtLnR3dF9yZXBvcnQsIHR3dF9yZXBvcnQsIHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3RfcmVwb3J0KSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU5MS1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMi0vKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDozOiAqIG54cHdpZmk6IDgwMi4xMWF4IHN1cHBvcnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oPTE3PXN0YXRpYyBpbmxpbmUgdTE2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjE4Om54cHdpZmlfZ2V0X2hlX25zc19tY3MoX19sZTE2IG1jc19tYXBfc2V0LCBpbnQgbnNzKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTE5LVxcdHJldHVybiAoKGxlMTZfdG9fY3B1KG1jc19tYXBfc2V0KSBcXHUwMDNlXFx1MDAzZSAoMiAqIChuc3MgLSAxKSkpIFxcdTAwMjYgMHgzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaD0yMj1zdGF0aWMgaW5saW5lIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6MjM6bnhwd2lmaV9zZXRfaGVfbnNzX21jcyhfX2xlMTYgKm1jc19tYXBfc2V0LCBpbnQgbnNzLCBpbnQgdmFsdWUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMjQtXFx0dTE2IHRlbXA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjMxOmJvb2wgbnhwd2lmaV9pc18xMWF4X3R3dF9zdXBwb3J0ZWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6MzI6XFx0XFx0XFx0XFx0ICAgc3RydWN0ICBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjM0OnZvaWQgbnhwd2lmaV91cGRhdGVfMTFheF9jYXAoc3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMzUtXFx0XFx0XFx0ICAgICBzdHJ1Y3QgaHdfc3BlY19leHRlbnNpb24gKmh3X2hlX2NhcCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTM2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDozNzpib29sIG54cHdpZmlfMTFheF9iYW5kY29uZmlnX2FsbG93ZWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6Mzg6XFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3Qgbnhwd2lmaV9ic3NkZXNjcmlwdG9yICpic3NfZGVzYyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTM5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo0MDppbnQgbnhwd2lmaV9jbWRfYXBwZW5kXzExYXhfdGx2KHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjQxOlxcdFxcdFxcdFxcdHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC00Mi1cXHRcXHRcXHRcXHR1OCAqKmJ1ZmZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo0NDppbnQgbnhwd2lmaV9maWxsX2hlX2NhcF90bHYoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NDU6XFx0XFx0XFx0ICAgIHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqaGVfY2FwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC00Ni1cXHRcXHRcXHQgICAgdTE2IGJhbmRzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NDc6aW50IG54cHdpZmlfY21kXzExYXhfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTQ4LVxcdFxcdFxcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NDk6XFx0XFx0XFx0IHN0cnVjdCBueHB3aWZpXzExYXhfaGVfY2ZnICpheF9jZmcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC01MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NTE6aW50IG54cHdpZmlfcmV0XzExYXhfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTUyLVxcdFxcdFxcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqcmVzcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NTM6XFx0XFx0XFx0IHN0cnVjdCBueHB3aWZpXzExYXhfaGVfY2ZnICpheF9jZmcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC01NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NTU6aW50IG54cHdpZmlfY21kXzExYXhfY21kKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTU2LVxcdFxcdFxcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NTc6XFx0XFx0XFx0IHN0cnVjdCBueHB3aWZpXzExYXhfY21kX2NmZyAqYXhfY21kKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjU5OmludCBueHB3aWZpX3JldF8xMWF4X2NtZChzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC02MC1cXHRcXHRcXHQgc3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKnJlc3AsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjYxOlxcdFxcdFxcdCBzdHJ1Y3Qgbnhwd2lmaV8xMWF4X2NtZF9jZmcgKmF4X2NtZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTYyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo2MzppbnQgbnhwd2lmaV9jbWRfdHd0X2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC02NC1cXHRcXHRcXHRzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NjU6XFx0XFx0XFx0c3RydWN0IG54cHdpZmlfdHd0X2NmZyAqdHd0X2NmZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo2NzppbnQgbnhwd2lmaV9yZXRfdHd0X2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC02OC1cXHRcXHRcXHRzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqcmVzcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6Njk6XFx0XFx0XFx0c3RydWN0IG54cHdpZmlfdHd0X2NmZyAqdHd0X2NmZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo3MTp1OCBueHB3aWZpX2lzX3N0YV8xMWF4X3R3dF9yZXFfc3VwcG9ydGVkKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC03Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jLTItLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYzozOiAqIG54cHdpZmk6IDgwMi4xMWggaGVscGVyc1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jLTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jLTEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jOjEzOnZvaWQgbnhwd2lmaV9pbml0XzExaF9wYXJhbXMoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYy0xNC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYy0xOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYzoxOTppbnQgbnhwd2lmaV9pc18xMWhfYWN0aXZlKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFoLmMtMjAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFoLmM9MjU9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYzoyNjpueHB3aWZpXzExaF9wcm9jZXNzX2luZnJhX2pvaW4oc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdiwgdTggKipidWZmZXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFoLmM6Mjc6XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jLTI4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYzoyOTpcXHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIgKmllX2hlYWRlcjtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTE6NDI6MDIuNjUzMjMyOTA2WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDI3MjEzODYxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgXCJueHB3aWZpXCIgRHJpdmVyKipcblxuQWxyaWdodCwgc28gYG54cHdpZmlgLi4uIHRoYXQgcmluZ3MgYSBiZWxsLiBOb3cgdGhlIHF1ZXN0aW9uIGlzLCBpcyB0aGlzIGEgZ2VudWluZWx5IGluZGVwZW5kZW50IGRyaXZlciwgb3IgaXMgaXQgYSBzeW1ib2xpYyBsaW5rIG9yIHNvbWUga2luZCBvZiByZWJyYW5kaW5nIG9mIGFuIGV4aXN0aW5nIG9uZT8gTXkgZmlyc3QgaW5zdGluY3QgaXMgdG8gZGlnIGludG8gdGhlIHNvdXJjZSBjb2RlIHRvIGdldCBhIGhhbmRsZSBvbiBpdC4gTGV0J3Mgc2VlLi4uIGEgcXVpY2sgY2hlY2sgb2YgdGhlIHN0YW5kYXJkIGRyaXZlciBsYXlvdXQgaXMgaW4gb3JkZXIuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGdldCBpbnRvIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyIC0gdGhlIGNvbmZpZ3VyYXRpb24gYW5kIGJ1aWxkIGZpbGVzLlxuXG5UaGUgb2J2aW91cyBwbGFjZXMgdG8gc3RhcnQgYXJlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnYCBhbmQgYE1ha2VmaWxlYC4gVGhlIEtjb25maWcgZmlsZSBzaG91bGQgZGVmaW5lIHRoZSByZWxldmFudCBrZXJuZWwgY29uZmlndXJhdGlvbiBvcHRpb25zLiBJZiBpdCdzIGEgY29tcGxldGVseSBuZXcsIHN0YW5kLWFsb25lIGRyaXZlciwgSSdkIGV4cGVjdCB0byBzZWUgaXRzIG93biBzZXQgb2Ygb3B0aW9ucy4gSWYgaXQncyBhIHJlbmFtZSBvciBoZWF2aWx5IG1vZGlmaWVkIHZhcmlhbnQsIHRoZSBLY29uZmlnIG1pZ2h0IGluY2x1ZGUgYW5kIGluaGVyaXQgY29uZmlndXJhdGlvbnMgZnJvbSBhbm90aGVyIGRyaXZlciwgb3IgbWFrZSBleHRlbnNpdmUgdXNlIG9mICdzZWxlY3QnIHN0YXRlbWVudHMuXG5cblRoZSBNYWtlZmlsZSwgb2YgY291cnNlLCB3aWxsIHRlbGwgdGhlIGJ1aWxkIHN5c3RlbSBob3cgdG8gY29tcGlsZSBhbmQgbGluayB0aGUgY29kZS4gQSBsb29rIGF0IHRoZSBzb3VyY2UgZmlsZXMgaW5jbHVkZWQsIHRoZSBkZXBlbmRlbmNpZXMsIGFuZCB0aGUgbGlua2luZyB0YXJnZXRzIHdpbGwgcXVpY2tseSByZXZlYWwgaG93IHRoaXMgZHJpdmVyIGlzIGFyY2hpdGVjdGVkIGFuZCBpZiBpdCdzIGJhc2VkIG9uIHNvbWUgb3RoZXIgZXhpc3RpbmcgY29kZSBiYXNlIG9yIGlzIGEgY29tcGxldGVseSBzdGFuZC1hbG9uZSBpbXBsZW1lbnRhdGlvbi4gVGhpcyBpcyB0aGUgZmFzdGVzdCB3YXkgdG8gdW5kZXJzdGFuZCB0aGUgcmVsYXRpb25zaGlwcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjAxNjYsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxMTo0MjowNi45MjUzNzM0MzhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI5MTYxOTA3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBOWFBXSUZJXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZzoyOmNvbmZpZyBOWFBXSUZJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJOWFAgV2lGaSBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnLTExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWc6MTI6Y29uZmlnIE5YUFdJRklfU0RJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWctMTMtXFx0dHJpc3RhdGUgXFxcIk5YUCBXaUZpIERyaXZlciBmb3IgSVc2MXhcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDExOjQyOjA3LjA1NDU0NjY5NVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ0MTQ2OTU3OTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkFuYWx5emluZyB0aGUgTlhQIFdpRmkgRHJpdmVyOiBCdXMgSW50ZXJmYWNlIFN1cHBvcnQqKlxuXG5BbHJpZ2h0LCBzbyBJJ3ZlIGdvdCB0aGlzIE5YUCBXaUZpIGRyaXZlciBpbiBmcm9udCBvZiBtZS4gSW1tZWRpYXRlbHksIG15IGZvY3VzIHNoaWZ0cyB0byB0aGUgaGFyZHdhcmUgaW50ZXJmYWNlLiBHaXZlbiBteSBleHBlcmllbmNlLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgZnVuZGFtZW50YWwgYXJjaGl0ZWN0dXJlLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHRvIGRpdmUgcmlnaHQgaW50byB0aGUgY29kZSB0byBkZXRlcm1pbmUgdGhlIHN1cHBvcnRlZCBidXMgdHlwZXMuIElzIGl0IFNESU8/IFBDSWU/IE1heWJlIGV2ZW4gc29tZSBwcm9wcmlldGFyeSBpbnRlcmZhY2U/IFVuZGVyc3RhbmRpbmcgdGhlIGJ1cyBjb25uZWN0aW9uIGlzIGFic29sdXRlbHkgY3JpdGljYWwgdG8gZ3Jhc3BpbmcgdGhlIGRyaXZlcidzIHVuZGVybHlpbmcgY29tbXVuaWNhdGlvbiBzdHJhdGVneSwgaXRzIHBlcmZvcm1hbmNlIGxpbWl0YXRpb25zLCBhbmQgcG90ZW50aWFsIGludGVncmF0aW9uIGNoYWxsZW5nZXMgd2l0aCBzcGVjaWZpYyBoYXJkd2FyZSBwbGF0Zm9ybXMuIEtub3dpbmcgdGhlIHN1cHBvcnRlZCBidXMoc2VzKSBpcyB0aGUgY3JpdGljYWwgZmlyc3Qgc3RlcC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjA3MjgsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxMTo0MjoxMS40NjkyNDYwNzRaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjE2NjUyNTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE5YUFdJRklcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZzoyOmNvbmZpZyBOWFBXSUZJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJOWFAgV2lGaSBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnLTExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWc6MTI6Y29uZmlnIE5YUFdJRklfU0RJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWctMTMtXFx0dHJpc3RhdGUgXFxcIk5YUCBXaUZpIERyaXZlciBmb3IgSVc2MXhcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDExOjQyOjExLjUzMDkxNjg0M1oiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5NDcwNTg0NTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgYXMgaWYgdGhleSdyZSBteSBvd246XG5cbioqQW5hbHl6aW5nIHRoZSBLY29uZmlnIEZpbGUqKlxuXG5BbHJpZ2h0LCB0aW1lIHRvIGdldCB0byB3b3JrLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIFwiTGV0J3MgcmVhZCB0aGUgS2NvbmZpZyBmaWxlLlwiIFRoYXQncyB0aGUgY29yZSBvZiBpdCwgcmVhbGx5LiBJdCdzIHRoZSBzdGFydGluZyBwb2ludC4gSSBuZWVkIHRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2YgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgZGVwZW5kZW5jaWVzLCBhbmQgdGhlaXIgb3ZlcmFsbCBzdHJ1Y3R1cmUuIFRoaXMgZmlsZSBpcyB0aGUgYmx1ZXByaW50LCB0aGUgaGVhcnQgb2YgdGhlIGNvbmZpZ3VyYXRpb24gc3lzdGVtLCBzbyB1bmRlcnN0YW5kaW5nIGl0IHRob3JvdWdobHkgaXMgcGFyYW1vdW50IGJlZm9yZSBJIHByb2NlZWQgYW55IGZ1cnRoZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxMTEwLCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxMTo0MjoxNC40Nzc5Nzc2MzlaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjM4MzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbiAgIDI6XFx0Y29uZmlnIE5YUFdJRklcXG4gICAzOlxcdFxcdHRyaXN0YXRlIFxcXCJOWFAgV2lGaSBEcml2ZXJcXFwiXFxuICAgNDpcXHRcXHRkZXBlbmRzIG9uIENGRzgwMjExXFxuICAgNTpcXHRcXHRoZWxwXFxuICAgNjpcXHRcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciB3aXJlbGVzcyBhZGFwdGVycyBiYXNlZCBvbiBOWFBcXG4gICA3OlxcdFxcdCAgODAyLjExbi9hYyBjaGlwc2V0cy5cXG4gICA4OlxcdFxcbiAgIDk6XFx0XFx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGl0IGFzIGEgbW9kdWxlLCBpdCB3aWxsIGJlIGNhbGxlZFxcbiAgMTA6XFx0XFx0ICBueHB3aWZpLlxcbiAgMTE6XFx0XFxuICAxMjpcXHRjb25maWcgTlhQV0lGSV9TRElPXFxuICAxMzpcXHRcXHR0cmlzdGF0ZSBcXFwiTlhQIFdpRmkgRHJpdmVyIGZvciBJVzYxeFxcXCJcXG4gIDE0OlxcdFxcdGRlcGVuZHMgb24gTlhQV0lGSSBcXHUwMDI2XFx1MDAyNiBNTUNcXG4gIDE1OlxcdFxcdHNlbGVjdCBGV19MT0FERVJcXG4gIDE2OlxcdFxcdHNlbGVjdCBXQU5UX0RFVl9DT1JFRFVNUFxcbiAgMTc6XFx0XFx0aGVscFxcbiAgMTg6XFx0XFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3Igd2lyZWxlc3MgYWRhcHRlcnMgYmFzZWQgb24gTlhQXFxuICAxOTpcXHRcXHQgIElXNjF4IGludGVyZmFjZS5cXG4gIDIwOlxcdFxcbiAgMjE6XFx0XFx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGl0IGFzIGEgbW9kdWxlLCBpdCB3aWxsIGJlIGNhbGxlZFxcbiAgMjI6XFx0XFx0ICBueHB3aWZpX3NkaW8uXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDExOjQyOjE0LjQ3ODA0NTM1OVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1OTE0NjQ1NzIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIE5YUCBXaUZpIERyaXZlciBhbmQgU3l6a2FsbGVyIENvbXBhdGliaWxpdHkqKlxuXG5Pa2F5LCBzbyB0aGlzIGRyaXZlciBzcGVjaWZpY2FsbHkgdGFyZ2V0cyBTRElPIChgTlhQV0lGSV9TRElPYCksIHdoaWNoIGltbWVkaWF0ZWx5IHJhaXNlcyBhIGZsYWcuIE15IGZpcnN0IHRob3VnaHQgaXM6IGNhbiBJIGV2ZW4gcmVhY2ggdGhpcyB0aGluZyBpbiBhIFFFTVUgZW52aXJvbm1lbnQ/IFNESU8gZGV2aWNlcyBhcmUgbm90b3Jpb3VzbHkgZGlmZmljdWx0IHRvIGVtdWxhdGUgd2VsbC4gVGhleSB1c3VhbGx5IHJlcXVpcmUgYSBzcGVjaWZpYyBTREhDSSBjb250cm9sbGVyIG1vZGVsLCBhbmQgdGhlbiBhbiBTRElPIGRldmljZSBtb2RlbCBpdHNlbGYuIEknZCBuZWVkIHRvIGNvbmZpcm0gdGhlIGF2YWlsYWJpbGl0eSBvZiB0aGVzZSBzcGVjaWZpYyBtb2RlbHMgaW4gdGhlIFFFTVUgY29uZmlndXJhdGlvbiBJJ20gd29ya2luZyB3aXRoLlxuXG5UaGUgYmlnZ2VyIGlzc3VlLCBhbmQgdGhpcyBpcyB3aGVyZSBteSBleHBlcmllbmNlIGtpY2tzIGluLCBpcyB0aGF0IHN5emthbGxlciBkb2Vzbid0IHR5cGljYWxseSBoYW5kbGUgU0RJTyBkZXZpY2VzIGRpcmVjdGx5IGluIHRoZSBzYW1lIHdheSBpdCBoYW5kbGVzIFVTQiBvciBQQ0kuIFRoZXJlIGlzbid0IGEgZ2VuZXJpYyBTRElPIGZ1enplciBiYWtlZCBpbnRvIHN5emthbGxlciBsaWtlIHRoZXJlIGFyZSBmb3IgdGhvc2Ugb3RoZXIgaW50ZXJmYWNlcy4gSSdtIHVzZWQgdG8gVVNCIChkdW1teV9oY2QpLCBQQ0kgKHZpYSBRRU1VKSwgYW5kIHZoY2kgKEJsdWV0b290aCkgYXMgdGhlIGJyZWFkIGFuZCBidXR0ZXIgdGFyZ2V0cy4gTm8gZ2VuZXJpYyBTRElPIGZ1enplciBleGlzdHMgd2l0aGluIGl0cyBhcmNoaXRlY3R1cmUuXG5cbkhhbmcgb27igKYgaXMgdGhlcmUgZXZlbiBhbiBTRElPIGZ1enplciB3aXRoaW4gc3l6a2FsbGVyPyBEb3VibGUgY2hlY2tpbmfigKYgbm9wZS4gTm8gZ2VuZXJpYyBTRElPIGZ1enplciBhdCBhbGwuXG5cblRoaXMgbWFrZXMgbWUgd29uZGVyIGlmIHRoZXJlJ3MgYSBVU0Igb3IgUENJIHZhcmlhbnQgb2YgdGhpcyBueHB3aWZpIGRyaXZlciBJIGNvdWxkIHVzZSBhcyBhIHRhcmdldC4gTGV0IG1lIGludmVzdGlnYXRlIG90aGVyIGNvbmZpZ3VyYXRpb25zLCBhbmQgc2VlIGlmIG90aGVyIG9wdGlvbnMgYXJlIGF2YWlsYWJsZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE1ODAsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjYsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxMTo0MjoyMC4zOTI2OTM2NloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzYxNjg4ODcxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBOWFBXSUZJX1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWc9Mj1jb25maWcgTlhQV0lGSVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZy0xMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnOjEyOmNvbmZpZyBOWFBXSUZJX1NESU9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnLTEzLVxcdHRyaXN0YXRlIFxcXCJOWFAgV2lGaSBEcml2ZXIgZm9yIElXNjF4XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxMTo0MjoyMC43NTQzOTEwMzFaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzAyNDUzNjA5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQncyBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqTmFycm93aW5nIHRoZSBTY29wZTogU0RJTyBGb2N1cyoqXG5cbkFscmlnaHQsIHRoZSBpbml0aWFsIGh1bmNoIHBvaW50cyBzcXVhcmVseSBhdCBTRElPLiBCdXQsIGhvbGQgb24gYSBzZWNvbmQuIEJlZm9yZSBJIGp1bXAgdG8gY29uY2x1c2lvbnMgYW5kIGRlZGljYXRlIGFsbCBteSB0aW1lIHRvIHRoYXQgcGFydGljdWxhciBpbnRlcmZhY2UsIGl0J3MgYWx3YXlzIHdpc2UgdG8gYmUgdGhvcm91Z2guIEkgbmVlZCB0byBxdWlja2x5IHZlcmlmeSB0aGF0IHRoZXJlIGFyZW4ndCBhbnkgb3RoZXIgYnVzIHR5cGVzIGx1cmtpbmcgd2l0aGluIHRoYXQgZGlyZWN0b3J5LCBiZWNhdXNlIHRoYXQgd291bGQgY2hhbmdlIGV2ZXJ5dGhpbmcuIEEgcXVpY2sgc2NhbiB0byBlbnN1cmUgU0RJTyBpcyB0aGUgKm9ubHkqIG9wdGlvbiwgYW5kIHRoZW4gSSBjYW4gcHJvY2VlZCBjb25maWRlbnRseS4gSSBkb24ndCB3YW50IHRvIHdhc3RlIHRpbWUgb24gYSByZWQgaGVycmluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjIxOTcsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxMTo0MjoyMy43Nzg5Mjk4OTVaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiY29kZXNlYXJjaC1kaXItaW5kZXgiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5NDg2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkRpclwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJGaWxlc1wiOiBbXG4gICAgXCIxMWFjLmNcIixcbiAgICBcIjExYWMuaFwiLFxuICAgIFwiMTFheC5jXCIsXG4gICAgXCIxMWF4LmhcIixcbiAgICBcIjExaC5jXCIsXG4gICAgXCIxMW4uY1wiLFxuICAgIFwiMTFuLmhcIixcbiAgICBcIjExbl9hZ2dyLmNcIixcbiAgICBcIjExbl9hZ2dyLmhcIixcbiAgICBcIjExbl9yeHJlb3JkZXIuY1wiLFxuICAgIFwiMTFuX3J4cmVvcmRlci5oXCIsXG4gICAgXCJjZmcuaFwiLFxuICAgIFwiY2ZnODAyMTEuY1wiLFxuICAgIFwiY2ZnODAyMTEuaFwiLFxuICAgIFwiY2ZwLmNcIixcbiAgICBcImNtZGV2dC5jXCIsXG4gICAgXCJjbWRldnQuaFwiLFxuICAgIFwiZGVidWdmcy5jXCIsXG4gICAgXCJldGh0b29sLmNcIixcbiAgICBcImZ3LmhcIixcbiAgICBcImllLmNcIixcbiAgICBcImluaXQuY1wiLFxuICAgIFwiam9pbi5jXCIsXG4gICAgXCJtYWluLmNcIixcbiAgICBcIm1haW4uaFwiLFxuICAgIFwic2Nhbi5jXCIsXG4gICAgXCJzZGlvLmNcIixcbiAgICBcInNkaW8uaFwiLFxuICAgIFwic3RhX2NmZy5jXCIsXG4gICAgXCJzdGFfY21kLmNcIixcbiAgICBcInN0YV9ldmVudC5jXCIsXG4gICAgXCJzdGFfcnguY1wiLFxuICAgIFwic3RhX3R4LmNcIixcbiAgICBcInR4cnguY1wiLFxuICAgIFwidWFwX2NtZC5jXCIsXG4gICAgXCJ1YXBfZXZlbnQuY1wiLFxuICAgIFwidWFwX3R4cnguY1wiLFxuICAgIFwidXRpbC5jXCIsXG4gICAgXCJ1dGlsLmhcIixcbiAgICBcIndtbS5jXCIsXG4gICAgXCJ3bW0uaFwiXG4gIF0sXG4gIFwiU3ViZGlyc1wiOiBudWxsXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxMTo0MjoyMy43NzkwMjYyNDVaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTA3NTUxMzIxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFJlYWNoYWJpbGl0eSBvZiB0aGUgYG54cHdpZmlgIFNESU8gRHJpdmVyIGZvciBGdXp6aW5nKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBgbnhwd2lmaWAgZHJpdmVyLCBhbmQgdGhlIG9ubHkgZmlsZXMgYXJlIGBzZGlvLmNgIGFuZCBgc2Rpby5oYC4gUmlnaHQgYXdheSwgdGhhdCdzIGEgcHJldHR5IHN0cm9uZyBpbmRpY2F0b3IgdGhhdCB0aGlzIGlzIHB1cmVseSBhbiBTRElPLWJhc2VkIGRyaXZlci4gVGhhdCdzIG15IGZpcnN0IHRob3VnaHQuXG5cblRoZSBuZXh0IHRoaW5nIHRoYXQganVtcHMgb3V0IGF0IG1lIGlzIHRoYXQgc3l6a2FsbGVyLCB0byBteSBrbm93bGVkZ2UsIGRvZXNuJ3QgaGF2ZSBhIGRlZGljYXRlZCBTRElPIGZ1enplciBzZXQgdXAuIEdpdmVuIHRoYXQsIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBHQ0Ugb3IgUUVNVSwgdGhlIGNvZGUgcGF0aHMgd2l0aGluIHRoaXMgZHJpdmVyIGFyZSBwcm9iYWJseSB1bnJlYWNoYWJsZS4gVGhhdCdzIGEgaHVnZSBwb3RlbnRpYWwgcHJvYmxlbSBmb3IgdGhvcm91Z2ggdGVzdGluZy4gSSdtIHRoaW5raW5nIGFib3V0IHdheXMgdG8gdHJpZ2dlciBpdC5cblxuSG1tLCB3YWl0Li4uIGNvdWxkIHRoaXMgYmUgYWNjZXNzZWQgdGhyb3VnaCBzb21ldGhpbmcgbGlrZSBgbWFjODAyMTFfaHdzaW1gPyBJJ20gdHJ5aW5nIHRvIHJlbWVtYmVyIGlmIHRoZXJlJ3MgYSBjb25uZWN0aW9uIHRoZXJlLiBObywgdGhhdCdzIHdyb25nLiBgbWFjODAyMTFfaHdzaW1gIGlzIGEgY29tcGxldGVseSBzZXBhcmF0ZSB0aGluZy4gSXQncyBhIGRyaXZlciB0aGF0IGZha2VzIGEgbWFjODAyMTEgZGV2aWNlLiBUaGUgYG54cHdpZmlgIGRyaXZlciBpcyBhIGZ1bGxtYWMgZHJpdmVyLCBhbmQgaXQgcmVnaXN0ZXJzIGRpcmVjdGx5IHdpdGggY2ZnODAyMTEuIEFuZCwgaXQgdGFsa3MgdG8gaXRzIGZpcm13YXJlIG92ZXIgU0RJTy5cblxuVGhlcmVmb3JlLCBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQgYG54cHdpZmlgIGlzIGRlZmluaXRlbHkgcmVnaXN0ZXJpbmcgd2l0aCBgY2ZnODAyMTFgLiBUaGF0IHdpbGwgbWFrZSBhIGh1Z2UgZGlmZmVyZW5jZSBpbiBob3cgdG8gYXBwcm9hY2ggcmVhY2hpbmcgdGhlIGNvZGUgd2l0aCBmdXp6aW5nLiBMZXQncyBsb29rIGludG8gdGhhdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjI3MjMsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNzksIlRvb2xDYWxscyI6WyJjb2Rlc2VhcmNoLWRpci1pbmRleCJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDExOjQyOjI4Ljg1NDU0MjU5N1oiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjMxMzg1MjksIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1hYzgwMjExXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTE6NDI6MjguOTE3NjkwNTg2WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg2Mzg1MDI5NTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqVW5yZWFjaGFibGUgQ29kZSBpbiB0aGUgTlhQIFdpRmkgRHJpdmVyKipcblxuT2theSwgc28gbG9va2luZyBhdCB0aGlzIHBhdGNoLCBteSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgdGhhdCBpdCdzIGRlYWxpbmcgd2l0aCB0aGUgYG54cHdpZmlgIHdpcmVsZXNzIGRyaXZlciwgd2hpY2ggdXRpbGl6ZXMgYGNmZzgwMjExYC4gVGhhdCdzIHRoZSBzdGFydGluZyBwb2ludC4gVGhlIGNydWNpYWwgaXNzdWUgaGVyZSwgdGhvdWdoLCBpcyB0aGF0IHRoaXMgZHJpdmVyIHJlbGllcyBvbiBhbiBTRElPIGJ1cyBhbmQsIGltcG9ydGFudGx5LCBzcGVjaWZpYyBoYXJkd2FyZSDigJMgdGhlIE5YUCBJVzYxeCBjaGlwc2V0LiBJbiBvdXIgc3RhbmRhcmQgZnV6emluZyBzZXR1cCwgZWl0aGVyIHdpdGggc3l6a2FsbGVyIG9yIFFFTVUsIHdlIGRvbid0IGhhdmUgdGhhdCBoYXJkd2FyZS4gVGhlcmUncyBubyBTRElPIGVtdWxhdG9yIHByZXNlbnQsIGF0IGxlYXN0IG5vdCBvbmUgdGhhdCdzIGVhc2lseSBhY2Nlc3NpYmxlIG9yIGludGVncmF0ZWQgaW50byB0aGUgc3RhbmRhcmQgZW52aXJvbm1lbnRzIHdlJ3JlIHVzaW5nLlxuXG5UaGVyZWZvcmUsIHRoZSBpbml0aWFsaXphdGlvbiBvZiB0aGUgZHJpdmVyIGFuZCBhbnkgb2YgdGhlIHN1YnNlcXVlbnQgcGFja2V0IHByb2Nlc3NpbmcgZnVuY3Rpb25zLCBzcGVjaWZpY2FsbHksIHRoZSBgbnhwd2lmaV8xMW5fY3JlYXRlX3J4X3Jlb3JkZXJfdGJsYCBmdW5jdGlvbiwgYXJlIHNpbXBseSB1bnJlYWNoYWJsZS4gVGhpcyBpcyBiZWNhdXNlIHRoZSBkcml2ZXIgd2lsbCBuZXZlciBzdWNjZXNzZnVsbHkgcHJvYmUgZHVlIHRvIHRoZSBtaXNzaW5nIFNESU8gaGFyZHdhcmUgZW11bGF0aW9uLlxuXG5MZXQgbWUganVzdCBkb3VibGUtY2hlY2ssIGJlY2F1c2UgaXQncyBhbHdheXMgd29ydGggYSB0aG9yb3VnaCBsb29rLiBJcyB0aGVyZSBhbnkgd2F5IFNESU8gaXRzZWxmIGlzIGZ1enplZD8gTm9wZS4gU3l6a2FsbGVyIGRvZXNuJ3QgaGF2ZSBhIGBzeXpfc2Rpb18qYCBwc2V1ZG8tc3lzY2FsbCwgYW5kIHdoaWxlIFFFTVUgKmRvZXMqIGhhdmUgc29tZSBTREhDSSBlbXVsYXRpb24sIHdlJ2QgbmVlZCBhIHZlcnkgc3BlY2lmaWMgU0RJTyBkZXZpY2UgbW9kZWwgZW11bGF0aW5nIHRoZSBOWFAgSVc2MXggdG8gZXZlbiBnZXQgdGhlIGRyaXZlciB0byBwcm9iZSBhbmQgaW5pdGlhbGl6ZS4gUUVNVSdzIGRlZmF1bHQgc2V0dXAgZG9lc24ndCBvZmZlciB0aGF0LiBTbywgdGhlIGRyaXZlciB3b24ndCBwcm9iZSwgYW5kIHRoZSBmdW5jdGlvbiBpcyBuZXZlciBnb2luZyB0byBnZXQgZXhlY3V0ZWQsIHNpbXBsZSBhcyB0aGF0LlxuXG5MZXQgbWUganVzdCBxdWlja2x5IHJldmlldyB0aGUgcGF0Y2ggYWdhaW4gdG8gbWFrZSBzdXJlIGl0IGRvZXNuJ3QgdG91Y2ggYW55dGhpbmcgZWxzZSB0aGF0IG1pZ2h0IGJlIHJlbGV2YW50LiBJdCdzIGp1c3QgdG91Y2hpbmcgZmlsZXMgd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9gIHNwZWNpZmljYWxseSBgMTFuX3J4cmVvcmRlci5jYCBhbmQgYG1haW4uaGAg4oCTIGFsbCBpbnNpZGUgdGhlIGBueHB3aWZpYCBkcml2ZXIuIENvbmZpcm1lZC5cblxuU28sIGdpdmVuIHRoYXQgdGhpcyBwYXRjaCBtb2RpZmllcyBjb2RlIHdpdGhpbiBhIGRyaXZlciB0aGF0J3MgaW5hY2Nlc3NpYmxlIGluIG91ciBzdGFuZGFyZCBmdXp6aW5nIGVudmlyb25tZW50cywgZHVlIHRvIHRoZSBsYWNrIG9mIFNESU8gaGFyZHdhcmUgZW11bGF0aW9uLCBhbmQgdGhlIGFic2VuY2Ugb2YgYW55IFNESU8tc3BlY2lmaWMgZnV6emluZyBjYXBhYmlsaXRpZXMgaW4gc3l6a2FsbGVyLCBJIGhhdmUgdG8gY29uY2x1ZGUgdGhhdCBpdCBpcyBub3Qgd29ydGggZnV6emluZy4gSSB3aWxsIHNldCBgV29ydGhGdXp6aW5nYCB0byBgZmFsc2VgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzI4MywiT3V0cHV0VG9rZW5zIjoxMDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTE6NDI6MzcuNTU2MTk3NDE5WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQyOTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG54cHdpZmkgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCBpcyBhbiBTRElPLWJhc2VkIGRyaXZlciBmb3IgTlhQIElXNjF4IGNoaXBzZXRzLiBTaW5jZSBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgdGhpcyBzcGVjaWZpYyBTRElPIGhhcmR3YXJlLCBhbmQgc3l6a2FsbGVyIGxhY2tzIGEgZ2VuZXJpYyBTRElPIGZ1enplciwgdGhlIGRyaXZlciBjYW5ub3QgYmUgcHJvYmVkIGFuZCBpdHMgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbnhwd2lmaSB3aXJlbGVzcyBkcml2ZXIsIHdoaWNoIGlzIGFuIFNESU8tYmFzZWQgZHJpdmVyIGZvciBOWFAgSVc2MXggY2hpcHNldHMuIFNpbmNlIHN0YW5kYXJkIFFFTVUvR0NFIGVudmlyb25tZW50cyBkbyBub3QgZW11bGF0ZSB0aGlzIHNwZWNpZmljIFNESU8gaGFyZHdhcmUsIGFuZCBzeXprYWxsZXIgbGFja3MgYSBnZW5lcmljIFNESU8gZnV6emVyLCB0aGUgZHJpdmVyIGNhbm5vdCBiZSBwcm9iZWQgYW5kIGl0cyBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowbll42[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-27 11:03:06 +0000 UTC FinishedAt: 2026-07-27 11:42:38 +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+CgkJCTx0ZD4yMDI2LzA3LzI3IDExOjQxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBueHB3aWZpIHdpcmVsZXNzIGRyaXZlciwgd2hpY2ggaXMgYW4gU0RJTy1iYXNlZCBkcml2ZXIgZm9yIE5YUCBJVzYxeCBjaGlwc2V0cy4gU2luY2Ugc3RhbmRhcmQgUUVNVS9HQ0UgZW52aXJvbm1lbnRzIGRvIG5vdCBlbXVsYXRlIHRoaXMgc3BlY2lmaWMgU0RJTyBoYXJkd2FyZSwgYW5kIHN5emthbGxlciBsYWNrcyBhIGdlbmVyaWMgU0RJTyBmdXp6ZXIsIHRoZSBkcml2ZXIgY2Fubm90IGJlIHByb2JlZCBhbmQgaXRzIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxMTo0MTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDI1NTY2MGVhNWQwNWEwODU5ZjJiNjQzZmM0ZDdhZGNmMjM2NmUxZjFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1bCAyNyAxMTo0MTo1MSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW5fcnhyZW9yZGVyLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW5fcnhyZW9yZGVyLmNcbmluZGV4IGM1ODE5Zjg5YjA4Y2U3Li5iMmZkNjI0NDk3YTNhZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbl9yeHJlb3JkZXIuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuX3J4cmVvcmRlci5jXG5AQCAtMTcxLDcgJiM0MzsxNzEsNiBAQCBueHB3aWZpX2RlbF9yeF9yZW9yZGVyX2VudHJ5KHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG4gXHRsaXN0X2RlbF9yY3UoXHUwMDI2dGJsLVx1MDAzZWxpc3QpO1xuIFx0c3Bpbl91bmxvY2tfYmgoXHUwMDI2cHJpdi1cdTAwM2VyeF9yZW9yZGVyX3RibF9sb2NrW3RpZF0pO1xuIFxuLVx0a2ZyZWUodGJsLVx1MDAzZXJ4X3Jlb3JkZXJfcHRyKTtcbiBcdGtmcmVlX3JjdSh0YmwsIHJjdSk7XG4gXG4gXHRhdG9taWNfc2V0KFx1MDAyNnByaXYtXHUwMDNlYWRhcHRlci1cdTAwM2VyeF9iYV90ZWFyZG93bl9wZW5kaW5nLCAwKTtcbkBAIC0yNzMsMTEgJiM0MzsyNzIsMTMgQEAgbnhwd2lmaV8xMW5fY3JlYXRlX3J4X3Jlb3JkZXJfdGJsKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsIHU4ICp0YSxcbiBcdFx0bnhwd2lmaV8xMW5fZGlzcGF0Y2hfcGt0X3VudGlsX3N0YXJ0X3dpbihwcml2LCB0YmwsIHNlcV9udW0pO1xuIFx0XHRyZXR1cm47XG4gXHR9XG4mIzQzO1xuIFx0LyogaWYgIXRibCB0aGVuIGNyZWF0ZSBvbmUgKi9cbi1cdG5ld19ub2RlID0ga3phbGxvY19vYmooKm5ld19ub2RlLCBHRlBfS0VSTkVMKTtcbiYjNDM7XHRuZXdfbm9kZSA9IGt6YWxsb2NfZmxleCgqbmV3X25vZGUsIHJ4X3Jlb3JkZXJfcHRyLCB3aW5fc2l6ZSk7XG4gXHRpZiAoIW5ld19ub2RlKVxuIFx0XHRyZXR1cm47XG4gXG4mIzQzO1x0bmV3X25vZGUtXHUwMDNld2luX3NpemUgPSB3aW5fc2l6ZTtcbiBcdElOSVRfTElTVF9IRUFEKFx1MDAyNm5ld19ub2RlLVx1MDAzZWxpc3QpO1xuIFx0bmV3X25vZGUtXHUwMDNldGlkID0gdGlkO1xuIFx0bWVtY3B5KG5ld19ub2RlLVx1MDAzZXRhLCB0YSwgRVRIX0FMRU4pO1xuQEAgLTMxMSwyNiAmIzQzOzMxMiwxMiBAQCBueHB3aWZpXzExbl9jcmVhdGVfcnhfcmVvcmRlcl90Ymwoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdiwgdTggKnRhLFxuIFx0XHRuZXdfbm9kZS1cdTAwM2VmbGFncyB8PSBSWFJFT1JfSU5JVF9XSU5ET1dfU0hJRlQ7XG4gXHR9XG4gXG4tXHRuZXdfbm9kZS1cdTAwM2V3aW5fc2l6ZSA9IHdpbl9zaXplO1xuLVxuLVx0bmV3X25vZGUtXHUwMDNlcnhfcmVvcmRlcl9wdHIgPSBrY2FsbG9jKHdpbl9zaXplLCBzaXplb2Yodm9pZCAqKSxcbi1cdFx0XHRcdFx0ICAgR0ZQX0tFUk5FTCk7XG4tXHRpZiAoIW5ld19ub2RlLVx1MDAzZXJ4X3Jlb3JkZXJfcHRyKSB7XG4tXHRcdGtmcmVlKG5ld19ub2RlKTtcbi1cdFx0bnhwd2lmaV9kYmcocHJpdi1cdTAwM2VhZGFwdGVyLCBFUlJPUixcbi1cdFx0XHQgICAgXCYjMzQ7JXM6IGZhaWxlZCB0byBhbGxvYyByZW9yZGVyX3B0clxcblwmIzM0OywgX19mdW5jX18pO1xuLVx0XHRyZXR1cm47XG4tXHR9XG4tXG4gXHRuZXdfbm9kZS1cdTAwM2V0aW1lcl9jb250ZXh0LnB0ciA9IG5ld19ub2RlO1xuIFx0bmV3X25vZGUtXHUwMDNldGltZXJfY29udGV4dC5wcml2ID0gcHJpdjtcbiBcdG5ld19ub2RlLVx1MDAzZXRpbWVyX2NvbnRleHQudGltZXJfaXNfc2V0ID0gZmFsc2U7XG4gXG4gXHR0aW1lcl9zZXR1cChcdTAwMjZuZXdfbm9kZS1cdTAwM2V0aW1lcl9jb250ZXh0LnRpbWVyLCBueHB3aWZpX2ZsdXNoX2RhdGEsIDApO1xuIFxuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2Mgd2luX3NpemU7ICYjNDM7JiM0MztpKVxuLVx0XHRuZXdfbm9kZS1cdTAwM2VyeF9yZW9yZGVyX3B0cltpXSA9IE5VTEw7XG4tXG4gXHRzcGluX2xvY2tfYmgoXHUwMDI2cHJpdi1cdTAwM2VyeF9yZW9yZGVyX3RibF9sb2NrW3RpZF0pO1xuIFx0bGlzdF9hZGRfdGFpbF9yY3UoXHUwMDI2bmV3X25vZGUtXHUwMDNlbGlzdCwgXHUwMDI2cHJpdi1cdTAwM2VyeF9yZW9yZGVyX3RibF9wdHJbdGlkXSk7XG4gXHRzcGluX3VubG9ja19iaChcdTAwMjZwcml2LVx1MDAzZXJ4X3Jlb3JkZXJfdGJsX2xvY2tbdGlkXSk7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5oXG5pbmRleCA0YWJmODA3NzFiZTIzZS4uMzQ5ZGZhNGQzZjg1ODEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL21haW4uaFxuQEAgLTY1NiwxMCAmIzQzOzY1NiwxMCBAQCBzdHJ1Y3Qgbnhwd2lmaV9yeF9yZW9yZGVyX3RibCB7XG4gXHRpbnQgaW5pdF93aW47XG4gXHRpbnQgc3RhcnRfd2luO1xuIFx0aW50IHdpbl9zaXplO1xuLVx0dm9pZCAqKnJ4X3Jlb3JkZXJfcHRyO1xuIFx0c3RydWN0IHJlb3JkZXJfdG1yX2NueHQgdGltZXJfY29udGV4dDtcbiBcdHU4IGFtc2R1O1xuIFx0dTggZmxhZ3M7XG4mIzQzO1x0c3RydWN0IHNrX2J1ZmYgKnJ4X3Jlb3JkZXJfcHRyW10gX19jb3VudGVkX2J5KHdpbl9zaXplKTtcbiB9O1xuIFxuIHN0cnVjdCBueHB3aWZpX2Jzc19wcmlvX25vZGUge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDExOjQxPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbnhwd2lmaSB3aXJlbGVzcyBkcml2ZXIsIHdoaWNoIGlzIGFuIFNESU8tYmFzZWQgZHJpdmVyIGZvciBOWFAgSVc2MXggY2hpcHNldHMuIFNpbmNlIHN0YW5kYXJkIFFFTVUvR0NFIGVudmlyb25tZW50cyBkbyBub3QgZW11bGF0ZSB0aGlzIHNwZWNpZmljIFNESU8gaGFyZHdhcmUsIGFuZCBzeXprYWxsZXIgbGFja3MgYSBnZW5lcmljIFNESU8gZnV6emVyLCB0aGUgZHJpdmVyIGNhbm5vdCBiZSBwcm9iZWQgYW5kIGl0cyBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAyNTU2NjBlYTVkMDVhMDg1OWYyYjY0M2ZjNGQ3YWRjZjIzNjZlMWYxCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBKdWwgMjcgMTE6NDE6NTEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW5fcnhyZW9yZGVyLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW5fcnhyZW9yZGVyLmMKaW5kZXggYzU4MTlmODliMDhjZTcuLmIyZmQ2MjQ0OTdhM2FkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW5fcnhyZW9yZGVyLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuX3J4cmVvcmRlci5jCkBAIC0xNzEsNyAmIzQzOzE3MSw2IEBAIG54cHdpZmlfZGVsX3J4X3Jlb3JkZXJfZW50cnkoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdiwKIAlsaXN0X2RlbF9yY3UoJmFtcDt0YmwtJmd0O2xpc3QpOwogCXNwaW5fdW5sb2NrX2JoKCZhbXA7cHJpdi0mZ3Q7cnhfcmVvcmRlcl90YmxfbG9ja1t0aWRdKTsKIAotCWtmcmVlKHRibC0mZ3Q7cnhfcmVvcmRlcl9wdHIpOwogCWtmcmVlX3JjdSh0YmwsIHJjdSk7CiAKIAlhdG9taWNfc2V0KCZhbXA7cHJpdi0mZ3Q7YWRhcHRlci0mZ3Q7cnhfYmFfdGVhcmRvd25fcGVuZGluZywgMCk7CkBAIC0yNzMsMTEgJiM0MzsyNzIsMTMgQEAgbnhwd2lmaV8xMW5fY3JlYXRlX3J4X3Jlb3JkZXJfdGJsKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsIHU4ICp0YSwKIAkJbnhwd2lmaV8xMW5fZGlzcGF0Y2hfcGt0X3VudGlsX3N0YXJ0X3dpbihwcml2LCB0YmwsIHNlcV9udW0pOwogCQlyZXR1cm47CiAJfQomIzQzOwogCS8qIGlmICF0YmwgdGhlbiBjcmVhdGUgb25lICovCi0JbmV3X25vZGUgPSBremFsbG9jX29iaigqbmV3X25vZGUsIEdGUF9LRVJORUwpOwomIzQzOwluZXdfbm9kZSA9IGt6YWxsb2NfZmxleCgqbmV3X25vZGUsIHJ4X3Jlb3JkZXJfcHRyLCB3aW5fc2l6ZSk7CiAJaWYgKCFuZXdfbm9kZSkKIAkJcmV0dXJuOwogCiYjNDM7CW5ld19ub2RlLSZndDt3aW5fc2l6ZSA9IHdpbl9zaXplOwogCUlOSVRfTElTVF9IRUFEKCZhbXA7bmV3X25vZGUtJmd0O2xpc3QpOwogCW5ld19ub2RlLSZndDt0aWQgPSB0aWQ7CiAJbWVtY3B5KG5ld19ub2RlLSZndDt0YSwgdGEsIEVUSF9BTEVOKTsKQEAgLTMxMSwyNiAmIzQzOzMxMiwxMiBAQCBueHB3aWZpXzExbl9jcmVhdGVfcnhfcmVvcmRlcl90Ymwoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdiwgdTggKnRhLAogCQluZXdfbm9kZS0mZ3Q7ZmxhZ3MgfD0gUlhSRU9SX0lOSVRfV0lORE9XX1NISUZUOwogCX0KIAotCW5ld19ub2RlLSZndDt3aW5fc2l6ZSA9IHdpbl9zaXplOwotCi0JbmV3X25vZGUtJmd0O3J4X3Jlb3JkZXJfcHRyID0ga2NhbGxvYyh3aW5fc2l6ZSwgc2l6ZW9mKHZvaWQgKiksCi0JCQkJCSAgIEdGUF9LRVJORUwpOwotCWlmICghbmV3X25vZGUtJmd0O3J4X3Jlb3JkZXJfcHRyKSB7Ci0JCWtmcmVlKG5ld19ub2RlKTsKLQkJbnhwd2lmaV9kYmcocHJpdi0mZ3Q7YWRhcHRlciwgRVJST1IsCi0JCQkgICAgJiMzNDslczogZmFpbGVkIHRvIGFsbG9jIHJlb3JkZXJfcHRyXG4mIzM0OywgX19mdW5jX18pOwotCQlyZXR1cm47Ci0JfQotCiAJbmV3X25vZGUtJmd0O3RpbWVyX2NvbnRleHQucHRyID0gbmV3X25vZGU7CiAJbmV3X25vZGUtJmd0O3RpbWVyX2NvbnRleHQucHJpdiA9IHByaXY7CiAJbmV3X25vZGUtJmd0O3RpbWVyX2NvbnRleHQudGltZXJfaXNfc2V0ID0gZmFsc2U7CiAKIAl0aW1lcl9zZXR1cCgmYW1wO25ld19ub2RlLSZndDt0aW1lcl9jb250ZXh0LnRpbWVyLCBueHB3aWZpX2ZsdXNoX2RhdGEsIDApOwogCi0JZm9yIChpID0gMDsgaSAmbHQ7IHdpbl9zaXplOyAmIzQzOyYjNDM7aSkKLQkJbmV3X25vZGUtJmd0O3J4X3Jlb3JkZXJfcHRyW2ldID0gTlVMTDsKLQogCXNwaW5fbG9ja19iaCgmYW1wO3ByaXYtJmd0O3J4X3Jlb3JkZXJfdGJsX2xvY2tbdGlkXSk7CiAJbGlzdF9hZGRfdGFpbF9yY3UoJmFtcDtuZXdfbm9kZS0mZ3Q7bGlzdCwgJmFtcDtwcml2LSZndDtyeF9yZW9yZGVyX3RibF9wdHJbdGlkXSk7CiAJc3Bpbl91bmxvY2tfYmgoJmFtcDtwcml2LSZndDtyeF9yZW9yZGVyX3RibF9sb2NrW3RpZF0pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5oCmluZGV4IDRhYmY4MDc3MWJlMjNlLi4zNDlkZmE0ZDNmODU4MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL21haW4uaApAQCAtNjU2LDEwICYjNDM7NjU2LDEwIEBAIHN0cnVjdCBueHB3aWZpX3J4X3Jlb3JkZXJfdGJsIHsKIAlpbnQgaW5pdF93aW47CiAJaW50IHN0YXJ0X3dpbjsKIAlpbnQgd2luX3NpemU7Ci0Jdm9pZCAqKnJ4X3Jlb3JkZXJfcHRyOwogCXN0cnVjdCByZW9yZGVyX3Rtcl9jbnh0IHRpbWVyX2NvbnRleHQ7CiAJdTggYW1zZHU7CiAJdTggZmxhZ3M7CiYjNDM7CXN0cnVjdCBza19idWZmICpyeF9yZW9yZGVyX3B0cltdIF9fY291bnRlZF9ieSh3aW5fc2l6ZSk7CiB9OwogCiBzdHJ1Y3Qgbnhwd2lmaV9ic3NfcHJpb19ub2RlIHsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTE6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjk4MQoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDM4NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBXaXJlbGVzcyBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0IHNlZW1zIGxpa2UgdGhleSYjMzk7cmUgbWFraW5nIHNvbWUgZmFpcmx5IHNpZ25pZmljYW50IGNoYW5nZXMgdG8gdGhlIHJlb3JkZXJpbmcgbG9naWMgaW4gdGhlIGBueHB3aWZpYCBkcml2ZXIuIFNwZWNpZmljYWxseSwgdGhleSYjMzk7cmUgYWx0ZXJpbmcgdGhlIGByeF9yZW9yZGVyX3B0cmAgZmllbGQgd2l0aGluIHRoZSBgbnhwd2lmaV9yeF9yZW9yZGVyX3RibGAgc3RydWN0LiBJdCYjMzk7cyBnb2luZyBmcm9tIGEgZG91YmxlIHBvaW50ZXIgdG8gYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIsIHdoaWNoIGlzIGEgcHJldHR5IGNsZWFyIGluZGljYXRpb24gb2Ygb3B0aW1pemluZyBtZW1vcnkgYWxsb2NhdGlvbiwgd2hpY2ggaXMgZ29vZC4gVGhlIGBremFsbG9jYCBjYWxscyBhcmUgYWxzbyBiZWluZyBzdHJlYW1saW5lZCB3aXRoIGBremFsbG9jX2ZsZXhgLCBhbmQgdGhleSYjMzk7cmUgcmVtb3ZpbmcgYSBga2ZyZWVgIGluIHRoZSBgbnhwd2lmaV9kZWxfcnhfcmVvcmRlcl9lbnRyeWAgZnVuY3Rpb24uCgpGdW5jdGlvbmFsbHksIHRoaXMgc2hvdWxkIGJlIGFuIGltcHJvdmVtZW50LCByZWR1Y2luZyBtZW1vcnkgZnJhZ21lbnRhdGlvbiBhbmQgcG90ZW50aWFsbHkgaW1wcm92aW5nIHBlcmZvcm1hbmNlLiBCdXQsIGl0JiMzOTtzIGEgd2lyZWxlc3MgZHJpdmVyIGFuZCBJIGFsd2F5cyBnZXQgYSBsaXR0bGUgY2F1dGlvdXMgd2l0aCB0aG9zZSwgZ2l2ZW4gdGhlIGNvbXBsZXhpdHkuICpueHB3aWZpKiwgdGhhdCByaW5ncyBhIGJlbGwuLi4gaXMgdGhhdCBhIHJlYWwsIGFjdGl2ZSBkcml2ZXI/IEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSBpZiBgbnhwd2lmaWAgaXMgYWN0dWFsbHkgcHJlc2VudCBpbiB0aGUga2VybmVsLCBvciBpZiBtYXliZSB0aGlzIGlzIGEgcmVuYW1lIHRoYXQgSSBzaG91bGQgYmUgdHJhY2tpbmcgYmFjayB0byBhbm90aGVyIGRyaXZlciBsaWtlIGBtd2lmaWV4YC4KCkdpdmVuIHRoZSBwYXRoLCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvYCwgaXQgc2VlbXMgdG8gYmUgbGVnaXQsIGxldCYjMzk7cyBrZWVwIGdvaW5nLgoKTXkgbmV4dCBpbW1lZGlhdGUgdGhvdWdodCBpcyB3aGV0aGVyIHRoaXMgZHJpdmVyIGlzIGV2ZW4gcmVhY2hhYmxlIGluIGEgdHlwaWNhbCBRRU1VIGVudmlyb25tZW50LiBXaXJlbGVzcyBkcml2ZXJzIGFyZSBub3RvcmlvdXMgZm9yIGJlaW5nIHRyaWNreS4gRHJpdmVycyBsaWtlIGBtYWM4MDIxMV9od3NpbWAgYXJlIGdlbmVyYWxseSBhY2Nlc3NpYmxlLCBidXQgaGFyZHdhcmUtc3BlY2lmaWMgb25lcyBsaWtlIHRoaXMsIHdlbGwsIGl0IGRlcGVuZHMuIElzIGl0IFNESU8sIFBDSWUsIG9yIFVTQj8gSWYgaXQmIzM5O3MgVVNCLCB0aGVyZSYjMzk7cyBhIGNoYW5jZSwgZGVwZW5kaW5nIG9uIHRoZSBpbXBsZW1lbnRhdGlvbiBhbmQgd2hldGhlciB3ZSBjYW4gZW11bGF0ZSBpdCB3aXRoIGEgZ2FkZ2V0IG9yIGR1bW15X2hjZC4gSXQgY291bGQgYmUgdmlydHVhbCwgYnV0IHRoYXQgd291bGQgYmUgYSByYXJpdHkgZm9yIGEgZHJpdmVyIG5hbWUgbGlrZSB0aGlzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGJ1c2VzIGFyZSBzdXBwb3J0ZWQgYW5kIHRoZW4gSSYjMzk7bGwgdW5kZXJzdGFuZCBpZiB0aGlzIHBhdGNoIGlzIGV2ZW4gZmVhc2libGUgdG8gdGVzdCwgb3IgaWYgaXQgaXMgZXZlbiByZWxldmFudCB0byBteSBjb25jZXJucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxMTo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtueHB3aWZpJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxNTE1MiBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTItLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzozOiAqIG54cHdpZmkgODAyLjExYWMgaGVscGVyc1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTQtICogQ29weXJpZ2h0IDIwMTEtMjAyNCBOWFBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM9MzY9c3RhdGljIHUxNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjM3Om54cHdpZmlfY29udmVydF9tY3NtYXBfdG9fbWF4cmF0ZShzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTM4LVx0XHRcdFx0ICB1MTYgYmFuZHMsIHUxNiBtY3NfbWFwKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy00Mi1cdHUzMiB1c3Jfdmh0X2NhcF9pbmZvID0gMDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzo0MzpcdHN0cnVjdCBueHB3aWZpX2FkYXB0ZXIgKmFkYXB0ZXIgPSBwcml2LVx1MDAzZWFkYXB0ZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtNDQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jPTc5PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6ODA6bnhwd2lmaV9maWxsX3ZodF9jYXBfaW5mbyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTgxLVx0XHRcdCAgc3RydWN0IGllZWU4MDIxMV92aHRfY2FwICp2aHRfY2FwLCB1MTYgYmFuZHMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtODIte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjgzOlx0c3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlciA9IHByaXYtXHUwMDNlYWRhcHRlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy04NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM9OTM9dm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjk0Om54cHdpZmlfZmlsbF92aHRfY2FwX3RsdihzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTk1LVx0XHRcdCBzdHJ1Y3QgaWVlZTgwMjExX3ZodF9jYXAgKnZodF9jYXAsIHUxNiBiYW5kcylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy05Ni17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6OTc6XHRzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyID0gcHJpdi1cdTAwM2VhZGFwdGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTk4LVx0dTE2IG1jc19tYXBfdXNlciwgbWNzX21hcF9yZXNwLCBtY3NfbWFwX3Jlc3VsdDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTAxLVx0LyogRmlsbCBWSFQgY2FwYWJpbGl0eSBpbmZvLiAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjEwMjpcdG54cHdpZmlfZmlsbF92aHRfY2FwX2luZm8ocHJpdiwgdmh0X2NhcCwgYmFuZHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTEwMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjEyNDpcdHRtcCA9IG54cHdpZmlfY29udmVydF9tY3NtYXBfdG9fbWF4cmF0ZShwcml2LCBiYW5kcywgbWNzX21hcF9yZXN1bHQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTEyNS1cdHZodF9jYXAtXHUwMDNlc3VwcF9tY3MucnhfaGlnaGVzdCA9IGNwdV90b19sZTE2KHRtcCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE0NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNDY6XHR0bXAgPSBueHB3aWZpX2NvbnZlcnRfbWNzbWFwX3RvX21heHJhdGUocHJpdiwgYmFuZHMsIG1jc19tYXBfcmVzdWx0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNDctXHR2aHRfY2FwLVx1MDAzZXN1cHBfbWNzLnR4X2hpZ2hlc3QgPSBjcHVfdG9fbGUxNih0bXApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTUwOmludCBueHB3aWZpX2NtZF9hcHBlbmRfMTFhY190bHYoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNTE6XHRcdFx0XHRzdHJ1Y3Qgbnhwd2lmaV9ic3NkZXNjcmlwdG9yICpic3NfZGVzYyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNTItXHRcdFx0XHR1OCAqKmJ1ZmZlcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNTMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE1NDpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX3ZodGNhcCAqdmh0X2NhcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNTU6XHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19vcGVyX21vZGVfbnRmICpvcGVyX250ZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNTYtXHRzdHJ1Y3QgaWVlZV90eXBlc19vcGVyX21vZGVfbnRmICppZWVlX29wZXJfbnRmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE1NzpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX3ZodF9vcGVyICp2aHRfb3A7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTU4Olx0c3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlciA9IHByaXYtXHUwMDNlYWRhcHRlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNTktXHR1OCBzdXBwX2Nod2Rfc2V0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNjktXHRpZiAoYnNzX2Rlc2MtXHUwMDNlYmNuX3ZodF9jYXApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNzA6XHRcdHZodF9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfdmh0Y2FwICopKmJ1ZmZlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNzEtXHRcdG1lbXNldCh2aHRfY2FwLCAwLCBzaXplb2YoKnZodF9jYXApKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTc0LVx0XHRcdGNwdV90b19sZTE2KHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3ZodF9jYXApKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNzU6XHRcdG1lbWNweSgodTggKil2aHRfY2FwICYjNDM7IHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE3Ni1cdFx0ICAgICAgICh1OCAqKWJzc19kZXNjLVx1MDAzZWJjbl92aHRfY2FwLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTc5Olx0XHRueHB3aWZpX2ZpbGxfdmh0X2NhcF90bHYocHJpdiwgXHUwMDI2dmh0X2NhcC1cdTAwM2V2aHRfY2FwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE4MC1cdFx0XHRcdFx0IGJzc19kZXNjLVx1MDAzZWJzc19iYW5kKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTg3LVx0XHRpZiAocHJpdi1cdTAwM2Vic3NfbW9kZSA9PSBOTDgwMjExX0lGVFlQRV9TVEFUSU9OKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTg4Olx0XHRcdHZodF9vcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc192aHRfb3BlciAqKSpidWZmZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTg5LVx0XHRcdG1lbXNldCh2aHRfb3AsIDAsIHNpemVvZigqdmh0X29wKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE5Mi1cdFx0XHR2aHRfb3AtXHUwMDNlaGVhZGVyLmxlbiAgPSBjcHVfdG9fbGUxNihzaXplb2YoKnZodF9vcCkgLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE5MzpcdFx0XHRcdHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xOTQtXHRcdFx0bWVtY3B5KCh1OCAqKXZodF9vcCAmIzQzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE5NTpcdFx0XHRcdHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE5Ni1cdFx0XHQgICAgICAgKHU4ICopYnNzX2Rlc2MtXHUwMDNlYmNuX3ZodF9vcGVyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0yNDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MjQ1OmludCBueHB3aWZpX2NtZF8xMWFjX2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTI0Ni1cdFx0XHQgc3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKmNtZCwgdTE2IGNtZF9hY3Rpb24sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MjQ3Olx0XHRcdCBzdHJ1Y3Qgbnhwd2lmaV8xMWFjX3ZodF9jZmcgKmNmZylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0yNDgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0yNjQtLyogSW5pdGlhbGl6ZSBCbG9ja0FjayBwYXJhbWV0ZXJzIGZvciAxMWFjLiAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjI2NTp2b2lkIG54cHdpZmlfc2V0XzExYWNfYmFfcGFyYW1zKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMjY2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmgtMi0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjM6ICogbnhwd2lmaTogODAyLjExYWMgKFZIVCkgZGVmaW5pdGlvbnNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuaC00LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oPTE0PWVudW0gdmh0X2NmZ19taXNjX2NvbmZpZyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oLTI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjI1OmludCBueHB3aWZpX2NtZF9hcHBlbmRfMTFhY190bHYoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuaDoyNjpcdFx0XHRcdHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oLTI3LVx0XHRcdFx0dTggKipidWZmZXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjI4OmludCBueHB3aWZpX2NtZF8xMWFjX2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oLTI5LVx0XHRcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuaDozMDpcdFx0XHQgc3RydWN0IG54cHdpZmlfMTFhY192aHRfY2ZnICpjZmcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjMxOnZvaWQgbnhwd2lmaV9maWxsX3ZodF9jYXBfdGx2KHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmgtMzItXHRcdFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV92aHRfY2FwICp2aHRfY2FwLCB1MTYgYmFuZHMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xLS8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyOi8qIG54cHdpZmk6IDgwMi4xMWF4IChIRSkgc3VwcG9ydFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMtICogQ29weXJpZ2h0IChDKSAyMDExLTIwMjQgTlhQXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjExOnZvaWQgbnhwd2lmaV91cGRhdGVfMTFheF9jYXAoc3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMi1cdFx0XHQgICAgIHN0cnVjdCBod19zcGVjX2V4dGVuc2lvbiAqaHdfaGVfY2FwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNDpcdHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTU6XHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKmhlX2NhcCA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTY6XHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKnVzZXJfaGVfY2FwID0gTlVMTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNzpcdHU4IGhlYWRlcl9sZW4gPSBzaXplb2Yoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVhZGVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xOC1cdHUxNiBkYXRhX2xlbiA9IGxlMTZfdG9fY3B1KGh3X2hlX2NhcC1cdTAwM2VoZWFkZXIubGVuKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjItXHRpZiAoKGRhdGFfbGVuICYjNDM7IGhlYWRlcl9sZW4pIFx1MDAzZSBzaXplb2YoYWRhcHRlci1cdTAwM2Vod19oZV9jYXApKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjM6XHRcdG54cHdpZmlfZGJnKGFkYXB0ZXIsIEVSUk9SLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI0LVx0XHRcdCAgICBcJiMzNDtod19oZV9jYXAgdG9vIGJpZywgbGVuPSVkXFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyOTpcdGhlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilod19oZV9jYXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM3LVx0XHRoZV9jYXBfMmcgPSB0cnVlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM4Olx0XHRueHB3aWZpX2RiZ19kdW1wKGFkYXB0ZXIsIENNRF9ELCBcJiMzNDsyLjRHIEhFIGNhcGFiaWxpdHkgZWxlbWVudCBcJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzktXHRcdFx0XHQgYWRhcHRlci1cdTAwM2Vod18yZ19oZV9jYXAsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ1LVx0XHRhZGFwdGVyLVx1MDAzZWZ3X2JhbmRzIHw9IEJBTkRfQUFYO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ2Olx0XHRueHB3aWZpX2RiZ19kdW1wKGFkYXB0ZXIsIENNRF9ELCBcJiMzNDs1RyBIRSBjYXBhYmlsaXR5IGVsZW1lbnQgXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ3LVx0XHRcdFx0IGFkYXB0ZXItXHUwMDNlaHdfaGVfY2FwLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01Ny1cdFx0XHQgICAgICAgc2l6ZW9mKGFkYXB0ZXItXHUwMDNlaHdfMmdfaGVfY2FwKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTg6XHRcdFx0dXNlcl9oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTktXHRcdFx0XHRwcml2LVx1MDAzZXVzZXJfMmdfaGVfY2FwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy02My1cdFx0XHQgICAgICAgc2l6ZW9mKGFkYXB0ZXItXHUwMDNlaHdfaGVfY2FwKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NjQ6XHRcdFx0dXNlcl9oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNjUtXHRcdFx0XHRwcml2LVx1MDAzZXVzZXJfaGVfY2FwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy03OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo3OTpib29sIG54cHdpZmlfMTFheF9iYW5kY29uZmlnX2FsbG93ZWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo4MDpcdFx0XHRcdCAgICAgc3RydWN0IG54cHdpZmlfYnNzZGVzY3JpcHRvciAqYnNzX2Rlc2MpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtODEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy05NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo5NTppbnQgbnhwd2lmaV9maWxsX2hlX2NhcF90bHYoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo5NjpcdFx0XHQgICAgc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICpoZV9jYXAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtOTctXHRcdFx0ICAgIHUxNiBiYW5kcylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy05OC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6OTk6XHRzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyID0gcHJpdi1cdTAwM2VhZGFwdGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjEwMDpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqaHdfaGVfY2FwID0gTlVMTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMDEtXHR1MTYgcnhfbnNzLCB0eF9uc3M7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEwOC1cdFx0bWVtY3B5KGhlX2NhcCwgcHJpdi1cdTAwM2V1c2VyX2hlX2NhcCwgcHJpdi1cdTAwM2V1c2VyX2hlX2NhcF9sZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjEwOTpcdFx0aHdfaGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKWFkYXB0ZXItXHUwMDNlaHdfaGVfY2FwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTExMC1cdFx0cmV0X2xlbiA9IHByaXYtXHUwMDNldXNlcl9oZV9jYXBfbGVuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMTItXHRcdG1lbWNweShoZV9jYXAsIHByaXYtXHUwMDNldXNlcl8yZ19oZV9jYXAsIHByaXYtXHUwMDNldXNlcl8yZ19oZV9jYXBfbGVuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxMTM6XHRcdGh3X2hlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilhZGFwdGVyLVx1MDAzZWh3XzJnX2hlX2NhcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMTQtXHRcdHJldF9sZW4gPSBwcml2LVx1MDAzZXVzZXJfMmdfaGVfY2FwX2xlbjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTI1LVx0Zm9yIChuc3MgPSAxOyBuc3MgXHUwMDNjPSA4OyBuc3MmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTI2Olx0XHRjZmdfdmFsdWUgPSBueHB3aWZpX2dldF9oZV9uc3NfbWNzKGhlX2NhcC1cdTAwM2VyeF9tY3NfODAsIG5zcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTI3Olx0XHRod192YWx1ZSA9IG54cHdpZmlfZ2V0X2hlX25zc19tY3MoaHdfaGVfY2FwLVx1MDAzZXJ4X21jc184MCwgbnNzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMjgtXHRcdGlmIChyeF9uc3MgIT0gMCBcdTAwMjZcdTAwMjYgbnNzIFx1MDAzZSByeF9uc3MpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEzMC1cdFx0aWYgKGh3X3ZhbHVlID09IE5PX05TU19TVVBQT1JUIHx8IGNmZ192YWx1ZSA9PSBOT19OU1NfU1VQUE9SVClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxMzE6XHRcdFx0bnhwd2lmaV9zZXRfaGVfbnNzX21jcyhcdTAwMjZoZV9jYXAtXHUwMDNlcnhfbWNzXzgwLCBuc3MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTMyLVx0XHRcdFx0XHQgICAgICAgTk9fTlNTX1NVUFBPUlQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEzMy1cdFx0ZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjEzNDpcdFx0XHRueHB3aWZpX3NldF9oZV9uc3NfbWNzKFx1MDAyNmhlX2NhcC1cdTAwM2VyeF9tY3NfODAsIG5zcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMzUtXHRcdFx0XHRcdCAgICAgICBtaW4oY2ZnX3ZhbHVlLCBod192YWx1ZSkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMzgtXHRmb3IgKG5zcyA9IDE7IG5zcyBcdTAwM2M9IDg7IG5zcyYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxMzk6XHRcdGNmZ192YWx1ZSA9IG54cHdpZmlfZ2V0X2hlX25zc19tY3MoaGVfY2FwLVx1MDAzZXR4X21jc184MCwgbnNzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNDA6XHRcdGh3X3ZhbHVlID0gbnhwd2lmaV9nZXRfaGVfbnNzX21jcyhod19oZV9jYXAtXHUwMDNldHhfbWNzXzgwLCBuc3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE0MS1cdFx0aWYgKHR4X25zcyAhPSAwIFx1MDAyNlx1MDAyNiBuc3MgXHUwMDNlIHR4X25zcylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTQzLVx0XHRpZiAoaHdfdmFsdWUgPT0gTk9fTlNTX1NVUFBPUlQgfHwgY2ZnX3ZhbHVlID09IE5PX05TU19TVVBQT1JUKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE0NDpcdFx0XHRueHB3aWZpX3NldF9oZV9uc3NfbWNzKFx1MDAyNmhlX2NhcC1cdTAwM2V0eF9tY3NfODAsIG5zcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNDUtXHRcdFx0XHRcdCAgICAgICBOT19OU1NfU1VQUE9SVCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTQ2LVx0XHRlbHNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTQ3Olx0XHRcdG54cHdpZmlfc2V0X2hlX25zc19tY3MoXHUwMDI2aGVfY2FwLVx1MDAzZXR4X21jc184MCwgbnNzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE0OC1cdFx0XHRcdFx0ICAgICAgIG1pbihjZmdfdmFsdWUsIGh3X3ZhbHVlKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE1My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNTQ6aW50IG54cHdpZmlfY21kX2FwcGVuZF8xMWF4X3RsdihzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE1NTpcdFx0XHRcdHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE1Ni1cdFx0XHRcdHU4ICoqYnVmZmVyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE1Ny17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTU4Olx0c3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICpoZV9jYXAgPSBOVUxMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE1OS1cdGludCByZXRfbGVuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTY0Olx0aGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKSpidWZmZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTY1Olx0cmV0X2xlbiA9IG54cHdpZmlfZmlsbF9oZV9jYXBfdGx2KHByaXYsIGhlX2NhcCwgYnNzX2Rlc2MtXHUwMDNlYnNzX2JhbmQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE2Ni1cdCpidWZmZXIgJiM0Mzs9IHJldF9sZW47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNzE6aW50IG54cHdpZmlfY21kXzExYXhfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTcyLVx0XHRcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNzM6XHRcdFx0IHN0cnVjdCBueHB3aWZpXzExYXhfaGVfY2ZnICpheF9jZmcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTc0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTc2LVx0dTE2IGNtZF9zaXplO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE3NzpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlYWRlciAqaGVhZGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE3OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTg2LVx0ICAgIGF4X2NmZy1cdTAwM2VoZV9jYXBfY2ZnLmV4dF9pZCA9PSBXTEFOX0VJRF9FWFRfSEVfQ0FQQUJJTElUWSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE4NzpcdFx0aGVhZGVyID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlYWRlciAqKWhlX2NmZy1cdTAwM2V0bHY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTg4LVx0XHRoZWFkZXItXHUwMDNldHlwZSA9IGNwdV90b19sZTE2KGF4X2NmZy1cdTAwM2VoZV9jYXBfY2ZnLmlkKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjAwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIwMTppbnQgbnhwd2lmaV9yZXRfMTFheF9jZmcoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yMDItXHRcdFx0IHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpyZXNwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIwMzpcdFx0XHQgc3RydWN0IG54cHdpZmlfMTFheF9oZV9jZmcgKmF4X2NmZylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yMDQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIwNS1cdHN0cnVjdCBob3N0X2NtZF8xMWF4X2NmZyAqaGVfY2ZnID0gXHUwMDI2cmVzcC1cdTAwM2VwYXJhbXMuYXhfY2ZnO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIwNjpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlYWRlciAqaGVhZGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIwNy1cdHUxNiBsZWZ0X2xlbiwgdGx2X3R5cGUsIHRsdl9sZW47XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjA4LVx0dTggZXh0X2lkO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIwOTpcdHN0cnVjdCBueHB3aWZpXzExYXhfaGVfY2FwX2NmZyAqaGVfY2FwID0gXHUwMDI2YXhfY2ZnLVx1MDAzZWhlX2NhcF9jZmc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIxMS1cdGxlZnRfbGVuID0gbGUxNl90b19jcHUocmVzcC1cdTAwM2VzaXplKSAtIHNpemVvZigqaGVfY2ZnKSAtIFNfRFNfR0VOO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIxMjpcdGhlYWRlciA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIgKiloZV9jZmctXHUwMDNldGx2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIxMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjQyLVx0XHRsZWZ0X2xlbiAtPSAoc2l6ZW9mKCpoZWFkZXIpICYjNDM7IHRsdl9sZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI0MzpcdFx0aGVhZGVyID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlYWRlciAqKSgodTggKiloZWFkZXIgJiM0MztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yNDQtXHRcdFx0XHRcdFx0XHQgICAgc2l6ZW9mKCpoZWFkZXIpICYjNDM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI1MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNTE6aW50IG54cHdpZmlfY21kXzExYXhfY21kKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjUyLVx0XHRcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNTM6XHRcdFx0IHN0cnVjdCBueHB3aWZpXzExYXhfY21kX2NmZyAqYXhfY21kKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI1NC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjU1Olx0c3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlciA9IHByaXYtXHUwMDNlYWRhcHRlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yNTYtXHRzdHJ1Y3QgaG9zdF9jbWRfMTFheF9jbWQgKmhlX2NtZCA9IFx1MDAyNmNtZC1cdTAwM2VwYXJhbXMuYXhfY21kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI1Ny1cdHUxNiBjbWRfc2l6ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNTg6XHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3NyX2NtZCAqc3JfY21kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI1OTpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2RhdGEgKnRsdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjA6XHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X2JlYW1fY21kICpiZWFtX2NtZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjE6XHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X2h0Y19jbWQgKmh0Y19jbWQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjYyOlx0c3RydWN0IG54cHdpZmlfMTFheF90eG9taV9jbWQgKnR4bW9pX2NtZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjM6XHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3RvbHRpbWVfY21kICp0b2x0aW1lX2NtZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjQ6XHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3R4b3BfY21kICp0eG9wX2NtZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjU6XHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3NldF9ic3JwX2NtZCAqc2V0X2JzcnBfY21kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI2NjpcdHN0cnVjdCBueHB3aWZpXzExYXhfbGxkZV9jbWQgKmxsZGVfY21kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI2Ny1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjc1LVx0Y2FzZSBOWFBXSUZJXzExQVhDTURfU1JfU1VCSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6Mjc2Olx0XHRzcl9jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF9zcl9jbWQgKilcdTAwMjZheF9jbWQtXHUwMDNlcGFyYW07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI3ODpcdFx0dGx2ID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2RhdGEgKiloZV9jbWQtXHUwMDNldmFsO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI3OS1cdFx0dGx2LVx1MDAzZWhlYWRlci50eXBlID0gY3B1X3RvX2xlMTYoc3JfY21kLVx1MDAzZXR5cGUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yODUtXHRjYXNlIE5YUFdJRklfMTFBWENNRF9CRUFNX1NVQklEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI4NjpcdFx0YmVhbV9jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF9iZWFtX2NtZCAqKVx1MDAyNmF4X2NtZC1cdTAwM2VwYXJhbTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yODctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI5MS1cdGNhc2UgTlhQV0lGSV8xMUFYQ01EX0hUQ19TVUJJRDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyOTI6XHRcdGh0Y19jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF9odGNfY21kICopXHUwMDI2YXhfY21kLVx1MDAzZXBhcmFtO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI5My1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjk3LVx0Y2FzZSBOWFBXSUZJXzExQVhDTURfVFhPTUlfU1VCSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6Mjk4Olx0XHR0eG1vaV9jbWQgPVx0KHN0cnVjdCBueHB3aWZpXzExYXhfdHhvbWlfY21kICopXHUwMDI2YXhfY21kLVx1MDAzZXBhcmFtO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI5OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzAzLVx0Y2FzZSBOWFBXSUZJXzExQVhDTURfT0JTU19UT0xUSU1FX1NVQklEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjMwNDpcdFx0dG9sdGltZV9jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF90b2x0aW1lX2NtZCAqKVx1MDAyNmF4X2NtZC1cdTAwM2VwYXJhbTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMDUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMxMC1cdGNhc2UgTlhQV0lGSV8xMUFYQ01EX1RYT1BSVFNfU1VCSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzExOlx0XHR0eG9wX2NtZCA9IChzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3R4b3BfY21kICopXHUwMDI2YXhfY21kLVx1MDAzZXBhcmFtO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMxMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzE3LVx0Y2FzZSBOWFBXSUZJXzExQVhDTURfU0VUX0JTUlBfU1VCSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzE4Olx0XHRzZXRfYnNycF9jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF9zZXRfYnNycF9jbWQgKilcdTAwMjZheF9jbWQtXHUwMDNlcGFyYW07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzE5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMjMtXHRjYXNlIE5YUFdJRklfMTFBWENNRF9MTERFX1NVQklEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjMyNDpcdFx0bGxkZV9jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF9sbGRlX2NtZCAqKVx1MDAyNmF4X2NtZC1cdTAwM2VwYXJhbTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMjUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMyOS1cdGRlZmF1bHQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzMwOlx0XHRueHB3aWZpX2RiZyhhZGFwdGVyLCBFUlJPUixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMzEtXHRcdFx0ICAgIFwmIzM0OyVzOiBVbmtub3duIHN1YiBjb21tYW5kOiAlZFxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzQwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM0MTppbnQgbnhwd2lmaV9yZXRfMTFheF9jbWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zNDItXHRcdFx0IHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpyZXNwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM0MzpcdFx0XHQgc3RydWN0IG54cHdpZmlfMTFheF9jbWRfY2ZnICpheF9jbWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzQ0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzozNDU6XHRzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyID0gcHJpdi1cdTAwM2VhZGFwdGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM0Ni1cdHN0cnVjdCBob3N0X2NtZF8xMWF4X2NtZCAqaGVfY21kID0gXHUwMDI2cmVzcC1cdTAwM2VwYXJhbXMuYXhfY21kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM0NzpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2RhdGEgKnRsdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zNDgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM1Mi1cdGNhc2UgTlhQV0lGSV8xMUFYQ01EX1NSX1NVQklEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM1MzpcdFx0dGx2ID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2RhdGEgKiloZV9jbWQtXHUwMDNldmFsO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM1NC1cdFx0bWVtY3B5KGF4X2NtZC1cdTAwM2VwYXJhbS5zcl9jZmcucGFyYW0ub2Jzc19wZF9vZmZzZXQub2Zmc2V0LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zODMtXHRkZWZhdWx0OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM4NDpcdFx0bnhwd2lmaV9kYmcoYWRhcHRlciwgRVJST1IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzg1LVx0XHRcdCAgICBcJiMzNDslczogVW5rbm93biBzdWIgY29tbWFuZDogJWRcXG5cJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM5Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzozOTM6c3RhdGljIHU4IG54cHdpZmlfaXNfYXBfMTFheF90d3Rfc3VwcG9ydGVkKHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM5NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQwOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MTA6Ym9vbCBueHB3aWZpX2lzXzExYXhfdHd0X3N1cHBvcnRlZChzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQxMTpcdFx0XHRcdCAgIHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQxMi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDEzOlx0c3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICp1c2VyX2hlX2NhcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MTQ6XHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKmh3X2hlX2NhcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDE2Olx0aWYgKGJzc19kZXNjIFx1MDAyNlx1MDAyNiAoIW54cHdpZmlfaXNfYXBfMTFheF90d3Rfc3VwcG9ydGVkKGJzc19kZXNjKSkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MTc6XHRcdG54cHdpZmlfZGJnKHByaXYtXHUwMDNlYWRhcHRlciwgTVNHLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQxOC1cdFx0XHQgICAgXCYjMzQ7QVAgZG9uJiMzOTt0IHN1cHBvcnQgdHd0IGZlYXR1cmVcXG5cJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MjItXHRpZiAoYnNzX2Rlc2MtXHUwMDNlYnNzX2JhbmQgXHUwMDI2IEJBTkRfQSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQyMzpcdFx0aHdfaGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQyNC1cdFx0XHRwcml2LVx1MDAzZWFkYXB0ZXItXHUwMDNlaHdfaGVfY2FwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQyNTpcdFx0dXNlcl9oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDI2LVx0XHRcdHByaXYtXHUwMDNldXNlcl9oZV9jYXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDI3LVx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0Mjg6XHRcdGh3X2hlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MjktXHRcdFx0cHJpdi1cdTAwM2VhZGFwdGVyLVx1MDAzZWh3XzJnX2hlX2NhcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MzA6XHRcdHVzZXJfaGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQzMS1cdFx0XHRwcml2LVx1MDAzZXVzZXJfMmdfaGVfY2FwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MzQtXHRpZiAoIShod19oZV9jYXAtXHUwMDNlaGVfbWFjX2NhcFswXSBcdTAwMjYgSEVfTUFDX0NBUF9UV1RfUkVRX1NVUFBPUlQpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDM1Olx0XHRueHB3aWZpX2RiZyhwcml2LVx1MDAzZWFkYXB0ZXIsIE1TRyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MzYtXHRcdFx0ICAgIFwmIzM0O0ZXIGRvbiYjMzk7dCBzdXBwb3J0IFRXVFxcblwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ0MC1cdGlmICghKHVzZXJfaGVfY2FwLVx1MDAzZWhlX21hY19jYXBbMF0gXHUwMDI2IEhFX01BQ19DQVBfVFdUX1JFUV9TVVBQT1JUKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ0MTpcdFx0bnhwd2lmaV9kYmcocHJpdi1cdTAwM2VhZGFwdGVyLCBNU0csXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDQyLVx0XHRcdCAgICBcJiMzNDtVU0VSIEhFX01BQ19DQVAgZG9uJiMzOTt0IHN1cHBvcnQgVFdUXFxuXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDQ4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ0OTp1OCBueHB3aWZpX2lzX3N0YV8xMWF4X3R3dF9yZXFfc3VwcG9ydGVkKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDUwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NTE6XHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKnVzZXJfaGVfY2FwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ1Mi1cdHU4IHJldCA9IDA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ1Ni1cdFx0aWYgKHByaXYtXHUwMDNlY29uZmlnX2JhbmRzIFx1MDAyNiBCQU5EX0FBWClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NTc6XHRcdFx0dXNlcl9oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopcHJpdi1cdTAwM2V1c2VyX2hlX2NhcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NTgtXHRcdGVsc2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NTk6XHRcdFx0dXNlcl9oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopcHJpdi1cdTAwM2V1c2VyXzJnX2hlX2NhcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NjAtXHRcdHJldCA9IHVzZXJfaGVfY2FwLVx1MDAzZWhlX21hY19jYXBbMF0gXHUwMDI2IEhFX01BQ19DQVBfVFdUX1JFUV9TVVBQT1JUO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDY2OmludCBueHB3aWZpX2NtZF90d3RfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDY3LVx0XHRcdHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpjbWQsIHUxNiBjbWRfYWN0aW9uLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ2ODpcdFx0XHRzdHJ1Y3Qgbnhwd2lmaV90d3RfY2ZnICp0d3RfY2ZnKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ2OS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDcwOlx0c3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlciA9IHByaXYtXHUwMDNlYWRhcHRlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NzEtXHRzdHJ1Y3QgaG9zdF9jbWRfdHd0X2NmZyAqdHd0X2NmZ19jbWQgPSBcdTAwMjZjbWQtXHUwMDNlcGFyYW1zLnR3dF9jZmc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDcyOlx0c3RydWN0IG54cHdpZmlfdHd0X3NldHVwICp0d3Rfc2V0dXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDczOlx0c3RydWN0IG54cHdpZmlfdHd0X3RlYXJkb3duICp0d3RfdGVhcmRvd247XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDc0Olx0c3RydWN0IG54cHdpZmlfdHd0X3JlcG9ydCAqdHd0X3JlcG9ydDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NzU6XHRzdHJ1Y3Qgbnhwd2lmaV90d3RfaW5mb3JtYXRpb24gKnR3dF9pbmZvcm1hdGlvbjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NzY6XHRzdHJ1Y3Qgbnhwd2lmaV9idHd0X2FwX2NvbmZpZyAqYnR3dF9hcF9jb25maWc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDc3LVx0dTggaTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDg3LVx0Y2FzZSBOWFBXSUZJXzExQVhfVFdUX1NFVFVQX1NVQklEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ4ODpcdFx0dHd0X3NldHVwID0gKHN0cnVjdCBueHB3aWZpX3R3dF9zZXR1cCAqKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ4OS1cdFx0XHR0d3RfY2ZnX2NtZC1cdTAwM2V2YWw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ5MTpcdFx0bWVtc2V0KHR3dF9zZXR1cCwgMHgwMCwgc2l6ZW9mKHN0cnVjdCBueHB3aWZpX3R3dF9zZXR1cCkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ5Mi1cdFx0dHd0X3NldHVwLVx1MDAzZWltcGxpY2l0ID0gdHd0X2NmZy1cdTAwM2VwYXJhbS50d3Rfc2V0dXAuaW1wbGljaXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUwNC1cdFx0dHd0X3NldHVwLVx1MDAzZWJjbl9taXNzX3RocmVzaG9sZCA9IHR3dF9jZmctXHUwMDNlcGFyYW0udHd0X3NldHVwLmJjbl9taXNzX3RocmVzaG9sZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1MDU6XHRcdGNtZF9zaXplICYjNDM7PSBzaXplb2Yoc3RydWN0IG54cHdpZmlfdHd0X3NldHVwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MDYtXHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUwNy1cdGNhc2UgTlhQV0lGSV8xMUFYX1RXVF9URUFSRE9XTl9TVUJJRDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1MDg6XHRcdHR3dF90ZWFyZG93biA9IChzdHJ1Y3Qgbnhwd2lmaV90d3RfdGVhcmRvd24gKilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MDktXHRcdFx0dHd0X2NmZ19jbWQtXHUwMDNldmFsO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUxMC1cdFx0bWVtc2V0KHR3dF90ZWFyZG93biwgMHgwMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1MTE6XHRcdCAgICAgICBzaXplb2Yoc3RydWN0IG54cHdpZmlfdHd0X3RlYXJkb3duKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTEyLVx0XHR0d3RfdGVhcmRvd24tXHUwMDNlZmxvd19pZGVudGlmaWVyID1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTE3LVx0XHRcdHR3dF9jZmctXHUwMDNlcGFyYW0udHd0X3RlYXJkb3duLnRlYXJkb3duX2FsbF90d3Q7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTE4Olx0XHRjbWRfc2l6ZSAmIzQzOz0gc2l6ZW9mKHN0cnVjdCBueHB3aWZpX3R3dF90ZWFyZG93bik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTE5LVx0XHRicmVhaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MjAtXHRjYXNlIE5YUFdJRklfMTFBWF9UV1RfUkVQT1JUX1NVQklEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjUyMTpcdFx0dHd0X3JlcG9ydCA9IChzdHJ1Y3Qgbnhwd2lmaV90d3RfcmVwb3J0ICopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTIyLVx0XHRcdHR3dF9jZmdfY21kLVx1MDAzZXZhbDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1MjM6XHRcdG1lbXNldCh0d3RfcmVwb3J0LCAweDAwLCBzaXplb2Yoc3RydWN0IG54cHdpZmlfdHd0X3JlcG9ydCkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUyNC1cdFx0dHd0X3JlcG9ydC1cdTAwM2V0eXBlID0gdHd0X2NmZy1cdTAwM2VwYXJhbS50d3RfcmVwb3J0LnR5cGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTI1Olx0XHRjbWRfc2l6ZSAmIzQzOz0gc2l6ZW9mKHN0cnVjdCBueHB3aWZpX3R3dF9yZXBvcnQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUyNi1cdFx0YnJlYWs7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTI3LVx0Y2FzZSBOWFBXSUZJXzExQVhfVFdUX0lORk9STUFUSU9OX1NVQklEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjUyODpcdFx0dHd0X2luZm9ybWF0aW9uID0gKHN0cnVjdCBueHB3aWZpX3R3dF9pbmZvcm1hdGlvbiAqKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUyOS1cdFx0XHR0d3RfY2ZnX2NtZC1cdTAwM2V2YWw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTMwLVx0XHRtZW1zZXQodHd0X2luZm9ybWF0aW9uLCAweDAwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjUzMTpcdFx0ICAgICAgIHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3RfaW5mb3JtYXRpb24pKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MzItXHRcdHR3dF9pbmZvcm1hdGlvbi1cdTAwM2VmbG93X2lkZW50aWZpZXIgPVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MzUtXHRcdFx0dHd0X2NmZy1cdTAwM2VwYXJhbS50d3RfaW5mb3JtYXRpb24uc3VzcGVuZF9kdXJhdGlvbjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1MzY6XHRcdGNtZF9zaXplICYjNDM7PSBzaXplb2Yoc3RydWN0IG54cHdpZmlfdHd0X2luZm9ybWF0aW9uKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MzctXHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUzOC1cdGNhc2UgTlhQV0lGSV8xMUFYX0JUV1RfQVBfQ09ORklHX1NVQklEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjUzOTpcdFx0YnR3dF9hcF9jb25maWcgPSAoc3RydWN0IG54cHdpZmlfYnR3dF9hcF9jb25maWcgKilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01NDAtXHRcdFx0XHQgdHd0X2NmZ19jbWQtXHUwMDNldmFsO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU0MS1cdFx0bWVtc2V0KGJ0d3RfYXBfY29uZmlnLCAweDAwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjU0MjpcdFx0ICAgICAgIHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV9idHd0X2FwX2NvbmZpZykpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU0My1cdFx0YnR3dF9hcF9jb25maWctXHUwMDNlYXBfYmNhc3RfYmV0X3N0YV93YWl0ID1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTYxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjU2MjpcdFx0Y21kX3NpemUgJiM0Mzs9IHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV9idHd0X2FwX2NvbmZpZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTYzLVx0XHRicmVhaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01NjQtXHRkZWZhdWx0OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjU2NTpcdFx0bnhwd2lmaV9kYmcoYWRhcHRlciwgRVJST1IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTY2LVx0XHRcdCAgICBcJiMzNDtVbmtub3duIHN1YiBpZDogJWRcXG5cJiMzNDssIHR3dF9jZmctXHUwMDNlc3ViX2lkKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTc0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjU3NTppbnQgbnhwd2lmaV9yZXRfdHd0X2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU3Ni1cdFx0XHRzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqcmVzcCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1Nzc6XHRcdFx0c3RydWN0IG54cHdpZmlfdHd0X2NmZyAqdHd0X2NmZylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01Nzgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01ODYtXHQgICAgdHd0X2NmZy1cdTAwM2VzdWJfaWQgPT0gTlhQV0lGSV8xMUFYX1RXVF9SRVBPUlRfU1VCSUQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1ODc6XHRcdHN0cnVjdCBueHB3aWZpX3R3dF9yZXBvcnQgKnR3dF9yZXBvcnQgPVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjU4ODpcdFx0XHQoc3RydWN0IG54cHdpZmlfdHd0X3JlcG9ydCAqKXR3dF9jZmdfY21kLVx1MDAzZXZhbDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01ODktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTkwOlx0XHRtZW1jcHkoXHUwMDI2dHd0X2NmZy1cdTAwM2VwYXJhbS50d3RfcmVwb3J0LCB0d3RfcmVwb3J0LCBzaXplb2Yoc3RydWN0IG54cHdpZmlfdHd0X3JlcG9ydCkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU5MS1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMi0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjM6ICogbnhwd2lmaTogODAyLjExYXggc3VwcG9ydFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTQtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg9MTc9c3RhdGljIGlubGluZSB1MTZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDoxODpueHB3aWZpX2dldF9oZV9uc3NfbWNzKF9fbGUxNiBtY3NfbWFwX3NldCwgaW50IG5zcykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTE5LVx0cmV0dXJuICgobGUxNl90b19jcHUobWNzX21hcF9zZXQpIFx1MDAzZVx1MDAzZSAoMiAqIChuc3MgLSAxKSkpIFx1MDAyNiAweDMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaD0yMj1zdGF0aWMgaW5saW5lIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDoyMzpueHB3aWZpX3NldF9oZV9uc3NfbWNzKF9fbGUxNiAqbWNzX21hcF9zZXQsIGludCBuc3MsIGludCB2YWx1ZSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTI0LVx0dTE2IHRlbXA7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjMxOmJvb2wgbnhwd2lmaV9pc18xMWF4X3R3dF9zdXBwb3J0ZWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDozMjpcdFx0XHRcdCAgIHN0cnVjdCAgbnhwd2lmaV9ic3NkZXNjcmlwdG9yICpic3NfZGVzYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6MzQ6dm9pZCBueHB3aWZpX3VwZGF0ZV8xMWF4X2NhcChzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTM1LVx0XHRcdCAgICAgc3RydWN0IGh3X3NwZWNfZXh0ZW5zaW9uICpod19oZV9jYXApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjM3OmJvb2wgbnhwd2lmaV8xMWF4X2JhbmRjb25maWdfYWxsb3dlZChzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjM4Olx0XHRcdFx0ICAgICBzdHJ1Y3Qgbnhwd2lmaV9ic3NkZXNjcmlwdG9yICpic3NfZGVzYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NDA6aW50IG54cHdpZmlfY21kX2FwcGVuZF8xMWF4X3RsdihzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjQxOlx0XHRcdFx0c3RydWN0IG54cHdpZmlfYnNzZGVzY3JpcHRvciAqYnNzX2Rlc2MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNDItXHRcdFx0XHR1OCAqKmJ1ZmZlcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NDQ6aW50IG54cHdpZmlfZmlsbF9oZV9jYXBfdGx2KHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NDU6XHRcdFx0ICAgIHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqaGVfY2FwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTQ2LVx0XHRcdCAgICB1MTYgYmFuZHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjQ3OmludCBueHB3aWZpX2NtZF8xMWF4X2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTQ4LVx0XHRcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo0OTpcdFx0XHQgc3RydWN0IG54cHdpZmlfMTFheF9oZV9jZmcgKmF4X2NmZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NTE6aW50IG54cHdpZmlfcmV0XzExYXhfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNTItXHRcdFx0IHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpyZXNwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjUzOlx0XHRcdCBzdHJ1Y3Qgbnhwd2lmaV8xMWF4X2hlX2NmZyAqYXhfY2ZnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC01NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo1NTppbnQgbnhwd2lmaV9jbWRfMTFheF9jbWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC01Ni1cdFx0XHQgc3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKmNtZCwgdTE2IGNtZF9hY3Rpb24sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NTc6XHRcdFx0IHN0cnVjdCBueHB3aWZpXzExYXhfY21kX2NmZyAqYXhfY21kKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC01OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo1OTppbnQgbnhwd2lmaV9yZXRfMTFheF9jbWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC02MC1cdFx0XHQgc3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKnJlc3AsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NjE6XHRcdFx0IHN0cnVjdCBueHB3aWZpXzExYXhfY21kX2NmZyAqYXhfY21kKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC02Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo2MzppbnQgbnhwd2lmaV9jbWRfdHd0X2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTY0LVx0XHRcdHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpjbWQsIHUxNiBjbWRfYWN0aW9uLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjY1Olx0XHRcdHN0cnVjdCBueHB3aWZpX3R3dF9jZmcgKnR3dF9jZmcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTY2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjY3OmludCBueHB3aWZpX3JldF90d3RfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNjgtXHRcdFx0c3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKnJlc3AsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6Njk6XHRcdFx0c3RydWN0IG54cHdpZmlfdHd0X2NmZyAqdHd0X2NmZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NzE6dTggbnhwd2lmaV9pc19zdGFfMTFheF90d3RfcmVxX3N1cHBvcnRlZChzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC03Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYy0yLS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYzozOiAqIG54cHdpZmk6IDgwMi4xMWggaGVscGVyc1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFoLmMtNC0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jLTEyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFoLmM6MTM6dm9pZCBueHB3aWZpX2luaXRfMTFoX3BhcmFtcyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFoLmMtMTQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jLTE4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFoLmM6MTk6aW50IG54cHdpZmlfaXNfMTFoX2FjdGl2ZShzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFoLmMtMjAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jPTI1PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYzoyNjpueHB3aWZpXzExaF9wcm9jZXNzX2luZnJhX2pvaW4oc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdiwgdTggKipidWZmZXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYzoyNzpcdFx0XHQgICAgICAgc3RydWN0IG54cHdpZmlfYnNzZGVzY3JpcHRvciAqYnNzX2Rlc2MpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYy0yOC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYzoyOTpcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlYWRlciAqaWVfaGVhZGVyO1xuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTE6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAxNjYKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiA0NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSAmIzM0O254cHdpZmkmIzM0OyBEcml2ZXIqKgoKQWxyaWdodCwgc28gYG54cHdpZmlgLi4uIHRoYXQgcmluZ3MgYSBiZWxsLiBOb3cgdGhlIHF1ZXN0aW9uIGlzLCBpcyB0aGlzIGEgZ2VudWluZWx5IGluZGVwZW5kZW50IGRyaXZlciwgb3IgaXMgaXQgYSBzeW1ib2xpYyBsaW5rIG9yIHNvbWUga2luZCBvZiByZWJyYW5kaW5nIG9mIGFuIGV4aXN0aW5nIG9uZT8gTXkgZmlyc3QgaW5zdGluY3QgaXMgdG8gZGlnIGludG8gdGhlIHNvdXJjZSBjb2RlIHRvIGdldCBhIGhhbmRsZSBvbiBpdC4gTGV0JiMzOTtzIHNlZS4uLiBhIHF1aWNrIGNoZWNrIG9mIHRoZSBzdGFuZGFyZCBkcml2ZXIgbGF5b3V0IGlzIGluIG9yZGVyLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byBnZXQgaW50byB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlciAtIHRoZSBjb25maWd1cmF0aW9uIGFuZCBidWlsZCBmaWxlcy4KClRoZSBvYnZpb3VzIHBsYWNlcyB0byBzdGFydCBhcmUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWdgIGFuZCBgTWFrZWZpbGVgLiBUaGUgS2NvbmZpZyBmaWxlIHNob3VsZCBkZWZpbmUgdGhlIHJlbGV2YW50IGtlcm5lbCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIElmIGl0JiMzOTtzIGEgY29tcGxldGVseSBuZXcsIHN0YW5kLWFsb25lIGRyaXZlciwgSSYjMzk7ZCBleHBlY3QgdG8gc2VlIGl0cyBvd24gc2V0IG9mIG9wdGlvbnMuIElmIGl0JiMzOTtzIGEgcmVuYW1lIG9yIGhlYXZpbHkgbW9kaWZpZWQgdmFyaWFudCwgdGhlIEtjb25maWcgbWlnaHQgaW5jbHVkZSBhbmQgaW5oZXJpdCBjb25maWd1cmF0aW9ucyBmcm9tIGFub3RoZXIgZHJpdmVyLCBvciBtYWtlIGV4dGVuc2l2ZSB1c2Ugb2YgJiMzOTtzZWxlY3QmIzM5OyBzdGF0ZW1lbnRzLgoKVGhlIE1ha2VmaWxlLCBvZiBjb3Vyc2UsIHdpbGwgdGVsbCB0aGUgYnVpbGQgc3lzdGVtIGhvdyB0byBjb21waWxlIGFuZCBsaW5rIHRoZSBjb2RlLiBBIGxvb2sgYXQgdGhlIHNvdXJjZSBmaWxlcyBpbmNsdWRlZCwgdGhlIGRlcGVuZGVuY2llcywgYW5kIHRoZSBsaW5raW5nIHRhcmdldHMgd2lsbCBxdWlja2x5IHJldmVhbCBob3cgdGhpcyBkcml2ZXIgaXMgYXJjaGl0ZWN0ZWQgYW5kIGlmIGl0JiMzOTtzIGJhc2VkIG9uIHNvbWUgb3RoZXIgZXhpc3RpbmcgY29kZSBiYXNlIG9yIGlzIGEgY29tcGxldGVseSBzdGFuZC1hbG9uZSBpbXBsZW1lbnRhdGlvbi4gVGhpcyBpcyB0aGUgZmFzdGVzdCB3YXkgdG8gdW5kZXJzdGFuZCB0aGUgcmVsYXRpb25zaGlwcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxMTo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTlhQV0lGSSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnOjI6Y29uZmlnIE5YUFdJRklcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O05YUCBXaUZpIERyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWctMTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnOjEyOmNvbmZpZyBOWFBXSUZJX1NESU9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWctMTMtXHR0cmlzdGF0ZSBcJiMzNDtOWFAgV2lGaSBEcml2ZXIgZm9yIElXNjF4XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTE6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA3MjgKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAxOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipBbmFseXppbmcgdGhlIE5YUCBXaUZpIERyaXZlcjogQnVzIEludGVyZmFjZSBTdXBwb3J0KioKCkFscmlnaHQsIHNvIEkmIzM5O3ZlIGdvdCB0aGlzIE5YUCBXaUZpIGRyaXZlciBpbiBmcm9udCBvZiBtZS4gSW1tZWRpYXRlbHksIG15IGZvY3VzIHNoaWZ0cyB0byB0aGUgaGFyZHdhcmUgaW50ZXJmYWNlLiBHaXZlbiBteSBleHBlcmllbmNlLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgZnVuZGFtZW50YWwgYXJjaGl0ZWN0dXJlLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHRvIGRpdmUgcmlnaHQgaW50byB0aGUgY29kZSB0byBkZXRlcm1pbmUgdGhlIHN1cHBvcnRlZCBidXMgdHlwZXMuIElzIGl0IFNESU8/IFBDSWU/IE1heWJlIGV2ZW4gc29tZSBwcm9wcmlldGFyeSBpbnRlcmZhY2U/IFVuZGVyc3RhbmRpbmcgdGhlIGJ1cyBjb25uZWN0aW9uIGlzIGFic29sdXRlbHkgY3JpdGljYWwgdG8gZ3Jhc3BpbmcgdGhlIGRyaXZlciYjMzk7cyB1bmRlcmx5aW5nIGNvbW11bmljYXRpb24gc3RyYXRlZ3ksIGl0cyBwZXJmb3JtYW5jZSBsaW1pdGF0aW9ucywgYW5kIHBvdGVudGlhbCBpbnRlZ3JhdGlvbiBjaGFsbGVuZ2VzIHdpdGggc3BlY2lmaWMgaGFyZHdhcmUgcGxhdGZvcm1zLiBLbm93aW5nIHRoZSBzdXBwb3J0ZWQgYnVzKHNlcykgaXMgdGhlIGNyaXRpY2FsIGZpcnN0IHN0ZXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTE6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE5YUFdJRkkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWc6Mjpjb25maWcgTlhQV0lGSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7TlhQIFdpRmkgRHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZy0xMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWc6MTI6Y29uZmlnIE5YUFdJRklfU0RJT1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZy0xMy1cdHRyaXN0YXRlIFwmIzM0O05YUCBXaUZpIERyaXZlciBmb3IgSVc2MXhcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxMTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTExMAoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcy4gSGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBhcyBpZiB0aGV5JiMzOTtyZSBteSBvd246CgoqKkFuYWx5emluZyB0aGUgS2NvbmZpZyBGaWxlKioKCkFscmlnaHQsIHRpbWUgdG8gZ2V0IHRvIHdvcmsuIE15IGluaXRpYWwgdGhvdWdodCBpcywgJiMzNDtMZXQmIzM5O3MgcmVhZCB0aGUgS2NvbmZpZyBmaWxlLiYjMzQ7IFRoYXQmIzM5O3MgdGhlIGNvcmUgb2YgaXQsIHJlYWxseS4gSXQmIzM5O3MgdGhlIHN0YXJ0aW5nIHBvaW50LiBJIG5lZWQgdG8gZ2V0IGEgY2xlYXIgcGljdHVyZSBvZiB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zLCBkZXBlbmRlbmNpZXMsIGFuZCB0aGVpciBvdmVyYWxsIHN0cnVjdHVyZS4gVGhpcyBmaWxlIGlzIHRoZSBibHVlcHJpbnQsIHRoZSBoZWFydCBvZiB0aGUgY29uZmlndXJhdGlvbiBzeXN0ZW0sIHNvIHVuZGVyc3RhbmRpbmcgaXQgdGhvcm91Z2hseSBpcyBwYXJhbW91bnQgYmVmb3JlIEkgcHJvY2VlZCBhbnkgZnVydGhlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTE6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4gICAyOlx0Y29uZmlnIE5YUFdJRklcbiAgIDM6XHRcdHRyaXN0YXRlIFwmIzM0O05YUCBXaUZpIERyaXZlclwmIzM0O1xuICAgNDpcdFx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxuICAgNTpcdFx0aGVscFxuICAgNjpcdFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3Igd2lyZWxlc3MgYWRhcHRlcnMgYmFzZWQgb24gTlhQXG4gICA3Olx0XHQgIDgwMi4xMW4vYWMgY2hpcHNldHMuXG4gICA4Olx0XG4gICA5Olx0XHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgaXQgYXMgYSBtb2R1bGUsIGl0IHdpbGwgYmUgY2FsbGVkXG4gIDEwOlx0XHQgIG54cHdpZmkuXG4gIDExOlx0XG4gIDEyOlx0Y29uZmlnIE5YUFdJRklfU0RJT1xuICAxMzpcdFx0dHJpc3RhdGUgXCYjMzQ7TlhQIFdpRmkgRHJpdmVyIGZvciBJVzYxeFwmIzM0O1xuICAxNDpcdFx0ZGVwZW5kcyBvbiBOWFBXSUZJIFx1MDAyNlx1MDAyNiBNTUNcbiAgMTU6XHRcdHNlbGVjdCBGV19MT0FERVJcbiAgMTY6XHRcdHNlbGVjdCBXQU5UX0RFVl9DT1JFRFVNUFxuICAxNzpcdFx0aGVscFxuICAxODpcdFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3Igd2lyZWxlc3MgYWRhcHRlcnMgYmFzZWQgb24gTlhQXG4gIDE5Olx0XHQgIElXNjF4IGludGVyZmFjZS5cbiAgMjA6XHRcbiAgMjE6XHRcdCAgSWYgeW91IGNob29zZSB0byBidWlsZCBpdCBhcyBhIG1vZHVsZSwgaXQgd2lsbCBiZSBjYWxsZWRcbiAgMjI6XHRcdCAgbnhwd2lmaV9zZGlvLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxMTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTU4MAoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDE2NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBOWFAgV2lGaSBEcml2ZXIgYW5kIFN5emthbGxlciBDb21wYXRpYmlsaXR5KioKCk9rYXksIHNvIHRoaXMgZHJpdmVyIHNwZWNpZmljYWxseSB0YXJnZXRzIFNESU8gKGBOWFBXSUZJX1NESU9gKSwgd2hpY2ggaW1tZWRpYXRlbHkgcmFpc2VzIGEgZmxhZy4gTXkgZmlyc3QgdGhvdWdodCBpczogY2FuIEkgZXZlbiByZWFjaCB0aGlzIHRoaW5nIGluIGEgUUVNVSBlbnZpcm9ubWVudD8gU0RJTyBkZXZpY2VzIGFyZSBub3RvcmlvdXNseSBkaWZmaWN1bHQgdG8gZW11bGF0ZSB3ZWxsLiBUaGV5IHVzdWFsbHkgcmVxdWlyZSBhIHNwZWNpZmljIFNESENJIGNvbnRyb2xsZXIgbW9kZWwsIGFuZCB0aGVuIGFuIFNESU8gZGV2aWNlIG1vZGVsIGl0c2VsZi4gSSYjMzk7ZCBuZWVkIHRvIGNvbmZpcm0gdGhlIGF2YWlsYWJpbGl0eSBvZiB0aGVzZSBzcGVjaWZpYyBtb2RlbHMgaW4gdGhlIFFFTVUgY29uZmlndXJhdGlvbiBJJiMzOTttIHdvcmtpbmcgd2l0aC4KClRoZSBiaWdnZXIgaXNzdWUsIGFuZCB0aGlzIGlzIHdoZXJlIG15IGV4cGVyaWVuY2Uga2lja3MgaW4sIGlzIHRoYXQgc3l6a2FsbGVyIGRvZXNuJiMzOTt0IHR5cGljYWxseSBoYW5kbGUgU0RJTyBkZXZpY2VzIGRpcmVjdGx5IGluIHRoZSBzYW1lIHdheSBpdCBoYW5kbGVzIFVTQiBvciBQQ0kuIFRoZXJlIGlzbiYjMzk7dCBhIGdlbmVyaWMgU0RJTyBmdXp6ZXIgYmFrZWQgaW50byBzeXprYWxsZXIgbGlrZSB0aGVyZSBhcmUgZm9yIHRob3NlIG90aGVyIGludGVyZmFjZXMuIEkmIzM5O20gdXNlZCB0byBVU0IgKGR1bW15X2hjZCksIFBDSSAodmlhIFFFTVUpLCBhbmQgdmhjaSAoQmx1ZXRvb3RoKSBhcyB0aGUgYnJlYWQgYW5kIGJ1dHRlciB0YXJnZXRzLiBObyBnZW5lcmljIFNESU8gZnV6emVyIGV4aXN0cyB3aXRoaW4gaXRzIGFyY2hpdGVjdHVyZS4KCkhhbmcgb27igKYgaXMgdGhlcmUgZXZlbiBhbiBTRElPIGZ1enplciB3aXRoaW4gc3l6a2FsbGVyPyBEb3VibGUgY2hlY2tpbmfigKYgbm9wZS4gTm8gZ2VuZXJpYyBTRElPIGZ1enplciBhdCBhbGwuCgpUaGlzIG1ha2VzIG1lIHdvbmRlciBpZiB0aGVyZSYjMzk7cyBhIFVTQiBvciBQQ0kgdmFyaWFudCBvZiB0aGlzIG54cHdpZmkgZHJpdmVyIEkgY291bGQgdXNlIGFzIGEgdGFyZ2V0LiBMZXQgbWUgaW52ZXN0aWdhdGUgb3RoZXIgY29uZmlndXJhdGlvbnMsIGFuZCBzZWUgaWYgb3RoZXIgb3B0aW9ucyBhcmUgYXZhaWxhYmxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxMTo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTlhQV0lGSV8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWc9Mj1jb25maWcgTlhQV0lGSVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWctMTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnOjEyOmNvbmZpZyBOWFBXSUZJX1NESU9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWctMTMtXHR0cmlzdGF0ZSBcJiMzNDtOWFAgV2lGaSBEcml2ZXIgZm9yIElXNjF4XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDExOjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyMTk3CgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogMjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKk5hcnJvd2luZyB0aGUgU2NvcGU6IFNESU8gRm9jdXMqKgoKQWxyaWdodCwgdGhlIGluaXRpYWwgaHVuY2ggcG9pbnRzIHNxdWFyZWx5IGF0IFNESU8uIEJ1dCwgaG9sZCBvbiBhIHNlY29uZC4gQmVmb3JlIEkganVtcCB0byBjb25jbHVzaW9ucyBhbmQgZGVkaWNhdGUgYWxsIG15IHRpbWUgdG8gdGhhdCBwYXJ0aWN1bGFyIGludGVyZmFjZSwgaXQmIzM5O3MgYWx3YXlzIHdpc2UgdG8gYmUgdGhvcm91Z2guIEkgbmVlZCB0byBxdWlja2x5IHZlcmlmeSB0aGF0IHRoZXJlIGFyZW4mIzM5O3QgYW55IG90aGVyIGJ1cyB0eXBlcyBsdXJraW5nIHdpdGhpbiB0aGF0IGRpcmVjdG9yeSwgYmVjYXVzZSB0aGF0IHdvdWxkIGNoYW5nZSBldmVyeXRoaW5nLiBBIHF1aWNrIHNjYW4gdG8gZW5zdXJlIFNESU8gaXMgdGhlICpvbmx5KiBvcHRpb24sIGFuZCB0aGVuIEkgY2FuIHByb2NlZWQgY29uZmlkZW50bHkuIEkgZG9uJiMzOTt0IHdhbnQgdG8gd2FzdGUgdGltZSBvbiBhIHJlZCBoZXJyaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxMTo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmNvZGVzZWFyY2gtZGlyLWluZGV4PC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtEaXImIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZXMmIzM0OzogWwogICAgJiMzNDsxMWFjLmMmIzM0OywKICAgICYjMzQ7MTFhYy5oJiMzNDssCiAgICAmIzM0OzExYXguYyYjMzQ7LAogICAgJiMzNDsxMWF4LmgmIzM0OywKICAgICYjMzQ7MTFoLmMmIzM0OywKICAgICYjMzQ7MTFuLmMmIzM0OywKICAgICYjMzQ7MTFuLmgmIzM0OywKICAgICYjMzQ7MTFuX2FnZ3IuYyYjMzQ7LAogICAgJiMzNDsxMW5fYWdnci5oJiMzNDssCiAgICAmIzM0OzExbl9yeHJlb3JkZXIuYyYjMzQ7LAogICAgJiMzNDsxMW5fcnhyZW9yZGVyLmgmIzM0OywKICAgICYjMzQ7Y2ZnLmgmIzM0OywKICAgICYjMzQ7Y2ZnODAyMTEuYyYjMzQ7LAogICAgJiMzNDtjZmc4MDIxMS5oJiMzNDssCiAgICAmIzM0O2NmcC5jJiMzNDssCiAgICAmIzM0O2NtZGV2dC5jJiMzNDssCiAgICAmIzM0O2NtZGV2dC5oJiMzNDssCiAgICAmIzM0O2RlYnVnZnMuYyYjMzQ7LAogICAgJiMzNDtldGh0b29sLmMmIzM0OywKICAgICYjMzQ7ZncuaCYjMzQ7LAogICAgJiMzNDtpZS5jJiMzNDssCiAgICAmIzM0O2luaXQuYyYjMzQ7LAogICAgJiMzNDtqb2luLmMmIzM0OywKICAgICYjMzQ7bWFpbi5jJiMzNDssCiAgICAmIzM0O21haW4uaCYjMzQ7LAogICAgJiMzNDtzY2FuLmMmIzM0OywKICAgICYjMzQ7c2Rpby5jJiMzNDssCiAgICAmIzM0O3NkaW8uaCYjMzQ7LAogICAgJiMzNDtzdGFfY2ZnLmMmIzM0OywKICAgICYjMzQ7c3RhX2NtZC5jJiMzNDssCiAgICAmIzM0O3N0YV9ldmVudC5jJiMzNDssCiAgICAmIzM0O3N0YV9yeC5jJiMzNDssCiAgICAmIzM0O3N0YV90eC5jJiMzNDssCiAgICAmIzM0O3R4cnguYyYjMzQ7LAogICAgJiMzNDt1YXBfY21kLmMmIzM0OywKICAgICYjMzQ7dWFwX2V2ZW50LmMmIzM0OywKICAgICYjMzQ7dWFwX3R4cnguYyYjMzQ7LAogICAgJiMzNDt1dGlsLmMmIzM0OywKICAgICYjMzQ7dXRpbC5oJiMzNDssCiAgICAmIzM0O3dtbS5jJiMzNDssCiAgICAmIzM0O3dtbS5oJiMzNDsKICBdLAogICYjMzQ7U3ViZGlycyYjMzQ7OiBudWxsCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTE6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI3MjMKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAxNzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgdGhlIGBueHB3aWZpYCBTRElPIERyaXZlciBmb3IgRnV6emluZyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBgbnhwd2lmaWAgZHJpdmVyLCBhbmQgdGhlIG9ubHkgZmlsZXMgYXJlIGBzZGlvLmNgIGFuZCBgc2Rpby5oYC4gUmlnaHQgYXdheSwgdGhhdCYjMzk7cyBhIHByZXR0eSBzdHJvbmcgaW5kaWNhdG9yIHRoYXQgdGhpcyBpcyBwdXJlbHkgYW4gU0RJTy1iYXNlZCBkcml2ZXIuIFRoYXQmIzM5O3MgbXkgZmlyc3QgdGhvdWdodC4KClRoZSBuZXh0IHRoaW5nIHRoYXQganVtcHMgb3V0IGF0IG1lIGlzIHRoYXQgc3l6a2FsbGVyLCB0byBteSBrbm93bGVkZ2UsIGRvZXNuJiMzOTt0IGhhdmUgYSBkZWRpY2F0ZWQgU0RJTyBmdXp6ZXIgc2V0IHVwLiBHaXZlbiB0aGF0LCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGxpa2UgR0NFIG9yIFFFTVUsIHRoZSBjb2RlIHBhdGhzIHdpdGhpbiB0aGlzIGRyaXZlciBhcmUgcHJvYmFibHkgdW5yZWFjaGFibGUuIFRoYXQmIzM5O3MgYSBodWdlIHBvdGVudGlhbCBwcm9ibGVtIGZvciB0aG9yb3VnaCB0ZXN0aW5nLiBJJiMzOTttIHRoaW5raW5nIGFib3V0IHdheXMgdG8gdHJpZ2dlciBpdC4KCkhtbSwgd2FpdC4uLiBjb3VsZCB0aGlzIGJlIGFjY2Vzc2VkIHRocm91Z2ggc29tZXRoaW5nIGxpa2UgYG1hYzgwMjExX2h3c2ltYD8gSSYjMzk7bSB0cnlpbmcgdG8gcmVtZW1iZXIgaWYgdGhlcmUmIzM5O3MgYSBjb25uZWN0aW9uIHRoZXJlLiBObywgdGhhdCYjMzk7cyB3cm9uZy4gYG1hYzgwMjExX2h3c2ltYCBpcyBhIGNvbXBsZXRlbHkgc2VwYXJhdGUgdGhpbmcuIEl0JiMzOTtzIGEgZHJpdmVyIHRoYXQgZmFrZXMgYSBtYWM4MDIxMSBkZXZpY2UuIFRoZSBgbnhwd2lmaWAgZHJpdmVyIGlzIGEgZnVsbG1hYyBkcml2ZXIsIGFuZCBpdCByZWdpc3RlcnMgZGlyZWN0bHkgd2l0aCBjZmc4MDIxMS4gQW5kLCBpdCB0YWxrcyB0byBpdHMgZmlybXdhcmUgb3ZlciBTRElPLgoKVGhlcmVmb3JlLCBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQgYG54cHdpZmlgIGlzIGRlZmluaXRlbHkgcmVnaXN0ZXJpbmcgd2l0aCBgY2ZnODAyMTFgLiBUaGF0IHdpbGwgbWFrZSBhIGh1Z2UgZGlmZmVyZW5jZSBpbiBob3cgdG8gYXBwcm9hY2ggcmVhY2hpbmcgdGhlIGNvZGUgd2l0aCBmdXp6aW5nLiBMZXQmIzM5O3MgbG9vayBpbnRvIHRoYXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDExOjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWFjODAyMTEmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxMTo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzI4MwoJCQkJCQkJb3V0cHV0OiAxMDUKCQkJCQkJCXRob3VnaHRzOiA0MTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVW5yZWFjaGFibGUgQ29kZSBpbiB0aGUgTlhQIFdpRmkgRHJpdmVyKioKCk9rYXksIHNvIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCwgbXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgaXQmIzM5O3MgZGVhbGluZyB3aXRoIHRoZSBgbnhwd2lmaWAgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCB1dGlsaXplcyBgY2ZnODAyMTFgLiBUaGF0JiMzOTtzIHRoZSBzdGFydGluZyBwb2ludC4gVGhlIGNydWNpYWwgaXNzdWUgaGVyZSwgdGhvdWdoLCBpcyB0aGF0IHRoaXMgZHJpdmVyIHJlbGllcyBvbiBhbiBTRElPIGJ1cyBhbmQsIGltcG9ydGFudGx5LCBzcGVjaWZpYyBoYXJkd2FyZSDigJMgdGhlIE5YUCBJVzYxeCBjaGlwc2V0LiBJbiBvdXIgc3RhbmRhcmQgZnV6emluZyBzZXR1cCwgZWl0aGVyIHdpdGggc3l6a2FsbGVyIG9yIFFFTVUsIHdlIGRvbiYjMzk7dCBoYXZlIHRoYXQgaGFyZHdhcmUuIFRoZXJlJiMzOTtzIG5vIFNESU8gZW11bGF0b3IgcHJlc2VudCwgYXQgbGVhc3Qgbm90IG9uZSB0aGF0JiMzOTtzIGVhc2lseSBhY2Nlc3NpYmxlIG9yIGludGVncmF0ZWQgaW50byB0aGUgc3RhbmRhcmQgZW52aXJvbm1lbnRzIHdlJiMzOTtyZSB1c2luZy4KClRoZXJlZm9yZSwgdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBkcml2ZXIgYW5kIGFueSBvZiB0aGUgc3Vic2VxdWVudCBwYWNrZXQgcHJvY2Vzc2luZyBmdW5jdGlvbnMsIHNwZWNpZmljYWxseSwgdGhlIGBueHB3aWZpXzExbl9jcmVhdGVfcnhfcmVvcmRlcl90YmxgIGZ1bmN0aW9uLCBhcmUgc2ltcGx5IHVucmVhY2hhYmxlLiBUaGlzIGlzIGJlY2F1c2UgdGhlIGRyaXZlciB3aWxsIG5ldmVyIHN1Y2Nlc3NmdWxseSBwcm9iZSBkdWUgdG8gdGhlIG1pc3NpbmcgU0RJTyBoYXJkd2FyZSBlbXVsYXRpb24uCgpMZXQgbWUganVzdCBkb3VibGUtY2hlY2ssIGJlY2F1c2UgaXQmIzM5O3MgYWx3YXlzIHdvcnRoIGEgdGhvcm91Z2ggbG9vay4gSXMgdGhlcmUgYW55IHdheSBTRElPIGl0c2VsZiBpcyBmdXp6ZWQ/IE5vcGUuIFN5emthbGxlciBkb2VzbiYjMzk7dCBoYXZlIGEgYHN5el9zZGlvXypgIHBzZXVkby1zeXNjYWxsLCBhbmQgd2hpbGUgUUVNVSAqZG9lcyogaGF2ZSBzb21lIFNESENJIGVtdWxhdGlvbiwgd2UmIzM5O2QgbmVlZCBhIHZlcnkgc3BlY2lmaWMgU0RJTyBkZXZpY2UgbW9kZWwgZW11bGF0aW5nIHRoZSBOWFAgSVc2MXggdG8gZXZlbiBnZXQgdGhlIGRyaXZlciB0byBwcm9iZSBhbmQgaW5pdGlhbGl6ZS4gUUVNVSYjMzk7cyBkZWZhdWx0IHNldHVwIGRvZXNuJiMzOTt0IG9mZmVyIHRoYXQuIFNvLCB0aGUgZHJpdmVyIHdvbiYjMzk7dCBwcm9iZSwgYW5kIHRoZSBmdW5jdGlvbiBpcyBuZXZlciBnb2luZyB0byBnZXQgZXhlY3V0ZWQsIHNpbXBsZSBhcyB0aGF0LgoKTGV0IG1lIGp1c3QgcXVpY2tseSByZXZpZXcgdGhlIHBhdGNoIGFnYWluIHRvIG1ha2Ugc3VyZSBpdCBkb2VzbiYjMzk7dCB0b3VjaCBhbnl0aGluZyBlbHNlIHRoYXQgbWlnaHQgYmUgcmVsZXZhbnQuIEl0JiMzOTtzIGp1c3QgdG91Y2hpbmcgZmlsZXMgd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9gIHNwZWNpZmljYWxseSBgMTFuX3J4cmVvcmRlci5jYCBhbmQgYG1haW4uaGAg4oCTIGFsbCBpbnNpZGUgdGhlIGBueHB3aWZpYCBkcml2ZXIuIENvbmZpcm1lZC4KClNvLCBnaXZlbiB0aGF0IHRoaXMgcGF0Y2ggbW9kaWZpZXMgY29kZSB3aXRoaW4gYSBkcml2ZXIgdGhhdCYjMzk7cyBpbmFjY2Vzc2libGUgaW4gb3VyIHN0YW5kYXJkIGZ1enppbmcgZW52aXJvbm1lbnRzLCBkdWUgdG8gdGhlIGxhY2sgb2YgU0RJTyBoYXJkd2FyZSBlbXVsYXRpb24sIGFuZCB0aGUgYWJzZW5jZSBvZiBhbnkgU0RJTy1zcGVjaWZpYyBmdXp6aW5nIGNhcGFiaWxpdGllcyBpbiBzeXprYWxsZXIsIEkgaGF2ZSB0byBjb25jbHVkZSB0aGF0IGl0IGlzIG5vdCB3b3J0aCBmdXp6aW5nLiBJIHdpbGwgc2V0IGBXb3J0aEZ1enppbmdgIHRvIGBmYWxzZWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDExOjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG54cHdpZmkgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCBpcyBhbiBTRElPLWJhc2VkIGRyaXZlciBmb3IgTlhQIElXNjF4IGNoaXBzZXRzLiBTaW5jZSBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgdGhpcyBzcGVjaWZpYyBTRElPIGhhcmR3YXJlLCBhbmQgc3l6a2FsbGVyIGxhY2tzIGEgZ2VuZXJpYyBTRElPIGZ1enplciwgdGhlIGRyaXZlciBjYW5ub3QgYmUgcHJvYmVkIGFuZCBpdHMgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbnhwd2lmaSB3aXJlbGVzcyBkcml2ZXIsIHdoaWNoIGlzIGFuIFNESU8tYmFzZWQgZHJpdmVyIGZvciBOWFAgSVc2MXggY2hpcHNldHMuIFNpbmNlIHN0YW5kYXJkIFFFTVUvR0NFIGVudmlyb25tZW50cyBkbyBub3QgZW11bGF0ZSB0aGlzIHNwZWNpZmljIFNESU8gaGFyZHdhcmUsIGFuZCBzeXprYWxsZXIgbGFja3MgYSBnZW5lcmljIFNESU8gZnV6emVyLCB0aGUgZHJpdmVyIGNhbm5vdCBiZSBwcm9iZWQgYW5kIGl0cyBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxMTo0MTo1My4zNjYyNjQyMzlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NDE4OTk2NTE1MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG54cHdpZmkgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCBpcyBhbiBTRElPLWJhc2VkIGRyaXZlciBmb3IgTlhQIElXNjF4IGNoaXBzZXRzLiBTaW5jZSBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgdGhpcyBzcGVjaWZpYyBTRElPIGhhcmR3YXJlLCBhbmQgc3l6a2FsbGVyIGxhY2tzIGEgZ2VuZXJpYyBTRElPIGZ1enplciwgdGhlIGRyaXZlciBjYW5ub3QgYmUgcHJvYmVkIGFuZCBpdHMgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxMTo0MTo1My4zNjYyNzE3ODlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4NzU3NDI2OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDI1NTY2MGVhNWQwNWEwODU5ZjJiNjQzZmM0ZDdhZGNmMjM2NmUxZjFcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIE1vbiBKdWwgMjcgMTE6NDE6NTEgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuX3J4cmVvcmRlci5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuX3J4cmVvcmRlci5jXFxuaW5kZXggYzU4MTlmODliMDhjZTcuLmIyZmQ2MjQ0OTdhM2FkIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbl9yeHJlb3JkZXIuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbl9yeHJlb3JkZXIuY1xcbkBAIC0xNzEsNyArMTcxLDYgQEAgbnhwd2lmaV9kZWxfcnhfcmVvcmRlcl9lbnRyeShzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbiBcXHRsaXN0X2RlbF9yY3UoXFx1MDAyNnRibC1cXHUwMDNlbGlzdCk7XFxuIFxcdHNwaW5fdW5sb2NrX2JoKFxcdTAwMjZwcml2LVxcdTAwM2VyeF9yZW9yZGVyX3RibF9sb2NrW3RpZF0pO1xcbiBcXG4tXFx0a2ZyZWUodGJsLVxcdTAwM2VyeF9yZW9yZGVyX3B0cik7XFxuIFxcdGtmcmVlX3JjdSh0YmwsIHJjdSk7XFxuIFxcbiBcXHRhdG9taWNfc2V0KFxcdTAwMjZwcml2LVxcdTAwM2VhZGFwdGVyLVxcdTAwM2VyeF9iYV90ZWFyZG93bl9wZW5kaW5nLCAwKTtcXG5AQCAtMjczLDExICsyNzIsMTMgQEAgbnhwd2lmaV8xMW5fY3JlYXRlX3J4X3Jlb3JkZXJfdGJsKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsIHU4ICp0YSxcXG4gXFx0XFx0bnhwd2lmaV8xMW5fZGlzcGF0Y2hfcGt0X3VudGlsX3N0YXJ0X3dpbihwcml2LCB0YmwsIHNlcV9udW0pO1xcbiBcXHRcXHRyZXR1cm47XFxuIFxcdH1cXG4rXFxuIFxcdC8qIGlmICF0YmwgdGhlbiBjcmVhdGUgb25lICovXFxuLVxcdG5ld19ub2RlID0ga3phbGxvY19vYmooKm5ld19ub2RlLCBHRlBfS0VSTkVMKTtcXG4rXFx0bmV3X25vZGUgPSBremFsbG9jX2ZsZXgoKm5ld19ub2RlLCByeF9yZW9yZGVyX3B0ciwgd2luX3NpemUpO1xcbiBcXHRpZiAoIW5ld19ub2RlKVxcbiBcXHRcXHRyZXR1cm47XFxuIFxcbitcXHRuZXdfbm9kZS1cXHUwMDNld2luX3NpemUgPSB3aW5fc2l6ZTtcXG4gXFx0SU5JVF9MSVNUX0hFQUQoXFx1MDAyNm5ld19ub2RlLVxcdTAwM2VsaXN0KTtcXG4gXFx0bmV3X25vZGUtXFx1MDAzZXRpZCA9IHRpZDtcXG4gXFx0bWVtY3B5KG5ld19ub2RlLVxcdTAwM2V0YSwgdGEsIEVUSF9BTEVOKTtcXG5AQCAtMzExLDI2ICszMTIsMTIgQEAgbnhwd2lmaV8xMW5fY3JlYXRlX3J4X3Jlb3JkZXJfdGJsKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsIHU4ICp0YSxcXG4gXFx0XFx0bmV3X25vZGUtXFx1MDAzZWZsYWdzIHw9IFJYUkVPUl9JTklUX1dJTkRPV19TSElGVDtcXG4gXFx0fVxcbiBcXG4tXFx0bmV3X25vZGUtXFx1MDAzZXdpbl9zaXplID0gd2luX3NpemU7XFxuLVxcbi1cXHRuZXdfbm9kZS1cXHUwMDNlcnhfcmVvcmRlcl9wdHIgPSBrY2FsbG9jKHdpbl9zaXplLCBzaXplb2Yodm9pZCAqKSxcXG4tXFx0XFx0XFx0XFx0XFx0ICAgR0ZQX0tFUk5FTCk7XFxuLVxcdGlmICghbmV3X25vZGUtXFx1MDAzZXJ4X3Jlb3JkZXJfcHRyKSB7XFxuLVxcdFxcdGtmcmVlKG5ld19ub2RlKTtcXG4tXFx0XFx0bnhwd2lmaV9kYmcocHJpdi1cXHUwMDNlYWRhcHRlciwgRVJST1IsXFxuLVxcdFxcdFxcdCAgICBcXFwiJXM6IGZhaWxlZCB0byBhbGxvYyByZW9yZGVyX3B0clxcXFxuXFxcIiwgX19mdW5jX18pO1xcbi1cXHRcXHRyZXR1cm47XFxuLVxcdH1cXG4tXFxuIFxcdG5ld19ub2RlLVxcdTAwM2V0aW1lcl9jb250ZXh0LnB0ciA9IG5ld19ub2RlO1xcbiBcXHRuZXdfbm9kZS1cXHUwMDNldGltZXJfY29udGV4dC5wcml2ID0gcHJpdjtcXG4gXFx0bmV3X25vZGUtXFx1MDAzZXRpbWVyX2NvbnRleHQudGltZXJfaXNfc2V0ID0gZmFsc2U7XFxuIFxcbiBcXHR0aW1lcl9zZXR1cChcXHUwMDI2bmV3X25vZGUtXFx1MDAzZXRpbWVyX2NvbnRleHQudGltZXIsIG54cHdpZmlfZmx1c2hfZGF0YSwgMCk7XFxuIFxcbi1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2Mgd2luX3NpemU7ICsraSlcXG4tXFx0XFx0bmV3X25vZGUtXFx1MDAzZXJ4X3Jlb3JkZXJfcHRyW2ldID0gTlVMTDtcXG4tXFxuIFxcdHNwaW5fbG9ja19iaChcXHUwMDI2cHJpdi1cXHUwMDNlcnhfcmVvcmRlcl90YmxfbG9ja1t0aWRdKTtcXG4gXFx0bGlzdF9hZGRfdGFpbF9yY3UoXFx1MDAyNm5ld19ub2RlLVxcdTAwM2VsaXN0LCBcXHUwMDI2cHJpdi1cXHUwMDNlcnhfcmVvcmRlcl90YmxfcHRyW3RpZF0pO1xcbiBcXHRzcGluX3VubG9ja19iaChcXHUwMDI2cHJpdi1cXHUwMDNlcnhfcmVvcmRlcl90YmxfbG9ja1t0aWRdKTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5oXFxuaW5kZXggNGFiZjgwNzcxYmUyM2UuLjM0OWRmYTRkM2Y4NTgxIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL21haW4uaFxcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL21haW4uaFxcbkBAIC02NTYsMTAgKzY1NiwxMCBAQCBzdHJ1Y3Qgbnhwd2lmaV9yeF9yZW9yZGVyX3RibCB7XFxuIFxcdGludCBpbml0X3dpbjtcXG4gXFx0aW50IHN0YXJ0X3dpbjtcXG4gXFx0aW50IHdpbl9zaXplO1xcbi1cXHR2b2lkICoqcnhfcmVvcmRlcl9wdHI7XFxuIFxcdHN0cnVjdCByZW9yZGVyX3Rtcl9jbnh0IHRpbWVyX2NvbnRleHQ7XFxuIFxcdHU4IGFtc2R1O1xcbiBcXHR1OCBmbGFncztcXG4rXFx0c3RydWN0IHNrX2J1ZmYgKnJ4X3Jlb3JkZXJfcHRyW10gX19jb3VudGVkX2J5KHdpbl9zaXplKTtcXG4gfTtcXG4gXFxuIHN0cnVjdCBueHB3aWZpX2Jzc19wcmlvX25vZGUge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxMTo0MTo1My44NTQ2MDA1OTdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo0MzcwMTYyMjg4MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG54cHdpZmkgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCBpcyBhbiBTRElPLWJhc2VkIGRyaXZlciBmb3IgTlhQIElXNjF4IGNoaXBzZXRzLiBTaW5jZSBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgdGhpcyBzcGVjaWZpYyBTRElPIGhhcmR3YXJlLCBhbmQgc3l6a2FsbGVyIGxhY2tzIGEgZ2VuZXJpYyBTRElPIGZ1enplciwgdGhlIGRyaXZlciBjYW5ub3QgYmUgcHJvYmVkIGFuZCBpdHMgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAyNTU2NjBlYTVkMDVhMDg1OWYyYjY0M2ZjNGQ3YWRjZjIzNjZlMWYxXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMjcgMTE6NDE6NTEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW5fcnhyZW9yZGVyLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMW5fcnhyZW9yZGVyLmNcbmluZGV4IGM1ODE5Zjg5YjA4Y2U3Li5iMmZkNjI0NDk3YTNhZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExbl9yeHJlb3JkZXIuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFuX3J4cmVvcmRlci5jXG5AQCAtMTcxLDcgKzE3MSw2IEBAIG54cHdpZmlfZGVsX3J4X3Jlb3JkZXJfZW50cnkoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcbiBcdGxpc3RfZGVsX3JjdShcdTAwMjZ0YmwtXHUwMDNlbGlzdCk7XG4gXHRzcGluX3VubG9ja19iaChcdTAwMjZwcml2LVx1MDAzZXJ4X3Jlb3JkZXJfdGJsX2xvY2tbdGlkXSk7XG4gXG4tXHRrZnJlZSh0YmwtXHUwMDNlcnhfcmVvcmRlcl9wdHIpO1xuIFx0a2ZyZWVfcmN1KHRibCwgcmN1KTtcbiBcbiBcdGF0b21pY19zZXQoXHUwMDI2cHJpdi1cdTAwM2VhZGFwdGVyLVx1MDAzZXJ4X2JhX3RlYXJkb3duX3BlbmRpbmcsIDApO1xuQEAgLTI3MywxMSArMjcyLDEzIEBAIG54cHdpZmlfMTFuX2NyZWF0ZV9yeF9yZW9yZGVyX3RibChzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LCB1OCAqdGEsXG4gXHRcdG54cHdpZmlfMTFuX2Rpc3BhdGNoX3BrdF91bnRpbF9zdGFydF93aW4ocHJpdiwgdGJsLCBzZXFfbnVtKTtcbiBcdFx0cmV0dXJuO1xuIFx0fVxuK1xuIFx0LyogaWYgIXRibCB0aGVuIGNyZWF0ZSBvbmUgKi9cbi1cdG5ld19ub2RlID0ga3phbGxvY19vYmooKm5ld19ub2RlLCBHRlBfS0VSTkVMKTtcbitcdG5ld19ub2RlID0ga3phbGxvY19mbGV4KCpuZXdfbm9kZSwgcnhfcmVvcmRlcl9wdHIsIHdpbl9zaXplKTtcbiBcdGlmICghbmV3X25vZGUpXG4gXHRcdHJldHVybjtcbiBcbitcdG5ld19ub2RlLVx1MDAzZXdpbl9zaXplID0gd2luX3NpemU7XG4gXHRJTklUX0xJU1RfSEVBRChcdTAwMjZuZXdfbm9kZS1cdTAwM2VsaXN0KTtcbiBcdG5ld19ub2RlLVx1MDAzZXRpZCA9IHRpZDtcbiBcdG1lbWNweShuZXdfbm9kZS1cdTAwM2V0YSwgdGEsIEVUSF9BTEVOKTtcbkBAIC0zMTEsMjYgKzMxMiwxMiBAQCBueHB3aWZpXzExbl9jcmVhdGVfcnhfcmVvcmRlcl90Ymwoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdiwgdTggKnRhLFxuIFx0XHRuZXdfbm9kZS1cdTAwM2VmbGFncyB8PSBSWFJFT1JfSU5JVF9XSU5ET1dfU0hJRlQ7XG4gXHR9XG4gXG4tXHRuZXdfbm9kZS1cdTAwM2V3aW5fc2l6ZSA9IHdpbl9zaXplO1xuLVxuLVx0bmV3X25vZGUtXHUwMDNlcnhfcmVvcmRlcl9wdHIgPSBrY2FsbG9jKHdpbl9zaXplLCBzaXplb2Yodm9pZCAqKSxcbi1cdFx0XHRcdFx0ICAgR0ZQX0tFUk5FTCk7XG4tXHRpZiAoIW5ld19ub2RlLVx1MDAzZXJ4X3Jlb3JkZXJfcHRyKSB7XG4tXHRcdGtmcmVlKG5ld19ub2RlKTtcbi1cdFx0bnhwd2lmaV9kYmcocHJpdi1cdTAwM2VhZGFwdGVyLCBFUlJPUixcbi1cdFx0XHQgICAgXCIlczogZmFpbGVkIHRvIGFsbG9jIHJlb3JkZXJfcHRyXFxuXCIsIF9fZnVuY19fKTtcbi1cdFx0cmV0dXJuO1xuLVx0fVxuLVxuIFx0bmV3X25vZGUtXHUwMDNldGltZXJfY29udGV4dC5wdHIgPSBuZXdfbm9kZTtcbiBcdG5ld19ub2RlLVx1MDAzZXRpbWVyX2NvbnRleHQucHJpdiA9IHByaXY7XG4gXHRuZXdfbm9kZS1cdTAwM2V0aW1lcl9jb250ZXh0LnRpbWVyX2lzX3NldCA9IGZhbHNlO1xuIFxuIFx0dGltZXJfc2V0dXAoXHUwMDI2bmV3X25vZGUtXHUwMDNldGltZXJfY29udGV4dC50aW1lciwgbnhwd2lmaV9mbHVzaF9kYXRhLCAwKTtcbiBcbi1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIHdpbl9zaXplOyArK2kpXG4tXHRcdG5ld19ub2RlLVx1MDAzZXJ4X3Jlb3JkZXJfcHRyW2ldID0gTlVMTDtcbi1cbiBcdHNwaW5fbG9ja19iaChcdTAwMjZwcml2LVx1MDAzZXJ4X3Jlb3JkZXJfdGJsX2xvY2tbdGlkXSk7XG4gXHRsaXN0X2FkZF90YWlsX3JjdShcdTAwMjZuZXdfbm9kZS1cdTAwM2VsaXN0LCBcdTAwMjZwcml2LVx1MDAzZXJ4X3Jlb3JkZXJfdGJsX3B0clt0aWRdKTtcbiBcdHNwaW5fdW5sb2NrX2JoKFx1MDAyNnByaXYtXHUwMDNlcnhfcmVvcmRlcl90YmxfbG9ja1t0aWRdKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9tYWluLmhcbmluZGV4IDRhYmY4MDc3MWJlMjNlLi4zNDlkZmE0ZDNmODU4MSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL21haW4uaFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvbWFpbi5oXG5AQCAtNjU2LDEwICs2NTYsMTAgQEAgc3RydWN0IG54cHdpZmlfcnhfcmVvcmRlcl90Ymwge1xuIFx0aW50IGluaXRfd2luO1xuIFx0aW50IHN0YXJ0X3dpbjtcbiBcdGludCB3aW5fc2l6ZTtcbi1cdHZvaWQgKipyeF9yZW9yZGVyX3B0cjtcbiBcdHN0cnVjdCByZW9yZGVyX3Rtcl9jbnh0IHRpbWVyX2NvbnRleHQ7XG4gXHR1OCBhbXNkdTtcbiBcdHU4IGZsYWdzO1xuK1x0c3RydWN0IHNrX2J1ZmYgKnJ4X3Jlb3JkZXJfcHRyW10gX19jb3VudGVkX2J5KHdpbl9zaXplKTtcbiB9O1xuIFxuIHN0cnVjdCBueHB3aWZpX2Jzc19wcmlvX25vZGUge1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTE6NDE6NTMuODU0NjAxODY3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODczMjczMTA3MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBXaXJlbGVzcyBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCBzZWVtcyBsaWtlIHRoZXkncmUgbWFraW5nIHNvbWUgZmFpcmx5IHNpZ25pZmljYW50IGNoYW5nZXMgdG8gdGhlIHJlb3JkZXJpbmcgbG9naWMgaW4gdGhlIGBueHB3aWZpYCBkcml2ZXIuIFNwZWNpZmljYWxseSwgdGhleSdyZSBhbHRlcmluZyB0aGUgYHJ4X3Jlb3JkZXJfcHRyYCBmaWVsZCB3aXRoaW4gdGhlIGBueHB3aWZpX3J4X3Jlb3JkZXJfdGJsYCBzdHJ1Y3QuIEl0J3MgZ29pbmcgZnJvbSBhIGRvdWJsZSBwb2ludGVyIHRvIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyLCB3aGljaCBpcyBhIHByZXR0eSBjbGVhciBpbmRpY2F0aW9uIG9mIG9wdGltaXppbmcgbWVtb3J5IGFsbG9jYXRpb24sIHdoaWNoIGlzIGdvb2QuIFRoZSBga3phbGxvY2AgY2FsbHMgYXJlIGFsc28gYmVpbmcgc3RyZWFtbGluZWQgd2l0aCBga3phbGxvY19mbGV4YCwgYW5kIHRoZXkncmUgcmVtb3ZpbmcgYSBga2ZyZWVgIGluIHRoZSBgbnhwd2lmaV9kZWxfcnhfcmVvcmRlcl9lbnRyeWAgZnVuY3Rpb24uXG5cbkZ1bmN0aW9uYWxseSwgdGhpcyBzaG91bGQgYmUgYW4gaW1wcm92ZW1lbnQsIHJlZHVjaW5nIG1lbW9yeSBmcmFnbWVudGF0aW9uIGFuZCBwb3RlbnRpYWxseSBpbXByb3ZpbmcgcGVyZm9ybWFuY2UuIEJ1dCwgaXQncyBhIHdpcmVsZXNzIGRyaXZlciBhbmQgSSBhbHdheXMgZ2V0IGEgbGl0dGxlIGNhdXRpb3VzIHdpdGggdGhvc2UsIGdpdmVuIHRoZSBjb21wbGV4aXR5LiAqbnhwd2lmaSosIHRoYXQgcmluZ3MgYSBiZWxsLi4uIGlzIHRoYXQgYSByZWFsLCBhY3RpdmUgZHJpdmVyPyBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgaWYgYG54cHdpZmlgIGlzIGFjdHVhbGx5IHByZXNlbnQgaW4gdGhlIGtlcm5lbCwgb3IgaWYgbWF5YmUgdGhpcyBpcyBhIHJlbmFtZSB0aGF0IEkgc2hvdWxkIGJlIHRyYWNraW5nIGJhY2sgdG8gYW5vdGhlciBkcml2ZXIgbGlrZSBgbXdpZmlleGAuXG5cbkdpdmVuIHRoZSBwYXRoLCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvYCwgaXQgc2VlbXMgdG8gYmUgbGVnaXQsIGxldCdzIGtlZXAgZ29pbmcuXG5cbk15IG5leHQgaW1tZWRpYXRlIHRob3VnaHQgaXMgd2hldGhlciB0aGlzIGRyaXZlciBpcyBldmVuIHJlYWNoYWJsZSBpbiBhIHR5cGljYWwgUUVNVSBlbnZpcm9ubWVudC4gV2lyZWxlc3MgZHJpdmVycyBhcmUgbm90b3Jpb3VzIGZvciBiZWluZyB0cmlja3kuIERyaXZlcnMgbGlrZSBgbWFjODAyMTFfaHdzaW1gIGFyZSBnZW5lcmFsbHkgYWNjZXNzaWJsZSwgYnV0IGhhcmR3YXJlLXNwZWNpZmljIG9uZXMgbGlrZSB0aGlzLCB3ZWxsLCBpdCBkZXBlbmRzLiBJcyBpdCBTRElPLCBQQ0llLCBvciBVU0I/IElmIGl0J3MgVVNCLCB0aGVyZSdzIGEgY2hhbmNlLCBkZXBlbmRpbmcgb24gdGhlIGltcGxlbWVudGF0aW9uIGFuZCB3aGV0aGVyIHdlIGNhbiBlbXVsYXRlIGl0IHdpdGggYSBnYWRnZXQgb3IgZHVtbXlfaGNkLiBJdCBjb3VsZCBiZSB2aXJ0dWFsLCBidXQgdGhhdCB3b3VsZCBiZSBhIHJhcml0eSBmb3IgYSBkcml2ZXIgbmFtZSBsaWtlIHRoaXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgYnVzZXMgYXJlIHN1cHBvcnRlZCBhbmQgdGhlbiBJJ2xsIHVuZGVyc3RhbmQgaWYgdGhpcyBwYXRjaCBpcyBldmVuIGZlYXNpYmxlIHRvIHRlc3QsIG9yIGlmIGl0IGlzIGV2ZW4gcmVsZXZhbnQgdG8gbXkgY29uY2VybnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5ODEsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozODcsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxMTo0MjowMi41ODczMzUwMzdaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjU4OTI2OTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibnhwd2lmaVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxNTE1MiBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTItLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MzogKiBueHB3aWZpIDgwMi4xMWFjIGhlbHBlcnNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtNC0gKiBDb3B5cmlnaHQgMjAxMS0yMDI0IE5YUFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jPTM2PXN0YXRpYyB1MTZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6Mzc6bnhwd2lmaV9jb252ZXJ0X21jc21hcF90b19tYXhyYXRlKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTM4LVxcdFxcdFxcdFxcdCAgdTE2IGJhbmRzLCB1MTYgbWNzX21hcClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy00Mi1cXHR1MzIgdXNyX3ZodF9jYXBfaW5mbyA9IDA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjQzOlxcdHN0cnVjdCBueHB3aWZpX2FkYXB0ZXIgKmFkYXB0ZXIgPSBwcml2LVxcdTAwM2VhZGFwdGVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy00NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYz03OT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzo4MDpueHB3aWZpX2ZpbGxfdmh0X2NhcF9pbmZvKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTgxLVxcdFxcdFxcdCAgc3RydWN0IGllZWU4MDIxMV92aHRfY2FwICp2aHRfY2FwLCB1MTYgYmFuZHMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTgyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6ODM6XFx0c3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlciA9IHByaXYtXFx1MDAzZWFkYXB0ZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTg0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jPTkzPXZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6OTQ6bnhwd2lmaV9maWxsX3ZodF9jYXBfdGx2KHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTk1LVxcdFxcdFxcdCBzdHJ1Y3QgaWVlZTgwMjExX3ZodF9jYXAgKnZodF9jYXAsIHUxNiBiYW5kcylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtOTYte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzo5NzpcXHRzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyID0gcHJpdi1cXHUwMDNlYWRhcHRlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtOTgtXFx0dTE2IG1jc19tYXBfdXNlciwgbWNzX21hcF9yZXNwLCBtY3NfbWFwX3Jlc3VsdDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xMDEtXFx0LyogRmlsbCBWSFQgY2FwYWJpbGl0eSBpbmZvLiAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxMDI6XFx0bnhwd2lmaV9maWxsX3ZodF9jYXBfaW5mbyhwcml2LCB2aHRfY2FwLCBiYW5kcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTEwMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjEyNDpcXHR0bXAgPSBueHB3aWZpX2NvbnZlcnRfbWNzbWFwX3RvX21heHJhdGUocHJpdiwgYmFuZHMsIG1jc19tYXBfcmVzdWx0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTI1LVxcdHZodF9jYXAtXFx1MDAzZXN1cHBfbWNzLnJ4X2hpZ2hlc3QgPSBjcHVfdG9fbGUxNih0bXApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE0NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTQ2OlxcdHRtcCA9IG54cHdpZmlfY29udmVydF9tY3NtYXBfdG9fbWF4cmF0ZShwcml2LCBiYW5kcywgbWNzX21hcF9yZXN1bHQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNDctXFx0dmh0X2NhcC1cXHUwMDNlc3VwcF9tY3MudHhfaGlnaGVzdCA9IGNwdV90b19sZTE2KHRtcCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNTA6aW50IG54cHdpZmlfY21kX2FwcGVuZF8xMWFjX3RsdihzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNTE6XFx0XFx0XFx0XFx0c3RydWN0IG54cHdpZmlfYnNzZGVzY3JpcHRvciAqYnNzX2Rlc2MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE1Mi1cXHRcXHRcXHRcXHR1OCAqKmJ1ZmZlcilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTUzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTU0OlxcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX3ZodGNhcCAqdmh0X2NhcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTU1OlxcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX29wZXJfbW9kZV9udGYgKm9wZXJfbnRmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNTYtXFx0c3RydWN0IGllZWVfdHlwZXNfb3Blcl9tb2RlX250ZiAqaWVlZV9vcGVyX250ZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTU3OlxcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX3ZodF9vcGVyICp2aHRfb3A7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE1ODpcXHRzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyID0gcHJpdi1cXHUwMDNlYWRhcHRlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTU5LVxcdHU4IHN1cHBfY2h3ZF9zZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTY5LVxcdGlmIChic3NfZGVzYy1cXHUwMDNlYmNuX3ZodF9jYXApIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTcwOlxcdFxcdHZodF9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfdmh0Y2FwICopKmJ1ZmZlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTcxLVxcdFxcdG1lbXNldCh2aHRfY2FwLCAwLCBzaXplb2YoKnZodF9jYXApKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xNzQtXFx0XFx0XFx0Y3B1X3RvX2xlMTYoc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdmh0X2NhcCkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNzU6XFx0XFx0bWVtY3B5KCh1OCAqKXZodF9jYXAgKyBzaXplb2Yoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVhZGVyKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTc2LVxcdFxcdCAgICAgICAodTggKilic3NfZGVzYy1cXHUwMDNlYmNuX3ZodF9jYXAsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTc4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoxNzk6XFx0XFx0bnhwd2lmaV9maWxsX3ZodF9jYXBfdGx2KHByaXYsIFxcdTAwMjZ2aHRfY2FwLVxcdTAwM2V2aHRfY2FwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xODAtXFx0XFx0XFx0XFx0XFx0IGJzc19kZXNjLVxcdTAwM2Vic3NfYmFuZCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMTg3LVxcdFxcdGlmIChwcml2LVxcdTAwM2Vic3NfbW9kZSA9PSBOTDgwMjExX0lGVFlQRV9TVEFUSU9OKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE4ODpcXHRcXHRcXHR2aHRfb3AgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfdmh0X29wZXIgKikqYnVmZmVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xODktXFx0XFx0XFx0bWVtc2V0KHZodF9vcCwgMCwgc2l6ZW9mKCp2aHRfb3ApKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xOTItXFx0XFx0XFx0dmh0X29wLVxcdTAwM2VoZWFkZXIubGVuICA9IGNwdV90b19sZTE2KHNpemVvZigqdmh0X29wKSAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjE5MzpcXHRcXHRcXHRcXHRzaXplb2Yoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVhZGVyKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTE5NC1cXHRcXHRcXHRtZW1jcHkoKHU4ICopdmh0X29wICtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MTk1OlxcdFxcdFxcdFxcdHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYy0xOTYtXFx0XFx0XFx0ICAgICAgICh1OCAqKWJzc19kZXNjLVxcdTAwM2ViY25fdmh0X29wZXIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMjQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuYzoyNDU6aW50IG54cHdpZmlfY21kXzExYWNfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTI0Ni1cXHRcXHRcXHQgc3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKmNtZCwgdTE2IGNtZF9hY3Rpb24sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jOjI0NzpcXHRcXHRcXHQgc3RydWN0IG54cHdpZmlfMTFhY192aHRfY2ZnICpjZmcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5jLTI0OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMjY0LS8qIEluaXRpYWxpemUgQmxvY2tBY2sgcGFyYW1ldGVycyBmb3IgMTFhYy4gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmM6MjY1OnZvaWQgbnhwd2lmaV9zZXRfMTFhY19iYV9wYXJhbXMoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmMtMjY2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYWMuaC0yLS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjM6ICogbnhwd2lmaTogODAyLjExYWMgKFZIVCkgZGVmaW5pdGlvbnNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmgtNC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oPTE0PWVudW0gdmh0X2NmZ19taXNjX2NvbmZpZyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmgtMjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oOjI1OmludCBueHB3aWZpX2NtZF9hcHBlbmRfMTFhY190bHYoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmg6MjY6XFx0XFx0XFx0XFx0c3RydWN0IG54cHdpZmlfYnNzZGVzY3JpcHRvciAqYnNzX2Rlc2MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oLTI3LVxcdFxcdFxcdFxcdHU4ICoqYnVmZmVyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmg6Mjg6aW50IG54cHdpZmlfY21kXzExYWNfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFhYy5oLTI5LVxcdFxcdFxcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmg6MzA6XFx0XFx0XFx0IHN0cnVjdCBueHB3aWZpXzExYWNfdmh0X2NmZyAqY2ZnKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmg6MzE6dm9pZCBueHB3aWZpX2ZpbGxfdmh0X2NhcF90bHYoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWFjLmgtMzItXFx0XFx0XFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV92aHRfY2FwICp2aHRfY2FwLCB1MTYgYmFuZHMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEtLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyOi8qIG54cHdpZmk6IDgwMi4xMWF4IChIRSkgc3VwcG9ydFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zLSAqIENvcHlyaWdodCAoQykgMjAxMS0yMDI0IE5YUFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxMTp2b2lkIG54cHdpZmlfdXBkYXRlXzExYXhfY2FwKHN0cnVjdCBueHB3aWZpX2FkYXB0ZXIgKmFkYXB0ZXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEyLVxcdFxcdFxcdCAgICAgc3RydWN0IGh3X3NwZWNfZXh0ZW5zaW9uICpod19oZV9jYXApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTQ6XFx0c3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTU6XFx0c3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICpoZV9jYXAgPSBOVUxMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNjpcXHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKnVzZXJfaGVfY2FwID0gTlVMTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTc6XFx0dTggaGVhZGVyX2xlbiA9IHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xOC1cXHR1MTYgZGF0YV9sZW4gPSBsZTE2X3RvX2NwdShod19oZV9jYXAtXFx1MDAzZWhlYWRlci5sZW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIyLVxcdGlmICgoZGF0YV9sZW4gKyBoZWFkZXJfbGVuKSBcXHUwMDNlIHNpemVvZihhZGFwdGVyLVxcdTAwM2Vod19oZV9jYXApKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIzOlxcdFxcdG54cHdpZmlfZGJnKGFkYXB0ZXIsIEVSUk9SLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yNC1cXHRcXHRcXHQgICAgXFxcImh3X2hlX2NhcCB0b28gYmlnLCBsZW49JWRcXFxcblxcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI5OlxcdGhlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilod19oZV9jYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM3LVxcdFxcdGhlX2NhcF8yZyA9IHRydWU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM4OlxcdFxcdG54cHdpZmlfZGJnX2R1bXAoYWRhcHRlciwgQ01EX0QsIFxcXCIyLjRHIEhFIGNhcGFiaWxpdHkgZWxlbWVudCBcXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zOS1cXHRcXHRcXHRcXHQgYWRhcHRlci1cXHUwMDNlaHdfMmdfaGVfY2FwLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ1LVxcdFxcdGFkYXB0ZXItXFx1MDAzZWZ3X2JhbmRzIHw9IEJBTkRfQUFYO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NjpcXHRcXHRueHB3aWZpX2RiZ19kdW1wKGFkYXB0ZXIsIENNRF9ELCBcXFwiNUcgSEUgY2FwYWJpbGl0eSBlbGVtZW50IFxcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ3LVxcdFxcdFxcdFxcdCBhZGFwdGVyLVxcdTAwM2Vod19oZV9jYXAsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTctXFx0XFx0XFx0ICAgICAgIHNpemVvZihhZGFwdGVyLVxcdTAwM2Vod18yZ19oZV9jYXApKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTg6XFx0XFx0XFx0dXNlcl9oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU5LVxcdFxcdFxcdFxcdHByaXYtXFx1MDAzZXVzZXJfMmdfaGVfY2FwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTYzLVxcdFxcdFxcdCAgICAgICBzaXplb2YoYWRhcHRlci1cXHUwMDNlaHdfaGVfY2FwKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjY0OlxcdFxcdFxcdHVzZXJfaGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy02NS1cXHRcXHRcXHRcXHRwcml2LVxcdTAwM2V1c2VyX2hlX2NhcDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy03OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6Nzk6Ym9vbCBueHB3aWZpXzExYXhfYmFuZGNvbmZpZ19hbGxvd2VkKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjgwOlxcdFxcdFxcdFxcdCAgICAgc3RydWN0IG54cHdpZmlfYnNzZGVzY3JpcHRvciAqYnNzX2Rlc2MpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTgxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy05NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6OTU6aW50IG54cHdpZmlfZmlsbF9oZV9jYXBfdGx2KHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjk2OlxcdFxcdFxcdCAgICBzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKmhlX2NhcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtOTctXFx0XFx0XFx0ICAgIHUxNiBiYW5kcylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtOTgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo5OTpcXHRzdHJ1Y3Qgbnhwd2lmaV9hZGFwdGVyICphZGFwdGVyID0gcHJpdi1cXHUwMDNlYWRhcHRlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTAwOlxcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqaHdfaGVfY2FwID0gTlVMTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTAxLVxcdHUxNiByeF9uc3MsIHR4X25zcztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMDgtXFx0XFx0bWVtY3B5KGhlX2NhcCwgcHJpdi1cXHUwMDNldXNlcl9oZV9jYXAsIHByaXYtXFx1MDAzZXVzZXJfaGVfY2FwX2xlbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjEwOTpcXHRcXHRod19oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopYWRhcHRlci1cXHUwMDNlaHdfaGVfY2FwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMTAtXFx0XFx0cmV0X2xlbiA9IHByaXYtXFx1MDAzZXVzZXJfaGVfY2FwX2xlbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMTItXFx0XFx0bWVtY3B5KGhlX2NhcCwgcHJpdi1cXHUwMDNldXNlcl8yZ19oZV9jYXAsIHByaXYtXFx1MDAzZXVzZXJfMmdfaGVfY2FwX2xlbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjExMzpcXHRcXHRod19oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopYWRhcHRlci1cXHUwMDNlaHdfMmdfaGVfY2FwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMTQtXFx0XFx0cmV0X2xlbiA9IHByaXYtXFx1MDAzZXVzZXJfMmdfaGVfY2FwX2xlbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMjUtXFx0Zm9yIChuc3MgPSAxOyBuc3MgXFx1MDAzYz0gODsgbnNzKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTI2OlxcdFxcdGNmZ192YWx1ZSA9IG54cHdpZmlfZ2V0X2hlX25zc19tY3MoaGVfY2FwLVxcdTAwM2VyeF9tY3NfODAsIG5zcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjEyNzpcXHRcXHRod192YWx1ZSA9IG54cHdpZmlfZ2V0X2hlX25zc19tY3MoaHdfaGVfY2FwLVxcdTAwM2VyeF9tY3NfODAsIG5zcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEyOC1cXHRcXHRpZiAocnhfbnNzICE9IDAgXFx1MDAyNlxcdTAwMjYgbnNzIFxcdTAwM2UgcnhfbnNzKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEzMC1cXHRcXHRpZiAoaHdfdmFsdWUgPT0gTk9fTlNTX1NVUFBPUlQgfHwgY2ZnX3ZhbHVlID09IE5PX05TU19TVVBQT1JUKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxMzE6XFx0XFx0XFx0bnhwd2lmaV9zZXRfaGVfbnNzX21jcyhcXHUwMDI2aGVfY2FwLVxcdTAwM2VyeF9tY3NfODAsIG5zcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTMyLVxcdFxcdFxcdFxcdFxcdCAgICAgICBOT19OU1NfU1VQUE9SVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTEzMy1cXHRcXHRlbHNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjEzNDpcXHRcXHRcXHRueHB3aWZpX3NldF9oZV9uc3NfbWNzKFxcdTAwMjZoZV9jYXAtXFx1MDAzZXJ4X21jc184MCwgbnNzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xMzUtXFx0XFx0XFx0XFx0XFx0ICAgICAgIG1pbihjZmdfdmFsdWUsIGh3X3ZhbHVlKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTM4LVxcdGZvciAobnNzID0gMTsgbnNzIFxcdTAwM2M9IDg7IG5zcysrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjEzOTpcXHRcXHRjZmdfdmFsdWUgPSBueHB3aWZpX2dldF9oZV9uc3NfbWNzKGhlX2NhcC1cXHUwMDNldHhfbWNzXzgwLCBuc3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNDA6XFx0XFx0aHdfdmFsdWUgPSBueHB3aWZpX2dldF9oZV9uc3NfbWNzKGh3X2hlX2NhcC1cXHUwMDNldHhfbWNzXzgwLCBuc3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNDEtXFx0XFx0aWYgKHR4X25zcyAhPSAwIFxcdTAwMjZcXHUwMDI2IG5zcyBcXHUwMDNlIHR4X25zcylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNDMtXFx0XFx0aWYgKGh3X3ZhbHVlID09IE5PX05TU19TVVBQT1JUIHx8IGNmZ192YWx1ZSA9PSBOT19OU1NfU1VQUE9SVClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTQ0OlxcdFxcdFxcdG54cHdpZmlfc2V0X2hlX25zc19tY3MoXFx1MDAyNmhlX2NhcC1cXHUwMDNldHhfbWNzXzgwLCBuc3MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE0NS1cXHRcXHRcXHRcXHRcXHQgICAgICAgTk9fTlNTX1NVUFBPUlQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNDYtXFx0XFx0ZWxzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNDc6XFx0XFx0XFx0bnhwd2lmaV9zZXRfaGVfbnNzX21jcyhcXHUwMDI2aGVfY2FwLVxcdTAwM2V0eF9tY3NfODAsIG5zcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTQ4LVxcdFxcdFxcdFxcdFxcdCAgICAgICBtaW4oY2ZnX3ZhbHVlLCBod192YWx1ZSkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE1My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTU0OmludCBueHB3aWZpX2NtZF9hcHBlbmRfMTFheF90bHYoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTU1OlxcdFxcdFxcdFxcdHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNTYtXFx0XFx0XFx0XFx0dTggKipidWZmZXIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE1Ny17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE1ODpcXHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKmhlX2NhcCA9IE5VTEw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE1OS1cXHRpbnQgcmV0X2xlbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE2NDpcXHRoZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopKmJ1ZmZlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTY1OlxcdHJldF9sZW4gPSBueHB3aWZpX2ZpbGxfaGVfY2FwX3Rsdihwcml2LCBoZV9jYXAsIGJzc19kZXNjLVxcdTAwM2Vic3NfYmFuZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE2Ni1cXHQqYnVmZmVyICs9IHJldF9sZW47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNzE6aW50IG54cHdpZmlfY21kXzExYXhfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE3Mi1cXHRcXHRcXHQgc3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKmNtZCwgdTE2IGNtZF9hY3Rpb24sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjE3MzpcXHRcXHRcXHQgc3RydWN0IG54cHdpZmlfMTFheF9oZV9jZmcgKmF4X2NmZylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTc0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xNzYtXFx0dTE2IGNtZF9zaXplO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoxNzc6XFx0c3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVhZGVyICpoZWFkZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTE3OC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0xODYtXFx0ICAgIGF4X2NmZy1cXHUwMDNlaGVfY2FwX2NmZy5leHRfaWQgPT0gV0xBTl9FSURfRVhUX0hFX0NBUEFCSUxJVFkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MTg3OlxcdFxcdGhlYWRlciA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIgKiloZV9jZmctXFx1MDAzZXRsdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMTg4LVxcdFxcdGhlYWRlci1cXHUwMDNldHlwZSA9IGNwdV90b19sZTE2KGF4X2NmZy1cXHUwMDNlaGVfY2FwX2NmZy5pZCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyMDE6aW50IG54cHdpZmlfcmV0XzExYXhfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIwMi1cXHRcXHRcXHQgc3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKnJlc3AsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIwMzpcXHRcXHRcXHQgc3RydWN0IG54cHdpZmlfMTFheF9oZV9jZmcgKmF4X2NmZylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjA0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjA1LVxcdHN0cnVjdCBob3N0X2NtZF8xMWF4X2NmZyAqaGVfY2ZnID0gXFx1MDAyNnJlc3AtXFx1MDAzZXBhcmFtcy5heF9jZmc7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIwNjpcXHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIgKmhlYWRlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjA3LVxcdHUxNiBsZWZ0X2xlbiwgdGx2X3R5cGUsIHRsdl9sZW47XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIwOC1cXHR1OCBleHRfaWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjIwOTpcXHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X2hlX2NhcF9jZmcgKmhlX2NhcCA9IFxcdTAwMjZheF9jZmctXFx1MDAzZWhlX2NhcF9jZmc7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTIxMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjExLVxcdGxlZnRfbGVuID0gbGUxNl90b19jcHUocmVzcC1cXHUwMDNlc2l6ZSkgLSBzaXplb2YoKmhlX2NmZykgLSBTX0RTX0dFTjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjEyOlxcdGhlYWRlciA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIgKiloZV9jZmctXFx1MDAzZXRsdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjEzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI0Mi1cXHRcXHRsZWZ0X2xlbiAtPSAoc2l6ZW9mKCpoZWFkZXIpICsgdGx2X2xlbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI0MzpcXHRcXHRoZWFkZXIgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVhZGVyICopKCh1OCAqKWhlYWRlciArXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI0NC1cXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgc2l6ZW9mKCpoZWFkZXIpICtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yNTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI1MTppbnQgbnhwd2lmaV9jbWRfMTFheF9jbWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjUyLVxcdFxcdFxcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjUzOlxcdFxcdFxcdCBzdHJ1Y3Qgbnhwd2lmaV8xMWF4X2NtZF9jZmcgKmF4X2NtZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjU0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjU1OlxcdHN0cnVjdCBueHB3aWZpX2FkYXB0ZXIgKmFkYXB0ZXIgPSBwcml2LVxcdTAwM2VhZGFwdGVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yNTYtXFx0c3RydWN0IGhvc3RfY21kXzExYXhfY21kICpoZV9jbWQgPSBcXHUwMDI2Y21kLVxcdTAwM2VwYXJhbXMuYXhfY21kO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yNTctXFx0dTE2IGNtZF9zaXplO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNTg6XFx0c3RydWN0IG54cHdpZmlfMTFheF9zcl9jbWQgKnNyX2NtZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjU5OlxcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2RhdGEgKnRsdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjYwOlxcdHN0cnVjdCBueHB3aWZpXzExYXhfYmVhbV9jbWQgKmJlYW1fY21kO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjE6XFx0c3RydWN0IG54cHdpZmlfMTFheF9odGNfY21kICpodGNfY21kO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjI6XFx0c3RydWN0IG54cHdpZmlfMTFheF90eG9taV9jbWQgKnR4bW9pX2NtZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjYzOlxcdHN0cnVjdCBueHB3aWZpXzExYXhfdG9sdGltZV9jbWQgKnRvbHRpbWVfY21kO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjQ6XFx0c3RydWN0IG54cHdpZmlfMTFheF90eG9wX2NtZCAqdHhvcF9jbWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI2NTpcXHRzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3NldF9ic3JwX2NtZCAqc2V0X2JzcnBfY21kO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNjY6XFx0c3RydWN0IG54cHdpZmlfMTFheF9sbGRlX2NtZCAqbGxkZV9jbWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI2Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yNzUtXFx0Y2FzZSBOWFBXSUZJXzExQVhDTURfU1JfU1VCSUQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI3NjpcXHRcXHRzcl9jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF9zcl9jbWQgKilcXHUwMDI2YXhfY21kLVxcdTAwM2VwYXJhbTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjc3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyNzg6XFx0XFx0dGx2ID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2RhdGEgKiloZV9jbWQtXFx1MDAzZXZhbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjc5LVxcdFxcdHRsdi1cXHUwMDNlaGVhZGVyLnR5cGUgPSBjcHVfdG9fbGUxNihzcl9jbWQtXFx1MDAzZXR5cGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI4NS1cXHRjYXNlIE5YUFdJRklfMTFBWENNRF9CRUFNX1NVQklEOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzoyODY6XFx0XFx0YmVhbV9jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF9iZWFtX2NtZCAqKVxcdTAwMjZheF9jbWQtXFx1MDAzZXBhcmFtO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yODctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMjkxLVxcdGNhc2UgTlhQV0lGSV8xMUFYQ01EX0hUQ19TVUJJRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MjkyOlxcdFxcdGh0Y19jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF9odGNfY21kICopXFx1MDAyNmF4X2NtZC1cXHUwMDNlcGFyYW07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTI5My1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yOTctXFx0Y2FzZSBOWFBXSUZJXzExQVhDTURfVFhPTUlfU1VCSUQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjI5ODpcXHRcXHR0eG1vaV9jbWQgPVxcdChzdHJ1Y3Qgbnhwd2lmaV8xMWF4X3R4b21pX2NtZCAqKVxcdTAwMjZheF9jbWQtXFx1MDAzZXBhcmFtO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0yOTktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzAzLVxcdGNhc2UgTlhQV0lGSV8xMUFYQ01EX09CU1NfVE9MVElNRV9TVUJJRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzA0OlxcdFxcdHRvbHRpbWVfY21kID0gKHN0cnVjdCBueHB3aWZpXzExYXhfdG9sdGltZV9jbWQgKilcXHUwMDI2YXhfY21kLVxcdTAwM2VwYXJhbTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzA1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMxMC1cXHRjYXNlIE5YUFdJRklfMTFBWENNRF9UWE9QUlRTX1NVQklEOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzozMTE6XFx0XFx0dHhvcF9jbWQgPSAoc3RydWN0IG54cHdpZmlfMTFheF90eG9wX2NtZCAqKVxcdTAwMjZheF9jbWQtXFx1MDAzZXBhcmFtO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMTItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzE3LVxcdGNhc2UgTlhQV0lGSV8xMUFYQ01EX1NFVF9CU1JQX1NVQklEOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzozMTg6XFx0XFx0c2V0X2JzcnBfY21kID0gKHN0cnVjdCBueHB3aWZpXzExYXhfc2V0X2JzcnBfY21kICopXFx1MDAyNmF4X2NtZC1cXHUwMDNlcGFyYW07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMxOS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zMjMtXFx0Y2FzZSBOWFBXSUZJXzExQVhDTURfTExERV9TVUJJRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzI0OlxcdFxcdGxsZGVfY21kID0gKHN0cnVjdCBueHB3aWZpXzExYXhfbGxkZV9jbWQgKilcXHUwMDI2YXhfY21kLVxcdTAwM2VwYXJhbTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzI1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMyOS1cXHRkZWZhdWx0OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzozMzA6XFx0XFx0bnhwd2lmaV9kYmcoYWRhcHRlciwgRVJST1IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTMzMS1cXHRcXHRcXHQgICAgXFxcIiVzOiBVbmtub3duIHN1YiBjb21tYW5kOiAlZFxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zNDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM0MTppbnQgbnhwd2lmaV9yZXRfMTFheF9jbWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzQyLVxcdFxcdFxcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqcmVzcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzQzOlxcdFxcdFxcdCBzdHJ1Y3Qgbnhwd2lmaV8xMWF4X2NtZF9jZmcgKmF4X2NtZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzQ0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzQ1OlxcdHN0cnVjdCBueHB3aWZpX2FkYXB0ZXIgKmFkYXB0ZXIgPSBwcml2LVxcdTAwM2VhZGFwdGVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zNDYtXFx0c3RydWN0IGhvc3RfY21kXzExYXhfY21kICpoZV9jbWQgPSBcXHUwMDI2cmVzcC1cXHUwMDNlcGFyYW1zLmF4X2NtZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzQ3OlxcdHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2RhdGEgKnRsdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtMzQ4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM1Mi1cXHRjYXNlIE5YUFdJRklfMTFBWENNRF9TUl9TVUJJRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6MzUzOlxcdFxcdHRsdiA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19kYXRhICopaGVfY21kLVxcdTAwM2V2YWw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM1NC1cXHRcXHRtZW1jcHkoYXhfY21kLVxcdTAwM2VwYXJhbS5zcl9jZmcucGFyYW0ub2Jzc19wZF9vZmZzZXQub2Zmc2V0LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM4My1cXHRkZWZhdWx0OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzozODQ6XFx0XFx0bnhwd2lmaV9kYmcoYWRhcHRlciwgRVJST1IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM4NS1cXHRcXHRcXHQgICAgXFxcIiVzOiBVbmtub3duIHN1YiBjb21tYW5kOiAlZFxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy0zOTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjM5MzpzdGF0aWMgdTggbnhwd2lmaV9pc19hcF8xMWF4X3R3dF9zdXBwb3J0ZWQoc3RydWN0IG54cHdpZmlfYnNzZGVzY3JpcHRvciAqYnNzX2Rlc2MpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTM5NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDA5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MTA6Ym9vbCBueHB3aWZpX2lzXzExYXhfdHd0X3N1cHBvcnRlZChzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MTE6XFx0XFx0XFx0XFx0ICAgc3RydWN0IG54cHdpZmlfYnNzZGVzY3JpcHRvciAqYnNzX2Rlc2MpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQxMi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQxMzpcXHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKnVzZXJfaGVfY2FwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MTQ6XFx0c3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICpod19oZV9jYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDE2OlxcdGlmIChic3NfZGVzYyBcXHUwMDI2XFx1MDAyNiAoIW54cHdpZmlfaXNfYXBfMTFheF90d3Rfc3VwcG9ydGVkKGJzc19kZXNjKSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDE3OlxcdFxcdG54cHdpZmlfZGJnKHByaXYtXFx1MDAzZWFkYXB0ZXIsIE1TRyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDE4LVxcdFxcdFxcdCAgICBcXFwiQVAgZG9uJ3Qgc3VwcG9ydCB0d3QgZmVhdHVyZVxcXFxuXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDIyLVxcdGlmIChic3NfZGVzYy1cXHUwMDNlYnNzX2JhbmQgXFx1MDAyNiBCQU5EX0EpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDIzOlxcdFxcdGh3X2hlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDI0LVxcdFxcdFxcdHByaXYtXFx1MDAzZWFkYXB0ZXItXFx1MDAzZWh3X2hlX2NhcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDI1OlxcdFxcdHVzZXJfaGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MjYtXFx0XFx0XFx0cHJpdi1cXHUwMDNldXNlcl9oZV9jYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQyNy1cXHR9IGVsc2Uge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0Mjg6XFx0XFx0aHdfaGVfY2FwID0gKHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MjktXFx0XFx0XFx0cHJpdi1cXHUwMDNlYWRhcHRlci1cXHUwMDNlaHdfMmdfaGVfY2FwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0MzA6XFx0XFx0dXNlcl9oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQzMS1cXHRcXHRcXHRwcml2LVxcdTAwM2V1c2VyXzJnX2hlX2NhcDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00MzQtXFx0aWYgKCEoaHdfaGVfY2FwLVxcdTAwM2VoZV9tYWNfY2FwWzBdIFxcdTAwMjYgSEVfTUFDX0NBUF9UV1RfUkVRX1NVUFBPUlQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQzNTpcXHRcXHRueHB3aWZpX2RiZyhwcml2LVxcdTAwM2VhZGFwdGVyLCBNU0csXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQzNi1cXHRcXHRcXHQgICAgXFxcIkZXIGRvbid0IHN1cHBvcnQgVFdUXFxcXG5cXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NDAtXFx0aWYgKCEodXNlcl9oZV9jYXAtXFx1MDAzZWhlX21hY19jYXBbMF0gXFx1MDAyNiBIRV9NQUNfQ0FQX1RXVF9SRVFfU1VQUE9SVCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDQxOlxcdFxcdG54cHdpZmlfZGJnKHByaXYtXFx1MDAzZWFkYXB0ZXIsIE1TRyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDQyLVxcdFxcdFxcdCAgICBcXFwiVVNFUiBIRV9NQUNfQ0FQIGRvbid0IHN1cHBvcnQgVFdUXFxcXG5cXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ0OTp1OCBueHB3aWZpX2lzX3N0YV8xMWF4X3R3dF9yZXFfc3VwcG9ydGVkKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ1MC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ1MTpcXHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKnVzZXJfaGVfY2FwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NTItXFx0dTggcmV0ID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NTYtXFx0XFx0aWYgKHByaXYtXFx1MDAzZWNvbmZpZ19iYW5kcyBcXHUwMDI2IEJBTkRfQUFYKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NTc6XFx0XFx0XFx0dXNlcl9oZV9jYXAgPSAoc3RydWN0IG54cHdpZmlfaWVfdHlwZXNfaGVfY2FwICopcHJpdi1cXHUwMDNldXNlcl9oZV9jYXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTQ1OC1cXHRcXHRlbHNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ1OTpcXHRcXHRcXHR1c2VyX2hlX2NhcCA9IChzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZV9jYXAgKilwcml2LVxcdTAwM2V1c2VyXzJnX2hlX2NhcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDYwLVxcdFxcdHJldCA9IHVzZXJfaGVfY2FwLVxcdTAwM2VoZV9tYWNfY2FwWzBdIFxcdTAwMjYgSEVfTUFDX0NBUF9UV1RfUkVRX1NVUFBPUlQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDY1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NjY6aW50IG54cHdpZmlfY21kX3R3dF9jZmcoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDY3LVxcdFxcdFxcdHN0cnVjdCBob3N0X2NtZF9kc19jb21tYW5kICpjbWQsIHUxNiBjbWRfYWN0aW9uLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0Njg6XFx0XFx0XFx0c3RydWN0IG54cHdpZmlfdHd0X2NmZyAqdHd0X2NmZylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDY5LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDcwOlxcdHN0cnVjdCBueHB3aWZpX2FkYXB0ZXIgKmFkYXB0ZXIgPSBwcml2LVxcdTAwM2VhZGFwdGVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NzEtXFx0c3RydWN0IGhvc3RfY21kX3R3dF9jZmcgKnR3dF9jZmdfY21kID0gXFx1MDAyNmNtZC1cXHUwMDNlcGFyYW1zLnR3dF9jZmc7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjQ3MjpcXHRzdHJ1Y3Qgbnhwd2lmaV90d3Rfc2V0dXAgKnR3dF9zZXR1cDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDczOlxcdHN0cnVjdCBueHB3aWZpX3R3dF90ZWFyZG93biAqdHd0X3RlYXJkb3duO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NzQ6XFx0c3RydWN0IG54cHdpZmlfdHd0X3JlcG9ydCAqdHd0X3JlcG9ydDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NDc1OlxcdHN0cnVjdCBueHB3aWZpX3R3dF9pbmZvcm1hdGlvbiAqdHd0X2luZm9ybWF0aW9uO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0NzY6XFx0c3RydWN0IG54cHdpZmlfYnR3dF9hcF9jb25maWcgKmJ0d3RfYXBfY29uZmlnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00NzctXFx0dTggaTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00ODctXFx0Y2FzZSBOWFBXSUZJXzExQVhfVFdUX1NFVFVQX1NVQklEOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0ODg6XFx0XFx0dHd0X3NldHVwID0gKHN0cnVjdCBueHB3aWZpX3R3dF9zZXR1cCAqKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00ODktXFx0XFx0XFx0dHd0X2NmZ19jbWQtXFx1MDAzZXZhbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNDkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo0OTE6XFx0XFx0bWVtc2V0KHR3dF9zZXR1cCwgMHgwMCwgc2l6ZW9mKHN0cnVjdCBueHB3aWZpX3R3dF9zZXR1cCkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy00OTItXFx0XFx0dHd0X3NldHVwLVxcdTAwM2VpbXBsaWNpdCA9IHR3dF9jZmctXFx1MDAzZXBhcmFtLnR3dF9zZXR1cC5pbXBsaWNpdDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MDQtXFx0XFx0dHd0X3NldHVwLVxcdTAwM2ViY25fbWlzc190aHJlc2hvbGQgPSB0d3RfY2ZnLVxcdTAwM2VwYXJhbS50d3Rfc2V0dXAuYmNuX21pc3NfdGhyZXNob2xkO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1MDU6XFx0XFx0Y21kX3NpemUgKz0gc2l6ZW9mKHN0cnVjdCBueHB3aWZpX3R3dF9zZXR1cCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUwNi1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTA3LVxcdGNhc2UgTlhQV0lGSV8xMUFYX1RXVF9URUFSRE9XTl9TVUJJRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTA4OlxcdFxcdHR3dF90ZWFyZG93biA9IChzdHJ1Y3Qgbnhwd2lmaV90d3RfdGVhcmRvd24gKilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTA5LVxcdFxcdFxcdHR3dF9jZmdfY21kLVxcdTAwM2V2YWw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUxMC1cXHRcXHRtZW1zZXQodHd0X3RlYXJkb3duLCAweDAwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1MTE6XFx0XFx0ICAgICAgIHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3RfdGVhcmRvd24pKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTEyLVxcdFxcdHR3dF90ZWFyZG93bi1cXHUwMDNlZmxvd19pZGVudGlmaWVyID1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MTctXFx0XFx0XFx0dHd0X2NmZy1cXHUwMDNlcGFyYW0udHd0X3RlYXJkb3duLnRlYXJkb3duX2FsbF90d3Q7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjUxODpcXHRcXHRjbWRfc2l6ZSArPSBzaXplb2Yoc3RydWN0IG54cHdpZmlfdHd0X3RlYXJkb3duKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTE5LVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MjAtXFx0Y2FzZSBOWFBXSUZJXzExQVhfVFdUX1JFUE9SVF9TVUJJRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTIxOlxcdFxcdHR3dF9yZXBvcnQgPSAoc3RydWN0IG54cHdpZmlfdHd0X3JlcG9ydCAqKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MjItXFx0XFx0XFx0dHd0X2NmZ19jbWQtXFx1MDAzZXZhbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTIzOlxcdFxcdG1lbXNldCh0d3RfcmVwb3J0LCAweDAwLCBzaXplb2Yoc3RydWN0IG54cHdpZmlfdHd0X3JlcG9ydCkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MjQtXFx0XFx0dHd0X3JlcG9ydC1cXHUwMDNldHlwZSA9IHR3dF9jZmctXFx1MDAzZXBhcmFtLnR3dF9yZXBvcnQudHlwZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTI1OlxcdFxcdGNtZF9zaXplICs9IHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3RfcmVwb3J0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTI2LVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MjctXFx0Y2FzZSBOWFBXSUZJXzExQVhfVFdUX0lORk9STUFUSU9OX1NVQklEOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1Mjg6XFx0XFx0dHd0X2luZm9ybWF0aW9uID0gKHN0cnVjdCBueHB3aWZpX3R3dF9pbmZvcm1hdGlvbiAqKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MjktXFx0XFx0XFx0dHd0X2NmZ19jbWQtXFx1MDAzZXZhbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTMwLVxcdFxcdG1lbXNldCh0d3RfaW5mb3JtYXRpb24sIDB4MDAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjUzMTpcXHRcXHQgICAgICAgc2l6ZW9mKHN0cnVjdCBueHB3aWZpX3R3dF9pbmZvcm1hdGlvbikpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MzItXFx0XFx0dHd0X2luZm9ybWF0aW9uLVxcdTAwM2VmbG93X2lkZW50aWZpZXIgPVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUzNS1cXHRcXHRcXHR0d3RfY2ZnLVxcdTAwM2VwYXJhbS50d3RfaW5mb3JtYXRpb24uc3VzcGVuZF9kdXJhdGlvbjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTM2OlxcdFxcdGNtZF9zaXplICs9IHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3RfaW5mb3JtYXRpb24pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01MzctXFx0XFx0YnJlYWs7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTUzOC1cXHRjYXNlIE5YUFdJRklfMTFBWF9CVFdUX0FQX0NPTkZJR19TVUJJRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTM5OlxcdFxcdGJ0d3RfYXBfY29uZmlnID0gKHN0cnVjdCBueHB3aWZpX2J0d3RfYXBfY29uZmlnICopXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU0MC1cXHRcXHRcXHRcXHQgdHd0X2NmZ19jbWQtXFx1MDAzZXZhbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTQxLVxcdFxcdG1lbXNldChidHd0X2FwX2NvbmZpZywgMHgwMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTQyOlxcdFxcdCAgICAgICBzaXplb2Yoc3RydWN0IG54cHdpZmlfYnR3dF9hcF9jb25maWcpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTQzLVxcdFxcdGJ0d3RfYXBfY29uZmlnLVxcdTAwM2VhcF9iY2FzdF9iZXRfc3RhX3dhaXQgPVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU2MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTYyOlxcdFxcdGNtZF9zaXplICs9IHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV9idHd0X2FwX2NvbmZpZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU2My1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTY0LVxcdGRlZmF1bHQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjU2NTpcXHRcXHRueHB3aWZpX2RiZyhhZGFwdGVyLCBFUlJPUixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTY2LVxcdFxcdFxcdCAgICBcXFwiVW5rbm93biBzdWIgaWQ6ICVkXFxcXG5cXFwiLCB0d3RfY2ZnLVxcdTAwM2VzdWJfaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU3NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTc1OmludCBueHB3aWZpX3JldF90d3RfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU3Ni1cXHRcXHRcXHRzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqcmVzcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTc3OlxcdFxcdFxcdHN0cnVjdCBueHB3aWZpX3R3dF9jZmcgKnR3dF9jZmcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU3OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmMtNTg2LVxcdCAgICB0d3RfY2ZnLVxcdTAwM2VzdWJfaWQgPT0gTlhQV0lGSV8xMUFYX1RXVF9SRVBPUlRfU1VCSUQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmM6NTg3OlxcdFxcdHN0cnVjdCBueHB3aWZpX3R3dF9yZXBvcnQgKnR3dF9yZXBvcnQgPVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYzo1ODg6XFx0XFx0XFx0KHN0cnVjdCBueHB3aWZpX3R3dF9yZXBvcnQgKil0d3RfY2ZnX2NtZC1cXHUwMDNldmFsO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguYy01ODktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jOjU5MDpcXHRcXHRtZW1jcHkoXFx1MDAyNnR3dF9jZmctXFx1MDAzZXBhcmFtLnR3dF9yZXBvcnQsIHR3dF9yZXBvcnQsIHNpemVvZihzdHJ1Y3Qgbnhwd2lmaV90d3RfcmVwb3J0KSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5jLTU5MS1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMi0vKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDozOiAqIG54cHdpZmk6IDgwMi4xMWF4IHN1cHBvcnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oPTE3PXN0YXRpYyBpbmxpbmUgdTE2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjE4Om54cHdpZmlfZ2V0X2hlX25zc19tY3MoX19sZTE2IG1jc19tYXBfc2V0LCBpbnQgbnNzKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTE5LVxcdHJldHVybiAoKGxlMTZfdG9fY3B1KG1jc19tYXBfc2V0KSBcXHUwMDNlXFx1MDAzZSAoMiAqIChuc3MgLSAxKSkpIFxcdTAwMjYgMHgzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaD0yMj1zdGF0aWMgaW5saW5lIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6MjM6bnhwd2lmaV9zZXRfaGVfbnNzX21jcyhfX2xlMTYgKm1jc19tYXBfc2V0LCBpbnQgbnNzLCBpbnQgdmFsdWUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMjQtXFx0dTE2IHRlbXA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjMxOmJvb2wgbnhwd2lmaV9pc18xMWF4X3R3dF9zdXBwb3J0ZWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6MzI6XFx0XFx0XFx0XFx0ICAgc3RydWN0ICBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjM0OnZvaWQgbnhwd2lmaV91cGRhdGVfMTFheF9jYXAoc3RydWN0IG54cHdpZmlfYWRhcHRlciAqYWRhcHRlcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtMzUtXFx0XFx0XFx0ICAgICBzdHJ1Y3QgaHdfc3BlY19leHRlbnNpb24gKmh3X2hlX2NhcCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTM2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDozNzpib29sIG54cHdpZmlfMTFheF9iYW5kY29uZmlnX2FsbG93ZWQoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6Mzg6XFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3Qgbnhwd2lmaV9ic3NkZXNjcmlwdG9yICpic3NfZGVzYyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTM5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo0MDppbnQgbnhwd2lmaV9jbWRfYXBwZW5kXzExYXhfdGx2KHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjQxOlxcdFxcdFxcdFxcdHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC00Mi1cXHRcXHRcXHRcXHR1OCAqKmJ1ZmZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo0NDppbnQgbnhwd2lmaV9maWxsX2hlX2NhcF90bHYoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NDU6XFx0XFx0XFx0ICAgIHN0cnVjdCBueHB3aWZpX2llX3R5cGVzX2hlX2NhcCAqaGVfY2FwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC00Ni1cXHRcXHRcXHQgICAgdTE2IGJhbmRzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NDc6aW50IG54cHdpZmlfY21kXzExYXhfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTQ4LVxcdFxcdFxcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NDk6XFx0XFx0XFx0IHN0cnVjdCBueHB3aWZpXzExYXhfaGVfY2ZnICpheF9jZmcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC01MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NTE6aW50IG54cHdpZmlfcmV0XzExYXhfY2ZnKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTUyLVxcdFxcdFxcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqcmVzcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NTM6XFx0XFx0XFx0IHN0cnVjdCBueHB3aWZpXzExYXhfaGVfY2ZnICpheF9jZmcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC01NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NTU6aW50IG54cHdpZmlfY21kXzExYXhfY21kKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTU2LVxcdFxcdFxcdCBzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NTc6XFx0XFx0XFx0IHN0cnVjdCBueHB3aWZpXzExYXhfY21kX2NmZyAqYXhfY21kKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4LmgtNTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjU5OmludCBueHB3aWZpX3JldF8xMWF4X2NtZChzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC02MC1cXHRcXHRcXHQgc3RydWN0IGhvc3RfY21kX2RzX2NvbW1hbmQgKnJlc3AsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oOjYxOlxcdFxcdFxcdCBzdHJ1Y3Qgbnhwd2lmaV8xMWF4X2NtZF9jZmcgKmF4X2NtZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTYyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo2MzppbnQgbnhwd2lmaV9jbWRfdHd0X2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC02NC1cXHRcXHRcXHRzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqY21kLCB1MTYgY21kX2FjdGlvbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6NjU6XFx0XFx0XFx0c3RydWN0IG54cHdpZmlfdHd0X2NmZyAqdHd0X2NmZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo2NzppbnQgbnhwd2lmaV9yZXRfdHd0X2NmZyhzdHJ1Y3Qgbnhwd2lmaV9wcml2YXRlICpwcml2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC02OC1cXHRcXHRcXHRzdHJ1Y3QgaG9zdF9jbWRfZHNfY29tbWFuZCAqcmVzcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWF4Lmg6Njk6XFx0XFx0XFx0c3RydWN0IG54cHdpZmlfdHd0X2NmZyAqdHd0X2NmZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFheC5oLTcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaDo3MTp1OCBueHB3aWZpX2lzX3N0YV8xMWF4X3R3dF9yZXFfc3VwcG9ydGVkKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExYXguaC03Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jLTItLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYzozOiAqIG54cHdpZmk6IDgwMi4xMWggaGVscGVyc1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jLTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jLTEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jOjEzOnZvaWQgbnhwd2lmaV9pbml0XzExaF9wYXJhbXMoc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYy0xNC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYy0xOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYzoxOTppbnQgbnhwd2lmaV9pc18xMWhfYWN0aXZlKHN0cnVjdCBueHB3aWZpX3ByaXZhdGUgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFoLmMtMjAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFoLmM9MjU9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYzoyNjpueHB3aWZpXzExaF9wcm9jZXNzX2luZnJhX2pvaW4oc3RydWN0IG54cHdpZmlfcHJpdmF0ZSAqcHJpdiwgdTggKipidWZmZXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvMTFoLmM6Mjc6XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBueHB3aWZpX2Jzc2Rlc2NyaXB0b3IgKmJzc19kZXNjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpLzExaC5jLTI4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS8xMWguYzoyOTpcXHRzdHJ1Y3Qgbnhwd2lmaV9pZV90eXBlc19oZWFkZXIgKmllX2hlYWRlcjtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTE6NDI6MDIuNjUzMjMyOTA2WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDI3MjEzODYxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgXCJueHB3aWZpXCIgRHJpdmVyKipcblxuQWxyaWdodCwgc28gYG54cHdpZmlgLi4uIHRoYXQgcmluZ3MgYSBiZWxsLiBOb3cgdGhlIHF1ZXN0aW9uIGlzLCBpcyB0aGlzIGEgZ2VudWluZWx5IGluZGVwZW5kZW50IGRyaXZlciwgb3IgaXMgaXQgYSBzeW1ib2xpYyBsaW5rIG9yIHNvbWUga2luZCBvZiByZWJyYW5kaW5nIG9mIGFuIGV4aXN0aW5nIG9uZT8gTXkgZmlyc3QgaW5zdGluY3QgaXMgdG8gZGlnIGludG8gdGhlIHNvdXJjZSBjb2RlIHRvIGdldCBhIGhhbmRsZSBvbiBpdC4gTGV0J3Mgc2VlLi4uIGEgcXVpY2sgY2hlY2sgb2YgdGhlIHN0YW5kYXJkIGRyaXZlciBsYXlvdXQgaXMgaW4gb3JkZXIuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGdldCBpbnRvIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyIC0gdGhlIGNvbmZpZ3VyYXRpb24gYW5kIGJ1aWxkIGZpbGVzLlxuXG5UaGUgb2J2aW91cyBwbGFjZXMgdG8gc3RhcnQgYXJlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnYCBhbmQgYE1ha2VmaWxlYC4gVGhlIEtjb25maWcgZmlsZSBzaG91bGQgZGVmaW5lIHRoZSByZWxldmFudCBrZXJuZWwgY29uZmlndXJhdGlvbiBvcHRpb25zLiBJZiBpdCdzIGEgY29tcGxldGVseSBuZXcsIHN0YW5kLWFsb25lIGRyaXZlciwgSSdkIGV4cGVjdCB0byBzZWUgaXRzIG93biBzZXQgb2Ygb3B0aW9ucy4gSWYgaXQncyBhIHJlbmFtZSBvciBoZWF2aWx5IG1vZGlmaWVkIHZhcmlhbnQsIHRoZSBLY29uZmlnIG1pZ2h0IGluY2x1ZGUgYW5kIGluaGVyaXQgY29uZmlndXJhdGlvbnMgZnJvbSBhbm90aGVyIGRyaXZlciwgb3IgbWFrZSBleHRlbnNpdmUgdXNlIG9mICdzZWxlY3QnIHN0YXRlbWVudHMuXG5cblRoZSBNYWtlZmlsZSwgb2YgY291cnNlLCB3aWxsIHRlbGwgdGhlIGJ1aWxkIHN5c3RlbSBob3cgdG8gY29tcGlsZSBhbmQgbGluayB0aGUgY29kZS4gQSBsb29rIGF0IHRoZSBzb3VyY2UgZmlsZXMgaW5jbHVkZWQsIHRoZSBkZXBlbmRlbmNpZXMsIGFuZCB0aGUgbGlua2luZyB0YXJnZXRzIHdpbGwgcXVpY2tseSByZXZlYWwgaG93IHRoaXMgZHJpdmVyIGlzIGFyY2hpdGVjdGVkIGFuZCBpZiBpdCdzIGJhc2VkIG9uIHNvbWUgb3RoZXIgZXhpc3RpbmcgY29kZSBiYXNlIG9yIGlzIGEgY29tcGxldGVseSBzdGFuZC1hbG9uZSBpbXBsZW1lbnRhdGlvbi4gVGhpcyBpcyB0aGUgZmFzdGVzdCB3YXkgdG8gdW5kZXJzdGFuZCB0aGUgcmVsYXRpb25zaGlwcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjAxNjYsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxMTo0MjowNi45MjUzNzM0MzhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI5MTYxOTA3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBOWFBXSUZJXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZzoyOmNvbmZpZyBOWFBXSUZJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJOWFAgV2lGaSBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnLTExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWc6MTI6Y29uZmlnIE5YUFdJRklfU0RJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWctMTMtXFx0dHJpc3RhdGUgXFxcIk5YUCBXaUZpIERyaXZlciBmb3IgSVc2MXhcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDExOjQyOjA3LjA1NDU0NjY5NVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ0MTQ2OTU3OTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkFuYWx5emluZyB0aGUgTlhQIFdpRmkgRHJpdmVyOiBCdXMgSW50ZXJmYWNlIFN1cHBvcnQqKlxuXG5BbHJpZ2h0LCBzbyBJJ3ZlIGdvdCB0aGlzIE5YUCBXaUZpIGRyaXZlciBpbiBmcm9udCBvZiBtZS4gSW1tZWRpYXRlbHksIG15IGZvY3VzIHNoaWZ0cyB0byB0aGUgaGFyZHdhcmUgaW50ZXJmYWNlLiBHaXZlbiBteSBleHBlcmllbmNlLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgZnVuZGFtZW50YWwgYXJjaGl0ZWN0dXJlLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHRvIGRpdmUgcmlnaHQgaW50byB0aGUgY29kZSB0byBkZXRlcm1pbmUgdGhlIHN1cHBvcnRlZCBidXMgdHlwZXMuIElzIGl0IFNESU8/IFBDSWU/IE1heWJlIGV2ZW4gc29tZSBwcm9wcmlldGFyeSBpbnRlcmZhY2U/IFVuZGVyc3RhbmRpbmcgdGhlIGJ1cyBjb25uZWN0aW9uIGlzIGFic29sdXRlbHkgY3JpdGljYWwgdG8gZ3Jhc3BpbmcgdGhlIGRyaXZlcidzIHVuZGVybHlpbmcgY29tbXVuaWNhdGlvbiBzdHJhdGVneSwgaXRzIHBlcmZvcm1hbmNlIGxpbWl0YXRpb25zLCBhbmQgcG90ZW50aWFsIGludGVncmF0aW9uIGNoYWxsZW5nZXMgd2l0aCBzcGVjaWZpYyBoYXJkd2FyZSBwbGF0Zm9ybXMuIEtub3dpbmcgdGhlIHN1cHBvcnRlZCBidXMoc2VzKSBpcyB0aGUgY3JpdGljYWwgZmlyc3Qgc3RlcC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjA3MjgsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxMTo0MjoxMS40NjkyNDYwNzRaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjE2NjUyNTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE5YUFdJRklcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZzoyOmNvbmZpZyBOWFBXSUZJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJOWFAgV2lGaSBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnLTExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWc6MTI6Y29uZmlnIE5YUFdJRklfU0RJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWctMTMtXFx0dHJpc3RhdGUgXFxcIk5YUCBXaUZpIERyaXZlciBmb3IgSVc2MXhcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDExOjQyOjExLjUzMDkxNjg0M1oiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5NDcwNTg0NTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgYXMgaWYgdGhleSdyZSBteSBvd246XG5cbioqQW5hbHl6aW5nIHRoZSBLY29uZmlnIEZpbGUqKlxuXG5BbHJpZ2h0LCB0aW1lIHRvIGdldCB0byB3b3JrLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIFwiTGV0J3MgcmVhZCB0aGUgS2NvbmZpZyBmaWxlLlwiIFRoYXQncyB0aGUgY29yZSBvZiBpdCwgcmVhbGx5LiBJdCdzIHRoZSBzdGFydGluZyBwb2ludC4gSSBuZWVkIHRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2YgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgZGVwZW5kZW5jaWVzLCBhbmQgdGhlaXIgb3ZlcmFsbCBzdHJ1Y3R1cmUuIFRoaXMgZmlsZSBpcyB0aGUgYmx1ZXByaW50LCB0aGUgaGVhcnQgb2YgdGhlIGNvbmZpZ3VyYXRpb24gc3lzdGVtLCBzbyB1bmRlcnN0YW5kaW5nIGl0IHRob3JvdWdobHkgaXMgcGFyYW1vdW50IGJlZm9yZSBJIHByb2NlZWQgYW55IGZ1cnRoZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxMTEwLCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxMTo0MjoxNC40Nzc5Nzc2MzlaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjM4MzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbiAgIDI6XFx0Y29uZmlnIE5YUFdJRklcXG4gICAzOlxcdFxcdHRyaXN0YXRlIFxcXCJOWFAgV2lGaSBEcml2ZXJcXFwiXFxuICAgNDpcXHRcXHRkZXBlbmRzIG9uIENGRzgwMjExXFxuICAgNTpcXHRcXHRoZWxwXFxuICAgNjpcXHRcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciB3aXJlbGVzcyBhZGFwdGVycyBiYXNlZCBvbiBOWFBcXG4gICA3OlxcdFxcdCAgODAyLjExbi9hYyBjaGlwc2V0cy5cXG4gICA4OlxcdFxcbiAgIDk6XFx0XFx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGl0IGFzIGEgbW9kdWxlLCBpdCB3aWxsIGJlIGNhbGxlZFxcbiAgMTA6XFx0XFx0ICBueHB3aWZpLlxcbiAgMTE6XFx0XFxuICAxMjpcXHRjb25maWcgTlhQV0lGSV9TRElPXFxuICAxMzpcXHRcXHR0cmlzdGF0ZSBcXFwiTlhQIFdpRmkgRHJpdmVyIGZvciBJVzYxeFxcXCJcXG4gIDE0OlxcdFxcdGRlcGVuZHMgb24gTlhQV0lGSSBcXHUwMDI2XFx1MDAyNiBNTUNcXG4gIDE1OlxcdFxcdHNlbGVjdCBGV19MT0FERVJcXG4gIDE2OlxcdFxcdHNlbGVjdCBXQU5UX0RFVl9DT1JFRFVNUFxcbiAgMTc6XFx0XFx0aGVscFxcbiAgMTg6XFx0XFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3Igd2lyZWxlc3MgYWRhcHRlcnMgYmFzZWQgb24gTlhQXFxuICAxOTpcXHRcXHQgIElXNjF4IGludGVyZmFjZS5cXG4gIDIwOlxcdFxcbiAgMjE6XFx0XFx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGl0IGFzIGEgbW9kdWxlLCBpdCB3aWxsIGJlIGNhbGxlZFxcbiAgMjI6XFx0XFx0ICBueHB3aWZpX3NkaW8uXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDExOjQyOjE0LjQ3ODA0NTM1OVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1OTE0NjQ1NzIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIE5YUCBXaUZpIERyaXZlciBhbmQgU3l6a2FsbGVyIENvbXBhdGliaWxpdHkqKlxuXG5Pa2F5LCBzbyB0aGlzIGRyaXZlciBzcGVjaWZpY2FsbHkgdGFyZ2V0cyBTRElPIChgTlhQV0lGSV9TRElPYCksIHdoaWNoIGltbWVkaWF0ZWx5IHJhaXNlcyBhIGZsYWcuIE15IGZpcnN0IHRob3VnaHQgaXM6IGNhbiBJIGV2ZW4gcmVhY2ggdGhpcyB0aGluZyBpbiBhIFFFTVUgZW52aXJvbm1lbnQ/IFNESU8gZGV2aWNlcyBhcmUgbm90b3Jpb3VzbHkgZGlmZmljdWx0IHRvIGVtdWxhdGUgd2VsbC4gVGhleSB1c3VhbGx5IHJlcXVpcmUgYSBzcGVjaWZpYyBTREhDSSBjb250cm9sbGVyIG1vZGVsLCBhbmQgdGhlbiBhbiBTRElPIGRldmljZSBtb2RlbCBpdHNlbGYuIEknZCBuZWVkIHRvIGNvbmZpcm0gdGhlIGF2YWlsYWJpbGl0eSBvZiB0aGVzZSBzcGVjaWZpYyBtb2RlbHMgaW4gdGhlIFFFTVUgY29uZmlndXJhdGlvbiBJJ20gd29ya2luZyB3aXRoLlxuXG5UaGUgYmlnZ2VyIGlzc3VlLCBhbmQgdGhpcyBpcyB3aGVyZSBteSBleHBlcmllbmNlIGtpY2tzIGluLCBpcyB0aGF0IHN5emthbGxlciBkb2Vzbid0IHR5cGljYWxseSBoYW5kbGUgU0RJTyBkZXZpY2VzIGRpcmVjdGx5IGluIHRoZSBzYW1lIHdheSBpdCBoYW5kbGVzIFVTQiBvciBQQ0kuIFRoZXJlIGlzbid0IGEgZ2VuZXJpYyBTRElPIGZ1enplciBiYWtlZCBpbnRvIHN5emthbGxlciBsaWtlIHRoZXJlIGFyZSBmb3IgdGhvc2Ugb3RoZXIgaW50ZXJmYWNlcy4gSSdtIHVzZWQgdG8gVVNCIChkdW1teV9oY2QpLCBQQ0kgKHZpYSBRRU1VKSwgYW5kIHZoY2kgKEJsdWV0b290aCkgYXMgdGhlIGJyZWFkIGFuZCBidXR0ZXIgdGFyZ2V0cy4gTm8gZ2VuZXJpYyBTRElPIGZ1enplciBleGlzdHMgd2l0aGluIGl0cyBhcmNoaXRlY3R1cmUuXG5cbkhhbmcgb27igKYgaXMgdGhlcmUgZXZlbiBhbiBTRElPIGZ1enplciB3aXRoaW4gc3l6a2FsbGVyPyBEb3VibGUgY2hlY2tpbmfigKYgbm9wZS4gTm8gZ2VuZXJpYyBTRElPIGZ1enplciBhdCBhbGwuXG5cblRoaXMgbWFrZXMgbWUgd29uZGVyIGlmIHRoZXJlJ3MgYSBVU0Igb3IgUENJIHZhcmlhbnQgb2YgdGhpcyBueHB3aWZpIGRyaXZlciBJIGNvdWxkIHVzZSBhcyBhIHRhcmdldC4gTGV0IG1lIGludmVzdGlnYXRlIG90aGVyIGNvbmZpZ3VyYXRpb25zLCBhbmQgc2VlIGlmIG90aGVyIG9wdGlvbnMgYXJlIGF2YWlsYWJsZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE1ODAsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjYsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxMTo0MjoyMC4zOTI2OTM2NloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzYxNjg4ODcxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBOWFBXSUZJX1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL0tjb25maWc9Mj1jb25maWcgTlhQV0lGSVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbnhwL254cHdpZmkvS2NvbmZpZy0xMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnOjEyOmNvbmZpZyBOWFBXSUZJX1NESU9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9LY29uZmlnLTEzLVxcdHRyaXN0YXRlIFxcXCJOWFAgV2lGaSBEcml2ZXIgZm9yIElXNjF4XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxMTo0MjoyMC43NTQzOTEwMzFaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzAyNDUzNjA5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQncyBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqTmFycm93aW5nIHRoZSBTY29wZTogU0RJTyBGb2N1cyoqXG5cbkFscmlnaHQsIHRoZSBpbml0aWFsIGh1bmNoIHBvaW50cyBzcXVhcmVseSBhdCBTRElPLiBCdXQsIGhvbGQgb24gYSBzZWNvbmQuIEJlZm9yZSBJIGp1bXAgdG8gY29uY2x1c2lvbnMgYW5kIGRlZGljYXRlIGFsbCBteSB0aW1lIHRvIHRoYXQgcGFydGljdWxhciBpbnRlcmZhY2UsIGl0J3MgYWx3YXlzIHdpc2UgdG8gYmUgdGhvcm91Z2guIEkgbmVlZCB0byBxdWlja2x5IHZlcmlmeSB0aGF0IHRoZXJlIGFyZW4ndCBhbnkgb3RoZXIgYnVzIHR5cGVzIGx1cmtpbmcgd2l0aGluIHRoYXQgZGlyZWN0b3J5LCBiZWNhdXNlIHRoYXQgd291bGQgY2hhbmdlIGV2ZXJ5dGhpbmcuIEEgcXVpY2sgc2NhbiB0byBlbnN1cmUgU0RJTyBpcyB0aGUgKm9ubHkqIG9wdGlvbiwgYW5kIHRoZW4gSSBjYW4gcHJvY2VlZCBjb25maWRlbnRseS4gSSBkb24ndCB3YW50IHRvIHdhc3RlIHRpbWUgb24gYSByZWQgaGVycmluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjIxOTcsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxMTo0MjoyMy43Nzg5Mjk4OTVaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiY29kZXNlYXJjaC1kaXItaW5kZXgiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5NDg2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkRpclwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJGaWxlc1wiOiBbXG4gICAgXCIxMWFjLmNcIixcbiAgICBcIjExYWMuaFwiLFxuICAgIFwiMTFheC5jXCIsXG4gICAgXCIxMWF4LmhcIixcbiAgICBcIjExaC5jXCIsXG4gICAgXCIxMW4uY1wiLFxuICAgIFwiMTFuLmhcIixcbiAgICBcIjExbl9hZ2dyLmNcIixcbiAgICBcIjExbl9hZ2dyLmhcIixcbiAgICBcIjExbl9yeHJlb3JkZXIuY1wiLFxuICAgIFwiMTFuX3J4cmVvcmRlci5oXCIsXG4gICAgXCJjZmcuaFwiLFxuICAgIFwiY2ZnODAyMTEuY1wiLFxuICAgIFwiY2ZnODAyMTEuaFwiLFxuICAgIFwiY2ZwLmNcIixcbiAgICBcImNtZGV2dC5jXCIsXG4gICAgXCJjbWRldnQuaFwiLFxuICAgIFwiZGVidWdmcy5jXCIsXG4gICAgXCJldGh0b29sLmNcIixcbiAgICBcImZ3LmhcIixcbiAgICBcImllLmNcIixcbiAgICBcImluaXQuY1wiLFxuICAgIFwiam9pbi5jXCIsXG4gICAgXCJtYWluLmNcIixcbiAgICBcIm1haW4uaFwiLFxuICAgIFwic2Nhbi5jXCIsXG4gICAgXCJzZGlvLmNcIixcbiAgICBcInNkaW8uaFwiLFxuICAgIFwic3RhX2NmZy5jXCIsXG4gICAgXCJzdGFfY21kLmNcIixcbiAgICBcInN0YV9ldmVudC5jXCIsXG4gICAgXCJzdGFfcnguY1wiLFxuICAgIFwic3RhX3R4LmNcIixcbiAgICBcInR4cnguY1wiLFxuICAgIFwidWFwX2NtZC5jXCIsXG4gICAgXCJ1YXBfZXZlbnQuY1wiLFxuICAgIFwidWFwX3R4cnguY1wiLFxuICAgIFwidXRpbC5jXCIsXG4gICAgXCJ1dGlsLmhcIixcbiAgICBcIndtbS5jXCIsXG4gICAgXCJ3bW0uaFwiXG4gIF0sXG4gIFwiU3ViZGlyc1wiOiBudWxsXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxMTo0MjoyMy43NzkwMjYyNDVaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTA3NTUxMzIxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFJlYWNoYWJpbGl0eSBvZiB0aGUgYG54cHdpZmlgIFNESU8gRHJpdmVyIGZvciBGdXp6aW5nKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBgbnhwd2lmaWAgZHJpdmVyLCBhbmQgdGhlIG9ubHkgZmlsZXMgYXJlIGBzZGlvLmNgIGFuZCBgc2Rpby5oYC4gUmlnaHQgYXdheSwgdGhhdCdzIGEgcHJldHR5IHN0cm9uZyBpbmRpY2F0b3IgdGhhdCB0aGlzIGlzIHB1cmVseSBhbiBTRElPLWJhc2VkIGRyaXZlci4gVGhhdCdzIG15IGZpcnN0IHRob3VnaHQuXG5cblRoZSBuZXh0IHRoaW5nIHRoYXQganVtcHMgb3V0IGF0IG1lIGlzIHRoYXQgc3l6a2FsbGVyLCB0byBteSBrbm93bGVkZ2UsIGRvZXNuJ3QgaGF2ZSBhIGRlZGljYXRlZCBTRElPIGZ1enplciBzZXQgdXAuIEdpdmVuIHRoYXQsIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBHQ0Ugb3IgUUVNVSwgdGhlIGNvZGUgcGF0aHMgd2l0aGluIHRoaXMgZHJpdmVyIGFyZSBwcm9iYWJseSB1bnJlYWNoYWJsZS4gVGhhdCdzIGEgaHVnZSBwb3RlbnRpYWwgcHJvYmxlbSBmb3IgdGhvcm91Z2ggdGVzdGluZy4gSSdtIHRoaW5raW5nIGFib3V0IHdheXMgdG8gdHJpZ2dlciBpdC5cblxuSG1tLCB3YWl0Li4uIGNvdWxkIHRoaXMgYmUgYWNjZXNzZWQgdGhyb3VnaCBzb21ldGhpbmcgbGlrZSBgbWFjODAyMTFfaHdzaW1gPyBJJ20gdHJ5aW5nIHRvIHJlbWVtYmVyIGlmIHRoZXJlJ3MgYSBjb25uZWN0aW9uIHRoZXJlLiBObywgdGhhdCdzIHdyb25nLiBgbWFjODAyMTFfaHdzaW1gIGlzIGEgY29tcGxldGVseSBzZXBhcmF0ZSB0aGluZy4gSXQncyBhIGRyaXZlciB0aGF0IGZha2VzIGEgbWFjODAyMTEgZGV2aWNlLiBUaGUgYG54cHdpZmlgIGRyaXZlciBpcyBhIGZ1bGxtYWMgZHJpdmVyLCBhbmQgaXQgcmVnaXN0ZXJzIGRpcmVjdGx5IHdpdGggY2ZnODAyMTEuIEFuZCwgaXQgdGFsa3MgdG8gaXRzIGZpcm13YXJlIG92ZXIgU0RJTy5cblxuVGhlcmVmb3JlLCBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQgYG54cHdpZmlgIGlzIGRlZmluaXRlbHkgcmVnaXN0ZXJpbmcgd2l0aCBgY2ZnODAyMTFgLiBUaGF0IHdpbGwgbWFrZSBhIGh1Z2UgZGlmZmVyZW5jZSBpbiBob3cgdG8gYXBwcm9hY2ggcmVhY2hpbmcgdGhlIGNvZGUgd2l0aCBmdXp6aW5nLiBMZXQncyBsb29rIGludG8gdGhhdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjI3MjMsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNzksIlRvb2xDYWxscyI6WyJjb2Rlc2VhcmNoLWRpci1pbmRleCJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDExOjQyOjI4Ljg1NDU0MjU5N1oiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjMxMzg1MjksIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1hYzgwMjExXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL254cC9ueHB3aWZpL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTE6NDI6MjguOTE3NjkwNTg2WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg2Mzg1MDI5NTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqVW5yZWFjaGFibGUgQ29kZSBpbiB0aGUgTlhQIFdpRmkgRHJpdmVyKipcblxuT2theSwgc28gbG9va2luZyBhdCB0aGlzIHBhdGNoLCBteSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgdGhhdCBpdCdzIGRlYWxpbmcgd2l0aCB0aGUgYG54cHdpZmlgIHdpcmVsZXNzIGRyaXZlciwgd2hpY2ggdXRpbGl6ZXMgYGNmZzgwMjExYC4gVGhhdCdzIHRoZSBzdGFydGluZyBwb2ludC4gVGhlIGNydWNpYWwgaXNzdWUgaGVyZSwgdGhvdWdoLCBpcyB0aGF0IHRoaXMgZHJpdmVyIHJlbGllcyBvbiBhbiBTRElPIGJ1cyBhbmQsIGltcG9ydGFudGx5LCBzcGVjaWZpYyBoYXJkd2FyZSDigJMgdGhlIE5YUCBJVzYxeCBjaGlwc2V0LiBJbiBvdXIgc3RhbmRhcmQgZnV6emluZyBzZXR1cCwgZWl0aGVyIHdpdGggc3l6a2FsbGVyIG9yIFFFTVUsIHdlIGRvbid0IGhhdmUgdGhhdCBoYXJkd2FyZS4gVGhlcmUncyBubyBTRElPIGVtdWxhdG9yIHByZXNlbnQsIGF0IGxlYXN0IG5vdCBvbmUgdGhhdCdzIGVhc2lseSBhY2Nlc3NpYmxlIG9yIGludGVncmF0ZWQgaW50byB0aGUgc3RhbmRhcmQgZW52aXJvbm1lbnRzIHdlJ3JlIHVzaW5nLlxuXG5UaGVyZWZvcmUsIHRoZSBpbml0aWFsaXphdGlvbiBvZiB0aGUgZHJpdmVyIGFuZCBhbnkgb2YgdGhlIHN1YnNlcXVlbnQgcGFja2V0IHByb2Nlc3NpbmcgZnVuY3Rpb25zLCBzcGVjaWZpY2FsbHksIHRoZSBgbnhwd2lmaV8xMW5fY3JlYXRlX3J4X3Jlb3JkZXJfdGJsYCBmdW5jdGlvbiwgYXJlIHNpbXBseSB1bnJlYWNoYWJsZS4gVGhpcyBpcyBiZWNhdXNlIHRoZSBkcml2ZXIgd2lsbCBuZXZlciBzdWNjZXNzZnVsbHkgcHJvYmUgZHVlIHRvIHRoZSBtaXNzaW5nIFNESU8gaGFyZHdhcmUgZW11bGF0aW9uLlxuXG5MZXQgbWUganVzdCBkb3VibGUtY2hlY2ssIGJlY2F1c2UgaXQncyBhbHdheXMgd29ydGggYSB0aG9yb3VnaCBsb29rLiBJcyB0aGVyZSBhbnkgd2F5IFNESU8gaXRzZWxmIGlzIGZ1enplZD8gTm9wZS4gU3l6a2FsbGVyIGRvZXNuJ3QgaGF2ZSBhIGBzeXpfc2Rpb18qYCBwc2V1ZG8tc3lzY2FsbCwgYW5kIHdoaWxlIFFFTVUgKmRvZXMqIGhhdmUgc29tZSBTREhDSSBlbXVsYXRpb24sIHdlJ2QgbmVlZCBhIHZlcnkgc3BlY2lmaWMgU0RJTyBkZXZpY2UgbW9kZWwgZW11bGF0aW5nIHRoZSBOWFAgSVc2MXggdG8gZXZlbiBnZXQgdGhlIGRyaXZlciB0byBwcm9iZSBhbmQgaW5pdGlhbGl6ZS4gUUVNVSdzIGRlZmF1bHQgc2V0dXAgZG9lc24ndCBvZmZlciB0aGF0LiBTbywgdGhlIGRyaXZlciB3b24ndCBwcm9iZSwgYW5kIHRoZSBmdW5jdGlvbiBpcyBuZXZlciBnb2luZyB0byBnZXQgZXhlY3V0ZWQsIHNpbXBsZSBhcyB0aGF0LlxuXG5MZXQgbWUganVzdCBxdWlja2x5IHJldmlldyB0aGUgcGF0Y2ggYWdhaW4gdG8gbWFrZSBzdXJlIGl0IGRvZXNuJ3QgdG91Y2ggYW55dGhpbmcgZWxzZSB0aGF0IG1pZ2h0IGJlIHJlbGV2YW50LiBJdCdzIGp1c3QgdG91Y2hpbmcgZmlsZXMgd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9ueHAvbnhwd2lmaS9gIHNwZWNpZmljYWxseSBgMTFuX3J4cmVvcmRlci5jYCBhbmQgYG1haW4uaGAg4oCTIGFsbCBpbnNpZGUgdGhlIGBueHB3aWZpYCBkcml2ZXIuIENvbmZpcm1lZC5cblxuU28sIGdpdmVuIHRoYXQgdGhpcyBwYXRjaCBtb2RpZmllcyBjb2RlIHdpdGhpbiBhIGRyaXZlciB0aGF0J3MgaW5hY2Nlc3NpYmxlIGluIG91ciBzdGFuZGFyZCBmdXp6aW5nIGVudmlyb25tZW50cywgZHVlIHRvIHRoZSBsYWNrIG9mIFNESU8gaGFyZHdhcmUgZW11bGF0aW9uLCBhbmQgdGhlIGFic2VuY2Ugb2YgYW55IFNESU8tc3BlY2lmaWMgZnV6emluZyBjYXBhYmlsaXRpZXMgaW4gc3l6a2FsbGVyLCBJIGhhdmUgdG8gY29uY2x1ZGUgdGhhdCBpdCBpcyBub3Qgd29ydGggZnV6emluZy4gSSB3aWxsIHNldCBgV29ydGhGdXp6aW5nYCB0byBgZmFsc2VgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzI4MywiT3V0cHV0VG9rZW5zIjoxMDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTE6NDI6MzcuNTU2MTk3NDE5WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQyOTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG54cHdpZmkgd2lyZWxlc3MgZHJpdmVyLCB3aGljaCBpcyBhbiBTRElPLWJhc2VkIGRyaXZlciBmb3IgTlhQIElXNjF4IGNoaXBzZXRzLiBTaW5jZSBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgdGhpcyBzcGVjaWZpYyBTRElPIGhhcmR3YXJlLCBhbmQgc3l6a2FsbGVyIGxhY2tzIGEgZ2VuZXJpYyBTRElPIGZ1enplciwgdGhlIGRyaXZlciBjYW5ub3QgYmUgcHJvYmVkIGFuZCBpdHMgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbnhwd2lmaSB3aXJlbGVzcyBkcml2ZXIsIHdoaWNoIGlzIGFuIFNESU8tYmFzZWQgZHJpdmVyIGZvciBOWFAgSVc2MXggY2hpcHNldHMuIFNpbmNlIHN0YW5kYXJkIFFFTVUvR0NFIGVudmlyb25tZW50cyBkbyBub3QgZW11bGF0ZSB0aGlzIHNwZWNpZmljIFNESU8gaGFyZHdhcmUsIGFuZCBzeXprYWxsZXIgbGFja3MgYSBnZW5lcmljIFNESU8gZnV6emVyLCB0aGUgZHJpdmVyIGNhbm5vdCBiZSBwcm9iZWQgYW5kIGl0cyBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowbll42[1] Phase: Running StartedAt: 2026-07-27 11:42:48 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbll42[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-27 11:42:48 +0000 UTC FinishedAt: 2026-07-27 11:42:58 +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,}