Name: series-workflowgr5z4 Phase: Failed StartedAt: 2026-08-05 03:55:44 +0000 UTC FinishedAt: 2026-08-05 03:57:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowgr5z4[0] Phase: Succeeded StartedAt: 2026-08-05 03:55:44 +0000 UTC FinishedAt: 2026-08-05 03:57:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowgr5z4[0].run-triage Phase: Succeeded StartedAt: 2026-08-05 03:55:44 +0000 UTC FinishedAt: 2026-08-05 03:57:32 +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+CgkJCTx0ZD4yMDI2LzA4LzA1IDAzOjU3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUeCBwYXRoIG9mIHRoZSBoaW5pYzMgZHJpdmVyIChIdWF3ZWkgSW50ZWxsaWdlbnQgTklDKS4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBTbWFydE5JQyBQQ0llIGRyaXZlciB0aGF0IHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCBtYWtpbmcgaXQgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDAzOjU3PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZjM2MTdjNmI2OThiYmMxYTc1ZjI3Zjk5NTM4MzEwMWY4NzA2OTlmOVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgQXVnIDUgMDM6NTY6NTkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmNcbmluZGV4IDkzMDZiZjAwMjBjYWYuLjQ1ZWZmZGRkYjQzNDEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jXG5AQCAtOTcsOCAmIzQzOzk3LDEyIEBAIHN0YXRpYyBpbnQgaGluaWMzX3R4X21hcF9za2Ioc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcbiBcdGRtYV9pbmZvWzBdLmRtYSA9IGRtYV9tYXBfc2luZ2xlKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBza2ItXHUwMDNlZGF0YSxcbiBcdFx0XHRcdFx0IHNrYl9oZWFkbGVuKHNrYiksIERNQV9UT19ERVZJQ0UpO1xuLVx0aWYgKGRtYV9tYXBwaW5nX2Vycm9yKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBkbWFfaW5mb1swXS5kbWEpKVxuJiM0MztcdGlmIChkbWFfbWFwcGluZ19lcnJvcihcdTAwMjZwZGV2LVx1MDAzZWRldiwgZG1hX2luZm9bMF0uZG1hKSkge1xuJiM0MztcdFx0dTY0X3N0YXRzX3VwZGF0ZV9iZWdpbihcdTAwMjZ0eHEtXHUwMDNldHhxX3N0YXRzLnN5bmNwKTtcbiYjNDM7XHRcdHR4cS1cdTAwM2V0eHFfc3RhdHMubWFwX2ZyYWdfZXJyJiM0MzsmIzQzOztcbiYjNDM7XHRcdHU2NF9zdGF0c191cGRhdGVfZW5kKFx1MDAyNnR4cS1cdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xuIFx0XHRyZXR1cm4gLUVGQVVMVDtcbiYjNDM7XHR9XG4gXG4gXHRkbWFfaW5mb1swXS5sZW4gPSBza2JfaGVhZGxlbihza2IpO1xuIFxuQEAgLTExNyw2ICYjNDM7MTIxLDkgQEAgc3RhdGljIGludCBoaW5pYzNfdHhfbWFwX3NrYihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHRcdFx0XHRcdCAgICAgc2tiX2ZyYWdfc2l6ZShmcmFnKSxcbiBcdFx0XHRcdFx0XHQgICAgIERNQV9UT19ERVZJQ0UpO1xuIFx0XHRpZiAoZG1hX21hcHBpbmdfZXJyb3IoXHUwMDI2cGRldi1cdTAwM2VkZXYsIGRtYV9pbmZvW2lkeF0uZG1hKSkge1xuJiM0MztcdFx0XHR1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKFx1MDAyNnR4cS1cdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xuJiM0MztcdFx0XHR0eHEtXHUwMDNldHhxX3N0YXRzLm1hcF9mcmFnX2VyciYjNDM7JiM0Mzs7XG4mIzQzO1x0XHRcdHU2NF9zdGF0c191cGRhdGVfZW5kKFx1MDAyNnR4cS1cdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xuIFx0XHRcdGVyciA9IC1FRkFVTFQ7XG4gXHRcdFx0Z290byBlcnJfdW5tYXBfcGFnZTtcbiBcdFx0fVxuQEAgLTI2MCw5ICYjNDM7MjY3LDExIEBAIHN0YXRpYyBpbnQgaGluaWMzX3R4X2NzdW0oc3RydWN0IGhpbmljM190eHEgKnR4cSwgc3RydWN0IGhpbmljM19zcV90YXNrICp0YXNrLFxuIFx0XHRpZiAobDRfcHJvdG8gIT0gSVBQUk9UT19VRFAgfHxcbiBcdFx0ICAgICgoc3RydWN0IHVkcGhkciAqKXNrYl90cmFuc3BvcnRfaGVhZGVyKHNrYikpLVx1MDAzZWRlc3QgIT1cbiBcdFx0ICAgIFZYTEFOX09GRkxPQURfUE9SVF9MRSkge1xuJiM0MztcdFx0XHR1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKFx1MDAyNnR4cS1cdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xuJiM0MztcdFx0XHR0eHEtXHUwMDNldHhxX3N0YXRzLnVua25vd25fdHVubmVsX3BrdCYjNDM7JiM0Mzs7XG4mIzQzO1x0XHRcdHU2NF9zdGF0c191cGRhdGVfZW5kKFx1MDAyNnR4cS1cdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xuIFx0XHRcdC8qIFVuc3VwcG9ydGVkIHR1bm5lbCBwYWNrZXQsIGRpc2FibGUgY3N1bSBvZmZsb2FkICovXG4tXHRcdFx0c2tiX2NoZWNrc3VtX2hlbHAoc2tiKTtcbi1cdFx0XHRyZXR1cm4gMDtcbiYjNDM7XHRcdFx0cmV0dXJuIHNrYl9jaGVja3N1bV9oZWxwKHNrYik7XG4gXHRcdH1cbiBcdH1cbiBcbkBAIC00MTIsNiAmIzQzOzQyMSwxMCBAQCBzdGF0aWMgdTMyIGhpbmljM190eF9vZmZsb2FkKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBoaW5pYzNfc3FfdGFzayAqdGFzayxcbiBcdFx0b2ZmbG9hZCB8PSBISU5JQzNfVFhfT0ZGTE9BRF9UU087XG4gXHR9IGVsc2Uge1xuIFx0XHR0c29fY3NfZW4gPSBoaW5pYzNfdHhfY3N1bSh0eHEsIHRhc2ssIHNrYik7XG4mIzQzO1x0XHRpZiAodHNvX2NzX2VuIFx1MDAzYyAwKSB7XG4mIzQzO1x0XHRcdG9mZmxvYWQgPSBISU5JQzNfVFhfT0ZGTE9BRF9JTlZBTElEO1xuJiM0MztcdFx0XHRyZXR1cm4gb2ZmbG9hZDtcbiYjNDM7XHRcdH1cbiBcdFx0aWYgKHRzb19jc19lbilcbiBcdFx0XHRvZmZsb2FkIHw9IEhJTklDM19UWF9PRkZMT0FEX0NTVU07XG4gXHR9XG5AQCAtNTM5LDEyICYjNDM7NTUyLDE3IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBoaW5pYzNfc2VuZF9vbmVfc2tiKHN0cnVjdCBza19idWZmICpza2IsXG4gXHRpbnQgZXJyO1xuIFxuIFx0aWYgKHVubGlrZWx5KHNrYi1cdTAwM2VsZW4gXHUwMDNjIE1JTl9TS0JfTEVOKSkge1xuLVx0XHRpZiAoc2tiX3BhZChza2IsIE1JTl9TS0JfTEVOIC0gc2tiLVx1MDAzZWxlbikpXG4mIzQzO1x0XHRpZiAoc2tiX3BhZChza2IsIE1JTl9TS0JfTEVOIC0gc2tiLVx1MDAzZWxlbikpIHtcbiYjNDM7XHRcdFx0dTY0X3N0YXRzX3VwZGF0ZV9iZWdpbihcdTAwMjZ0eHEtXHUwMDNldHhxX3N0YXRzLnN5bmNwKTtcbiYjNDM7XHRcdFx0dHhxLVx1MDAzZXR4cV9zdGF0cy5za2JfcGFkX2VyciYjNDM7JiM0Mzs7XG4mIzQzO1x0XHRcdHU2NF9zdGF0c191cGRhdGVfZW5kKFx1MDAyNnR4cS1cdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xuIFx0XHRcdGdvdG8gZXJyX291dDtcbiYjNDM7XHRcdH1cbiBcbiBcdFx0c2tiLVx1MDAzZWxlbiA9IE1JTl9TS0JfTEVOO1xuIFx0fVxuIFxuJiM0MztcdG9mZmxvYWQgPSBoaW5pYzNfdHhfb2ZmbG9hZChza2IsIFx1MDAyNnRhc2ssIFx1MDAyNnF1ZXVlX2luZm8sIHR4cSk7XG4gXHRudW1fc2dlID0gc2tiX3NoaW5mbyhza2IpLVx1MDAzZW5yX2ZyYWdzICYjNDM7IDE7XG4gXHQvKiBhc3N1bWUgbm9ybWFsIHdxZSBmb3JtYXQgJiM0MzsgMSB3cWViYiBmb3IgdGFzayBpbmZvICovXG4gXHR3cWViYl9jbnQgPSBudW1fc2dlICYjNDM7IDE7XG5AQCAtNTYwLDcgJiM0Mzs1NzgsNiBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaGluaWMzX3NlbmRfb25lX3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHRyZXR1cm4gTkVUREVWX1RYX0JVU1k7XG4gXHR9XG4gXG4tXHRvZmZsb2FkID0gaGluaWMzX3R4X29mZmxvYWQoc2tiLCBcdTAwMjZ0YXNrLCBcdTAwMjZxdWV1ZV9pbmZvLCB0eHEpO1xuIFx0aWYgKHVubGlrZWx5KG9mZmxvYWQgPT0gSElOSUMzX1RYX09GRkxPQURfSU5WQUxJRCkpIHtcbiBcdFx0Z290byBlcnJfZHJvcF9wa3Q7XG4gXHR9IGVsc2UgaWYgKCFvZmZsb2FkKSB7XG5AQCAtNjA0LDYgJiM0Mzs2MjEsMTAgQEAgc3RhdGljIG5ldGRldl90eF90IGhpbmljM19zZW5kX29uZV9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBlcnJfZHJvcF9wa3Q6XG4gXHRkZXZfa2ZyZWVfc2tiX2FueShza2IpO1xuIGVycl9vdXQ6XG4mIzQzO1x0dTY0X3N0YXRzX3VwZGF0ZV9iZWdpbihcdTAwMjZ0eHEtXHUwMDNldHhxX3N0YXRzLnN5bmNwKTtcbiYjNDM7XHR0eHEtXHUwMDNldHhxX3N0YXRzLmRyb3BwZWQmIzQzOyYjNDM7O1xuJiM0MztcdHU2NF9zdGF0c191cGRhdGVfZW5kKFx1MDAyNnR4cS1cdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xuJiM0MztcbiBcdHJldHVybiBORVRERVZfVFhfT0s7XG4gfVxuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDAzOjU3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgVHggcGF0aCBvZiB0aGUgaGluaWMzIGRyaXZlciAoSHVhd2VpIEludGVsbGlnZW50IE5JQykuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgU21hcnROSUMgUENJZSBkcml2ZXIgdGhhdCByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgbWFraW5nIGl0IHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGYzNjE3YzZiNjk4YmJjMWE3NWYyN2Y5OTUzODMxMDFmODcwNjk5ZjkKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIEF1ZyA1IDAzOjU2OjU5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmMKaW5kZXggOTMwNmJmMDAyMGNhZi4uNDVlZmZkZGRiNDM0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jCkBAIC05Nyw4ICYjNDM7OTcsMTIgQEAgc3RhdGljIGludCBoaW5pYzNfdHhfbWFwX3NrYihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCiAJZG1hX2luZm9bMF0uZG1hID0gZG1hX21hcF9zaW5nbGUoJmFtcDtwZGV2LSZndDtkZXYsIHNrYi0mZ3Q7ZGF0YSwKIAkJCQkJIHNrYl9oZWFkbGVuKHNrYiksIERNQV9UT19ERVZJQ0UpOwotCWlmIChkbWFfbWFwcGluZ19lcnJvcigmYW1wO3BkZXYtJmd0O2RldiwgZG1hX2luZm9bMF0uZG1hKSkKJiM0MzsJaWYgKGRtYV9tYXBwaW5nX2Vycm9yKCZhbXA7cGRldi0mZ3Q7ZGV2LCBkbWFfaW5mb1swXS5kbWEpKSB7CiYjNDM7CQl1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKCZhbXA7dHhxLSZndDt0eHFfc3RhdHMuc3luY3ApOwomIzQzOwkJdHhxLSZndDt0eHFfc3RhdHMubWFwX2ZyYWdfZXJyJiM0MzsmIzQzOzsKJiM0MzsJCXU2NF9zdGF0c191cGRhdGVfZW5kKCZhbXA7dHhxLSZndDt0eHFfc3RhdHMuc3luY3ApOwogCQlyZXR1cm4gLUVGQVVMVDsKJiM0MzsJfQogCiAJZG1hX2luZm9bMF0ubGVuID0gc2tiX2hlYWRsZW4oc2tiKTsKIApAQCAtMTE3LDYgJiM0MzsxMjEsOSBAQCBzdGF0aWMgaW50IGhpbmljM190eF9tYXBfc2tiKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHN0cnVjdCBza19idWZmICpza2IsCiAJCQkJCQkgICAgIHNrYl9mcmFnX3NpemUoZnJhZyksCiAJCQkJCQkgICAgIERNQV9UT19ERVZJQ0UpOwogCQlpZiAoZG1hX21hcHBpbmdfZXJyb3IoJmFtcDtwZGV2LSZndDtkZXYsIGRtYV9pbmZvW2lkeF0uZG1hKSkgewomIzQzOwkJCXU2NF9zdGF0c191cGRhdGVfYmVnaW4oJmFtcDt0eHEtJmd0O3R4cV9zdGF0cy5zeW5jcCk7CiYjNDM7CQkJdHhxLSZndDt0eHFfc3RhdHMubWFwX2ZyYWdfZXJyJiM0MzsmIzQzOzsKJiM0MzsJCQl1NjRfc3RhdHNfdXBkYXRlX2VuZCgmYW1wO3R4cS0mZ3Q7dHhxX3N0YXRzLnN5bmNwKTsKIAkJCWVyciA9IC1FRkFVTFQ7CiAJCQlnb3RvIGVycl91bm1hcF9wYWdlOwogCQl9CkBAIC0yNjAsOSAmIzQzOzI2NywxMSBAQCBzdGF0aWMgaW50IGhpbmljM190eF9jc3VtKHN0cnVjdCBoaW5pYzNfdHhxICp0eHEsIHN0cnVjdCBoaW5pYzNfc3FfdGFzayAqdGFzaywKIAkJaWYgKGw0X3Byb3RvICE9IElQUFJPVE9fVURQIHx8CiAJCSAgICAoKHN0cnVjdCB1ZHBoZHIgKilza2JfdHJhbnNwb3J0X2hlYWRlcihza2IpKS0mZ3Q7ZGVzdCAhPQogCQkgICAgVlhMQU5fT0ZGTE9BRF9QT1JUX0xFKSB7CiYjNDM7CQkJdTY0X3N0YXRzX3VwZGF0ZV9iZWdpbigmYW1wO3R4cS0mZ3Q7dHhxX3N0YXRzLnN5bmNwKTsKJiM0MzsJCQl0eHEtJmd0O3R4cV9zdGF0cy51bmtub3duX3R1bm5lbF9wa3QmIzQzOyYjNDM7OwomIzQzOwkJCXU2NF9zdGF0c191cGRhdGVfZW5kKCZhbXA7dHhxLSZndDt0eHFfc3RhdHMuc3luY3ApOwogCQkJLyogVW5zdXBwb3J0ZWQgdHVubmVsIHBhY2tldCwgZGlzYWJsZSBjc3VtIG9mZmxvYWQgKi8KLQkJCXNrYl9jaGVja3N1bV9oZWxwKHNrYik7Ci0JCQlyZXR1cm4gMDsKJiM0MzsJCQlyZXR1cm4gc2tiX2NoZWNrc3VtX2hlbHAoc2tiKTsKIAkJfQogCX0KIApAQCAtNDEyLDYgJiM0Mzs0MjEsMTAgQEAgc3RhdGljIHUzMiBoaW5pYzNfdHhfb2ZmbG9hZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgaGluaWMzX3NxX3Rhc2sgKnRhc2ssCiAJCW9mZmxvYWQgfD0gSElOSUMzX1RYX09GRkxPQURfVFNPOwogCX0gZWxzZSB7CiAJCXRzb19jc19lbiA9IGhpbmljM190eF9jc3VtKHR4cSwgdGFzaywgc2tiKTsKJiM0MzsJCWlmICh0c29fY3NfZW4gJmx0OyAwKSB7CiYjNDM7CQkJb2ZmbG9hZCA9IEhJTklDM19UWF9PRkZMT0FEX0lOVkFMSUQ7CiYjNDM7CQkJcmV0dXJuIG9mZmxvYWQ7CiYjNDM7CQl9CiAJCWlmICh0c29fY3NfZW4pCiAJCQlvZmZsb2FkIHw9IEhJTklDM19UWF9PRkZMT0FEX0NTVU07CiAJfQpAQCAtNTM5LDEyICYjNDM7NTUyLDE3IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBoaW5pYzNfc2VuZF9vbmVfc2tiKHN0cnVjdCBza19idWZmICpza2IsCiAJaW50IGVycjsKIAogCWlmICh1bmxpa2VseShza2ItJmd0O2xlbiAmbHQ7IE1JTl9TS0JfTEVOKSkgewotCQlpZiAoc2tiX3BhZChza2IsIE1JTl9TS0JfTEVOIC0gc2tiLSZndDtsZW4pKQomIzQzOwkJaWYgKHNrYl9wYWQoc2tiLCBNSU5fU0tCX0xFTiAtIHNrYi0mZ3Q7bGVuKSkgewomIzQzOwkJCXU2NF9zdGF0c191cGRhdGVfYmVnaW4oJmFtcDt0eHEtJmd0O3R4cV9zdGF0cy5zeW5jcCk7CiYjNDM7CQkJdHhxLSZndDt0eHFfc3RhdHMuc2tiX3BhZF9lcnImIzQzOyYjNDM7OwomIzQzOwkJCXU2NF9zdGF0c191cGRhdGVfZW5kKCZhbXA7dHhxLSZndDt0eHFfc3RhdHMuc3luY3ApOwogCQkJZ290byBlcnJfb3V0OwomIzQzOwkJfQogCiAJCXNrYi0mZ3Q7bGVuID0gTUlOX1NLQl9MRU47CiAJfQogCiYjNDM7CW9mZmxvYWQgPSBoaW5pYzNfdHhfb2ZmbG9hZChza2IsICZhbXA7dGFzaywgJmFtcDtxdWV1ZV9pbmZvLCB0eHEpOwogCW51bV9zZ2UgPSBza2Jfc2hpbmZvKHNrYiktJmd0O25yX2ZyYWdzICYjNDM7IDE7CiAJLyogYXNzdW1lIG5vcm1hbCB3cWUgZm9ybWF0ICYjNDM7IDEgd3FlYmIgZm9yIHRhc2sgaW5mbyAqLwogCXdxZWJiX2NudCA9IG51bV9zZ2UgJiM0MzsgMTsKQEAgLTU2MCw3ICYjNDM7NTc4LDYgQEAgc3RhdGljIG5ldGRldl90eF90IGhpbmljM19zZW5kX29uZV9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJcmV0dXJuIE5FVERFVl9UWF9CVVNZOwogCX0KIAotCW9mZmxvYWQgPSBoaW5pYzNfdHhfb2ZmbG9hZChza2IsICZhbXA7dGFzaywgJmFtcDtxdWV1ZV9pbmZvLCB0eHEpOwogCWlmICh1bmxpa2VseShvZmZsb2FkID09IEhJTklDM19UWF9PRkZMT0FEX0lOVkFMSUQpKSB7CiAJCWdvdG8gZXJyX2Ryb3BfcGt0OwogCX0gZWxzZSBpZiAoIW9mZmxvYWQpIHsKQEAgLTYwNCw2ICYjNDM7NjIxLDEwIEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBoaW5pYzNfc2VuZF9vbmVfc2tiKHN0cnVjdCBza19idWZmICpza2IsCiBlcnJfZHJvcF9wa3Q6CiAJZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTsKIGVycl9vdXQ6CiYjNDM7CXU2NF9zdGF0c191cGRhdGVfYmVnaW4oJmFtcDt0eHEtJmd0O3R4cV9zdGF0cy5zeW5jcCk7CiYjNDM7CXR4cS0mZ3Q7dHhxX3N0YXRzLmRyb3BwZWQmIzQzOyYjNDM7OwomIzQzOwl1NjRfc3RhdHNfdXBkYXRlX2VuZCgmYW1wO3R4cS0mZ3Q7dHhxX3N0YXRzLnN5bmNwKTsKJiM0MzsKIAlyZXR1cm4gTkVUREVWX1RYX09LOwogfQogCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDAzOjU3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM0MDcKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiA0MjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgSHVhd2VpIE5JQyBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCYjMzk7cyBtYWtpbmcgc29tZSBjaGFuZ2VzIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmNgIGZpbGUuIFRoaXMgaXMgaW50ZXJlc3Rpbmcg4oCTIGl0JiMzOTtzIHRvdWNoaW5nIHNldmVyYWwga2V5IGZ1bmN0aW9uczogYGhpbmljM190eF9tYXBfc2tiYCwgYGhpbmljM190eF9jc3VtYCwgYGhpbmljM190eF9vZmZsb2FkYCwgYW5kIGBoaW5pYzNfc2VuZF9vbmVfc2tiYC4gQSBnb29kIGNodW5rIG9mIGl0IGlzIGZvY3VzZWQgb24gYWRkaW5nIHNvbWUgbmV3IHN0YXRzIHVwZGF0ZXMsIHdoaWNoIGlzIGFsd2F5cyBoZWxwZnVsIGZvciBkZWJ1Z2dpbmcgYW5kIHBlcmZvcm1hbmNlIGFuYWx5c2lzLiBUaGluZ3MgbGlrZSB0cmFja2luZyBtYXBwaW5nIGVycm9ycyAoYHR4cS0mZ3Q7dHhxX3N0YXRzLm1hcF9mcmFnX2VyciYjNDM7JiM0MztgKSwgdW5rbm93biB0dW5uZWwgcGFja2V0cyAoYHR4cS0mZ3Q7dHhxX3N0YXRzLnVua25vd25fdHVubmVsX3BrdCYjNDM7JiM0MztgKSwgcGFkZGluZyBlcnJvcnMgKGB0eHEtJmd0O3R4cV9zdGF0cy5za2JfcGFkX2VyciYjNDM7JiM0MztgKSwgYW5kIGRyb3BwZWQgcGFja2V0cyAoYHR4cS0mZ3Q7dHhxX3N0YXRzLmRyb3BwZWQmIzQzOyYjNDM7YCkgYXJlIGdvb2QgYWRkaXRpb25zLgoKTm93LCBsb29raW5nIGNsb3NlciwgdGhlcmUmIzM5O3MgYSBjaGFuZ2UgaW4gYGhpbmljM190eF9jc3VtYC4gSXQmIzM5O3Mgbm93IHJldHVybmluZyB0aGUgcmVzdWx0IG9mIGBza2JfY2hlY2tzdW1faGVscChza2IpYCBpbnN0ZWFkIG9mIHNpbXBseSBgMGAuIFRoYXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBzaGlmdCBpbiBob3cgY2hlY2tzdW0gb2ZmbG9hZCBpcyBoYW5kbGVkIGhlcmUuIFdlIG5lZWQgdG8gYmUgY2FyZWZ1bCB3aXRoIHRoYXQuIEkgYWxzbyBzZWUgYSBjaGFuZ2UgaW4gYGhpbmljM190eF9vZmZsb2FkYCwgd2hlcmUgdGhlcmUmIzM5O3MgYSBjaGVjayBmb3IgYHRzb19jc19lbiAmbHQ7IDBgIG5vdywgcmV0dXJuaW5nIGBISU5JQzNfVFhfT0ZGTE9BRF9JTlZBTElEYCBpZiB0aGF0JiMzOTtzIHRoZSBjYXNlLiBBbmQgaW4gYGhpbmljM19zZW5kX29uZV9za2JgLCBgaGluaWMzX3R4X29mZmxvYWRgIGlzIGNhbGxlZCAqYmVmb3JlKiBjYWxjdWxhdGluZyBgbnVtX3NnZWAgYW5kIGB3cWViYl9jbnRgIC0gdGhpcyBpcyBnb2luZyB0byBhZmZlY3QgdGhlIGNvbnRyb2wgZmxvdyBoZXJlLgoKV2FpdCwgYGhpbmljM2DigKZ0aGF0IHNvdW5kcyBsaWtlIGEgSHVhd2VpIEludGVsbGlnZW50IE5JQyBkcml2ZXIuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSYjMzk7bSBmb2xsb3dpbmcgdGhlIGJpZ2dlciBwaWN0dXJlLCBhbmQgd2hhdCB0aGlzIGltcGxpZXMuIFRoaXMgcHJvYmFibHkgaXNuJiMzOTt0IGEgc3RhbmRhcmQgbmV0d29yayBpbnRlcmZhY2UuIEkgbmVlZCB0byBrbm93IHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpcyBiZWluZyBhIHZlbmRvci1zcGVjaWZpYyBTbWFydE5JQy4gSXMgdGhpcyBzb21lIGtpbmQgb2YgUENJZSBoYXJkd2FyZSBjYXJkPwoKWWVzLCAmIzM0O0h1YXdlaSBJbnRlbGxpZ2VudCBOSUMgZHJpdmVyJiMzNDsgYWxtb3N0IGNlcnRhaW5seSBjb25maXJtcyB0aGF0LiBPa2F5LCBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgaWYgdGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGNhcmQgdGhhdCAqaXNuJiMzOTt0KiBlbXVsYXRlZCBieSBzdGFuZGFyZCBRRU1VLiBHaXZlbiB3aGF0IEkmIzM5O20gc2VlaW5nLCB0aGVyZSYjMzk7cyBhIHN0cm9uZyBjaGFuY2UgdGhpcyBuZWVkcyByZWFsIGhhcmR3YXJlLiBBaCwgdGhlIGRvY3VtZW50YXRpb24gY29uZmlybXMgaXQ6ICYjMzQ7Q29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiYjMzQ7IEJpbmdvLgoKWXVwLCB0aGlzIGlzIGEgU21hcnROSUMgZHJpdmVyLiBOb3csIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgdGhhdCB0aGlzIHNwZWNpZmljIGBoaW5pYzNgIGRyaXZlciBpcyAqYWN0dWFsbHkqIGVtdWxhdGVkIG9yIG5vdC4gSSYjMzk7bGwgcXVpY2tseSBzZWFyY2ggdGhlIGtlcm5lbCB0cmVlIGp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLiBUaGlzIGNvbnRleHQgaXMgaW1wb3J0YW50IGJlY2F1c2UgaXQgY2hhbmdlcyBob3cgSSB3b3VsZCBkZWJ1ZyB0aGlzLiBJZiBpdCBuZWVkcyByZWFsIGhhcmR3YXJlLCBJIG5lZWQgYWNjZXNzIHRvIHRoYXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDM6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aGluaWMzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDY0ODkgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvS2NvbmZpZz02PWNvbmZpZyBISU5JQzNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL0tjb25maWctMjAtXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL0tjb25maWc6MjE6XHQgIFRoZSBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgaGluaWMzLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGUtMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6NDpvYmotJChDT05GSUdfSElOSUMzKSAmIzQzOz0gaGluaWMzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGUtNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6NjpoaW5pYzMtb2JqcyA6PSBoaW5pYzNfY21kcS5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjc6XHQgICAgICAgaGluaWMzX2NvbW1vbi5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjg6XHQgICAgICAgaGluaWMzX2Vxcy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjk6XHQgICAgICAgaGluaWMzX2V0aHRvb2wubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToxMDpcdCAgICAgICBoaW5pYzNfZmlsdGVyLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTE6XHQgICAgICAgaGluaWMzX2h3X2NmZy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjEyOlx0ICAgICAgIGhpbmljM19od19jb21tLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTM6XHQgICAgICAgaGluaWMzX2h3ZGV2Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTQ6XHQgICAgICAgaGluaWMzX2h3aWYubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToxNTpcdCAgICAgICBoaW5pYzNfaXJxLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTY6XHQgICAgICAgaGluaWMzX2xsZC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjE3Olx0ICAgICAgIGhpbmljM19tYWluLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTg6XHQgICAgICAgaGluaWMzX21ib3gubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToxOTpcdCAgICAgICBoaW5pYzNfbWdtdC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjIwOlx0ICAgICAgIGhpbmljM19uZXRkZXZfb3BzLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MjE6XHQgICAgICAgaGluaWMzX25pY19jZmcubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToyMjpcdCAgICAgICBoaW5pYzNfbmljX2lvLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MjM6XHQgICAgICAgaGluaWMzX3F1ZXVlX2NvbW1vbi5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjI0Olx0ICAgICAgIGhpbmljM19yc3MubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToyNTpcdCAgICAgICBoaW5pYzNfcngubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToyNjpcdCAgICAgICBoaW5pYzNfdHgubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToyNzpcdCAgICAgICBoaW5pYzNfd3Eub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjg6I2luY2x1ZGUgXCYjMzQ7aGluaWMzX2NtZHEuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk6I2luY2x1ZGUgXCYjMzQ7aGluaWMzX2Vxcy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTA6I2luY2x1ZGUgXCYjMzQ7aGluaWMzX2h3ZGV2LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMTojaW5jbHVkZSBcJiMzNDtoaW5pYzNfaHdpZi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTI6I2luY2x1ZGUgXCYjMzQ7aGluaWMzX21ib3guaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYz0xMTI9ZW51bSBjbWRxX2NtZF90eXBlIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjExOTpzdGF0aWMgdm9pZCBoaW5pYzNfZHVtcF9jbWRxX3dxZV9oZWFkKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEyMC1cdFx0XHRcdCAgICAgIHN0cnVjdCBjbWRxX3dxZSAqd3FlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTMzOnN0YXRpYyBzdHJ1Y3QgY21kcV93cWUgKmNtZHFfcmVhZF93cWUoc3RydWN0IGhpbmljM193cSAqd3EsIHUxNiAqY2kpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTM0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMzU6XHRpZiAoaGluaWMzX3dxX2dldF91c2VkKHdxKSA9PSAwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEzNi1cdFx0cmV0dXJuIE5VTEw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE0Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxNDM6c3RydWN0IGhpbmljM19jbWRfYnVmICpoaW5pYzNfYWxsb2NfY21kX2J1ZihzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xNDQte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjE0NTpcdHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqY21kX2J1ZjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxNDY6XHRzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xNDctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE3MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxNzI6dm9pZCBoaW5pYzNfZnJlZV9jbWRfYnVmKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjE3MzpcdFx0XHQgc3RydWN0IGhpbmljM19jbWRfYnVmICpjbWRfYnVmKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE3NC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTc1Olx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTc2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xODUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTg2OnN0YXRpYyB2b2lkIGNtZHFfY2xlYXJfY21kX2J1ZihzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKmNtZF9pbmZvLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjE4NzpcdFx0XHQgICAgICAgc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTg4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xODktXHRpZiAoY21kX2luZm8tXHUwMDNlYnVmX2luKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTkwOlx0XHRoaW5pYzNfZnJlZV9jbWRfYnVmKGh3ZGV2LCBjbWRfaW5mby1cdTAwM2VidWZfaW4pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE5MS1cdFx0Y21kX2luZm8tXHUwMDNlYnVmX2luID0gTlVMTDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTk0LVx0aWYgKGNtZF9pbmZvLVx1MDAzZWJ1Zl9vdXQpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxOTU6XHRcdGhpbmljM19mcmVlX2NtZF9idWYoaHdkZXYsIGNtZF9pbmZvLVx1MDAzZWJ1Zl9vdXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE5Ni1cdFx0Y21kX2luZm8tXHUwMDNlYnVmX291dCA9IE5VTEw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE5OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoyMDA6c3RhdGljIHZvaWQgY2xlYXJfd3FlX2NvbXBsZXRlX2JpdChzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjAxLVx0XHRcdFx0ICAgc3RydWN0IGNtZHFfd3FlICp3cWUsIHUxNiBjaSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjE3LVx0d21iKCk7IC8qIHZlcmlmeSB3cWUgaXMgY2xlYXIgYmVmb3JlIHVwZGF0aW5nIGNpICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MjE4Olx0aGluaWMzX3dxX3B1dF93cWViYnMoXHUwMDI2Y21kcS1cdTAwM2V3cSwgQ01EUV9XUUVfTlVNX1dRRUJCUyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjE5LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yMjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MjIxOnN0YXRpYyBpbnQgY21kcV9hcm1fY2VxX2hhbmRsZXIoc3RydWN0IGhpbmljM19jbWRxICpjbWRxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIyMi1cdFx0XHRcdHN0cnVjdCBjbWRxX3dxZSAqd3FlLCB1MTYgY2kpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIzNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoyMzU6c3RhdGljIHZvaWQgY21kcV91cGRhdGVfY21kX3N0YXR1cyhzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsIHUxNiBwcm9kX2lkeCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yMzYtXHRcdFx0XHQgICBzdHJ1Y3QgY21kcV93cWUgKndxZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yMzcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjIzODpcdHN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyAqY21kX2luZm87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjM5LVx0c3RydWN0IGNtZHFfd3FlX2xjbWQgKndxZV9sY21kO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yNTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MjUzOnN0YXRpYyB2b2lkIGNtZHFfc3luY19jbWRfaGFuZGxlcihzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjU0LVx0XHRcdFx0ICBzdHJ1Y3QgY21kcV93cWUgKndxZSwgdTE2IGNpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yNzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Mjc1OnZvaWQgaGluaWMzX2NtZHFfY2VxX2hhbmRsZXIoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsIF9fbGUzMiBjZXFlX2RhdGEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjc2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoyNzc6XHRlbnVtIGhpbmljM19jbWRxX3R5cGUgY21kcV90eXBlID0gQ01EUV9DRVFFX0dFVChjZXFlX2RhdGEsIFRZUEUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjI3ODpcdHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzID0gaHdkZXYtXHUwMDNlY21kcXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Mjc5Olx0c3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpjbWRfaW5mbztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yODAtXHRzdHJ1Y3QgY21kcV93cWVfbGNtZCAqd3FlX2xjbWQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MjgxOlx0c3RydWN0IGhpbmljM19jbWRxICpjbWRxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTI4Mi1cdHN0cnVjdCBjbWRxX3dxZSAqd3FlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yOTctXHRcdFx0XHQgY21kcV90eXBlLCBjaSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Mjk4Olx0XHRcdGhpbmljM19kdW1wX2NtZHFfd3FlX2hlYWQoaHdkZXYsIHdxZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjk5LVx0XHRcdGZhbGx0aHJvdWdoO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zMzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MzM1OnN0YXRpYyBpbnQgY21kcV9wYXJhbXNfdmFsaWQoY29uc3Qgc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MzM2Olx0XHRcdCAgICAgY29uc3Qgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzM3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzQ2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM0NzpzdGF0aWMgaW50IHdhaXRfY21kcXNfZW5hYmxlKHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM0OC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jPTM2ND1zdGF0aWMgdm9pZCBjbWRxX3NldF9jb21wbGV0aW9uKHN0cnVjdCBjbWRxX2NvbXBsZXRpb24gKmNvbXBsZXRlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM2NTpcdFx0XHRcdHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX291dClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zNjYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM2NzpcdHN0cnVjdCBoaW5pYzNfc2dlICpzZ2UgPSBcdTAwMjZjb21wbGV0ZS1cdTAwM2VyZXNwLnNnZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zNjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MzY5Olx0aGluaWMzX3NldF9zZ2Uoc2dlLCBidWZfb3V0LVx1MDAzZWRtYV9hZGRyLCBjcHVfdG9fbGUzMihDTURRX0JVRl9TSVpFKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzcwLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zNzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MzcyOnN0YXRpYyBzdHJ1Y3QgY21kcV93cWUgKmNtZHFfZ2V0X3dxZShzdHJ1Y3QgaGluaWMzX3dxICp3cSwgdTE2ICpwaSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zNzMte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM3NDpcdGlmICghaGluaWMzX3dxX2ZyZWVfd3FlYmJzKHdxKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zNzUtXHRcdHJldHVybiBOVUxMO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM3Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzozNzc6XHRyZXR1cm4gaGluaWMzX3dxX2dldF9vbmVfd3FlYmIod3EsIHBpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zNzgtfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYz0zODA9c3RhdGljIHZvaWQgY21kcV9zZXRfbGNtZF9idWZkZXNjKHN0cnVjdCBjbWRxX3dxZV9sY21kICp3cWUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MzgxOlx0XHRcdFx0ICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9pbilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zODIte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM4MzpcdGhpbmljM19zZXRfc2dlKFx1MDAyNndxZS1cdTAwM2VidWZfZGVzYy5zZ2UsIGJ1Zl9pbi1cdTAwM2VkbWFfYWRkcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zODQtXHRcdCAgICAgICAoX19mb3JjZSBfX2xlMzIpYnVmX2luLVx1MDAzZXNpemUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zODYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Mzg3OnN0YXRpYyB2b2lkIGNtZHFfc2V0X2RiKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzozODg6XHRcdFx0ZW51bSBoaW5pYzNfY21kcV90eXBlIGNtZHFfdHlwZSwgdTE2IHByb2RfaWR4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM4OS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jPTQ1OT1zdGF0aWMgdm9pZCBjbWRxX3NldF9sY21kX3dxZShzdHJ1Y3QgY21kcV93cWUgKndxZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy00NjAtXHRcdFx0ICAgICAgZW51bSBjbWRxX2NtZF90eXBlIGNtZF90eXBlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjQ2MTpcdFx0XHQgICAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9pbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo0NjI6XHRcdFx0ICAgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfb3V0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTQ2My1cdFx0XHQgICAgICB1OCB3cmFwcGVkLCB1OCBtb2QsIHU4IGNtZCwgdTE2IHByb2RfaWR4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy00ODQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NDg1OnN0YXRpYyBpbnQgaGluaWMzX2NtZHFfc3luY190aW1lb3V0X2NoZWNrKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy00ODYtXHRcdFx0XHRcdCAgc3RydWN0IGNtZHFfd3FlICp3cWUsIHUxNiBwaSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTAzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjUwNDpzdGF0aWMgdm9pZCBjbGVhcl9jbWRfaW5mbyhzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKmNtZF9pbmZvLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjUwNTpcdFx0XHQgICBjb25zdCBzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKnNhdmVkX2NtZF9pbmZvKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTUwNi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTUxNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo1MTc6c3RhdGljIGludCB3YWl0X2NtZHFfc3luY19jbWRfY29tcGxldGlvbihzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTE4Olx0XHRcdFx0XHQgc3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpjbWRfaW5mbyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo1MTk6XHRcdFx0XHRcdCBzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKnNhdmVkX2NtZF9pbmZvLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTUyMC1cdFx0XHRcdFx0IHU2NCBjdXJyX21zZ19pZCwgdTE2IGN1cnJfcHJvZF9pZHgsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU0MC1cdGlmIChjdXJyX21zZ19pZCA9PSBjbWRfaW5mby1cdTAwM2VjbWRxX21zZ19pZCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU0MTpcdFx0ZXJyID0gaGluaWMzX2NtZHFfc3luY190aW1lb3V0X2NoZWNrKGNtZHEsIGN1cnJfd3FlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU0Mi1cdFx0XHRcdFx0XHQgICAgIGN1cnJfcHJvZF9pZHgpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTU2Olx0aGluaWMzX2R1bXBfY2VxX2luZm8oY21kcS1cdTAwM2Vod2Rldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTU3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTYxOnN0YXRpYyBpbnQgY21kcV9zeW5jX2NtZF9leGVjKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSwgdTggbW9kLCB1OCBjbWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTYyOlx0XHRcdCAgICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX2luLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU2MzpcdFx0XHQgICAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9vdXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTY0LVx0XHRcdCAgICAgIF9fbGU2NCAqb3V0X3BhcmFtLCB1OCBjbWRfdHlwZSwgdTggd3FlX2NtZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NjUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU2NjpcdHN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyAqY21kX2luZm8sIHNhdmVkX2NtZF9pbmZvO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU2Ny1cdGludCBjbXB0X2NvZGUgPSBDTURRX1NFTkRfQ01QVF9DT0RFO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU2OC1cdHN0cnVjdCBjbWRxX3dxZSAqY3Vycl93cWUsIHdxZSA9IHt9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU2OTpcdHN0cnVjdCBoaW5pYzNfd3EgKndxID0gXHUwMDI2Y21kcS1cdTAwM2V3cTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NzAtXHR1MTYgY3Vycl9wcm9kX2lkeCwgbmV4dF9wcm9kX2lkeDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjYzNTpzdGF0aWMgaW50IGNtZHFfc3luY19jbWRfZGlyZWN0X3Jlc3Aoc3RydWN0IGhpbmljM19jbWRxICpjbWRxLCB1OCBtb2QsIHU4IGNtZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2MzY6XHRcdFx0XHQgICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX2luLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTYzNy1cdFx0XHRcdCAgICAgX19sZTY0ICpvdXRfcGFyYW0pXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY0My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2NDQ6c3RhdGljIGludCBjbWRxX3N5bmNfY21kX2RldGFpbF9yZXNwKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSwgdTggbW9kLCB1OCBjbWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjQ1Olx0XHRcdFx0ICAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9pbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2NDY6XHRcdFx0XHQgICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX291dCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NDctXHRcdFx0XHQgICAgIF9fbGU2NCAqb3V0X3BhcmFtKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjU0OmludCBoaW5pYzNfY21kX2J1Zl9wYWlyX2luaXQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjU1Olx0XHRcdCAgICAgc3RydWN0IGhpbmljM19jbWRfYnVmX3BhaXIgKnBhaXIpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjU2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2NTc6XHRwYWlyLVx1MDAzZWluID0gaGluaWMzX2FsbG9jX2NtZF9idWYoaHdkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY1OC1cdGlmICghcGFpci1cdTAwM2Vpbilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjYwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY2MTpcdHBhaXItXHUwMDNlb3V0ID0gaGluaWMzX2FsbG9jX2NtZF9idWYoaHdkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY2Mi1cdGlmICghcGFpci1cdTAwM2VvdXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY2Ny1lcnJfZnJlZV9jbWRfYnVmX2luOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY2ODpcdGhpbmljM19mcmVlX2NtZF9idWYoaHdkZXYsIHBhaXItXHUwMDNlaW4pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY2OS1lcnJfb3V0OlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjczOnZvaWQgaGluaWMzX2NtZF9idWZfcGFpcl91bmluaXQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Njc0Olx0XHRcdFx0c3RydWN0IGhpbmljM19jbWRfYnVmX3BhaXIgKnBhaXIpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjc1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2NzY6XHRoaW5pYzNfZnJlZV9jbWRfYnVmKGh3ZGV2LCBwYWlyLVx1MDAzZWluKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2Nzc6XHRoaW5pYzNfZnJlZV9jbWRfYnVmKGh3ZGV2LCBwYWlyLVx1MDAzZW91dCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjc4LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjgwOmludCBoaW5pYzNfY21kcV9kaXJlY3RfcmVzcChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldiwgdTggbW9kLCB1OCBjbWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjgxOlx0XHRcdCAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9pbiwgX19sZTY0ICpvdXRfcGFyYW0pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjgyLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2ODM6XHRzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02ODQtXHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03MTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzEzOmludCBoaW5pYzNfY21kcV9kZXRhaWxfcmVzcChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldiwgdTggbW9kLCB1OCBjbWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzE0Olx0XHRcdCAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9pbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3MTU6XHRcdFx0ICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX291dCwgX19sZTY0ICpvdXRfcGFyYW0pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzE2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3MTc6XHRzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03MTgtXHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzQ2OnN0YXRpYyB2b2lkIGNtZHFfaW5pdF9xdWV1ZV9jdHh0KHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LCB1OCBjbWRxX2lkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc0Ny1cdFx0XHRcdCBzdHJ1Y3QgY29tbV9jbWRxX2N0eHRfaW5mbyAqY3R4dF9pbmZvKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc0OC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzQ5Olx0Y29uc3Qgc3RydWN0IGhpbmljM19jbWRxcyAqY21kcXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzUwLVx0dTY0IGNtZHFfZmlyc3RfYmxvY2tfcGFkZHIsIHBmbjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3NTE6XHRjb25zdCBzdHJ1Y3QgaGluaWMzX3dxICp3cTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NTItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc1NC1cdHdxID0gXHUwMDI2Y21kcXMtXHUwMDNlY21kcVtjbWRxX2lkXS53cTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3NTU6XHRwZm4gPSBDTURRX1BGTihoaW5pYzNfd3FfZ2V0X2ZpcnN0X3dxZV9wYWdlX2FkZHIod3EpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NTYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc2My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3NjQ6XHRpZiAoIWhpbmljM193cV9pc18wX2xldmVsX2NsYSh3cSkpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NjUtXHRcdGNtZHFfZmlyc3RfYmxvY2tfcGFkZHIgPSBjbWRxcy1cdTAwM2V3cV9ibG9ja19wYWRkcjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzcyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjc3MzpzdGF0aWMgaW50IGluaXRfY21kcShzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsIHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjc3NDpcdFx0ICAgICBlbnVtIGhpbmljM19jbWRxX3R5cGUgcV90eXBlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc3NS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc5Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3OTM6c3RhdGljIGludCBoaW5pYzNfc2V0X2NtZHFfY3R4dChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldiwgdTggY21kcV9pZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03OTQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03OTktXHRjbWRxX2luaXRfcXVldWVfY3R4dChod2RldiwgY21kcV9pZCwgXHUwMDI2Y21kcV9jdHh0LmN0eHQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjgwMDpcdGNtZHFfY3R4dC5mdW5jX2lkID0gaGluaWMzX2dsb2JhbF9mdW5jX2lkKGh3ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04MDEtXHRjbWRxX2N0eHQuY21kcV9pZCA9IGNtZHFfaWQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgwNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4MDY6XHRlcnIgPSBoaW5pYzNfc2VuZF9tYm94X3RvX21nbXQoaHdkZXYsIE1HTVRfTU9EX0NPTU0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODA3LVx0XHRcdFx0ICAgICAgIENPTU1fQ01EX1NFVF9DTURRX0NUWFQsIFx1MDAyNm1zZ19wYXJhbXMpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04MTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODE3OnN0YXRpYyBpbnQgaGluaWMzX3NldF9jbWRxX2N0eHRzKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgxOC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODE5Olx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXMgPSBod2Rldi1cdTAwM2VjbWRxcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04MjAtXHR1OCBjbWRxX3R5cGU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgyMy1cdGZvciAoY21kcV90eXBlID0gMDsgY21kcV90eXBlIFx1MDAzYyBjbWRxcy1cdTAwM2VjbWRxX251bTsgY21kcV90eXBlJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjgyNDpcdFx0ZXJyID0gaGluaWMzX3NldF9jbWRxX2N0eHQoaHdkZXYsIGNtZHFfdHlwZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODI1LVx0XHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04MzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODM1OnN0YXRpYyBpbnQgY3JlYXRlX2NtZHFfd3Eoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODM2Olx0XHRcdCAgc3RydWN0IGhpbmljM19jbWRxcyAqY21kcXMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODM3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODQxLVx0Zm9yIChjbWRxX3R5cGUgPSAwOyBjbWRxX3R5cGUgXHUwMDNjIGNtZHFzLVx1MDAzZWNtZHFfbnVtOyBjbWRxX3R5cGUmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODQyOlx0XHRlcnIgPSBoaW5pYzNfd3FfY3JlYXRlKGh3ZGV2LCBcdTAwMjZjbWRxcy1cdTAwM2VjbWRxW2NtZHFfdHlwZV0ud3EsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODQzLVx0XHRcdFx0ICAgICAgIENNRFFfREVQVEgsIENNRFFfV1FFQkJfU0laRSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg1Mi1cdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjg1MzpcdGlmICghaGluaWMzX3dxX2lzXzBfbGV2ZWxfY2xhKFx1MDAyNmNtZHFzLVx1MDAzZWNtZHFbSElOSUMzX0NNRFFfU1lOQ10ud3EpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODU0LVx0XHRpZiAoY21kcXMtXHUwMDNlY21kcVtISU5JQzNfQ01EUV9TWU5DXS53cS5xcGFnZXMubnVtX3BhZ2VzIFx1MDAzZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04ODMtXHRcdGNtZHFfdHlwZS0tO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjg4NDpcdFx0aGluaWMzX3dxX2Rlc3Ryb3koaHdkZXYsIFx1MDAyNmNtZHFzLVx1MDAzZWNtZHFbY21kcV90eXBlXS53cSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODg1LVx0fVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04ODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODkwOnN0YXRpYyB2b2lkIGRlc3Ryb3lfY21kcV93cShzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4OTE6XHRcdFx0ICAgIHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg5Mi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg5OS1cdGZvciAoY21kcV90eXBlID0gMDsgY21kcV90eXBlIFx1MDAzYyBjbWRxcy1cdTAwM2VjbWRxX251bTsgY21kcV90eXBlJiM0MzsmIzQzOylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5MDA6XHRcdGhpbmljM193cV9kZXN0cm95KGh3ZGV2LCBcdTAwMjZjbWRxcy1cdTAwM2VjbWRxW2NtZHFfdHlwZV0ud3EpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTkwMS19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjkwMzpzdGF0aWMgaW50IGluaXRfY21kcXMoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTA0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5MDU6XHRzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05MDYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTkxNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5MTU6XHRjbWRxcy1cdTAwM2VjbWRfYnVmX3Bvb2wgPSBkbWFfcG9vbF9jcmVhdGUoXCYjMzQ7aGluaWMzX2NtZHFcJiMzNDssIGh3ZGV2LVx1MDAzZWRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05MTYtXHRcdFx0XHRcdCAgICAgIENNRFFfQlVGX1NJWkUsIENNRFFfQlVGX1NJWkUsIDApO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05MjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTI2OnN0YXRpYyB2b2lkIGNtZHFfZmx1c2hfc3luY19jbWQoc3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpjbWRfaW5mbylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05Mjcte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTQ3OnN0YXRpYyB2b2lkIGhpbmljM19jbWRxX2ZsdXNoX2NtZChzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTQ4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5NDk6XHRzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKmNtZF9pbmZvO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk1MC1cdHUxNiBjaTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTUzLVx0d2hpbGUgKGNtZHFfcmVhZF93cWUoXHUwMDI2Y21kcS1cdTAwM2V3cSwgXHUwMDI2Y2kpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTU0Olx0XHRoaW5pYzNfd3FfcHV0X3dxZWJicyhcdTAwMjZjbWRxLVx1MDAzZXdxLCBDTURRX1dRRV9OVU1fV1FFQkJTKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NTUtXHRcdGNtZF9pbmZvID0gXHUwMDI2Y21kcS1cdTAwM2VjbWRfaW5mb3NbY2ldO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTYzOnZvaWQgaGluaWMzX2NtZHFfZmx1c2hfc3luY19jbWQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTY0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5NjU6XHRzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTY2LVx0dTE2IHdxZV9jbnQsIHdxZV9pZHgsIGk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTY3Olx0c3RydWN0IGhpbmljM193cSAqd3E7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTY4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NzEtXHR3cSA9IFx1MDAyNmNtZHEtXHUwMDNld3E7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTcyOlx0d3FlX2NudCA9IGhpbmljM193cV9nZXRfdXNlZCh3cSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTczLVx0Zm9yIChpID0gMDsgaSBcdTAwM2Mgd3FlX2NudDsgaSYjNDM7JiM0MzspIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTc5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk4MDpzdGF0aWMgdm9pZCBoaW5pYzNfY21kcV9yZXNldF9hbGxfY21kX2J1ZihzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTgxLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk4ODppbnQgaGluaWMzX3JlaW5pdF9jbWRxX2N0eHRzKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk4OS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTkwOlx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXMgPSBod2Rldi1cdTAwM2VjbWRxcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05OTEtXHR1OCBjbWRxX3R5cGU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk5My1cdGZvciAoY21kcV90eXBlID0gMDsgY21kcV90eXBlIFx1MDAzYyBjbWRxcy1cdTAwM2VjbWRxX251bTsgY21kcV90eXBlJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk5NDpcdFx0aGluaWMzX2NtZHFfZmx1c2hfY21kKFx1MDAyNmNtZHFzLVx1MDAzZWNtZHFbY21kcV90eXBlXSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTk1Olx0XHRoaW5pYzNfY21kcV9yZXNldF9hbGxfY21kX2J1ZihcdTAwMjZjbWRxcy1cdTAwM2VjbWRxW2NtZHFfdHlwZV0pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk5Ni1cdFx0Y21kcXMtXHUwMDNlY21kcVtjbWRxX3R5cGVdLndyYXBwZWQgPSAxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk5NzpcdFx0aGluaWMzX3dxX3Jlc2V0KFx1MDAyNmNtZHFzLVx1MDAzZWNtZHFbY21kcV90eXBlXS53cSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTk4LVx0fVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk5OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDAwOlx0cmV0dXJuIGhpbmljM19zZXRfY21kcV9jdHh0cyhod2Rldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTAwMS19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTAwMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDAzOmludCBoaW5pYzNfY21kcXNfaW5pdChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDA0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDA1Olx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTAwNi1cdHZvaWQgX19pb21lbSAqZGJfYmFzZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTAxOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDE5Olx0ZXJyID0gaGluaWMzX2FsbG9jX2RiX2FkZHIoaHdkZXYsIFx1MDAyNmRiX2Jhc2UsIE5VTEwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwMjAtXHRpZiAoZXJyKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwMzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTAzNjpcdGVyciA9IGhpbmljM19zZXRfY21kcV9jdHh0cyhod2Rldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTAzNy1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTA0ODpcdGhpbmljM19mcmVlX2RiX2FkZHIoaHdkZXYsIGNtZHFzLVx1MDAzZWNtZHFzX2RiX2Jhc2UpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNDktZXJyX2Rlc3Ryb3lfY21kcV93cTpcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTA1Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDU4OnZvaWQgaGluaWMzX2NtZHFzX2ZyZWUoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTA1OS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTA2MDpcdHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzID0gaHdkZXYtXHUwMDNlY21kcXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTA2MS1cdHU4IGNtZHFfdHlwZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTA2NS1cdGZvciAoY21kcV90eXBlID0gMDsgY21kcV90eXBlIFx1MDAzYyBjbWRxcy1cdTAwM2VjbWRxX251bTsgY21kcV90eXBlJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwNjY6XHRcdGhpbmljM19jbWRxX2ZsdXNoX2NtZChcdTAwMjZjbWRxcy1cdTAwM2VjbWRxW2NtZHFfdHlwZV0pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwNjc6XHRcdGhpbmljM19jbWRxX3Jlc2V0X2FsbF9jbWRfYnVmKFx1MDAyNmNtZHFzLVx1MDAzZWNtZHFbY21kcV90eXBlXSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTA2OC1cdFx0a2ZyZWUoY21kcXMtXHUwMDNlY21kcVtjbWRxX3R5cGVdLmNtZF9pbmZvcyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTA3MTpcdGhpbmljM19mcmVlX2RiX2FkZHIoaHdkZXYsIGNtZHFzLVx1MDAzZWNtZHFzX2RiX2Jhc2UpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNzItXHRkZXN0cm95X2NtZHFfd3EoaHdkZXYsIGNtZHFzKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTA3Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDc3OmJvb2wgaGluaWMzX2NtZHFfaWRsZShzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTA3OC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTA3OTpcdHJldHVybiBoaW5pYzNfd3FfZ2V0X3VzZWQoXHUwMDI2Y21kcS1cdTAwM2V3cSkgPT0gMDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDgwLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDo5OiNpbmNsdWRlIFwmIzM0O2hpbmljM19od19pbnRmLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMDojaW5jbHVkZSBcJiMzNDtoaW5pYzNfd3EuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTExLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaD0yNT1zdHJ1Y3QgY21kcV9sY21kX2J1ZmRlc2Mge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjI2Olx0c3RydWN0IGhpbmljM19zZ2Ugc2dlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTI3LVx0X19sZTY0ICAgICAgICAgICAgcnN2ZDI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oPTQ0PXN0cnVjdCBjbWRxX2NvbXBsZXRpb24ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTQ1LVx0dW5pb24ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjQ2Olx0XHRzdHJ1Y3QgaGluaWMzX3NnZSAgICAgICBzZ2U7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtNDctXHRcdHN0cnVjdCBjbWRxX2RpcmVjdF9yZXNwIGRpcmVjdDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg9NzU9c3RhdGljX2Fzc2VydChzaXplb2Yoc3RydWN0IGNtZHFfd3FlKSA9PSA2NCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtNzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6Nzc6ZW51bSBoaW5pYzNfY21kcV90eXBlIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC03OC1cdEhJTklDM19DTURRX1NZTkMgICAgICA9IDAsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTgxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjgyOmVudW0gaGluaWMzX2NtZHFfc3RhdHVzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC04My1cdEhJTklDM19DTURRX0VOQUJMRSA9IEJJVCgwKSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtODUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6ODY6ZW51bSBoaW5pYzNfY21kcV9jbWRfdHlwZSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtODctXHRISU5JQzNfQ01EX1RZUEVfTk9ORSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtOTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6OTY6c3RydWN0IGhpbmljM19jbWRfYnVmIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC05Ny1cdHZvaWQgICAgICAgKmJ1Zjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEwMzpzdHJ1Y3QgaGluaWMzX2NtZF9idWZfcGFpciB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTA0Olx0c3RydWN0IGhpbmljM19jbWRfYnVmICppbjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMDU6XHRzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKm91dDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMDYtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTA4OnN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTA5Olx0ZW51bSBoaW5pYzNfY21kcV9jbWRfdHlwZSBjbWRfdHlwZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMTAtXHRzdHJ1Y3QgY29tcGxldGlvbiAgICAgICAgICpkb25lO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMTUtXHR1NjQgICAgICAgICAgICAgICAgICAgICAgIGNtZHFfbXNnX2lkO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjExNjpcdHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAgICAgKmJ1Zl9pbjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMTc6XHRzdHJ1Y3QgaGluaWMzX2NtZF9idWYgICAgICpidWZfb3V0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTExOC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTExOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMjA6c3RydWN0IGhpbmljM19jbWRxIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMjE6XHRzdHJ1Y3QgaGluaWMzX3dxICAgICAgICAgICAgd3E7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTIyOlx0ZW51bSBoaW5pYzNfY21kcV90eXBlICAgICAgIGNtZHFfdHlwZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMjMtXHR1OCAgICAgICAgICAgICAgICAgICAgICAgICAgd3JhcHBlZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTI1LVx0c3BpbmxvY2tfdCAgICAgICAgICAgICAgICAgIGNtZHFfbG9jaztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMjY6XHRzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKmNtZF9pbmZvcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMjc6XHRzdHJ1Y3QgaGluaWMzX2h3ZGV2ICAgICAgICAgKmh3ZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTEyOC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTEyOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMzA6c3RydWN0IGhpbmljM19jbWRxcyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTMxOlx0c3RydWN0IGhpbmljM19od2RldiAqaHdkZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTMyOlx0c3RydWN0IGhpbmljM19jbWRxICBjbWRxW0hJTklDM19NQVhfQ01EUV9UWVBFU107XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTMzLVx0c3RydWN0IGRtYV9wb29sICAgICAqY21kX2J1Zl9wb29sO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xNDgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTQ5OmludCBoaW5pYzNfY21kcXNfaW5pdChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2Rldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTUwOnZvaWQgaGluaWMzX2NtZHFzX2ZyZWUoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTE1MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNTI6c3RydWN0IGhpbmljM19jbWRfYnVmICpoaW5pYzNfYWxsb2NfY21kX2J1ZihzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2Rldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTUzOnZvaWQgaGluaWMzX2ZyZWVfY21kX2J1ZihzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNTQ6XHRcdFx0IHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqY21kX2J1Zik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTU1OnZvaWQgaGluaWMzX2NtZHFfY2VxX2hhbmRsZXIoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsIF9fbGUzMiBjZXFlX2RhdGEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTE1Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNTc6aW50IGhpbmljM19jbWRfYnVmX3BhaXJfaW5pdChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNTg6XHRcdFx0ICAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWZfcGFpciAqcGFpcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTU5OnZvaWQgaGluaWMzX2NtZF9idWZfcGFpcl91bmluaXQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTYwOlx0XHRcdFx0c3RydWN0IGhpbmljM19jbWRfYnVmX3BhaXIgKnBhaXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2MTppbnQgaGluaWMzX2NtZHFfZGlyZWN0X3Jlc3Aoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsIHU4IG1vZCwgdTggY21kLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2MjpcdFx0XHQgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4sIF9fbGU2NCAqb3V0X3BhcmFtKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNjM6aW50IGhpbmljM19jbWRxX2RldGFpbF9yZXNwKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LCB1OCBtb2QsIHU4IGNtZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNjQ6XHRcdFx0ICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX2luLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2NTpcdFx0XHQgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfb3V0LCBfX2xlNjQgKm91dF9wYXJhbSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTY2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2Nzp2b2lkIGhpbmljM19jbWRxX2ZsdXNoX3N5bmNfY21kKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNjg6aW50IGhpbmljM19yZWluaXRfY21kcV9jdHh0cyhzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2Rldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTY5OmJvb2wgaGluaWMzX2NtZHFfaWRsZShzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTE3MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYy03LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmM6ODojaW5jbHVkZSBcJiMzNDtoaW5pYzNfY29tbW9uLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NvbW1vbi5jLTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYzoxMDppbnQgaGluaWMzX2RtYV96YWxsb2NfY29oZXJlbnRfYWxpZ24oc3RydWN0IGRldmljZSAqZGV2LCB1MzIgc2l6ZSwgdTMyIGFsaWduLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmMtMTEtXHRcdFx0XHQgICAgIGdmcF90IGZsYWcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYzoxMjpcdFx0XHRcdCAgICAgc3RydWN0IGhpbmljM19kbWFfYWRkcl9hbGlnbiAqbWVtX2FsaWduKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmMtMTMte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NvbW1vbi5jLTQ4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmM6NDk6dm9pZCBoaW5pYzNfZG1hX2ZyZWVfY29oZXJlbnRfYWxpZ24oc3RydWN0IGRldmljZSAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmM6NTA6XHRcdFx0XHQgICAgc3RydWN0IGhpbmljM19kbWFfYWRkcl9hbGlnbiAqbWVtX2FsaWduKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmMtNTEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NvbW1vbi5jLTU1LVxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDM6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjEyNjYKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiA0MDgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nIERlY2lzaW9uIGZvciBoaW5pYzMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIHRoZSBkcml2ZXIgaW4gcXVlc3Rpb24gaXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGlzIHRoaXMgYSBzdGFuZGFyZCBkcml2ZXIgZm9yIGEgaGFyZHdhcmUgTklDLCBub3Qgc29tZXRoaW5nIGVtdWxhdGVkIGluIGEgdHlwaWNhbCBRRU1VIHNldHVwPyBZZXMsIEh1YXdlaSYjMzk7cyBJbnRlbGxpZ2VudCBOSUMgKGhpbmljMykgaXMgZGVmaW5pdGVseSBhIHBoeXNpY2FsIFBDSWUgY2FyZC4gTm93LCBJIG5lZWQgdG8gYmUgc3VyZTsgZG9lcyBRRU1VIGhhdmUgYW55IGVtdWxhdGlvbiBzcGVjaWZpY2FsbHkgZm9yIHRoZSBoaW5pYzM/IE5vLCBzdGFuZGFyZCBRRU1VIGRvZXNuJiMzOTt0IGVtdWxhdGUgaXQuCgpBIHF1aWNrIHRob3VnaHQ7IHdoYXQgYWJvdXQgc3l6a2FsbGVyPyBEb2VzIHN5emthbGxlciBzb21laG93IGZ1enogaXQ/IEFoLCBidXQgaXQgY291bGQgYmUgdGhhdCBzeXprYWxsZXIgdG91Y2hlcyBpdCB2aWEgYSBwc2V1ZG8tZGV2aWNlIG9yIFBDSSBpbmplY3Rpb24sIG9yIHBlcmhhcHMgYW5vdGhlciBtZWFucy4gSSBuZWVkIHRvIGJlIGNhcmVmdWwgaGVyZS4gTGV0JiMzOTtzIHNlZS4uLiB0aGUgaW5zdHJ1Y3Rpb25zIHNheSB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIHBhdGNoIGludm9sdmVzIGNvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgdGhhdCByZXF1aXJlIHNwZWNpZmljLCBub24tZW11bGF0ZWQgaGFyZHdhcmUuIElzIGBoaW5pYzNgIGEgdmVuZG9yLXNwZWNpZmljIFNtYXJ0TklDIGRyaXZlcj8gWWVzLCBpdCBpcyEKCkxldCBtZSBjb25maXJtIHRoYXQgdGhlIGNvZGUgaXMgKnB1cmVseSogcmVsYXRlZCB0byB0aGUgaGFyZHdhcmUgZHJpdmVyLiBZZXMsIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzYCBpcyB0aGUgSHVhd2VpIEludGVsbGlnZW50IE5JQyBkcml2ZXIuIE5vdywgc3l6a2FsbGVyIGRvZXNuJiMzOTt0IGhhdmUgYW4gKmVtdWxhdGlvbiogZm9yIGhpbmljMywgcmlnaHQ/IENvcnJlY3QuCgpPa2F5LCBldmVuIHRob3VnaCBzeXprYWxsZXIgZG9lcyBoYXZlIHNvbWUgUENJIGZ1enppbmcgY2FwYWJpbGl0aWVzLCBJIG5lZWQgdG8gcmVtZW1iZXIgdGhlIGluc3RydWN0aW9uczogJiMzNDtDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIC4uLiB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4mIzM0OyBCZWNhdXNlIGBoaW5pYzNgIGZhbGxzIHNxdWFyZWx5IGludG8gdGhhdCBjYXRlZ29yeSwgSSBoYXZlIHRvIGNvbmNsdWRlIHRoYXQgYFdvcnRoRnV6emluZz1mYWxzZWAuIEkgYW0gZ29pbmcgdG8gdmVyaWZ5IHRoZSBQQ0llIG5hdHVyZSBvZiB0aGUgZHJpdmVyIGJlZm9yZSBJIGNvbW1pdCB0byB0aGUgZmFsc2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDM6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGNpX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2xsZC5jPTQzNj1zdGF0aWMgdm9pZCBoaW5pYzNfc2h1dGRvd24oc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfbGxkLmMtNDQ1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfbGxkLmM6NDQ2OnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBoaW5pYzNfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfbGxkLmMtNDQ3LVx0Lm5hbWUgICAgICAgICAgICA9IEhJTklDM19OSUNfRFJWX05BTUUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDM6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjIyODQKCQkJCQkJCW91dHB1dDogODEKCQkJCQkJCXRob3VnaHRzOiAyMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nIERlY2lzaW9uIGZvciBUaGlzIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgbG9va3MgbGlrZSBhIFBDSSBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgYGhpbmljM2AgZHJpdmVyLiBJIGNhbiBzZWUgZnJvbSB0aGUgcGF0Y2ggdGhhdCBpdCYjMzk7cyBtb2RpZnlpbmcgc2V2ZXJhbCBmdW5jdGlvbnM6IGBoaW5pYzNfdHhfbWFwX3NrYmAsIGBoaW5pYzNfdHhfY3N1bWAsIGBoaW5pYzNfdHhfb2ZmbG9hZGAsIGFuZCBgaGluaWMzX3NlbmRfb25lX3NrYmAuIEFsbCBvZiB0aGVzZSBhcmUgd2l0aGluIHRoZSBgaGluaWMzYCBkcml2ZXIsIHdoaWNoIGlzLCBhcyBJIHJlY2FsbCwgYSBIdWF3ZWktZGV2ZWxvcGVkIFNtYXJ0TklDIGRyaXZlci4gQW5kIHRoZSBTbWFydE5JQyBuYXR1cmUgbWVhbnMgaXQmIzM5O3MgdmVuZG9yLXNwZWNpZmljIGFuZCByZXF1aXJlcyBhIHBoeXNpY2FsIFBDSWUgY2FyZCDigJMgbm90IHNvbWV0aGluZyBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgoKTm93LCBsZXQgbWUganVzdCBkb3VibGUtY2hlY2sgdGhlIGV4Y2x1c2lvbiBjcml0ZXJpYeKApiB5ZXMsICYjMzQ7Y29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVyc+KApiB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4mIzM0OwoKVGhhdCYjMzk7cyBpdCwgcGxhaW4gYXMgZGF5LiBTaW5jZSBgaGluaWMzYCBpcyBpbmRlZWQgYSBTbWFydE5JQyBkcml2ZXIgZnJvbSBhIHNwZWNpZmljIHZlbmRvciwgYW5kIGl0IG5lZWRzIGEgcmVhbCBQQ0llIGNhcmQsIGl0IGFic29sdXRlbHkgZmFsbHMgaW50byB0aGUgZXhjbHVzaW9uIHJ1bGUuIFRoZXJlZm9yZSwgSSYjMzk7bSBnb2luZyB0byBzZXQgYFdvcnRoRnV6emluZz1mYWxzZWAgZm9yIHRoaXMgcGF0Y2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDM6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgVHggcGF0aCBvZiB0aGUgaGluaWMzIGRyaXZlciAoSHVhd2VpIEludGVsbGlnZW50IE5JQykuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgU21hcnROSUMgUENJZSBkcml2ZXIgdGhhdCByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgbWFraW5nIGl0IHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFR4IHBhdGggb2YgdGhlIGhpbmljMyBkcml2ZXIgKEh1YXdlaSBJbnRlbGxpZ2VudCBOSUMpLiBUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIFNtYXJ0TklDIFBDSWUgZHJpdmVyIHRoYXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUsIG1ha2luZyBpdCB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wNVQwMzo1NzowMS4yMjQ2OTE2MDJaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDE5NDc0NTkzOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFR4IHBhdGggb2YgdGhlIGhpbmljMyBkcml2ZXIgKEh1YXdlaSBJbnRlbGxpZ2VudCBOSUMpLiBUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIFNtYXJ0TklDIFBDSWUgZHJpdmVyIHRoYXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUsIG1ha2luZyBpdCB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDAzOjU3OjAxLjIyNDY5NzM4MloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE4OTczNzQzNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGYzNjE3YzZiNjk4YmJjMWE3NWYyN2Y5OTUzODMxMDFmODcwNjk5ZjlcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBBdWcgNSAwMzo1Njo1OSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xcbmluZGV4IDkzMDZiZjAwMjBjYWYuLjQ1ZWZmZGRkYjQzNDEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmNcXG5AQCAtOTcsOCArOTcsMTIgQEAgc3RhdGljIGludCBoaW5pYzNfdHhfbWFwX3NrYihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbiBcXG4gXFx0ZG1hX2luZm9bMF0uZG1hID0gZG1hX21hcF9zaW5nbGUoXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgc2tiLVxcdTAwM2VkYXRhLFxcbiBcXHRcXHRcXHRcXHRcXHQgc2tiX2hlYWRsZW4oc2tiKSwgRE1BX1RPX0RFVklDRSk7XFxuLVxcdGlmIChkbWFfbWFwcGluZ19lcnJvcihcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBkbWFfaW5mb1swXS5kbWEpKVxcbitcXHRpZiAoZG1hX21hcHBpbmdfZXJyb3IoXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgZG1hX2luZm9bMF0uZG1hKSkge1xcbitcXHRcXHR1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKFxcdTAwMjZ0eHEtXFx1MDAzZXR4cV9zdGF0cy5zeW5jcCk7XFxuK1xcdFxcdHR4cS1cXHUwMDNldHhxX3N0YXRzLm1hcF9mcmFnX2VycisrO1xcbitcXHRcXHR1NjRfc3RhdHNfdXBkYXRlX2VuZChcXHUwMDI2dHhxLVxcdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xcbiBcXHRcXHRyZXR1cm4gLUVGQVVMVDtcXG4rXFx0fVxcbiBcXG4gXFx0ZG1hX2luZm9bMF0ubGVuID0gc2tiX2hlYWRsZW4oc2tiKTtcXG4gXFxuQEAgLTExNyw2ICsxMjEsOSBAQCBzdGF0aWMgaW50IGhpbmljM190eF9tYXBfc2tiKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHN0cnVjdCBza19idWZmICpza2IsXFxuIFxcdFxcdFxcdFxcdFxcdFxcdCAgICAgc2tiX2ZyYWdfc2l6ZShmcmFnKSxcXG4gXFx0XFx0XFx0XFx0XFx0XFx0ICAgICBETUFfVE9fREVWSUNFKTtcXG4gXFx0XFx0aWYgKGRtYV9tYXBwaW5nX2Vycm9yKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIGRtYV9pbmZvW2lkeF0uZG1hKSkge1xcbitcXHRcXHRcXHR1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKFxcdTAwMjZ0eHEtXFx1MDAzZXR4cV9zdGF0cy5zeW5jcCk7XFxuK1xcdFxcdFxcdHR4cS1cXHUwMDNldHhxX3N0YXRzLm1hcF9mcmFnX2VycisrO1xcbitcXHRcXHRcXHR1NjRfc3RhdHNfdXBkYXRlX2VuZChcXHUwMDI2dHhxLVxcdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xcbiBcXHRcXHRcXHRlcnIgPSAtRUZBVUxUO1xcbiBcXHRcXHRcXHRnb3RvIGVycl91bm1hcF9wYWdlO1xcbiBcXHRcXHR9XFxuQEAgLTI2MCw5ICsyNjcsMTEgQEAgc3RhdGljIGludCBoaW5pYzNfdHhfY3N1bShzdHJ1Y3QgaGluaWMzX3R4cSAqdHhxLCBzdHJ1Y3QgaGluaWMzX3NxX3Rhc2sgKnRhc2ssXFxuIFxcdFxcdGlmIChsNF9wcm90byAhPSBJUFBST1RPX1VEUCB8fFxcbiBcXHRcXHQgICAgKChzdHJ1Y3QgdWRwaGRyICopc2tiX3RyYW5zcG9ydF9oZWFkZXIoc2tiKSktXFx1MDAzZWRlc3QgIT1cXG4gXFx0XFx0ICAgIFZYTEFOX09GRkxPQURfUE9SVF9MRSkge1xcbitcXHRcXHRcXHR1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKFxcdTAwMjZ0eHEtXFx1MDAzZXR4cV9zdGF0cy5zeW5jcCk7XFxuK1xcdFxcdFxcdHR4cS1cXHUwMDNldHhxX3N0YXRzLnVua25vd25fdHVubmVsX3BrdCsrO1xcbitcXHRcXHRcXHR1NjRfc3RhdHNfdXBkYXRlX2VuZChcXHUwMDI2dHhxLVxcdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xcbiBcXHRcXHRcXHQvKiBVbnN1cHBvcnRlZCB0dW5uZWwgcGFja2V0LCBkaXNhYmxlIGNzdW0gb2ZmbG9hZCAqL1xcbi1cXHRcXHRcXHRza2JfY2hlY2tzdW1faGVscChza2IpO1xcbi1cXHRcXHRcXHRyZXR1cm4gMDtcXG4rXFx0XFx0XFx0cmV0dXJuIHNrYl9jaGVja3N1bV9oZWxwKHNrYik7XFxuIFxcdFxcdH1cXG4gXFx0fVxcbiBcXG5AQCAtNDEyLDYgKzQyMSwxMCBAQCBzdGF0aWMgdTMyIGhpbmljM190eF9vZmZsb2FkKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBoaW5pYzNfc3FfdGFzayAqdGFzayxcXG4gXFx0XFx0b2ZmbG9hZCB8PSBISU5JQzNfVFhfT0ZGTE9BRF9UU087XFxuIFxcdH0gZWxzZSB7XFxuIFxcdFxcdHRzb19jc19lbiA9IGhpbmljM190eF9jc3VtKHR4cSwgdGFzaywgc2tiKTtcXG4rXFx0XFx0aWYgKHRzb19jc19lbiBcXHUwMDNjIDApIHtcXG4rXFx0XFx0XFx0b2ZmbG9hZCA9IEhJTklDM19UWF9PRkZMT0FEX0lOVkFMSUQ7XFxuK1xcdFxcdFxcdHJldHVybiBvZmZsb2FkO1xcbitcXHRcXHR9XFxuIFxcdFxcdGlmICh0c29fY3NfZW4pXFxuIFxcdFxcdFxcdG9mZmxvYWQgfD0gSElOSUMzX1RYX09GRkxPQURfQ1NVTTtcXG4gXFx0fVxcbkBAIC01MzksMTIgKzU1MiwxNyBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaGluaWMzX3NlbmRfb25lX3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbiBcXHRpbnQgZXJyO1xcbiBcXG4gXFx0aWYgKHVubGlrZWx5KHNrYi1cXHUwMDNlbGVuIFxcdTAwM2MgTUlOX1NLQl9MRU4pKSB7XFxuLVxcdFxcdGlmIChza2JfcGFkKHNrYiwgTUlOX1NLQl9MRU4gLSBza2ItXFx1MDAzZWxlbikpXFxuK1xcdFxcdGlmIChza2JfcGFkKHNrYiwgTUlOX1NLQl9MRU4gLSBza2ItXFx1MDAzZWxlbikpIHtcXG4rXFx0XFx0XFx0dTY0X3N0YXRzX3VwZGF0ZV9iZWdpbihcXHUwMDI2dHhxLVxcdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xcbitcXHRcXHRcXHR0eHEtXFx1MDAzZXR4cV9zdGF0cy5za2JfcGFkX2VycisrO1xcbitcXHRcXHRcXHR1NjRfc3RhdHNfdXBkYXRlX2VuZChcXHUwMDI2dHhxLVxcdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xcbiBcXHRcXHRcXHRnb3RvIGVycl9vdXQ7XFxuK1xcdFxcdH1cXG4gXFxuIFxcdFxcdHNrYi1cXHUwMDNlbGVuID0gTUlOX1NLQl9MRU47XFxuIFxcdH1cXG4gXFxuK1xcdG9mZmxvYWQgPSBoaW5pYzNfdHhfb2ZmbG9hZChza2IsIFxcdTAwMjZ0YXNrLCBcXHUwMDI2cXVldWVfaW5mbywgdHhxKTtcXG4gXFx0bnVtX3NnZSA9IHNrYl9zaGluZm8oc2tiKS1cXHUwMDNlbnJfZnJhZ3MgKyAxO1xcbiBcXHQvKiBhc3N1bWUgbm9ybWFsIHdxZSBmb3JtYXQgKyAxIHdxZWJiIGZvciB0YXNrIGluZm8gKi9cXG4gXFx0d3FlYmJfY250ID0gbnVtX3NnZSArIDE7XFxuQEAgLTU2MCw3ICs1NzgsNiBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaGluaWMzX3NlbmRfb25lX3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbiBcXHRcXHRyZXR1cm4gTkVUREVWX1RYX0JVU1k7XFxuIFxcdH1cXG4gXFxuLVxcdG9mZmxvYWQgPSBoaW5pYzNfdHhfb2ZmbG9hZChza2IsIFxcdTAwMjZ0YXNrLCBcXHUwMDI2cXVldWVfaW5mbywgdHhxKTtcXG4gXFx0aWYgKHVubGlrZWx5KG9mZmxvYWQgPT0gSElOSUMzX1RYX09GRkxPQURfSU5WQUxJRCkpIHtcXG4gXFx0XFx0Z290byBlcnJfZHJvcF9wa3Q7XFxuIFxcdH0gZWxzZSBpZiAoIW9mZmxvYWQpIHtcXG5AQCAtNjA0LDYgKzYyMSwxMCBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaGluaWMzX3NlbmRfb25lX3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbiBlcnJfZHJvcF9wa3Q6XFxuIFxcdGRldl9rZnJlZV9za2JfYW55KHNrYik7XFxuIGVycl9vdXQ6XFxuK1xcdHU2NF9zdGF0c191cGRhdGVfYmVnaW4oXFx1MDAyNnR4cS1cXHUwMDNldHhxX3N0YXRzLnN5bmNwKTtcXG4rXFx0dHhxLVxcdTAwM2V0eHFfc3RhdHMuZHJvcHBlZCsrO1xcbitcXHR1NjRfc3RhdHNfdXBkYXRlX2VuZChcXHUwMDI2dHhxLVxcdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xcbitcXG4gXFx0cmV0dXJuIE5FVERFVl9UWF9PSztcXG4gfVxcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDM6NTc6MDIuNDE1MTkwMjI4WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MTkwMDQyNDE5NTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUeCBwYXRoIG9mIHRoZSBoaW5pYzMgZHJpdmVyIChIdWF3ZWkgSW50ZWxsaWdlbnQgTklDKS4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBTbWFydE5JQyBQQ0llIGRyaXZlciB0aGF0IHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCBtYWtpbmcgaXQgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBmMzYxN2M2YjY5OGJiYzFhNzVmMjdmOTk1MzgzMTAxZjg3MDY5OWY5XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBBdWcgNSAwMzo1Njo1OSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jXG5pbmRleCA5MzA2YmYwMDIwY2FmLi40NWVmZmRkZGI0MzQxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xuQEAgLTk3LDggKzk3LDEyIEBAIHN0YXRpYyBpbnQgaGluaWMzX3R4X21hcF9za2Ioc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcbiBcdGRtYV9pbmZvWzBdLmRtYSA9IGRtYV9tYXBfc2luZ2xlKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBza2ItXHUwMDNlZGF0YSxcbiBcdFx0XHRcdFx0IHNrYl9oZWFkbGVuKHNrYiksIERNQV9UT19ERVZJQ0UpO1xuLVx0aWYgKGRtYV9tYXBwaW5nX2Vycm9yKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBkbWFfaW5mb1swXS5kbWEpKVxuK1x0aWYgKGRtYV9tYXBwaW5nX2Vycm9yKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBkbWFfaW5mb1swXS5kbWEpKSB7XG4rXHRcdHU2NF9zdGF0c191cGRhdGVfYmVnaW4oXHUwMDI2dHhxLVx1MDAzZXR4cV9zdGF0cy5zeW5jcCk7XG4rXHRcdHR4cS1cdTAwM2V0eHFfc3RhdHMubWFwX2ZyYWdfZXJyKys7XG4rXHRcdHU2NF9zdGF0c191cGRhdGVfZW5kKFx1MDAyNnR4cS1cdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xuIFx0XHRyZXR1cm4gLUVGQVVMVDtcbitcdH1cbiBcbiBcdGRtYV9pbmZvWzBdLmxlbiA9IHNrYl9oZWFkbGVuKHNrYik7XG4gXG5AQCAtMTE3LDYgKzEyMSw5IEBAIHN0YXRpYyBpbnQgaGluaWMzX3R4X21hcF9za2Ioc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcdFx0XHRcdFx0XHQgICAgIHNrYl9mcmFnX3NpemUoZnJhZyksXG4gXHRcdFx0XHRcdFx0ICAgICBETUFfVE9fREVWSUNFKTtcbiBcdFx0aWYgKGRtYV9tYXBwaW5nX2Vycm9yKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBkbWFfaW5mb1tpZHhdLmRtYSkpIHtcbitcdFx0XHR1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKFx1MDAyNnR4cS1cdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xuK1x0XHRcdHR4cS1cdTAwM2V0eHFfc3RhdHMubWFwX2ZyYWdfZXJyKys7XG4rXHRcdFx0dTY0X3N0YXRzX3VwZGF0ZV9lbmQoXHUwMDI2dHhxLVx1MDAzZXR4cV9zdGF0cy5zeW5jcCk7XG4gXHRcdFx0ZXJyID0gLUVGQVVMVDtcbiBcdFx0XHRnb3RvIGVycl91bm1hcF9wYWdlO1xuIFx0XHR9XG5AQCAtMjYwLDkgKzI2NywxMSBAQCBzdGF0aWMgaW50IGhpbmljM190eF9jc3VtKHN0cnVjdCBoaW5pYzNfdHhxICp0eHEsIHN0cnVjdCBoaW5pYzNfc3FfdGFzayAqdGFzayxcbiBcdFx0aWYgKGw0X3Byb3RvICE9IElQUFJPVE9fVURQIHx8XG4gXHRcdCAgICAoKHN0cnVjdCB1ZHBoZHIgKilza2JfdHJhbnNwb3J0X2hlYWRlcihza2IpKS1cdTAwM2VkZXN0ICE9XG4gXHRcdCAgICBWWExBTl9PRkZMT0FEX1BPUlRfTEUpIHtcbitcdFx0XHR1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKFx1MDAyNnR4cS1cdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xuK1x0XHRcdHR4cS1cdTAwM2V0eHFfc3RhdHMudW5rbm93bl90dW5uZWxfcGt0Kys7XG4rXHRcdFx0dTY0X3N0YXRzX3VwZGF0ZV9lbmQoXHUwMDI2dHhxLVx1MDAzZXR4cV9zdGF0cy5zeW5jcCk7XG4gXHRcdFx0LyogVW5zdXBwb3J0ZWQgdHVubmVsIHBhY2tldCwgZGlzYWJsZSBjc3VtIG9mZmxvYWQgKi9cbi1cdFx0XHRza2JfY2hlY2tzdW1faGVscChza2IpO1xuLVx0XHRcdHJldHVybiAwO1xuK1x0XHRcdHJldHVybiBza2JfY2hlY2tzdW1faGVscChza2IpO1xuIFx0XHR9XG4gXHR9XG4gXG5AQCAtNDEyLDYgKzQyMSwxMCBAQCBzdGF0aWMgdTMyIGhpbmljM190eF9vZmZsb2FkKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBoaW5pYzNfc3FfdGFzayAqdGFzayxcbiBcdFx0b2ZmbG9hZCB8PSBISU5JQzNfVFhfT0ZGTE9BRF9UU087XG4gXHR9IGVsc2Uge1xuIFx0XHR0c29fY3NfZW4gPSBoaW5pYzNfdHhfY3N1bSh0eHEsIHRhc2ssIHNrYik7XG4rXHRcdGlmICh0c29fY3NfZW4gXHUwMDNjIDApIHtcbitcdFx0XHRvZmZsb2FkID0gSElOSUMzX1RYX09GRkxPQURfSU5WQUxJRDtcbitcdFx0XHRyZXR1cm4gb2ZmbG9hZDtcbitcdFx0fVxuIFx0XHRpZiAodHNvX2NzX2VuKVxuIFx0XHRcdG9mZmxvYWQgfD0gSElOSUMzX1RYX09GRkxPQURfQ1NVTTtcbiBcdH1cbkBAIC01MzksMTIgKzU1MiwxNyBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaGluaWMzX3NlbmRfb25lX3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0aW50IGVycjtcbiBcbiBcdGlmICh1bmxpa2VseShza2ItXHUwMDNlbGVuIFx1MDAzYyBNSU5fU0tCX0xFTikpIHtcbi1cdFx0aWYgKHNrYl9wYWQoc2tiLCBNSU5fU0tCX0xFTiAtIHNrYi1cdTAwM2VsZW4pKVxuK1x0XHRpZiAoc2tiX3BhZChza2IsIE1JTl9TS0JfTEVOIC0gc2tiLVx1MDAzZWxlbikpIHtcbitcdFx0XHR1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKFx1MDAyNnR4cS1cdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xuK1x0XHRcdHR4cS1cdTAwM2V0eHFfc3RhdHMuc2tiX3BhZF9lcnIrKztcbitcdFx0XHR1NjRfc3RhdHNfdXBkYXRlX2VuZChcdTAwMjZ0eHEtXHUwMDNldHhxX3N0YXRzLnN5bmNwKTtcbiBcdFx0XHRnb3RvIGVycl9vdXQ7XG4rXHRcdH1cbiBcbiBcdFx0c2tiLVx1MDAzZWxlbiA9IE1JTl9TS0JfTEVOO1xuIFx0fVxuIFxuK1x0b2ZmbG9hZCA9IGhpbmljM190eF9vZmZsb2FkKHNrYiwgXHUwMDI2dGFzaywgXHUwMDI2cXVldWVfaW5mbywgdHhxKTtcbiBcdG51bV9zZ2UgPSBza2Jfc2hpbmZvKHNrYiktXHUwMDNlbnJfZnJhZ3MgKyAxO1xuIFx0LyogYXNzdW1lIG5vcm1hbCB3cWUgZm9ybWF0ICsgMSB3cWViYiBmb3IgdGFzayBpbmZvICovXG4gXHR3cWViYl9jbnQgPSBudW1fc2dlICsgMTtcbkBAIC01NjAsNyArNTc4LDYgQEAgc3RhdGljIG5ldGRldl90eF90IGhpbmljM19zZW5kX29uZV9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcdFx0cmV0dXJuIE5FVERFVl9UWF9CVVNZO1xuIFx0fVxuIFxuLVx0b2ZmbG9hZCA9IGhpbmljM190eF9vZmZsb2FkKHNrYiwgXHUwMDI2dGFzaywgXHUwMDI2cXVldWVfaW5mbywgdHhxKTtcbiBcdGlmICh1bmxpa2VseShvZmZsb2FkID09IEhJTklDM19UWF9PRkZMT0FEX0lOVkFMSUQpKSB7XG4gXHRcdGdvdG8gZXJyX2Ryb3BfcGt0O1xuIFx0fSBlbHNlIGlmICghb2ZmbG9hZCkge1xuQEAgLTYwNCw2ICs2MjEsMTAgQEAgc3RhdGljIG5ldGRldl90eF90IGhpbmljM19zZW5kX29uZV9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBlcnJfZHJvcF9wa3Q6XG4gXHRkZXZfa2ZyZWVfc2tiX2FueShza2IpO1xuIGVycl9vdXQ6XG4rXHR1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKFx1MDAyNnR4cS1cdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xuK1x0dHhxLVx1MDAzZXR4cV9zdGF0cy5kcm9wcGVkKys7XG4rXHR1NjRfc3RhdHNfdXBkYXRlX2VuZChcdTAwMjZ0eHEtXHUwMDNldHhxX3N0YXRzLnN5bmNwKTtcbitcbiBcdHJldHVybiBORVRERVZfVFhfT0s7XG4gfVxuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDM6NTc6MDIuNDE1MTkxMjE4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Njc3NDc5MTgyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBIdWF3ZWkgTklDIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCdzIG1ha2luZyBzb21lIGNoYW5nZXMgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY2AgZmlsZS4gVGhpcyBpcyBpbnRlcmVzdGluZyDigJMgaXQncyB0b3VjaGluZyBzZXZlcmFsIGtleSBmdW5jdGlvbnM6IGBoaW5pYzNfdHhfbWFwX3NrYmAsIGBoaW5pYzNfdHhfY3N1bWAsIGBoaW5pYzNfdHhfb2ZmbG9hZGAsIGFuZCBgaGluaWMzX3NlbmRfb25lX3NrYmAuIEEgZ29vZCBjaHVuayBvZiBpdCBpcyBmb2N1c2VkIG9uIGFkZGluZyBzb21lIG5ldyBzdGF0cyB1cGRhdGVzLCB3aGljaCBpcyBhbHdheXMgaGVscGZ1bCBmb3IgZGVidWdnaW5nIGFuZCBwZXJmb3JtYW5jZSBhbmFseXNpcy4gVGhpbmdzIGxpa2UgdHJhY2tpbmcgbWFwcGluZyBlcnJvcnMgKGB0eHEtXHUwMDNldHhxX3N0YXRzLm1hcF9mcmFnX2VycisrYCksIHVua25vd24gdHVubmVsIHBhY2tldHMgKGB0eHEtXHUwMDNldHhxX3N0YXRzLnVua25vd25fdHVubmVsX3BrdCsrYCksIHBhZGRpbmcgZXJyb3JzIChgdHhxLVx1MDAzZXR4cV9zdGF0cy5za2JfcGFkX2VycisrYCksIGFuZCBkcm9wcGVkIHBhY2tldHMgKGB0eHEtXHUwMDNldHhxX3N0YXRzLmRyb3BwZWQrK2ApIGFyZSBnb29kIGFkZGl0aW9ucy5cblxuTm93LCBsb29raW5nIGNsb3NlciwgdGhlcmUncyBhIGNoYW5nZSBpbiBgaGluaWMzX3R4X2NzdW1gLiBJdCdzIG5vdyByZXR1cm5pbmcgdGhlIHJlc3VsdCBvZiBgc2tiX2NoZWNrc3VtX2hlbHAoc2tiKWAgaW5zdGVhZCBvZiBzaW1wbHkgYDBgLiBUaGF0J3MgYSBmdW5kYW1lbnRhbCBzaGlmdCBpbiBob3cgY2hlY2tzdW0gb2ZmbG9hZCBpcyBoYW5kbGVkIGhlcmUuIFdlIG5lZWQgdG8gYmUgY2FyZWZ1bCB3aXRoIHRoYXQuIEkgYWxzbyBzZWUgYSBjaGFuZ2UgaW4gYGhpbmljM190eF9vZmZsb2FkYCwgd2hlcmUgdGhlcmUncyBhIGNoZWNrIGZvciBgdHNvX2NzX2VuIFx1MDAzYyAwYCBub3csIHJldHVybmluZyBgSElOSUMzX1RYX09GRkxPQURfSU5WQUxJRGAgaWYgdGhhdCdzIHRoZSBjYXNlLiBBbmQgaW4gYGhpbmljM19zZW5kX29uZV9za2JgLCBgaGluaWMzX3R4X29mZmxvYWRgIGlzIGNhbGxlZCAqYmVmb3JlKiBjYWxjdWxhdGluZyBgbnVtX3NnZWAgYW5kIGB3cWViYl9jbnRgIC0gdGhpcyBpcyBnb2luZyB0byBhZmZlY3QgdGhlIGNvbnRyb2wgZmxvdyBoZXJlLlxuXG5XYWl0LCBgaGluaWMzYOKApnRoYXQgc291bmRzIGxpa2UgYSBIdWF3ZWkgSW50ZWxsaWdlbnQgTklDIGRyaXZlci4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJJ20gZm9sbG93aW5nIHRoZSBiaWdnZXIgcGljdHVyZSwgYW5kIHdoYXQgdGhpcyBpbXBsaWVzLiBUaGlzIHByb2JhYmx5IGlzbid0IGEgc3RhbmRhcmQgbmV0d29yayBpbnRlcmZhY2UuIEkgbmVlZCB0byBrbm93IHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpcyBiZWluZyBhIHZlbmRvci1zcGVjaWZpYyBTbWFydE5JQy4gSXMgdGhpcyBzb21lIGtpbmQgb2YgUENJZSBoYXJkd2FyZSBjYXJkP1xuXG5ZZXMsIFwiSHVhd2VpIEludGVsbGlnZW50IE5JQyBkcml2ZXJcIiBhbG1vc3QgY2VydGFpbmx5IGNvbmZpcm1zIHRoYXQuIE9rYXksIEknbSBnb2luZyB0byBxdWlja2x5IGNoZWNrIGlmIHRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBoYXJkd2FyZSBjYXJkIHRoYXQgKmlzbid0KiBlbXVsYXRlZCBieSBzdGFuZGFyZCBRRU1VLiBHaXZlbiB3aGF0IEknbSBzZWVpbmcsIHRoZXJlJ3MgYSBzdHJvbmcgY2hhbmNlIHRoaXMgbmVlZHMgcmVhbCBoYXJkd2FyZS4gQWgsIHRoZSBkb2N1bWVudGF0aW9uIGNvbmZpcm1zIGl0OiBcIkNvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cIiBCaW5nby5cblxuWXVwLCB0aGlzIGlzIGEgU21hcnROSUMgZHJpdmVyLiBOb3csIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgdGhhdCB0aGlzIHNwZWNpZmljIGBoaW5pYzNgIGRyaXZlciBpcyAqYWN0dWFsbHkqIGVtdWxhdGVkIG9yIG5vdC4gSSdsbCBxdWlja2x5IHNlYXJjaCB0aGUga2VybmVsIHRyZWUganVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUuIFRoaXMgY29udGV4dCBpcyBpbXBvcnRhbnQgYmVjYXVzZSBpdCBjaGFuZ2VzIGhvdyBJIHdvdWxkIGRlYnVnIHRoaXMuIElmIGl0IG5lZWRzIHJlYWwgaGFyZHdhcmUsIEkgbmVlZCBhY2Nlc3MgdG8gdGhhdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzQwNywiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQyOCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDAzOjU3OjA5LjE4OTk4NTQ3MVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTIzNzA1NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJoaW5pYzNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA2NDg5IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL0tjb25maWc9Nj1jb25maWcgSElOSUMzXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL0tjb25maWctMjAtXFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvS2NvbmZpZzoyMTpcXHQgIFRoZSBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgaGluaWMzLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZS0zLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6NDpvYmotJChDT05GSUdfSElOSUMzKSArPSBoaW5pYzMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGUtNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjY6aGluaWMzLW9ianMgOj0gaGluaWMzX2NtZHEubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZTo3OlxcdCAgICAgICBoaW5pYzNfY29tbW9uLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6ODpcXHQgICAgICAgaGluaWMzX2Vxcy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjk6XFx0ICAgICAgIGhpbmljM19ldGh0b29sLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTA6XFx0ICAgICAgIGhpbmljM19maWx0ZXIubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToxMTpcXHQgICAgICAgaGluaWMzX2h3X2NmZy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjEyOlxcdCAgICAgICBoaW5pYzNfaHdfY29tbS5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjEzOlxcdCAgICAgICBoaW5pYzNfaHdkZXYubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToxNDpcXHQgICAgICAgaGluaWMzX2h3aWYubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToxNTpcXHQgICAgICAgaGluaWMzX2lycS5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjE2OlxcdCAgICAgICBoaW5pYzNfbGxkLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTc6XFx0ICAgICAgIGhpbmljM19tYWluLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTg6XFx0ICAgICAgIGhpbmljM19tYm94Lm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTk6XFx0ICAgICAgIGhpbmljM19tZ210Lm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MjA6XFx0ICAgICAgIGhpbmljM19uZXRkZXZfb3BzLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MjE6XFx0ICAgICAgIGhpbmljM19uaWNfY2ZnLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MjI6XFx0ICAgICAgIGhpbmljM19uaWNfaW8ubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToyMzpcXHQgICAgICAgaGluaWMzX3F1ZXVlX2NvbW1vbi5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjI0OlxcdCAgICAgICBoaW5pYzNfcnNzLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MjU6XFx0ICAgICAgIGhpbmljM19yeC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjI2OlxcdCAgICAgICBoaW5pYzNfdHgubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToyNzpcXHQgICAgICAgaGluaWMzX3dxLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4OiNpbmNsdWRlIFxcXCJoaW5pYzNfY21kcS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5OiNpbmNsdWRlIFxcXCJoaW5pYzNfZXFzLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwOiNpbmNsdWRlIFxcXCJoaW5pYzNfaHdkZXYuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTE6I2luY2x1ZGUgXFxcImhpbmljM19od2lmLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEyOiNpbmNsdWRlIFxcXCJoaW5pYzNfbWJveC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYz0xMTI9ZW51bSBjbWRxX2NtZF90eXBlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjExOTpzdGF0aWMgdm9pZCBoaW5pYzNfZHVtcF9jbWRxX3dxZV9oZWFkKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMjAtXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IGNtZHFfd3FlICp3cWUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMzM6c3RhdGljIHN0cnVjdCBjbWRxX3dxZSAqY21kcV9yZWFkX3dxZShzdHJ1Y3QgaGluaWMzX3dxICp3cSwgdTE2ICpjaSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTM0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTM1OlxcdGlmIChoaW5pYzNfd3FfZ2V0X3VzZWQod3EpID09IDApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEzNi1cXHRcXHRyZXR1cm4gTlVMTDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xNDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjE0MzpzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmhpbmljM19hbGxvY19jbWRfYnVmKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xNDQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxNDU6XFx0c3RydWN0IGhpbmljM19jbWRfYnVmICpjbWRfYnVmO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxNDY6XFx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE0Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xNzEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjE3Mjp2b2lkIGhpbmljM19mcmVlX2NtZF9idWYoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjE3MzpcXHRcXHRcXHQgc3RydWN0IGhpbmljM19jbWRfYnVmICpjbWRfYnVmKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xNzQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxNzU6XFx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE3Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xODUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjE4NjpzdGF0aWMgdm9pZCBjbWRxX2NsZWFyX2NtZF9idWYoc3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpjbWRfaW5mbyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTg3OlxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTg4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTg5LVxcdGlmIChjbWRfaW5mby1cXHUwMDNlYnVmX2luKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjE5MDpcXHRcXHRoaW5pYzNfZnJlZV9jbWRfYnVmKGh3ZGV2LCBjbWRfaW5mby1cXHUwMDNlYnVmX2luKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTkxLVxcdFxcdGNtZF9pbmZvLVxcdTAwM2VidWZfaW4gPSBOVUxMO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE5NC1cXHRpZiAoY21kX2luZm8tXFx1MDAzZWJ1Zl9vdXQpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTk1OlxcdFxcdGhpbmljM19mcmVlX2NtZF9idWYoaHdkZXYsIGNtZF9pbmZvLVxcdTAwM2VidWZfb3V0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTk2LVxcdFxcdGNtZF9pbmZvLVxcdTAwM2VidWZfb3V0ID0gTlVMTDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xOTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjIwMDpzdGF0aWMgdm9pZCBjbGVhcl93cWVfY29tcGxldGVfYml0KHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjAxLVxcdFxcdFxcdFxcdCAgIHN0cnVjdCBjbWRxX3dxZSAqd3FlLCB1MTYgY2kpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjE3LVxcdHdtYigpOyAvKiB2ZXJpZnkgd3FlIGlzIGNsZWFyIGJlZm9yZSB1cGRhdGluZyBjaSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoyMTg6XFx0aGluaWMzX3dxX3B1dF93cWViYnMoXFx1MDAyNmNtZHEtXFx1MDAzZXdxLCBDTURRX1dRRV9OVU1fV1FFQkJTKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjE5LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjIwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoyMjE6c3RhdGljIGludCBjbWRxX2FybV9jZXFfaGFuZGxlcihzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIyMi1cXHRcXHRcXHRcXHRzdHJ1Y3QgY21kcV93cWUgKndxZSwgdTE2IGNpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MjM1OnN0YXRpYyB2b2lkIGNtZHFfdXBkYXRlX2NtZF9zdGF0dXMoc3RydWN0IGhpbmljM19jbWRxICpjbWRxLCB1MTYgcHJvZF9pZHgsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIzNi1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgY21kcV93cWUgKndxZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjM3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MjM4OlxcdHN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyAqY21kX2luZm87XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIzOS1cXHRzdHJ1Y3QgY21kcV93cWVfbGNtZCAqd3FlX2xjbWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjUyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoyNTM6c3RhdGljIHZvaWQgY21kcV9zeW5jX2NtZF9oYW5kbGVyKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjU0LVxcdFxcdFxcdFxcdCAgc3RydWN0IGNtZHFfd3FlICp3cWUsIHUxNiBjaSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yNzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjI3NTp2b2lkIGhpbmljM19jbWRxX2NlcV9oYW5kbGVyKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LCBfX2xlMzIgY2VxZV9kYXRhKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yNzYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoyNzc6XFx0ZW51bSBoaW5pYzNfY21kcV90eXBlIGNtZHFfdHlwZSA9IENNRFFfQ0VRRV9HRVQoY2VxZV9kYXRhLCBUWVBFKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Mjc4OlxcdHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzID0gaHdkZXYtXFx1MDAzZWNtZHFzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoyNzk6XFx0c3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpjbWRfaW5mbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjgwLVxcdHN0cnVjdCBjbWRxX3dxZV9sY21kICp3cWVfbGNtZDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MjgxOlxcdHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjgyLVxcdHN0cnVjdCBjbWRxX3dxZSAqd3FlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTI5Ny1cXHRcXHRcXHRcXHQgY21kcV90eXBlLCBjaSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjI5ODpcXHRcXHRcXHRoaW5pYzNfZHVtcF9jbWRxX3dxZV9oZWFkKGh3ZGV2LCB3cWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yOTktXFx0XFx0XFx0ZmFsbHRocm91Z2g7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzM0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzozMzU6c3RhdGljIGludCBjbWRxX3BhcmFtc192YWxpZChjb25zdCBzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MzM2OlxcdFxcdFxcdCAgICAgY29uc3Qgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTMzNy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzQ2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzozNDc6c3RhdGljIGludCB3YWl0X2NtZHFzX2VuYWJsZShzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzQ4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYz0zNjQ9c3RhdGljIHZvaWQgY21kcV9zZXRfY29tcGxldGlvbihzdHJ1Y3QgY21kcV9jb21wbGV0aW9uICpjb21wbGV0ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MzY1OlxcdFxcdFxcdFxcdHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX291dClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzY2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MzY3OlxcdHN0cnVjdCBoaW5pYzNfc2dlICpzZ2UgPSBcXHUwMDI2Y29tcGxldGUtXFx1MDAzZXJlc3Auc2dlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zNjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM2OTpcXHRoaW5pYzNfc2V0X3NnZShzZ2UsIGJ1Zl9vdXQtXFx1MDAzZWRtYV9hZGRyLCBjcHVfdG9fbGUzMihDTURRX0JVRl9TSVpFKSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM3MC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM3MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MzcyOnN0YXRpYyBzdHJ1Y3QgY21kcV93cWUgKmNtZHFfZ2V0X3dxZShzdHJ1Y3QgaGluaWMzX3dxICp3cSwgdTE2ICpwaSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzczLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Mzc0OlxcdGlmICghaGluaWMzX3dxX2ZyZWVfd3FlYmJzKHdxKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzc1LVxcdFxcdHJldHVybiBOVUxMO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zNzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM3NzpcXHRyZXR1cm4gaGluaWMzX3dxX2dldF9vbmVfd3FlYmIod3EsIHBpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzc4LX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYz0zODA9c3RhdGljIHZvaWQgY21kcV9zZXRfbGNtZF9idWZkZXNjKHN0cnVjdCBjbWRxX3dxZV9sY21kICp3cWUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM4MTpcXHRcXHRcXHRcXHQgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX2luKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zODIte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzozODM6XFx0aGluaWMzX3NldF9zZ2UoXFx1MDAyNndxZS1cXHUwMDNlYnVmX2Rlc2Muc2dlLCBidWZfaW4tXFx1MDAzZWRtYV9hZGRyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zODQtXFx0XFx0ICAgICAgIChfX2ZvcmNlIF9fbGUzMilidWZfaW4tXFx1MDAzZXNpemUpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM4Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Mzg3OnN0YXRpYyB2b2lkIGNtZHFfc2V0X2RiKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Mzg4OlxcdFxcdFxcdGVudW0gaGluaWMzX2NtZHFfdHlwZSBjbWRxX3R5cGUsIHUxNiBwcm9kX2lkeClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzg5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYz00NTk9c3RhdGljIHZvaWQgY21kcV9zZXRfbGNtZF93cWUoc3RydWN0IGNtZHFfd3FlICp3cWUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTQ2MC1cXHRcXHRcXHQgICAgICBlbnVtIGNtZHFfY21kX3R5cGUgY21kX3R5cGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjQ2MTpcXHRcXHRcXHQgICAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9pbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NDYyOlxcdFxcdFxcdCAgICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX291dCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNDYzLVxcdFxcdFxcdCAgICAgIHU4IHdyYXBwZWQsIHU4IG1vZCwgdTggY21kLCB1MTYgcHJvZF9pZHgpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNDg0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo0ODU6c3RhdGljIGludCBoaW5pYzNfY21kcV9zeW5jX3RpbWVvdXRfY2hlY2soc3RydWN0IGhpbmljM19jbWRxICpjbWRxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy00ODYtXFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgY21kcV93cWUgKndxZSwgdTE2IHBpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTUwMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTA0OnN0YXRpYyB2b2lkIGNsZWFyX2NtZF9pbmZvKHN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyAqY21kX2luZm8sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjUwNTpcXHRcXHRcXHQgICBjb25zdCBzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKnNhdmVkX2NtZF9pbmZvKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01MDYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTUxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTE3OnN0YXRpYyBpbnQgd2FpdF9jbWRxX3N5bmNfY21kX2NvbXBsZXRpb24oc3RydWN0IGhpbmljM19jbWRxICpjbWRxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo1MTg6XFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyAqY21kX2luZm8sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjUxOTpcXHRcXHRcXHRcXHRcXHQgc3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpzYXZlZF9jbWRfaW5mbyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTIwLVxcdFxcdFxcdFxcdFxcdCB1NjQgY3Vycl9tc2dfaWQsIHUxNiBjdXJyX3Byb2RfaWR4LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU0MC1cXHRpZiAoY3Vycl9tc2dfaWQgPT0gY21kX2luZm8tXFx1MDAzZWNtZHFfbXNnX2lkKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU0MTpcXHRcXHRlcnIgPSBoaW5pYzNfY21kcV9zeW5jX3RpbWVvdXRfY2hlY2soY21kcSwgY3Vycl93cWUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU0Mi1cXHRcXHRcXHRcXHRcXHRcXHQgICAgIGN1cnJfcHJvZF9pZHgpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU1NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTU2OlxcdGhpbmljM19kdW1wX2NlcV9pbmZvKGNtZHEtXFx1MDAzZWh3ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTU3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU2MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTYxOnN0YXRpYyBpbnQgY21kcV9zeW5jX2NtZF9leGVjKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSwgdTggbW9kLCB1OCBjbWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU2MjpcXHRcXHRcXHQgICAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9pbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTYzOlxcdFxcdFxcdCAgICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX291dCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTY0LVxcdFxcdFxcdCAgICAgIF9fbGU2NCAqb3V0X3BhcmFtLCB1OCBjbWRfdHlwZSwgdTggd3FlX2NtZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTY1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTY2OlxcdHN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyAqY21kX2luZm8sIHNhdmVkX2NtZF9pbmZvO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NjctXFx0aW50IGNtcHRfY29kZSA9IENNRFFfU0VORF9DTVBUX0NPREU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU2OC1cXHRzdHJ1Y3QgY21kcV93cWUgKmN1cnJfd3FlLCB3cWUgPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTY5OlxcdHN0cnVjdCBoaW5pYzNfd3EgKndxID0gXFx1MDAyNmNtZHEtXFx1MDAzZXdxO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NzAtXFx0dTE2IGN1cnJfcHJvZF9pZHgsIG5leHRfcHJvZF9pZHg7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjM0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2MzU6c3RhdGljIGludCBjbWRxX3N5bmNfY21kX2RpcmVjdF9yZXNwKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSwgdTggbW9kLCB1OCBjbWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjYzNjpcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX2luLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02MzctXFx0XFx0XFx0XFx0ICAgICBfX2xlNjQgKm91dF9wYXJhbSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY0NDpzdGF0aWMgaW50IGNtZHFfc3luY19jbWRfZGV0YWlsX3Jlc3Aoc3RydWN0IGhpbmljM19jbWRxICpjbWRxLCB1OCBtb2QsIHU4IGNtZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjQ1OlxcdFxcdFxcdFxcdCAgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY0NjpcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX291dCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjQ3LVxcdFxcdFxcdFxcdCAgICAgX19sZTY0ICpvdXRfcGFyYW0pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjUzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2NTQ6aW50IGhpbmljM19jbWRfYnVmX3BhaXJfaW5pdChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjU1OlxcdFxcdFxcdCAgICAgc3RydWN0IGhpbmljM19jbWRfYnVmX3BhaXIgKnBhaXIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY1Ni17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY1NzpcXHRwYWlyLVxcdTAwM2VpbiA9IGhpbmljM19hbGxvY19jbWRfYnVmKGh3ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjU4LVxcdGlmICghcGFpci1cXHUwMDNlaW4pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjYwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2NjE6XFx0cGFpci1cXHUwMDNlb3V0ID0gaGluaWMzX2FsbG9jX2NtZF9idWYoaHdkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NjItXFx0aWYgKCFwYWlyLVxcdTAwM2VvdXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjY3LWVycl9mcmVlX2NtZF9idWZfaW46XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY2ODpcXHRoaW5pYzNfZnJlZV9jbWRfYnVmKGh3ZGV2LCBwYWlyLVxcdTAwM2Vpbik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY2OS1lcnJfb3V0Olxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjczOnZvaWQgaGluaWMzX2NtZF9idWZfcGFpcl91bmluaXQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY3NDpcXHRcXHRcXHRcXHRzdHJ1Y3QgaGluaWMzX2NtZF9idWZfcGFpciAqcGFpcilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjc1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Njc2OlxcdGhpbmljM19mcmVlX2NtZF9idWYoaHdkZXYsIHBhaXItXFx1MDAzZWluKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Njc3OlxcdGhpbmljM19mcmVlX2NtZF9idWYoaHdkZXYsIHBhaXItXFx1MDAzZW91dCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY3OC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY3OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjgwOmludCBoaW5pYzNfY21kcV9kaXJlY3RfcmVzcChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldiwgdTggbW9kLCB1OCBjbWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY4MTpcXHRcXHRcXHQgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4sIF9fbGU2NCAqb3V0X3BhcmFtKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02ODIte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2ODM6XFx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY4NC1cXHRpbnQgZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTcxMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzEzOmludCBoaW5pYzNfY21kcV9kZXRhaWxfcmVzcChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldiwgdTggbW9kLCB1OCBjbWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjcxNDpcXHRcXHRcXHQgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjcxNTpcXHRcXHRcXHQgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfb3V0LCBfX2xlNjQgKm91dF9wYXJhbSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzE2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzE3OlxcdHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03MTgtXFx0aW50IGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjc0NjpzdGF0aWMgdm9pZCBjbWRxX2luaXRfcXVldWVfY3R4dChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldiwgdTggY21kcV9pZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzQ3LVxcdFxcdFxcdFxcdCBzdHJ1Y3QgY29tbV9jbWRxX2N0eHRfaW5mbyAqY3R4dF9pbmZvKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NDgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3NDk6XFx0Y29uc3Qgc3RydWN0IGhpbmljM19jbWRxcyAqY21kcXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc1MC1cXHR1NjQgY21kcV9maXJzdF9ibG9ja19wYWRkciwgcGZuO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3NTE6XFx0Y29uc3Qgc3RydWN0IGhpbmljM193cSAqd3E7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc1Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NTQtXFx0d3EgPSBcXHUwMDI2Y21kcXMtXFx1MDAzZWNtZHFbY21kcV9pZF0ud3E7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjc1NTpcXHRwZm4gPSBDTURRX1BGTihoaW5pYzNfd3FfZ2V0X2ZpcnN0X3dxZV9wYWdlX2FkZHIod3EpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzU2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc2My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzY0OlxcdGlmICghaGluaWMzX3dxX2lzXzBfbGV2ZWxfY2xhKHdxKSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NjUtXFx0XFx0Y21kcV9maXJzdF9ibG9ja19wYWRkciA9IGNtZHFzLVxcdTAwM2V3cV9ibG9ja19wYWRkcjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjc3MzpzdGF0aWMgaW50IGluaXRfY21kcShzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsIHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3NzQ6XFx0XFx0ICAgICBlbnVtIGhpbmljM19jbWRxX3R5cGUgcV90eXBlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NzUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc5Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzkzOnN0YXRpYyBpbnQgaGluaWMzX3NldF9jbWRxX2N0eHQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsIHU4IGNtZHFfaWQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc5NC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzk5LVxcdGNtZHFfaW5pdF9xdWV1ZV9jdHh0KGh3ZGV2LCBjbWRxX2lkLCBcXHUwMDI2Y21kcV9jdHh0LmN0eHQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4MDA6XFx0Y21kcV9jdHh0LmZ1bmNfaWQgPSBoaW5pYzNfZ2xvYmFsX2Z1bmNfaWQoaHdkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04MDEtXFx0Y21kcV9jdHh0LmNtZHFfaWQgPSBjbWRxX2lkO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgwNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODA2OlxcdGVyciA9IGhpbmljM19zZW5kX21ib3hfdG9fbWdtdChod2RldiwgTUdNVF9NT0RfQ09NTSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODA3LVxcdFxcdFxcdFxcdCAgICAgICBDT01NX0NNRF9TRVRfQ01EUV9DVFhULCBcXHUwMDI2bXNnX3BhcmFtcyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODE2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4MTc6c3RhdGljIGludCBoaW5pYzNfc2V0X2NtZHFfY3R4dHMoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgxOC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjgxOTpcXHRzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcyA9IGh3ZGV2LVxcdTAwM2VjbWRxcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODIwLVxcdHU4IGNtZHFfdHlwZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04MjMtXFx0Zm9yIChjbWRxX3R5cGUgPSAwOyBjbWRxX3R5cGUgXFx1MDAzYyBjbWRxcy1cXHUwMDNlY21kcV9udW07IGNtZHFfdHlwZSsrKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjgyNDpcXHRcXHRlcnIgPSBoaW5pYzNfc2V0X2NtZHFfY3R4dChod2RldiwgY21kcV90eXBlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODI1LVxcdFxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODM0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4MzU6c3RhdGljIGludCBjcmVhdGVfY21kcV93cShzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODM2OlxcdFxcdFxcdCAgc3RydWN0IGhpbmljM19jbWRxcyAqY21kcXMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgzNy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODQxLVxcdGZvciAoY21kcV90eXBlID0gMDsgY21kcV90eXBlIFxcdTAwM2MgY21kcXMtXFx1MDAzZWNtZHFfbnVtOyBjbWRxX3R5cGUrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4NDI6XFx0XFx0ZXJyID0gaGluaWMzX3dxX2NyZWF0ZShod2RldiwgXFx1MDAyNmNtZHFzLVxcdTAwM2VjbWRxW2NtZHFfdHlwZV0ud3EsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg0My1cXHRcXHRcXHRcXHQgICAgICAgQ01EUV9ERVBUSCwgQ01EUV9XUUVCQl9TSVpFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04NTItXFx0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjg1MzpcXHRpZiAoIWhpbmljM193cV9pc18wX2xldmVsX2NsYShcXHUwMDI2Y21kcXMtXFx1MDAzZWNtZHFbSElOSUMzX0NNRFFfU1lOQ10ud3EpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg1NC1cXHRcXHRpZiAoY21kcXMtXFx1MDAzZWNtZHFbSElOSUMzX0NNRFFfU1lOQ10ud3EucXBhZ2VzLm51bV9wYWdlcyBcXHUwMDNlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODgzLVxcdFxcdGNtZHFfdHlwZS0tO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4ODQ6XFx0XFx0aGluaWMzX3dxX2Rlc3Ryb3koaHdkZXYsIFxcdTAwMjZjbWRxcy1cXHUwMDNlY21kcVtjbWRxX3R5cGVdLndxKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODg1LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04ODktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjg5MDpzdGF0aWMgdm9pZCBkZXN0cm95X2NtZHFfd3Eoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjg5MTpcXHRcXHRcXHQgICAgc3RydWN0IGhpbmljM19jbWRxcyAqY21kcXMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg5Mi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODk5LVxcdGZvciAoY21kcV90eXBlID0gMDsgY21kcV90eXBlIFxcdTAwM2MgY21kcXMtXFx1MDAzZWNtZHFfbnVtOyBjbWRxX3R5cGUrKylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTAwOlxcdFxcdGhpbmljM193cV9kZXN0cm95KGh3ZGV2LCBcXHUwMDI2Y21kcXMtXFx1MDAzZWNtZHFbY21kcV90eXBlXS53cSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTkwMS19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTkwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTAzOnN0YXRpYyBpbnQgaW5pdF9jbWRxcyhzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTA0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTA1OlxcdHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05MDYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTE0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5MTU6XFx0Y21kcXMtXFx1MDAzZWNtZF9idWZfcG9vbCA9IGRtYV9wb29sX2NyZWF0ZShcXFwiaGluaWMzX2NtZHFcXFwiLCBod2Rldi1cXHUwMDNlZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05MTYtXFx0XFx0XFx0XFx0XFx0ICAgICAgQ01EUV9CVUZfU0laRSwgQ01EUV9CVUZfU0laRSwgMCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTI1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5MjY6c3RhdGljIHZvaWQgY21kcV9mbHVzaF9zeW5jX2NtZChzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKmNtZF9pbmZvKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05Mjcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTQ3OnN0YXRpYyB2b2lkIGhpbmljM19jbWRxX2ZsdXNoX2NtZChzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk0OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk0OTpcXHRzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKmNtZF9pbmZvO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NTAtXFx0dTE2IGNpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk1My1cXHR3aGlsZSAoY21kcV9yZWFkX3dxZShcXHUwMDI2Y21kcS1cXHUwMDNld3EsIFxcdTAwMjZjaSkpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTU0OlxcdFxcdGhpbmljM193cV9wdXRfd3FlYmJzKFxcdTAwMjZjbWRxLVxcdTAwM2V3cSwgQ01EUV9XUUVfTlVNX1dRRUJCUyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk1NS1cXHRcXHRjbWRfaW5mbyA9IFxcdTAwMjZjbWRxLVxcdTAwM2VjbWRfaW5mb3NbY2ldO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk2Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTYzOnZvaWQgaGluaWMzX2NtZHFfZmx1c2hfc3luY19jbWQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk2NC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk2NTpcXHRzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk2Ni1cXHR1MTYgd3FlX2NudCwgd3FlX2lkeCwgaTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTY3OlxcdHN0cnVjdCBoaW5pYzNfd3EgKndxO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NjgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTcxLVxcdHdxID0gXFx1MDAyNmNtZHEtXFx1MDAzZXdxO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5NzI6XFx0d3FlX2NudCA9IGhpbmljM193cV9nZXRfdXNlZCh3cSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk3My1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2Mgd3FlX2NudDsgaSsrKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTc5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5ODA6c3RhdGljIHZvaWQgaGluaWMzX2NtZHFfcmVzZXRfYWxsX2NtZF9idWYoc3RydWN0IGhpbmljM19jbWRxICpjbWRxKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05ODEte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTg4OmludCBoaW5pYzNfcmVpbml0X2NtZHFfY3R4dHMoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk4OS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk5MDpcXHRzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcyA9IGh3ZGV2LVxcdTAwM2VjbWRxcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTkxLVxcdHU4IGNtZHFfdHlwZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05OTMtXFx0Zm9yIChjbWRxX3R5cGUgPSAwOyBjbWRxX3R5cGUgXFx1MDAzYyBjbWRxcy1cXHUwMDNlY21kcV9udW07IGNtZHFfdHlwZSsrKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk5NDpcXHRcXHRoaW5pYzNfY21kcV9mbHVzaF9jbWQoXFx1MDAyNmNtZHFzLVxcdTAwM2VjbWRxW2NtZHFfdHlwZV0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5OTU6XFx0XFx0aGluaWMzX2NtZHFfcmVzZXRfYWxsX2NtZF9idWYoXFx1MDAyNmNtZHFzLVxcdTAwM2VjbWRxW2NtZHFfdHlwZV0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05OTYtXFx0XFx0Y21kcXMtXFx1MDAzZWNtZHFbY21kcV90eXBlXS53cmFwcGVkID0gMTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTk3OlxcdFxcdGhpbmljM193cV9yZXNldChcXHUwMDI2Y21kcXMtXFx1MDAzZWNtZHFbY21kcV90eXBlXS53cSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk5OC1cXHR9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk5OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTAwMDpcXHRyZXR1cm4gaGluaWMzX3NldF9jbWRxX2N0eHRzKGh3ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTAwMS19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwMDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwMDM6aW50IGhpbmljM19jbWRxc19pbml0KHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDA0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTAwNTpcXHRzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTAwNi1cXHR2b2lkIF9faW9tZW0gKmRiX2Jhc2U7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTAxOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTAxOTpcXHRlcnIgPSBoaW5pYzNfYWxsb2NfZGJfYWRkcihod2RldiwgXFx1MDAyNmRiX2Jhc2UsIE5VTEwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDIwLVxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDM1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDM2OlxcdGVyciA9IGhpbmljM19zZXRfY21kcV9jdHh0cyhod2Rldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwMzctXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDQ3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDQ4OlxcdGhpbmljM19mcmVlX2RiX2FkZHIoaHdkZXYsIGNtZHFzLVxcdTAwM2VjbWRxc19kYl9iYXNlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTA0OS1lcnJfZGVzdHJveV9jbWRxX3dxOlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwNTg6dm9pZCBoaW5pYzNfY21kcXNfZnJlZShzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTA1OS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwNjA6XFx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXMgPSBod2Rldi1cXHUwMDNlY21kcXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNjEtXFx0dTggY21kcV90eXBlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNjUtXFx0Zm9yIChjbWRxX3R5cGUgPSAwOyBjbWRxX3R5cGUgXFx1MDAzYyBjbWRxcy1cXHUwMDNlY21kcV9udW07IGNtZHFfdHlwZSsrKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwNjY6XFx0XFx0aGluaWMzX2NtZHFfZmx1c2hfY21kKFxcdTAwMjZjbWRxcy1cXHUwMDNlY21kcVtjbWRxX3R5cGVdKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTA2NzpcXHRcXHRoaW5pYzNfY21kcV9yZXNldF9hbGxfY21kX2J1ZihcXHUwMDI2Y21kcXMtXFx1MDAzZWNtZHFbY21kcV90eXBlXSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNjgtXFx0XFx0a2ZyZWUoY21kcXMtXFx1MDAzZWNtZHFbY21kcV90eXBlXS5jbWRfaW5mb3MpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwNzE6XFx0aGluaWMzX2ZyZWVfZGJfYWRkcihod2RldiwgY21kcXMtXFx1MDAzZWNtZHFzX2RiX2Jhc2UpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDcyLVxcdGRlc3Ryb3lfY21kcV93cShod2RldiwgY21kcXMpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwNzc6Ym9vbCBoaW5pYzNfY21kcV9pZGxlKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTA3OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwNzk6XFx0cmV0dXJuIGhpbmljM193cV9nZXRfdXNlZChcXHUwMDI2Y21kcS1cXHUwMDNld3EpID09IDA7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwODAtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjk6I2luY2x1ZGUgXFxcImhpbmljM19od19pbnRmLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEwOiNpbmNsdWRlIFxcXCJoaW5pYzNfd3EuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg9MjU9c3RydWN0IGNtZHFfbGNtZF9idWZkZXNjIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MjY6XFx0c3RydWN0IGhpbmljM19zZ2Ugc2dlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0yNy1cXHRfX2xlNjQgICAgICAgICAgICByc3ZkMjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaD00ND1zdHJ1Y3QgY21kcV9jb21wbGV0aW9uIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtNDUtXFx0dW5pb24ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDo0NjpcXHRcXHRzdHJ1Y3QgaGluaWMzX3NnZSAgICAgICBzZ2U7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTQ3LVxcdFxcdHN0cnVjdCBjbWRxX2RpcmVjdF9yZXNwIGRpcmVjdDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaD03NT1zdGF0aWNfYXNzZXJ0KHNpemVvZihzdHJ1Y3QgY21kcV93cWUpID09IDY0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtNzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjc3OmVudW0gaGluaWMzX2NtZHFfdHlwZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTc4LVxcdEhJTklDM19DTURRX1NZTkMgICAgICA9IDAsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtODEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjgyOmVudW0gaGluaWMzX2NtZHFfc3RhdHVzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtODMtXFx0SElOSUMzX0NNRFFfRU5BQkxFID0gQklUKDApLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDo4NjplbnVtIGhpbmljM19jbWRxX2NtZF90eXBlIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtODctXFx0SElOSUMzX0NNRF9UWVBFX05PTkUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtOTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjk2OnN0cnVjdCBoaW5pYzNfY21kX2J1ZiB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTk3LVxcdHZvaWQgICAgICAgKmJ1ZjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEwMzpzdHJ1Y3QgaGluaWMzX2NtZF9idWZfcGFpciB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEwNDpcXHRzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmluO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMDU6XFx0c3RydWN0IGhpbmljM19jbWRfYnVmICpvdXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTEwNi19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMDctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEwODpzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMDk6XFx0ZW51bSBoaW5pYzNfY21kcV9jbWRfdHlwZSBjbWRfdHlwZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTEwLVxcdHN0cnVjdCBjb21wbGV0aW9uICAgICAgICAgKmRvbmU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTE1LVxcdHU2NCAgICAgICAgICAgICAgICAgICAgICAgY21kcV9tc2dfaWQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjExNjpcXHRzdHJ1Y3QgaGluaWMzX2NtZF9idWYgICAgICpidWZfaW47XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjExNzpcXHRzdHJ1Y3QgaGluaWMzX2NtZF9idWYgICAgICpidWZfb3V0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMTgtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMjA6c3RydWN0IGhpbmljM19jbWRxIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTIxOlxcdHN0cnVjdCBoaW5pYzNfd3EgICAgICAgICAgICB3cTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTIyOlxcdGVudW0gaGluaWMzX2NtZHFfdHlwZSAgICAgICBjbWRxX3R5cGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTEyMy1cXHR1OCAgICAgICAgICAgICAgICAgICAgICAgICAgd3JhcHBlZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMjUtXFx0c3BpbmxvY2tfdCAgICAgICAgICAgICAgICAgIGNtZHFfbG9jaztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTI2OlxcdHN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyAqY21kX2luZm9zO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMjc6XFx0c3RydWN0IGhpbmljM19od2RldiAgICAgICAgICpod2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTI4LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTEyOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTMwOnN0cnVjdCBoaW5pYzNfY21kcXMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMzE6XFx0c3RydWN0IGhpbmljM19od2RldiAqaHdkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEzMjpcXHRzdHJ1Y3QgaGluaWMzX2NtZHEgIGNtZHFbSElOSUMzX01BWF9DTURRX1RZUEVTXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTMzLVxcdHN0cnVjdCBkbWFfcG9vbCAgICAgKmNtZF9idWZfcG9vbDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xNDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE0OTppbnQgaGluaWMzX2NtZHFzX2luaXQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNTA6dm9pZCBoaW5pYzNfY21kcXNfZnJlZShzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2Rldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTE1MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTUyOnN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqaGluaWMzX2FsbG9jX2NtZF9idWYoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNTM6dm9pZCBoaW5pYzNfZnJlZV9jbWRfYnVmKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNTQ6XFx0XFx0XFx0IHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqY21kX2J1Zik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE1NTp2b2lkIGhpbmljM19jbWRxX2NlcV9oYW5kbGVyKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LCBfX2xlMzIgY2VxZV9kYXRhKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTU2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNTc6aW50IGhpbmljM19jbWRfYnVmX3BhaXJfaW5pdChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTU4OlxcdFxcdFxcdCAgICAgc3RydWN0IGhpbmljM19jbWRfYnVmX3BhaXIgKnBhaXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNTk6dm9pZCBoaW5pYzNfY21kX2J1Zl9wYWlyX3VuaW5pdChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTYwOlxcdFxcdFxcdFxcdHN0cnVjdCBoaW5pYzNfY21kX2J1Zl9wYWlyICpwYWlyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTYxOmludCBoaW5pYzNfY21kcV9kaXJlY3RfcmVzcChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldiwgdTggbW9kLCB1OCBjbWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2MjpcXHRcXHRcXHQgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4sIF9fbGU2NCAqb3V0X3BhcmFtKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTYzOmludCBoaW5pYzNfY21kcV9kZXRhaWxfcmVzcChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldiwgdTggbW9kLCB1OCBjbWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2NDpcXHRcXHRcXHQgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2NTpcXHRcXHRcXHQgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfb3V0LCBfX2xlNjQgKm91dF9wYXJhbSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTE2Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTY3OnZvaWQgaGluaWMzX2NtZHFfZmx1c2hfc3luY19jbWQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNjg6aW50IGhpbmljM19yZWluaXRfY21kcV9jdHh0cyhzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2Rldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2OTpib29sIGhpbmljM19jbWRxX2lkbGUoc3RydWN0IGhpbmljM19jbWRxICpjbWRxKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTcwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmMtNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYzo4OiNpbmNsdWRlIFxcXCJoaW5pYzNfY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmMtOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYzoxMDppbnQgaGluaWMzX2RtYV96YWxsb2NfY29oZXJlbnRfYWxpZ24oc3RydWN0IGRldmljZSAqZGV2LCB1MzIgc2l6ZSwgdTMyIGFsaWduLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NvbW1vbi5jLTExLVxcdFxcdFxcdFxcdCAgICAgZ2ZwX3QgZmxhZyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYzoxMjpcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBoaW5pYzNfZG1hX2FkZHJfYWxpZ24gKm1lbV9hbGlnbilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYy0xMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYy00OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYzo0OTp2b2lkIGhpbmljM19kbWFfZnJlZV9jb2hlcmVudF9hbGlnbihzdHJ1Y3QgZGV2aWNlICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmM6NTA6XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBoaW5pYzNfZG1hX2FkZHJfYWxpZ24gKm1lbV9hbGlnbilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYy01MS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYy01NS1cXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDM6NTc6MDkuMjM1MjI0ODQ4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Njk0ODEzNzM1MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipXb3J0aEZ1enppbmcgRGVjaXNpb24gZm9yIGhpbmljMyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIHRoZSBkcml2ZXIgaW4gcXVlc3Rpb24gaXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGlzIHRoaXMgYSBzdGFuZGFyZCBkcml2ZXIgZm9yIGEgaGFyZHdhcmUgTklDLCBub3Qgc29tZXRoaW5nIGVtdWxhdGVkIGluIGEgdHlwaWNhbCBRRU1VIHNldHVwPyBZZXMsIEh1YXdlaSdzIEludGVsbGlnZW50IE5JQyAoaGluaWMzKSBpcyBkZWZpbml0ZWx5IGEgcGh5c2ljYWwgUENJZSBjYXJkLiBOb3csIEkgbmVlZCB0byBiZSBzdXJlOyBkb2VzIFFFTVUgaGF2ZSBhbnkgZW11bGF0aW9uIHNwZWNpZmljYWxseSBmb3IgdGhlIGhpbmljMz8gTm8sIHN0YW5kYXJkIFFFTVUgZG9lc24ndCBlbXVsYXRlIGl0LlxuXG5BIHF1aWNrIHRob3VnaHQ7IHdoYXQgYWJvdXQgc3l6a2FsbGVyPyBEb2VzIHN5emthbGxlciBzb21laG93IGZ1enogaXQ/IEFoLCBidXQgaXQgY291bGQgYmUgdGhhdCBzeXprYWxsZXIgdG91Y2hlcyBpdCB2aWEgYSBwc2V1ZG8tZGV2aWNlIG9yIFBDSSBpbmplY3Rpb24sIG9yIHBlcmhhcHMgYW5vdGhlciBtZWFucy4gSSBuZWVkIHRvIGJlIGNhcmVmdWwgaGVyZS4gTGV0J3Mgc2VlLi4uIHRoZSBpbnN0cnVjdGlvbnMgc2F5IHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiB0aGUgcGF0Y2ggaW52b2x2ZXMgY29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyB0aGF0IHJlcXVpcmUgc3BlY2lmaWMsIG5vbi1lbXVsYXRlZCBoYXJkd2FyZS4gSXMgYGhpbmljM2AgYSB2ZW5kb3Itc3BlY2lmaWMgU21hcnROSUMgZHJpdmVyPyBZZXMsIGl0IGlzIVxuXG5MZXQgbWUgY29uZmlybSB0aGF0IHRoZSBjb2RlIGlzICpwdXJlbHkqIHJlbGF0ZWQgdG8gdGhlIGhhcmR3YXJlIGRyaXZlci4gWWVzLCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljM2AgaXMgdGhlIEh1YXdlaSBJbnRlbGxpZ2VudCBOSUMgZHJpdmVyLiBOb3csIHN5emthbGxlciBkb2Vzbid0IGhhdmUgYW4gKmVtdWxhdGlvbiogZm9yIGhpbmljMywgcmlnaHQ/IENvcnJlY3QuXG5cbk9rYXksIGV2ZW4gdGhvdWdoIHN5emthbGxlciBkb2VzIGhhdmUgc29tZSBQQ0kgZnV6emluZyBjYXBhYmlsaXRpZXMsIEkgbmVlZCB0byByZW1lbWJlciB0aGUgaW5zdHJ1Y3Rpb25zOiBcIkNvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgLi4uIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlwiIEJlY2F1c2UgYGhpbmljM2AgZmFsbHMgc3F1YXJlbHkgaW50byB0aGF0IGNhdGVnb3J5LCBJIGhhdmUgdG8gY29uY2x1ZGUgdGhhdCBgV29ydGhGdXp6aW5nPWZhbHNlYC4gSSBhbSBnb2luZyB0byB2ZXJpZnkgdGhlIFBDSWUgbmF0dXJlIG9mIHRoZSBkcml2ZXIgYmVmb3JlIEkgY29tbWl0IHRvIHRoZSBmYWxzZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjEyNjYsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MDgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDM6NTc6MTYuMTgzMzY0MzM5WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2MjAzOTk3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBjaV9kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfbGxkLmM9NDM2PXN0YXRpYyB2b2lkIGhpbmljM19zaHV0ZG93bihzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2xsZC5jLTQ0NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19sbGQuYzo0NDY6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGhpbmljM19kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfbGxkLmMtNDQ3LVxcdC5uYW1lICAgICAgICAgICAgPSBISU5JQzNfTklDX0RSVl9OQU1FLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQwMzo1NzoxNi4yMjk1NzI4OTZaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MTg5ODMzOTM1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZyBEZWNpc2lvbiBmb3IgVGhpcyBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgbG9va3MgbGlrZSBhIFBDSSBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgYGhpbmljM2AgZHJpdmVyLiBJIGNhbiBzZWUgZnJvbSB0aGUgcGF0Y2ggdGhhdCBpdCdzIG1vZGlmeWluZyBzZXZlcmFsIGZ1bmN0aW9uczogYGhpbmljM190eF9tYXBfc2tiYCwgYGhpbmljM190eF9jc3VtYCwgYGhpbmljM190eF9vZmZsb2FkYCwgYW5kIGBoaW5pYzNfc2VuZF9vbmVfc2tiYC4gQWxsIG9mIHRoZXNlIGFyZSB3aXRoaW4gdGhlIGBoaW5pYzNgIGRyaXZlciwgd2hpY2ggaXMsIGFzIEkgcmVjYWxsLCBhIEh1YXdlaS1kZXZlbG9wZWQgU21hcnROSUMgZHJpdmVyLiBBbmQgdGhlIFNtYXJ0TklDIG5hdHVyZSBtZWFucyBpdCdzIHZlbmRvci1zcGVjaWZpYyBhbmQgcmVxdWlyZXMgYSBwaHlzaWNhbCBQQ0llIGNhcmQg4oCTIG5vdCBzb21ldGhpbmcgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cblxuTm93LCBsZXQgbWUganVzdCBkb3VibGUtY2hlY2sgdGhlIGV4Y2x1c2lvbiBjcml0ZXJpYeKApiB5ZXMsIFwiY29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVyc+KApiB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cIlxuXG5UaGF0J3MgaXQsIHBsYWluIGFzIGRheS4gU2luY2UgYGhpbmljM2AgaXMgaW5kZWVkIGEgU21hcnROSUMgZHJpdmVyIGZyb20gYSBzcGVjaWZpYyB2ZW5kb3IsIGFuZCBpdCBuZWVkcyBhIHJlYWwgUENJZSBjYXJkLCBpdCBhYnNvbHV0ZWx5IGZhbGxzIGludG8gdGhlIGV4Y2x1c2lvbiBydWxlLiBUaGVyZWZvcmUsIEknbSBnb2luZyB0byBzZXQgYFdvcnRoRnV6emluZz1mYWxzZWAgZm9yIHRoaXMgcGF0Y2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyMjg0LCJPdXRwdXRUb2tlbnMiOjgxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjIzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDAzOjU3OjIxLjQxOTQwOTE3WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTY5MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgVHggcGF0aCBvZiB0aGUgaGluaWMzIGRyaXZlciAoSHVhd2VpIEludGVsbGlnZW50IE5JQykuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgU21hcnROSUMgUENJZSBkcml2ZXIgdGhhdCByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgbWFraW5nIGl0IHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFR4IHBhdGggb2YgdGhlIGhpbmljMyBkcml2ZXIgKEh1YXdlaSBJbnRlbGxpZ2VudCBOSUMpLiBUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIFNtYXJ0TklDIFBDSWUgZHJpdmVyIHRoYXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUsIG1ha2luZyBpdCB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowgr5z4[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-05 03:55:44 +0000 UTC FinishedAt: 2026-08-05 03:57:22 +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+CgkJCTx0ZD4yMDI2LzA4LzA1IDAzOjU3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUeCBwYXRoIG9mIHRoZSBoaW5pYzMgZHJpdmVyIChIdWF3ZWkgSW50ZWxsaWdlbnQgTklDKS4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBTbWFydE5JQyBQQ0llIGRyaXZlciB0aGF0IHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCBtYWtpbmcgaXQgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDAzOjU3PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZjM2MTdjNmI2OThiYmMxYTc1ZjI3Zjk5NTM4MzEwMWY4NzA2OTlmOVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgQXVnIDUgMDM6NTY6NTkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmNcbmluZGV4IDkzMDZiZjAwMjBjYWYuLjQ1ZWZmZGRkYjQzNDEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jXG5AQCAtOTcsOCAmIzQzOzk3LDEyIEBAIHN0YXRpYyBpbnQgaGluaWMzX3R4X21hcF9za2Ioc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcbiBcdGRtYV9pbmZvWzBdLmRtYSA9IGRtYV9tYXBfc2luZ2xlKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBza2ItXHUwMDNlZGF0YSxcbiBcdFx0XHRcdFx0IHNrYl9oZWFkbGVuKHNrYiksIERNQV9UT19ERVZJQ0UpO1xuLVx0aWYgKGRtYV9tYXBwaW5nX2Vycm9yKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBkbWFfaW5mb1swXS5kbWEpKVxuJiM0MztcdGlmIChkbWFfbWFwcGluZ19lcnJvcihcdTAwMjZwZGV2LVx1MDAzZWRldiwgZG1hX2luZm9bMF0uZG1hKSkge1xuJiM0MztcdFx0dTY0X3N0YXRzX3VwZGF0ZV9iZWdpbihcdTAwMjZ0eHEtXHUwMDNldHhxX3N0YXRzLnN5bmNwKTtcbiYjNDM7XHRcdHR4cS1cdTAwM2V0eHFfc3RhdHMubWFwX2ZyYWdfZXJyJiM0MzsmIzQzOztcbiYjNDM7XHRcdHU2NF9zdGF0c191cGRhdGVfZW5kKFx1MDAyNnR4cS1cdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xuIFx0XHRyZXR1cm4gLUVGQVVMVDtcbiYjNDM7XHR9XG4gXG4gXHRkbWFfaW5mb1swXS5sZW4gPSBza2JfaGVhZGxlbihza2IpO1xuIFxuQEAgLTExNyw2ICYjNDM7MTIxLDkgQEAgc3RhdGljIGludCBoaW5pYzNfdHhfbWFwX3NrYihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHRcdFx0XHRcdCAgICAgc2tiX2ZyYWdfc2l6ZShmcmFnKSxcbiBcdFx0XHRcdFx0XHQgICAgIERNQV9UT19ERVZJQ0UpO1xuIFx0XHRpZiAoZG1hX21hcHBpbmdfZXJyb3IoXHUwMDI2cGRldi1cdTAwM2VkZXYsIGRtYV9pbmZvW2lkeF0uZG1hKSkge1xuJiM0MztcdFx0XHR1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKFx1MDAyNnR4cS1cdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xuJiM0MztcdFx0XHR0eHEtXHUwMDNldHhxX3N0YXRzLm1hcF9mcmFnX2VyciYjNDM7JiM0Mzs7XG4mIzQzO1x0XHRcdHU2NF9zdGF0c191cGRhdGVfZW5kKFx1MDAyNnR4cS1cdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xuIFx0XHRcdGVyciA9IC1FRkFVTFQ7XG4gXHRcdFx0Z290byBlcnJfdW5tYXBfcGFnZTtcbiBcdFx0fVxuQEAgLTI2MCw5ICYjNDM7MjY3LDExIEBAIHN0YXRpYyBpbnQgaGluaWMzX3R4X2NzdW0oc3RydWN0IGhpbmljM190eHEgKnR4cSwgc3RydWN0IGhpbmljM19zcV90YXNrICp0YXNrLFxuIFx0XHRpZiAobDRfcHJvdG8gIT0gSVBQUk9UT19VRFAgfHxcbiBcdFx0ICAgICgoc3RydWN0IHVkcGhkciAqKXNrYl90cmFuc3BvcnRfaGVhZGVyKHNrYikpLVx1MDAzZWRlc3QgIT1cbiBcdFx0ICAgIFZYTEFOX09GRkxPQURfUE9SVF9MRSkge1xuJiM0MztcdFx0XHR1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKFx1MDAyNnR4cS1cdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xuJiM0MztcdFx0XHR0eHEtXHUwMDNldHhxX3N0YXRzLnVua25vd25fdHVubmVsX3BrdCYjNDM7JiM0Mzs7XG4mIzQzO1x0XHRcdHU2NF9zdGF0c191cGRhdGVfZW5kKFx1MDAyNnR4cS1cdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xuIFx0XHRcdC8qIFVuc3VwcG9ydGVkIHR1bm5lbCBwYWNrZXQsIGRpc2FibGUgY3N1bSBvZmZsb2FkICovXG4tXHRcdFx0c2tiX2NoZWNrc3VtX2hlbHAoc2tiKTtcbi1cdFx0XHRyZXR1cm4gMDtcbiYjNDM7XHRcdFx0cmV0dXJuIHNrYl9jaGVja3N1bV9oZWxwKHNrYik7XG4gXHRcdH1cbiBcdH1cbiBcbkBAIC00MTIsNiAmIzQzOzQyMSwxMCBAQCBzdGF0aWMgdTMyIGhpbmljM190eF9vZmZsb2FkKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBoaW5pYzNfc3FfdGFzayAqdGFzayxcbiBcdFx0b2ZmbG9hZCB8PSBISU5JQzNfVFhfT0ZGTE9BRF9UU087XG4gXHR9IGVsc2Uge1xuIFx0XHR0c29fY3NfZW4gPSBoaW5pYzNfdHhfY3N1bSh0eHEsIHRhc2ssIHNrYik7XG4mIzQzO1x0XHRpZiAodHNvX2NzX2VuIFx1MDAzYyAwKSB7XG4mIzQzO1x0XHRcdG9mZmxvYWQgPSBISU5JQzNfVFhfT0ZGTE9BRF9JTlZBTElEO1xuJiM0MztcdFx0XHRyZXR1cm4gb2ZmbG9hZDtcbiYjNDM7XHRcdH1cbiBcdFx0aWYgKHRzb19jc19lbilcbiBcdFx0XHRvZmZsb2FkIHw9IEhJTklDM19UWF9PRkZMT0FEX0NTVU07XG4gXHR9XG5AQCAtNTM5LDEyICYjNDM7NTUyLDE3IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBoaW5pYzNfc2VuZF9vbmVfc2tiKHN0cnVjdCBza19idWZmICpza2IsXG4gXHRpbnQgZXJyO1xuIFxuIFx0aWYgKHVubGlrZWx5KHNrYi1cdTAwM2VsZW4gXHUwMDNjIE1JTl9TS0JfTEVOKSkge1xuLVx0XHRpZiAoc2tiX3BhZChza2IsIE1JTl9TS0JfTEVOIC0gc2tiLVx1MDAzZWxlbikpXG4mIzQzO1x0XHRpZiAoc2tiX3BhZChza2IsIE1JTl9TS0JfTEVOIC0gc2tiLVx1MDAzZWxlbikpIHtcbiYjNDM7XHRcdFx0dTY0X3N0YXRzX3VwZGF0ZV9iZWdpbihcdTAwMjZ0eHEtXHUwMDNldHhxX3N0YXRzLnN5bmNwKTtcbiYjNDM7XHRcdFx0dHhxLVx1MDAzZXR4cV9zdGF0cy5za2JfcGFkX2VyciYjNDM7JiM0Mzs7XG4mIzQzO1x0XHRcdHU2NF9zdGF0c191cGRhdGVfZW5kKFx1MDAyNnR4cS1cdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xuIFx0XHRcdGdvdG8gZXJyX291dDtcbiYjNDM7XHRcdH1cbiBcbiBcdFx0c2tiLVx1MDAzZWxlbiA9IE1JTl9TS0JfTEVOO1xuIFx0fVxuIFxuJiM0MztcdG9mZmxvYWQgPSBoaW5pYzNfdHhfb2ZmbG9hZChza2IsIFx1MDAyNnRhc2ssIFx1MDAyNnF1ZXVlX2luZm8sIHR4cSk7XG4gXHRudW1fc2dlID0gc2tiX3NoaW5mbyhza2IpLVx1MDAzZW5yX2ZyYWdzICYjNDM7IDE7XG4gXHQvKiBhc3N1bWUgbm9ybWFsIHdxZSBmb3JtYXQgJiM0MzsgMSB3cWViYiBmb3IgdGFzayBpbmZvICovXG4gXHR3cWViYl9jbnQgPSBudW1fc2dlICYjNDM7IDE7XG5AQCAtNTYwLDcgJiM0Mzs1NzgsNiBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaGluaWMzX3NlbmRfb25lX3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHRyZXR1cm4gTkVUREVWX1RYX0JVU1k7XG4gXHR9XG4gXG4tXHRvZmZsb2FkID0gaGluaWMzX3R4X29mZmxvYWQoc2tiLCBcdTAwMjZ0YXNrLCBcdTAwMjZxdWV1ZV9pbmZvLCB0eHEpO1xuIFx0aWYgKHVubGlrZWx5KG9mZmxvYWQgPT0gSElOSUMzX1RYX09GRkxPQURfSU5WQUxJRCkpIHtcbiBcdFx0Z290byBlcnJfZHJvcF9wa3Q7XG4gXHR9IGVsc2UgaWYgKCFvZmZsb2FkKSB7XG5AQCAtNjA0LDYgJiM0Mzs2MjEsMTAgQEAgc3RhdGljIG5ldGRldl90eF90IGhpbmljM19zZW5kX29uZV9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBlcnJfZHJvcF9wa3Q6XG4gXHRkZXZfa2ZyZWVfc2tiX2FueShza2IpO1xuIGVycl9vdXQ6XG4mIzQzO1x0dTY0X3N0YXRzX3VwZGF0ZV9iZWdpbihcdTAwMjZ0eHEtXHUwMDNldHhxX3N0YXRzLnN5bmNwKTtcbiYjNDM7XHR0eHEtXHUwMDNldHhxX3N0YXRzLmRyb3BwZWQmIzQzOyYjNDM7O1xuJiM0MztcdHU2NF9zdGF0c191cGRhdGVfZW5kKFx1MDAyNnR4cS1cdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xuJiM0MztcbiBcdHJldHVybiBORVRERVZfVFhfT0s7XG4gfVxuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDAzOjU3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgVHggcGF0aCBvZiB0aGUgaGluaWMzIGRyaXZlciAoSHVhd2VpIEludGVsbGlnZW50IE5JQykuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgU21hcnROSUMgUENJZSBkcml2ZXIgdGhhdCByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgbWFraW5nIGl0IHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGYzNjE3YzZiNjk4YmJjMWE3NWYyN2Y5OTUzODMxMDFmODcwNjk5ZjkKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIEF1ZyA1IDAzOjU2OjU5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmMKaW5kZXggOTMwNmJmMDAyMGNhZi4uNDVlZmZkZGRiNDM0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jCkBAIC05Nyw4ICYjNDM7OTcsMTIgQEAgc3RhdGljIGludCBoaW5pYzNfdHhfbWFwX3NrYihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCiAJZG1hX2luZm9bMF0uZG1hID0gZG1hX21hcF9zaW5nbGUoJmFtcDtwZGV2LSZndDtkZXYsIHNrYi0mZ3Q7ZGF0YSwKIAkJCQkJIHNrYl9oZWFkbGVuKHNrYiksIERNQV9UT19ERVZJQ0UpOwotCWlmIChkbWFfbWFwcGluZ19lcnJvcigmYW1wO3BkZXYtJmd0O2RldiwgZG1hX2luZm9bMF0uZG1hKSkKJiM0MzsJaWYgKGRtYV9tYXBwaW5nX2Vycm9yKCZhbXA7cGRldi0mZ3Q7ZGV2LCBkbWFfaW5mb1swXS5kbWEpKSB7CiYjNDM7CQl1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKCZhbXA7dHhxLSZndDt0eHFfc3RhdHMuc3luY3ApOwomIzQzOwkJdHhxLSZndDt0eHFfc3RhdHMubWFwX2ZyYWdfZXJyJiM0MzsmIzQzOzsKJiM0MzsJCXU2NF9zdGF0c191cGRhdGVfZW5kKCZhbXA7dHhxLSZndDt0eHFfc3RhdHMuc3luY3ApOwogCQlyZXR1cm4gLUVGQVVMVDsKJiM0MzsJfQogCiAJZG1hX2luZm9bMF0ubGVuID0gc2tiX2hlYWRsZW4oc2tiKTsKIApAQCAtMTE3LDYgJiM0MzsxMjEsOSBAQCBzdGF0aWMgaW50IGhpbmljM190eF9tYXBfc2tiKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHN0cnVjdCBza19idWZmICpza2IsCiAJCQkJCQkgICAgIHNrYl9mcmFnX3NpemUoZnJhZyksCiAJCQkJCQkgICAgIERNQV9UT19ERVZJQ0UpOwogCQlpZiAoZG1hX21hcHBpbmdfZXJyb3IoJmFtcDtwZGV2LSZndDtkZXYsIGRtYV9pbmZvW2lkeF0uZG1hKSkgewomIzQzOwkJCXU2NF9zdGF0c191cGRhdGVfYmVnaW4oJmFtcDt0eHEtJmd0O3R4cV9zdGF0cy5zeW5jcCk7CiYjNDM7CQkJdHhxLSZndDt0eHFfc3RhdHMubWFwX2ZyYWdfZXJyJiM0MzsmIzQzOzsKJiM0MzsJCQl1NjRfc3RhdHNfdXBkYXRlX2VuZCgmYW1wO3R4cS0mZ3Q7dHhxX3N0YXRzLnN5bmNwKTsKIAkJCWVyciA9IC1FRkFVTFQ7CiAJCQlnb3RvIGVycl91bm1hcF9wYWdlOwogCQl9CkBAIC0yNjAsOSAmIzQzOzI2NywxMSBAQCBzdGF0aWMgaW50IGhpbmljM190eF9jc3VtKHN0cnVjdCBoaW5pYzNfdHhxICp0eHEsIHN0cnVjdCBoaW5pYzNfc3FfdGFzayAqdGFzaywKIAkJaWYgKGw0X3Byb3RvICE9IElQUFJPVE9fVURQIHx8CiAJCSAgICAoKHN0cnVjdCB1ZHBoZHIgKilza2JfdHJhbnNwb3J0X2hlYWRlcihza2IpKS0mZ3Q7ZGVzdCAhPQogCQkgICAgVlhMQU5fT0ZGTE9BRF9QT1JUX0xFKSB7CiYjNDM7CQkJdTY0X3N0YXRzX3VwZGF0ZV9iZWdpbigmYW1wO3R4cS0mZ3Q7dHhxX3N0YXRzLnN5bmNwKTsKJiM0MzsJCQl0eHEtJmd0O3R4cV9zdGF0cy51bmtub3duX3R1bm5lbF9wa3QmIzQzOyYjNDM7OwomIzQzOwkJCXU2NF9zdGF0c191cGRhdGVfZW5kKCZhbXA7dHhxLSZndDt0eHFfc3RhdHMuc3luY3ApOwogCQkJLyogVW5zdXBwb3J0ZWQgdHVubmVsIHBhY2tldCwgZGlzYWJsZSBjc3VtIG9mZmxvYWQgKi8KLQkJCXNrYl9jaGVja3N1bV9oZWxwKHNrYik7Ci0JCQlyZXR1cm4gMDsKJiM0MzsJCQlyZXR1cm4gc2tiX2NoZWNrc3VtX2hlbHAoc2tiKTsKIAkJfQogCX0KIApAQCAtNDEyLDYgJiM0Mzs0MjEsMTAgQEAgc3RhdGljIHUzMiBoaW5pYzNfdHhfb2ZmbG9hZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgaGluaWMzX3NxX3Rhc2sgKnRhc2ssCiAJCW9mZmxvYWQgfD0gSElOSUMzX1RYX09GRkxPQURfVFNPOwogCX0gZWxzZSB7CiAJCXRzb19jc19lbiA9IGhpbmljM190eF9jc3VtKHR4cSwgdGFzaywgc2tiKTsKJiM0MzsJCWlmICh0c29fY3NfZW4gJmx0OyAwKSB7CiYjNDM7CQkJb2ZmbG9hZCA9IEhJTklDM19UWF9PRkZMT0FEX0lOVkFMSUQ7CiYjNDM7CQkJcmV0dXJuIG9mZmxvYWQ7CiYjNDM7CQl9CiAJCWlmICh0c29fY3NfZW4pCiAJCQlvZmZsb2FkIHw9IEhJTklDM19UWF9PRkZMT0FEX0NTVU07CiAJfQpAQCAtNTM5LDEyICYjNDM7NTUyLDE3IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBoaW5pYzNfc2VuZF9vbmVfc2tiKHN0cnVjdCBza19idWZmICpza2IsCiAJaW50IGVycjsKIAogCWlmICh1bmxpa2VseShza2ItJmd0O2xlbiAmbHQ7IE1JTl9TS0JfTEVOKSkgewotCQlpZiAoc2tiX3BhZChza2IsIE1JTl9TS0JfTEVOIC0gc2tiLSZndDtsZW4pKQomIzQzOwkJaWYgKHNrYl9wYWQoc2tiLCBNSU5fU0tCX0xFTiAtIHNrYi0mZ3Q7bGVuKSkgewomIzQzOwkJCXU2NF9zdGF0c191cGRhdGVfYmVnaW4oJmFtcDt0eHEtJmd0O3R4cV9zdGF0cy5zeW5jcCk7CiYjNDM7CQkJdHhxLSZndDt0eHFfc3RhdHMuc2tiX3BhZF9lcnImIzQzOyYjNDM7OwomIzQzOwkJCXU2NF9zdGF0c191cGRhdGVfZW5kKCZhbXA7dHhxLSZndDt0eHFfc3RhdHMuc3luY3ApOwogCQkJZ290byBlcnJfb3V0OwomIzQzOwkJfQogCiAJCXNrYi0mZ3Q7bGVuID0gTUlOX1NLQl9MRU47CiAJfQogCiYjNDM7CW9mZmxvYWQgPSBoaW5pYzNfdHhfb2ZmbG9hZChza2IsICZhbXA7dGFzaywgJmFtcDtxdWV1ZV9pbmZvLCB0eHEpOwogCW51bV9zZ2UgPSBza2Jfc2hpbmZvKHNrYiktJmd0O25yX2ZyYWdzICYjNDM7IDE7CiAJLyogYXNzdW1lIG5vcm1hbCB3cWUgZm9ybWF0ICYjNDM7IDEgd3FlYmIgZm9yIHRhc2sgaW5mbyAqLwogCXdxZWJiX2NudCA9IG51bV9zZ2UgJiM0MzsgMTsKQEAgLTU2MCw3ICYjNDM7NTc4LDYgQEAgc3RhdGljIG5ldGRldl90eF90IGhpbmljM19zZW5kX29uZV9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJcmV0dXJuIE5FVERFVl9UWF9CVVNZOwogCX0KIAotCW9mZmxvYWQgPSBoaW5pYzNfdHhfb2ZmbG9hZChza2IsICZhbXA7dGFzaywgJmFtcDtxdWV1ZV9pbmZvLCB0eHEpOwogCWlmICh1bmxpa2VseShvZmZsb2FkID09IEhJTklDM19UWF9PRkZMT0FEX0lOVkFMSUQpKSB7CiAJCWdvdG8gZXJyX2Ryb3BfcGt0OwogCX0gZWxzZSBpZiAoIW9mZmxvYWQpIHsKQEAgLTYwNCw2ICYjNDM7NjIxLDEwIEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBoaW5pYzNfc2VuZF9vbmVfc2tiKHN0cnVjdCBza19idWZmICpza2IsCiBlcnJfZHJvcF9wa3Q6CiAJZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTsKIGVycl9vdXQ6CiYjNDM7CXU2NF9zdGF0c191cGRhdGVfYmVnaW4oJmFtcDt0eHEtJmd0O3R4cV9zdGF0cy5zeW5jcCk7CiYjNDM7CXR4cS0mZ3Q7dHhxX3N0YXRzLmRyb3BwZWQmIzQzOyYjNDM7OwomIzQzOwl1NjRfc3RhdHNfdXBkYXRlX2VuZCgmYW1wO3R4cS0mZ3Q7dHhxX3N0YXRzLnN5bmNwKTsKJiM0MzsKIAlyZXR1cm4gTkVUREVWX1RYX09LOwogfQogCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDAzOjU3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM0MDcKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiA0MjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgSHVhd2VpIE5JQyBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCYjMzk7cyBtYWtpbmcgc29tZSBjaGFuZ2VzIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmNgIGZpbGUuIFRoaXMgaXMgaW50ZXJlc3Rpbmcg4oCTIGl0JiMzOTtzIHRvdWNoaW5nIHNldmVyYWwga2V5IGZ1bmN0aW9uczogYGhpbmljM190eF9tYXBfc2tiYCwgYGhpbmljM190eF9jc3VtYCwgYGhpbmljM190eF9vZmZsb2FkYCwgYW5kIGBoaW5pYzNfc2VuZF9vbmVfc2tiYC4gQSBnb29kIGNodW5rIG9mIGl0IGlzIGZvY3VzZWQgb24gYWRkaW5nIHNvbWUgbmV3IHN0YXRzIHVwZGF0ZXMsIHdoaWNoIGlzIGFsd2F5cyBoZWxwZnVsIGZvciBkZWJ1Z2dpbmcgYW5kIHBlcmZvcm1hbmNlIGFuYWx5c2lzLiBUaGluZ3MgbGlrZSB0cmFja2luZyBtYXBwaW5nIGVycm9ycyAoYHR4cS0mZ3Q7dHhxX3N0YXRzLm1hcF9mcmFnX2VyciYjNDM7JiM0MztgKSwgdW5rbm93biB0dW5uZWwgcGFja2V0cyAoYHR4cS0mZ3Q7dHhxX3N0YXRzLnVua25vd25fdHVubmVsX3BrdCYjNDM7JiM0MztgKSwgcGFkZGluZyBlcnJvcnMgKGB0eHEtJmd0O3R4cV9zdGF0cy5za2JfcGFkX2VyciYjNDM7JiM0MztgKSwgYW5kIGRyb3BwZWQgcGFja2V0cyAoYHR4cS0mZ3Q7dHhxX3N0YXRzLmRyb3BwZWQmIzQzOyYjNDM7YCkgYXJlIGdvb2QgYWRkaXRpb25zLgoKTm93LCBsb29raW5nIGNsb3NlciwgdGhlcmUmIzM5O3MgYSBjaGFuZ2UgaW4gYGhpbmljM190eF9jc3VtYC4gSXQmIzM5O3Mgbm93IHJldHVybmluZyB0aGUgcmVzdWx0IG9mIGBza2JfY2hlY2tzdW1faGVscChza2IpYCBpbnN0ZWFkIG9mIHNpbXBseSBgMGAuIFRoYXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBzaGlmdCBpbiBob3cgY2hlY2tzdW0gb2ZmbG9hZCBpcyBoYW5kbGVkIGhlcmUuIFdlIG5lZWQgdG8gYmUgY2FyZWZ1bCB3aXRoIHRoYXQuIEkgYWxzbyBzZWUgYSBjaGFuZ2UgaW4gYGhpbmljM190eF9vZmZsb2FkYCwgd2hlcmUgdGhlcmUmIzM5O3MgYSBjaGVjayBmb3IgYHRzb19jc19lbiAmbHQ7IDBgIG5vdywgcmV0dXJuaW5nIGBISU5JQzNfVFhfT0ZGTE9BRF9JTlZBTElEYCBpZiB0aGF0JiMzOTtzIHRoZSBjYXNlLiBBbmQgaW4gYGhpbmljM19zZW5kX29uZV9za2JgLCBgaGluaWMzX3R4X29mZmxvYWRgIGlzIGNhbGxlZCAqYmVmb3JlKiBjYWxjdWxhdGluZyBgbnVtX3NnZWAgYW5kIGB3cWViYl9jbnRgIC0gdGhpcyBpcyBnb2luZyB0byBhZmZlY3QgdGhlIGNvbnRyb2wgZmxvdyBoZXJlLgoKV2FpdCwgYGhpbmljM2DigKZ0aGF0IHNvdW5kcyBsaWtlIGEgSHVhd2VpIEludGVsbGlnZW50IE5JQyBkcml2ZXIuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSYjMzk7bSBmb2xsb3dpbmcgdGhlIGJpZ2dlciBwaWN0dXJlLCBhbmQgd2hhdCB0aGlzIGltcGxpZXMuIFRoaXMgcHJvYmFibHkgaXNuJiMzOTt0IGEgc3RhbmRhcmQgbmV0d29yayBpbnRlcmZhY2UuIEkgbmVlZCB0byBrbm93IHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpcyBiZWluZyBhIHZlbmRvci1zcGVjaWZpYyBTbWFydE5JQy4gSXMgdGhpcyBzb21lIGtpbmQgb2YgUENJZSBoYXJkd2FyZSBjYXJkPwoKWWVzLCAmIzM0O0h1YXdlaSBJbnRlbGxpZ2VudCBOSUMgZHJpdmVyJiMzNDsgYWxtb3N0IGNlcnRhaW5seSBjb25maXJtcyB0aGF0LiBPa2F5LCBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgaWYgdGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGhhcmR3YXJlIGNhcmQgdGhhdCAqaXNuJiMzOTt0KiBlbXVsYXRlZCBieSBzdGFuZGFyZCBRRU1VLiBHaXZlbiB3aGF0IEkmIzM5O20gc2VlaW5nLCB0aGVyZSYjMzk7cyBhIHN0cm9uZyBjaGFuY2UgdGhpcyBuZWVkcyByZWFsIGhhcmR3YXJlLiBBaCwgdGhlIGRvY3VtZW50YXRpb24gY29uZmlybXMgaXQ6ICYjMzQ7Q29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiYjMzQ7IEJpbmdvLgoKWXVwLCB0aGlzIGlzIGEgU21hcnROSUMgZHJpdmVyLiBOb3csIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgdGhhdCB0aGlzIHNwZWNpZmljIGBoaW5pYzNgIGRyaXZlciBpcyAqYWN0dWFsbHkqIGVtdWxhdGVkIG9yIG5vdC4gSSYjMzk7bGwgcXVpY2tseSBzZWFyY2ggdGhlIGtlcm5lbCB0cmVlIGp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLiBUaGlzIGNvbnRleHQgaXMgaW1wb3J0YW50IGJlY2F1c2UgaXQgY2hhbmdlcyBob3cgSSB3b3VsZCBkZWJ1ZyB0aGlzLiBJZiBpdCBuZWVkcyByZWFsIGhhcmR3YXJlLCBJIG5lZWQgYWNjZXNzIHRvIHRoYXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDM6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aGluaWMzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDY0ODkgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvS2NvbmZpZz02PWNvbmZpZyBISU5JQzNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL0tjb25maWctMjAtXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL0tjb25maWc6MjE6XHQgIFRoZSBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgaGluaWMzLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGUtMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6NDpvYmotJChDT05GSUdfSElOSUMzKSAmIzQzOz0gaGluaWMzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGUtNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6NjpoaW5pYzMtb2JqcyA6PSBoaW5pYzNfY21kcS5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjc6XHQgICAgICAgaGluaWMzX2NvbW1vbi5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjg6XHQgICAgICAgaGluaWMzX2Vxcy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjk6XHQgICAgICAgaGluaWMzX2V0aHRvb2wubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToxMDpcdCAgICAgICBoaW5pYzNfZmlsdGVyLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTE6XHQgICAgICAgaGluaWMzX2h3X2NmZy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjEyOlx0ICAgICAgIGhpbmljM19od19jb21tLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTM6XHQgICAgICAgaGluaWMzX2h3ZGV2Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTQ6XHQgICAgICAgaGluaWMzX2h3aWYubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToxNTpcdCAgICAgICBoaW5pYzNfaXJxLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTY6XHQgICAgICAgaGluaWMzX2xsZC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjE3Olx0ICAgICAgIGhpbmljM19tYWluLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTg6XHQgICAgICAgaGluaWMzX21ib3gubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToxOTpcdCAgICAgICBoaW5pYzNfbWdtdC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjIwOlx0ICAgICAgIGhpbmljM19uZXRkZXZfb3BzLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MjE6XHQgICAgICAgaGluaWMzX25pY19jZmcubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToyMjpcdCAgICAgICBoaW5pYzNfbmljX2lvLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MjM6XHQgICAgICAgaGluaWMzX3F1ZXVlX2NvbW1vbi5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjI0Olx0ICAgICAgIGhpbmljM19yc3MubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToyNTpcdCAgICAgICBoaW5pYzNfcngubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToyNjpcdCAgICAgICBoaW5pYzNfdHgubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToyNzpcdCAgICAgICBoaW5pYzNfd3Eub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjg6I2luY2x1ZGUgXCYjMzQ7aGluaWMzX2NtZHEuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk6I2luY2x1ZGUgXCYjMzQ7aGluaWMzX2Vxcy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTA6I2luY2x1ZGUgXCYjMzQ7aGluaWMzX2h3ZGV2LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMTojaW5jbHVkZSBcJiMzNDtoaW5pYzNfaHdpZi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTI6I2luY2x1ZGUgXCYjMzQ7aGluaWMzX21ib3guaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYz0xMTI9ZW51bSBjbWRxX2NtZF90eXBlIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjExOTpzdGF0aWMgdm9pZCBoaW5pYzNfZHVtcF9jbWRxX3dxZV9oZWFkKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEyMC1cdFx0XHRcdCAgICAgIHN0cnVjdCBjbWRxX3dxZSAqd3FlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTMzOnN0YXRpYyBzdHJ1Y3QgY21kcV93cWUgKmNtZHFfcmVhZF93cWUoc3RydWN0IGhpbmljM193cSAqd3EsIHUxNiAqY2kpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTM0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMzU6XHRpZiAoaGluaWMzX3dxX2dldF91c2VkKHdxKSA9PSAwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEzNi1cdFx0cmV0dXJuIE5VTEw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE0Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxNDM6c3RydWN0IGhpbmljM19jbWRfYnVmICpoaW5pYzNfYWxsb2NfY21kX2J1ZihzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xNDQte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjE0NTpcdHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqY21kX2J1ZjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxNDY6XHRzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xNDctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE3MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxNzI6dm9pZCBoaW5pYzNfZnJlZV9jbWRfYnVmKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjE3MzpcdFx0XHQgc3RydWN0IGhpbmljM19jbWRfYnVmICpjbWRfYnVmKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE3NC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTc1Olx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTc2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xODUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTg2OnN0YXRpYyB2b2lkIGNtZHFfY2xlYXJfY21kX2J1ZihzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKmNtZF9pbmZvLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjE4NzpcdFx0XHQgICAgICAgc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTg4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xODktXHRpZiAoY21kX2luZm8tXHUwMDNlYnVmX2luKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTkwOlx0XHRoaW5pYzNfZnJlZV9jbWRfYnVmKGh3ZGV2LCBjbWRfaW5mby1cdTAwM2VidWZfaW4pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE5MS1cdFx0Y21kX2luZm8tXHUwMDNlYnVmX2luID0gTlVMTDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTk0LVx0aWYgKGNtZF9pbmZvLVx1MDAzZWJ1Zl9vdXQpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxOTU6XHRcdGhpbmljM19mcmVlX2NtZF9idWYoaHdkZXYsIGNtZF9pbmZvLVx1MDAzZWJ1Zl9vdXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE5Ni1cdFx0Y21kX2luZm8tXHUwMDNlYnVmX291dCA9IE5VTEw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE5OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoyMDA6c3RhdGljIHZvaWQgY2xlYXJfd3FlX2NvbXBsZXRlX2JpdChzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjAxLVx0XHRcdFx0ICAgc3RydWN0IGNtZHFfd3FlICp3cWUsIHUxNiBjaSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjE3LVx0d21iKCk7IC8qIHZlcmlmeSB3cWUgaXMgY2xlYXIgYmVmb3JlIHVwZGF0aW5nIGNpICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MjE4Olx0aGluaWMzX3dxX3B1dF93cWViYnMoXHUwMDI2Y21kcS1cdTAwM2V3cSwgQ01EUV9XUUVfTlVNX1dRRUJCUyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjE5LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yMjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MjIxOnN0YXRpYyBpbnQgY21kcV9hcm1fY2VxX2hhbmRsZXIoc3RydWN0IGhpbmljM19jbWRxICpjbWRxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIyMi1cdFx0XHRcdHN0cnVjdCBjbWRxX3dxZSAqd3FlLCB1MTYgY2kpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIzNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoyMzU6c3RhdGljIHZvaWQgY21kcV91cGRhdGVfY21kX3N0YXR1cyhzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsIHUxNiBwcm9kX2lkeCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yMzYtXHRcdFx0XHQgICBzdHJ1Y3QgY21kcV93cWUgKndxZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yMzcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjIzODpcdHN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyAqY21kX2luZm87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjM5LVx0c3RydWN0IGNtZHFfd3FlX2xjbWQgKndxZV9sY21kO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yNTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MjUzOnN0YXRpYyB2b2lkIGNtZHFfc3luY19jbWRfaGFuZGxlcihzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjU0LVx0XHRcdFx0ICBzdHJ1Y3QgY21kcV93cWUgKndxZSwgdTE2IGNpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yNzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Mjc1OnZvaWQgaGluaWMzX2NtZHFfY2VxX2hhbmRsZXIoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsIF9fbGUzMiBjZXFlX2RhdGEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjc2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoyNzc6XHRlbnVtIGhpbmljM19jbWRxX3R5cGUgY21kcV90eXBlID0gQ01EUV9DRVFFX0dFVChjZXFlX2RhdGEsIFRZUEUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjI3ODpcdHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzID0gaHdkZXYtXHUwMDNlY21kcXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Mjc5Olx0c3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpjbWRfaW5mbztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yODAtXHRzdHJ1Y3QgY21kcV93cWVfbGNtZCAqd3FlX2xjbWQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MjgxOlx0c3RydWN0IGhpbmljM19jbWRxICpjbWRxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTI4Mi1cdHN0cnVjdCBjbWRxX3dxZSAqd3FlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yOTctXHRcdFx0XHQgY21kcV90eXBlLCBjaSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Mjk4Olx0XHRcdGhpbmljM19kdW1wX2NtZHFfd3FlX2hlYWQoaHdkZXYsIHdxZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjk5LVx0XHRcdGZhbGx0aHJvdWdoO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zMzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MzM1OnN0YXRpYyBpbnQgY21kcV9wYXJhbXNfdmFsaWQoY29uc3Qgc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MzM2Olx0XHRcdCAgICAgY29uc3Qgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzM3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzQ2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM0NzpzdGF0aWMgaW50IHdhaXRfY21kcXNfZW5hYmxlKHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM0OC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jPTM2ND1zdGF0aWMgdm9pZCBjbWRxX3NldF9jb21wbGV0aW9uKHN0cnVjdCBjbWRxX2NvbXBsZXRpb24gKmNvbXBsZXRlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM2NTpcdFx0XHRcdHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX291dClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zNjYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM2NzpcdHN0cnVjdCBoaW5pYzNfc2dlICpzZ2UgPSBcdTAwMjZjb21wbGV0ZS1cdTAwM2VyZXNwLnNnZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zNjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MzY5Olx0aGluaWMzX3NldF9zZ2Uoc2dlLCBidWZfb3V0LVx1MDAzZWRtYV9hZGRyLCBjcHVfdG9fbGUzMihDTURRX0JVRl9TSVpFKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzcwLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zNzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MzcyOnN0YXRpYyBzdHJ1Y3QgY21kcV93cWUgKmNtZHFfZ2V0X3dxZShzdHJ1Y3QgaGluaWMzX3dxICp3cSwgdTE2ICpwaSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zNzMte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM3NDpcdGlmICghaGluaWMzX3dxX2ZyZWVfd3FlYmJzKHdxKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zNzUtXHRcdHJldHVybiBOVUxMO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM3Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzozNzc6XHRyZXR1cm4gaGluaWMzX3dxX2dldF9vbmVfd3FlYmIod3EsIHBpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zNzgtfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYz0zODA9c3RhdGljIHZvaWQgY21kcV9zZXRfbGNtZF9idWZkZXNjKHN0cnVjdCBjbWRxX3dxZV9sY21kICp3cWUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MzgxOlx0XHRcdFx0ICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9pbilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zODIte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM4MzpcdGhpbmljM19zZXRfc2dlKFx1MDAyNndxZS1cdTAwM2VidWZfZGVzYy5zZ2UsIGJ1Zl9pbi1cdTAwM2VkbWFfYWRkcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zODQtXHRcdCAgICAgICAoX19mb3JjZSBfX2xlMzIpYnVmX2luLVx1MDAzZXNpemUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zODYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Mzg3OnN0YXRpYyB2b2lkIGNtZHFfc2V0X2RiKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzozODg6XHRcdFx0ZW51bSBoaW5pYzNfY21kcV90eXBlIGNtZHFfdHlwZSwgdTE2IHByb2RfaWR4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM4OS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jPTQ1OT1zdGF0aWMgdm9pZCBjbWRxX3NldF9sY21kX3dxZShzdHJ1Y3QgY21kcV93cWUgKndxZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy00NjAtXHRcdFx0ICAgICAgZW51bSBjbWRxX2NtZF90eXBlIGNtZF90eXBlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjQ2MTpcdFx0XHQgICAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9pbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo0NjI6XHRcdFx0ICAgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfb3V0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTQ2My1cdFx0XHQgICAgICB1OCB3cmFwcGVkLCB1OCBtb2QsIHU4IGNtZCwgdTE2IHByb2RfaWR4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy00ODQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NDg1OnN0YXRpYyBpbnQgaGluaWMzX2NtZHFfc3luY190aW1lb3V0X2NoZWNrKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy00ODYtXHRcdFx0XHRcdCAgc3RydWN0IGNtZHFfd3FlICp3cWUsIHUxNiBwaSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTAzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjUwNDpzdGF0aWMgdm9pZCBjbGVhcl9jbWRfaW5mbyhzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKmNtZF9pbmZvLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjUwNTpcdFx0XHQgICBjb25zdCBzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKnNhdmVkX2NtZF9pbmZvKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTUwNi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTUxNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo1MTc6c3RhdGljIGludCB3YWl0X2NtZHFfc3luY19jbWRfY29tcGxldGlvbihzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTE4Olx0XHRcdFx0XHQgc3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpjbWRfaW5mbyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo1MTk6XHRcdFx0XHRcdCBzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKnNhdmVkX2NtZF9pbmZvLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTUyMC1cdFx0XHRcdFx0IHU2NCBjdXJyX21zZ19pZCwgdTE2IGN1cnJfcHJvZF9pZHgsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU0MC1cdGlmIChjdXJyX21zZ19pZCA9PSBjbWRfaW5mby1cdTAwM2VjbWRxX21zZ19pZCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU0MTpcdFx0ZXJyID0gaGluaWMzX2NtZHFfc3luY190aW1lb3V0X2NoZWNrKGNtZHEsIGN1cnJfd3FlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU0Mi1cdFx0XHRcdFx0XHQgICAgIGN1cnJfcHJvZF9pZHgpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTU2Olx0aGluaWMzX2R1bXBfY2VxX2luZm8oY21kcS1cdTAwM2Vod2Rldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTU3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTYxOnN0YXRpYyBpbnQgY21kcV9zeW5jX2NtZF9leGVjKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSwgdTggbW9kLCB1OCBjbWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTYyOlx0XHRcdCAgICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX2luLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU2MzpcdFx0XHQgICAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9vdXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTY0LVx0XHRcdCAgICAgIF9fbGU2NCAqb3V0X3BhcmFtLCB1OCBjbWRfdHlwZSwgdTggd3FlX2NtZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NjUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU2NjpcdHN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyAqY21kX2luZm8sIHNhdmVkX2NtZF9pbmZvO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU2Ny1cdGludCBjbXB0X2NvZGUgPSBDTURRX1NFTkRfQ01QVF9DT0RFO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU2OC1cdHN0cnVjdCBjbWRxX3dxZSAqY3Vycl93cWUsIHdxZSA9IHt9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU2OTpcdHN0cnVjdCBoaW5pYzNfd3EgKndxID0gXHUwMDI2Y21kcS1cdTAwM2V3cTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NzAtXHR1MTYgY3Vycl9wcm9kX2lkeCwgbmV4dF9wcm9kX2lkeDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjYzNTpzdGF0aWMgaW50IGNtZHFfc3luY19jbWRfZGlyZWN0X3Jlc3Aoc3RydWN0IGhpbmljM19jbWRxICpjbWRxLCB1OCBtb2QsIHU4IGNtZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2MzY6XHRcdFx0XHQgICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX2luLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTYzNy1cdFx0XHRcdCAgICAgX19sZTY0ICpvdXRfcGFyYW0pXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY0My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2NDQ6c3RhdGljIGludCBjbWRxX3N5bmNfY21kX2RldGFpbF9yZXNwKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSwgdTggbW9kLCB1OCBjbWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjQ1Olx0XHRcdFx0ICAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9pbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2NDY6XHRcdFx0XHQgICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX291dCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NDctXHRcdFx0XHQgICAgIF9fbGU2NCAqb3V0X3BhcmFtKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjU0OmludCBoaW5pYzNfY21kX2J1Zl9wYWlyX2luaXQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjU1Olx0XHRcdCAgICAgc3RydWN0IGhpbmljM19jbWRfYnVmX3BhaXIgKnBhaXIpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjU2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2NTc6XHRwYWlyLVx1MDAzZWluID0gaGluaWMzX2FsbG9jX2NtZF9idWYoaHdkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY1OC1cdGlmICghcGFpci1cdTAwM2Vpbilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjYwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY2MTpcdHBhaXItXHUwMDNlb3V0ID0gaGluaWMzX2FsbG9jX2NtZF9idWYoaHdkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY2Mi1cdGlmICghcGFpci1cdTAwM2VvdXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY2Ny1lcnJfZnJlZV9jbWRfYnVmX2luOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY2ODpcdGhpbmljM19mcmVlX2NtZF9idWYoaHdkZXYsIHBhaXItXHUwMDNlaW4pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY2OS1lcnJfb3V0OlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjczOnZvaWQgaGluaWMzX2NtZF9idWZfcGFpcl91bmluaXQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Njc0Olx0XHRcdFx0c3RydWN0IGhpbmljM19jbWRfYnVmX3BhaXIgKnBhaXIpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjc1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2NzY6XHRoaW5pYzNfZnJlZV9jbWRfYnVmKGh3ZGV2LCBwYWlyLVx1MDAzZWluKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2Nzc6XHRoaW5pYzNfZnJlZV9jbWRfYnVmKGh3ZGV2LCBwYWlyLVx1MDAzZW91dCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjc4LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjgwOmludCBoaW5pYzNfY21kcV9kaXJlY3RfcmVzcChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldiwgdTggbW9kLCB1OCBjbWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjgxOlx0XHRcdCAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9pbiwgX19sZTY0ICpvdXRfcGFyYW0pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjgyLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2ODM6XHRzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02ODQtXHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03MTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzEzOmludCBoaW5pYzNfY21kcV9kZXRhaWxfcmVzcChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldiwgdTggbW9kLCB1OCBjbWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzE0Olx0XHRcdCAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9pbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3MTU6XHRcdFx0ICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX291dCwgX19sZTY0ICpvdXRfcGFyYW0pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzE2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3MTc6XHRzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03MTgtXHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzQ2OnN0YXRpYyB2b2lkIGNtZHFfaW5pdF9xdWV1ZV9jdHh0KHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LCB1OCBjbWRxX2lkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc0Ny1cdFx0XHRcdCBzdHJ1Y3QgY29tbV9jbWRxX2N0eHRfaW5mbyAqY3R4dF9pbmZvKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc0OC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzQ5Olx0Y29uc3Qgc3RydWN0IGhpbmljM19jbWRxcyAqY21kcXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzUwLVx0dTY0IGNtZHFfZmlyc3RfYmxvY2tfcGFkZHIsIHBmbjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3NTE6XHRjb25zdCBzdHJ1Y3QgaGluaWMzX3dxICp3cTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NTItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc1NC1cdHdxID0gXHUwMDI2Y21kcXMtXHUwMDNlY21kcVtjbWRxX2lkXS53cTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3NTU6XHRwZm4gPSBDTURRX1BGTihoaW5pYzNfd3FfZ2V0X2ZpcnN0X3dxZV9wYWdlX2FkZHIod3EpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NTYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc2My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3NjQ6XHRpZiAoIWhpbmljM193cV9pc18wX2xldmVsX2NsYSh3cSkpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NjUtXHRcdGNtZHFfZmlyc3RfYmxvY2tfcGFkZHIgPSBjbWRxcy1cdTAwM2V3cV9ibG9ja19wYWRkcjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzcyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjc3MzpzdGF0aWMgaW50IGluaXRfY21kcShzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsIHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjc3NDpcdFx0ICAgICBlbnVtIGhpbmljM19jbWRxX3R5cGUgcV90eXBlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc3NS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc5Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3OTM6c3RhdGljIGludCBoaW5pYzNfc2V0X2NtZHFfY3R4dChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldiwgdTggY21kcV9pZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03OTQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03OTktXHRjbWRxX2luaXRfcXVldWVfY3R4dChod2RldiwgY21kcV9pZCwgXHUwMDI2Y21kcV9jdHh0LmN0eHQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjgwMDpcdGNtZHFfY3R4dC5mdW5jX2lkID0gaGluaWMzX2dsb2JhbF9mdW5jX2lkKGh3ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04MDEtXHRjbWRxX2N0eHQuY21kcV9pZCA9IGNtZHFfaWQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgwNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4MDY6XHRlcnIgPSBoaW5pYzNfc2VuZF9tYm94X3RvX21nbXQoaHdkZXYsIE1HTVRfTU9EX0NPTU0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODA3LVx0XHRcdFx0ICAgICAgIENPTU1fQ01EX1NFVF9DTURRX0NUWFQsIFx1MDAyNm1zZ19wYXJhbXMpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04MTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODE3OnN0YXRpYyBpbnQgaGluaWMzX3NldF9jbWRxX2N0eHRzKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgxOC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODE5Olx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXMgPSBod2Rldi1cdTAwM2VjbWRxcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04MjAtXHR1OCBjbWRxX3R5cGU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgyMy1cdGZvciAoY21kcV90eXBlID0gMDsgY21kcV90eXBlIFx1MDAzYyBjbWRxcy1cdTAwM2VjbWRxX251bTsgY21kcV90eXBlJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjgyNDpcdFx0ZXJyID0gaGluaWMzX3NldF9jbWRxX2N0eHQoaHdkZXYsIGNtZHFfdHlwZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODI1LVx0XHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04MzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODM1OnN0YXRpYyBpbnQgY3JlYXRlX2NtZHFfd3Eoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODM2Olx0XHRcdCAgc3RydWN0IGhpbmljM19jbWRxcyAqY21kcXMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODM3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODQxLVx0Zm9yIChjbWRxX3R5cGUgPSAwOyBjbWRxX3R5cGUgXHUwMDNjIGNtZHFzLVx1MDAzZWNtZHFfbnVtOyBjbWRxX3R5cGUmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODQyOlx0XHRlcnIgPSBoaW5pYzNfd3FfY3JlYXRlKGh3ZGV2LCBcdTAwMjZjbWRxcy1cdTAwM2VjbWRxW2NtZHFfdHlwZV0ud3EsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODQzLVx0XHRcdFx0ICAgICAgIENNRFFfREVQVEgsIENNRFFfV1FFQkJfU0laRSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg1Mi1cdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjg1MzpcdGlmICghaGluaWMzX3dxX2lzXzBfbGV2ZWxfY2xhKFx1MDAyNmNtZHFzLVx1MDAzZWNtZHFbSElOSUMzX0NNRFFfU1lOQ10ud3EpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODU0LVx0XHRpZiAoY21kcXMtXHUwMDNlY21kcVtISU5JQzNfQ01EUV9TWU5DXS53cS5xcGFnZXMubnVtX3BhZ2VzIFx1MDAzZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04ODMtXHRcdGNtZHFfdHlwZS0tO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjg4NDpcdFx0aGluaWMzX3dxX2Rlc3Ryb3koaHdkZXYsIFx1MDAyNmNtZHFzLVx1MDAzZWNtZHFbY21kcV90eXBlXS53cSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODg1LVx0fVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04ODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODkwOnN0YXRpYyB2b2lkIGRlc3Ryb3lfY21kcV93cShzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4OTE6XHRcdFx0ICAgIHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg5Mi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg5OS1cdGZvciAoY21kcV90eXBlID0gMDsgY21kcV90eXBlIFx1MDAzYyBjbWRxcy1cdTAwM2VjbWRxX251bTsgY21kcV90eXBlJiM0MzsmIzQzOylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5MDA6XHRcdGhpbmljM193cV9kZXN0cm95KGh3ZGV2LCBcdTAwMjZjbWRxcy1cdTAwM2VjbWRxW2NtZHFfdHlwZV0ud3EpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTkwMS19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjkwMzpzdGF0aWMgaW50IGluaXRfY21kcXMoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTA0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5MDU6XHRzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05MDYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTkxNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5MTU6XHRjbWRxcy1cdTAwM2VjbWRfYnVmX3Bvb2wgPSBkbWFfcG9vbF9jcmVhdGUoXCYjMzQ7aGluaWMzX2NtZHFcJiMzNDssIGh3ZGV2LVx1MDAzZWRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05MTYtXHRcdFx0XHRcdCAgICAgIENNRFFfQlVGX1NJWkUsIENNRFFfQlVGX1NJWkUsIDApO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05MjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTI2OnN0YXRpYyB2b2lkIGNtZHFfZmx1c2hfc3luY19jbWQoc3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpjbWRfaW5mbylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05Mjcte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTQ3OnN0YXRpYyB2b2lkIGhpbmljM19jbWRxX2ZsdXNoX2NtZChzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTQ4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5NDk6XHRzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKmNtZF9pbmZvO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk1MC1cdHUxNiBjaTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTUzLVx0d2hpbGUgKGNtZHFfcmVhZF93cWUoXHUwMDI2Y21kcS1cdTAwM2V3cSwgXHUwMDI2Y2kpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTU0Olx0XHRoaW5pYzNfd3FfcHV0X3dxZWJicyhcdTAwMjZjbWRxLVx1MDAzZXdxLCBDTURRX1dRRV9OVU1fV1FFQkJTKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NTUtXHRcdGNtZF9pbmZvID0gXHUwMDI2Y21kcS1cdTAwM2VjbWRfaW5mb3NbY2ldO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTYzOnZvaWQgaGluaWMzX2NtZHFfZmx1c2hfc3luY19jbWQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTY0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5NjU6XHRzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTY2LVx0dTE2IHdxZV9jbnQsIHdxZV9pZHgsIGk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTY3Olx0c3RydWN0IGhpbmljM193cSAqd3E7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTY4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NzEtXHR3cSA9IFx1MDAyNmNtZHEtXHUwMDNld3E7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTcyOlx0d3FlX2NudCA9IGhpbmljM193cV9nZXRfdXNlZCh3cSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTczLVx0Zm9yIChpID0gMDsgaSBcdTAwM2Mgd3FlX2NudDsgaSYjNDM7JiM0MzspIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTc5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk4MDpzdGF0aWMgdm9pZCBoaW5pYzNfY21kcV9yZXNldF9hbGxfY21kX2J1ZihzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTgxLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk4ODppbnQgaGluaWMzX3JlaW5pdF9jbWRxX2N0eHRzKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk4OS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTkwOlx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXMgPSBod2Rldi1cdTAwM2VjbWRxcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05OTEtXHR1OCBjbWRxX3R5cGU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk5My1cdGZvciAoY21kcV90eXBlID0gMDsgY21kcV90eXBlIFx1MDAzYyBjbWRxcy1cdTAwM2VjbWRxX251bTsgY21kcV90eXBlJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk5NDpcdFx0aGluaWMzX2NtZHFfZmx1c2hfY21kKFx1MDAyNmNtZHFzLVx1MDAzZWNtZHFbY21kcV90eXBlXSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTk1Olx0XHRoaW5pYzNfY21kcV9yZXNldF9hbGxfY21kX2J1ZihcdTAwMjZjbWRxcy1cdTAwM2VjbWRxW2NtZHFfdHlwZV0pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk5Ni1cdFx0Y21kcXMtXHUwMDNlY21kcVtjbWRxX3R5cGVdLndyYXBwZWQgPSAxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk5NzpcdFx0aGluaWMzX3dxX3Jlc2V0KFx1MDAyNmNtZHFzLVx1MDAzZWNtZHFbY21kcV90eXBlXS53cSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTk4LVx0fVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk5OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDAwOlx0cmV0dXJuIGhpbmljM19zZXRfY21kcV9jdHh0cyhod2Rldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTAwMS19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTAwMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDAzOmludCBoaW5pYzNfY21kcXNfaW5pdChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDA0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDA1Olx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTAwNi1cdHZvaWQgX19pb21lbSAqZGJfYmFzZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTAxOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDE5Olx0ZXJyID0gaGluaWMzX2FsbG9jX2RiX2FkZHIoaHdkZXYsIFx1MDAyNmRiX2Jhc2UsIE5VTEwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwMjAtXHRpZiAoZXJyKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwMzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTAzNjpcdGVyciA9IGhpbmljM19zZXRfY21kcV9jdHh0cyhod2Rldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTAzNy1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTA0ODpcdGhpbmljM19mcmVlX2RiX2FkZHIoaHdkZXYsIGNtZHFzLVx1MDAzZWNtZHFzX2RiX2Jhc2UpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNDktZXJyX2Rlc3Ryb3lfY21kcV93cTpcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTA1Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDU4OnZvaWQgaGluaWMzX2NtZHFzX2ZyZWUoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTA1OS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTA2MDpcdHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzID0gaHdkZXYtXHUwMDNlY21kcXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTA2MS1cdHU4IGNtZHFfdHlwZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTA2NS1cdGZvciAoY21kcV90eXBlID0gMDsgY21kcV90eXBlIFx1MDAzYyBjbWRxcy1cdTAwM2VjbWRxX251bTsgY21kcV90eXBlJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwNjY6XHRcdGhpbmljM19jbWRxX2ZsdXNoX2NtZChcdTAwMjZjbWRxcy1cdTAwM2VjbWRxW2NtZHFfdHlwZV0pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwNjc6XHRcdGhpbmljM19jbWRxX3Jlc2V0X2FsbF9jbWRfYnVmKFx1MDAyNmNtZHFzLVx1MDAzZWNtZHFbY21kcV90eXBlXSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTA2OC1cdFx0a2ZyZWUoY21kcXMtXHUwMDNlY21kcVtjbWRxX3R5cGVdLmNtZF9pbmZvcyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTA3MTpcdGhpbmljM19mcmVlX2RiX2FkZHIoaHdkZXYsIGNtZHFzLVx1MDAzZWNtZHFzX2RiX2Jhc2UpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNzItXHRkZXN0cm95X2NtZHFfd3EoaHdkZXYsIGNtZHFzKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTA3Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDc3OmJvb2wgaGluaWMzX2NtZHFfaWRsZShzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTA3OC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTA3OTpcdHJldHVybiBoaW5pYzNfd3FfZ2V0X3VzZWQoXHUwMDI2Y21kcS1cdTAwM2V3cSkgPT0gMDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDgwLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDo5OiNpbmNsdWRlIFwmIzM0O2hpbmljM19od19pbnRmLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMDojaW5jbHVkZSBcJiMzNDtoaW5pYzNfd3EuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTExLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaD0yNT1zdHJ1Y3QgY21kcV9sY21kX2J1ZmRlc2Mge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjI2Olx0c3RydWN0IGhpbmljM19zZ2Ugc2dlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTI3LVx0X19sZTY0ICAgICAgICAgICAgcnN2ZDI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oPTQ0PXN0cnVjdCBjbWRxX2NvbXBsZXRpb24ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTQ1LVx0dW5pb24ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjQ2Olx0XHRzdHJ1Y3QgaGluaWMzX3NnZSAgICAgICBzZ2U7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtNDctXHRcdHN0cnVjdCBjbWRxX2RpcmVjdF9yZXNwIGRpcmVjdDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg9NzU9c3RhdGljX2Fzc2VydChzaXplb2Yoc3RydWN0IGNtZHFfd3FlKSA9PSA2NCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtNzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6Nzc6ZW51bSBoaW5pYzNfY21kcV90eXBlIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC03OC1cdEhJTklDM19DTURRX1NZTkMgICAgICA9IDAsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTgxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjgyOmVudW0gaGluaWMzX2NtZHFfc3RhdHVzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC04My1cdEhJTklDM19DTURRX0VOQUJMRSA9IEJJVCgwKSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtODUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6ODY6ZW51bSBoaW5pYzNfY21kcV9jbWRfdHlwZSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtODctXHRISU5JQzNfQ01EX1RZUEVfTk9ORSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtOTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6OTY6c3RydWN0IGhpbmljM19jbWRfYnVmIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC05Ny1cdHZvaWQgICAgICAgKmJ1Zjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEwMzpzdHJ1Y3QgaGluaWMzX2NtZF9idWZfcGFpciB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTA0Olx0c3RydWN0IGhpbmljM19jbWRfYnVmICppbjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMDU6XHRzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKm91dDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMDYtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTA4OnN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTA5Olx0ZW51bSBoaW5pYzNfY21kcV9jbWRfdHlwZSBjbWRfdHlwZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMTAtXHRzdHJ1Y3QgY29tcGxldGlvbiAgICAgICAgICpkb25lO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMTUtXHR1NjQgICAgICAgICAgICAgICAgICAgICAgIGNtZHFfbXNnX2lkO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjExNjpcdHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAgICAgKmJ1Zl9pbjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMTc6XHRzdHJ1Y3QgaGluaWMzX2NtZF9idWYgICAgICpidWZfb3V0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTExOC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTExOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMjA6c3RydWN0IGhpbmljM19jbWRxIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMjE6XHRzdHJ1Y3QgaGluaWMzX3dxICAgICAgICAgICAgd3E7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTIyOlx0ZW51bSBoaW5pYzNfY21kcV90eXBlICAgICAgIGNtZHFfdHlwZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMjMtXHR1OCAgICAgICAgICAgICAgICAgICAgICAgICAgd3JhcHBlZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTI1LVx0c3BpbmxvY2tfdCAgICAgICAgICAgICAgICAgIGNtZHFfbG9jaztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMjY6XHRzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKmNtZF9pbmZvcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMjc6XHRzdHJ1Y3QgaGluaWMzX2h3ZGV2ICAgICAgICAgKmh3ZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTEyOC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTEyOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMzA6c3RydWN0IGhpbmljM19jbWRxcyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTMxOlx0c3RydWN0IGhpbmljM19od2RldiAqaHdkZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTMyOlx0c3RydWN0IGhpbmljM19jbWRxICBjbWRxW0hJTklDM19NQVhfQ01EUV9UWVBFU107XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTMzLVx0c3RydWN0IGRtYV9wb29sICAgICAqY21kX2J1Zl9wb29sO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xNDgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTQ5OmludCBoaW5pYzNfY21kcXNfaW5pdChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2Rldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTUwOnZvaWQgaGluaWMzX2NtZHFzX2ZyZWUoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTE1MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNTI6c3RydWN0IGhpbmljM19jbWRfYnVmICpoaW5pYzNfYWxsb2NfY21kX2J1ZihzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2Rldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTUzOnZvaWQgaGluaWMzX2ZyZWVfY21kX2J1ZihzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNTQ6XHRcdFx0IHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqY21kX2J1Zik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTU1OnZvaWQgaGluaWMzX2NtZHFfY2VxX2hhbmRsZXIoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsIF9fbGUzMiBjZXFlX2RhdGEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTE1Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNTc6aW50IGhpbmljM19jbWRfYnVmX3BhaXJfaW5pdChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNTg6XHRcdFx0ICAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWZfcGFpciAqcGFpcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTU5OnZvaWQgaGluaWMzX2NtZF9idWZfcGFpcl91bmluaXQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTYwOlx0XHRcdFx0c3RydWN0IGhpbmljM19jbWRfYnVmX3BhaXIgKnBhaXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2MTppbnQgaGluaWMzX2NtZHFfZGlyZWN0X3Jlc3Aoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsIHU4IG1vZCwgdTggY21kLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2MjpcdFx0XHQgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4sIF9fbGU2NCAqb3V0X3BhcmFtKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNjM6aW50IGhpbmljM19jbWRxX2RldGFpbF9yZXNwKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LCB1OCBtb2QsIHU4IGNtZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNjQ6XHRcdFx0ICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX2luLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2NTpcdFx0XHQgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfb3V0LCBfX2xlNjQgKm91dF9wYXJhbSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTY2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2Nzp2b2lkIGhpbmljM19jbWRxX2ZsdXNoX3N5bmNfY21kKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNjg6aW50IGhpbmljM19yZWluaXRfY21kcV9jdHh0cyhzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2Rldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTY5OmJvb2wgaGluaWMzX2NtZHFfaWRsZShzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTE3MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYy03LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmM6ODojaW5jbHVkZSBcJiMzNDtoaW5pYzNfY29tbW9uLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NvbW1vbi5jLTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYzoxMDppbnQgaGluaWMzX2RtYV96YWxsb2NfY29oZXJlbnRfYWxpZ24oc3RydWN0IGRldmljZSAqZGV2LCB1MzIgc2l6ZSwgdTMyIGFsaWduLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmMtMTEtXHRcdFx0XHQgICAgIGdmcF90IGZsYWcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYzoxMjpcdFx0XHRcdCAgICAgc3RydWN0IGhpbmljM19kbWFfYWRkcl9hbGlnbiAqbWVtX2FsaWduKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmMtMTMte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NvbW1vbi5jLTQ4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmM6NDk6dm9pZCBoaW5pYzNfZG1hX2ZyZWVfY29oZXJlbnRfYWxpZ24oc3RydWN0IGRldmljZSAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmM6NTA6XHRcdFx0XHQgICAgc3RydWN0IGhpbmljM19kbWFfYWRkcl9hbGlnbiAqbWVtX2FsaWduKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmMtNTEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NvbW1vbi5jLTU1LVxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDM6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjEyNjYKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiA0MDgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nIERlY2lzaW9uIGZvciBoaW5pYzMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIHRoZSBkcml2ZXIgaW4gcXVlc3Rpb24gaXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGlzIHRoaXMgYSBzdGFuZGFyZCBkcml2ZXIgZm9yIGEgaGFyZHdhcmUgTklDLCBub3Qgc29tZXRoaW5nIGVtdWxhdGVkIGluIGEgdHlwaWNhbCBRRU1VIHNldHVwPyBZZXMsIEh1YXdlaSYjMzk7cyBJbnRlbGxpZ2VudCBOSUMgKGhpbmljMykgaXMgZGVmaW5pdGVseSBhIHBoeXNpY2FsIFBDSWUgY2FyZC4gTm93LCBJIG5lZWQgdG8gYmUgc3VyZTsgZG9lcyBRRU1VIGhhdmUgYW55IGVtdWxhdGlvbiBzcGVjaWZpY2FsbHkgZm9yIHRoZSBoaW5pYzM/IE5vLCBzdGFuZGFyZCBRRU1VIGRvZXNuJiMzOTt0IGVtdWxhdGUgaXQuCgpBIHF1aWNrIHRob3VnaHQ7IHdoYXQgYWJvdXQgc3l6a2FsbGVyPyBEb2VzIHN5emthbGxlciBzb21laG93IGZ1enogaXQ/IEFoLCBidXQgaXQgY291bGQgYmUgdGhhdCBzeXprYWxsZXIgdG91Y2hlcyBpdCB2aWEgYSBwc2V1ZG8tZGV2aWNlIG9yIFBDSSBpbmplY3Rpb24sIG9yIHBlcmhhcHMgYW5vdGhlciBtZWFucy4gSSBuZWVkIHRvIGJlIGNhcmVmdWwgaGVyZS4gTGV0JiMzOTtzIHNlZS4uLiB0aGUgaW5zdHJ1Y3Rpb25zIHNheSB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIHBhdGNoIGludm9sdmVzIGNvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgdGhhdCByZXF1aXJlIHNwZWNpZmljLCBub24tZW11bGF0ZWQgaGFyZHdhcmUuIElzIGBoaW5pYzNgIGEgdmVuZG9yLXNwZWNpZmljIFNtYXJ0TklDIGRyaXZlcj8gWWVzLCBpdCBpcyEKCkxldCBtZSBjb25maXJtIHRoYXQgdGhlIGNvZGUgaXMgKnB1cmVseSogcmVsYXRlZCB0byB0aGUgaGFyZHdhcmUgZHJpdmVyLiBZZXMsIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzYCBpcyB0aGUgSHVhd2VpIEludGVsbGlnZW50IE5JQyBkcml2ZXIuIE5vdywgc3l6a2FsbGVyIGRvZXNuJiMzOTt0IGhhdmUgYW4gKmVtdWxhdGlvbiogZm9yIGhpbmljMywgcmlnaHQ/IENvcnJlY3QuCgpPa2F5LCBldmVuIHRob3VnaCBzeXprYWxsZXIgZG9lcyBoYXZlIHNvbWUgUENJIGZ1enppbmcgY2FwYWJpbGl0aWVzLCBJIG5lZWQgdG8gcmVtZW1iZXIgdGhlIGluc3RydWN0aW9uczogJiMzNDtDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIC4uLiB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4mIzM0OyBCZWNhdXNlIGBoaW5pYzNgIGZhbGxzIHNxdWFyZWx5IGludG8gdGhhdCBjYXRlZ29yeSwgSSBoYXZlIHRvIGNvbmNsdWRlIHRoYXQgYFdvcnRoRnV6emluZz1mYWxzZWAuIEkgYW0gZ29pbmcgdG8gdmVyaWZ5IHRoZSBQQ0llIG5hdHVyZSBvZiB0aGUgZHJpdmVyIGJlZm9yZSBJIGNvbW1pdCB0byB0aGUgZmFsc2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDM6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGNpX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2xsZC5jPTQzNj1zdGF0aWMgdm9pZCBoaW5pYzNfc2h1dGRvd24oc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfbGxkLmMtNDQ1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfbGxkLmM6NDQ2OnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBoaW5pYzNfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfbGxkLmMtNDQ3LVx0Lm5hbWUgICAgICAgICAgICA9IEhJTklDM19OSUNfRFJWX05BTUUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDM6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjIyODQKCQkJCQkJCW91dHB1dDogODEKCQkJCQkJCXRob3VnaHRzOiAyMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nIERlY2lzaW9uIGZvciBUaGlzIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgbG9va3MgbGlrZSBhIFBDSSBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgYGhpbmljM2AgZHJpdmVyLiBJIGNhbiBzZWUgZnJvbSB0aGUgcGF0Y2ggdGhhdCBpdCYjMzk7cyBtb2RpZnlpbmcgc2V2ZXJhbCBmdW5jdGlvbnM6IGBoaW5pYzNfdHhfbWFwX3NrYmAsIGBoaW5pYzNfdHhfY3N1bWAsIGBoaW5pYzNfdHhfb2ZmbG9hZGAsIGFuZCBgaGluaWMzX3NlbmRfb25lX3NrYmAuIEFsbCBvZiB0aGVzZSBhcmUgd2l0aGluIHRoZSBgaGluaWMzYCBkcml2ZXIsIHdoaWNoIGlzLCBhcyBJIHJlY2FsbCwgYSBIdWF3ZWktZGV2ZWxvcGVkIFNtYXJ0TklDIGRyaXZlci4gQW5kIHRoZSBTbWFydE5JQyBuYXR1cmUgbWVhbnMgaXQmIzM5O3MgdmVuZG9yLXNwZWNpZmljIGFuZCByZXF1aXJlcyBhIHBoeXNpY2FsIFBDSWUgY2FyZCDigJMgbm90IHNvbWV0aGluZyBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgoKTm93LCBsZXQgbWUganVzdCBkb3VibGUtY2hlY2sgdGhlIGV4Y2x1c2lvbiBjcml0ZXJpYeKApiB5ZXMsICYjMzQ7Y29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVyc+KApiB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4mIzM0OwoKVGhhdCYjMzk7cyBpdCwgcGxhaW4gYXMgZGF5LiBTaW5jZSBgaGluaWMzYCBpcyBpbmRlZWQgYSBTbWFydE5JQyBkcml2ZXIgZnJvbSBhIHNwZWNpZmljIHZlbmRvciwgYW5kIGl0IG5lZWRzIGEgcmVhbCBQQ0llIGNhcmQsIGl0IGFic29sdXRlbHkgZmFsbHMgaW50byB0aGUgZXhjbHVzaW9uIHJ1bGUuIFRoZXJlZm9yZSwgSSYjMzk7bSBnb2luZyB0byBzZXQgYFdvcnRoRnV6emluZz1mYWxzZWAgZm9yIHRoaXMgcGF0Y2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMDM6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgVHggcGF0aCBvZiB0aGUgaGluaWMzIGRyaXZlciAoSHVhd2VpIEludGVsbGlnZW50IE5JQykuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgU21hcnROSUMgUENJZSBkcml2ZXIgdGhhdCByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgbWFraW5nIGl0IHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFR4IHBhdGggb2YgdGhlIGhpbmljMyBkcml2ZXIgKEh1YXdlaSBJbnRlbGxpZ2VudCBOSUMpLiBUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIFNtYXJ0TklDIFBDSWUgZHJpdmVyIHRoYXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUsIG1ha2luZyBpdCB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wNVQwMzo1NzowMS4yMjQ2OTE2MDJaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDE5NDc0NTkzOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFR4IHBhdGggb2YgdGhlIGhpbmljMyBkcml2ZXIgKEh1YXdlaSBJbnRlbGxpZ2VudCBOSUMpLiBUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIFNtYXJ0TklDIFBDSWUgZHJpdmVyIHRoYXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUsIG1ha2luZyBpdCB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDAzOjU3OjAxLjIyNDY5NzM4MloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE4OTczNzQzNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGYzNjE3YzZiNjk4YmJjMWE3NWYyN2Y5OTUzODMxMDFmODcwNjk5ZjlcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBBdWcgNSAwMzo1Njo1OSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xcbmluZGV4IDkzMDZiZjAwMjBjYWYuLjQ1ZWZmZGRkYjQzNDEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmNcXG5AQCAtOTcsOCArOTcsMTIgQEAgc3RhdGljIGludCBoaW5pYzNfdHhfbWFwX3NrYihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbiBcXG4gXFx0ZG1hX2luZm9bMF0uZG1hID0gZG1hX21hcF9zaW5nbGUoXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgc2tiLVxcdTAwM2VkYXRhLFxcbiBcXHRcXHRcXHRcXHRcXHQgc2tiX2hlYWRsZW4oc2tiKSwgRE1BX1RPX0RFVklDRSk7XFxuLVxcdGlmIChkbWFfbWFwcGluZ19lcnJvcihcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBkbWFfaW5mb1swXS5kbWEpKVxcbitcXHRpZiAoZG1hX21hcHBpbmdfZXJyb3IoXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgZG1hX2luZm9bMF0uZG1hKSkge1xcbitcXHRcXHR1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKFxcdTAwMjZ0eHEtXFx1MDAzZXR4cV9zdGF0cy5zeW5jcCk7XFxuK1xcdFxcdHR4cS1cXHUwMDNldHhxX3N0YXRzLm1hcF9mcmFnX2VycisrO1xcbitcXHRcXHR1NjRfc3RhdHNfdXBkYXRlX2VuZChcXHUwMDI2dHhxLVxcdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xcbiBcXHRcXHRyZXR1cm4gLUVGQVVMVDtcXG4rXFx0fVxcbiBcXG4gXFx0ZG1hX2luZm9bMF0ubGVuID0gc2tiX2hlYWRsZW4oc2tiKTtcXG4gXFxuQEAgLTExNyw2ICsxMjEsOSBAQCBzdGF0aWMgaW50IGhpbmljM190eF9tYXBfc2tiKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHN0cnVjdCBza19idWZmICpza2IsXFxuIFxcdFxcdFxcdFxcdFxcdFxcdCAgICAgc2tiX2ZyYWdfc2l6ZShmcmFnKSxcXG4gXFx0XFx0XFx0XFx0XFx0XFx0ICAgICBETUFfVE9fREVWSUNFKTtcXG4gXFx0XFx0aWYgKGRtYV9tYXBwaW5nX2Vycm9yKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIGRtYV9pbmZvW2lkeF0uZG1hKSkge1xcbitcXHRcXHRcXHR1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKFxcdTAwMjZ0eHEtXFx1MDAzZXR4cV9zdGF0cy5zeW5jcCk7XFxuK1xcdFxcdFxcdHR4cS1cXHUwMDNldHhxX3N0YXRzLm1hcF9mcmFnX2VycisrO1xcbitcXHRcXHRcXHR1NjRfc3RhdHNfdXBkYXRlX2VuZChcXHUwMDI2dHhxLVxcdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xcbiBcXHRcXHRcXHRlcnIgPSAtRUZBVUxUO1xcbiBcXHRcXHRcXHRnb3RvIGVycl91bm1hcF9wYWdlO1xcbiBcXHRcXHR9XFxuQEAgLTI2MCw5ICsyNjcsMTEgQEAgc3RhdGljIGludCBoaW5pYzNfdHhfY3N1bShzdHJ1Y3QgaGluaWMzX3R4cSAqdHhxLCBzdHJ1Y3QgaGluaWMzX3NxX3Rhc2sgKnRhc2ssXFxuIFxcdFxcdGlmIChsNF9wcm90byAhPSBJUFBST1RPX1VEUCB8fFxcbiBcXHRcXHQgICAgKChzdHJ1Y3QgdWRwaGRyICopc2tiX3RyYW5zcG9ydF9oZWFkZXIoc2tiKSktXFx1MDAzZWRlc3QgIT1cXG4gXFx0XFx0ICAgIFZYTEFOX09GRkxPQURfUE9SVF9MRSkge1xcbitcXHRcXHRcXHR1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKFxcdTAwMjZ0eHEtXFx1MDAzZXR4cV9zdGF0cy5zeW5jcCk7XFxuK1xcdFxcdFxcdHR4cS1cXHUwMDNldHhxX3N0YXRzLnVua25vd25fdHVubmVsX3BrdCsrO1xcbitcXHRcXHRcXHR1NjRfc3RhdHNfdXBkYXRlX2VuZChcXHUwMDI2dHhxLVxcdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xcbiBcXHRcXHRcXHQvKiBVbnN1cHBvcnRlZCB0dW5uZWwgcGFja2V0LCBkaXNhYmxlIGNzdW0gb2ZmbG9hZCAqL1xcbi1cXHRcXHRcXHRza2JfY2hlY2tzdW1faGVscChza2IpO1xcbi1cXHRcXHRcXHRyZXR1cm4gMDtcXG4rXFx0XFx0XFx0cmV0dXJuIHNrYl9jaGVja3N1bV9oZWxwKHNrYik7XFxuIFxcdFxcdH1cXG4gXFx0fVxcbiBcXG5AQCAtNDEyLDYgKzQyMSwxMCBAQCBzdGF0aWMgdTMyIGhpbmljM190eF9vZmZsb2FkKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBoaW5pYzNfc3FfdGFzayAqdGFzayxcXG4gXFx0XFx0b2ZmbG9hZCB8PSBISU5JQzNfVFhfT0ZGTE9BRF9UU087XFxuIFxcdH0gZWxzZSB7XFxuIFxcdFxcdHRzb19jc19lbiA9IGhpbmljM190eF9jc3VtKHR4cSwgdGFzaywgc2tiKTtcXG4rXFx0XFx0aWYgKHRzb19jc19lbiBcXHUwMDNjIDApIHtcXG4rXFx0XFx0XFx0b2ZmbG9hZCA9IEhJTklDM19UWF9PRkZMT0FEX0lOVkFMSUQ7XFxuK1xcdFxcdFxcdHJldHVybiBvZmZsb2FkO1xcbitcXHRcXHR9XFxuIFxcdFxcdGlmICh0c29fY3NfZW4pXFxuIFxcdFxcdFxcdG9mZmxvYWQgfD0gSElOSUMzX1RYX09GRkxPQURfQ1NVTTtcXG4gXFx0fVxcbkBAIC01MzksMTIgKzU1MiwxNyBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaGluaWMzX3NlbmRfb25lX3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbiBcXHRpbnQgZXJyO1xcbiBcXG4gXFx0aWYgKHVubGlrZWx5KHNrYi1cXHUwMDNlbGVuIFxcdTAwM2MgTUlOX1NLQl9MRU4pKSB7XFxuLVxcdFxcdGlmIChza2JfcGFkKHNrYiwgTUlOX1NLQl9MRU4gLSBza2ItXFx1MDAzZWxlbikpXFxuK1xcdFxcdGlmIChza2JfcGFkKHNrYiwgTUlOX1NLQl9MRU4gLSBza2ItXFx1MDAzZWxlbikpIHtcXG4rXFx0XFx0XFx0dTY0X3N0YXRzX3VwZGF0ZV9iZWdpbihcXHUwMDI2dHhxLVxcdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xcbitcXHRcXHRcXHR0eHEtXFx1MDAzZXR4cV9zdGF0cy5za2JfcGFkX2VycisrO1xcbitcXHRcXHRcXHR1NjRfc3RhdHNfdXBkYXRlX2VuZChcXHUwMDI2dHhxLVxcdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xcbiBcXHRcXHRcXHRnb3RvIGVycl9vdXQ7XFxuK1xcdFxcdH1cXG4gXFxuIFxcdFxcdHNrYi1cXHUwMDNlbGVuID0gTUlOX1NLQl9MRU47XFxuIFxcdH1cXG4gXFxuK1xcdG9mZmxvYWQgPSBoaW5pYzNfdHhfb2ZmbG9hZChza2IsIFxcdTAwMjZ0YXNrLCBcXHUwMDI2cXVldWVfaW5mbywgdHhxKTtcXG4gXFx0bnVtX3NnZSA9IHNrYl9zaGluZm8oc2tiKS1cXHUwMDNlbnJfZnJhZ3MgKyAxO1xcbiBcXHQvKiBhc3N1bWUgbm9ybWFsIHdxZSBmb3JtYXQgKyAxIHdxZWJiIGZvciB0YXNrIGluZm8gKi9cXG4gXFx0d3FlYmJfY250ID0gbnVtX3NnZSArIDE7XFxuQEAgLTU2MCw3ICs1NzgsNiBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaGluaWMzX3NlbmRfb25lX3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbiBcXHRcXHRyZXR1cm4gTkVUREVWX1RYX0JVU1k7XFxuIFxcdH1cXG4gXFxuLVxcdG9mZmxvYWQgPSBoaW5pYzNfdHhfb2ZmbG9hZChza2IsIFxcdTAwMjZ0YXNrLCBcXHUwMDI2cXVldWVfaW5mbywgdHhxKTtcXG4gXFx0aWYgKHVubGlrZWx5KG9mZmxvYWQgPT0gSElOSUMzX1RYX09GRkxPQURfSU5WQUxJRCkpIHtcXG4gXFx0XFx0Z290byBlcnJfZHJvcF9wa3Q7XFxuIFxcdH0gZWxzZSBpZiAoIW9mZmxvYWQpIHtcXG5AQCAtNjA0LDYgKzYyMSwxMCBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaGluaWMzX3NlbmRfb25lX3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbiBlcnJfZHJvcF9wa3Q6XFxuIFxcdGRldl9rZnJlZV9za2JfYW55KHNrYik7XFxuIGVycl9vdXQ6XFxuK1xcdHU2NF9zdGF0c191cGRhdGVfYmVnaW4oXFx1MDAyNnR4cS1cXHUwMDNldHhxX3N0YXRzLnN5bmNwKTtcXG4rXFx0dHhxLVxcdTAwM2V0eHFfc3RhdHMuZHJvcHBlZCsrO1xcbitcXHR1NjRfc3RhdHNfdXBkYXRlX2VuZChcXHUwMDI2dHhxLVxcdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xcbitcXG4gXFx0cmV0dXJuIE5FVERFVl9UWF9PSztcXG4gfVxcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDM6NTc6MDIuNDE1MTkwMjI4WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MTkwMDQyNDE5NTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUeCBwYXRoIG9mIHRoZSBoaW5pYzMgZHJpdmVyIChIdWF3ZWkgSW50ZWxsaWdlbnQgTklDKS4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBTbWFydE5JQyBQQ0llIGRyaXZlciB0aGF0IHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLCBtYWtpbmcgaXQgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBmMzYxN2M2YjY5OGJiYzFhNzVmMjdmOTk1MzgzMTAxZjg3MDY5OWY5XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBBdWcgNSAwMzo1Njo1OSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jXG5pbmRleCA5MzA2YmYwMDIwY2FmLi40NWVmZmRkZGI0MzQxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xuQEAgLTk3LDggKzk3LDEyIEBAIHN0YXRpYyBpbnQgaGluaWMzX3R4X21hcF9za2Ioc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcbiBcdGRtYV9pbmZvWzBdLmRtYSA9IGRtYV9tYXBfc2luZ2xlKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBza2ItXHUwMDNlZGF0YSxcbiBcdFx0XHRcdFx0IHNrYl9oZWFkbGVuKHNrYiksIERNQV9UT19ERVZJQ0UpO1xuLVx0aWYgKGRtYV9tYXBwaW5nX2Vycm9yKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBkbWFfaW5mb1swXS5kbWEpKVxuK1x0aWYgKGRtYV9tYXBwaW5nX2Vycm9yKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBkbWFfaW5mb1swXS5kbWEpKSB7XG4rXHRcdHU2NF9zdGF0c191cGRhdGVfYmVnaW4oXHUwMDI2dHhxLVx1MDAzZXR4cV9zdGF0cy5zeW5jcCk7XG4rXHRcdHR4cS1cdTAwM2V0eHFfc3RhdHMubWFwX2ZyYWdfZXJyKys7XG4rXHRcdHU2NF9zdGF0c191cGRhdGVfZW5kKFx1MDAyNnR4cS1cdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xuIFx0XHRyZXR1cm4gLUVGQVVMVDtcbitcdH1cbiBcbiBcdGRtYV9pbmZvWzBdLmxlbiA9IHNrYl9oZWFkbGVuKHNrYik7XG4gXG5AQCAtMTE3LDYgKzEyMSw5IEBAIHN0YXRpYyBpbnQgaGluaWMzX3R4X21hcF9za2Ioc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcdFx0XHRcdFx0XHQgICAgIHNrYl9mcmFnX3NpemUoZnJhZyksXG4gXHRcdFx0XHRcdFx0ICAgICBETUFfVE9fREVWSUNFKTtcbiBcdFx0aWYgKGRtYV9tYXBwaW5nX2Vycm9yKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBkbWFfaW5mb1tpZHhdLmRtYSkpIHtcbitcdFx0XHR1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKFx1MDAyNnR4cS1cdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xuK1x0XHRcdHR4cS1cdTAwM2V0eHFfc3RhdHMubWFwX2ZyYWdfZXJyKys7XG4rXHRcdFx0dTY0X3N0YXRzX3VwZGF0ZV9lbmQoXHUwMDI2dHhxLVx1MDAzZXR4cV9zdGF0cy5zeW5jcCk7XG4gXHRcdFx0ZXJyID0gLUVGQVVMVDtcbiBcdFx0XHRnb3RvIGVycl91bm1hcF9wYWdlO1xuIFx0XHR9XG5AQCAtMjYwLDkgKzI2NywxMSBAQCBzdGF0aWMgaW50IGhpbmljM190eF9jc3VtKHN0cnVjdCBoaW5pYzNfdHhxICp0eHEsIHN0cnVjdCBoaW5pYzNfc3FfdGFzayAqdGFzayxcbiBcdFx0aWYgKGw0X3Byb3RvICE9IElQUFJPVE9fVURQIHx8XG4gXHRcdCAgICAoKHN0cnVjdCB1ZHBoZHIgKilza2JfdHJhbnNwb3J0X2hlYWRlcihza2IpKS1cdTAwM2VkZXN0ICE9XG4gXHRcdCAgICBWWExBTl9PRkZMT0FEX1BPUlRfTEUpIHtcbitcdFx0XHR1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKFx1MDAyNnR4cS1cdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xuK1x0XHRcdHR4cS1cdTAwM2V0eHFfc3RhdHMudW5rbm93bl90dW5uZWxfcGt0Kys7XG4rXHRcdFx0dTY0X3N0YXRzX3VwZGF0ZV9lbmQoXHUwMDI2dHhxLVx1MDAzZXR4cV9zdGF0cy5zeW5jcCk7XG4gXHRcdFx0LyogVW5zdXBwb3J0ZWQgdHVubmVsIHBhY2tldCwgZGlzYWJsZSBjc3VtIG9mZmxvYWQgKi9cbi1cdFx0XHRza2JfY2hlY2tzdW1faGVscChza2IpO1xuLVx0XHRcdHJldHVybiAwO1xuK1x0XHRcdHJldHVybiBza2JfY2hlY2tzdW1faGVscChza2IpO1xuIFx0XHR9XG4gXHR9XG4gXG5AQCAtNDEyLDYgKzQyMSwxMCBAQCBzdGF0aWMgdTMyIGhpbmljM190eF9vZmZsb2FkKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBoaW5pYzNfc3FfdGFzayAqdGFzayxcbiBcdFx0b2ZmbG9hZCB8PSBISU5JQzNfVFhfT0ZGTE9BRF9UU087XG4gXHR9IGVsc2Uge1xuIFx0XHR0c29fY3NfZW4gPSBoaW5pYzNfdHhfY3N1bSh0eHEsIHRhc2ssIHNrYik7XG4rXHRcdGlmICh0c29fY3NfZW4gXHUwMDNjIDApIHtcbitcdFx0XHRvZmZsb2FkID0gSElOSUMzX1RYX09GRkxPQURfSU5WQUxJRDtcbitcdFx0XHRyZXR1cm4gb2ZmbG9hZDtcbitcdFx0fVxuIFx0XHRpZiAodHNvX2NzX2VuKVxuIFx0XHRcdG9mZmxvYWQgfD0gSElOSUMzX1RYX09GRkxPQURfQ1NVTTtcbiBcdH1cbkBAIC01MzksMTIgKzU1MiwxNyBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaGluaWMzX3NlbmRfb25lX3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0aW50IGVycjtcbiBcbiBcdGlmICh1bmxpa2VseShza2ItXHUwMDNlbGVuIFx1MDAzYyBNSU5fU0tCX0xFTikpIHtcbi1cdFx0aWYgKHNrYl9wYWQoc2tiLCBNSU5fU0tCX0xFTiAtIHNrYi1cdTAwM2VsZW4pKVxuK1x0XHRpZiAoc2tiX3BhZChza2IsIE1JTl9TS0JfTEVOIC0gc2tiLVx1MDAzZWxlbikpIHtcbitcdFx0XHR1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKFx1MDAyNnR4cS1cdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xuK1x0XHRcdHR4cS1cdTAwM2V0eHFfc3RhdHMuc2tiX3BhZF9lcnIrKztcbitcdFx0XHR1NjRfc3RhdHNfdXBkYXRlX2VuZChcdTAwMjZ0eHEtXHUwMDNldHhxX3N0YXRzLnN5bmNwKTtcbiBcdFx0XHRnb3RvIGVycl9vdXQ7XG4rXHRcdH1cbiBcbiBcdFx0c2tiLVx1MDAzZWxlbiA9IE1JTl9TS0JfTEVOO1xuIFx0fVxuIFxuK1x0b2ZmbG9hZCA9IGhpbmljM190eF9vZmZsb2FkKHNrYiwgXHUwMDI2dGFzaywgXHUwMDI2cXVldWVfaW5mbywgdHhxKTtcbiBcdG51bV9zZ2UgPSBza2Jfc2hpbmZvKHNrYiktXHUwMDNlbnJfZnJhZ3MgKyAxO1xuIFx0LyogYXNzdW1lIG5vcm1hbCB3cWUgZm9ybWF0ICsgMSB3cWViYiBmb3IgdGFzayBpbmZvICovXG4gXHR3cWViYl9jbnQgPSBudW1fc2dlICsgMTtcbkBAIC01NjAsNyArNTc4LDYgQEAgc3RhdGljIG5ldGRldl90eF90IGhpbmljM19zZW5kX29uZV9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcdFx0cmV0dXJuIE5FVERFVl9UWF9CVVNZO1xuIFx0fVxuIFxuLVx0b2ZmbG9hZCA9IGhpbmljM190eF9vZmZsb2FkKHNrYiwgXHUwMDI2dGFzaywgXHUwMDI2cXVldWVfaW5mbywgdHhxKTtcbiBcdGlmICh1bmxpa2VseShvZmZsb2FkID09IEhJTklDM19UWF9PRkZMT0FEX0lOVkFMSUQpKSB7XG4gXHRcdGdvdG8gZXJyX2Ryb3BfcGt0O1xuIFx0fSBlbHNlIGlmICghb2ZmbG9hZCkge1xuQEAgLTYwNCw2ICs2MjEsMTAgQEAgc3RhdGljIG5ldGRldl90eF90IGhpbmljM19zZW5kX29uZV9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBlcnJfZHJvcF9wa3Q6XG4gXHRkZXZfa2ZyZWVfc2tiX2FueShza2IpO1xuIGVycl9vdXQ6XG4rXHR1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKFx1MDAyNnR4cS1cdTAwM2V0eHFfc3RhdHMuc3luY3ApO1xuK1x0dHhxLVx1MDAzZXR4cV9zdGF0cy5kcm9wcGVkKys7XG4rXHR1NjRfc3RhdHNfdXBkYXRlX2VuZChcdTAwMjZ0eHEtXHUwMDNldHhxX3N0YXRzLnN5bmNwKTtcbitcbiBcdHJldHVybiBORVRERVZfVFhfT0s7XG4gfVxuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDM6NTc6MDIuNDE1MTkxMjE4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Njc3NDc5MTgyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBIdWF3ZWkgTklDIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCdzIG1ha2luZyBzb21lIGNoYW5nZXMgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY2AgZmlsZS4gVGhpcyBpcyBpbnRlcmVzdGluZyDigJMgaXQncyB0b3VjaGluZyBzZXZlcmFsIGtleSBmdW5jdGlvbnM6IGBoaW5pYzNfdHhfbWFwX3NrYmAsIGBoaW5pYzNfdHhfY3N1bWAsIGBoaW5pYzNfdHhfb2ZmbG9hZGAsIGFuZCBgaGluaWMzX3NlbmRfb25lX3NrYmAuIEEgZ29vZCBjaHVuayBvZiBpdCBpcyBmb2N1c2VkIG9uIGFkZGluZyBzb21lIG5ldyBzdGF0cyB1cGRhdGVzLCB3aGljaCBpcyBhbHdheXMgaGVscGZ1bCBmb3IgZGVidWdnaW5nIGFuZCBwZXJmb3JtYW5jZSBhbmFseXNpcy4gVGhpbmdzIGxpa2UgdHJhY2tpbmcgbWFwcGluZyBlcnJvcnMgKGB0eHEtXHUwMDNldHhxX3N0YXRzLm1hcF9mcmFnX2VycisrYCksIHVua25vd24gdHVubmVsIHBhY2tldHMgKGB0eHEtXHUwMDNldHhxX3N0YXRzLnVua25vd25fdHVubmVsX3BrdCsrYCksIHBhZGRpbmcgZXJyb3JzIChgdHhxLVx1MDAzZXR4cV9zdGF0cy5za2JfcGFkX2VycisrYCksIGFuZCBkcm9wcGVkIHBhY2tldHMgKGB0eHEtXHUwMDNldHhxX3N0YXRzLmRyb3BwZWQrK2ApIGFyZSBnb29kIGFkZGl0aW9ucy5cblxuTm93LCBsb29raW5nIGNsb3NlciwgdGhlcmUncyBhIGNoYW5nZSBpbiBgaGluaWMzX3R4X2NzdW1gLiBJdCdzIG5vdyByZXR1cm5pbmcgdGhlIHJlc3VsdCBvZiBgc2tiX2NoZWNrc3VtX2hlbHAoc2tiKWAgaW5zdGVhZCBvZiBzaW1wbHkgYDBgLiBUaGF0J3MgYSBmdW5kYW1lbnRhbCBzaGlmdCBpbiBob3cgY2hlY2tzdW0gb2ZmbG9hZCBpcyBoYW5kbGVkIGhlcmUuIFdlIG5lZWQgdG8gYmUgY2FyZWZ1bCB3aXRoIHRoYXQuIEkgYWxzbyBzZWUgYSBjaGFuZ2UgaW4gYGhpbmljM190eF9vZmZsb2FkYCwgd2hlcmUgdGhlcmUncyBhIGNoZWNrIGZvciBgdHNvX2NzX2VuIFx1MDAzYyAwYCBub3csIHJldHVybmluZyBgSElOSUMzX1RYX09GRkxPQURfSU5WQUxJRGAgaWYgdGhhdCdzIHRoZSBjYXNlLiBBbmQgaW4gYGhpbmljM19zZW5kX29uZV9za2JgLCBgaGluaWMzX3R4X29mZmxvYWRgIGlzIGNhbGxlZCAqYmVmb3JlKiBjYWxjdWxhdGluZyBgbnVtX3NnZWAgYW5kIGB3cWViYl9jbnRgIC0gdGhpcyBpcyBnb2luZyB0byBhZmZlY3QgdGhlIGNvbnRyb2wgZmxvdyBoZXJlLlxuXG5XYWl0LCBgaGluaWMzYOKApnRoYXQgc291bmRzIGxpa2UgYSBIdWF3ZWkgSW50ZWxsaWdlbnQgTklDIGRyaXZlci4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJJ20gZm9sbG93aW5nIHRoZSBiaWdnZXIgcGljdHVyZSwgYW5kIHdoYXQgdGhpcyBpbXBsaWVzLiBUaGlzIHByb2JhYmx5IGlzbid0IGEgc3RhbmRhcmQgbmV0d29yayBpbnRlcmZhY2UuIEkgbmVlZCB0byBrbm93IHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpcyBiZWluZyBhIHZlbmRvci1zcGVjaWZpYyBTbWFydE5JQy4gSXMgdGhpcyBzb21lIGtpbmQgb2YgUENJZSBoYXJkd2FyZSBjYXJkP1xuXG5ZZXMsIFwiSHVhd2VpIEludGVsbGlnZW50IE5JQyBkcml2ZXJcIiBhbG1vc3QgY2VydGFpbmx5IGNvbmZpcm1zIHRoYXQuIE9rYXksIEknbSBnb2luZyB0byBxdWlja2x5IGNoZWNrIGlmIHRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBoYXJkd2FyZSBjYXJkIHRoYXQgKmlzbid0KiBlbXVsYXRlZCBieSBzdGFuZGFyZCBRRU1VLiBHaXZlbiB3aGF0IEknbSBzZWVpbmcsIHRoZXJlJ3MgYSBzdHJvbmcgY2hhbmNlIHRoaXMgbmVlZHMgcmVhbCBoYXJkd2FyZS4gQWgsIHRoZSBkb2N1bWVudGF0aW9uIGNvbmZpcm1zIGl0OiBcIkNvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cIiBCaW5nby5cblxuWXVwLCB0aGlzIGlzIGEgU21hcnROSUMgZHJpdmVyLiBOb3csIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgdGhhdCB0aGlzIHNwZWNpZmljIGBoaW5pYzNgIGRyaXZlciBpcyAqYWN0dWFsbHkqIGVtdWxhdGVkIG9yIG5vdC4gSSdsbCBxdWlja2x5IHNlYXJjaCB0aGUga2VybmVsIHRyZWUganVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUuIFRoaXMgY29udGV4dCBpcyBpbXBvcnRhbnQgYmVjYXVzZSBpdCBjaGFuZ2VzIGhvdyBJIHdvdWxkIGRlYnVnIHRoaXMuIElmIGl0IG5lZWRzIHJlYWwgaGFyZHdhcmUsIEkgbmVlZCBhY2Nlc3MgdG8gdGhhdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzQwNywiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQyOCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDAzOjU3OjA5LjE4OTk4NTQ3MVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTIzNzA1NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJoaW5pYzNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA2NDg5IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL0tjb25maWc9Nj1jb25maWcgSElOSUMzXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL0tjb25maWctMjAtXFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvS2NvbmZpZzoyMTpcXHQgIFRoZSBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgaGluaWMzLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZS0zLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6NDpvYmotJChDT05GSUdfSElOSUMzKSArPSBoaW5pYzMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGUtNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjY6aGluaWMzLW9ianMgOj0gaGluaWMzX2NtZHEubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZTo3OlxcdCAgICAgICBoaW5pYzNfY29tbW9uLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6ODpcXHQgICAgICAgaGluaWMzX2Vxcy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjk6XFx0ICAgICAgIGhpbmljM19ldGh0b29sLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTA6XFx0ICAgICAgIGhpbmljM19maWx0ZXIubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToxMTpcXHQgICAgICAgaGluaWMzX2h3X2NmZy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjEyOlxcdCAgICAgICBoaW5pYzNfaHdfY29tbS5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjEzOlxcdCAgICAgICBoaW5pYzNfaHdkZXYubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToxNDpcXHQgICAgICAgaGluaWMzX2h3aWYubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToxNTpcXHQgICAgICAgaGluaWMzX2lycS5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjE2OlxcdCAgICAgICBoaW5pYzNfbGxkLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTc6XFx0ICAgICAgIGhpbmljM19tYWluLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTg6XFx0ICAgICAgIGhpbmljM19tYm94Lm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MTk6XFx0ICAgICAgIGhpbmljM19tZ210Lm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MjA6XFx0ICAgICAgIGhpbmljM19uZXRkZXZfb3BzLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MjE6XFx0ICAgICAgIGhpbmljM19uaWNfY2ZnLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MjI6XFx0ICAgICAgIGhpbmljM19uaWNfaW8ubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToyMzpcXHQgICAgICAgaGluaWMzX3F1ZXVlX2NvbW1vbi5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjI0OlxcdCAgICAgICBoaW5pYzNfcnNzLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvTWFrZWZpbGU6MjU6XFx0ICAgICAgIGhpbmljM19yeC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL01ha2VmaWxlOjI2OlxcdCAgICAgICBoaW5pYzNfdHgubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9NYWtlZmlsZToyNzpcXHQgICAgICAgaGluaWMzX3dxLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4OiNpbmNsdWRlIFxcXCJoaW5pYzNfY21kcS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5OiNpbmNsdWRlIFxcXCJoaW5pYzNfZXFzLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwOiNpbmNsdWRlIFxcXCJoaW5pYzNfaHdkZXYuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTE6I2luY2x1ZGUgXFxcImhpbmljM19od2lmLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEyOiNpbmNsdWRlIFxcXCJoaW5pYzNfbWJveC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYz0xMTI9ZW51bSBjbWRxX2NtZF90eXBlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjExOTpzdGF0aWMgdm9pZCBoaW5pYzNfZHVtcF9jbWRxX3dxZV9oZWFkKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMjAtXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IGNtZHFfd3FlICp3cWUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMzM6c3RhdGljIHN0cnVjdCBjbWRxX3dxZSAqY21kcV9yZWFkX3dxZShzdHJ1Y3QgaGluaWMzX3dxICp3cSwgdTE2ICpjaSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTM0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTM1OlxcdGlmIChoaW5pYzNfd3FfZ2V0X3VzZWQod3EpID09IDApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEzNi1cXHRcXHRyZXR1cm4gTlVMTDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xNDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjE0MzpzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmhpbmljM19hbGxvY19jbWRfYnVmKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xNDQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxNDU6XFx0c3RydWN0IGhpbmljM19jbWRfYnVmICpjbWRfYnVmO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxNDY6XFx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE0Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xNzEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjE3Mjp2b2lkIGhpbmljM19mcmVlX2NtZF9idWYoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjE3MzpcXHRcXHRcXHQgc3RydWN0IGhpbmljM19jbWRfYnVmICpjbWRfYnVmKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xNzQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxNzU6XFx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE3Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xODUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjE4NjpzdGF0aWMgdm9pZCBjbWRxX2NsZWFyX2NtZF9idWYoc3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpjbWRfaW5mbyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTg3OlxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTg4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTg5LVxcdGlmIChjbWRfaW5mby1cXHUwMDNlYnVmX2luKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjE5MDpcXHRcXHRoaW5pYzNfZnJlZV9jbWRfYnVmKGh3ZGV2LCBjbWRfaW5mby1cXHUwMDNlYnVmX2luKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTkxLVxcdFxcdGNtZF9pbmZvLVxcdTAwM2VidWZfaW4gPSBOVUxMO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTE5NC1cXHRpZiAoY21kX2luZm8tXFx1MDAzZWJ1Zl9vdXQpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTk1OlxcdFxcdGhpbmljM19mcmVlX2NtZF9idWYoaHdkZXYsIGNtZF9pbmZvLVxcdTAwM2VidWZfb3V0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTk2LVxcdFxcdGNtZF9pbmZvLVxcdTAwM2VidWZfb3V0ID0gTlVMTDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xOTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjIwMDpzdGF0aWMgdm9pZCBjbGVhcl93cWVfY29tcGxldGVfYml0KHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjAxLVxcdFxcdFxcdFxcdCAgIHN0cnVjdCBjbWRxX3dxZSAqd3FlLCB1MTYgY2kpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjE3LVxcdHdtYigpOyAvKiB2ZXJpZnkgd3FlIGlzIGNsZWFyIGJlZm9yZSB1cGRhdGluZyBjaSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoyMTg6XFx0aGluaWMzX3dxX3B1dF93cWViYnMoXFx1MDAyNmNtZHEtXFx1MDAzZXdxLCBDTURRX1dRRV9OVU1fV1FFQkJTKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjE5LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjIwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoyMjE6c3RhdGljIGludCBjbWRxX2FybV9jZXFfaGFuZGxlcihzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIyMi1cXHRcXHRcXHRcXHRzdHJ1Y3QgY21kcV93cWUgKndxZSwgdTE2IGNpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MjM1OnN0YXRpYyB2b2lkIGNtZHFfdXBkYXRlX2NtZF9zdGF0dXMoc3RydWN0IGhpbmljM19jbWRxICpjbWRxLCB1MTYgcHJvZF9pZHgsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIzNi1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgY21kcV93cWUgKndxZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjM3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MjM4OlxcdHN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyAqY21kX2luZm87XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTIzOS1cXHRzdHJ1Y3QgY21kcV93cWVfbGNtZCAqd3FlX2xjbWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjUyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoyNTM6c3RhdGljIHZvaWQgY21kcV9zeW5jX2NtZF9oYW5kbGVyKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjU0LVxcdFxcdFxcdFxcdCAgc3RydWN0IGNtZHFfd3FlICp3cWUsIHUxNiBjaSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yNzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjI3NTp2b2lkIGhpbmljM19jbWRxX2NlcV9oYW5kbGVyKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LCBfX2xlMzIgY2VxZV9kYXRhKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yNzYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoyNzc6XFx0ZW51bSBoaW5pYzNfY21kcV90eXBlIGNtZHFfdHlwZSA9IENNRFFfQ0VRRV9HRVQoY2VxZV9kYXRhLCBUWVBFKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Mjc4OlxcdHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzID0gaHdkZXYtXFx1MDAzZWNtZHFzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoyNzk6XFx0c3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpjbWRfaW5mbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjgwLVxcdHN0cnVjdCBjbWRxX3dxZV9sY21kICp3cWVfbGNtZDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MjgxOlxcdHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMjgyLVxcdHN0cnVjdCBjbWRxX3dxZSAqd3FlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTI5Ny1cXHRcXHRcXHRcXHQgY21kcV90eXBlLCBjaSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjI5ODpcXHRcXHRcXHRoaW5pYzNfZHVtcF9jbWRxX3dxZV9oZWFkKGh3ZGV2LCB3cWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0yOTktXFx0XFx0XFx0ZmFsbHRocm91Z2g7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzM0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzozMzU6c3RhdGljIGludCBjbWRxX3BhcmFtc192YWxpZChjb25zdCBzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MzM2OlxcdFxcdFxcdCAgICAgY29uc3Qgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTMzNy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzQ2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzozNDc6c3RhdGljIGludCB3YWl0X2NtZHFzX2VuYWJsZShzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzQ4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYz0zNjQ9c3RhdGljIHZvaWQgY21kcV9zZXRfY29tcGxldGlvbihzdHJ1Y3QgY21kcV9jb21wbGV0aW9uICpjb21wbGV0ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MzY1OlxcdFxcdFxcdFxcdHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX291dClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzY2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MzY3OlxcdHN0cnVjdCBoaW5pYzNfc2dlICpzZ2UgPSBcXHUwMDI2Y29tcGxldGUtXFx1MDAzZXJlc3Auc2dlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zNjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM2OTpcXHRoaW5pYzNfc2V0X3NnZShzZ2UsIGJ1Zl9vdXQtXFx1MDAzZWRtYV9hZGRyLCBjcHVfdG9fbGUzMihDTURRX0JVRl9TSVpFKSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM3MC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM3MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MzcyOnN0YXRpYyBzdHJ1Y3QgY21kcV93cWUgKmNtZHFfZ2V0X3dxZShzdHJ1Y3QgaGluaWMzX3dxICp3cSwgdTE2ICpwaSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzczLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Mzc0OlxcdGlmICghaGluaWMzX3dxX2ZyZWVfd3FlYmJzKHdxKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzc1LVxcdFxcdHJldHVybiBOVUxMO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zNzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM3NzpcXHRyZXR1cm4gaGluaWMzX3dxX2dldF9vbmVfd3FlYmIod3EsIHBpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzc4LX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYz0zODA9c3RhdGljIHZvaWQgY21kcV9zZXRfbGNtZF9idWZkZXNjKHN0cnVjdCBjbWRxX3dxZV9sY21kICp3cWUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjM4MTpcXHRcXHRcXHRcXHQgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX2luKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zODIte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzozODM6XFx0aGluaWMzX3NldF9zZ2UoXFx1MDAyNndxZS1cXHUwMDNlYnVmX2Rlc2Muc2dlLCBidWZfaW4tXFx1MDAzZWRtYV9hZGRyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0zODQtXFx0XFx0ICAgICAgIChfX2ZvcmNlIF9fbGUzMilidWZfaW4tXFx1MDAzZXNpemUpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTM4Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Mzg3OnN0YXRpYyB2b2lkIGNtZHFfc2V0X2RiKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Mzg4OlxcdFxcdFxcdGVudW0gaGluaWMzX2NtZHFfdHlwZSBjbWRxX3R5cGUsIHUxNiBwcm9kX2lkeClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMzg5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYz00NTk9c3RhdGljIHZvaWQgY21kcV9zZXRfbGNtZF93cWUoc3RydWN0IGNtZHFfd3FlICp3cWUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTQ2MC1cXHRcXHRcXHQgICAgICBlbnVtIGNtZHFfY21kX3R5cGUgY21kX3R5cGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjQ2MTpcXHRcXHRcXHQgICAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9pbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NDYyOlxcdFxcdFxcdCAgICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX291dCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNDYzLVxcdFxcdFxcdCAgICAgIHU4IHdyYXBwZWQsIHU4IG1vZCwgdTggY21kLCB1MTYgcHJvZF9pZHgpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNDg0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo0ODU6c3RhdGljIGludCBoaW5pYzNfY21kcV9zeW5jX3RpbWVvdXRfY2hlY2soc3RydWN0IGhpbmljM19jbWRxICpjbWRxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy00ODYtXFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgY21kcV93cWUgKndxZSwgdTE2IHBpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTUwMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTA0OnN0YXRpYyB2b2lkIGNsZWFyX2NtZF9pbmZvKHN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyAqY21kX2luZm8sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjUwNTpcXHRcXHRcXHQgICBjb25zdCBzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKnNhdmVkX2NtZF9pbmZvKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01MDYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTUxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTE3OnN0YXRpYyBpbnQgd2FpdF9jbWRxX3N5bmNfY21kX2NvbXBsZXRpb24oc3RydWN0IGhpbmljM19jbWRxICpjbWRxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo1MTg6XFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyAqY21kX2luZm8sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjUxOTpcXHRcXHRcXHRcXHRcXHQgc3RydWN0IGhpbmljM19jbWRxX2NtZF9pbmZvICpzYXZlZF9jbWRfaW5mbyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTIwLVxcdFxcdFxcdFxcdFxcdCB1NjQgY3Vycl9tc2dfaWQsIHUxNiBjdXJyX3Byb2RfaWR4LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU0MC1cXHRpZiAoY3Vycl9tc2dfaWQgPT0gY21kX2luZm8tXFx1MDAzZWNtZHFfbXNnX2lkKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU0MTpcXHRcXHRlcnIgPSBoaW5pYzNfY21kcV9zeW5jX3RpbWVvdXRfY2hlY2soY21kcSwgY3Vycl93cWUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU0Mi1cXHRcXHRcXHRcXHRcXHRcXHQgICAgIGN1cnJfcHJvZF9pZHgpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU1NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTU2OlxcdGhpbmljM19kdW1wX2NlcV9pbmZvKGNtZHEtXFx1MDAzZWh3ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTU3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU2MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTYxOnN0YXRpYyBpbnQgY21kcV9zeW5jX2NtZF9leGVjKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSwgdTggbW9kLCB1OCBjbWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjU2MjpcXHRcXHRcXHQgICAgICBzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmJ1Zl9pbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTYzOlxcdFxcdFxcdCAgICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX291dCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTY0LVxcdFxcdFxcdCAgICAgIF9fbGU2NCAqb3V0X3BhcmFtLCB1OCBjbWRfdHlwZSwgdTggd3FlX2NtZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNTY1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTY2OlxcdHN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyAqY21kX2luZm8sIHNhdmVkX2NtZF9pbmZvO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NjctXFx0aW50IGNtcHRfY29kZSA9IENNRFFfU0VORF9DTVBUX0NPREU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTU2OC1cXHRzdHJ1Y3QgY21kcV93cWUgKmN1cnJfd3FlLCB3cWUgPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NTY5OlxcdHN0cnVjdCBoaW5pYzNfd3EgKndxID0gXFx1MDAyNmNtZHEtXFx1MDAzZXdxO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy01NzAtXFx0dTE2IGN1cnJfcHJvZF9pZHgsIG5leHRfcHJvZF9pZHg7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjM0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2MzU6c3RhdGljIGludCBjbWRxX3N5bmNfY21kX2RpcmVjdF9yZXNwKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSwgdTggbW9kLCB1OCBjbWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjYzNjpcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX2luLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02MzctXFx0XFx0XFx0XFx0ICAgICBfX2xlNjQgKm91dF9wYXJhbSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY0NDpzdGF0aWMgaW50IGNtZHFfc3luY19jbWRfZGV0YWlsX3Jlc3Aoc3RydWN0IGhpbmljM19jbWRxICpjbWRxLCB1OCBtb2QsIHU4IGNtZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjQ1OlxcdFxcdFxcdFxcdCAgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY0NjpcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqYnVmX291dCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjQ3LVxcdFxcdFxcdFxcdCAgICAgX19sZTY0ICpvdXRfcGFyYW0pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjUzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2NTQ6aW50IGhpbmljM19jbWRfYnVmX3BhaXJfaW5pdChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjU1OlxcdFxcdFxcdCAgICAgc3RydWN0IGhpbmljM19jbWRfYnVmX3BhaXIgKnBhaXIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY1Ni17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY1NzpcXHRwYWlyLVxcdTAwM2VpbiA9IGhpbmljM19hbGxvY19jbWRfYnVmKGh3ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjU4LVxcdGlmICghcGFpci1cXHUwMDNlaW4pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjYwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2NjE6XFx0cGFpci1cXHUwMDNlb3V0ID0gaGluaWMzX2FsbG9jX2NtZF9idWYoaHdkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02NjItXFx0aWYgKCFwYWlyLVxcdTAwM2VvdXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjY3LWVycl9mcmVlX2NtZF9idWZfaW46XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY2ODpcXHRoaW5pYzNfZnJlZV9jbWRfYnVmKGh3ZGV2LCBwYWlyLVxcdTAwM2Vpbik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY2OS1lcnJfb3V0Olxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjczOnZvaWQgaGluaWMzX2NtZF9idWZfcGFpcl91bmluaXQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY3NDpcXHRcXHRcXHRcXHRzdHJ1Y3QgaGluaWMzX2NtZF9idWZfcGFpciAqcGFpcilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNjc1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Njc2OlxcdGhpbmljM19mcmVlX2NtZF9idWYoaHdkZXYsIHBhaXItXFx1MDAzZWluKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6Njc3OlxcdGhpbmljM19mcmVlX2NtZF9idWYoaHdkZXYsIHBhaXItXFx1MDAzZW91dCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY3OC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY3OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NjgwOmludCBoaW5pYzNfY21kcV9kaXJlY3RfcmVzcChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldiwgdTggbW9kLCB1OCBjbWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjY4MTpcXHRcXHRcXHQgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4sIF9fbGU2NCAqb3V0X3BhcmFtKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy02ODIte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo2ODM6XFx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTY4NC1cXHRpbnQgZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTcxMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzEzOmludCBoaW5pYzNfY21kcV9kZXRhaWxfcmVzcChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldiwgdTggbW9kLCB1OCBjbWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjcxNDpcXHRcXHRcXHQgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjcxNTpcXHRcXHRcXHQgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfb3V0LCBfX2xlNjQgKm91dF9wYXJhbSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzE2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzE3OlxcdHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03MTgtXFx0aW50IGVycjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjc0NjpzdGF0aWMgdm9pZCBjbWRxX2luaXRfcXVldWVfY3R4dChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldiwgdTggY21kcV9pZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzQ3LVxcdFxcdFxcdFxcdCBzdHJ1Y3QgY29tbV9jbWRxX2N0eHRfaW5mbyAqY3R4dF9pbmZvKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NDgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3NDk6XFx0Y29uc3Qgc3RydWN0IGhpbmljM19jbWRxcyAqY21kcXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc1MC1cXHR1NjQgY21kcV9maXJzdF9ibG9ja19wYWRkciwgcGZuO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3NTE6XFx0Y29uc3Qgc3RydWN0IGhpbmljM193cSAqd3E7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc1Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NTQtXFx0d3EgPSBcXHUwMDI2Y21kcXMtXFx1MDAzZWNtZHFbY21kcV9pZF0ud3E7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjc1NTpcXHRwZm4gPSBDTURRX1BGTihoaW5pYzNfd3FfZ2V0X2ZpcnN0X3dxZV9wYWdlX2FkZHIod3EpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzU2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc2My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzY0OlxcdGlmICghaGluaWMzX3dxX2lzXzBfbGV2ZWxfY2xhKHdxKSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NjUtXFx0XFx0Y21kcV9maXJzdF9ibG9ja19wYWRkciA9IGNtZHFzLVxcdTAwM2V3cV9ibG9ja19wYWRkcjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjc3MzpzdGF0aWMgaW50IGluaXRfY21kcShzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEsIHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo3NzQ6XFx0XFx0ICAgICBlbnVtIGhpbmljM19jbWRxX3R5cGUgcV90eXBlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy03NzUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc5Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6NzkzOnN0YXRpYyBpbnQgaGluaWMzX3NldF9jbWRxX2N0eHQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsIHU4IGNtZHFfaWQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTc5NC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtNzk5LVxcdGNtZHFfaW5pdF9xdWV1ZV9jdHh0KGh3ZGV2LCBjbWRxX2lkLCBcXHUwMDI2Y21kcV9jdHh0LmN0eHQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4MDA6XFx0Y21kcV9jdHh0LmZ1bmNfaWQgPSBoaW5pYzNfZ2xvYmFsX2Z1bmNfaWQoaHdkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04MDEtXFx0Y21kcV9jdHh0LmNtZHFfaWQgPSBjbWRxX2lkO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgwNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODA2OlxcdGVyciA9IGhpbmljM19zZW5kX21ib3hfdG9fbWdtdChod2RldiwgTUdNVF9NT0RfQ09NTSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODA3LVxcdFxcdFxcdFxcdCAgICAgICBDT01NX0NNRF9TRVRfQ01EUV9DVFhULCBcXHUwMDI2bXNnX3BhcmFtcyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODE2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4MTc6c3RhdGljIGludCBoaW5pYzNfc2V0X2NtZHFfY3R4dHMoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgxOC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjgxOTpcXHRzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcyA9IGh3ZGV2LVxcdTAwM2VjbWRxcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODIwLVxcdHU4IGNtZHFfdHlwZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04MjMtXFx0Zm9yIChjbWRxX3R5cGUgPSAwOyBjbWRxX3R5cGUgXFx1MDAzYyBjbWRxcy1cXHUwMDNlY21kcV9udW07IGNtZHFfdHlwZSsrKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjgyNDpcXHRcXHRlcnIgPSBoaW5pYzNfc2V0X2NtZHFfY3R4dChod2RldiwgY21kcV90eXBlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODI1LVxcdFxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODM0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4MzU6c3RhdGljIGludCBjcmVhdGVfY21kcV93cShzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6ODM2OlxcdFxcdFxcdCAgc3RydWN0IGhpbmljM19jbWRxcyAqY21kcXMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTgzNy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODQxLVxcdGZvciAoY21kcV90eXBlID0gMDsgY21kcV90eXBlIFxcdTAwM2MgY21kcXMtXFx1MDAzZWNtZHFfbnVtOyBjbWRxX3R5cGUrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4NDI6XFx0XFx0ZXJyID0gaGluaWMzX3dxX2NyZWF0ZShod2RldiwgXFx1MDAyNmNtZHFzLVxcdTAwM2VjbWRxW2NtZHFfdHlwZV0ud3EsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg0My1cXHRcXHRcXHRcXHQgICAgICAgQ01EUV9ERVBUSCwgQ01EUV9XUUVCQl9TSVpFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04NTItXFx0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjg1MzpcXHRpZiAoIWhpbmljM193cV9pc18wX2xldmVsX2NsYShcXHUwMDI2Y21kcXMtXFx1MDAzZWNtZHFbSElOSUMzX0NNRFFfU1lOQ10ud3EpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg1NC1cXHRcXHRpZiAoY21kcXMtXFx1MDAzZWNtZHFbSElOSUMzX0NNRFFfU1lOQ10ud3EucXBhZ2VzLm51bV9wYWdlcyBcXHUwMDNlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODgzLVxcdFxcdGNtZHFfdHlwZS0tO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo4ODQ6XFx0XFx0aGluaWMzX3dxX2Rlc3Ryb3koaHdkZXYsIFxcdTAwMjZjbWRxcy1cXHUwMDNlY21kcVtjbWRxX3R5cGVdLndxKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODg1LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy04ODktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjg5MDpzdGF0aWMgdm9pZCBkZXN0cm95X2NtZHFfd3Eoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjg5MTpcXHRcXHRcXHQgICAgc3RydWN0IGhpbmljM19jbWRxcyAqY21kcXMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTg5Mi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtODk5LVxcdGZvciAoY21kcV90eXBlID0gMDsgY21kcV90eXBlIFxcdTAwM2MgY21kcXMtXFx1MDAzZWNtZHFfbnVtOyBjbWRxX3R5cGUrKylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTAwOlxcdFxcdGhpbmljM193cV9kZXN0cm95KGh3ZGV2LCBcXHUwMDI2Y21kcXMtXFx1MDAzZWNtZHFbY21kcV90eXBlXS53cSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTkwMS19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTkwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTAzOnN0YXRpYyBpbnQgaW5pdF9jbWRxcyhzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTA0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTA1OlxcdHN0cnVjdCBoaW5pYzNfY21kcXMgKmNtZHFzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05MDYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTE0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5MTU6XFx0Y21kcXMtXFx1MDAzZWNtZF9idWZfcG9vbCA9IGRtYV9wb29sX2NyZWF0ZShcXFwiaGluaWMzX2NtZHFcXFwiLCBod2Rldi1cXHUwMDNlZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05MTYtXFx0XFx0XFx0XFx0XFx0ICAgICAgQ01EUV9CVUZfU0laRSwgQ01EUV9CVUZfU0laRSwgMCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTI1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5MjY6c3RhdGljIHZvaWQgY21kcV9mbHVzaF9zeW5jX2NtZChzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKmNtZF9pbmZvKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05Mjcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTQ3OnN0YXRpYyB2b2lkIGhpbmljM19jbWRxX2ZsdXNoX2NtZChzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk0OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk0OTpcXHRzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8gKmNtZF9pbmZvO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NTAtXFx0dTE2IGNpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk1My1cXHR3aGlsZSAoY21kcV9yZWFkX3dxZShcXHUwMDI2Y21kcS1cXHUwMDNld3EsIFxcdTAwMjZjaSkpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTU0OlxcdFxcdGhpbmljM193cV9wdXRfd3FlYmJzKFxcdTAwMjZjbWRxLVxcdTAwM2V3cSwgQ01EUV9XUUVfTlVNX1dRRUJCUyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk1NS1cXHRcXHRjbWRfaW5mbyA9IFxcdTAwMjZjbWRxLVxcdTAwM2VjbWRfaW5mb3NbY2ldO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk2Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTYzOnZvaWQgaGluaWMzX2NtZHFfZmx1c2hfc3luY19jbWQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk2NC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk2NTpcXHRzdHJ1Y3QgaGluaWMzX2NtZHEgKmNtZHE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk2Ni1cXHR1MTYgd3FlX2NudCwgd3FlX2lkeCwgaTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTY3OlxcdHN0cnVjdCBoaW5pYzNfd3EgKndxO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05NjgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTcxLVxcdHdxID0gXFx1MDAyNmNtZHEtXFx1MDAzZXdxO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5NzI6XFx0d3FlX2NudCA9IGhpbmljM193cV9nZXRfdXNlZCh3cSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk3My1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2Mgd3FlX2NudDsgaSsrKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTc5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5ODA6c3RhdGljIHZvaWQgaGluaWMzX2NtZHFfcmVzZXRfYWxsX2NtZF9idWYoc3RydWN0IGhpbmljM19jbWRxICpjbWRxKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05ODEte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTg4OmludCBoaW5pYzNfcmVpbml0X2NtZHFfY3R4dHMoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk4OS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk5MDpcXHRzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcyA9IGh3ZGV2LVxcdTAwM2VjbWRxcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtOTkxLVxcdHU4IGNtZHFfdHlwZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05OTMtXFx0Zm9yIChjbWRxX3R5cGUgPSAwOyBjbWRxX3R5cGUgXFx1MDAzYyBjbWRxcy1cXHUwMDNlY21kcV9udW07IGNtZHFfdHlwZSsrKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjk5NDpcXHRcXHRoaW5pYzNfY21kcV9mbHVzaF9jbWQoXFx1MDAyNmNtZHFzLVxcdTAwM2VjbWRxW2NtZHFfdHlwZV0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzo5OTU6XFx0XFx0aGluaWMzX2NtZHFfcmVzZXRfYWxsX2NtZF9idWYoXFx1MDAyNmNtZHFzLVxcdTAwM2VjbWRxW2NtZHFfdHlwZV0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy05OTYtXFx0XFx0Y21kcXMtXFx1MDAzZWNtZHFbY21kcV90eXBlXS53cmFwcGVkID0gMTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6OTk3OlxcdFxcdGhpbmljM193cV9yZXNldChcXHUwMDI2Y21kcXMtXFx1MDAzZWNtZHFbY21kcV90eXBlXS53cSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk5OC1cXHR9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTk5OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTAwMDpcXHRyZXR1cm4gaGluaWMzX3NldF9jbWRxX2N0eHRzKGh3ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTAwMS19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwMDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwMDM6aW50IGhpbmljM19jbWRxc19pbml0KHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDA0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTAwNTpcXHRzdHJ1Y3QgaGluaWMzX2NtZHFzICpjbWRxcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTAwNi1cXHR2b2lkIF9faW9tZW0gKmRiX2Jhc2U7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTAxOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTAxOTpcXHRlcnIgPSBoaW5pYzNfYWxsb2NfZGJfYWRkcihod2RldiwgXFx1MDAyNmRiX2Jhc2UsIE5VTEwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDIwLVxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDM1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDM2OlxcdGVyciA9IGhpbmljM19zZXRfY21kcV9jdHh0cyhod2Rldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwMzctXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDQ3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYzoxMDQ4OlxcdGhpbmljM19mcmVlX2RiX2FkZHIoaHdkZXYsIGNtZHFzLVxcdTAwM2VjbWRxc19kYl9iYXNlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTA0OS1lcnJfZGVzdHJveV9jbWRxX3dxOlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwNTg6dm9pZCBoaW5pYzNfY21kcXNfZnJlZShzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTA1OS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwNjA6XFx0c3RydWN0IGhpbmljM19jbWRxcyAqY21kcXMgPSBod2Rldi1cXHUwMDNlY21kcXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNjEtXFx0dTggY21kcV90eXBlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNjUtXFx0Zm9yIChjbWRxX3R5cGUgPSAwOyBjbWRxX3R5cGUgXFx1MDAzYyBjbWRxcy1cXHUwMDNlY21kcV9udW07IGNtZHFfdHlwZSsrKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwNjY6XFx0XFx0aGluaWMzX2NtZHFfZmx1c2hfY21kKFxcdTAwMjZjbWRxcy1cXHUwMDNlY21kcVtjbWRxX3R5cGVdKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmM6MTA2NzpcXHRcXHRoaW5pYzNfY21kcV9yZXNldF9hbGxfY21kX2J1ZihcXHUwMDI2Y21kcXMtXFx1MDAzZWNtZHFbY21kcV90eXBlXSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNjgtXFx0XFx0a2ZyZWUoY21kcXMtXFx1MDAzZWNtZHFbY21kcV90eXBlXS5jbWRfaW5mb3MpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwNzE6XFx0aGluaWMzX2ZyZWVfZGJfYWRkcihod2RldiwgY21kcXMtXFx1MDAzZWNtZHFzX2RiX2Jhc2UpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuYy0xMDcyLVxcdGRlc3Ryb3lfY21kcV93cShod2RldiwgY21kcXMpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwNzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwNzc6Ym9vbCBoaW5pYzNfY21kcV9pZGxlKHN0cnVjdCBoaW5pYzNfY21kcSAqY21kcSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmMtMTA3OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jOjEwNzk6XFx0cmV0dXJuIGhpbmljM193cV9nZXRfdXNlZChcXHUwMDI2Y21kcS1cXHUwMDNld3EpID09IDA7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5jLTEwODAtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjk6I2luY2x1ZGUgXFxcImhpbmljM19od19pbnRmLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEwOiNpbmNsdWRlIFxcXCJoaW5pYzNfd3EuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg9MjU9c3RydWN0IGNtZHFfbGNtZF9idWZkZXNjIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MjY6XFx0c3RydWN0IGhpbmljM19zZ2Ugc2dlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0yNy1cXHRfX2xlNjQgICAgICAgICAgICByc3ZkMjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaD00ND1zdHJ1Y3QgY21kcV9jb21wbGV0aW9uIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtNDUtXFx0dW5pb24ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDo0NjpcXHRcXHRzdHJ1Y3QgaGluaWMzX3NnZSAgICAgICBzZ2U7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTQ3LVxcdFxcdHN0cnVjdCBjbWRxX2RpcmVjdF9yZXNwIGRpcmVjdDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaD03NT1zdGF0aWNfYXNzZXJ0KHNpemVvZihzdHJ1Y3QgY21kcV93cWUpID09IDY0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtNzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjc3OmVudW0gaGluaWMzX2NtZHFfdHlwZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTc4LVxcdEhJTklDM19DTURRX1NZTkMgICAgICA9IDAsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtODEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjgyOmVudW0gaGluaWMzX2NtZHFfc3RhdHVzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtODMtXFx0SElOSUMzX0NNRFFfRU5BQkxFID0gQklUKDApLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDo4NjplbnVtIGhpbmljM19jbWRxX2NtZF90eXBlIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtODctXFx0SElOSUMzX0NNRF9UWVBFX05PTkUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtOTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjk2OnN0cnVjdCBoaW5pYzNfY21kX2J1ZiB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTk3LVxcdHZvaWQgICAgICAgKmJ1ZjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEwMzpzdHJ1Y3QgaGluaWMzX2NtZF9idWZfcGFpciB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEwNDpcXHRzdHJ1Y3QgaGluaWMzX2NtZF9idWYgKmluO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMDU6XFx0c3RydWN0IGhpbmljM19jbWRfYnVmICpvdXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTEwNi19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMDctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEwODpzdHJ1Y3QgaGluaWMzX2NtZHFfY21kX2luZm8ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMDk6XFx0ZW51bSBoaW5pYzNfY21kcV9jbWRfdHlwZSBjbWRfdHlwZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTEwLVxcdHN0cnVjdCBjb21wbGV0aW9uICAgICAgICAgKmRvbmU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTE1LVxcdHU2NCAgICAgICAgICAgICAgICAgICAgICAgY21kcV9tc2dfaWQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjExNjpcXHRzdHJ1Y3QgaGluaWMzX2NtZF9idWYgICAgICpidWZfaW47XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjExNzpcXHRzdHJ1Y3QgaGluaWMzX2NtZF9idWYgICAgICpidWZfb3V0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMTgtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMjA6c3RydWN0IGhpbmljM19jbWRxIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTIxOlxcdHN0cnVjdCBoaW5pYzNfd3EgICAgICAgICAgICB3cTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTIyOlxcdGVudW0gaGluaWMzX2NtZHFfdHlwZSAgICAgICBjbWRxX3R5cGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTEyMy1cXHR1OCAgICAgICAgICAgICAgICAgICAgICAgICAgd3JhcHBlZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xMjUtXFx0c3BpbmxvY2tfdCAgICAgICAgICAgICAgICAgIGNtZHFfbG9jaztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTI2OlxcdHN0cnVjdCBoaW5pYzNfY21kcV9jbWRfaW5mbyAqY21kX2luZm9zO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMjc6XFx0c3RydWN0IGhpbmljM19od2RldiAgICAgICAgICpod2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTI4LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTEyOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTMwOnN0cnVjdCBoaW5pYzNfY21kcXMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxMzE6XFx0c3RydWN0IGhpbmljM19od2RldiAqaHdkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjEzMjpcXHRzdHJ1Y3QgaGluaWMzX2NtZHEgIGNtZHFbSElOSUMzX01BWF9DTURRX1RZUEVTXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTMzLVxcdHN0cnVjdCBkbWFfcG9vbCAgICAgKmNtZF9idWZfcG9vbDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaC0xNDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE0OTppbnQgaGluaWMzX2NtZHFzX2luaXQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNTA6dm9pZCBoaW5pYzNfY21kcXNfZnJlZShzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2Rldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTE1MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTUyOnN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqaGluaWMzX2FsbG9jX2NtZF9idWYoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNTM6dm9pZCBoaW5pYzNfZnJlZV9jbWRfYnVmKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNTQ6XFx0XFx0XFx0IHN0cnVjdCBoaW5pYzNfY21kX2J1ZiAqY21kX2J1Zik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE1NTp2b2lkIGhpbmljM19jbWRxX2NlcV9oYW5kbGVyKHN0cnVjdCBoaW5pYzNfaHdkZXYgKmh3ZGV2LCBfX2xlMzIgY2VxZV9kYXRhKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTU2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNTc6aW50IGhpbmljM19jbWRfYnVmX3BhaXJfaW5pdChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTU4OlxcdFxcdFxcdCAgICAgc3RydWN0IGhpbmljM19jbWRfYnVmX3BhaXIgKnBhaXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNTk6dm9pZCBoaW5pYzNfY21kX2J1Zl9wYWlyX3VuaW5pdChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTYwOlxcdFxcdFxcdFxcdHN0cnVjdCBoaW5pYzNfY21kX2J1Zl9wYWlyICpwYWlyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTYxOmludCBoaW5pYzNfY21kcV9kaXJlY3RfcmVzcChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldiwgdTggbW9kLCB1OCBjbWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2MjpcXHRcXHRcXHQgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4sIF9fbGU2NCAqb3V0X3BhcmFtKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTYzOmludCBoaW5pYzNfY21kcV9kZXRhaWxfcmVzcChzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2RldiwgdTggbW9kLCB1OCBjbWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2NDpcXHRcXHRcXHQgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfaW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2NTpcXHRcXHRcXHQgICAgc3RydWN0IGhpbmljM19jbWRfYnVmICpidWZfb3V0LCBfX2xlNjQgKm91dF9wYXJhbSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oLTE2Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmg6MTY3OnZvaWQgaGluaWMzX2NtZHFfZmx1c2hfc3luY19jbWQoc3RydWN0IGhpbmljM19od2RldiAqaHdkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NtZHEuaDoxNjg6aW50IGhpbmljM19yZWluaXRfY21kcV9jdHh0cyhzdHJ1Y3QgaGluaWMzX2h3ZGV2ICpod2Rldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY21kcS5oOjE2OTpib29sIGhpbmljM19jbWRxX2lkbGUoc3RydWN0IGhpbmljM19jbWRxICpjbWRxKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jbWRxLmgtMTcwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmMtNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYzo4OiNpbmNsdWRlIFxcXCJoaW5pYzNfY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmMtOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYzoxMDppbnQgaGluaWMzX2RtYV96YWxsb2NfY29oZXJlbnRfYWxpZ24oc3RydWN0IGRldmljZSAqZGV2LCB1MzIgc2l6ZSwgdTMyIGFsaWduLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2NvbW1vbi5jLTExLVxcdFxcdFxcdFxcdCAgICAgZ2ZwX3QgZmxhZyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYzoxMjpcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBoaW5pYzNfZG1hX2FkZHJfYWxpZ24gKm1lbV9hbGlnbilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYy0xMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYy00OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYzo0OTp2b2lkIGhpbmljM19kbWFfZnJlZV9jb2hlcmVudF9hbGlnbihzdHJ1Y3QgZGV2aWNlICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfY29tbW9uLmM6NTA6XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBoaW5pYzNfZG1hX2FkZHJfYWxpZ24gKm1lbV9hbGlnbilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYy01MS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19jb21tb24uYy01NS1cXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDM6NTc6MDkuMjM1MjI0ODQ4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Njk0ODEzNzM1MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipXb3J0aEZ1enppbmcgRGVjaXNpb24gZm9yIGhpbmljMyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIHRoZSBkcml2ZXIgaW4gcXVlc3Rpb24gaXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGlzIHRoaXMgYSBzdGFuZGFyZCBkcml2ZXIgZm9yIGEgaGFyZHdhcmUgTklDLCBub3Qgc29tZXRoaW5nIGVtdWxhdGVkIGluIGEgdHlwaWNhbCBRRU1VIHNldHVwPyBZZXMsIEh1YXdlaSdzIEludGVsbGlnZW50IE5JQyAoaGluaWMzKSBpcyBkZWZpbml0ZWx5IGEgcGh5c2ljYWwgUENJZSBjYXJkLiBOb3csIEkgbmVlZCB0byBiZSBzdXJlOyBkb2VzIFFFTVUgaGF2ZSBhbnkgZW11bGF0aW9uIHNwZWNpZmljYWxseSBmb3IgdGhlIGhpbmljMz8gTm8sIHN0YW5kYXJkIFFFTVUgZG9lc24ndCBlbXVsYXRlIGl0LlxuXG5BIHF1aWNrIHRob3VnaHQ7IHdoYXQgYWJvdXQgc3l6a2FsbGVyPyBEb2VzIHN5emthbGxlciBzb21laG93IGZ1enogaXQ/IEFoLCBidXQgaXQgY291bGQgYmUgdGhhdCBzeXprYWxsZXIgdG91Y2hlcyBpdCB2aWEgYSBwc2V1ZG8tZGV2aWNlIG9yIFBDSSBpbmplY3Rpb24sIG9yIHBlcmhhcHMgYW5vdGhlciBtZWFucy4gSSBuZWVkIHRvIGJlIGNhcmVmdWwgaGVyZS4gTGV0J3Mgc2VlLi4uIHRoZSBpbnN0cnVjdGlvbnMgc2F5IHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiB0aGUgcGF0Y2ggaW52b2x2ZXMgY29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyB0aGF0IHJlcXVpcmUgc3BlY2lmaWMsIG5vbi1lbXVsYXRlZCBoYXJkd2FyZS4gSXMgYGhpbmljM2AgYSB2ZW5kb3Itc3BlY2lmaWMgU21hcnROSUMgZHJpdmVyPyBZZXMsIGl0IGlzIVxuXG5MZXQgbWUgY29uZmlybSB0aGF0IHRoZSBjb2RlIGlzICpwdXJlbHkqIHJlbGF0ZWQgdG8gdGhlIGhhcmR3YXJlIGRyaXZlci4gWWVzLCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljM2AgaXMgdGhlIEh1YXdlaSBJbnRlbGxpZ2VudCBOSUMgZHJpdmVyLiBOb3csIHN5emthbGxlciBkb2Vzbid0IGhhdmUgYW4gKmVtdWxhdGlvbiogZm9yIGhpbmljMywgcmlnaHQ/IENvcnJlY3QuXG5cbk9rYXksIGV2ZW4gdGhvdWdoIHN5emthbGxlciBkb2VzIGhhdmUgc29tZSBQQ0kgZnV6emluZyBjYXBhYmlsaXRpZXMsIEkgbmVlZCB0byByZW1lbWJlciB0aGUgaW5zdHJ1Y3Rpb25zOiBcIkNvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgLi4uIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlwiIEJlY2F1c2UgYGhpbmljM2AgZmFsbHMgc3F1YXJlbHkgaW50byB0aGF0IGNhdGVnb3J5LCBJIGhhdmUgdG8gY29uY2x1ZGUgdGhhdCBgV29ydGhGdXp6aW5nPWZhbHNlYC4gSSBhbSBnb2luZyB0byB2ZXJpZnkgdGhlIFBDSWUgbmF0dXJlIG9mIHRoZSBkcml2ZXIgYmVmb3JlIEkgY29tbWl0IHRvIHRoZSBmYWxzZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjEyNjYsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MDgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMDM6NTc6MTYuMTgzMzY0MzM5WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2MjAzOTk3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBjaV9kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfbGxkLmM9NDM2PXN0YXRpYyB2b2lkIGhpbmljM19zaHV0ZG93bihzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX2xsZC5jLTQ0NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM19sbGQuYzo0NDY6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGhpbmljM19kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfbGxkLmMtNDQ3LVxcdC5uYW1lICAgICAgICAgICAgPSBISU5JQzNfTklDX0RSVl9OQU1FLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQwMzo1NzoxNi4yMjk1NzI4OTZaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MTg5ODMzOTM1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZyBEZWNpc2lvbiBmb3IgVGhpcyBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgbG9va3MgbGlrZSBhIFBDSSBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgYGhpbmljM2AgZHJpdmVyLiBJIGNhbiBzZWUgZnJvbSB0aGUgcGF0Y2ggdGhhdCBpdCdzIG1vZGlmeWluZyBzZXZlcmFsIGZ1bmN0aW9uczogYGhpbmljM190eF9tYXBfc2tiYCwgYGhpbmljM190eF9jc3VtYCwgYGhpbmljM190eF9vZmZsb2FkYCwgYW5kIGBoaW5pYzNfc2VuZF9vbmVfc2tiYC4gQWxsIG9mIHRoZXNlIGFyZSB3aXRoaW4gdGhlIGBoaW5pYzNgIGRyaXZlciwgd2hpY2ggaXMsIGFzIEkgcmVjYWxsLCBhIEh1YXdlaS1kZXZlbG9wZWQgU21hcnROSUMgZHJpdmVyLiBBbmQgdGhlIFNtYXJ0TklDIG5hdHVyZSBtZWFucyBpdCdzIHZlbmRvci1zcGVjaWZpYyBhbmQgcmVxdWlyZXMgYSBwaHlzaWNhbCBQQ0llIGNhcmQg4oCTIG5vdCBzb21ldGhpbmcgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cblxuTm93LCBsZXQgbWUganVzdCBkb3VibGUtY2hlY2sgdGhlIGV4Y2x1c2lvbiBjcml0ZXJpYeKApiB5ZXMsIFwiY29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVyc+KApiB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cIlxuXG5UaGF0J3MgaXQsIHBsYWluIGFzIGRheS4gU2luY2UgYGhpbmljM2AgaXMgaW5kZWVkIGEgU21hcnROSUMgZHJpdmVyIGZyb20gYSBzcGVjaWZpYyB2ZW5kb3IsIGFuZCBpdCBuZWVkcyBhIHJlYWwgUENJZSBjYXJkLCBpdCBhYnNvbHV0ZWx5IGZhbGxzIGludG8gdGhlIGV4Y2x1c2lvbiBydWxlLiBUaGVyZWZvcmUsIEknbSBnb2luZyB0byBzZXQgYFdvcnRoRnV6emluZz1mYWxzZWAgZm9yIHRoaXMgcGF0Y2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyMjg0LCJPdXRwdXRUb2tlbnMiOjgxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjIzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDAzOjU3OjIxLjQxOTQwOTE3WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTY5MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgVHggcGF0aCBvZiB0aGUgaGluaWMzIGRyaXZlciAoSHVhd2VpIEludGVsbGlnZW50IE5JQykuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgU21hcnROSUMgUENJZSBkcml2ZXIgdGhhdCByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgbWFraW5nIGl0IHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFR4IHBhdGggb2YgdGhlIGhpbmljMyBkcml2ZXIgKEh1YXdlaSBJbnRlbGxpZ2VudCBOSUMpLiBUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIFNtYXJ0TklDIFBDSWUgZHJpdmVyIHRoYXQgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUsIG1ha2luZyBpdCB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowgr5z4[1] Phase: Running StartedAt: 2026-08-05 03:57:32 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowgr5z4[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-05 03:57:32 +0000 UTC FinishedAt: 2026-08-05 03:57:36 +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,}