Name: series-workflowkmhnq Phase: Failed StartedAt: 2026-08-14 07:22:43 +0000 UTC FinishedAt: 2026-08-14 07:54:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkmhnq[0] Phase: Succeeded StartedAt: 2026-08-14 07:22:43 +0000 UTC FinishedAt: 2026-08-14 07:54:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkmhnq[0].run-triage Phase: Succeeded StartedAt: 2026-08-14 07:22:43 +0000 UTC FinishedAt: 2026-08-14 07:54:26 +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+CgkJCTx0ZD4yMDI2LzA4LzE0IDA3OjU0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcHVyZWx5IHJlZmFjdG9ycyB0aGUgZGVmaW5pdGlvbiBvZiBTTFVCIHN0YXRpc3RpY3MgYXR0cmlidXRlcyB1c2luZyBtYWNyb3MgKFNUQVRfSVRFTVMgYW5kIElURU1fRVhQKSB0byByZWR1Y2UgY29kZSBkdXBsaWNhdGlvbi4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGV4ZWN1dGlvbiBmbG93LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNzo1NDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDNlZjE3MTE1ODVhMzRkNmU3YjRjM2NjMDUyZDg4YmFiZGRlN2ZlZjVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEF1ZyAxNCAwNzo1NDowNyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9tbS9zbHViLmMgYi9tbS9zbHViLmNcbmluZGV4IGIwY2QwNTcyZTJmMjYuLjhkZDI1MDMyZmJhNDUgMTAwNjQ0XG4tLS0gYS9tbS9zbHViLmNcbiYjNDM7JiM0MzsmIzQzOyBiL21tL3NsdWIuY1xuQEAgLTM1OSwzMyAmIzQzOzM1OSw2NCBAQCBlbnVtIGFkZF9tb2RlIHtcbiBcdEFERF9UT19UQUlMLFxuIH07XG4gXG4mIzQzOyNkZWZpbmUgU1RBVF9JVEVNU1x0XHRcdFx0XHRcdFx0XFxcbiYjNDM7XHQvKiBBbGxvY2F0aW9uIGZyb20gcGVyY3B1IHNoZWF2ZXMgKi9cdFx0XHRcdFxcXG4mIzQzO1x0SVRFTV9FWFAoQUxMT0NfRkFTVFBBVEgsIGFsbG9jX2Zhc3RwYXRoKVx0XHRcdFxcXG4mIzQzO1x0LyogQWxsb2NhdGlvbiBmcm9tIHBhcnRpYWwgb3IgbmV3IHNsYWIgKi9cdFx0XHRcXFxuJiM0MztcdElURU1fRVhQKEFMTE9DX1NMT1dQQVRILCBhbGxvY19zbG93cGF0aClcdFx0XHRcXFxuJiM0MztcdC8qIEZyZWUgdG8gcmN1X2ZyZWUgc2hlYWYgKi9cdFx0XHRcdFx0XFxcbiYjNDM7XHRJVEVNX0VYUChGUkVFX1JDVV9TSEVBRiwgZnJlZV9yY3Vfc2hlYWYpXHRcdFx0XFxcbiYjNDM7XHQvKiBGYWlsZWQgdG8gZnJlZSB0byBhIHJjdV9mcmVlIHNoZWFmICovXHRcdFx0XFxcbiYjNDM7XHRJVEVNX0VYUChGUkVFX1JDVV9TSEVBRl9GQUlMLCBmcmVlX3JjdV9zaGVhZl9mYWlsKVx0XHRcXFxuJiM0MztcdC8qIEZyZWUgdG8gcGVyY3B1IHNoZWF2ZXMgKi9cdFx0XHRcdFx0XFxcbiYjNDM7XHRJVEVNX0VYUChGUkVFX0ZBU1RQQVRILCBmcmVlX2Zhc3RwYXRoKVx0XHRcdFx0XFxcbiYjNDM7XHQvKiBGcmVlIHRvIGEgc2xhYiAqL1x0XHRcdFx0XHRcdFxcXG4mIzQzO1x0SVRFTV9FWFAoRlJFRV9TTE9XUEFUSCwgZnJlZV9zbG93cGF0aClcdFx0XHRcdFxcXG4mIzQzO1x0LyogRnJlZWluZyBtb3ZlcyBzbGFiIHRvIHBhcnRpYWwgbGlzdCAqL1x0XHRcdFxcXG4mIzQzO1x0SVRFTV9FWFAoRlJFRV9BRERfUEFSVElBTCwgZnJlZV9hZGRfcGFydGlhbClcdFx0XHRcXFxuJiM0MztcdC8qIEZyZWVpbmcgcmVtb3ZlcyBsYXN0IG9iamVjdCAqL1x0XHRcdFx0XFxcbiYjNDM7XHRJVEVNX0VYUChGUkVFX1JFTU9WRV9QQVJUSUFMLCBmcmVlX3JlbW92ZV9wYXJ0aWFsKVx0XHRcXFxuJiM0MztcdC8qIE5ldyBzbGFiIGFjcXVpcmVkIGZyb20gcGFnZSBhbGxvY2F0b3IgKi9cdFx0XHRcXFxuJiM0MztcdElURU1fRVhQKEFMTE9DX1NMQUIsIGFsbG9jX3NsYWIpXHRcdFx0XHRcXFxuJiM0MztcdC8qIFJlcXVlc3RlZCBub2RlIGRpZmZlcmVudCBmcm9tIGNwdSBzaGVhZiAqL1x0XHRcdFxcXG4mIzQzO1x0SVRFTV9FWFAoQUxMT0NfTk9ERV9NSVNNQVRDSCwgYWxsb2Nfbm9kZV9taXNtYXRjaClcdFx0XFxcbiYjNDM7XHQvKiBTbGFiIGZyZWVkIHRvIHRoZSBwYWdlIGFsbG9jYXRvciAqL1x0XHRcdFx0XFxcbiYjNDM7XHRJVEVNX0VYUChGUkVFX1NMQUIsIGZyZWVfc2xhYilcdFx0XHRcdFx0XFxcbiYjNDM7XHQvKiBOdW1iZXIgb2YgdGltZXMgZmFsbGJhY2sgd2FzIG5lY2Vzc2FyeSAqL1x0XHRcdFxcXG4mIzQzO1x0SVRFTV9FWFAoT1JERVJfRkFMTEJBQ0ssIG9yZGVyX2ZhbGxiYWNrKVx0XHRcdFxcXG4mIzQzO1x0LyogRmFpbHVyZXMgb2Ygc2xhYiBmcmVlbGlzdCB1cGRhdGUgKi9cdFx0XHRcdFxcXG4mIzQzO1x0SVRFTV9FWFAoQ01QWENIR19ET1VCTEVfRkFJTCwgY21weGNoZ19kb3VibGVfZmFpbClcdFx0XFxcbiYjNDM7XHQvKiBPYmplY3RzIGZsdXNoZWQgZnJvbSBhIHNoZWFmICovXHRcdFx0XHRcXFxuJiM0MztcdElURU1fRVhQKFNIRUFGX0ZMVVNILCBzaGVhZl9mbHVzaClcdFx0XHRcdFxcXG4mIzQzO1x0LyogT2JqZWN0cyByZWZpbGxlZCB0byBhIHNoZWFmICovXHRcdFx0XHRcXFxuJiM0MztcdElURU1fRVhQKFNIRUFGX1JFRklMTCwgc2hlYWZfcmVmaWxsKVx0XHRcdFx0XFxcbiYjNDM7XHQvKiBBbGxvY2F0aW9uIG9mIGFuIGVtcHR5IHNoZWFmIGluY2x1ZGluZyBvdmVyc2l6ZWQgb25lcyAqL1x0XFxcbiYjNDM7XHRJVEVNX0VYUChTSEVBRl9BTExPQywgc2hlYWZfYWxsb2MpXHRcdFx0XHRcXFxuJiM0MztcdC8qIEZyZWVpbmcgb2YgYW4gZW1wdHkgc2hlYWYgaW5jbHVkaW5nIG92ZXJzaXplZCBvbmVzICovXHRcXFxuJiM0MztcdElURU1fRVhQKFNIRUFGX0ZSRUUsIHNoZWFmX2ZyZWUpXHRcdFx0XHRcXFxuJiM0MztcdC8qIEdvdCBmdWxsIHNoZWFmIGZyb20gYmFybiAqL1x0XHRcdFx0XHRcXFxuJiM0MztcdElURU1fRVhQKEJBUk5fR0VULCBiYXJuX2dldClcdFx0XHRcdFx0XFxcbiYjNDM7XHQvKiBGYWlsZWQgdG8gZ2V0IGZ1bGwgc2hlYWYgZnJvbSBiYXJuICovXHRcdFx0XFxcbiYjNDM7XHRJVEVNX0VYUChCQVJOX0dFVF9GQUlMLCBiYXJuX2dldF9mYWlsKVx0XHRcdFx0XFxcbiYjNDM7XHQvKiBQdXQgZnVsbCBzaGVhZiB0byBiYXJuICovXHRcdFx0XHRcdFxcXG4mIzQzO1x0SVRFTV9FWFAoQkFSTl9QVVQsIGJhcm5fcHV0KVx0XHRcdFx0XHRcXFxuJiM0MztcdC8qIEZhaWxlZCB0byBwdXQgZnVsbCBzaGVhZiB0byBiYXJuICovXHRcdFx0XHRcXFxuJiM0MztcdElURU1fRVhQKEJBUk5fUFVUX0ZBSUwsIGJhcm5fcHV0X2ZhaWwpXHRcdFx0XHRcXFxuJiM0MztcdC8qIFNoZWFmIHByZWZpbGwgZ3JhYmJlZCB0aGUgc3BhcmUgc2hlYWYgKi9cdFx0XHRcXFxuJiM0MztcdElURU1fRVhQKFNIRUFGX1BSRUZJTExfRkFTVCwgc2hlYWZfcHJlZmlsbF9mYXN0KVx0XHRcXFxuJiM0MztcdC8qIFNoZWFmIHByZWZpbGwgZm91bmQgbm8gc3BhcmUgc2hlYWYgKi9cdFx0XHRcXFxuJiM0MztcdElURU1fRVhQKFNIRUFGX1BSRUZJTExfU0xPVywgc2hlYWZfcHJlZmlsbF9zbG93KVx0XHRcXFxuJiM0MztcdC8qIEFsbG9jYXRpb24gb2Ygb3ZlcnNpemUgc2hlYWYgZm9yIHByZWZpbGwgKi9cdFx0XHRcXFxuJiM0MztcdElURU1fRVhQKFNIRUFGX1BSRUZJTExfT1ZFUlNJWkUsIHNoZWFmX3ByZWZpbGxfb3ZlcnNpemUpXHRcXFxuJiM0MztcdC8qIFNoZWFmIHJldHVybiByZWF0dGFjaGVkIHNwYXJlIHNoZWFmICovXHRcdFx0XFxcbiYjNDM7XHRJVEVNX0VYUChTSEVBRl9SRVRVUk5fRkFTVCwgc2hlYWZfcmV0dXJuX2Zhc3QpXHRcdFx0XFxcbiYjNDM7XHQvKiBTaGVhZiByZXR1cm4gY291bGQgbm90IHJlYXR0YWNoIHNwYXJlICovXHRcdFx0XFxcbiYjNDM7XHRJVEVNX0VYUChTSEVBRl9SRVRVUk5fU0xPVywgc2hlYWZfcmV0dXJuX3Nsb3cpXG4mIzQzO1xuIGVudW0gc3RhdF9pdGVtIHtcbi1cdEFMTE9DX0ZBU1RQQVRILFx0XHQvKiBBbGxvY2F0aW9uIGZyb20gcGVyY3B1IHNoZWF2ZXMgKi9cbi1cdEFMTE9DX1NMT1dQQVRILFx0XHQvKiBBbGxvY2F0aW9uIGZyb20gcGFydGlhbCBvciBuZXcgc2xhYiAqL1xuLVx0RlJFRV9SQ1VfU0hFQUYsXHRcdC8qIEZyZWUgdG8gcmN1X2ZyZWUgc2hlYWYgKi9cbi1cdEZSRUVfUkNVX1NIRUFGX0ZBSUwsXHQvKiBGYWlsZWQgdG8gZnJlZSB0byBhIHJjdV9mcmVlIHNoZWFmICovXG4tXHRGUkVFX0ZBU1RQQVRILFx0XHQvKiBGcmVlIHRvIHBlcmNwdSBzaGVhdmVzICovXG4tXHRGUkVFX1NMT1dQQVRILFx0XHQvKiBGcmVlIHRvIGEgc2xhYiAqL1xuLVx0RlJFRV9BRERfUEFSVElBTCxcdC8qIEZyZWVpbmcgbW92ZXMgc2xhYiB0byBwYXJ0aWFsIGxpc3QgKi9cbi1cdEZSRUVfUkVNT1ZFX1BBUlRJQUwsXHQvKiBGcmVlaW5nIHJlbW92ZXMgbGFzdCBvYmplY3QgKi9cbi1cdEFMTE9DX1NMQUIsXHRcdC8qIE5ldyBzbGFiIGFjcXVpcmVkIGZyb20gcGFnZSBhbGxvY2F0b3IgKi9cbi1cdEFMTE9DX05PREVfTUlTTUFUQ0gsXHQvKiBSZXF1ZXN0ZWQgbm9kZSBkaWZmZXJlbnQgZnJvbSBjcHUgc2hlYWYgKi9cbi1cdEZSRUVfU0xBQixcdFx0LyogU2xhYiBmcmVlZCB0byB0aGUgcGFnZSBhbGxvY2F0b3IgKi9cbi1cdE9SREVSX0ZBTExCQUNLLFx0XHQvKiBOdW1iZXIgb2YgdGltZXMgZmFsbGJhY2sgd2FzIG5lY2Vzc2FyeSAqL1xuLVx0Q01QWENIR19ET1VCTEVfRkFJTCxcdC8qIEZhaWx1cmVzIG9mIHNsYWIgZnJlZWxpc3QgdXBkYXRlICovXG4tXHRTSEVBRl9GTFVTSCxcdFx0LyogT2JqZWN0cyBmbHVzaGVkIGZyb20gYSBzaGVhZiAqL1xuLVx0U0hFQUZfUkVGSUxMLFx0XHQvKiBPYmplY3RzIHJlZmlsbGVkIHRvIGEgc2hlYWYgKi9cbi1cdFNIRUFGX0FMTE9DLFx0XHQvKiBBbGxvY2F0aW9uIG9mIGFuIGVtcHR5IHNoZWFmIGluY2x1ZGluZyBvdmVyc2l6ZWQgb25lcyAqL1xuLVx0U0hFQUZfRlJFRSxcdFx0LyogRnJlZWluZyBvZiBhbiBlbXB0eSBzaGVhZiBpbmNsdWRpbmcgb3ZlcnNpemVkIG9uZXMgKi9cbi1cdEJBUk5fR0VULFx0XHQvKiBHb3QgZnVsbCBzaGVhZiBmcm9tIGJhcm4gKi9cbi1cdEJBUk5fR0VUX0ZBSUwsXHRcdC8qIEZhaWxlZCB0byBnZXQgZnVsbCBzaGVhZiBmcm9tIGJhcm4gKi9cbi1cdEJBUk5fUFVULFx0XHQvKiBQdXQgZnVsbCBzaGVhZiB0byBiYXJuICovXG4tXHRCQVJOX1BVVF9GQUlMLFx0XHQvKiBGYWlsZWQgdG8gcHV0IGZ1bGwgc2hlYWYgdG8gYmFybiAqL1xuLVx0U0hFQUZfUFJFRklMTF9GQVNULFx0LyogU2hlYWYgcHJlZmlsbCBncmFiYmVkIHRoZSBzcGFyZSBzaGVhZiAqL1xuLVx0U0hFQUZfUFJFRklMTF9TTE9XLFx0LyogU2hlYWYgcHJlZmlsbCBmb3VuZCBubyBzcGFyZSBzaGVhZiAqL1xuLVx0U0hFQUZfUFJFRklMTF9PVkVSU0laRSxcdC8qIEFsbG9jYXRpb24gb2Ygb3ZlcnNpemUgc2hlYWYgZm9yIHByZWZpbGwgKi9cbi1cdFNIRUFGX1JFVFVSTl9GQVNULFx0LyogU2hlYWYgcmV0dXJuIHJlYXR0YWNoZWQgc3BhcmUgc2hlYWYgKi9cbi1cdFNIRUFGX1JFVFVSTl9TTE9XLFx0LyogU2hlYWYgcmV0dXJuIGNvdWxkIG5vdCByZWF0dGFjaCBzcGFyZSAqL1xuJiM0MzsjZGVmaW5lIElURU1fRVhQKG5hbWUsIHVudXNlZCkgbmFtZSxcbiYjNDM7XHRTVEFUX0lURU1TXG4mIzQzOyN1bmRlZiBJVEVNX0VYUFxuIFx0TlJfU0xVQl9TVEFUX0lURU1TXG4gfTtcbiBcbkBAIC05NTEyLDM0ICYjNDM7OTU0MywxMiBAQCBzdGF0aWMgc3NpemVfdCB0ZXh0IyNfc3RvcmUoc3RydWN0IGttZW1fY2FjaGUgKnMsXHRcdFxcXG4gXHRjbGVhcl9zdGF0KHMsIHNpKTtcdFx0XHRcdFx0XFxcbiBcdHJldHVybiBsZW5ndGg7XHRcdFx0XHRcdFx0XFxcbiB9XHRcdFx0XHRcdFx0XHRcdFxcXG4tU0xBQl9BVFRSKHRleHQpO1x0XHRcdFx0XHRcdFxcXG4tXG4tU1RBVF9BVFRSKEFMTE9DX0ZBU1RQQVRILCBhbGxvY19mYXN0cGF0aCk7XG4tU1RBVF9BVFRSKEFMTE9DX1NMT1dQQVRILCBhbGxvY19zbG93cGF0aCk7XG4tU1RBVF9BVFRSKEZSRUVfUkNVX1NIRUFGLCBmcmVlX3JjdV9zaGVhZik7XG4tU1RBVF9BVFRSKEZSRUVfUkNVX1NIRUFGX0ZBSUwsIGZyZWVfcmN1X3NoZWFmX2ZhaWwpO1xuLVNUQVRfQVRUUihGUkVFX0ZBU1RQQVRILCBmcmVlX2Zhc3RwYXRoKTtcbi1TVEFUX0FUVFIoRlJFRV9TTE9XUEFUSCwgZnJlZV9zbG93cGF0aCk7XG4tU1RBVF9BVFRSKEZSRUVfQUREX1BBUlRJQUwsIGZyZWVfYWRkX3BhcnRpYWwpO1xuLVNUQVRfQVRUUihGUkVFX1JFTU9WRV9QQVJUSUFMLCBmcmVlX3JlbW92ZV9wYXJ0aWFsKTtcbi1TVEFUX0FUVFIoQUxMT0NfU0xBQiwgYWxsb2Nfc2xhYik7XG4tU1RBVF9BVFRSKEFMTE9DX05PREVfTUlTTUFUQ0gsIGFsbG9jX25vZGVfbWlzbWF0Y2gpO1xuLVNUQVRfQVRUUihGUkVFX1NMQUIsIGZyZWVfc2xhYik7XG4tU1RBVF9BVFRSKE9SREVSX0ZBTExCQUNLLCBvcmRlcl9mYWxsYmFjayk7XG4tU1RBVF9BVFRSKENNUFhDSEdfRE9VQkxFX0ZBSUwsIGNtcHhjaGdfZG91YmxlX2ZhaWwpO1xuLVNUQVRfQVRUUihTSEVBRl9GTFVTSCwgc2hlYWZfZmx1c2gpO1xuLVNUQVRfQVRUUihTSEVBRl9SRUZJTEwsIHNoZWFmX3JlZmlsbCk7XG4tU1RBVF9BVFRSKFNIRUFGX0FMTE9DLCBzaGVhZl9hbGxvYyk7XG4tU1RBVF9BVFRSKFNIRUFGX0ZSRUUsIHNoZWFmX2ZyZWUpO1xuLVNUQVRfQVRUUihCQVJOX0dFVCwgYmFybl9nZXQpO1xuLVNUQVRfQVRUUihCQVJOX0dFVF9GQUlMLCBiYXJuX2dldF9mYWlsKTtcbi1TVEFUX0FUVFIoQkFSTl9QVVQsIGJhcm5fcHV0KTtcbi1TVEFUX0FUVFIoQkFSTl9QVVRfRkFJTCwgYmFybl9wdXRfZmFpbCk7XG4tU1RBVF9BVFRSKFNIRUFGX1BSRUZJTExfRkFTVCwgc2hlYWZfcHJlZmlsbF9mYXN0KTtcbi1TVEFUX0FUVFIoU0hFQUZfUFJFRklMTF9TTE9XLCBzaGVhZl9wcmVmaWxsX3Nsb3cpO1xuLVNUQVRfQVRUUihTSEVBRl9QUkVGSUxMX09WRVJTSVpFLCBzaGVhZl9wcmVmaWxsX292ZXJzaXplKTtcbi1TVEFUX0FUVFIoU0hFQUZfUkVUVVJOX0ZBU1QsIHNoZWFmX3JldHVybl9mYXN0KTtcbi1TVEFUX0FUVFIoU0hFQUZfUkVUVVJOX1NMT1csIHNoZWFmX3JldHVybl9zbG93KTtcbiYjNDM7U0xBQl9BVFRSKHRleHQpO1xuJiM0MztcbiYjNDM7I2RlZmluZSBJVEVNX0VYUChuYW1lLCB0ZXh0KSBTVEFUX0FUVFIobmFtZSwgdGV4dClcbiYjNDM7U1RBVF9JVEVNU1xuJiM0MzsjdW5kZWYgSVRFTV9FWFBcbiYjNDM7XG4gI2VuZGlmXHQvKiBDT05GSUdfU0xVQl9TVEFUUyAqL1xuIFxuICNpZmRlZiBDT05GSUdfS0ZFTkNFXG5AQCAtOTYwMiwzMiAmIzQzOzk2MTEsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqY29uc3Qgc2xhYl9hdHRyc1tdID0ge1xuIFx0XHUwMDI2cmVtb3RlX25vZGVfZGVmcmFnX3JhdGlvX2F0dHIuYXR0cixcbiAjZW5kaWZcbiAjaWZkZWYgQ09ORklHX1NMVUJfU1RBVFNcbi1cdFx1MDAyNmFsbG9jX2Zhc3RwYXRoX2F0dHIuYXR0cixcbi1cdFx1MDAyNmFsbG9jX3Nsb3dwYXRoX2F0dHIuYXR0cixcbi1cdFx1MDAyNmZyZWVfcmN1X3NoZWFmX2F0dHIuYXR0cixcbi1cdFx1MDAyNmZyZWVfcmN1X3NoZWFmX2ZhaWxfYXR0ci5hdHRyLFxuLVx0XHUwMDI2ZnJlZV9mYXN0cGF0aF9hdHRyLmF0dHIsXG4tXHRcdTAwMjZmcmVlX3Nsb3dwYXRoX2F0dHIuYXR0cixcbi1cdFx1MDAyNmZyZWVfYWRkX3BhcnRpYWxfYXR0ci5hdHRyLFxuLVx0XHUwMDI2ZnJlZV9yZW1vdmVfcGFydGlhbF9hdHRyLmF0dHIsXG4tXHRcdTAwMjZhbGxvY19zbGFiX2F0dHIuYXR0cixcbi1cdFx1MDAyNmFsbG9jX25vZGVfbWlzbWF0Y2hfYXR0ci5hdHRyLFxuLVx0XHUwMDI2ZnJlZV9zbGFiX2F0dHIuYXR0cixcbi1cdFx1MDAyNm9yZGVyX2ZhbGxiYWNrX2F0dHIuYXR0cixcbi1cdFx1MDAyNmNtcHhjaGdfZG91YmxlX2ZhaWxfYXR0ci5hdHRyLFxuLVx0XHUwMDI2c2hlYWZfZmx1c2hfYXR0ci5hdHRyLFxuLVx0XHUwMDI2c2hlYWZfcmVmaWxsX2F0dHIuYXR0cixcbi1cdFx1MDAyNnNoZWFmX2FsbG9jX2F0dHIuYXR0cixcbi1cdFx1MDAyNnNoZWFmX2ZyZWVfYXR0ci5hdHRyLFxuLVx0XHUwMDI2YmFybl9nZXRfYXR0ci5hdHRyLFxuLVx0XHUwMDI2YmFybl9nZXRfZmFpbF9hdHRyLmF0dHIsXG4tXHRcdTAwMjZiYXJuX3B1dF9hdHRyLmF0dHIsXG4tXHRcdTAwMjZiYXJuX3B1dF9mYWlsX2F0dHIuYXR0cixcbi1cdFx1MDAyNnNoZWFmX3ByZWZpbGxfZmFzdF9hdHRyLmF0dHIsXG4tXHRcdTAwMjZzaGVhZl9wcmVmaWxsX3Nsb3dfYXR0ci5hdHRyLFxuLVx0XHUwMDI2c2hlYWZfcHJlZmlsbF9vdmVyc2l6ZV9hdHRyLmF0dHIsXG4tXHRcdTAwMjZzaGVhZl9yZXR1cm5fZmFzdF9hdHRyLmF0dHIsXG4tXHRcdTAwMjZzaGVhZl9yZXR1cm5fc2xvd19hdHRyLmF0dHIsXG4mIzQzOyNkZWZpbmUgSVRFTV9FWFAodW51c2VkLCB0ZXh0KSBcdTAwMjZ0ZXh0IyNfYXR0ci5hdHRyLFxuJiM0MztcdFNUQVRfSVRFTVNcbiYjNDM7I3VuZGVmIElURU1fRVhQXG4gI2VuZGlmXG4gI2lmZGVmIENPTkZJR19GQUlMU0xBQlxuIFx0XHUwMDI2ZmFpbHNsYWJfYXR0ci5hdHRyLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE0IDA3OjU0PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBwdXJlbHkgcmVmYWN0b3JzIHRoZSBkZWZpbml0aW9uIG9mIFNMVUIgc3RhdGlzdGljcyBhdHRyaWJ1dGVzIHVzaW5nIG1hY3JvcyAoU1RBVF9JVEVNUyBhbmQgSVRFTV9FWFApIHRvIHJlZHVjZSBjb2RlIGR1cGxpY2F0aW9uLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgZXhlY3V0aW9uIGZsb3cuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgM2VmMTcxMTU4NWEzNGQ2ZTdiNGMzY2MwNTJkODhiYWJkZGU3ZmVmNQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgQXVnIDE0IDA3OjU0OjA3IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbW0vc2x1Yi5jIGIvbW0vc2x1Yi5jCmluZGV4IGIwY2QwNTcyZTJmMjYuLjhkZDI1MDMyZmJhNDUgMTAwNjQ0Ci0tLSBhL21tL3NsdWIuYwomIzQzOyYjNDM7JiM0MzsgYi9tbS9zbHViLmMKQEAgLTM1OSwzMyAmIzQzOzM1OSw2NCBAQCBlbnVtIGFkZF9tb2RlIHsKIAlBRERfVE9fVEFJTCwKIH07CiAKJiM0MzsjZGVmaW5lIFNUQVRfSVRFTVMJCQkJCQkJXAomIzQzOwkvKiBBbGxvY2F0aW9uIGZyb20gcGVyY3B1IHNoZWF2ZXMgKi8JCQkJXAomIzQzOwlJVEVNX0VYUChBTExPQ19GQVNUUEFUSCwgYWxsb2NfZmFzdHBhdGgpCQkJXAomIzQzOwkvKiBBbGxvY2F0aW9uIGZyb20gcGFydGlhbCBvciBuZXcgc2xhYiAqLwkJCVwKJiM0MzsJSVRFTV9FWFAoQUxMT0NfU0xPV1BBVEgsIGFsbG9jX3Nsb3dwYXRoKQkJCVwKJiM0MzsJLyogRnJlZSB0byByY3VfZnJlZSBzaGVhZiAqLwkJCQkJXAomIzQzOwlJVEVNX0VYUChGUkVFX1JDVV9TSEVBRiwgZnJlZV9yY3Vfc2hlYWYpCQkJXAomIzQzOwkvKiBGYWlsZWQgdG8gZnJlZSB0byBhIHJjdV9mcmVlIHNoZWFmICovCQkJXAomIzQzOwlJVEVNX0VYUChGUkVFX1JDVV9TSEVBRl9GQUlMLCBmcmVlX3JjdV9zaGVhZl9mYWlsKQkJXAomIzQzOwkvKiBGcmVlIHRvIHBlcmNwdSBzaGVhdmVzICovCQkJCQlcCiYjNDM7CUlURU1fRVhQKEZSRUVfRkFTVFBBVEgsIGZyZWVfZmFzdHBhdGgpCQkJCVwKJiM0MzsJLyogRnJlZSB0byBhIHNsYWIgKi8JCQkJCQlcCiYjNDM7CUlURU1fRVhQKEZSRUVfU0xPV1BBVEgsIGZyZWVfc2xvd3BhdGgpCQkJCVwKJiM0MzsJLyogRnJlZWluZyBtb3ZlcyBzbGFiIHRvIHBhcnRpYWwgbGlzdCAqLwkJCVwKJiM0MzsJSVRFTV9FWFAoRlJFRV9BRERfUEFSVElBTCwgZnJlZV9hZGRfcGFydGlhbCkJCQlcCiYjNDM7CS8qIEZyZWVpbmcgcmVtb3ZlcyBsYXN0IG9iamVjdCAqLwkJCQlcCiYjNDM7CUlURU1fRVhQKEZSRUVfUkVNT1ZFX1BBUlRJQUwsIGZyZWVfcmVtb3ZlX3BhcnRpYWwpCQlcCiYjNDM7CS8qIE5ldyBzbGFiIGFjcXVpcmVkIGZyb20gcGFnZSBhbGxvY2F0b3IgKi8JCQlcCiYjNDM7CUlURU1fRVhQKEFMTE9DX1NMQUIsIGFsbG9jX3NsYWIpCQkJCVwKJiM0MzsJLyogUmVxdWVzdGVkIG5vZGUgZGlmZmVyZW50IGZyb20gY3B1IHNoZWFmICovCQkJXAomIzQzOwlJVEVNX0VYUChBTExPQ19OT0RFX01JU01BVENILCBhbGxvY19ub2RlX21pc21hdGNoKQkJXAomIzQzOwkvKiBTbGFiIGZyZWVkIHRvIHRoZSBwYWdlIGFsbG9jYXRvciAqLwkJCQlcCiYjNDM7CUlURU1fRVhQKEZSRUVfU0xBQiwgZnJlZV9zbGFiKQkJCQkJXAomIzQzOwkvKiBOdW1iZXIgb2YgdGltZXMgZmFsbGJhY2sgd2FzIG5lY2Vzc2FyeSAqLwkJCVwKJiM0MzsJSVRFTV9FWFAoT1JERVJfRkFMTEJBQ0ssIG9yZGVyX2ZhbGxiYWNrKQkJCVwKJiM0MzsJLyogRmFpbHVyZXMgb2Ygc2xhYiBmcmVlbGlzdCB1cGRhdGUgKi8JCQkJXAomIzQzOwlJVEVNX0VYUChDTVBYQ0hHX0RPVUJMRV9GQUlMLCBjbXB4Y2hnX2RvdWJsZV9mYWlsKQkJXAomIzQzOwkvKiBPYmplY3RzIGZsdXNoZWQgZnJvbSBhIHNoZWFmICovCQkJCVwKJiM0MzsJSVRFTV9FWFAoU0hFQUZfRkxVU0gsIHNoZWFmX2ZsdXNoKQkJCQlcCiYjNDM7CS8qIE9iamVjdHMgcmVmaWxsZWQgdG8gYSBzaGVhZiAqLwkJCQlcCiYjNDM7CUlURU1fRVhQKFNIRUFGX1JFRklMTCwgc2hlYWZfcmVmaWxsKQkJCQlcCiYjNDM7CS8qIEFsbG9jYXRpb24gb2YgYW4gZW1wdHkgc2hlYWYgaW5jbHVkaW5nIG92ZXJzaXplZCBvbmVzICovCVwKJiM0MzsJSVRFTV9FWFAoU0hFQUZfQUxMT0MsIHNoZWFmX2FsbG9jKQkJCQlcCiYjNDM7CS8qIEZyZWVpbmcgb2YgYW4gZW1wdHkgc2hlYWYgaW5jbHVkaW5nIG92ZXJzaXplZCBvbmVzICovCVwKJiM0MzsJSVRFTV9FWFAoU0hFQUZfRlJFRSwgc2hlYWZfZnJlZSkJCQkJXAomIzQzOwkvKiBHb3QgZnVsbCBzaGVhZiBmcm9tIGJhcm4gKi8JCQkJCVwKJiM0MzsJSVRFTV9FWFAoQkFSTl9HRVQsIGJhcm5fZ2V0KQkJCQkJXAomIzQzOwkvKiBGYWlsZWQgdG8gZ2V0IGZ1bGwgc2hlYWYgZnJvbSBiYXJuICovCQkJXAomIzQzOwlJVEVNX0VYUChCQVJOX0dFVF9GQUlMLCBiYXJuX2dldF9mYWlsKQkJCQlcCiYjNDM7CS8qIFB1dCBmdWxsIHNoZWFmIHRvIGJhcm4gKi8JCQkJCVwKJiM0MzsJSVRFTV9FWFAoQkFSTl9QVVQsIGJhcm5fcHV0KQkJCQkJXAomIzQzOwkvKiBGYWlsZWQgdG8gcHV0IGZ1bGwgc2hlYWYgdG8gYmFybiAqLwkJCQlcCiYjNDM7CUlURU1fRVhQKEJBUk5fUFVUX0ZBSUwsIGJhcm5fcHV0X2ZhaWwpCQkJCVwKJiM0MzsJLyogU2hlYWYgcHJlZmlsbCBncmFiYmVkIHRoZSBzcGFyZSBzaGVhZiAqLwkJCVwKJiM0MzsJSVRFTV9FWFAoU0hFQUZfUFJFRklMTF9GQVNULCBzaGVhZl9wcmVmaWxsX2Zhc3QpCQlcCiYjNDM7CS8qIFNoZWFmIHByZWZpbGwgZm91bmQgbm8gc3BhcmUgc2hlYWYgKi8JCQlcCiYjNDM7CUlURU1fRVhQKFNIRUFGX1BSRUZJTExfU0xPVywgc2hlYWZfcHJlZmlsbF9zbG93KQkJXAomIzQzOwkvKiBBbGxvY2F0aW9uIG9mIG92ZXJzaXplIHNoZWFmIGZvciBwcmVmaWxsICovCQkJXAomIzQzOwlJVEVNX0VYUChTSEVBRl9QUkVGSUxMX09WRVJTSVpFLCBzaGVhZl9wcmVmaWxsX292ZXJzaXplKQlcCiYjNDM7CS8qIFNoZWFmIHJldHVybiByZWF0dGFjaGVkIHNwYXJlIHNoZWFmICovCQkJXAomIzQzOwlJVEVNX0VYUChTSEVBRl9SRVRVUk5fRkFTVCwgc2hlYWZfcmV0dXJuX2Zhc3QpCQkJXAomIzQzOwkvKiBTaGVhZiByZXR1cm4gY291bGQgbm90IHJlYXR0YWNoIHNwYXJlICovCQkJXAomIzQzOwlJVEVNX0VYUChTSEVBRl9SRVRVUk5fU0xPVywgc2hlYWZfcmV0dXJuX3Nsb3cpCiYjNDM7CiBlbnVtIHN0YXRfaXRlbSB7Ci0JQUxMT0NfRkFTVFBBVEgsCQkvKiBBbGxvY2F0aW9uIGZyb20gcGVyY3B1IHNoZWF2ZXMgKi8KLQlBTExPQ19TTE9XUEFUSCwJCS8qIEFsbG9jYXRpb24gZnJvbSBwYXJ0aWFsIG9yIG5ldyBzbGFiICovCi0JRlJFRV9SQ1VfU0hFQUYsCQkvKiBGcmVlIHRvIHJjdV9mcmVlIHNoZWFmICovCi0JRlJFRV9SQ1VfU0hFQUZfRkFJTCwJLyogRmFpbGVkIHRvIGZyZWUgdG8gYSByY3VfZnJlZSBzaGVhZiAqLwotCUZSRUVfRkFTVFBBVEgsCQkvKiBGcmVlIHRvIHBlcmNwdSBzaGVhdmVzICovCi0JRlJFRV9TTE9XUEFUSCwJCS8qIEZyZWUgdG8gYSBzbGFiICovCi0JRlJFRV9BRERfUEFSVElBTCwJLyogRnJlZWluZyBtb3ZlcyBzbGFiIHRvIHBhcnRpYWwgbGlzdCAqLwotCUZSRUVfUkVNT1ZFX1BBUlRJQUwsCS8qIEZyZWVpbmcgcmVtb3ZlcyBsYXN0IG9iamVjdCAqLwotCUFMTE9DX1NMQUIsCQkvKiBOZXcgc2xhYiBhY3F1aXJlZCBmcm9tIHBhZ2UgYWxsb2NhdG9yICovCi0JQUxMT0NfTk9ERV9NSVNNQVRDSCwJLyogUmVxdWVzdGVkIG5vZGUgZGlmZmVyZW50IGZyb20gY3B1IHNoZWFmICovCi0JRlJFRV9TTEFCLAkJLyogU2xhYiBmcmVlZCB0byB0aGUgcGFnZSBhbGxvY2F0b3IgKi8KLQlPUkRFUl9GQUxMQkFDSywJCS8qIE51bWJlciBvZiB0aW1lcyBmYWxsYmFjayB3YXMgbmVjZXNzYXJ5ICovCi0JQ01QWENIR19ET1VCTEVfRkFJTCwJLyogRmFpbHVyZXMgb2Ygc2xhYiBmcmVlbGlzdCB1cGRhdGUgKi8KLQlTSEVBRl9GTFVTSCwJCS8qIE9iamVjdHMgZmx1c2hlZCBmcm9tIGEgc2hlYWYgKi8KLQlTSEVBRl9SRUZJTEwsCQkvKiBPYmplY3RzIHJlZmlsbGVkIHRvIGEgc2hlYWYgKi8KLQlTSEVBRl9BTExPQywJCS8qIEFsbG9jYXRpb24gb2YgYW4gZW1wdHkgc2hlYWYgaW5jbHVkaW5nIG92ZXJzaXplZCBvbmVzICovCi0JU0hFQUZfRlJFRSwJCS8qIEZyZWVpbmcgb2YgYW4gZW1wdHkgc2hlYWYgaW5jbHVkaW5nIG92ZXJzaXplZCBvbmVzICovCi0JQkFSTl9HRVQsCQkvKiBHb3QgZnVsbCBzaGVhZiBmcm9tIGJhcm4gKi8KLQlCQVJOX0dFVF9GQUlMLAkJLyogRmFpbGVkIHRvIGdldCBmdWxsIHNoZWFmIGZyb20gYmFybiAqLwotCUJBUk5fUFVULAkJLyogUHV0IGZ1bGwgc2hlYWYgdG8gYmFybiAqLwotCUJBUk5fUFVUX0ZBSUwsCQkvKiBGYWlsZWQgdG8gcHV0IGZ1bGwgc2hlYWYgdG8gYmFybiAqLwotCVNIRUFGX1BSRUZJTExfRkFTVCwJLyogU2hlYWYgcHJlZmlsbCBncmFiYmVkIHRoZSBzcGFyZSBzaGVhZiAqLwotCVNIRUFGX1BSRUZJTExfU0xPVywJLyogU2hlYWYgcHJlZmlsbCBmb3VuZCBubyBzcGFyZSBzaGVhZiAqLwotCVNIRUFGX1BSRUZJTExfT1ZFUlNJWkUsCS8qIEFsbG9jYXRpb24gb2Ygb3ZlcnNpemUgc2hlYWYgZm9yIHByZWZpbGwgKi8KLQlTSEVBRl9SRVRVUk5fRkFTVCwJLyogU2hlYWYgcmV0dXJuIHJlYXR0YWNoZWQgc3BhcmUgc2hlYWYgKi8KLQlTSEVBRl9SRVRVUk5fU0xPVywJLyogU2hlYWYgcmV0dXJuIGNvdWxkIG5vdCByZWF0dGFjaCBzcGFyZSAqLwomIzQzOyNkZWZpbmUgSVRFTV9FWFAobmFtZSwgdW51c2VkKSBuYW1lLAomIzQzOwlTVEFUX0lURU1TCiYjNDM7I3VuZGVmIElURU1fRVhQCiAJTlJfU0xVQl9TVEFUX0lURU1TCiB9OwogCkBAIC05NTEyLDM0ICYjNDM7OTU0MywxMiBAQCBzdGF0aWMgc3NpemVfdCB0ZXh0IyNfc3RvcmUoc3RydWN0IGttZW1fY2FjaGUgKnMsCQlcCiAJY2xlYXJfc3RhdChzLCBzaSk7CQkJCQlcCiAJcmV0dXJuIGxlbmd0aDsJCQkJCQlcCiB9CQkJCQkJCQlcCi1TTEFCX0FUVFIodGV4dCk7CQkJCQkJXAotCi1TVEFUX0FUVFIoQUxMT0NfRkFTVFBBVEgsIGFsbG9jX2Zhc3RwYXRoKTsKLVNUQVRfQVRUUihBTExPQ19TTE9XUEFUSCwgYWxsb2Nfc2xvd3BhdGgpOwotU1RBVF9BVFRSKEZSRUVfUkNVX1NIRUFGLCBmcmVlX3JjdV9zaGVhZik7Ci1TVEFUX0FUVFIoRlJFRV9SQ1VfU0hFQUZfRkFJTCwgZnJlZV9yY3Vfc2hlYWZfZmFpbCk7Ci1TVEFUX0FUVFIoRlJFRV9GQVNUUEFUSCwgZnJlZV9mYXN0cGF0aCk7Ci1TVEFUX0FUVFIoRlJFRV9TTE9XUEFUSCwgZnJlZV9zbG93cGF0aCk7Ci1TVEFUX0FUVFIoRlJFRV9BRERfUEFSVElBTCwgZnJlZV9hZGRfcGFydGlhbCk7Ci1TVEFUX0FUVFIoRlJFRV9SRU1PVkVfUEFSVElBTCwgZnJlZV9yZW1vdmVfcGFydGlhbCk7Ci1TVEFUX0FUVFIoQUxMT0NfU0xBQiwgYWxsb2Nfc2xhYik7Ci1TVEFUX0FUVFIoQUxMT0NfTk9ERV9NSVNNQVRDSCwgYWxsb2Nfbm9kZV9taXNtYXRjaCk7Ci1TVEFUX0FUVFIoRlJFRV9TTEFCLCBmcmVlX3NsYWIpOwotU1RBVF9BVFRSKE9SREVSX0ZBTExCQUNLLCBvcmRlcl9mYWxsYmFjayk7Ci1TVEFUX0FUVFIoQ01QWENIR19ET1VCTEVfRkFJTCwgY21weGNoZ19kb3VibGVfZmFpbCk7Ci1TVEFUX0FUVFIoU0hFQUZfRkxVU0gsIHNoZWFmX2ZsdXNoKTsKLVNUQVRfQVRUUihTSEVBRl9SRUZJTEwsIHNoZWFmX3JlZmlsbCk7Ci1TVEFUX0FUVFIoU0hFQUZfQUxMT0MsIHNoZWFmX2FsbG9jKTsKLVNUQVRfQVRUUihTSEVBRl9GUkVFLCBzaGVhZl9mcmVlKTsKLVNUQVRfQVRUUihCQVJOX0dFVCwgYmFybl9nZXQpOwotU1RBVF9BVFRSKEJBUk5fR0VUX0ZBSUwsIGJhcm5fZ2V0X2ZhaWwpOwotU1RBVF9BVFRSKEJBUk5fUFVULCBiYXJuX3B1dCk7Ci1TVEFUX0FUVFIoQkFSTl9QVVRfRkFJTCwgYmFybl9wdXRfZmFpbCk7Ci1TVEFUX0FUVFIoU0hFQUZfUFJFRklMTF9GQVNULCBzaGVhZl9wcmVmaWxsX2Zhc3QpOwotU1RBVF9BVFRSKFNIRUFGX1BSRUZJTExfU0xPVywgc2hlYWZfcHJlZmlsbF9zbG93KTsKLVNUQVRfQVRUUihTSEVBRl9QUkVGSUxMX09WRVJTSVpFLCBzaGVhZl9wcmVmaWxsX292ZXJzaXplKTsKLVNUQVRfQVRUUihTSEVBRl9SRVRVUk5fRkFTVCwgc2hlYWZfcmV0dXJuX2Zhc3QpOwotU1RBVF9BVFRSKFNIRUFGX1JFVFVSTl9TTE9XLCBzaGVhZl9yZXR1cm5fc2xvdyk7CiYjNDM7U0xBQl9BVFRSKHRleHQpOwomIzQzOwomIzQzOyNkZWZpbmUgSVRFTV9FWFAobmFtZSwgdGV4dCkgU1RBVF9BVFRSKG5hbWUsIHRleHQpCiYjNDM7U1RBVF9JVEVNUwomIzQzOyN1bmRlZiBJVEVNX0VYUAomIzQzOwogI2VuZGlmCS8qIENPTkZJR19TTFVCX1NUQVRTICovCiAKICNpZmRlZiBDT05GSUdfS0ZFTkNFCkBAIC05NjAyLDMyICYjNDM7OTYxMSw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICpjb25zdCBzbGFiX2F0dHJzW10gPSB7CiAJJmFtcDtyZW1vdGVfbm9kZV9kZWZyYWdfcmF0aW9fYXR0ci5hdHRyLAogI2VuZGlmCiAjaWZkZWYgQ09ORklHX1NMVUJfU1RBVFMKLQkmYW1wO2FsbG9jX2Zhc3RwYXRoX2F0dHIuYXR0ciwKLQkmYW1wO2FsbG9jX3Nsb3dwYXRoX2F0dHIuYXR0ciwKLQkmYW1wO2ZyZWVfcmN1X3NoZWFmX2F0dHIuYXR0ciwKLQkmYW1wO2ZyZWVfcmN1X3NoZWFmX2ZhaWxfYXR0ci5hdHRyLAotCSZhbXA7ZnJlZV9mYXN0cGF0aF9hdHRyLmF0dHIsCi0JJmFtcDtmcmVlX3Nsb3dwYXRoX2F0dHIuYXR0ciwKLQkmYW1wO2ZyZWVfYWRkX3BhcnRpYWxfYXR0ci5hdHRyLAotCSZhbXA7ZnJlZV9yZW1vdmVfcGFydGlhbF9hdHRyLmF0dHIsCi0JJmFtcDthbGxvY19zbGFiX2F0dHIuYXR0ciwKLQkmYW1wO2FsbG9jX25vZGVfbWlzbWF0Y2hfYXR0ci5hdHRyLAotCSZhbXA7ZnJlZV9zbGFiX2F0dHIuYXR0ciwKLQkmYW1wO29yZGVyX2ZhbGxiYWNrX2F0dHIuYXR0ciwKLQkmYW1wO2NtcHhjaGdfZG91YmxlX2ZhaWxfYXR0ci5hdHRyLAotCSZhbXA7c2hlYWZfZmx1c2hfYXR0ci5hdHRyLAotCSZhbXA7c2hlYWZfcmVmaWxsX2F0dHIuYXR0ciwKLQkmYW1wO3NoZWFmX2FsbG9jX2F0dHIuYXR0ciwKLQkmYW1wO3NoZWFmX2ZyZWVfYXR0ci5hdHRyLAotCSZhbXA7YmFybl9nZXRfYXR0ci5hdHRyLAotCSZhbXA7YmFybl9nZXRfZmFpbF9hdHRyLmF0dHIsCi0JJmFtcDtiYXJuX3B1dF9hdHRyLmF0dHIsCi0JJmFtcDtiYXJuX3B1dF9mYWlsX2F0dHIuYXR0ciwKLQkmYW1wO3NoZWFmX3ByZWZpbGxfZmFzdF9hdHRyLmF0dHIsCi0JJmFtcDtzaGVhZl9wcmVmaWxsX3Nsb3dfYXR0ci5hdHRyLAotCSZhbXA7c2hlYWZfcHJlZmlsbF9vdmVyc2l6ZV9hdHRyLmF0dHIsCi0JJmFtcDtzaGVhZl9yZXR1cm5fZmFzdF9hdHRyLmF0dHIsCi0JJmFtcDtzaGVhZl9yZXR1cm5fc2xvd19hdHRyLmF0dHIsCiYjNDM7I2RlZmluZSBJVEVNX0VYUCh1bnVzZWQsIHRleHQpICZhbXA7dGV4dCMjX2F0dHIuYXR0ciwKJiM0MzsJU1RBVF9JVEVNUwomIzQzOyN1bmRlZiBJVEVNX0VYUAogI2VuZGlmCiAjaWZkZWYgQ09ORklHX0ZBSUxTTEFCCiAJJmFtcDtmYWlsc2xhYl9hdHRyLmF0dHIsCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE0IDA3OjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ0MjgKCQkJCQkJCW91dHB1dDogNzEKCQkJCQkJCXRob3VnaHRzOiAzNTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgU0xVQiBTdGF0aXN0aWNzIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O3ZlIGp1c3QgcmV2aWV3ZWQgdGhpcyBwYXRjaCBhbmQgaXQmIzM5O3MgYSBzdHJhaWdodGZvcndhcmQgcmVmYWN0b3Jpbmcgd2l0aGluIGBtbS9zbHViLmNgLiBNeSBpbml0aWFsIGltcHJlc3Npb24gaXMgdGhhdCBpdCYjMzk7cyBwdXJlbHkgY29zbWV0aWMsIHdoaWNoIGlzIGdvb2QuIEkgc2VlIHRoZSBtYWluIGNoYW5nZSBpcyB0aGUgaW50cm9kdWN0aW9uIG9mIGEgbWFjcm8sIGBTVEFUX0lURU1TYCwgYWxvbmcgd2l0aCBgSVRFTV9FWFBgLiBJdCBsb29rcyBsaWtlIHRoZXkmIzM5O3JlIGp1c3QgYWltaW5nIHRvIGF2b2lkIGNvZGUgZHVwbGljYXRpb24gYWNyb3NzIHRoZSBgc3RhdF9pdGVtYCBlbnVtIGRlZmluaXRpb24sIHRoZSBgU1RBVF9BVFRSYCBkZWNsYXJhdGlvbnMsIGFuZCB0aGUgZW50cmllcyB3aXRoaW4gdGhlIGBzbGFiX2F0dHJzYCBhcnJheS4KCkxldCBtZSBqdXN0IHF1aWNrbHkgdmVyaWZ5IHRoaXMgYnkgY2hlY2tpbmcgdGhlIGRpZmYgZGlyZWN0bHkuLi4gWXVwLCBsb29rcyBleGFjdGx5IGFzIEkgdGhvdWdodC4gVGhleSYjMzk7dmUgdXNlZCBgU1RBVF9JVEVNU2AgYW5kIGBJVEVNX0VYUGAgdG8gcmVwbGFjZSB0aGUgcmVwZXRpdGl2ZSBjb2RlIGJsb2Nrcy4gVGhlIGNvZGUgaXRzZWxmIGlzIHN0cnVjdHVyYWxseSBpZGVudGljYWwsIG9ubHkgdGhlIHByZXNlbnRhdGlvbiBoYXMgY2hhbmdlZC4gTm8gbmV3IGZlYXR1cmVzLCBubyBjaGFuZ2UgaW4gZXhlY3V0aW9uIHBhdGhzLCBubyBmdW5jdGlvbmFsIGNoYW5nZXMuIEl0JiMzOTtzIGp1c3QgY2xlYW5lciBhbmQgbW9yZSBtYWludGFpbmFibGUgZnJvbSBhIGNvZGluZyBzdHlsZSBwZXJzcGVjdGl2ZS4gR29vZCBmb3IgcmVhZGFiaWxpdHksIGxlc3Mgcm9vbSBmb3IgZXJyb3JzLCBhbmQgZWFzaWVyIG1haW50ZW5hbmNlIGRvd24gdGhlIHJvYWQuCgpHaXZlbiB0aGF0IHRoZXJlIGFyZSBubyBmdW5jdGlvbmFsIGNoYW5nZXMgd2hhdHNvZXZlciwgSSYjMzk7bSBjb25maWRlbnQgaW4gbWFya2luZyB0aGlzIGFzIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJdCYjMzk7cyBhIGNsZWFuIHJlZmFjdG9yIHRoYXQgZG9lc24mIzM5O3QgaW50cm9kdWNlIGFueSBuZXcgYXR0YWNrIHN1cmZhY2VzIG9yIGxvZ2ljIHRoYXQgbmVlZHMgZnV6emluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNzo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHB1cmVseSByZWZhY3RvcnMgdGhlIGRlZmluaXRpb24gb2YgU0xVQiBzdGF0aXN0aWNzIGF0dHJpYnV0ZXMgdXNpbmcgbWFjcm9zIChTVEFUX0lURU1TIGFuZCBJVEVNX0VYUCkgdG8gcmVkdWNlIGNvZGUgZHVwbGljYXRpb24uIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBleGVjdXRpb24gZmxvdy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHB1cmVseSByZWZhY3RvcnMgdGhlIGRlZmluaXRpb24gb2YgU0xVQiBzdGF0aXN0aWNzIGF0dHJpYnV0ZXMgdXNpbmcgbWFjcm9zIChTVEFUX0lURU1TIGFuZCBJVEVNX0VYUCkgdG8gcmVkdWNlIGNvZGUgZHVwbGljYXRpb24uIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBleGVjdXRpb24gZmxvdy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDc6NTQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA3OjU0OjA4LjMyMTUyMjAzN1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc0MTk2NjIxMzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBwdXJlbHkgcmVmYWN0b3JzIHRoZSBkZWZpbml0aW9uIG9mIFNMVUIgc3RhdGlzdGljcyBhdHRyaWJ1dGVzIHVzaW5nIG1hY3JvcyAoU1RBVF9JVEVNUyBhbmQgSVRFTV9FWFApIHRvIHJlZHVjZSBjb2RlIGR1cGxpY2F0aW9uLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgZXhlY3V0aW9uIGZsb3cuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNzo1NDowOC4zMjE1MzEzMTdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU2NjA5OTAwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDNlZjE3MTE1ODVhMzRkNmU3YjRjM2NjMDUyZDg4YmFiZGRlN2ZlZjVcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBBdWcgMTQgMDc6NTQ6MDcgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbW0vc2x1Yi5jIGIvbW0vc2x1Yi5jXFxuaW5kZXggYjBjZDA1NzJlMmYyNi4uOGRkMjUwMzJmYmE0NSAxMDA2NDRcXG4tLS0gYS9tbS9zbHViLmNcXG4rKysgYi9tbS9zbHViLmNcXG5AQCAtMzU5LDMzICszNTksNjQgQEAgZW51bSBhZGRfbW9kZSB7XFxuIFxcdEFERF9UT19UQUlMLFxcbiB9O1xcbiBcXG4rI2RlZmluZSBTVEFUX0lURU1TXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHQvKiBBbGxvY2F0aW9uIGZyb20gcGVyY3B1IHNoZWF2ZXMgKi9cXHRcXHRcXHRcXHRcXFxcXFxuK1xcdElURU1fRVhQKEFMTE9DX0ZBU1RQQVRILCBhbGxvY19mYXN0cGF0aClcXHRcXHRcXHRcXFxcXFxuK1xcdC8qIEFsbG9jYXRpb24gZnJvbSBwYXJ0aWFsIG9yIG5ldyBzbGFiICovXFx0XFx0XFx0XFxcXFxcbitcXHRJVEVNX0VYUChBTExPQ19TTE9XUEFUSCwgYWxsb2Nfc2xvd3BhdGgpXFx0XFx0XFx0XFxcXFxcbitcXHQvKiBGcmVlIHRvIHJjdV9mcmVlIHNoZWFmICovXFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHRJVEVNX0VYUChGUkVFX1JDVV9TSEVBRiwgZnJlZV9yY3Vfc2hlYWYpXFx0XFx0XFx0XFxcXFxcbitcXHQvKiBGYWlsZWQgdG8gZnJlZSB0byBhIHJjdV9mcmVlIHNoZWFmICovXFx0XFx0XFx0XFxcXFxcbitcXHRJVEVNX0VYUChGUkVFX1JDVV9TSEVBRl9GQUlMLCBmcmVlX3JjdV9zaGVhZl9mYWlsKVxcdFxcdFxcXFxcXG4rXFx0LyogRnJlZSB0byBwZXJjcHUgc2hlYXZlcyAqL1xcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0SVRFTV9FWFAoRlJFRV9GQVNUUEFUSCwgZnJlZV9mYXN0cGF0aClcXHRcXHRcXHRcXHRcXFxcXFxuK1xcdC8qIEZyZWUgdG8gYSBzbGFiICovXFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHRJVEVNX0VYUChGUkVFX1NMT1dQQVRILCBmcmVlX3Nsb3dwYXRoKVxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0LyogRnJlZWluZyBtb3ZlcyBzbGFiIHRvIHBhcnRpYWwgbGlzdCAqL1xcdFxcdFxcdFxcXFxcXG4rXFx0SVRFTV9FWFAoRlJFRV9BRERfUEFSVElBTCwgZnJlZV9hZGRfcGFydGlhbClcXHRcXHRcXHRcXFxcXFxuK1xcdC8qIEZyZWVpbmcgcmVtb3ZlcyBsYXN0IG9iamVjdCAqL1xcdFxcdFxcdFxcdFxcXFxcXG4rXFx0SVRFTV9FWFAoRlJFRV9SRU1PVkVfUEFSVElBTCwgZnJlZV9yZW1vdmVfcGFydGlhbClcXHRcXHRcXFxcXFxuK1xcdC8qIE5ldyBzbGFiIGFjcXVpcmVkIGZyb20gcGFnZSBhbGxvY2F0b3IgKi9cXHRcXHRcXHRcXFxcXFxuK1xcdElURU1fRVhQKEFMTE9DX1NMQUIsIGFsbG9jX3NsYWIpXFx0XFx0XFx0XFx0XFxcXFxcbitcXHQvKiBSZXF1ZXN0ZWQgbm9kZSBkaWZmZXJlbnQgZnJvbSBjcHUgc2hlYWYgKi9cXHRcXHRcXHRcXFxcXFxuK1xcdElURU1fRVhQKEFMTE9DX05PREVfTUlTTUFUQ0gsIGFsbG9jX25vZGVfbWlzbWF0Y2gpXFx0XFx0XFxcXFxcbitcXHQvKiBTbGFiIGZyZWVkIHRvIHRoZSBwYWdlIGFsbG9jYXRvciAqL1xcdFxcdFxcdFxcdFxcXFxcXG4rXFx0SVRFTV9FWFAoRlJFRV9TTEFCLCBmcmVlX3NsYWIpXFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHQvKiBOdW1iZXIgb2YgdGltZXMgZmFsbGJhY2sgd2FzIG5lY2Vzc2FyeSAqL1xcdFxcdFxcdFxcXFxcXG4rXFx0SVRFTV9FWFAoT1JERVJfRkFMTEJBQ0ssIG9yZGVyX2ZhbGxiYWNrKVxcdFxcdFxcdFxcXFxcXG4rXFx0LyogRmFpbHVyZXMgb2Ygc2xhYiBmcmVlbGlzdCB1cGRhdGUgKi9cXHRcXHRcXHRcXHRcXFxcXFxuK1xcdElURU1fRVhQKENNUFhDSEdfRE9VQkxFX0ZBSUwsIGNtcHhjaGdfZG91YmxlX2ZhaWwpXFx0XFx0XFxcXFxcbitcXHQvKiBPYmplY3RzIGZsdXNoZWQgZnJvbSBhIHNoZWFmICovXFx0XFx0XFx0XFx0XFxcXFxcbitcXHRJVEVNX0VYUChTSEVBRl9GTFVTSCwgc2hlYWZfZmx1c2gpXFx0XFx0XFx0XFx0XFxcXFxcbitcXHQvKiBPYmplY3RzIHJlZmlsbGVkIHRvIGEgc2hlYWYgKi9cXHRcXHRcXHRcXHRcXFxcXFxuK1xcdElURU1fRVhQKFNIRUFGX1JFRklMTCwgc2hlYWZfcmVmaWxsKVxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0LyogQWxsb2NhdGlvbiBvZiBhbiBlbXB0eSBzaGVhZiBpbmNsdWRpbmcgb3ZlcnNpemVkIG9uZXMgKi9cXHRcXFxcXFxuK1xcdElURU1fRVhQKFNIRUFGX0FMTE9DLCBzaGVhZl9hbGxvYylcXHRcXHRcXHRcXHRcXFxcXFxuK1xcdC8qIEZyZWVpbmcgb2YgYW4gZW1wdHkgc2hlYWYgaW5jbHVkaW5nIG92ZXJzaXplZCBvbmVzICovXFx0XFxcXFxcbitcXHRJVEVNX0VYUChTSEVBRl9GUkVFLCBzaGVhZl9mcmVlKVxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0LyogR290IGZ1bGwgc2hlYWYgZnJvbSBiYXJuICovXFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHRJVEVNX0VYUChCQVJOX0dFVCwgYmFybl9nZXQpXFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHQvKiBGYWlsZWQgdG8gZ2V0IGZ1bGwgc2hlYWYgZnJvbSBiYXJuICovXFx0XFx0XFx0XFxcXFxcbitcXHRJVEVNX0VYUChCQVJOX0dFVF9GQUlMLCBiYXJuX2dldF9mYWlsKVxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0LyogUHV0IGZ1bGwgc2hlYWYgdG8gYmFybiAqL1xcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0SVRFTV9FWFAoQkFSTl9QVVQsIGJhcm5fcHV0KVxcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0LyogRmFpbGVkIHRvIHB1dCBmdWxsIHNoZWFmIHRvIGJhcm4gKi9cXHRcXHRcXHRcXHRcXFxcXFxuK1xcdElURU1fRVhQKEJBUk5fUFVUX0ZBSUwsIGJhcm5fcHV0X2ZhaWwpXFx0XFx0XFx0XFx0XFxcXFxcbitcXHQvKiBTaGVhZiBwcmVmaWxsIGdyYWJiZWQgdGhlIHNwYXJlIHNoZWFmICovXFx0XFx0XFx0XFxcXFxcbitcXHRJVEVNX0VYUChTSEVBRl9QUkVGSUxMX0ZBU1QsIHNoZWFmX3ByZWZpbGxfZmFzdClcXHRcXHRcXFxcXFxuK1xcdC8qIFNoZWFmIHByZWZpbGwgZm91bmQgbm8gc3BhcmUgc2hlYWYgKi9cXHRcXHRcXHRcXFxcXFxuK1xcdElURU1fRVhQKFNIRUFGX1BSRUZJTExfU0xPVywgc2hlYWZfcHJlZmlsbF9zbG93KVxcdFxcdFxcXFxcXG4rXFx0LyogQWxsb2NhdGlvbiBvZiBvdmVyc2l6ZSBzaGVhZiBmb3IgcHJlZmlsbCAqL1xcdFxcdFxcdFxcXFxcXG4rXFx0SVRFTV9FWFAoU0hFQUZfUFJFRklMTF9PVkVSU0laRSwgc2hlYWZfcHJlZmlsbF9vdmVyc2l6ZSlcXHRcXFxcXFxuK1xcdC8qIFNoZWFmIHJldHVybiByZWF0dGFjaGVkIHNwYXJlIHNoZWFmICovXFx0XFx0XFx0XFxcXFxcbitcXHRJVEVNX0VYUChTSEVBRl9SRVRVUk5fRkFTVCwgc2hlYWZfcmV0dXJuX2Zhc3QpXFx0XFx0XFx0XFxcXFxcbitcXHQvKiBTaGVhZiByZXR1cm4gY291bGQgbm90IHJlYXR0YWNoIHNwYXJlICovXFx0XFx0XFx0XFxcXFxcbitcXHRJVEVNX0VYUChTSEVBRl9SRVRVUk5fU0xPVywgc2hlYWZfcmV0dXJuX3Nsb3cpXFxuK1xcbiBlbnVtIHN0YXRfaXRlbSB7XFxuLVxcdEFMTE9DX0ZBU1RQQVRILFxcdFxcdC8qIEFsbG9jYXRpb24gZnJvbSBwZXJjcHUgc2hlYXZlcyAqL1xcbi1cXHRBTExPQ19TTE9XUEFUSCxcXHRcXHQvKiBBbGxvY2F0aW9uIGZyb20gcGFydGlhbCBvciBuZXcgc2xhYiAqL1xcbi1cXHRGUkVFX1JDVV9TSEVBRixcXHRcXHQvKiBGcmVlIHRvIHJjdV9mcmVlIHNoZWFmICovXFxuLVxcdEZSRUVfUkNVX1NIRUFGX0ZBSUwsXFx0LyogRmFpbGVkIHRvIGZyZWUgdG8gYSByY3VfZnJlZSBzaGVhZiAqL1xcbi1cXHRGUkVFX0ZBU1RQQVRILFxcdFxcdC8qIEZyZWUgdG8gcGVyY3B1IHNoZWF2ZXMgKi9cXG4tXFx0RlJFRV9TTE9XUEFUSCxcXHRcXHQvKiBGcmVlIHRvIGEgc2xhYiAqL1xcbi1cXHRGUkVFX0FERF9QQVJUSUFMLFxcdC8qIEZyZWVpbmcgbW92ZXMgc2xhYiB0byBwYXJ0aWFsIGxpc3QgKi9cXG4tXFx0RlJFRV9SRU1PVkVfUEFSVElBTCxcXHQvKiBGcmVlaW5nIHJlbW92ZXMgbGFzdCBvYmplY3QgKi9cXG4tXFx0QUxMT0NfU0xBQixcXHRcXHQvKiBOZXcgc2xhYiBhY3F1aXJlZCBmcm9tIHBhZ2UgYWxsb2NhdG9yICovXFxuLVxcdEFMTE9DX05PREVfTUlTTUFUQ0gsXFx0LyogUmVxdWVzdGVkIG5vZGUgZGlmZmVyZW50IGZyb20gY3B1IHNoZWFmICovXFxuLVxcdEZSRUVfU0xBQixcXHRcXHQvKiBTbGFiIGZyZWVkIHRvIHRoZSBwYWdlIGFsbG9jYXRvciAqL1xcbi1cXHRPUkRFUl9GQUxMQkFDSyxcXHRcXHQvKiBOdW1iZXIgb2YgdGltZXMgZmFsbGJhY2sgd2FzIG5lY2Vzc2FyeSAqL1xcbi1cXHRDTVBYQ0hHX0RPVUJMRV9GQUlMLFxcdC8qIEZhaWx1cmVzIG9mIHNsYWIgZnJlZWxpc3QgdXBkYXRlICovXFxuLVxcdFNIRUFGX0ZMVVNILFxcdFxcdC8qIE9iamVjdHMgZmx1c2hlZCBmcm9tIGEgc2hlYWYgKi9cXG4tXFx0U0hFQUZfUkVGSUxMLFxcdFxcdC8qIE9iamVjdHMgcmVmaWxsZWQgdG8gYSBzaGVhZiAqL1xcbi1cXHRTSEVBRl9BTExPQyxcXHRcXHQvKiBBbGxvY2F0aW9uIG9mIGFuIGVtcHR5IHNoZWFmIGluY2x1ZGluZyBvdmVyc2l6ZWQgb25lcyAqL1xcbi1cXHRTSEVBRl9GUkVFLFxcdFxcdC8qIEZyZWVpbmcgb2YgYW4gZW1wdHkgc2hlYWYgaW5jbHVkaW5nIG92ZXJzaXplZCBvbmVzICovXFxuLVxcdEJBUk5fR0VULFxcdFxcdC8qIEdvdCBmdWxsIHNoZWFmIGZyb20gYmFybiAqL1xcbi1cXHRCQVJOX0dFVF9GQUlMLFxcdFxcdC8qIEZhaWxlZCB0byBnZXQgZnVsbCBzaGVhZiBmcm9tIGJhcm4gKi9cXG4tXFx0QkFSTl9QVVQsXFx0XFx0LyogUHV0IGZ1bGwgc2hlYWYgdG8gYmFybiAqL1xcbi1cXHRCQVJOX1BVVF9GQUlMLFxcdFxcdC8qIEZhaWxlZCB0byBwdXQgZnVsbCBzaGVhZiB0byBiYXJuICovXFxuLVxcdFNIRUFGX1BSRUZJTExfRkFTVCxcXHQvKiBTaGVhZiBwcmVmaWxsIGdyYWJiZWQgdGhlIHNwYXJlIHNoZWFmICovXFxuLVxcdFNIRUFGX1BSRUZJTExfU0xPVyxcXHQvKiBTaGVhZiBwcmVmaWxsIGZvdW5kIG5vIHNwYXJlIHNoZWFmICovXFxuLVxcdFNIRUFGX1BSRUZJTExfT1ZFUlNJWkUsXFx0LyogQWxsb2NhdGlvbiBvZiBvdmVyc2l6ZSBzaGVhZiBmb3IgcHJlZmlsbCAqL1xcbi1cXHRTSEVBRl9SRVRVUk5fRkFTVCxcXHQvKiBTaGVhZiByZXR1cm4gcmVhdHRhY2hlZCBzcGFyZSBzaGVhZiAqL1xcbi1cXHRTSEVBRl9SRVRVUk5fU0xPVyxcXHQvKiBTaGVhZiByZXR1cm4gY291bGQgbm90IHJlYXR0YWNoIHNwYXJlICovXFxuKyNkZWZpbmUgSVRFTV9FWFAobmFtZSwgdW51c2VkKSBuYW1lLFxcbitcXHRTVEFUX0lURU1TXFxuKyN1bmRlZiBJVEVNX0VYUFxcbiBcXHROUl9TTFVCX1NUQVRfSVRFTVNcXG4gfTtcXG4gXFxuQEAgLTk1MTIsMzQgKzk1NDMsMTIgQEAgc3RhdGljIHNzaXplX3QgdGV4dCMjX3N0b3JlKHN0cnVjdCBrbWVtX2NhY2hlICpzLFxcdFxcdFxcXFxcXG4gXFx0Y2xlYXJfc3RhdChzLCBzaSk7XFx0XFx0XFx0XFx0XFx0XFxcXFxcbiBcXHRyZXR1cm4gbGVuZ3RoO1xcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4gfVxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4tU0xBQl9BVFRSKHRleHQpO1xcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4tXFxuLVNUQVRfQVRUUihBTExPQ19GQVNUUEFUSCwgYWxsb2NfZmFzdHBhdGgpO1xcbi1TVEFUX0FUVFIoQUxMT0NfU0xPV1BBVEgsIGFsbG9jX3Nsb3dwYXRoKTtcXG4tU1RBVF9BVFRSKEZSRUVfUkNVX1NIRUFGLCBmcmVlX3JjdV9zaGVhZik7XFxuLVNUQVRfQVRUUihGUkVFX1JDVV9TSEVBRl9GQUlMLCBmcmVlX3JjdV9zaGVhZl9mYWlsKTtcXG4tU1RBVF9BVFRSKEZSRUVfRkFTVFBBVEgsIGZyZWVfZmFzdHBhdGgpO1xcbi1TVEFUX0FUVFIoRlJFRV9TTE9XUEFUSCwgZnJlZV9zbG93cGF0aCk7XFxuLVNUQVRfQVRUUihGUkVFX0FERF9QQVJUSUFMLCBmcmVlX2FkZF9wYXJ0aWFsKTtcXG4tU1RBVF9BVFRSKEZSRUVfUkVNT1ZFX1BBUlRJQUwsIGZyZWVfcmVtb3ZlX3BhcnRpYWwpO1xcbi1TVEFUX0FUVFIoQUxMT0NfU0xBQiwgYWxsb2Nfc2xhYik7XFxuLVNUQVRfQVRUUihBTExPQ19OT0RFX01JU01BVENILCBhbGxvY19ub2RlX21pc21hdGNoKTtcXG4tU1RBVF9BVFRSKEZSRUVfU0xBQiwgZnJlZV9zbGFiKTtcXG4tU1RBVF9BVFRSKE9SREVSX0ZBTExCQUNLLCBvcmRlcl9mYWxsYmFjayk7XFxuLVNUQVRfQVRUUihDTVBYQ0hHX0RPVUJMRV9GQUlMLCBjbXB4Y2hnX2RvdWJsZV9mYWlsKTtcXG4tU1RBVF9BVFRSKFNIRUFGX0ZMVVNILCBzaGVhZl9mbHVzaCk7XFxuLVNUQVRfQVRUUihTSEVBRl9SRUZJTEwsIHNoZWFmX3JlZmlsbCk7XFxuLVNUQVRfQVRUUihTSEVBRl9BTExPQywgc2hlYWZfYWxsb2MpO1xcbi1TVEFUX0FUVFIoU0hFQUZfRlJFRSwgc2hlYWZfZnJlZSk7XFxuLVNUQVRfQVRUUihCQVJOX0dFVCwgYmFybl9nZXQpO1xcbi1TVEFUX0FUVFIoQkFSTl9HRVRfRkFJTCwgYmFybl9nZXRfZmFpbCk7XFxuLVNUQVRfQVRUUihCQVJOX1BVVCwgYmFybl9wdXQpO1xcbi1TVEFUX0FUVFIoQkFSTl9QVVRfRkFJTCwgYmFybl9wdXRfZmFpbCk7XFxuLVNUQVRfQVRUUihTSEVBRl9QUkVGSUxMX0ZBU1QsIHNoZWFmX3ByZWZpbGxfZmFzdCk7XFxuLVNUQVRfQVRUUihTSEVBRl9QUkVGSUxMX1NMT1csIHNoZWFmX3ByZWZpbGxfc2xvdyk7XFxuLVNUQVRfQVRUUihTSEVBRl9QUkVGSUxMX09WRVJTSVpFLCBzaGVhZl9wcmVmaWxsX292ZXJzaXplKTtcXG4tU1RBVF9BVFRSKFNIRUFGX1JFVFVSTl9GQVNULCBzaGVhZl9yZXR1cm5fZmFzdCk7XFxuLVNUQVRfQVRUUihTSEVBRl9SRVRVUk5fU0xPVywgc2hlYWZfcmV0dXJuX3Nsb3cpO1xcbitTTEFCX0FUVFIodGV4dCk7XFxuK1xcbisjZGVmaW5lIElURU1fRVhQKG5hbWUsIHRleHQpIFNUQVRfQVRUUihuYW1lLCB0ZXh0KVxcbitTVEFUX0lURU1TXFxuKyN1bmRlZiBJVEVNX0VYUFxcbitcXG4gI2VuZGlmXFx0LyogQ09ORklHX1NMVUJfU1RBVFMgKi9cXG4gXFxuICNpZmRlZiBDT05GSUdfS0ZFTkNFXFxuQEAgLTk2MDIsMzIgKzk2MTEsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqY29uc3Qgc2xhYl9hdHRyc1tdID0ge1xcbiBcXHRcXHUwMDI2cmVtb3RlX25vZGVfZGVmcmFnX3JhdGlvX2F0dHIuYXR0cixcXG4gI2VuZGlmXFxuICNpZmRlZiBDT05GSUdfU0xVQl9TVEFUU1xcbi1cXHRcXHUwMDI2YWxsb2NfZmFzdHBhdGhfYXR0ci5hdHRyLFxcbi1cXHRcXHUwMDI2YWxsb2Nfc2xvd3BhdGhfYXR0ci5hdHRyLFxcbi1cXHRcXHUwMDI2ZnJlZV9yY3Vfc2hlYWZfYXR0ci5hdHRyLFxcbi1cXHRcXHUwMDI2ZnJlZV9yY3Vfc2hlYWZfZmFpbF9hdHRyLmF0dHIsXFxuLVxcdFxcdTAwMjZmcmVlX2Zhc3RwYXRoX2F0dHIuYXR0cixcXG4tXFx0XFx1MDAyNmZyZWVfc2xvd3BhdGhfYXR0ci5hdHRyLFxcbi1cXHRcXHUwMDI2ZnJlZV9hZGRfcGFydGlhbF9hdHRyLmF0dHIsXFxuLVxcdFxcdTAwMjZmcmVlX3JlbW92ZV9wYXJ0aWFsX2F0dHIuYXR0cixcXG4tXFx0XFx1MDAyNmFsbG9jX3NsYWJfYXR0ci5hdHRyLFxcbi1cXHRcXHUwMDI2YWxsb2Nfbm9kZV9taXNtYXRjaF9hdHRyLmF0dHIsXFxuLVxcdFxcdTAwMjZmcmVlX3NsYWJfYXR0ci5hdHRyLFxcbi1cXHRcXHUwMDI2b3JkZXJfZmFsbGJhY2tfYXR0ci5hdHRyLFxcbi1cXHRcXHUwMDI2Y21weGNoZ19kb3VibGVfZmFpbF9hdHRyLmF0dHIsXFxuLVxcdFxcdTAwMjZzaGVhZl9mbHVzaF9hdHRyLmF0dHIsXFxuLVxcdFxcdTAwMjZzaGVhZl9yZWZpbGxfYXR0ci5hdHRyLFxcbi1cXHRcXHUwMDI2c2hlYWZfYWxsb2NfYXR0ci5hdHRyLFxcbi1cXHRcXHUwMDI2c2hlYWZfZnJlZV9hdHRyLmF0dHIsXFxuLVxcdFxcdTAwMjZiYXJuX2dldF9hdHRyLmF0dHIsXFxuLVxcdFxcdTAwMjZiYXJuX2dldF9mYWlsX2F0dHIuYXR0cixcXG4tXFx0XFx1MDAyNmJhcm5fcHV0X2F0dHIuYXR0cixcXG4tXFx0XFx1MDAyNmJhcm5fcHV0X2ZhaWxfYXR0ci5hdHRyLFxcbi1cXHRcXHUwMDI2c2hlYWZfcHJlZmlsbF9mYXN0X2F0dHIuYXR0cixcXG4tXFx0XFx1MDAyNnNoZWFmX3ByZWZpbGxfc2xvd19hdHRyLmF0dHIsXFxuLVxcdFxcdTAwMjZzaGVhZl9wcmVmaWxsX292ZXJzaXplX2F0dHIuYXR0cixcXG4tXFx0XFx1MDAyNnNoZWFmX3JldHVybl9mYXN0X2F0dHIuYXR0cixcXG4tXFx0XFx1MDAyNnNoZWFmX3JldHVybl9zbG93X2F0dHIuYXR0cixcXG4rI2RlZmluZSBJVEVNX0VYUCh1bnVzZWQsIHRleHQpIFxcdTAwMjZ0ZXh0IyNfYXR0ci5hdHRyLFxcbitcXHRTVEFUX0lURU1TXFxuKyN1bmRlZiBJVEVNX0VYUFxcbiAjZW5kaWZcXG4gI2lmZGVmIENPTkZJR19GQUlMU0xBQlxcbiBcXHRcXHUwMDI2ZmFpbHNsYWJfYXR0ci5hdHRyLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNzo1NDowOC44ODg1NzMyMjlaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo2ODUyNTU1Njk5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBwdXJlbHkgcmVmYWN0b3JzIHRoZSBkZWZpbml0aW9uIG9mIFNMVUIgc3RhdGlzdGljcyBhdHRyaWJ1dGVzIHVzaW5nIG1hY3JvcyAoU1RBVF9JVEVNUyBhbmQgSVRFTV9FWFApIHRvIHJlZHVjZSBjb2RlIGR1cGxpY2F0aW9uLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgZXhlY3V0aW9uIGZsb3cuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAzZWYxNzExNTg1YTM0ZDZlN2I0YzNjYzA1MmQ4OGJhYmRkZTdmZWY1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBBdWcgMTQgMDc6NTQ6MDcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9tbS9zbHViLmMgYi9tbS9zbHViLmNcbmluZGV4IGIwY2QwNTcyZTJmMjYuLjhkZDI1MDMyZmJhNDUgMTAwNjQ0XG4tLS0gYS9tbS9zbHViLmNcbisrKyBiL21tL3NsdWIuY1xuQEAgLTM1OSwzMyArMzU5LDY0IEBAIGVudW0gYWRkX21vZGUge1xuIFx0QUREX1RPX1RBSUwsXG4gfTtcbiBcbisjZGVmaW5lIFNUQVRfSVRFTVNcdFx0XHRcdFx0XHRcdFxcXG4rXHQvKiBBbGxvY2F0aW9uIGZyb20gcGVyY3B1IHNoZWF2ZXMgKi9cdFx0XHRcdFxcXG4rXHRJVEVNX0VYUChBTExPQ19GQVNUUEFUSCwgYWxsb2NfZmFzdHBhdGgpXHRcdFx0XFxcbitcdC8qIEFsbG9jYXRpb24gZnJvbSBwYXJ0aWFsIG9yIG5ldyBzbGFiICovXHRcdFx0XFxcbitcdElURU1fRVhQKEFMTE9DX1NMT1dQQVRILCBhbGxvY19zbG93cGF0aClcdFx0XHRcXFxuK1x0LyogRnJlZSB0byByY3VfZnJlZSBzaGVhZiAqL1x0XHRcdFx0XHRcXFxuK1x0SVRFTV9FWFAoRlJFRV9SQ1VfU0hFQUYsIGZyZWVfcmN1X3NoZWFmKVx0XHRcdFxcXG4rXHQvKiBGYWlsZWQgdG8gZnJlZSB0byBhIHJjdV9mcmVlIHNoZWFmICovXHRcdFx0XFxcbitcdElURU1fRVhQKEZSRUVfUkNVX1NIRUFGX0ZBSUwsIGZyZWVfcmN1X3NoZWFmX2ZhaWwpXHRcdFxcXG4rXHQvKiBGcmVlIHRvIHBlcmNwdSBzaGVhdmVzICovXHRcdFx0XHRcdFxcXG4rXHRJVEVNX0VYUChGUkVFX0ZBU1RQQVRILCBmcmVlX2Zhc3RwYXRoKVx0XHRcdFx0XFxcbitcdC8qIEZyZWUgdG8gYSBzbGFiICovXHRcdFx0XHRcdFx0XFxcbitcdElURU1fRVhQKEZSRUVfU0xPV1BBVEgsIGZyZWVfc2xvd3BhdGgpXHRcdFx0XHRcXFxuK1x0LyogRnJlZWluZyBtb3ZlcyBzbGFiIHRvIHBhcnRpYWwgbGlzdCAqL1x0XHRcdFxcXG4rXHRJVEVNX0VYUChGUkVFX0FERF9QQVJUSUFMLCBmcmVlX2FkZF9wYXJ0aWFsKVx0XHRcdFxcXG4rXHQvKiBGcmVlaW5nIHJlbW92ZXMgbGFzdCBvYmplY3QgKi9cdFx0XHRcdFxcXG4rXHRJVEVNX0VYUChGUkVFX1JFTU9WRV9QQVJUSUFMLCBmcmVlX3JlbW92ZV9wYXJ0aWFsKVx0XHRcXFxuK1x0LyogTmV3IHNsYWIgYWNxdWlyZWQgZnJvbSBwYWdlIGFsbG9jYXRvciAqL1x0XHRcdFxcXG4rXHRJVEVNX0VYUChBTExPQ19TTEFCLCBhbGxvY19zbGFiKVx0XHRcdFx0XFxcbitcdC8qIFJlcXVlc3RlZCBub2RlIGRpZmZlcmVudCBmcm9tIGNwdSBzaGVhZiAqL1x0XHRcdFxcXG4rXHRJVEVNX0VYUChBTExPQ19OT0RFX01JU01BVENILCBhbGxvY19ub2RlX21pc21hdGNoKVx0XHRcXFxuK1x0LyogU2xhYiBmcmVlZCB0byB0aGUgcGFnZSBhbGxvY2F0b3IgKi9cdFx0XHRcdFxcXG4rXHRJVEVNX0VYUChGUkVFX1NMQUIsIGZyZWVfc2xhYilcdFx0XHRcdFx0XFxcbitcdC8qIE51bWJlciBvZiB0aW1lcyBmYWxsYmFjayB3YXMgbmVjZXNzYXJ5ICovXHRcdFx0XFxcbitcdElURU1fRVhQKE9SREVSX0ZBTExCQUNLLCBvcmRlcl9mYWxsYmFjaylcdFx0XHRcXFxuK1x0LyogRmFpbHVyZXMgb2Ygc2xhYiBmcmVlbGlzdCB1cGRhdGUgKi9cdFx0XHRcdFxcXG4rXHRJVEVNX0VYUChDTVBYQ0hHX0RPVUJMRV9GQUlMLCBjbXB4Y2hnX2RvdWJsZV9mYWlsKVx0XHRcXFxuK1x0LyogT2JqZWN0cyBmbHVzaGVkIGZyb20gYSBzaGVhZiAqL1x0XHRcdFx0XFxcbitcdElURU1fRVhQKFNIRUFGX0ZMVVNILCBzaGVhZl9mbHVzaClcdFx0XHRcdFxcXG4rXHQvKiBPYmplY3RzIHJlZmlsbGVkIHRvIGEgc2hlYWYgKi9cdFx0XHRcdFxcXG4rXHRJVEVNX0VYUChTSEVBRl9SRUZJTEwsIHNoZWFmX3JlZmlsbClcdFx0XHRcdFxcXG4rXHQvKiBBbGxvY2F0aW9uIG9mIGFuIGVtcHR5IHNoZWFmIGluY2x1ZGluZyBvdmVyc2l6ZWQgb25lcyAqL1x0XFxcbitcdElURU1fRVhQKFNIRUFGX0FMTE9DLCBzaGVhZl9hbGxvYylcdFx0XHRcdFxcXG4rXHQvKiBGcmVlaW5nIG9mIGFuIGVtcHR5IHNoZWFmIGluY2x1ZGluZyBvdmVyc2l6ZWQgb25lcyAqL1x0XFxcbitcdElURU1fRVhQKFNIRUFGX0ZSRUUsIHNoZWFmX2ZyZWUpXHRcdFx0XHRcXFxuK1x0LyogR290IGZ1bGwgc2hlYWYgZnJvbSBiYXJuICovXHRcdFx0XHRcdFxcXG4rXHRJVEVNX0VYUChCQVJOX0dFVCwgYmFybl9nZXQpXHRcdFx0XHRcdFxcXG4rXHQvKiBGYWlsZWQgdG8gZ2V0IGZ1bGwgc2hlYWYgZnJvbSBiYXJuICovXHRcdFx0XFxcbitcdElURU1fRVhQKEJBUk5fR0VUX0ZBSUwsIGJhcm5fZ2V0X2ZhaWwpXHRcdFx0XHRcXFxuK1x0LyogUHV0IGZ1bGwgc2hlYWYgdG8gYmFybiAqL1x0XHRcdFx0XHRcXFxuK1x0SVRFTV9FWFAoQkFSTl9QVVQsIGJhcm5fcHV0KVx0XHRcdFx0XHRcXFxuK1x0LyogRmFpbGVkIHRvIHB1dCBmdWxsIHNoZWFmIHRvIGJhcm4gKi9cdFx0XHRcdFxcXG4rXHRJVEVNX0VYUChCQVJOX1BVVF9GQUlMLCBiYXJuX3B1dF9mYWlsKVx0XHRcdFx0XFxcbitcdC8qIFNoZWFmIHByZWZpbGwgZ3JhYmJlZCB0aGUgc3BhcmUgc2hlYWYgKi9cdFx0XHRcXFxuK1x0SVRFTV9FWFAoU0hFQUZfUFJFRklMTF9GQVNULCBzaGVhZl9wcmVmaWxsX2Zhc3QpXHRcdFxcXG4rXHQvKiBTaGVhZiBwcmVmaWxsIGZvdW5kIG5vIHNwYXJlIHNoZWFmICovXHRcdFx0XFxcbitcdElURU1fRVhQKFNIRUFGX1BSRUZJTExfU0xPVywgc2hlYWZfcHJlZmlsbF9zbG93KVx0XHRcXFxuK1x0LyogQWxsb2NhdGlvbiBvZiBvdmVyc2l6ZSBzaGVhZiBmb3IgcHJlZmlsbCAqL1x0XHRcdFxcXG4rXHRJVEVNX0VYUChTSEVBRl9QUkVGSUxMX09WRVJTSVpFLCBzaGVhZl9wcmVmaWxsX292ZXJzaXplKVx0XFxcbitcdC8qIFNoZWFmIHJldHVybiByZWF0dGFjaGVkIHNwYXJlIHNoZWFmICovXHRcdFx0XFxcbitcdElURU1fRVhQKFNIRUFGX1JFVFVSTl9GQVNULCBzaGVhZl9yZXR1cm5fZmFzdClcdFx0XHRcXFxuK1x0LyogU2hlYWYgcmV0dXJuIGNvdWxkIG5vdCByZWF0dGFjaCBzcGFyZSAqL1x0XHRcdFxcXG4rXHRJVEVNX0VYUChTSEVBRl9SRVRVUk5fU0xPVywgc2hlYWZfcmV0dXJuX3Nsb3cpXG4rXG4gZW51bSBzdGF0X2l0ZW0ge1xuLVx0QUxMT0NfRkFTVFBBVEgsXHRcdC8qIEFsbG9jYXRpb24gZnJvbSBwZXJjcHUgc2hlYXZlcyAqL1xuLVx0QUxMT0NfU0xPV1BBVEgsXHRcdC8qIEFsbG9jYXRpb24gZnJvbSBwYXJ0aWFsIG9yIG5ldyBzbGFiICovXG4tXHRGUkVFX1JDVV9TSEVBRixcdFx0LyogRnJlZSB0byByY3VfZnJlZSBzaGVhZiAqL1xuLVx0RlJFRV9SQ1VfU0hFQUZfRkFJTCxcdC8qIEZhaWxlZCB0byBmcmVlIHRvIGEgcmN1X2ZyZWUgc2hlYWYgKi9cbi1cdEZSRUVfRkFTVFBBVEgsXHRcdC8qIEZyZWUgdG8gcGVyY3B1IHNoZWF2ZXMgKi9cbi1cdEZSRUVfU0xPV1BBVEgsXHRcdC8qIEZyZWUgdG8gYSBzbGFiICovXG4tXHRGUkVFX0FERF9QQVJUSUFMLFx0LyogRnJlZWluZyBtb3ZlcyBzbGFiIHRvIHBhcnRpYWwgbGlzdCAqL1xuLVx0RlJFRV9SRU1PVkVfUEFSVElBTCxcdC8qIEZyZWVpbmcgcmVtb3ZlcyBsYXN0IG9iamVjdCAqL1xuLVx0QUxMT0NfU0xBQixcdFx0LyogTmV3IHNsYWIgYWNxdWlyZWQgZnJvbSBwYWdlIGFsbG9jYXRvciAqL1xuLVx0QUxMT0NfTk9ERV9NSVNNQVRDSCxcdC8qIFJlcXVlc3RlZCBub2RlIGRpZmZlcmVudCBmcm9tIGNwdSBzaGVhZiAqL1xuLVx0RlJFRV9TTEFCLFx0XHQvKiBTbGFiIGZyZWVkIHRvIHRoZSBwYWdlIGFsbG9jYXRvciAqL1xuLVx0T1JERVJfRkFMTEJBQ0ssXHRcdC8qIE51bWJlciBvZiB0aW1lcyBmYWxsYmFjayB3YXMgbmVjZXNzYXJ5ICovXG4tXHRDTVBYQ0hHX0RPVUJMRV9GQUlMLFx0LyogRmFpbHVyZXMgb2Ygc2xhYiBmcmVlbGlzdCB1cGRhdGUgKi9cbi1cdFNIRUFGX0ZMVVNILFx0XHQvKiBPYmplY3RzIGZsdXNoZWQgZnJvbSBhIHNoZWFmICovXG4tXHRTSEVBRl9SRUZJTEwsXHRcdC8qIE9iamVjdHMgcmVmaWxsZWQgdG8gYSBzaGVhZiAqL1xuLVx0U0hFQUZfQUxMT0MsXHRcdC8qIEFsbG9jYXRpb24gb2YgYW4gZW1wdHkgc2hlYWYgaW5jbHVkaW5nIG92ZXJzaXplZCBvbmVzICovXG4tXHRTSEVBRl9GUkVFLFx0XHQvKiBGcmVlaW5nIG9mIGFuIGVtcHR5IHNoZWFmIGluY2x1ZGluZyBvdmVyc2l6ZWQgb25lcyAqL1xuLVx0QkFSTl9HRVQsXHRcdC8qIEdvdCBmdWxsIHNoZWFmIGZyb20gYmFybiAqL1xuLVx0QkFSTl9HRVRfRkFJTCxcdFx0LyogRmFpbGVkIHRvIGdldCBmdWxsIHNoZWFmIGZyb20gYmFybiAqL1xuLVx0QkFSTl9QVVQsXHRcdC8qIFB1dCBmdWxsIHNoZWFmIHRvIGJhcm4gKi9cbi1cdEJBUk5fUFVUX0ZBSUwsXHRcdC8qIEZhaWxlZCB0byBwdXQgZnVsbCBzaGVhZiB0byBiYXJuICovXG4tXHRTSEVBRl9QUkVGSUxMX0ZBU1QsXHQvKiBTaGVhZiBwcmVmaWxsIGdyYWJiZWQgdGhlIHNwYXJlIHNoZWFmICovXG4tXHRTSEVBRl9QUkVGSUxMX1NMT1csXHQvKiBTaGVhZiBwcmVmaWxsIGZvdW5kIG5vIHNwYXJlIHNoZWFmICovXG4tXHRTSEVBRl9QUkVGSUxMX09WRVJTSVpFLFx0LyogQWxsb2NhdGlvbiBvZiBvdmVyc2l6ZSBzaGVhZiBmb3IgcHJlZmlsbCAqL1xuLVx0U0hFQUZfUkVUVVJOX0ZBU1QsXHQvKiBTaGVhZiByZXR1cm4gcmVhdHRhY2hlZCBzcGFyZSBzaGVhZiAqL1xuLVx0U0hFQUZfUkVUVVJOX1NMT1csXHQvKiBTaGVhZiByZXR1cm4gY291bGQgbm90IHJlYXR0YWNoIHNwYXJlICovXG4rI2RlZmluZSBJVEVNX0VYUChuYW1lLCB1bnVzZWQpIG5hbWUsXG4rXHRTVEFUX0lURU1TXG4rI3VuZGVmIElURU1fRVhQXG4gXHROUl9TTFVCX1NUQVRfSVRFTVNcbiB9O1xuIFxuQEAgLTk1MTIsMzQgKzk1NDMsMTIgQEAgc3RhdGljIHNzaXplX3QgdGV4dCMjX3N0b3JlKHN0cnVjdCBrbWVtX2NhY2hlICpzLFx0XHRcXFxuIFx0Y2xlYXJfc3RhdChzLCBzaSk7XHRcdFx0XHRcdFxcXG4gXHRyZXR1cm4gbGVuZ3RoO1x0XHRcdFx0XHRcdFxcXG4gfVx0XHRcdFx0XHRcdFx0XHRcXFxuLVNMQUJfQVRUUih0ZXh0KTtcdFx0XHRcdFx0XHRcXFxuLVxuLVNUQVRfQVRUUihBTExPQ19GQVNUUEFUSCwgYWxsb2NfZmFzdHBhdGgpO1xuLVNUQVRfQVRUUihBTExPQ19TTE9XUEFUSCwgYWxsb2Nfc2xvd3BhdGgpO1xuLVNUQVRfQVRUUihGUkVFX1JDVV9TSEVBRiwgZnJlZV9yY3Vfc2hlYWYpO1xuLVNUQVRfQVRUUihGUkVFX1JDVV9TSEVBRl9GQUlMLCBmcmVlX3JjdV9zaGVhZl9mYWlsKTtcbi1TVEFUX0FUVFIoRlJFRV9GQVNUUEFUSCwgZnJlZV9mYXN0cGF0aCk7XG4tU1RBVF9BVFRSKEZSRUVfU0xPV1BBVEgsIGZyZWVfc2xvd3BhdGgpO1xuLVNUQVRfQVRUUihGUkVFX0FERF9QQVJUSUFMLCBmcmVlX2FkZF9wYXJ0aWFsKTtcbi1TVEFUX0FUVFIoRlJFRV9SRU1PVkVfUEFSVElBTCwgZnJlZV9yZW1vdmVfcGFydGlhbCk7XG4tU1RBVF9BVFRSKEFMTE9DX1NMQUIsIGFsbG9jX3NsYWIpO1xuLVNUQVRfQVRUUihBTExPQ19OT0RFX01JU01BVENILCBhbGxvY19ub2RlX21pc21hdGNoKTtcbi1TVEFUX0FUVFIoRlJFRV9TTEFCLCBmcmVlX3NsYWIpO1xuLVNUQVRfQVRUUihPUkRFUl9GQUxMQkFDSywgb3JkZXJfZmFsbGJhY2spO1xuLVNUQVRfQVRUUihDTVBYQ0hHX0RPVUJMRV9GQUlMLCBjbXB4Y2hnX2RvdWJsZV9mYWlsKTtcbi1TVEFUX0FUVFIoU0hFQUZfRkxVU0gsIHNoZWFmX2ZsdXNoKTtcbi1TVEFUX0FUVFIoU0hFQUZfUkVGSUxMLCBzaGVhZl9yZWZpbGwpO1xuLVNUQVRfQVRUUihTSEVBRl9BTExPQywgc2hlYWZfYWxsb2MpO1xuLVNUQVRfQVRUUihTSEVBRl9GUkVFLCBzaGVhZl9mcmVlKTtcbi1TVEFUX0FUVFIoQkFSTl9HRVQsIGJhcm5fZ2V0KTtcbi1TVEFUX0FUVFIoQkFSTl9HRVRfRkFJTCwgYmFybl9nZXRfZmFpbCk7XG4tU1RBVF9BVFRSKEJBUk5fUFVULCBiYXJuX3B1dCk7XG4tU1RBVF9BVFRSKEJBUk5fUFVUX0ZBSUwsIGJhcm5fcHV0X2ZhaWwpO1xuLVNUQVRfQVRUUihTSEVBRl9QUkVGSUxMX0ZBU1QsIHNoZWFmX3ByZWZpbGxfZmFzdCk7XG4tU1RBVF9BVFRSKFNIRUFGX1BSRUZJTExfU0xPVywgc2hlYWZfcHJlZmlsbF9zbG93KTtcbi1TVEFUX0FUVFIoU0hFQUZfUFJFRklMTF9PVkVSU0laRSwgc2hlYWZfcHJlZmlsbF9vdmVyc2l6ZSk7XG4tU1RBVF9BVFRSKFNIRUFGX1JFVFVSTl9GQVNULCBzaGVhZl9yZXR1cm5fZmFzdCk7XG4tU1RBVF9BVFRSKFNIRUFGX1JFVFVSTl9TTE9XLCBzaGVhZl9yZXR1cm5fc2xvdyk7XG4rU0xBQl9BVFRSKHRleHQpO1xuK1xuKyNkZWZpbmUgSVRFTV9FWFAobmFtZSwgdGV4dCkgU1RBVF9BVFRSKG5hbWUsIHRleHQpXG4rU1RBVF9JVEVNU1xuKyN1bmRlZiBJVEVNX0VYUFxuK1xuICNlbmRpZlx0LyogQ09ORklHX1NMVUJfU1RBVFMgKi9cbiBcbiAjaWZkZWYgQ09ORklHX0tGRU5DRVxuQEAgLTk2MDIsMzIgKzk2MTEsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqY29uc3Qgc2xhYl9hdHRyc1tdID0ge1xuIFx0XHUwMDI2cmVtb3RlX25vZGVfZGVmcmFnX3JhdGlvX2F0dHIuYXR0cixcbiAjZW5kaWZcbiAjaWZkZWYgQ09ORklHX1NMVUJfU1RBVFNcbi1cdFx1MDAyNmFsbG9jX2Zhc3RwYXRoX2F0dHIuYXR0cixcbi1cdFx1MDAyNmFsbG9jX3Nsb3dwYXRoX2F0dHIuYXR0cixcbi1cdFx1MDAyNmZyZWVfcmN1X3NoZWFmX2F0dHIuYXR0cixcbi1cdFx1MDAyNmZyZWVfcmN1X3NoZWFmX2ZhaWxfYXR0ci5hdHRyLFxuLVx0XHUwMDI2ZnJlZV9mYXN0cGF0aF9hdHRyLmF0dHIsXG4tXHRcdTAwMjZmcmVlX3Nsb3dwYXRoX2F0dHIuYXR0cixcbi1cdFx1MDAyNmZyZWVfYWRkX3BhcnRpYWxfYXR0ci5hdHRyLFxuLVx0XHUwMDI2ZnJlZV9yZW1vdmVfcGFydGlhbF9hdHRyLmF0dHIsXG4tXHRcdTAwMjZhbGxvY19zbGFiX2F0dHIuYXR0cixcbi1cdFx1MDAyNmFsbG9jX25vZGVfbWlzbWF0Y2hfYXR0ci5hdHRyLFxuLVx0XHUwMDI2ZnJlZV9zbGFiX2F0dHIuYXR0cixcbi1cdFx1MDAyNm9yZGVyX2ZhbGxiYWNrX2F0dHIuYXR0cixcbi1cdFx1MDAyNmNtcHhjaGdfZG91YmxlX2ZhaWxfYXR0ci5hdHRyLFxuLVx0XHUwMDI2c2hlYWZfZmx1c2hfYXR0ci5hdHRyLFxuLVx0XHUwMDI2c2hlYWZfcmVmaWxsX2F0dHIuYXR0cixcbi1cdFx1MDAyNnNoZWFmX2FsbG9jX2F0dHIuYXR0cixcbi1cdFx1MDAyNnNoZWFmX2ZyZWVfYXR0ci5hdHRyLFxuLVx0XHUwMDI2YmFybl9nZXRfYXR0ci5hdHRyLFxuLVx0XHUwMDI2YmFybl9nZXRfZmFpbF9hdHRyLmF0dHIsXG4tXHRcdTAwMjZiYXJuX3B1dF9hdHRyLmF0dHIsXG4tXHRcdTAwMjZiYXJuX3B1dF9mYWlsX2F0dHIuYXR0cixcbi1cdFx1MDAyNnNoZWFmX3ByZWZpbGxfZmFzdF9hdHRyLmF0dHIsXG4tXHRcdTAwMjZzaGVhZl9wcmVmaWxsX3Nsb3dfYXR0ci5hdHRyLFxuLVx0XHUwMDI2c2hlYWZfcHJlZmlsbF9vdmVyc2l6ZV9hdHRyLmF0dHIsXG4tXHRcdTAwMjZzaGVhZl9yZXR1cm5fZmFzdF9hdHRyLmF0dHIsXG4tXHRcdTAwMjZzaGVhZl9yZXR1cm5fc2xvd19hdHRyLmF0dHIsXG4rI2RlZmluZSBJVEVNX0VYUCh1bnVzZWQsIHRleHQpIFx1MDAyNnRleHQjI19hdHRyLmF0dHIsXG4rXHRTVEFUX0lURU1TXG4rI3VuZGVmIElURU1fRVhQXG4gI2VuZGlmXG4gI2lmZGVmIENPTkZJR19GQUlMU0xBQlxuIFx0XHUwMDI2ZmFpbHNsYWJfYXR0ci5hdHRyLFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDc6NTQ6MDguODg4NTc1Mzc5WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Njg1MjQ5NTk0OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBTTFVCIFN0YXRpc3RpY3MgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGp1c3QgcmV2aWV3ZWQgdGhpcyBwYXRjaCBhbmQgaXQncyBhIHN0cmFpZ2h0Zm9yd2FyZCByZWZhY3RvcmluZyB3aXRoaW4gYG1tL3NsdWIuY2AuIE15IGluaXRpYWwgaW1wcmVzc2lvbiBpcyB0aGF0IGl0J3MgcHVyZWx5IGNvc21ldGljLCB3aGljaCBpcyBnb29kLiBJIHNlZSB0aGUgbWFpbiBjaGFuZ2UgaXMgdGhlIGludHJvZHVjdGlvbiBvZiBhIG1hY3JvLCBgU1RBVF9JVEVNU2AsIGFsb25nIHdpdGggYElURU1fRVhQYC4gSXQgbG9va3MgbGlrZSB0aGV5J3JlIGp1c3QgYWltaW5nIHRvIGF2b2lkIGNvZGUgZHVwbGljYXRpb24gYWNyb3NzIHRoZSBgc3RhdF9pdGVtYCBlbnVtIGRlZmluaXRpb24sIHRoZSBgU1RBVF9BVFRSYCBkZWNsYXJhdGlvbnMsIGFuZCB0aGUgZW50cmllcyB3aXRoaW4gdGhlIGBzbGFiX2F0dHJzYCBhcnJheS5cblxuTGV0IG1lIGp1c3QgcXVpY2tseSB2ZXJpZnkgdGhpcyBieSBjaGVja2luZyB0aGUgZGlmZiBkaXJlY3RseS4uLiBZdXAsIGxvb2tzIGV4YWN0bHkgYXMgSSB0aG91Z2h0LiBUaGV5J3ZlIHVzZWQgYFNUQVRfSVRFTVNgIGFuZCBgSVRFTV9FWFBgIHRvIHJlcGxhY2UgdGhlIHJlcGV0aXRpdmUgY29kZSBibG9ja3MuIFRoZSBjb2RlIGl0c2VsZiBpcyBzdHJ1Y3R1cmFsbHkgaWRlbnRpY2FsLCBvbmx5IHRoZSBwcmVzZW50YXRpb24gaGFzIGNoYW5nZWQuIE5vIG5ldyBmZWF0dXJlcywgbm8gY2hhbmdlIGluIGV4ZWN1dGlvbiBwYXRocywgbm8gZnVuY3Rpb25hbCBjaGFuZ2VzLiBJdCdzIGp1c3QgY2xlYW5lciBhbmQgbW9yZSBtYWludGFpbmFibGUgZnJvbSBhIGNvZGluZyBzdHlsZSBwZXJzcGVjdGl2ZS4gR29vZCBmb3IgcmVhZGFiaWxpdHksIGxlc3Mgcm9vbSBmb3IgZXJyb3JzLCBhbmQgZWFzaWVyIG1haW50ZW5hbmNlIGRvd24gdGhlIHJvYWQuXG5cbkdpdmVuIHRoYXQgdGhlcmUgYXJlIG5vIGZ1bmN0aW9uYWwgY2hhbmdlcyB3aGF0c29ldmVyLCBJJ20gY29uZmlkZW50IGluIG1hcmtpbmcgdGhpcyBhcyBgV29ydGhGdXp6aW5nPWZhbHNlYC4gSXQncyBhIGNsZWFuIHJlZmFjdG9yIHRoYXQgZG9lc24ndCBpbnRyb2R1Y2UgYW55IG5ldyBhdHRhY2sgc3VyZmFjZXMgb3IgbG9naWMgdGhhdCBuZWVkcyBmdXp6aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NDI4LCJPdXRwdXRUb2tlbnMiOjcxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzU3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDc6NTQ6MTUuNzQxMDc2ODk4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0OTQ4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBwdXJlbHkgcmVmYWN0b3JzIHRoZSBkZWZpbml0aW9uIG9mIFNMVUIgc3RhdGlzdGljcyBhdHRyaWJ1dGVzIHVzaW5nIG1hY3JvcyAoU1RBVF9JVEVNUyBhbmQgSVRFTV9FWFApIHRvIHJlZHVjZSBjb2RlIGR1cGxpY2F0aW9uLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgZXhlY3V0aW9uIGZsb3cuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBwdXJlbHkgcmVmYWN0b3JzIHRoZSBkZWZpbml0aW9uIG9mIFNMVUIgc3RhdGlzdGljcyBhdHRyaWJ1dGVzIHVzaW5nIG1hY3JvcyAoU1RBVF9JVEVNUyBhbmQgSVRFTV9FWFApIHRvIHJlZHVjZSBjb2RlIGR1cGxpY2F0aW9uLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgZXhlY3V0aW9uIGZsb3cuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNzo1NDoxNS43NDExMzI0NzhaIiwiU2VxIjo1LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTIyMDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowkmhnq[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-14 07:22:43 +0000 UTC FinishedAt: 2026-08-14 07:54:16 +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+CgkJCTx0ZD4yMDI2LzA4LzE0IDA3OjU0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcHVyZWx5IHJlZmFjdG9ycyB0aGUgZGVmaW5pdGlvbiBvZiBTTFVCIHN0YXRpc3RpY3MgYXR0cmlidXRlcyB1c2luZyBtYWNyb3MgKFNUQVRfSVRFTVMgYW5kIElURU1fRVhQKSB0byByZWR1Y2UgY29kZSBkdXBsaWNhdGlvbi4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGV4ZWN1dGlvbiBmbG93LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNzo1NDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDNlZjE3MTE1ODVhMzRkNmU3YjRjM2NjMDUyZDg4YmFiZGRlN2ZlZjVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEF1ZyAxNCAwNzo1NDowNyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9tbS9zbHViLmMgYi9tbS9zbHViLmNcbmluZGV4IGIwY2QwNTcyZTJmMjYuLjhkZDI1MDMyZmJhNDUgMTAwNjQ0XG4tLS0gYS9tbS9zbHViLmNcbiYjNDM7JiM0MzsmIzQzOyBiL21tL3NsdWIuY1xuQEAgLTM1OSwzMyAmIzQzOzM1OSw2NCBAQCBlbnVtIGFkZF9tb2RlIHtcbiBcdEFERF9UT19UQUlMLFxuIH07XG4gXG4mIzQzOyNkZWZpbmUgU1RBVF9JVEVNU1x0XHRcdFx0XHRcdFx0XFxcbiYjNDM7XHQvKiBBbGxvY2F0aW9uIGZyb20gcGVyY3B1IHNoZWF2ZXMgKi9cdFx0XHRcdFxcXG4mIzQzO1x0SVRFTV9FWFAoQUxMT0NfRkFTVFBBVEgsIGFsbG9jX2Zhc3RwYXRoKVx0XHRcdFxcXG4mIzQzO1x0LyogQWxsb2NhdGlvbiBmcm9tIHBhcnRpYWwgb3IgbmV3IHNsYWIgKi9cdFx0XHRcXFxuJiM0MztcdElURU1fRVhQKEFMTE9DX1NMT1dQQVRILCBhbGxvY19zbG93cGF0aClcdFx0XHRcXFxuJiM0MztcdC8qIEZyZWUgdG8gcmN1X2ZyZWUgc2hlYWYgKi9cdFx0XHRcdFx0XFxcbiYjNDM7XHRJVEVNX0VYUChGUkVFX1JDVV9TSEVBRiwgZnJlZV9yY3Vfc2hlYWYpXHRcdFx0XFxcbiYjNDM7XHQvKiBGYWlsZWQgdG8gZnJlZSB0byBhIHJjdV9mcmVlIHNoZWFmICovXHRcdFx0XFxcbiYjNDM7XHRJVEVNX0VYUChGUkVFX1JDVV9TSEVBRl9GQUlMLCBmcmVlX3JjdV9zaGVhZl9mYWlsKVx0XHRcXFxuJiM0MztcdC8qIEZyZWUgdG8gcGVyY3B1IHNoZWF2ZXMgKi9cdFx0XHRcdFx0XFxcbiYjNDM7XHRJVEVNX0VYUChGUkVFX0ZBU1RQQVRILCBmcmVlX2Zhc3RwYXRoKVx0XHRcdFx0XFxcbiYjNDM7XHQvKiBGcmVlIHRvIGEgc2xhYiAqL1x0XHRcdFx0XHRcdFxcXG4mIzQzO1x0SVRFTV9FWFAoRlJFRV9TTE9XUEFUSCwgZnJlZV9zbG93cGF0aClcdFx0XHRcdFxcXG4mIzQzO1x0LyogRnJlZWluZyBtb3ZlcyBzbGFiIHRvIHBhcnRpYWwgbGlzdCAqL1x0XHRcdFxcXG4mIzQzO1x0SVRFTV9FWFAoRlJFRV9BRERfUEFSVElBTCwgZnJlZV9hZGRfcGFydGlhbClcdFx0XHRcXFxuJiM0MztcdC8qIEZyZWVpbmcgcmVtb3ZlcyBsYXN0IG9iamVjdCAqL1x0XHRcdFx0XFxcbiYjNDM7XHRJVEVNX0VYUChGUkVFX1JFTU9WRV9QQVJUSUFMLCBmcmVlX3JlbW92ZV9wYXJ0aWFsKVx0XHRcXFxuJiM0MztcdC8qIE5ldyBzbGFiIGFjcXVpcmVkIGZyb20gcGFnZSBhbGxvY2F0b3IgKi9cdFx0XHRcXFxuJiM0MztcdElURU1fRVhQKEFMTE9DX1NMQUIsIGFsbG9jX3NsYWIpXHRcdFx0XHRcXFxuJiM0MztcdC8qIFJlcXVlc3RlZCBub2RlIGRpZmZlcmVudCBmcm9tIGNwdSBzaGVhZiAqL1x0XHRcdFxcXG4mIzQzO1x0SVRFTV9FWFAoQUxMT0NfTk9ERV9NSVNNQVRDSCwgYWxsb2Nfbm9kZV9taXNtYXRjaClcdFx0XFxcbiYjNDM7XHQvKiBTbGFiIGZyZWVkIHRvIHRoZSBwYWdlIGFsbG9jYXRvciAqL1x0XHRcdFx0XFxcbiYjNDM7XHRJVEVNX0VYUChGUkVFX1NMQUIsIGZyZWVfc2xhYilcdFx0XHRcdFx0XFxcbiYjNDM7XHQvKiBOdW1iZXIgb2YgdGltZXMgZmFsbGJhY2sgd2FzIG5lY2Vzc2FyeSAqL1x0XHRcdFxcXG4mIzQzO1x0SVRFTV9FWFAoT1JERVJfRkFMTEJBQ0ssIG9yZGVyX2ZhbGxiYWNrKVx0XHRcdFxcXG4mIzQzO1x0LyogRmFpbHVyZXMgb2Ygc2xhYiBmcmVlbGlzdCB1cGRhdGUgKi9cdFx0XHRcdFxcXG4mIzQzO1x0SVRFTV9FWFAoQ01QWENIR19ET1VCTEVfRkFJTCwgY21weGNoZ19kb3VibGVfZmFpbClcdFx0XFxcbiYjNDM7XHQvKiBPYmplY3RzIGZsdXNoZWQgZnJvbSBhIHNoZWFmICovXHRcdFx0XHRcXFxuJiM0MztcdElURU1fRVhQKFNIRUFGX0ZMVVNILCBzaGVhZl9mbHVzaClcdFx0XHRcdFxcXG4mIzQzO1x0LyogT2JqZWN0cyByZWZpbGxlZCB0byBhIHNoZWFmICovXHRcdFx0XHRcXFxuJiM0MztcdElURU1fRVhQKFNIRUFGX1JFRklMTCwgc2hlYWZfcmVmaWxsKVx0XHRcdFx0XFxcbiYjNDM7XHQvKiBBbGxvY2F0aW9uIG9mIGFuIGVtcHR5IHNoZWFmIGluY2x1ZGluZyBvdmVyc2l6ZWQgb25lcyAqL1x0XFxcbiYjNDM7XHRJVEVNX0VYUChTSEVBRl9BTExPQywgc2hlYWZfYWxsb2MpXHRcdFx0XHRcXFxuJiM0MztcdC8qIEZyZWVpbmcgb2YgYW4gZW1wdHkgc2hlYWYgaW5jbHVkaW5nIG92ZXJzaXplZCBvbmVzICovXHRcXFxuJiM0MztcdElURU1fRVhQKFNIRUFGX0ZSRUUsIHNoZWFmX2ZyZWUpXHRcdFx0XHRcXFxuJiM0MztcdC8qIEdvdCBmdWxsIHNoZWFmIGZyb20gYmFybiAqL1x0XHRcdFx0XHRcXFxuJiM0MztcdElURU1fRVhQKEJBUk5fR0VULCBiYXJuX2dldClcdFx0XHRcdFx0XFxcbiYjNDM7XHQvKiBGYWlsZWQgdG8gZ2V0IGZ1bGwgc2hlYWYgZnJvbSBiYXJuICovXHRcdFx0XFxcbiYjNDM7XHRJVEVNX0VYUChCQVJOX0dFVF9GQUlMLCBiYXJuX2dldF9mYWlsKVx0XHRcdFx0XFxcbiYjNDM7XHQvKiBQdXQgZnVsbCBzaGVhZiB0byBiYXJuICovXHRcdFx0XHRcdFxcXG4mIzQzO1x0SVRFTV9FWFAoQkFSTl9QVVQsIGJhcm5fcHV0KVx0XHRcdFx0XHRcXFxuJiM0MztcdC8qIEZhaWxlZCB0byBwdXQgZnVsbCBzaGVhZiB0byBiYXJuICovXHRcdFx0XHRcXFxuJiM0MztcdElURU1fRVhQKEJBUk5fUFVUX0ZBSUwsIGJhcm5fcHV0X2ZhaWwpXHRcdFx0XHRcXFxuJiM0MztcdC8qIFNoZWFmIHByZWZpbGwgZ3JhYmJlZCB0aGUgc3BhcmUgc2hlYWYgKi9cdFx0XHRcXFxuJiM0MztcdElURU1fRVhQKFNIRUFGX1BSRUZJTExfRkFTVCwgc2hlYWZfcHJlZmlsbF9mYXN0KVx0XHRcXFxuJiM0MztcdC8qIFNoZWFmIHByZWZpbGwgZm91bmQgbm8gc3BhcmUgc2hlYWYgKi9cdFx0XHRcXFxuJiM0MztcdElURU1fRVhQKFNIRUFGX1BSRUZJTExfU0xPVywgc2hlYWZfcHJlZmlsbF9zbG93KVx0XHRcXFxuJiM0MztcdC8qIEFsbG9jYXRpb24gb2Ygb3ZlcnNpemUgc2hlYWYgZm9yIHByZWZpbGwgKi9cdFx0XHRcXFxuJiM0MztcdElURU1fRVhQKFNIRUFGX1BSRUZJTExfT1ZFUlNJWkUsIHNoZWFmX3ByZWZpbGxfb3ZlcnNpemUpXHRcXFxuJiM0MztcdC8qIFNoZWFmIHJldHVybiByZWF0dGFjaGVkIHNwYXJlIHNoZWFmICovXHRcdFx0XFxcbiYjNDM7XHRJVEVNX0VYUChTSEVBRl9SRVRVUk5fRkFTVCwgc2hlYWZfcmV0dXJuX2Zhc3QpXHRcdFx0XFxcbiYjNDM7XHQvKiBTaGVhZiByZXR1cm4gY291bGQgbm90IHJlYXR0YWNoIHNwYXJlICovXHRcdFx0XFxcbiYjNDM7XHRJVEVNX0VYUChTSEVBRl9SRVRVUk5fU0xPVywgc2hlYWZfcmV0dXJuX3Nsb3cpXG4mIzQzO1xuIGVudW0gc3RhdF9pdGVtIHtcbi1cdEFMTE9DX0ZBU1RQQVRILFx0XHQvKiBBbGxvY2F0aW9uIGZyb20gcGVyY3B1IHNoZWF2ZXMgKi9cbi1cdEFMTE9DX1NMT1dQQVRILFx0XHQvKiBBbGxvY2F0aW9uIGZyb20gcGFydGlhbCBvciBuZXcgc2xhYiAqL1xuLVx0RlJFRV9SQ1VfU0hFQUYsXHRcdC8qIEZyZWUgdG8gcmN1X2ZyZWUgc2hlYWYgKi9cbi1cdEZSRUVfUkNVX1NIRUFGX0ZBSUwsXHQvKiBGYWlsZWQgdG8gZnJlZSB0byBhIHJjdV9mcmVlIHNoZWFmICovXG4tXHRGUkVFX0ZBU1RQQVRILFx0XHQvKiBGcmVlIHRvIHBlcmNwdSBzaGVhdmVzICovXG4tXHRGUkVFX1NMT1dQQVRILFx0XHQvKiBGcmVlIHRvIGEgc2xhYiAqL1xuLVx0RlJFRV9BRERfUEFSVElBTCxcdC8qIEZyZWVpbmcgbW92ZXMgc2xhYiB0byBwYXJ0aWFsIGxpc3QgKi9cbi1cdEZSRUVfUkVNT1ZFX1BBUlRJQUwsXHQvKiBGcmVlaW5nIHJlbW92ZXMgbGFzdCBvYmplY3QgKi9cbi1cdEFMTE9DX1NMQUIsXHRcdC8qIE5ldyBzbGFiIGFjcXVpcmVkIGZyb20gcGFnZSBhbGxvY2F0b3IgKi9cbi1cdEFMTE9DX05PREVfTUlTTUFUQ0gsXHQvKiBSZXF1ZXN0ZWQgbm9kZSBkaWZmZXJlbnQgZnJvbSBjcHUgc2hlYWYgKi9cbi1cdEZSRUVfU0xBQixcdFx0LyogU2xhYiBmcmVlZCB0byB0aGUgcGFnZSBhbGxvY2F0b3IgKi9cbi1cdE9SREVSX0ZBTExCQUNLLFx0XHQvKiBOdW1iZXIgb2YgdGltZXMgZmFsbGJhY2sgd2FzIG5lY2Vzc2FyeSAqL1xuLVx0Q01QWENIR19ET1VCTEVfRkFJTCxcdC8qIEZhaWx1cmVzIG9mIHNsYWIgZnJlZWxpc3QgdXBkYXRlICovXG4tXHRTSEVBRl9GTFVTSCxcdFx0LyogT2JqZWN0cyBmbHVzaGVkIGZyb20gYSBzaGVhZiAqL1xuLVx0U0hFQUZfUkVGSUxMLFx0XHQvKiBPYmplY3RzIHJlZmlsbGVkIHRvIGEgc2hlYWYgKi9cbi1cdFNIRUFGX0FMTE9DLFx0XHQvKiBBbGxvY2F0aW9uIG9mIGFuIGVtcHR5IHNoZWFmIGluY2x1ZGluZyBvdmVyc2l6ZWQgb25lcyAqL1xuLVx0U0hFQUZfRlJFRSxcdFx0LyogRnJlZWluZyBvZiBhbiBlbXB0eSBzaGVhZiBpbmNsdWRpbmcgb3ZlcnNpemVkIG9uZXMgKi9cbi1cdEJBUk5fR0VULFx0XHQvKiBHb3QgZnVsbCBzaGVhZiBmcm9tIGJhcm4gKi9cbi1cdEJBUk5fR0VUX0ZBSUwsXHRcdC8qIEZhaWxlZCB0byBnZXQgZnVsbCBzaGVhZiBmcm9tIGJhcm4gKi9cbi1cdEJBUk5fUFVULFx0XHQvKiBQdXQgZnVsbCBzaGVhZiB0byBiYXJuICovXG4tXHRCQVJOX1BVVF9GQUlMLFx0XHQvKiBGYWlsZWQgdG8gcHV0IGZ1bGwgc2hlYWYgdG8gYmFybiAqL1xuLVx0U0hFQUZfUFJFRklMTF9GQVNULFx0LyogU2hlYWYgcHJlZmlsbCBncmFiYmVkIHRoZSBzcGFyZSBzaGVhZiAqL1xuLVx0U0hFQUZfUFJFRklMTF9TTE9XLFx0LyogU2hlYWYgcHJlZmlsbCBmb3VuZCBubyBzcGFyZSBzaGVhZiAqL1xuLVx0U0hFQUZfUFJFRklMTF9PVkVSU0laRSxcdC8qIEFsbG9jYXRpb24gb2Ygb3ZlcnNpemUgc2hlYWYgZm9yIHByZWZpbGwgKi9cbi1cdFNIRUFGX1JFVFVSTl9GQVNULFx0LyogU2hlYWYgcmV0dXJuIHJlYXR0YWNoZWQgc3BhcmUgc2hlYWYgKi9cbi1cdFNIRUFGX1JFVFVSTl9TTE9XLFx0LyogU2hlYWYgcmV0dXJuIGNvdWxkIG5vdCByZWF0dGFjaCBzcGFyZSAqL1xuJiM0MzsjZGVmaW5lIElURU1fRVhQKG5hbWUsIHVudXNlZCkgbmFtZSxcbiYjNDM7XHRTVEFUX0lURU1TXG4mIzQzOyN1bmRlZiBJVEVNX0VYUFxuIFx0TlJfU0xVQl9TVEFUX0lURU1TXG4gfTtcbiBcbkBAIC05NTEyLDM0ICYjNDM7OTU0MywxMiBAQCBzdGF0aWMgc3NpemVfdCB0ZXh0IyNfc3RvcmUoc3RydWN0IGttZW1fY2FjaGUgKnMsXHRcdFxcXG4gXHRjbGVhcl9zdGF0KHMsIHNpKTtcdFx0XHRcdFx0XFxcbiBcdHJldHVybiBsZW5ndGg7XHRcdFx0XHRcdFx0XFxcbiB9XHRcdFx0XHRcdFx0XHRcdFxcXG4tU0xBQl9BVFRSKHRleHQpO1x0XHRcdFx0XHRcdFxcXG4tXG4tU1RBVF9BVFRSKEFMTE9DX0ZBU1RQQVRILCBhbGxvY19mYXN0cGF0aCk7XG4tU1RBVF9BVFRSKEFMTE9DX1NMT1dQQVRILCBhbGxvY19zbG93cGF0aCk7XG4tU1RBVF9BVFRSKEZSRUVfUkNVX1NIRUFGLCBmcmVlX3JjdV9zaGVhZik7XG4tU1RBVF9BVFRSKEZSRUVfUkNVX1NIRUFGX0ZBSUwsIGZyZWVfcmN1X3NoZWFmX2ZhaWwpO1xuLVNUQVRfQVRUUihGUkVFX0ZBU1RQQVRILCBmcmVlX2Zhc3RwYXRoKTtcbi1TVEFUX0FUVFIoRlJFRV9TTE9XUEFUSCwgZnJlZV9zbG93cGF0aCk7XG4tU1RBVF9BVFRSKEZSRUVfQUREX1BBUlRJQUwsIGZyZWVfYWRkX3BhcnRpYWwpO1xuLVNUQVRfQVRUUihGUkVFX1JFTU9WRV9QQVJUSUFMLCBmcmVlX3JlbW92ZV9wYXJ0aWFsKTtcbi1TVEFUX0FUVFIoQUxMT0NfU0xBQiwgYWxsb2Nfc2xhYik7XG4tU1RBVF9BVFRSKEFMTE9DX05PREVfTUlTTUFUQ0gsIGFsbG9jX25vZGVfbWlzbWF0Y2gpO1xuLVNUQVRfQVRUUihGUkVFX1NMQUIsIGZyZWVfc2xhYik7XG4tU1RBVF9BVFRSKE9SREVSX0ZBTExCQUNLLCBvcmRlcl9mYWxsYmFjayk7XG4tU1RBVF9BVFRSKENNUFhDSEdfRE9VQkxFX0ZBSUwsIGNtcHhjaGdfZG91YmxlX2ZhaWwpO1xuLVNUQVRfQVRUUihTSEVBRl9GTFVTSCwgc2hlYWZfZmx1c2gpO1xuLVNUQVRfQVRUUihTSEVBRl9SRUZJTEwsIHNoZWFmX3JlZmlsbCk7XG4tU1RBVF9BVFRSKFNIRUFGX0FMTE9DLCBzaGVhZl9hbGxvYyk7XG4tU1RBVF9BVFRSKFNIRUFGX0ZSRUUsIHNoZWFmX2ZyZWUpO1xuLVNUQVRfQVRUUihCQVJOX0dFVCwgYmFybl9nZXQpO1xuLVNUQVRfQVRUUihCQVJOX0dFVF9GQUlMLCBiYXJuX2dldF9mYWlsKTtcbi1TVEFUX0FUVFIoQkFSTl9QVVQsIGJhcm5fcHV0KTtcbi1TVEFUX0FUVFIoQkFSTl9QVVRfRkFJTCwgYmFybl9wdXRfZmFpbCk7XG4tU1RBVF9BVFRSKFNIRUFGX1BSRUZJTExfRkFTVCwgc2hlYWZfcHJlZmlsbF9mYXN0KTtcbi1TVEFUX0FUVFIoU0hFQUZfUFJFRklMTF9TTE9XLCBzaGVhZl9wcmVmaWxsX3Nsb3cpO1xuLVNUQVRfQVRUUihTSEVBRl9QUkVGSUxMX09WRVJTSVpFLCBzaGVhZl9wcmVmaWxsX292ZXJzaXplKTtcbi1TVEFUX0FUVFIoU0hFQUZfUkVUVVJOX0ZBU1QsIHNoZWFmX3JldHVybl9mYXN0KTtcbi1TVEFUX0FUVFIoU0hFQUZfUkVUVVJOX1NMT1csIHNoZWFmX3JldHVybl9zbG93KTtcbiYjNDM7U0xBQl9BVFRSKHRleHQpO1xuJiM0MztcbiYjNDM7I2RlZmluZSBJVEVNX0VYUChuYW1lLCB0ZXh0KSBTVEFUX0FUVFIobmFtZSwgdGV4dClcbiYjNDM7U1RBVF9JVEVNU1xuJiM0MzsjdW5kZWYgSVRFTV9FWFBcbiYjNDM7XG4gI2VuZGlmXHQvKiBDT05GSUdfU0xVQl9TVEFUUyAqL1xuIFxuICNpZmRlZiBDT05GSUdfS0ZFTkNFXG5AQCAtOTYwMiwzMiAmIzQzOzk2MTEsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqY29uc3Qgc2xhYl9hdHRyc1tdID0ge1xuIFx0XHUwMDI2cmVtb3RlX25vZGVfZGVmcmFnX3JhdGlvX2F0dHIuYXR0cixcbiAjZW5kaWZcbiAjaWZkZWYgQ09ORklHX1NMVUJfU1RBVFNcbi1cdFx1MDAyNmFsbG9jX2Zhc3RwYXRoX2F0dHIuYXR0cixcbi1cdFx1MDAyNmFsbG9jX3Nsb3dwYXRoX2F0dHIuYXR0cixcbi1cdFx1MDAyNmZyZWVfcmN1X3NoZWFmX2F0dHIuYXR0cixcbi1cdFx1MDAyNmZyZWVfcmN1X3NoZWFmX2ZhaWxfYXR0ci5hdHRyLFxuLVx0XHUwMDI2ZnJlZV9mYXN0cGF0aF9hdHRyLmF0dHIsXG4tXHRcdTAwMjZmcmVlX3Nsb3dwYXRoX2F0dHIuYXR0cixcbi1cdFx1MDAyNmZyZWVfYWRkX3BhcnRpYWxfYXR0ci5hdHRyLFxuLVx0XHUwMDI2ZnJlZV9yZW1vdmVfcGFydGlhbF9hdHRyLmF0dHIsXG4tXHRcdTAwMjZhbGxvY19zbGFiX2F0dHIuYXR0cixcbi1cdFx1MDAyNmFsbG9jX25vZGVfbWlzbWF0Y2hfYXR0ci5hdHRyLFxuLVx0XHUwMDI2ZnJlZV9zbGFiX2F0dHIuYXR0cixcbi1cdFx1MDAyNm9yZGVyX2ZhbGxiYWNrX2F0dHIuYXR0cixcbi1cdFx1MDAyNmNtcHhjaGdfZG91YmxlX2ZhaWxfYXR0ci5hdHRyLFxuLVx0XHUwMDI2c2hlYWZfZmx1c2hfYXR0ci5hdHRyLFxuLVx0XHUwMDI2c2hlYWZfcmVmaWxsX2F0dHIuYXR0cixcbi1cdFx1MDAyNnNoZWFmX2FsbG9jX2F0dHIuYXR0cixcbi1cdFx1MDAyNnNoZWFmX2ZyZWVfYXR0ci5hdHRyLFxuLVx0XHUwMDI2YmFybl9nZXRfYXR0ci5hdHRyLFxuLVx0XHUwMDI2YmFybl9nZXRfZmFpbF9hdHRyLmF0dHIsXG4tXHRcdTAwMjZiYXJuX3B1dF9hdHRyLmF0dHIsXG4tXHRcdTAwMjZiYXJuX3B1dF9mYWlsX2F0dHIuYXR0cixcbi1cdFx1MDAyNnNoZWFmX3ByZWZpbGxfZmFzdF9hdHRyLmF0dHIsXG4tXHRcdTAwMjZzaGVhZl9wcmVmaWxsX3Nsb3dfYXR0ci5hdHRyLFxuLVx0XHUwMDI2c2hlYWZfcHJlZmlsbF9vdmVyc2l6ZV9hdHRyLmF0dHIsXG4tXHRcdTAwMjZzaGVhZl9yZXR1cm5fZmFzdF9hdHRyLmF0dHIsXG4tXHRcdTAwMjZzaGVhZl9yZXR1cm5fc2xvd19hdHRyLmF0dHIsXG4mIzQzOyNkZWZpbmUgSVRFTV9FWFAodW51c2VkLCB0ZXh0KSBcdTAwMjZ0ZXh0IyNfYXR0ci5hdHRyLFxuJiM0MztcdFNUQVRfSVRFTVNcbiYjNDM7I3VuZGVmIElURU1fRVhQXG4gI2VuZGlmXG4gI2lmZGVmIENPTkZJR19GQUlMU0xBQlxuIFx0XHUwMDI2ZmFpbHNsYWJfYXR0ci5hdHRyLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE0IDA3OjU0PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBwdXJlbHkgcmVmYWN0b3JzIHRoZSBkZWZpbml0aW9uIG9mIFNMVUIgc3RhdGlzdGljcyBhdHRyaWJ1dGVzIHVzaW5nIG1hY3JvcyAoU1RBVF9JVEVNUyBhbmQgSVRFTV9FWFApIHRvIHJlZHVjZSBjb2RlIGR1cGxpY2F0aW9uLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgZXhlY3V0aW9uIGZsb3cuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgM2VmMTcxMTU4NWEzNGQ2ZTdiNGMzY2MwNTJkODhiYWJkZGU3ZmVmNQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgQXVnIDE0IDA3OjU0OjA3IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbW0vc2x1Yi5jIGIvbW0vc2x1Yi5jCmluZGV4IGIwY2QwNTcyZTJmMjYuLjhkZDI1MDMyZmJhNDUgMTAwNjQ0Ci0tLSBhL21tL3NsdWIuYwomIzQzOyYjNDM7JiM0MzsgYi9tbS9zbHViLmMKQEAgLTM1OSwzMyAmIzQzOzM1OSw2NCBAQCBlbnVtIGFkZF9tb2RlIHsKIAlBRERfVE9fVEFJTCwKIH07CiAKJiM0MzsjZGVmaW5lIFNUQVRfSVRFTVMJCQkJCQkJXAomIzQzOwkvKiBBbGxvY2F0aW9uIGZyb20gcGVyY3B1IHNoZWF2ZXMgKi8JCQkJXAomIzQzOwlJVEVNX0VYUChBTExPQ19GQVNUUEFUSCwgYWxsb2NfZmFzdHBhdGgpCQkJXAomIzQzOwkvKiBBbGxvY2F0aW9uIGZyb20gcGFydGlhbCBvciBuZXcgc2xhYiAqLwkJCVwKJiM0MzsJSVRFTV9FWFAoQUxMT0NfU0xPV1BBVEgsIGFsbG9jX3Nsb3dwYXRoKQkJCVwKJiM0MzsJLyogRnJlZSB0byByY3VfZnJlZSBzaGVhZiAqLwkJCQkJXAomIzQzOwlJVEVNX0VYUChGUkVFX1JDVV9TSEVBRiwgZnJlZV9yY3Vfc2hlYWYpCQkJXAomIzQzOwkvKiBGYWlsZWQgdG8gZnJlZSB0byBhIHJjdV9mcmVlIHNoZWFmICovCQkJXAomIzQzOwlJVEVNX0VYUChGUkVFX1JDVV9TSEVBRl9GQUlMLCBmcmVlX3JjdV9zaGVhZl9mYWlsKQkJXAomIzQzOwkvKiBGcmVlIHRvIHBlcmNwdSBzaGVhdmVzICovCQkJCQlcCiYjNDM7CUlURU1fRVhQKEZSRUVfRkFTVFBBVEgsIGZyZWVfZmFzdHBhdGgpCQkJCVwKJiM0MzsJLyogRnJlZSB0byBhIHNsYWIgKi8JCQkJCQlcCiYjNDM7CUlURU1fRVhQKEZSRUVfU0xPV1BBVEgsIGZyZWVfc2xvd3BhdGgpCQkJCVwKJiM0MzsJLyogRnJlZWluZyBtb3ZlcyBzbGFiIHRvIHBhcnRpYWwgbGlzdCAqLwkJCVwKJiM0MzsJSVRFTV9FWFAoRlJFRV9BRERfUEFSVElBTCwgZnJlZV9hZGRfcGFydGlhbCkJCQlcCiYjNDM7CS8qIEZyZWVpbmcgcmVtb3ZlcyBsYXN0IG9iamVjdCAqLwkJCQlcCiYjNDM7CUlURU1fRVhQKEZSRUVfUkVNT1ZFX1BBUlRJQUwsIGZyZWVfcmVtb3ZlX3BhcnRpYWwpCQlcCiYjNDM7CS8qIE5ldyBzbGFiIGFjcXVpcmVkIGZyb20gcGFnZSBhbGxvY2F0b3IgKi8JCQlcCiYjNDM7CUlURU1fRVhQKEFMTE9DX1NMQUIsIGFsbG9jX3NsYWIpCQkJCVwKJiM0MzsJLyogUmVxdWVzdGVkIG5vZGUgZGlmZmVyZW50IGZyb20gY3B1IHNoZWFmICovCQkJXAomIzQzOwlJVEVNX0VYUChBTExPQ19OT0RFX01JU01BVENILCBhbGxvY19ub2RlX21pc21hdGNoKQkJXAomIzQzOwkvKiBTbGFiIGZyZWVkIHRvIHRoZSBwYWdlIGFsbG9jYXRvciAqLwkJCQlcCiYjNDM7CUlURU1fRVhQKEZSRUVfU0xBQiwgZnJlZV9zbGFiKQkJCQkJXAomIzQzOwkvKiBOdW1iZXIgb2YgdGltZXMgZmFsbGJhY2sgd2FzIG5lY2Vzc2FyeSAqLwkJCVwKJiM0MzsJSVRFTV9FWFAoT1JERVJfRkFMTEJBQ0ssIG9yZGVyX2ZhbGxiYWNrKQkJCVwKJiM0MzsJLyogRmFpbHVyZXMgb2Ygc2xhYiBmcmVlbGlzdCB1cGRhdGUgKi8JCQkJXAomIzQzOwlJVEVNX0VYUChDTVBYQ0hHX0RPVUJMRV9GQUlMLCBjbXB4Y2hnX2RvdWJsZV9mYWlsKQkJXAomIzQzOwkvKiBPYmplY3RzIGZsdXNoZWQgZnJvbSBhIHNoZWFmICovCQkJCVwKJiM0MzsJSVRFTV9FWFAoU0hFQUZfRkxVU0gsIHNoZWFmX2ZsdXNoKQkJCQlcCiYjNDM7CS8qIE9iamVjdHMgcmVmaWxsZWQgdG8gYSBzaGVhZiAqLwkJCQlcCiYjNDM7CUlURU1fRVhQKFNIRUFGX1JFRklMTCwgc2hlYWZfcmVmaWxsKQkJCQlcCiYjNDM7CS8qIEFsbG9jYXRpb24gb2YgYW4gZW1wdHkgc2hlYWYgaW5jbHVkaW5nIG92ZXJzaXplZCBvbmVzICovCVwKJiM0MzsJSVRFTV9FWFAoU0hFQUZfQUxMT0MsIHNoZWFmX2FsbG9jKQkJCQlcCiYjNDM7CS8qIEZyZWVpbmcgb2YgYW4gZW1wdHkgc2hlYWYgaW5jbHVkaW5nIG92ZXJzaXplZCBvbmVzICovCVwKJiM0MzsJSVRFTV9FWFAoU0hFQUZfRlJFRSwgc2hlYWZfZnJlZSkJCQkJXAomIzQzOwkvKiBHb3QgZnVsbCBzaGVhZiBmcm9tIGJhcm4gKi8JCQkJCVwKJiM0MzsJSVRFTV9FWFAoQkFSTl9HRVQsIGJhcm5fZ2V0KQkJCQkJXAomIzQzOwkvKiBGYWlsZWQgdG8gZ2V0IGZ1bGwgc2hlYWYgZnJvbSBiYXJuICovCQkJXAomIzQzOwlJVEVNX0VYUChCQVJOX0dFVF9GQUlMLCBiYXJuX2dldF9mYWlsKQkJCQlcCiYjNDM7CS8qIFB1dCBmdWxsIHNoZWFmIHRvIGJhcm4gKi8JCQkJCVwKJiM0MzsJSVRFTV9FWFAoQkFSTl9QVVQsIGJhcm5fcHV0KQkJCQkJXAomIzQzOwkvKiBGYWlsZWQgdG8gcHV0IGZ1bGwgc2hlYWYgdG8gYmFybiAqLwkJCQlcCiYjNDM7CUlURU1fRVhQKEJBUk5fUFVUX0ZBSUwsIGJhcm5fcHV0X2ZhaWwpCQkJCVwKJiM0MzsJLyogU2hlYWYgcHJlZmlsbCBncmFiYmVkIHRoZSBzcGFyZSBzaGVhZiAqLwkJCVwKJiM0MzsJSVRFTV9FWFAoU0hFQUZfUFJFRklMTF9GQVNULCBzaGVhZl9wcmVmaWxsX2Zhc3QpCQlcCiYjNDM7CS8qIFNoZWFmIHByZWZpbGwgZm91bmQgbm8gc3BhcmUgc2hlYWYgKi8JCQlcCiYjNDM7CUlURU1fRVhQKFNIRUFGX1BSRUZJTExfU0xPVywgc2hlYWZfcHJlZmlsbF9zbG93KQkJXAomIzQzOwkvKiBBbGxvY2F0aW9uIG9mIG92ZXJzaXplIHNoZWFmIGZvciBwcmVmaWxsICovCQkJXAomIzQzOwlJVEVNX0VYUChTSEVBRl9QUkVGSUxMX09WRVJTSVpFLCBzaGVhZl9wcmVmaWxsX292ZXJzaXplKQlcCiYjNDM7CS8qIFNoZWFmIHJldHVybiByZWF0dGFjaGVkIHNwYXJlIHNoZWFmICovCQkJXAomIzQzOwlJVEVNX0VYUChTSEVBRl9SRVRVUk5fRkFTVCwgc2hlYWZfcmV0dXJuX2Zhc3QpCQkJXAomIzQzOwkvKiBTaGVhZiByZXR1cm4gY291bGQgbm90IHJlYXR0YWNoIHNwYXJlICovCQkJXAomIzQzOwlJVEVNX0VYUChTSEVBRl9SRVRVUk5fU0xPVywgc2hlYWZfcmV0dXJuX3Nsb3cpCiYjNDM7CiBlbnVtIHN0YXRfaXRlbSB7Ci0JQUxMT0NfRkFTVFBBVEgsCQkvKiBBbGxvY2F0aW9uIGZyb20gcGVyY3B1IHNoZWF2ZXMgKi8KLQlBTExPQ19TTE9XUEFUSCwJCS8qIEFsbG9jYXRpb24gZnJvbSBwYXJ0aWFsIG9yIG5ldyBzbGFiICovCi0JRlJFRV9SQ1VfU0hFQUYsCQkvKiBGcmVlIHRvIHJjdV9mcmVlIHNoZWFmICovCi0JRlJFRV9SQ1VfU0hFQUZfRkFJTCwJLyogRmFpbGVkIHRvIGZyZWUgdG8gYSByY3VfZnJlZSBzaGVhZiAqLwotCUZSRUVfRkFTVFBBVEgsCQkvKiBGcmVlIHRvIHBlcmNwdSBzaGVhdmVzICovCi0JRlJFRV9TTE9XUEFUSCwJCS8qIEZyZWUgdG8gYSBzbGFiICovCi0JRlJFRV9BRERfUEFSVElBTCwJLyogRnJlZWluZyBtb3ZlcyBzbGFiIHRvIHBhcnRpYWwgbGlzdCAqLwotCUZSRUVfUkVNT1ZFX1BBUlRJQUwsCS8qIEZyZWVpbmcgcmVtb3ZlcyBsYXN0IG9iamVjdCAqLwotCUFMTE9DX1NMQUIsCQkvKiBOZXcgc2xhYiBhY3F1aXJlZCBmcm9tIHBhZ2UgYWxsb2NhdG9yICovCi0JQUxMT0NfTk9ERV9NSVNNQVRDSCwJLyogUmVxdWVzdGVkIG5vZGUgZGlmZmVyZW50IGZyb20gY3B1IHNoZWFmICovCi0JRlJFRV9TTEFCLAkJLyogU2xhYiBmcmVlZCB0byB0aGUgcGFnZSBhbGxvY2F0b3IgKi8KLQlPUkRFUl9GQUxMQkFDSywJCS8qIE51bWJlciBvZiB0aW1lcyBmYWxsYmFjayB3YXMgbmVjZXNzYXJ5ICovCi0JQ01QWENIR19ET1VCTEVfRkFJTCwJLyogRmFpbHVyZXMgb2Ygc2xhYiBmcmVlbGlzdCB1cGRhdGUgKi8KLQlTSEVBRl9GTFVTSCwJCS8qIE9iamVjdHMgZmx1c2hlZCBmcm9tIGEgc2hlYWYgKi8KLQlTSEVBRl9SRUZJTEwsCQkvKiBPYmplY3RzIHJlZmlsbGVkIHRvIGEgc2hlYWYgKi8KLQlTSEVBRl9BTExPQywJCS8qIEFsbG9jYXRpb24gb2YgYW4gZW1wdHkgc2hlYWYgaW5jbHVkaW5nIG92ZXJzaXplZCBvbmVzICovCi0JU0hFQUZfRlJFRSwJCS8qIEZyZWVpbmcgb2YgYW4gZW1wdHkgc2hlYWYgaW5jbHVkaW5nIG92ZXJzaXplZCBvbmVzICovCi0JQkFSTl9HRVQsCQkvKiBHb3QgZnVsbCBzaGVhZiBmcm9tIGJhcm4gKi8KLQlCQVJOX0dFVF9GQUlMLAkJLyogRmFpbGVkIHRvIGdldCBmdWxsIHNoZWFmIGZyb20gYmFybiAqLwotCUJBUk5fUFVULAkJLyogUHV0IGZ1bGwgc2hlYWYgdG8gYmFybiAqLwotCUJBUk5fUFVUX0ZBSUwsCQkvKiBGYWlsZWQgdG8gcHV0IGZ1bGwgc2hlYWYgdG8gYmFybiAqLwotCVNIRUFGX1BSRUZJTExfRkFTVCwJLyogU2hlYWYgcHJlZmlsbCBncmFiYmVkIHRoZSBzcGFyZSBzaGVhZiAqLwotCVNIRUFGX1BSRUZJTExfU0xPVywJLyogU2hlYWYgcHJlZmlsbCBmb3VuZCBubyBzcGFyZSBzaGVhZiAqLwotCVNIRUFGX1BSRUZJTExfT1ZFUlNJWkUsCS8qIEFsbG9jYXRpb24gb2Ygb3ZlcnNpemUgc2hlYWYgZm9yIHByZWZpbGwgKi8KLQlTSEVBRl9SRVRVUk5fRkFTVCwJLyogU2hlYWYgcmV0dXJuIHJlYXR0YWNoZWQgc3BhcmUgc2hlYWYgKi8KLQlTSEVBRl9SRVRVUk5fU0xPVywJLyogU2hlYWYgcmV0dXJuIGNvdWxkIG5vdCByZWF0dGFjaCBzcGFyZSAqLwomIzQzOyNkZWZpbmUgSVRFTV9FWFAobmFtZSwgdW51c2VkKSBuYW1lLAomIzQzOwlTVEFUX0lURU1TCiYjNDM7I3VuZGVmIElURU1fRVhQCiAJTlJfU0xVQl9TVEFUX0lURU1TCiB9OwogCkBAIC05NTEyLDM0ICYjNDM7OTU0MywxMiBAQCBzdGF0aWMgc3NpemVfdCB0ZXh0IyNfc3RvcmUoc3RydWN0IGttZW1fY2FjaGUgKnMsCQlcCiAJY2xlYXJfc3RhdChzLCBzaSk7CQkJCQlcCiAJcmV0dXJuIGxlbmd0aDsJCQkJCQlcCiB9CQkJCQkJCQlcCi1TTEFCX0FUVFIodGV4dCk7CQkJCQkJXAotCi1TVEFUX0FUVFIoQUxMT0NfRkFTVFBBVEgsIGFsbG9jX2Zhc3RwYXRoKTsKLVNUQVRfQVRUUihBTExPQ19TTE9XUEFUSCwgYWxsb2Nfc2xvd3BhdGgpOwotU1RBVF9BVFRSKEZSRUVfUkNVX1NIRUFGLCBmcmVlX3JjdV9zaGVhZik7Ci1TVEFUX0FUVFIoRlJFRV9SQ1VfU0hFQUZfRkFJTCwgZnJlZV9yY3Vfc2hlYWZfZmFpbCk7Ci1TVEFUX0FUVFIoRlJFRV9GQVNUUEFUSCwgZnJlZV9mYXN0cGF0aCk7Ci1TVEFUX0FUVFIoRlJFRV9TTE9XUEFUSCwgZnJlZV9zbG93cGF0aCk7Ci1TVEFUX0FUVFIoRlJFRV9BRERfUEFSVElBTCwgZnJlZV9hZGRfcGFydGlhbCk7Ci1TVEFUX0FUVFIoRlJFRV9SRU1PVkVfUEFSVElBTCwgZnJlZV9yZW1vdmVfcGFydGlhbCk7Ci1TVEFUX0FUVFIoQUxMT0NfU0xBQiwgYWxsb2Nfc2xhYik7Ci1TVEFUX0FUVFIoQUxMT0NfTk9ERV9NSVNNQVRDSCwgYWxsb2Nfbm9kZV9taXNtYXRjaCk7Ci1TVEFUX0FUVFIoRlJFRV9TTEFCLCBmcmVlX3NsYWIpOwotU1RBVF9BVFRSKE9SREVSX0ZBTExCQUNLLCBvcmRlcl9mYWxsYmFjayk7Ci1TVEFUX0FUVFIoQ01QWENIR19ET1VCTEVfRkFJTCwgY21weGNoZ19kb3VibGVfZmFpbCk7Ci1TVEFUX0FUVFIoU0hFQUZfRkxVU0gsIHNoZWFmX2ZsdXNoKTsKLVNUQVRfQVRUUihTSEVBRl9SRUZJTEwsIHNoZWFmX3JlZmlsbCk7Ci1TVEFUX0FUVFIoU0hFQUZfQUxMT0MsIHNoZWFmX2FsbG9jKTsKLVNUQVRfQVRUUihTSEVBRl9GUkVFLCBzaGVhZl9mcmVlKTsKLVNUQVRfQVRUUihCQVJOX0dFVCwgYmFybl9nZXQpOwotU1RBVF9BVFRSKEJBUk5fR0VUX0ZBSUwsIGJhcm5fZ2V0X2ZhaWwpOwotU1RBVF9BVFRSKEJBUk5fUFVULCBiYXJuX3B1dCk7Ci1TVEFUX0FUVFIoQkFSTl9QVVRfRkFJTCwgYmFybl9wdXRfZmFpbCk7Ci1TVEFUX0FUVFIoU0hFQUZfUFJFRklMTF9GQVNULCBzaGVhZl9wcmVmaWxsX2Zhc3QpOwotU1RBVF9BVFRSKFNIRUFGX1BSRUZJTExfU0xPVywgc2hlYWZfcHJlZmlsbF9zbG93KTsKLVNUQVRfQVRUUihTSEVBRl9QUkVGSUxMX09WRVJTSVpFLCBzaGVhZl9wcmVmaWxsX292ZXJzaXplKTsKLVNUQVRfQVRUUihTSEVBRl9SRVRVUk5fRkFTVCwgc2hlYWZfcmV0dXJuX2Zhc3QpOwotU1RBVF9BVFRSKFNIRUFGX1JFVFVSTl9TTE9XLCBzaGVhZl9yZXR1cm5fc2xvdyk7CiYjNDM7U0xBQl9BVFRSKHRleHQpOwomIzQzOwomIzQzOyNkZWZpbmUgSVRFTV9FWFAobmFtZSwgdGV4dCkgU1RBVF9BVFRSKG5hbWUsIHRleHQpCiYjNDM7U1RBVF9JVEVNUwomIzQzOyN1bmRlZiBJVEVNX0VYUAomIzQzOwogI2VuZGlmCS8qIENPTkZJR19TTFVCX1NUQVRTICovCiAKICNpZmRlZiBDT05GSUdfS0ZFTkNFCkBAIC05NjAyLDMyICYjNDM7OTYxMSw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICpjb25zdCBzbGFiX2F0dHJzW10gPSB7CiAJJmFtcDtyZW1vdGVfbm9kZV9kZWZyYWdfcmF0aW9fYXR0ci5hdHRyLAogI2VuZGlmCiAjaWZkZWYgQ09ORklHX1NMVUJfU1RBVFMKLQkmYW1wO2FsbG9jX2Zhc3RwYXRoX2F0dHIuYXR0ciwKLQkmYW1wO2FsbG9jX3Nsb3dwYXRoX2F0dHIuYXR0ciwKLQkmYW1wO2ZyZWVfcmN1X3NoZWFmX2F0dHIuYXR0ciwKLQkmYW1wO2ZyZWVfcmN1X3NoZWFmX2ZhaWxfYXR0ci5hdHRyLAotCSZhbXA7ZnJlZV9mYXN0cGF0aF9hdHRyLmF0dHIsCi0JJmFtcDtmcmVlX3Nsb3dwYXRoX2F0dHIuYXR0ciwKLQkmYW1wO2ZyZWVfYWRkX3BhcnRpYWxfYXR0ci5hdHRyLAotCSZhbXA7ZnJlZV9yZW1vdmVfcGFydGlhbF9hdHRyLmF0dHIsCi0JJmFtcDthbGxvY19zbGFiX2F0dHIuYXR0ciwKLQkmYW1wO2FsbG9jX25vZGVfbWlzbWF0Y2hfYXR0ci5hdHRyLAotCSZhbXA7ZnJlZV9zbGFiX2F0dHIuYXR0ciwKLQkmYW1wO29yZGVyX2ZhbGxiYWNrX2F0dHIuYXR0ciwKLQkmYW1wO2NtcHhjaGdfZG91YmxlX2ZhaWxfYXR0ci5hdHRyLAotCSZhbXA7c2hlYWZfZmx1c2hfYXR0ci5hdHRyLAotCSZhbXA7c2hlYWZfcmVmaWxsX2F0dHIuYXR0ciwKLQkmYW1wO3NoZWFmX2FsbG9jX2F0dHIuYXR0ciwKLQkmYW1wO3NoZWFmX2ZyZWVfYXR0ci5hdHRyLAotCSZhbXA7YmFybl9nZXRfYXR0ci5hdHRyLAotCSZhbXA7YmFybl9nZXRfZmFpbF9hdHRyLmF0dHIsCi0JJmFtcDtiYXJuX3B1dF9hdHRyLmF0dHIsCi0JJmFtcDtiYXJuX3B1dF9mYWlsX2F0dHIuYXR0ciwKLQkmYW1wO3NoZWFmX3ByZWZpbGxfZmFzdF9hdHRyLmF0dHIsCi0JJmFtcDtzaGVhZl9wcmVmaWxsX3Nsb3dfYXR0ci5hdHRyLAotCSZhbXA7c2hlYWZfcHJlZmlsbF9vdmVyc2l6ZV9hdHRyLmF0dHIsCi0JJmFtcDtzaGVhZl9yZXR1cm5fZmFzdF9hdHRyLmF0dHIsCi0JJmFtcDtzaGVhZl9yZXR1cm5fc2xvd19hdHRyLmF0dHIsCiYjNDM7I2RlZmluZSBJVEVNX0VYUCh1bnVzZWQsIHRleHQpICZhbXA7dGV4dCMjX2F0dHIuYXR0ciwKJiM0MzsJU1RBVF9JVEVNUwomIzQzOyN1bmRlZiBJVEVNX0VYUAogI2VuZGlmCiAjaWZkZWYgQ09ORklHX0ZBSUxTTEFCCiAJJmFtcDtmYWlsc2xhYl9hdHRyLmF0dHIsCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE0IDA3OjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ0MjgKCQkJCQkJCW91dHB1dDogNzEKCQkJCQkJCXRob3VnaHRzOiAzNTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgU0xVQiBTdGF0aXN0aWNzIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O3ZlIGp1c3QgcmV2aWV3ZWQgdGhpcyBwYXRjaCBhbmQgaXQmIzM5O3MgYSBzdHJhaWdodGZvcndhcmQgcmVmYWN0b3Jpbmcgd2l0aGluIGBtbS9zbHViLmNgLiBNeSBpbml0aWFsIGltcHJlc3Npb24gaXMgdGhhdCBpdCYjMzk7cyBwdXJlbHkgY29zbWV0aWMsIHdoaWNoIGlzIGdvb2QuIEkgc2VlIHRoZSBtYWluIGNoYW5nZSBpcyB0aGUgaW50cm9kdWN0aW9uIG9mIGEgbWFjcm8sIGBTVEFUX0lURU1TYCwgYWxvbmcgd2l0aCBgSVRFTV9FWFBgLiBJdCBsb29rcyBsaWtlIHRoZXkmIzM5O3JlIGp1c3QgYWltaW5nIHRvIGF2b2lkIGNvZGUgZHVwbGljYXRpb24gYWNyb3NzIHRoZSBgc3RhdF9pdGVtYCBlbnVtIGRlZmluaXRpb24sIHRoZSBgU1RBVF9BVFRSYCBkZWNsYXJhdGlvbnMsIGFuZCB0aGUgZW50cmllcyB3aXRoaW4gdGhlIGBzbGFiX2F0dHJzYCBhcnJheS4KCkxldCBtZSBqdXN0IHF1aWNrbHkgdmVyaWZ5IHRoaXMgYnkgY2hlY2tpbmcgdGhlIGRpZmYgZGlyZWN0bHkuLi4gWXVwLCBsb29rcyBleGFjdGx5IGFzIEkgdGhvdWdodC4gVGhleSYjMzk7dmUgdXNlZCBgU1RBVF9JVEVNU2AgYW5kIGBJVEVNX0VYUGAgdG8gcmVwbGFjZSB0aGUgcmVwZXRpdGl2ZSBjb2RlIGJsb2Nrcy4gVGhlIGNvZGUgaXRzZWxmIGlzIHN0cnVjdHVyYWxseSBpZGVudGljYWwsIG9ubHkgdGhlIHByZXNlbnRhdGlvbiBoYXMgY2hhbmdlZC4gTm8gbmV3IGZlYXR1cmVzLCBubyBjaGFuZ2UgaW4gZXhlY3V0aW9uIHBhdGhzLCBubyBmdW5jdGlvbmFsIGNoYW5nZXMuIEl0JiMzOTtzIGp1c3QgY2xlYW5lciBhbmQgbW9yZSBtYWludGFpbmFibGUgZnJvbSBhIGNvZGluZyBzdHlsZSBwZXJzcGVjdGl2ZS4gR29vZCBmb3IgcmVhZGFiaWxpdHksIGxlc3Mgcm9vbSBmb3IgZXJyb3JzLCBhbmQgZWFzaWVyIG1haW50ZW5hbmNlIGRvd24gdGhlIHJvYWQuCgpHaXZlbiB0aGF0IHRoZXJlIGFyZSBubyBmdW5jdGlvbmFsIGNoYW5nZXMgd2hhdHNvZXZlciwgSSYjMzk7bSBjb25maWRlbnQgaW4gbWFya2luZyB0aGlzIGFzIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJdCYjMzk7cyBhIGNsZWFuIHJlZmFjdG9yIHRoYXQgZG9lc24mIzM5O3QgaW50cm9kdWNlIGFueSBuZXcgYXR0YWNrIHN1cmZhY2VzIG9yIGxvZ2ljIHRoYXQgbmVlZHMgZnV6emluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNCAwNzo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHB1cmVseSByZWZhY3RvcnMgdGhlIGRlZmluaXRpb24gb2YgU0xVQiBzdGF0aXN0aWNzIGF0dHJpYnV0ZXMgdXNpbmcgbWFjcm9zIChTVEFUX0lURU1TIGFuZCBJVEVNX0VYUCkgdG8gcmVkdWNlIGNvZGUgZHVwbGljYXRpb24uIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBleGVjdXRpb24gZmxvdy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHB1cmVseSByZWZhY3RvcnMgdGhlIGRlZmluaXRpb24gb2YgU0xVQiBzdGF0aXN0aWNzIGF0dHJpYnV0ZXMgdXNpbmcgbWFjcm9zIChTVEFUX0lURU1TIGFuZCBJVEVNX0VYUCkgdG8gcmVkdWNlIGNvZGUgZHVwbGljYXRpb24uIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBleGVjdXRpb24gZmxvdy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTQgMDc6NTQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE0VDA3OjU0OjA4LjMyMTUyMjAzN1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc0MTk2NjIxMzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBwdXJlbHkgcmVmYWN0b3JzIHRoZSBkZWZpbml0aW9uIG9mIFNMVUIgc3RhdGlzdGljcyBhdHRyaWJ1dGVzIHVzaW5nIG1hY3JvcyAoU1RBVF9JVEVNUyBhbmQgSVRFTV9FWFApIHRvIHJlZHVjZSBjb2RlIGR1cGxpY2F0aW9uLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgZXhlY3V0aW9uIGZsb3cuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNzo1NDowOC4zMjE1MzEzMTdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU2NjA5OTAwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDNlZjE3MTE1ODVhMzRkNmU3YjRjM2NjMDUyZDg4YmFiZGRlN2ZlZjVcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBBdWcgMTQgMDc6NTQ6MDcgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbW0vc2x1Yi5jIGIvbW0vc2x1Yi5jXFxuaW5kZXggYjBjZDA1NzJlMmYyNi4uOGRkMjUwMzJmYmE0NSAxMDA2NDRcXG4tLS0gYS9tbS9zbHViLmNcXG4rKysgYi9tbS9zbHViLmNcXG5AQCAtMzU5LDMzICszNTksNjQgQEAgZW51bSBhZGRfbW9kZSB7XFxuIFxcdEFERF9UT19UQUlMLFxcbiB9O1xcbiBcXG4rI2RlZmluZSBTVEFUX0lURU1TXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHQvKiBBbGxvY2F0aW9uIGZyb20gcGVyY3B1IHNoZWF2ZXMgKi9cXHRcXHRcXHRcXHRcXFxcXFxuK1xcdElURU1fRVhQKEFMTE9DX0ZBU1RQQVRILCBhbGxvY19mYXN0cGF0aClcXHRcXHRcXHRcXFxcXFxuK1xcdC8qIEFsbG9jYXRpb24gZnJvbSBwYXJ0aWFsIG9yIG5ldyBzbGFiICovXFx0XFx0XFx0XFxcXFxcbitcXHRJVEVNX0VYUChBTExPQ19TTE9XUEFUSCwgYWxsb2Nfc2xvd3BhdGgpXFx0XFx0XFx0XFxcXFxcbitcXHQvKiBGcmVlIHRvIHJjdV9mcmVlIHNoZWFmICovXFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHRJVEVNX0VYUChGUkVFX1JDVV9TSEVBRiwgZnJlZV9yY3Vfc2hlYWYpXFx0XFx0XFx0XFxcXFxcbitcXHQvKiBGYWlsZWQgdG8gZnJlZSB0byBhIHJjdV9mcmVlIHNoZWFmICovXFx0XFx0XFx0XFxcXFxcbitcXHRJVEVNX0VYUChGUkVFX1JDVV9TSEVBRl9GQUlMLCBmcmVlX3JjdV9zaGVhZl9mYWlsKVxcdFxcdFxcXFxcXG4rXFx0LyogRnJlZSB0byBwZXJjcHUgc2hlYXZlcyAqL1xcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0SVRFTV9FWFAoRlJFRV9GQVNUUEFUSCwgZnJlZV9mYXN0cGF0aClcXHRcXHRcXHRcXHRcXFxcXFxuK1xcdC8qIEZyZWUgdG8gYSBzbGFiICovXFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHRJVEVNX0VYUChGUkVFX1NMT1dQQVRILCBmcmVlX3Nsb3dwYXRoKVxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0LyogRnJlZWluZyBtb3ZlcyBzbGFiIHRvIHBhcnRpYWwgbGlzdCAqL1xcdFxcdFxcdFxcXFxcXG4rXFx0SVRFTV9FWFAoRlJFRV9BRERfUEFSVElBTCwgZnJlZV9hZGRfcGFydGlhbClcXHRcXHRcXHRcXFxcXFxuK1xcdC8qIEZyZWVpbmcgcmVtb3ZlcyBsYXN0IG9iamVjdCAqL1xcdFxcdFxcdFxcdFxcXFxcXG4rXFx0SVRFTV9FWFAoRlJFRV9SRU1PVkVfUEFSVElBTCwgZnJlZV9yZW1vdmVfcGFydGlhbClcXHRcXHRcXFxcXFxuK1xcdC8qIE5ldyBzbGFiIGFjcXVpcmVkIGZyb20gcGFnZSBhbGxvY2F0b3IgKi9cXHRcXHRcXHRcXFxcXFxuK1xcdElURU1fRVhQKEFMTE9DX1NMQUIsIGFsbG9jX3NsYWIpXFx0XFx0XFx0XFx0XFxcXFxcbitcXHQvKiBSZXF1ZXN0ZWQgbm9kZSBkaWZmZXJlbnQgZnJvbSBjcHUgc2hlYWYgKi9cXHRcXHRcXHRcXFxcXFxuK1xcdElURU1fRVhQKEFMTE9DX05PREVfTUlTTUFUQ0gsIGFsbG9jX25vZGVfbWlzbWF0Y2gpXFx0XFx0XFxcXFxcbitcXHQvKiBTbGFiIGZyZWVkIHRvIHRoZSBwYWdlIGFsbG9jYXRvciAqL1xcdFxcdFxcdFxcdFxcXFxcXG4rXFx0SVRFTV9FWFAoRlJFRV9TTEFCLCBmcmVlX3NsYWIpXFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHQvKiBOdW1iZXIgb2YgdGltZXMgZmFsbGJhY2sgd2FzIG5lY2Vzc2FyeSAqL1xcdFxcdFxcdFxcXFxcXG4rXFx0SVRFTV9FWFAoT1JERVJfRkFMTEJBQ0ssIG9yZGVyX2ZhbGxiYWNrKVxcdFxcdFxcdFxcXFxcXG4rXFx0LyogRmFpbHVyZXMgb2Ygc2xhYiBmcmVlbGlzdCB1cGRhdGUgKi9cXHRcXHRcXHRcXHRcXFxcXFxuK1xcdElURU1fRVhQKENNUFhDSEdfRE9VQkxFX0ZBSUwsIGNtcHhjaGdfZG91YmxlX2ZhaWwpXFx0XFx0XFxcXFxcbitcXHQvKiBPYmplY3RzIGZsdXNoZWQgZnJvbSBhIHNoZWFmICovXFx0XFx0XFx0XFx0XFxcXFxcbitcXHRJVEVNX0VYUChTSEVBRl9GTFVTSCwgc2hlYWZfZmx1c2gpXFx0XFx0XFx0XFx0XFxcXFxcbitcXHQvKiBPYmplY3RzIHJlZmlsbGVkIHRvIGEgc2hlYWYgKi9cXHRcXHRcXHRcXHRcXFxcXFxuK1xcdElURU1fRVhQKFNIRUFGX1JFRklMTCwgc2hlYWZfcmVmaWxsKVxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0LyogQWxsb2NhdGlvbiBvZiBhbiBlbXB0eSBzaGVhZiBpbmNsdWRpbmcgb3ZlcnNpemVkIG9uZXMgKi9cXHRcXFxcXFxuK1xcdElURU1fRVhQKFNIRUFGX0FMTE9DLCBzaGVhZl9hbGxvYylcXHRcXHRcXHRcXHRcXFxcXFxuK1xcdC8qIEZyZWVpbmcgb2YgYW4gZW1wdHkgc2hlYWYgaW5jbHVkaW5nIG92ZXJzaXplZCBvbmVzICovXFx0XFxcXFxcbitcXHRJVEVNX0VYUChTSEVBRl9GUkVFLCBzaGVhZl9mcmVlKVxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0LyogR290IGZ1bGwgc2hlYWYgZnJvbSBiYXJuICovXFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHRJVEVNX0VYUChCQVJOX0dFVCwgYmFybl9nZXQpXFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHQvKiBGYWlsZWQgdG8gZ2V0IGZ1bGwgc2hlYWYgZnJvbSBiYXJuICovXFx0XFx0XFx0XFxcXFxcbitcXHRJVEVNX0VYUChCQVJOX0dFVF9GQUlMLCBiYXJuX2dldF9mYWlsKVxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0LyogUHV0IGZ1bGwgc2hlYWYgdG8gYmFybiAqL1xcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0SVRFTV9FWFAoQkFSTl9QVVQsIGJhcm5fcHV0KVxcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0LyogRmFpbGVkIHRvIHB1dCBmdWxsIHNoZWFmIHRvIGJhcm4gKi9cXHRcXHRcXHRcXHRcXFxcXFxuK1xcdElURU1fRVhQKEJBUk5fUFVUX0ZBSUwsIGJhcm5fcHV0X2ZhaWwpXFx0XFx0XFx0XFx0XFxcXFxcbitcXHQvKiBTaGVhZiBwcmVmaWxsIGdyYWJiZWQgdGhlIHNwYXJlIHNoZWFmICovXFx0XFx0XFx0XFxcXFxcbitcXHRJVEVNX0VYUChTSEVBRl9QUkVGSUxMX0ZBU1QsIHNoZWFmX3ByZWZpbGxfZmFzdClcXHRcXHRcXFxcXFxuK1xcdC8qIFNoZWFmIHByZWZpbGwgZm91bmQgbm8gc3BhcmUgc2hlYWYgKi9cXHRcXHRcXHRcXFxcXFxuK1xcdElURU1fRVhQKFNIRUFGX1BSRUZJTExfU0xPVywgc2hlYWZfcHJlZmlsbF9zbG93KVxcdFxcdFxcXFxcXG4rXFx0LyogQWxsb2NhdGlvbiBvZiBvdmVyc2l6ZSBzaGVhZiBmb3IgcHJlZmlsbCAqL1xcdFxcdFxcdFxcXFxcXG4rXFx0SVRFTV9FWFAoU0hFQUZfUFJFRklMTF9PVkVSU0laRSwgc2hlYWZfcHJlZmlsbF9vdmVyc2l6ZSlcXHRcXFxcXFxuK1xcdC8qIFNoZWFmIHJldHVybiByZWF0dGFjaGVkIHNwYXJlIHNoZWFmICovXFx0XFx0XFx0XFxcXFxcbitcXHRJVEVNX0VYUChTSEVBRl9SRVRVUk5fRkFTVCwgc2hlYWZfcmV0dXJuX2Zhc3QpXFx0XFx0XFx0XFxcXFxcbitcXHQvKiBTaGVhZiByZXR1cm4gY291bGQgbm90IHJlYXR0YWNoIHNwYXJlICovXFx0XFx0XFx0XFxcXFxcbitcXHRJVEVNX0VYUChTSEVBRl9SRVRVUk5fU0xPVywgc2hlYWZfcmV0dXJuX3Nsb3cpXFxuK1xcbiBlbnVtIHN0YXRfaXRlbSB7XFxuLVxcdEFMTE9DX0ZBU1RQQVRILFxcdFxcdC8qIEFsbG9jYXRpb24gZnJvbSBwZXJjcHUgc2hlYXZlcyAqL1xcbi1cXHRBTExPQ19TTE9XUEFUSCxcXHRcXHQvKiBBbGxvY2F0aW9uIGZyb20gcGFydGlhbCBvciBuZXcgc2xhYiAqL1xcbi1cXHRGUkVFX1JDVV9TSEVBRixcXHRcXHQvKiBGcmVlIHRvIHJjdV9mcmVlIHNoZWFmICovXFxuLVxcdEZSRUVfUkNVX1NIRUFGX0ZBSUwsXFx0LyogRmFpbGVkIHRvIGZyZWUgdG8gYSByY3VfZnJlZSBzaGVhZiAqL1xcbi1cXHRGUkVFX0ZBU1RQQVRILFxcdFxcdC8qIEZyZWUgdG8gcGVyY3B1IHNoZWF2ZXMgKi9cXG4tXFx0RlJFRV9TTE9XUEFUSCxcXHRcXHQvKiBGcmVlIHRvIGEgc2xhYiAqL1xcbi1cXHRGUkVFX0FERF9QQVJUSUFMLFxcdC8qIEZyZWVpbmcgbW92ZXMgc2xhYiB0byBwYXJ0aWFsIGxpc3QgKi9cXG4tXFx0RlJFRV9SRU1PVkVfUEFSVElBTCxcXHQvKiBGcmVlaW5nIHJlbW92ZXMgbGFzdCBvYmplY3QgKi9cXG4tXFx0QUxMT0NfU0xBQixcXHRcXHQvKiBOZXcgc2xhYiBhY3F1aXJlZCBmcm9tIHBhZ2UgYWxsb2NhdG9yICovXFxuLVxcdEFMTE9DX05PREVfTUlTTUFUQ0gsXFx0LyogUmVxdWVzdGVkIG5vZGUgZGlmZmVyZW50IGZyb20gY3B1IHNoZWFmICovXFxuLVxcdEZSRUVfU0xBQixcXHRcXHQvKiBTbGFiIGZyZWVkIHRvIHRoZSBwYWdlIGFsbG9jYXRvciAqL1xcbi1cXHRPUkRFUl9GQUxMQkFDSyxcXHRcXHQvKiBOdW1iZXIgb2YgdGltZXMgZmFsbGJhY2sgd2FzIG5lY2Vzc2FyeSAqL1xcbi1cXHRDTVBYQ0hHX0RPVUJMRV9GQUlMLFxcdC8qIEZhaWx1cmVzIG9mIHNsYWIgZnJlZWxpc3QgdXBkYXRlICovXFxuLVxcdFNIRUFGX0ZMVVNILFxcdFxcdC8qIE9iamVjdHMgZmx1c2hlZCBmcm9tIGEgc2hlYWYgKi9cXG4tXFx0U0hFQUZfUkVGSUxMLFxcdFxcdC8qIE9iamVjdHMgcmVmaWxsZWQgdG8gYSBzaGVhZiAqL1xcbi1cXHRTSEVBRl9BTExPQyxcXHRcXHQvKiBBbGxvY2F0aW9uIG9mIGFuIGVtcHR5IHNoZWFmIGluY2x1ZGluZyBvdmVyc2l6ZWQgb25lcyAqL1xcbi1cXHRTSEVBRl9GUkVFLFxcdFxcdC8qIEZyZWVpbmcgb2YgYW4gZW1wdHkgc2hlYWYgaW5jbHVkaW5nIG92ZXJzaXplZCBvbmVzICovXFxuLVxcdEJBUk5fR0VULFxcdFxcdC8qIEdvdCBmdWxsIHNoZWFmIGZyb20gYmFybiAqL1xcbi1cXHRCQVJOX0dFVF9GQUlMLFxcdFxcdC8qIEZhaWxlZCB0byBnZXQgZnVsbCBzaGVhZiBmcm9tIGJhcm4gKi9cXG4tXFx0QkFSTl9QVVQsXFx0XFx0LyogUHV0IGZ1bGwgc2hlYWYgdG8gYmFybiAqL1xcbi1cXHRCQVJOX1BVVF9GQUlMLFxcdFxcdC8qIEZhaWxlZCB0byBwdXQgZnVsbCBzaGVhZiB0byBiYXJuICovXFxuLVxcdFNIRUFGX1BSRUZJTExfRkFTVCxcXHQvKiBTaGVhZiBwcmVmaWxsIGdyYWJiZWQgdGhlIHNwYXJlIHNoZWFmICovXFxuLVxcdFNIRUFGX1BSRUZJTExfU0xPVyxcXHQvKiBTaGVhZiBwcmVmaWxsIGZvdW5kIG5vIHNwYXJlIHNoZWFmICovXFxuLVxcdFNIRUFGX1BSRUZJTExfT1ZFUlNJWkUsXFx0LyogQWxsb2NhdGlvbiBvZiBvdmVyc2l6ZSBzaGVhZiBmb3IgcHJlZmlsbCAqL1xcbi1cXHRTSEVBRl9SRVRVUk5fRkFTVCxcXHQvKiBTaGVhZiByZXR1cm4gcmVhdHRhY2hlZCBzcGFyZSBzaGVhZiAqL1xcbi1cXHRTSEVBRl9SRVRVUk5fU0xPVyxcXHQvKiBTaGVhZiByZXR1cm4gY291bGQgbm90IHJlYXR0YWNoIHNwYXJlICovXFxuKyNkZWZpbmUgSVRFTV9FWFAobmFtZSwgdW51c2VkKSBuYW1lLFxcbitcXHRTVEFUX0lURU1TXFxuKyN1bmRlZiBJVEVNX0VYUFxcbiBcXHROUl9TTFVCX1NUQVRfSVRFTVNcXG4gfTtcXG4gXFxuQEAgLTk1MTIsMzQgKzk1NDMsMTIgQEAgc3RhdGljIHNzaXplX3QgdGV4dCMjX3N0b3JlKHN0cnVjdCBrbWVtX2NhY2hlICpzLFxcdFxcdFxcXFxcXG4gXFx0Y2xlYXJfc3RhdChzLCBzaSk7XFx0XFx0XFx0XFx0XFx0XFxcXFxcbiBcXHRyZXR1cm4gbGVuZ3RoO1xcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4gfVxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4tU0xBQl9BVFRSKHRleHQpO1xcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4tXFxuLVNUQVRfQVRUUihBTExPQ19GQVNUUEFUSCwgYWxsb2NfZmFzdHBhdGgpO1xcbi1TVEFUX0FUVFIoQUxMT0NfU0xPV1BBVEgsIGFsbG9jX3Nsb3dwYXRoKTtcXG4tU1RBVF9BVFRSKEZSRUVfUkNVX1NIRUFGLCBmcmVlX3JjdV9zaGVhZik7XFxuLVNUQVRfQVRUUihGUkVFX1JDVV9TSEVBRl9GQUlMLCBmcmVlX3JjdV9zaGVhZl9mYWlsKTtcXG4tU1RBVF9BVFRSKEZSRUVfRkFTVFBBVEgsIGZyZWVfZmFzdHBhdGgpO1xcbi1TVEFUX0FUVFIoRlJFRV9TTE9XUEFUSCwgZnJlZV9zbG93cGF0aCk7XFxuLVNUQVRfQVRUUihGUkVFX0FERF9QQVJUSUFMLCBmcmVlX2FkZF9wYXJ0aWFsKTtcXG4tU1RBVF9BVFRSKEZSRUVfUkVNT1ZFX1BBUlRJQUwsIGZyZWVfcmVtb3ZlX3BhcnRpYWwpO1xcbi1TVEFUX0FUVFIoQUxMT0NfU0xBQiwgYWxsb2Nfc2xhYik7XFxuLVNUQVRfQVRUUihBTExPQ19OT0RFX01JU01BVENILCBhbGxvY19ub2RlX21pc21hdGNoKTtcXG4tU1RBVF9BVFRSKEZSRUVfU0xBQiwgZnJlZV9zbGFiKTtcXG4tU1RBVF9BVFRSKE9SREVSX0ZBTExCQUNLLCBvcmRlcl9mYWxsYmFjayk7XFxuLVNUQVRfQVRUUihDTVBYQ0hHX0RPVUJMRV9GQUlMLCBjbXB4Y2hnX2RvdWJsZV9mYWlsKTtcXG4tU1RBVF9BVFRSKFNIRUFGX0ZMVVNILCBzaGVhZl9mbHVzaCk7XFxuLVNUQVRfQVRUUihTSEVBRl9SRUZJTEwsIHNoZWFmX3JlZmlsbCk7XFxuLVNUQVRfQVRUUihTSEVBRl9BTExPQywgc2hlYWZfYWxsb2MpO1xcbi1TVEFUX0FUVFIoU0hFQUZfRlJFRSwgc2hlYWZfZnJlZSk7XFxuLVNUQVRfQVRUUihCQVJOX0dFVCwgYmFybl9nZXQpO1xcbi1TVEFUX0FUVFIoQkFSTl9HRVRfRkFJTCwgYmFybl9nZXRfZmFpbCk7XFxuLVNUQVRfQVRUUihCQVJOX1BVVCwgYmFybl9wdXQpO1xcbi1TVEFUX0FUVFIoQkFSTl9QVVRfRkFJTCwgYmFybl9wdXRfZmFpbCk7XFxuLVNUQVRfQVRUUihTSEVBRl9QUkVGSUxMX0ZBU1QsIHNoZWFmX3ByZWZpbGxfZmFzdCk7XFxuLVNUQVRfQVRUUihTSEVBRl9QUkVGSUxMX1NMT1csIHNoZWFmX3ByZWZpbGxfc2xvdyk7XFxuLVNUQVRfQVRUUihTSEVBRl9QUkVGSUxMX09WRVJTSVpFLCBzaGVhZl9wcmVmaWxsX292ZXJzaXplKTtcXG4tU1RBVF9BVFRSKFNIRUFGX1JFVFVSTl9GQVNULCBzaGVhZl9yZXR1cm5fZmFzdCk7XFxuLVNUQVRfQVRUUihTSEVBRl9SRVRVUk5fU0xPVywgc2hlYWZfcmV0dXJuX3Nsb3cpO1xcbitTTEFCX0FUVFIodGV4dCk7XFxuK1xcbisjZGVmaW5lIElURU1fRVhQKG5hbWUsIHRleHQpIFNUQVRfQVRUUihuYW1lLCB0ZXh0KVxcbitTVEFUX0lURU1TXFxuKyN1bmRlZiBJVEVNX0VYUFxcbitcXG4gI2VuZGlmXFx0LyogQ09ORklHX1NMVUJfU1RBVFMgKi9cXG4gXFxuICNpZmRlZiBDT05GSUdfS0ZFTkNFXFxuQEAgLTk2MDIsMzIgKzk2MTEsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqY29uc3Qgc2xhYl9hdHRyc1tdID0ge1xcbiBcXHRcXHUwMDI2cmVtb3RlX25vZGVfZGVmcmFnX3JhdGlvX2F0dHIuYXR0cixcXG4gI2VuZGlmXFxuICNpZmRlZiBDT05GSUdfU0xVQl9TVEFUU1xcbi1cXHRcXHUwMDI2YWxsb2NfZmFzdHBhdGhfYXR0ci5hdHRyLFxcbi1cXHRcXHUwMDI2YWxsb2Nfc2xvd3BhdGhfYXR0ci5hdHRyLFxcbi1cXHRcXHUwMDI2ZnJlZV9yY3Vfc2hlYWZfYXR0ci5hdHRyLFxcbi1cXHRcXHUwMDI2ZnJlZV9yY3Vfc2hlYWZfZmFpbF9hdHRyLmF0dHIsXFxuLVxcdFxcdTAwMjZmcmVlX2Zhc3RwYXRoX2F0dHIuYXR0cixcXG4tXFx0XFx1MDAyNmZyZWVfc2xvd3BhdGhfYXR0ci5hdHRyLFxcbi1cXHRcXHUwMDI2ZnJlZV9hZGRfcGFydGlhbF9hdHRyLmF0dHIsXFxuLVxcdFxcdTAwMjZmcmVlX3JlbW92ZV9wYXJ0aWFsX2F0dHIuYXR0cixcXG4tXFx0XFx1MDAyNmFsbG9jX3NsYWJfYXR0ci5hdHRyLFxcbi1cXHRcXHUwMDI2YWxsb2Nfbm9kZV9taXNtYXRjaF9hdHRyLmF0dHIsXFxuLVxcdFxcdTAwMjZmcmVlX3NsYWJfYXR0ci5hdHRyLFxcbi1cXHRcXHUwMDI2b3JkZXJfZmFsbGJhY2tfYXR0ci5hdHRyLFxcbi1cXHRcXHUwMDI2Y21weGNoZ19kb3VibGVfZmFpbF9hdHRyLmF0dHIsXFxuLVxcdFxcdTAwMjZzaGVhZl9mbHVzaF9hdHRyLmF0dHIsXFxuLVxcdFxcdTAwMjZzaGVhZl9yZWZpbGxfYXR0ci5hdHRyLFxcbi1cXHRcXHUwMDI2c2hlYWZfYWxsb2NfYXR0ci5hdHRyLFxcbi1cXHRcXHUwMDI2c2hlYWZfZnJlZV9hdHRyLmF0dHIsXFxuLVxcdFxcdTAwMjZiYXJuX2dldF9hdHRyLmF0dHIsXFxuLVxcdFxcdTAwMjZiYXJuX2dldF9mYWlsX2F0dHIuYXR0cixcXG4tXFx0XFx1MDAyNmJhcm5fcHV0X2F0dHIuYXR0cixcXG4tXFx0XFx1MDAyNmJhcm5fcHV0X2ZhaWxfYXR0ci5hdHRyLFxcbi1cXHRcXHUwMDI2c2hlYWZfcHJlZmlsbF9mYXN0X2F0dHIuYXR0cixcXG4tXFx0XFx1MDAyNnNoZWFmX3ByZWZpbGxfc2xvd19hdHRyLmF0dHIsXFxuLVxcdFxcdTAwMjZzaGVhZl9wcmVmaWxsX292ZXJzaXplX2F0dHIuYXR0cixcXG4tXFx0XFx1MDAyNnNoZWFmX3JldHVybl9mYXN0X2F0dHIuYXR0cixcXG4tXFx0XFx1MDAyNnNoZWFmX3JldHVybl9zbG93X2F0dHIuYXR0cixcXG4rI2RlZmluZSBJVEVNX0VYUCh1bnVzZWQsIHRleHQpIFxcdTAwMjZ0ZXh0IyNfYXR0ci5hdHRyLFxcbitcXHRTVEFUX0lURU1TXFxuKyN1bmRlZiBJVEVNX0VYUFxcbiAjZW5kaWZcXG4gI2lmZGVmIENPTkZJR19GQUlMU0xBQlxcbiBcXHRcXHUwMDI2ZmFpbHNsYWJfYXR0ci5hdHRyLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNzo1NDowOC44ODg1NzMyMjlaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo2ODUyNTU1Njk5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBwdXJlbHkgcmVmYWN0b3JzIHRoZSBkZWZpbml0aW9uIG9mIFNMVUIgc3RhdGlzdGljcyBhdHRyaWJ1dGVzIHVzaW5nIG1hY3JvcyAoU1RBVF9JVEVNUyBhbmQgSVRFTV9FWFApIHRvIHJlZHVjZSBjb2RlIGR1cGxpY2F0aW9uLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgZXhlY3V0aW9uIGZsb3cuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAzZWYxNzExNTg1YTM0ZDZlN2I0YzNjYzA1MmQ4OGJhYmRkZTdmZWY1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBBdWcgMTQgMDc6NTQ6MDcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9tbS9zbHViLmMgYi9tbS9zbHViLmNcbmluZGV4IGIwY2QwNTcyZTJmMjYuLjhkZDI1MDMyZmJhNDUgMTAwNjQ0XG4tLS0gYS9tbS9zbHViLmNcbisrKyBiL21tL3NsdWIuY1xuQEAgLTM1OSwzMyArMzU5LDY0IEBAIGVudW0gYWRkX21vZGUge1xuIFx0QUREX1RPX1RBSUwsXG4gfTtcbiBcbisjZGVmaW5lIFNUQVRfSVRFTVNcdFx0XHRcdFx0XHRcdFxcXG4rXHQvKiBBbGxvY2F0aW9uIGZyb20gcGVyY3B1IHNoZWF2ZXMgKi9cdFx0XHRcdFxcXG4rXHRJVEVNX0VYUChBTExPQ19GQVNUUEFUSCwgYWxsb2NfZmFzdHBhdGgpXHRcdFx0XFxcbitcdC8qIEFsbG9jYXRpb24gZnJvbSBwYXJ0aWFsIG9yIG5ldyBzbGFiICovXHRcdFx0XFxcbitcdElURU1fRVhQKEFMTE9DX1NMT1dQQVRILCBhbGxvY19zbG93cGF0aClcdFx0XHRcXFxuK1x0LyogRnJlZSB0byByY3VfZnJlZSBzaGVhZiAqL1x0XHRcdFx0XHRcXFxuK1x0SVRFTV9FWFAoRlJFRV9SQ1VfU0hFQUYsIGZyZWVfcmN1X3NoZWFmKVx0XHRcdFxcXG4rXHQvKiBGYWlsZWQgdG8gZnJlZSB0byBhIHJjdV9mcmVlIHNoZWFmICovXHRcdFx0XFxcbitcdElURU1fRVhQKEZSRUVfUkNVX1NIRUFGX0ZBSUwsIGZyZWVfcmN1X3NoZWFmX2ZhaWwpXHRcdFxcXG4rXHQvKiBGcmVlIHRvIHBlcmNwdSBzaGVhdmVzICovXHRcdFx0XHRcdFxcXG4rXHRJVEVNX0VYUChGUkVFX0ZBU1RQQVRILCBmcmVlX2Zhc3RwYXRoKVx0XHRcdFx0XFxcbitcdC8qIEZyZWUgdG8gYSBzbGFiICovXHRcdFx0XHRcdFx0XFxcbitcdElURU1fRVhQKEZSRUVfU0xPV1BBVEgsIGZyZWVfc2xvd3BhdGgpXHRcdFx0XHRcXFxuK1x0LyogRnJlZWluZyBtb3ZlcyBzbGFiIHRvIHBhcnRpYWwgbGlzdCAqL1x0XHRcdFxcXG4rXHRJVEVNX0VYUChGUkVFX0FERF9QQVJUSUFMLCBmcmVlX2FkZF9wYXJ0aWFsKVx0XHRcdFxcXG4rXHQvKiBGcmVlaW5nIHJlbW92ZXMgbGFzdCBvYmplY3QgKi9cdFx0XHRcdFxcXG4rXHRJVEVNX0VYUChGUkVFX1JFTU9WRV9QQVJUSUFMLCBmcmVlX3JlbW92ZV9wYXJ0aWFsKVx0XHRcXFxuK1x0LyogTmV3IHNsYWIgYWNxdWlyZWQgZnJvbSBwYWdlIGFsbG9jYXRvciAqL1x0XHRcdFxcXG4rXHRJVEVNX0VYUChBTExPQ19TTEFCLCBhbGxvY19zbGFiKVx0XHRcdFx0XFxcbitcdC8qIFJlcXVlc3RlZCBub2RlIGRpZmZlcmVudCBmcm9tIGNwdSBzaGVhZiAqL1x0XHRcdFxcXG4rXHRJVEVNX0VYUChBTExPQ19OT0RFX01JU01BVENILCBhbGxvY19ub2RlX21pc21hdGNoKVx0XHRcXFxuK1x0LyogU2xhYiBmcmVlZCB0byB0aGUgcGFnZSBhbGxvY2F0b3IgKi9cdFx0XHRcdFxcXG4rXHRJVEVNX0VYUChGUkVFX1NMQUIsIGZyZWVfc2xhYilcdFx0XHRcdFx0XFxcbitcdC8qIE51bWJlciBvZiB0aW1lcyBmYWxsYmFjayB3YXMgbmVjZXNzYXJ5ICovXHRcdFx0XFxcbitcdElURU1fRVhQKE9SREVSX0ZBTExCQUNLLCBvcmRlcl9mYWxsYmFjaylcdFx0XHRcXFxuK1x0LyogRmFpbHVyZXMgb2Ygc2xhYiBmcmVlbGlzdCB1cGRhdGUgKi9cdFx0XHRcdFxcXG4rXHRJVEVNX0VYUChDTVBYQ0hHX0RPVUJMRV9GQUlMLCBjbXB4Y2hnX2RvdWJsZV9mYWlsKVx0XHRcXFxuK1x0LyogT2JqZWN0cyBmbHVzaGVkIGZyb20gYSBzaGVhZiAqL1x0XHRcdFx0XFxcbitcdElURU1fRVhQKFNIRUFGX0ZMVVNILCBzaGVhZl9mbHVzaClcdFx0XHRcdFxcXG4rXHQvKiBPYmplY3RzIHJlZmlsbGVkIHRvIGEgc2hlYWYgKi9cdFx0XHRcdFxcXG4rXHRJVEVNX0VYUChTSEVBRl9SRUZJTEwsIHNoZWFmX3JlZmlsbClcdFx0XHRcdFxcXG4rXHQvKiBBbGxvY2F0aW9uIG9mIGFuIGVtcHR5IHNoZWFmIGluY2x1ZGluZyBvdmVyc2l6ZWQgb25lcyAqL1x0XFxcbitcdElURU1fRVhQKFNIRUFGX0FMTE9DLCBzaGVhZl9hbGxvYylcdFx0XHRcdFxcXG4rXHQvKiBGcmVlaW5nIG9mIGFuIGVtcHR5IHNoZWFmIGluY2x1ZGluZyBvdmVyc2l6ZWQgb25lcyAqL1x0XFxcbitcdElURU1fRVhQKFNIRUFGX0ZSRUUsIHNoZWFmX2ZyZWUpXHRcdFx0XHRcXFxuK1x0LyogR290IGZ1bGwgc2hlYWYgZnJvbSBiYXJuICovXHRcdFx0XHRcdFxcXG4rXHRJVEVNX0VYUChCQVJOX0dFVCwgYmFybl9nZXQpXHRcdFx0XHRcdFxcXG4rXHQvKiBGYWlsZWQgdG8gZ2V0IGZ1bGwgc2hlYWYgZnJvbSBiYXJuICovXHRcdFx0XFxcbitcdElURU1fRVhQKEJBUk5fR0VUX0ZBSUwsIGJhcm5fZ2V0X2ZhaWwpXHRcdFx0XHRcXFxuK1x0LyogUHV0IGZ1bGwgc2hlYWYgdG8gYmFybiAqL1x0XHRcdFx0XHRcXFxuK1x0SVRFTV9FWFAoQkFSTl9QVVQsIGJhcm5fcHV0KVx0XHRcdFx0XHRcXFxuK1x0LyogRmFpbGVkIHRvIHB1dCBmdWxsIHNoZWFmIHRvIGJhcm4gKi9cdFx0XHRcdFxcXG4rXHRJVEVNX0VYUChCQVJOX1BVVF9GQUlMLCBiYXJuX3B1dF9mYWlsKVx0XHRcdFx0XFxcbitcdC8qIFNoZWFmIHByZWZpbGwgZ3JhYmJlZCB0aGUgc3BhcmUgc2hlYWYgKi9cdFx0XHRcXFxuK1x0SVRFTV9FWFAoU0hFQUZfUFJFRklMTF9GQVNULCBzaGVhZl9wcmVmaWxsX2Zhc3QpXHRcdFxcXG4rXHQvKiBTaGVhZiBwcmVmaWxsIGZvdW5kIG5vIHNwYXJlIHNoZWFmICovXHRcdFx0XFxcbitcdElURU1fRVhQKFNIRUFGX1BSRUZJTExfU0xPVywgc2hlYWZfcHJlZmlsbF9zbG93KVx0XHRcXFxuK1x0LyogQWxsb2NhdGlvbiBvZiBvdmVyc2l6ZSBzaGVhZiBmb3IgcHJlZmlsbCAqL1x0XHRcdFxcXG4rXHRJVEVNX0VYUChTSEVBRl9QUkVGSUxMX09WRVJTSVpFLCBzaGVhZl9wcmVmaWxsX292ZXJzaXplKVx0XFxcbitcdC8qIFNoZWFmIHJldHVybiByZWF0dGFjaGVkIHNwYXJlIHNoZWFmICovXHRcdFx0XFxcbitcdElURU1fRVhQKFNIRUFGX1JFVFVSTl9GQVNULCBzaGVhZl9yZXR1cm5fZmFzdClcdFx0XHRcXFxuK1x0LyogU2hlYWYgcmV0dXJuIGNvdWxkIG5vdCByZWF0dGFjaCBzcGFyZSAqL1x0XHRcdFxcXG4rXHRJVEVNX0VYUChTSEVBRl9SRVRVUk5fU0xPVywgc2hlYWZfcmV0dXJuX3Nsb3cpXG4rXG4gZW51bSBzdGF0X2l0ZW0ge1xuLVx0QUxMT0NfRkFTVFBBVEgsXHRcdC8qIEFsbG9jYXRpb24gZnJvbSBwZXJjcHUgc2hlYXZlcyAqL1xuLVx0QUxMT0NfU0xPV1BBVEgsXHRcdC8qIEFsbG9jYXRpb24gZnJvbSBwYXJ0aWFsIG9yIG5ldyBzbGFiICovXG4tXHRGUkVFX1JDVV9TSEVBRixcdFx0LyogRnJlZSB0byByY3VfZnJlZSBzaGVhZiAqL1xuLVx0RlJFRV9SQ1VfU0hFQUZfRkFJTCxcdC8qIEZhaWxlZCB0byBmcmVlIHRvIGEgcmN1X2ZyZWUgc2hlYWYgKi9cbi1cdEZSRUVfRkFTVFBBVEgsXHRcdC8qIEZyZWUgdG8gcGVyY3B1IHNoZWF2ZXMgKi9cbi1cdEZSRUVfU0xPV1BBVEgsXHRcdC8qIEZyZWUgdG8gYSBzbGFiICovXG4tXHRGUkVFX0FERF9QQVJUSUFMLFx0LyogRnJlZWluZyBtb3ZlcyBzbGFiIHRvIHBhcnRpYWwgbGlzdCAqL1xuLVx0RlJFRV9SRU1PVkVfUEFSVElBTCxcdC8qIEZyZWVpbmcgcmVtb3ZlcyBsYXN0IG9iamVjdCAqL1xuLVx0QUxMT0NfU0xBQixcdFx0LyogTmV3IHNsYWIgYWNxdWlyZWQgZnJvbSBwYWdlIGFsbG9jYXRvciAqL1xuLVx0QUxMT0NfTk9ERV9NSVNNQVRDSCxcdC8qIFJlcXVlc3RlZCBub2RlIGRpZmZlcmVudCBmcm9tIGNwdSBzaGVhZiAqL1xuLVx0RlJFRV9TTEFCLFx0XHQvKiBTbGFiIGZyZWVkIHRvIHRoZSBwYWdlIGFsbG9jYXRvciAqL1xuLVx0T1JERVJfRkFMTEJBQ0ssXHRcdC8qIE51bWJlciBvZiB0aW1lcyBmYWxsYmFjayB3YXMgbmVjZXNzYXJ5ICovXG4tXHRDTVBYQ0hHX0RPVUJMRV9GQUlMLFx0LyogRmFpbHVyZXMgb2Ygc2xhYiBmcmVlbGlzdCB1cGRhdGUgKi9cbi1cdFNIRUFGX0ZMVVNILFx0XHQvKiBPYmplY3RzIGZsdXNoZWQgZnJvbSBhIHNoZWFmICovXG4tXHRTSEVBRl9SRUZJTEwsXHRcdC8qIE9iamVjdHMgcmVmaWxsZWQgdG8gYSBzaGVhZiAqL1xuLVx0U0hFQUZfQUxMT0MsXHRcdC8qIEFsbG9jYXRpb24gb2YgYW4gZW1wdHkgc2hlYWYgaW5jbHVkaW5nIG92ZXJzaXplZCBvbmVzICovXG4tXHRTSEVBRl9GUkVFLFx0XHQvKiBGcmVlaW5nIG9mIGFuIGVtcHR5IHNoZWFmIGluY2x1ZGluZyBvdmVyc2l6ZWQgb25lcyAqL1xuLVx0QkFSTl9HRVQsXHRcdC8qIEdvdCBmdWxsIHNoZWFmIGZyb20gYmFybiAqL1xuLVx0QkFSTl9HRVRfRkFJTCxcdFx0LyogRmFpbGVkIHRvIGdldCBmdWxsIHNoZWFmIGZyb20gYmFybiAqL1xuLVx0QkFSTl9QVVQsXHRcdC8qIFB1dCBmdWxsIHNoZWFmIHRvIGJhcm4gKi9cbi1cdEJBUk5fUFVUX0ZBSUwsXHRcdC8qIEZhaWxlZCB0byBwdXQgZnVsbCBzaGVhZiB0byBiYXJuICovXG4tXHRTSEVBRl9QUkVGSUxMX0ZBU1QsXHQvKiBTaGVhZiBwcmVmaWxsIGdyYWJiZWQgdGhlIHNwYXJlIHNoZWFmICovXG4tXHRTSEVBRl9QUkVGSUxMX1NMT1csXHQvKiBTaGVhZiBwcmVmaWxsIGZvdW5kIG5vIHNwYXJlIHNoZWFmICovXG4tXHRTSEVBRl9QUkVGSUxMX09WRVJTSVpFLFx0LyogQWxsb2NhdGlvbiBvZiBvdmVyc2l6ZSBzaGVhZiBmb3IgcHJlZmlsbCAqL1xuLVx0U0hFQUZfUkVUVVJOX0ZBU1QsXHQvKiBTaGVhZiByZXR1cm4gcmVhdHRhY2hlZCBzcGFyZSBzaGVhZiAqL1xuLVx0U0hFQUZfUkVUVVJOX1NMT1csXHQvKiBTaGVhZiByZXR1cm4gY291bGQgbm90IHJlYXR0YWNoIHNwYXJlICovXG4rI2RlZmluZSBJVEVNX0VYUChuYW1lLCB1bnVzZWQpIG5hbWUsXG4rXHRTVEFUX0lURU1TXG4rI3VuZGVmIElURU1fRVhQXG4gXHROUl9TTFVCX1NUQVRfSVRFTVNcbiB9O1xuIFxuQEAgLTk1MTIsMzQgKzk1NDMsMTIgQEAgc3RhdGljIHNzaXplX3QgdGV4dCMjX3N0b3JlKHN0cnVjdCBrbWVtX2NhY2hlICpzLFx0XHRcXFxuIFx0Y2xlYXJfc3RhdChzLCBzaSk7XHRcdFx0XHRcdFxcXG4gXHRyZXR1cm4gbGVuZ3RoO1x0XHRcdFx0XHRcdFxcXG4gfVx0XHRcdFx0XHRcdFx0XHRcXFxuLVNMQUJfQVRUUih0ZXh0KTtcdFx0XHRcdFx0XHRcXFxuLVxuLVNUQVRfQVRUUihBTExPQ19GQVNUUEFUSCwgYWxsb2NfZmFzdHBhdGgpO1xuLVNUQVRfQVRUUihBTExPQ19TTE9XUEFUSCwgYWxsb2Nfc2xvd3BhdGgpO1xuLVNUQVRfQVRUUihGUkVFX1JDVV9TSEVBRiwgZnJlZV9yY3Vfc2hlYWYpO1xuLVNUQVRfQVRUUihGUkVFX1JDVV9TSEVBRl9GQUlMLCBmcmVlX3JjdV9zaGVhZl9mYWlsKTtcbi1TVEFUX0FUVFIoRlJFRV9GQVNUUEFUSCwgZnJlZV9mYXN0cGF0aCk7XG4tU1RBVF9BVFRSKEZSRUVfU0xPV1BBVEgsIGZyZWVfc2xvd3BhdGgpO1xuLVNUQVRfQVRUUihGUkVFX0FERF9QQVJUSUFMLCBmcmVlX2FkZF9wYXJ0aWFsKTtcbi1TVEFUX0FUVFIoRlJFRV9SRU1PVkVfUEFSVElBTCwgZnJlZV9yZW1vdmVfcGFydGlhbCk7XG4tU1RBVF9BVFRSKEFMTE9DX1NMQUIsIGFsbG9jX3NsYWIpO1xuLVNUQVRfQVRUUihBTExPQ19OT0RFX01JU01BVENILCBhbGxvY19ub2RlX21pc21hdGNoKTtcbi1TVEFUX0FUVFIoRlJFRV9TTEFCLCBmcmVlX3NsYWIpO1xuLVNUQVRfQVRUUihPUkRFUl9GQUxMQkFDSywgb3JkZXJfZmFsbGJhY2spO1xuLVNUQVRfQVRUUihDTVBYQ0hHX0RPVUJMRV9GQUlMLCBjbXB4Y2hnX2RvdWJsZV9mYWlsKTtcbi1TVEFUX0FUVFIoU0hFQUZfRkxVU0gsIHNoZWFmX2ZsdXNoKTtcbi1TVEFUX0FUVFIoU0hFQUZfUkVGSUxMLCBzaGVhZl9yZWZpbGwpO1xuLVNUQVRfQVRUUihTSEVBRl9BTExPQywgc2hlYWZfYWxsb2MpO1xuLVNUQVRfQVRUUihTSEVBRl9GUkVFLCBzaGVhZl9mcmVlKTtcbi1TVEFUX0FUVFIoQkFSTl9HRVQsIGJhcm5fZ2V0KTtcbi1TVEFUX0FUVFIoQkFSTl9HRVRfRkFJTCwgYmFybl9nZXRfZmFpbCk7XG4tU1RBVF9BVFRSKEJBUk5fUFVULCBiYXJuX3B1dCk7XG4tU1RBVF9BVFRSKEJBUk5fUFVUX0ZBSUwsIGJhcm5fcHV0X2ZhaWwpO1xuLVNUQVRfQVRUUihTSEVBRl9QUkVGSUxMX0ZBU1QsIHNoZWFmX3ByZWZpbGxfZmFzdCk7XG4tU1RBVF9BVFRSKFNIRUFGX1BSRUZJTExfU0xPVywgc2hlYWZfcHJlZmlsbF9zbG93KTtcbi1TVEFUX0FUVFIoU0hFQUZfUFJFRklMTF9PVkVSU0laRSwgc2hlYWZfcHJlZmlsbF9vdmVyc2l6ZSk7XG4tU1RBVF9BVFRSKFNIRUFGX1JFVFVSTl9GQVNULCBzaGVhZl9yZXR1cm5fZmFzdCk7XG4tU1RBVF9BVFRSKFNIRUFGX1JFVFVSTl9TTE9XLCBzaGVhZl9yZXR1cm5fc2xvdyk7XG4rU0xBQl9BVFRSKHRleHQpO1xuK1xuKyNkZWZpbmUgSVRFTV9FWFAobmFtZSwgdGV4dCkgU1RBVF9BVFRSKG5hbWUsIHRleHQpXG4rU1RBVF9JVEVNU1xuKyN1bmRlZiBJVEVNX0VYUFxuK1xuICNlbmRpZlx0LyogQ09ORklHX1NMVUJfU1RBVFMgKi9cbiBcbiAjaWZkZWYgQ09ORklHX0tGRU5DRVxuQEAgLTk2MDIsMzIgKzk2MTEsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqY29uc3Qgc2xhYl9hdHRyc1tdID0ge1xuIFx0XHUwMDI2cmVtb3RlX25vZGVfZGVmcmFnX3JhdGlvX2F0dHIuYXR0cixcbiAjZW5kaWZcbiAjaWZkZWYgQ09ORklHX1NMVUJfU1RBVFNcbi1cdFx1MDAyNmFsbG9jX2Zhc3RwYXRoX2F0dHIuYXR0cixcbi1cdFx1MDAyNmFsbG9jX3Nsb3dwYXRoX2F0dHIuYXR0cixcbi1cdFx1MDAyNmZyZWVfcmN1X3NoZWFmX2F0dHIuYXR0cixcbi1cdFx1MDAyNmZyZWVfcmN1X3NoZWFmX2ZhaWxfYXR0ci5hdHRyLFxuLVx0XHUwMDI2ZnJlZV9mYXN0cGF0aF9hdHRyLmF0dHIsXG4tXHRcdTAwMjZmcmVlX3Nsb3dwYXRoX2F0dHIuYXR0cixcbi1cdFx1MDAyNmZyZWVfYWRkX3BhcnRpYWxfYXR0ci5hdHRyLFxuLVx0XHUwMDI2ZnJlZV9yZW1vdmVfcGFydGlhbF9hdHRyLmF0dHIsXG4tXHRcdTAwMjZhbGxvY19zbGFiX2F0dHIuYXR0cixcbi1cdFx1MDAyNmFsbG9jX25vZGVfbWlzbWF0Y2hfYXR0ci5hdHRyLFxuLVx0XHUwMDI2ZnJlZV9zbGFiX2F0dHIuYXR0cixcbi1cdFx1MDAyNm9yZGVyX2ZhbGxiYWNrX2F0dHIuYXR0cixcbi1cdFx1MDAyNmNtcHhjaGdfZG91YmxlX2ZhaWxfYXR0ci5hdHRyLFxuLVx0XHUwMDI2c2hlYWZfZmx1c2hfYXR0ci5hdHRyLFxuLVx0XHUwMDI2c2hlYWZfcmVmaWxsX2F0dHIuYXR0cixcbi1cdFx1MDAyNnNoZWFmX2FsbG9jX2F0dHIuYXR0cixcbi1cdFx1MDAyNnNoZWFmX2ZyZWVfYXR0ci5hdHRyLFxuLVx0XHUwMDI2YmFybl9nZXRfYXR0ci5hdHRyLFxuLVx0XHUwMDI2YmFybl9nZXRfZmFpbF9hdHRyLmF0dHIsXG4tXHRcdTAwMjZiYXJuX3B1dF9hdHRyLmF0dHIsXG4tXHRcdTAwMjZiYXJuX3B1dF9mYWlsX2F0dHIuYXR0cixcbi1cdFx1MDAyNnNoZWFmX3ByZWZpbGxfZmFzdF9hdHRyLmF0dHIsXG4tXHRcdTAwMjZzaGVhZl9wcmVmaWxsX3Nsb3dfYXR0ci5hdHRyLFxuLVx0XHUwMDI2c2hlYWZfcHJlZmlsbF9vdmVyc2l6ZV9hdHRyLmF0dHIsXG4tXHRcdTAwMjZzaGVhZl9yZXR1cm5fZmFzdF9hdHRyLmF0dHIsXG4tXHRcdTAwMjZzaGVhZl9yZXR1cm5fc2xvd19hdHRyLmF0dHIsXG4rI2RlZmluZSBJVEVNX0VYUCh1bnVzZWQsIHRleHQpIFx1MDAyNnRleHQjI19hdHRyLmF0dHIsXG4rXHRTVEFUX0lURU1TXG4rI3VuZGVmIElURU1fRVhQXG4gI2VuZGlmXG4gI2lmZGVmIENPTkZJR19GQUlMU0xBQlxuIFx0XHUwMDI2ZmFpbHNsYWJfYXR0ci5hdHRyLFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDc6NTQ6MDguODg4NTc1Mzc5WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Njg1MjQ5NTk0OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBTTFVCIFN0YXRpc3RpY3MgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGp1c3QgcmV2aWV3ZWQgdGhpcyBwYXRjaCBhbmQgaXQncyBhIHN0cmFpZ2h0Zm9yd2FyZCByZWZhY3RvcmluZyB3aXRoaW4gYG1tL3NsdWIuY2AuIE15IGluaXRpYWwgaW1wcmVzc2lvbiBpcyB0aGF0IGl0J3MgcHVyZWx5IGNvc21ldGljLCB3aGljaCBpcyBnb29kLiBJIHNlZSB0aGUgbWFpbiBjaGFuZ2UgaXMgdGhlIGludHJvZHVjdGlvbiBvZiBhIG1hY3JvLCBgU1RBVF9JVEVNU2AsIGFsb25nIHdpdGggYElURU1fRVhQYC4gSXQgbG9va3MgbGlrZSB0aGV5J3JlIGp1c3QgYWltaW5nIHRvIGF2b2lkIGNvZGUgZHVwbGljYXRpb24gYWNyb3NzIHRoZSBgc3RhdF9pdGVtYCBlbnVtIGRlZmluaXRpb24sIHRoZSBgU1RBVF9BVFRSYCBkZWNsYXJhdGlvbnMsIGFuZCB0aGUgZW50cmllcyB3aXRoaW4gdGhlIGBzbGFiX2F0dHJzYCBhcnJheS5cblxuTGV0IG1lIGp1c3QgcXVpY2tseSB2ZXJpZnkgdGhpcyBieSBjaGVja2luZyB0aGUgZGlmZiBkaXJlY3RseS4uLiBZdXAsIGxvb2tzIGV4YWN0bHkgYXMgSSB0aG91Z2h0LiBUaGV5J3ZlIHVzZWQgYFNUQVRfSVRFTVNgIGFuZCBgSVRFTV9FWFBgIHRvIHJlcGxhY2UgdGhlIHJlcGV0aXRpdmUgY29kZSBibG9ja3MuIFRoZSBjb2RlIGl0c2VsZiBpcyBzdHJ1Y3R1cmFsbHkgaWRlbnRpY2FsLCBvbmx5IHRoZSBwcmVzZW50YXRpb24gaGFzIGNoYW5nZWQuIE5vIG5ldyBmZWF0dXJlcywgbm8gY2hhbmdlIGluIGV4ZWN1dGlvbiBwYXRocywgbm8gZnVuY3Rpb25hbCBjaGFuZ2VzLiBJdCdzIGp1c3QgY2xlYW5lciBhbmQgbW9yZSBtYWludGFpbmFibGUgZnJvbSBhIGNvZGluZyBzdHlsZSBwZXJzcGVjdGl2ZS4gR29vZCBmb3IgcmVhZGFiaWxpdHksIGxlc3Mgcm9vbSBmb3IgZXJyb3JzLCBhbmQgZWFzaWVyIG1haW50ZW5hbmNlIGRvd24gdGhlIHJvYWQuXG5cbkdpdmVuIHRoYXQgdGhlcmUgYXJlIG5vIGZ1bmN0aW9uYWwgY2hhbmdlcyB3aGF0c29ldmVyLCBJJ20gY29uZmlkZW50IGluIG1hcmtpbmcgdGhpcyBhcyBgV29ydGhGdXp6aW5nPWZhbHNlYC4gSXQncyBhIGNsZWFuIHJlZmFjdG9yIHRoYXQgZG9lc24ndCBpbnRyb2R1Y2UgYW55IG5ldyBhdHRhY2sgc3VyZmFjZXMgb3IgbG9naWMgdGhhdCBuZWVkcyBmdXp6aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NDI4LCJPdXRwdXRUb2tlbnMiOjcxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzU3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTRUMDc6NTQ6MTUuNzQxMDc2ODk4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0OTQ4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBwdXJlbHkgcmVmYWN0b3JzIHRoZSBkZWZpbml0aW9uIG9mIFNMVUIgc3RhdGlzdGljcyBhdHRyaWJ1dGVzIHVzaW5nIG1hY3JvcyAoU1RBVF9JVEVNUyBhbmQgSVRFTV9FWFApIHRvIHJlZHVjZSBjb2RlIGR1cGxpY2F0aW9uLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgZXhlY3V0aW9uIGZsb3cuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBwdXJlbHkgcmVmYWN0b3JzIHRoZSBkZWZpbml0aW9uIG9mIFNMVUIgc3RhdGlzdGljcyBhdHRyaWJ1dGVzIHVzaW5nIG1hY3JvcyAoU1RBVF9JVEVNUyBhbmQgSVRFTV9FWFApIHRvIHJlZHVjZSBjb2RlIGR1cGxpY2F0aW9uLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgZXhlY3V0aW9uIGZsb3cuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNFQwNzo1NDoxNS43NDExMzI0NzhaIiwiU2VxIjo1LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTIyMDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowkmhnq[1] Phase: Running StartedAt: 2026-08-14 07:54:26 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkmhnq[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-14 07:54:26 +0000 UTC FinishedAt: 2026-08-14 07:54:30 +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,}