ZGlmZiAtLWdpdCBhL0FOTk9VTkNFIGIvQU5OT1VOQ0UKaW5kZXggNjNlZTg5My4uMWVmYjI1YiAxMDA2NDQKLS0tIGEvQU5OT1VOQ0UKKysrIGIvQU5OT1VOQ0UKQEAgLTEsNSArMSw1IEBACiAKLUxpYnBuZyAxLjAuOWJldGEyIC0gTm92ZW1iZXIgMTksIDIwMDAKK0xpYnBuZyAxLjAuOWJldGEzIC0gTm92ZW1iZXIgMjMsIDIwMDAKIAogVGhpcyBpcyBhIHB1YmxpYyByZWxlYXNlIG9mIGxpYnBuZywgaW50ZW5kZWQgZm9yIHVzZSBpbiBwcm9kdWN0aW9uIGNvZGVzLgogCkBAIC0yOCw2ICsyOCwxMCBAQAogICAgIHN1YmRpcmVjdG9yeSBhbmQgYWRkZWQgcHJvamVjdHMvYm9ybGFuZCBwcm9qZWN0IHN1YmRpcmVjdG9yeS4KICAgU2V0IFZTX0ZGX1BSRVJFTEVBU0UgYW5kIFZTX0ZGX1BBVENIRUQgZmxhZ3MgaW4gbXN2Yy9wbmcucmMgd2hlbiBhcHByb3ByaWF0ZS4KICAgQWRkIGVycm9yIG1lc3NhZ2UgaW4gcG5nX3NldF9jb21wcmVzc2lvbl9idWZmZXJfc2l6ZSgpIHdoZW4gbWFsbG9jIGZhaWxzLgorICBSZXZpc2VkIFBOR19MSUJQTkdfQlVJTERfVFlQRSBtYWNybyBpbiBwbmcuaCwgdXNlZCBpbiB0aGUgbXN2YyBwcm9qZWN0LgorICBJZmRlZidlZCBvdXQgdGhlIHBuZ19mbHVzaCgpIGluIHBuZ3dyaXRlLmMgdGhhdCBjcmFzaGVzIHNvbWUgYXBwbGljYXRpb25zCisgICAgdGhhdCBkb24ndCBzZXQgcG5nX291dHB1dF9mbHVzaF9mbi4KKyAgQWRkZWQgbWFrZWZpbGUubWFjb3N4IGFuZCBtYWtlZmlsZS5haXggdG8gc2NyaXB0cyBkaXJlY3RvcnkuCiAKIFNlbmQgY29tbWVudHMvY29ycmVjdGlvbnMvY29tbWVuZGF0aW9ucyB0bwogcG5nLWltcGxlbWVudEBjY3JjLnd1c3RsLmVkdSBvciB0byByYW5kZWdAYWx1bS5ycGkuZWR1CmRpZmYgLS1naXQgYS9DSEFOR0VTIGIvQ0hBTkdFUwppbmRleCAzM2Y3MDQ1Li5jYzlkMzRjIDEwMDY0NAotLS0gYS9DSEFOR0VTCisrKyBiL0NIQU5HRVMKQEAgLTM3OSw3ICszNzksNyBAQAogICBDaGFuZ2VkICJsbiAtc2YiIHRvICJsbiAtcyAtZiIgaW4gbWFrZWZpbGUuczJ4LCBtYWtlZmlsZS5sbngsIGFuZCBtYWtlZmlsZS5zY28uCiAgIFJlbW92ZWQgbGluZXMgYWZ0ZXIgRHluYW1pYyBEZXBlbmRlbmNpZXMiIGluIG1ha2VmaWxlLmFjbyAuCiAgIFJldmlzZWQgbWFrZWZpbGUuZGVjIHRvIG1ha2UgYSBzaGFyZWQgbGlicmFyeSAoSmVyZW1pZSBQZXRpdCkuCi0gIFJlbW92ZWQgdHJhaWxpbmcgYmxhbmtzIGZyb20gYWxsIGZpbGVzLiAKKyAgUmVtb3ZlZCB0cmFpbGluZyBibGFua3MgZnJvbSBhbGwgZmlsZXMuCiB2ZXJzaW9uIDEuMC4yYSBbSmFudWFyeSA2LCAxOTk5XQogICBSZW1vdmVkIG1pc3BsYWNlZCAjZW5kaWYgYW5kICNpZmRlZiBQTkdfTk9fRVhURVJOIG5lYXIgdGhlIGVuZCBvZiBwbmcuaAogICBBZGRlZCAiaWYiIHRlc3RzIHRvIHNpbGVuY2UgY29tcGxhaW50cyBhYm91dCB1bnVzZWQgcG5nX3B0ciBpbiBwbmcuaCBhbmQgcG5nLmMKQEAgLTcxOCw3ICs3MTgsNyBAQAogICAgIHRoZSBoaWdoLWxldmVsIGludGVyZmFjZSwgYW5kIHVua25vd24gY2h1bmtzIHN1cHBvcnQgKGFsbCBuZXcgaW4gMS4wLjYpLgogICAgIFRoaXMgd2FzIG5lY2Vzc2FyeSBiZWNhdXNlIG9mIG9sZCBhcHBsaWNhdGlvbnMgdGhhdCBhbGxvY2F0ZSB0aGUgc3RydWN0cwogICAgIGRpcmVjdGx5IGFzIGF1dGhvcnMgd2VyZSBpbnN0cnVjdGVkIHRvIGRvIGluIGxpYnBuZy0wLjg4IGFuZCBlYXJsaWVyLAotICAgIGluc3RlYWQgb2YgdXNpbmcgcG5nX2NyZWF0ZV8qKCkuIAorICAgIGluc3RlYWQgb2YgdXNpbmcgcG5nX2NyZWF0ZV8qKCkuCiAgIEFkZGVkIG1vZGVzIFBOR19DUkVBVEVEX1JFQURfU1RSVUNUIGFuZCBQTkdfQ1JFQVRFRF9XUklURV9TVFJVQ1Qgd2hpY2gKICAgICBjYW4gYmUgdXNlZCB0byBkZXRlY3QgY29kZXMgdGhhdCBkaXJlY3RseSBhbGxvY2F0ZSB0aGUgc3RydWN0cywgYW5kCiAgICAgY29kZSB0byBjaGVjayB0aGVzZSBtb2RlcyBpbiBwbmdfcmVhZF9pbml0KCkgYW5kIHBuZ193cml0ZV9pbml0KCkgYW5kCkBAIC03OTgsNyArNzk4LDcgQEAKICAgRml4ZWQgIkRKQlBQIiB0eXBvIGluIHBuZ2djY3JkLmMgaW50cm9kdWNlZCBpbiBiZXRhMTguCiB2ZXJzaW9uIDEuMC43IFtKdWx5IDEsIDIwMDBdCiAgIFJldmlzZWQgdGhlIGRlZmluaXRpb24gb2YgInRyYW5zX3ZhbHVlcyIgaW4gbGlicG5nLjMvbGlicG5nLnR4dAotdmVyc2lvbiAxLjAuOWJldGEyIFtOb3ZlbWJlciAxOSwgMjAwMF0KK3ZlcnNpb24gMS4wLjliZXRhMyBbTm92ZW1iZXIgMjMsIDIwMDBdCiB2ZXJzaW9uIDEuMC44YmV0YTEgW0p1bHkgOCwgMjAwMF0KICAgQWRkZWQgcG5nX2ZyZWUocG5nX3B0ciwga2V5KSB0d28gcGxhY2VzIGluIHBuZ3ByZWFkLmMgdG8gc3RvcCBtZW1vcnkgbGVha3MuCiAgIENoYW5nZWQgUE5HX05PX1NURElPIHRvIFBOR19OT19DT05TT0xFX0lPLCBzZXZlcmFsIHBsYWNlcyBpbiBwbmdydXRpbC5jIGFuZApAQCAtODQ4LDYgKzg0OCwxMSBAQAogICBBZGRlZCBib3JsYW5kIHByb2plY3QgZmlsZXMgdG8gInByb2plY3RzIiBzdWJkaXJlY3RvcnkuCiAgIFNldCBWU19GRl9QUkVSRUxFQVNFIGFuZCBWU19GRl9QQVRDSEVEIGZsYWdzIGluIG1zdmMvcG5nLnJjIHdoZW4gYXBwcm9wcmlhdGUuCiAgIEFkZCBlcnJvciBtZXNzYWdlIGluIHBuZ19zZXRfY29tcHJlc3Npb25fYnVmZmVyX3NpemUoKSB3aGVuIG1hbGxvYyBmYWlscy4KK3ZlcnNpb24gMS4wLjliZXRhMyBbTm92ZW1iZXIgMjMsIDIwMDBdCisgIFJldmlzZWQgUE5HX0xJQlBOR19CVUlMRF9UWVBFIG1hY3JvIGluIHBuZy5oLCB1c2VkIGluIHRoZSBtc3ZjIHByb2plY3QuCisgIElmZGVmJ2VkIG91dCB0aGUgcG5nX2ZsdXNoKCkgaW4gcG5nd3JpdGUuYyB0aGF0IGNyYXNoZXMgc29tZSBhcHBsaWNhdGlvbnMKKyAgICB0aGF0IGRvbid0IHNldCBwbmdfb3V0cHV0X2ZsdXNoX2ZuLgorICBBZGRlZCBtYWtlZmlsZS5tYWNvc3ggYW5kIG1ha2VmaWxlLmFpeCB0byBzY3JpcHRzIGRpcmVjdG9yeS4KIAogU2VuZCBjb21tZW50cy9jb3JyZWN0aW9ucy9jb21tZW5kYXRpb25zIHRvCiBwbmctaW1wbGVtZW50QGNjcmMud3VzdGwuZWR1IG9yIHRvIHJhbmRlZ0BhbHVtLnJwaS5lZHUKZGlmZiAtLWdpdCBhL0lOU1RBTEwgYi9JTlNUQUxMCmluZGV4IGZhNzRiMTIuLmFlOGFhZTEgMTAwNjQ0Ci0tLSBhL0lOU1RBTEwKKysrIGIvSU5TVEFMTApAQCAtMSw1ICsxLDUgQEAKIAotSW5zdGFsbGluZyBsaWJwbmcgdmVyc2lvbiAxLjAuOWJldGEyIC0gTm92ZW1iZXIgMTksIDIwMDAKK0luc3RhbGxpbmcgbGlicG5nIHZlcnNpb24gMS4wLjliZXRhMyAtIE5vdmVtYmVyIDIzLCAyMDAwCiAKIEJlZm9yZSBpbnN0YWxsaW5nIGxpYnBuZywgeW91IG11c3QgZmlyc3QgaW5zdGFsbCB6bGliLiAgemxpYgogY2FuIHVzdWFsbHkgYmUgZm91bmQgd2hlcmV2ZXIgeW91IGdvdCBsaWJwbmcuICB6bGliIGNhbiBiZQpAQCAtMTAsNyArMTAsNyBAQAogdmVyc2lvbiBvZiB6bGliIHRoYXQncyBpbnN0YWxsZWQuCiAKIFlvdSBjYW4gcmVuYW1lIHRoZSBkaXJlY3RvcmllcyB0aGF0IHlvdSBkb3dubG9hZGVkICh0aGV5Ci1taWdodCBiZSBjYWxsZWQgImxpYnBuZy0xLjAuOWJldGEyIiBvciAibHBuZzEwOSIgYW5kICJ6bGliLTEuMS4zIgorbWlnaHQgYmUgY2FsbGVkICJsaWJwbmctMS4wLjliZXRhMyIgb3IgImxwbmcxMDkiIGFuZCAiemxpYi0xLjEuMyIKIG9yICJ6bGliMTEzIikgc28gdGhhdCB5b3UgaGF2ZSBkaXJlY3RvcmllcyBjYWxsZWQgInpsaWIiIGFuZCAibGlicG5nIi4KIAogWW91ciBkaXJlY3Rvcnkgc3RydWN0dXJlIHNob3VsZCBsb29rIGxpa2UgdGhpczoKQEAgLTUzLDI5ICs1MywzMSBAQAogCiBFbHNlIGVudGVyIHRoZSB6bGliIGRpcmVjdG9yeSBhbmQgZm9sbG93IHRoZSBpbnN0cnVjdGlvbnMgaW4gemxpYi9SRUFETUUsCiB0aGVuIGNvbWUgYmFjayBoZXJlIGFuZCBjaG9vc2UgdGhlIGFwcHJvcHJpYXRlIG1ha2VmaWxlLnN5cyBpbiB0aGUgc2NyaXB0cwotZGlyZWN0b3J5LiAgCitkaXJlY3RvcnkuCiAKIFRoZSBmaWxlcyB0aGF0IGFyZSBwcmVzZW50bHkgYXZhaWxhYmxlIGluIHRoZSBzY3JpcHRzIGRpcmVjdG9yeQogaW5jbHVkZQogCiAgbWFrZWZpbGUuc3RkICAgICAgPT4gIEdlbmVyaWMgVU5JWCBtYWtlZmlsZSAoY2MsIGNyZWF0ZXMgc3RhdGljIGxpYnBuZy5hKQotIG1ha2VmaWxlLmxpbnV4ICAgID0+ICBMaW51eC9FTEYgbWFrZWZpbGUgKGdjYywgY3JlYXRlcyBsaWJwbmcuc28uMi4xLjAuOWJldGEyKQotIG1ha2VmaWxlLmdjbW14ICAgID0+ICBMaW51eC9FTEYgbWFrZWZpbGUgKGdjYywgY3JlYXRlcyBsaWJwbmcuc28uMi4xLjAuOWJldGEyLAorIG1ha2VmaWxlLmxpbnV4ICAgID0+ICBMaW51eC9FTEYgbWFrZWZpbGUgKGdjYywgY3JlYXRlcyBsaWJwbmcuc28uMi4xLjAuOWJldGEzKQorIG1ha2VmaWxlLmdjbW14ICAgID0+ICBMaW51eC9FTEYgbWFrZWZpbGUgKGdjYywgY3JlYXRlcyBsaWJwbmcuc28uMi4xLjAuOWJldGEzLAogICAgICAgICAgICAgICAgICAgICAgICB1c2VzIGFzc2VtYmxlciBjb2RlIHR1bmVkIGZvciBJbnRlbCBNTVggcGxhdGZvcm0pCiAgbWFrZWZpbGUuZ2NjICAgICAgPT4gIEdlbmVyaWMgbWFrZWZpbGUgKGdjYywgY3JlYXRlcyBzdGF0aWMgbGlicG5nLmEpCiAgbWFrZWZpbGUua25yICAgICAgPT4gIEFyY2hhaWMgVU5JWCBNYWtlZmlsZSB0aGF0IGNvbnZlcnRzIGZpbGVzIHdpdGgKICAgICAgICAgICAgICAgICAgICAgICAgYW5zaTJrbnIgKFJlcXVpcmVzIGFuc2kya25yLmMgZnJvbQogICAgICAgICAgICAgICAgICAgICAgICBmdHA6Ly9mdHAuY3Mud2lzYy5lZHUvZ2hvc3QpCisgbWFrZWZpbGUuYWl4ICAgICAgPT4gIEFJWCBtYWtlZmlsZQogIG1ha2VmaWxlLmN5Z3dpbiAgID0+ICBDeWd3aW4vZ2NjIG1ha2VmaWxlCiAgbWFrZWZpbGUuZGVjICAgICAgPT4gIERFQyBBbHBoYSBVTklYIG1ha2VmaWxlCiAgbWFrZWZpbGUuaHB1eCAgICAgPT4gIEhQVVggKDEwLjIwIGFuZCAxMS4wMCkgbWFrZWZpbGUKICBtYWtlZmlsZS5pYm1jICAgICA9PiAgSUJNIEMvQysrIHZlcnNpb24gMy54IGZvciBXaW4zMiBhbmQgT1MvMiAoc3RhdGljKQogIG1ha2VmaWxlLmludGVsICAgID0+ICBJbnRlbCBDL0MrKyB2ZXJzaW9uIDQuMCBhbmQgbGF0ZXIKICBsaWJwbmcuaWNjICAgICAgICA9PiAgUHJvamVjdCBmaWxlIGZvciBJQk0gVmlzdWFsQWdlL0MrKyB2ZXJzaW9uIDQuMCBvciBsYXRlcgorIG1ha2VmaWxlLm1hY29zeCAgID0+ICBNQUNPUyBYIE1ha2VmaWxlCiAgbWFrZWZpbGUuc2dpICAgICAgPT4gIFNpbGljb24gR3JhcGhpY3MgSVJJWCBtYWtlZmlsZSAoY2MsIGNyZWF0ZXMgc3RhdGljIGxpYikKLSBtYWtlZmlsZS5zZ2djYyAgICA9PiAgU2lsaWNvbiBHcmFwaGljcyAoZ2NjLCBjcmVhdGVzIGxpYnBuZy5zby4yLjEuMC45YmV0YTIpCisgbWFrZWZpbGUuc2dnY2MgICAgPT4gIFNpbGljb24gR3JhcGhpY3MgKGdjYywgY3JlYXRlcyBsaWJwbmcuc28uMi4xLjAuOWJldGEzKQogIG1ha2VmaWxlLnN1bm9zICAgID0+ICBTdW4gbWFrZWZpbGUKLSBtYWtlZmlsZS5zb2xhcmlzICA9PiAgU29sYXJpcyAyLlggbWFrZWZpbGUgKGdjYywgY3JlYXRlcyBsaWJwbmcuc28uMi4xLjAuOWJldGEyKQorIG1ha2VmaWxlLnNvbGFyaXMgID0+ICBTb2xhcmlzIDIuWCBtYWtlZmlsZSAoZ2NjLCBjcmVhdGVzIGxpYnBuZy5zby4yLjEuMC45YmV0YTMpCiAgbWFrZWZpbGUuc2NvICAgICAgPT4gIEZvciBTQ08gT1NyNSAgRUxGIGFuZCBVbml4d2FyZSA3IHdpdGggTmF0aXZlIGNjCiAgbWFrZWZpbGUubWlwcyAgICAgPT4gIE1JUFMgbWFrZWZpbGUKICBtYWtlZmlsZS5hY29ybiAgICA9PiAgQWNvcm4gbWFrZWZpbGUKZGlmZiAtLWdpdCBhL0xJQ0VOU0UgYi9MSUNFTlNFCmluZGV4IDdiODg5NDMuLmViYjg0MjAgMTAwNjQ0Ci0tLSBhL0xJQ0VOU0UKKysrIGIvTElDRU5TRQpAQCAtOCw3ICs4LDcgQEAKIElmIHlvdSBtb2RpZnkgbGlicG5nIHlvdSBtYXkgaW5zZXJ0IGFkZGl0aW9uYWwgbm90aWNlcyBpbW1lZGlhdGVseSBmb2xsb3dpbmcKIHRoaXMgc2VudGVuY2UuCiAKLWxpYnBuZyB2ZXJzaW9ucyAxLjAuNywgSnVseSAxLCAyMDAwLCB0aHJvdWdoIDEuMC45YmV0YTIsIE5vdmVtYmVyIDE5LCAyMDAwLCBhcmUKK2xpYnBuZyB2ZXJzaW9ucyAxLjAuNywgSnVseSAxLCAyMDAwLCB0aHJvdWdoIDEuMC45YmV0YTMsIE5vdmVtYmVyIDIzLCAyMDAwLCBhcmUKIENvcHlyaWdodCAoYykgMjAwMCBHbGVubiBSYW5kZXJzLVBlaHJzb24KIGFuZCBhcmUgZGlzdHJpYnV0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzYW1lIGRpc2NsYWltZXIgYW5kIGxpY2Vuc2UgYXMgbGlicG5nLTEuMC42CiB3aXRoIHRoZSBmb2xsb3dpbmcgaW5kaXZpZHVhbHMgYWRkZWQgdG8gdGhlIGxpc3Qgb2YgQ29udHJpYnV0aW5nIEF1dGhvcnMKQEAgLTk5LDQgKzk5LDQgQEAKIAogR2xlbm4gUmFuZGVycy1QZWhyc29uCiByYW5kZWdAYWx1bS5ycGkuZWR1Ci1Ob3ZlbWJlciAxOSwgMjAwMAorTm92ZW1iZXIgMjMsIDIwMDAKZGlmZiAtLWdpdCBhL1JFQURNRSBiL1JFQURNRQppbmRleCAzYWM5Y2JlLi5lYjgyZTI3IDEwMDY0NAotLS0gYS9SRUFETUUKKysrIGIvUkVBRE1FCkBAIC0xLDQgKzEsNCBAQAotUkVBRE1FIGZvciBsaWJwbmcgMS4wLjliZXRhMiAtIE5vdmVtYmVyIDE5LCAyMDAwIChzaGFyZWQgbGlicmFyeSAyLjEpCitSRUFETUUgZm9yIGxpYnBuZyAxLjAuOWJldGEzIC0gTm92ZW1iZXIgMjMsIDIwMDAgKHNoYXJlZCBsaWJyYXJ5IDIuMSkKIFNlZSB0aGUgbm90ZSBhYm91dCB2ZXJzaW9uIG51bWJlcnMgbmVhciB0aGUgdG9wIG9mIHBuZy5oCiAKIFNlZSBJTlNUQUxMIGZvciBpbnN0cnVjdGlvbnMgb24gaG93IHRvIGluc3RhbGwgbGlicG5nLgpAQCAtMTgyLDI1ICsxODIsMjcgQEAKICAgICAgICBkZXNjcmlwLm1tcyAgICAgID0+ICBWTVMgbWFrZWZpbGUgZm9yIE1NUyBvciBNTUsKICAgICAgICBtYWtlZmlsZS5zdGQgICAgID0+ICBHZW5lcmljIFVOSVggbWFrZWZpbGUgKGNjLCBjcmVhdGVzIHN0YXRpYyBsaWJwbmcuYSkKICAgICAgICBtYWtlZmlsZS5saW51eCAgID0+ICBMaW51eC9FTEYgbWFrZWZpbGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2NjLCBjcmVhdGVzIGxpYnBuZy5zby4yLjEuMC45YmV0YTIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdjYywgY3JlYXRlcyBsaWJwbmcuc28uMi4xLjAuOWJldGEzKQogICAgICAgIG1ha2VmaWxlLmdjbW14ICAgPT4gIExpbnV4L0VMRiBtYWtlZmlsZSAoZ2NjLCBjcmVhdGVzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlicG5nLnNvLjIuMS4wLjliZXRhMiwgdXNlcyBhc3NlbWJsZXIgY29kZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnBuZy5zby4yLjEuMC45YmV0YTMsIHVzZXMgYXNzZW1ibGVyIGNvZGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dW5lZCBmb3IgSW50ZWwgTU1YIHBsYXRmb3JtKQogICAgICAgIG1ha2VmaWxlLmdjYyAgICAgPT4gIEdlbmVyaWMgbWFrZWZpbGUgKGdjYywgY3JlYXRlcyBzdGF0aWMgbGlicG5nLmEpCiAgICAgICAgbWFrZWZpbGUua25yICAgICA9PiAgQXJjaGFpYyBVTklYIE1ha2VmaWxlIHRoYXQgY29udmVydHMgZmlsZXMgd2l0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuc2kya25yIChSZXF1aXJlcyBhbnNpMmtuci5jIGZyb20KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdHA6Ly9mdHAuY3Mud2lzYy5lZHUvZ2hvc3QpCisgICAgICAgbWFrZWZpbGUuYWl4ICAgICA9PiAgQUlYIG1ha2VmaWxlCiAgICAgICAgbWFrZWZpbGUuY3lnd2luICA9PiAgQ3lnd2luL2djYyBtYWtlZmlsZQogICAgICAgIG1ha2VmaWxlLmRlYyAgICAgPT4gIERFQyBBbHBoYSBVTklYIG1ha2VmaWxlCiAgICAgICAgbWFrZWZpbGUuaHB1eCAgICA9PiAgSFBVWCAoMTAuMjAgYW5kIDExLjAwKSBtYWtlZmlsZQogICAgICAgIG1ha2VmaWxlLmlibWMgICAgPT4gIElCTSBDL0MrKyB2ZXJzaW9uIDMueCBmb3IgV2luMzIgYW5kIE9TLzIgKHN0YXRpYykKICAgICAgICBtYWtlZmlsZS5pbnRlbCAgID0+ICBJbnRlbCBDL0MrKyB2ZXJzaW9uIDQuMCBhbmQgbGF0ZXIKICAgICAgICBsaWJwbmcuaWNjICAgICAgID0+ICBQcm9qZWN0IGZpbGUsIElCTSBWaXN1YWxBZ2UvQysrIDQuMCBvciBsYXRlcgorICAgICAgIG1ha2VmaWxlLm1hY29zeCAgPT4gIE1BQ09TIFggTWFrZWZpbGUKICAgICAgICBtYWtlZmlsZS5zZ2kgICAgID0+ICBTaWxpY29uIEdyYXBoaWNzIElSSVggKGNjLCBjcmVhdGVzIHN0YXRpYyBsaWIpCi0gICAgICAgbWFrZWZpbGUuc2dnY2MgICA9PiAgU2lsaWNvbiBHcmFwaGljcyAoZ2NjLCBjcmVhdGVzIGxpYnBuZy5zby4yLjEuMC45YmV0YTIpCisgICAgICAgbWFrZWZpbGUuc2dnY2MgICA9PiAgU2lsaWNvbiBHcmFwaGljcyAoZ2NjLCBjcmVhdGVzIGxpYnBuZy5zby4yLjEuMC45YmV0YTMpCiAgICAgICAgbWFrZWZpbGUuc3Vub3MgICA9PiAgU3VuIG1ha2VmaWxlCiAgICAgICAgbWFrZWZpbGUuc29sYXJpcyA9PiAgU29sYXJpcyAyLlggbWFrZWZpbGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2NjLCBjcmVhdGVzIGxpYnBuZy5zby4yLjEuMC45YmV0YTIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdjYywgY3JlYXRlcyBsaWJwbmcuc28uMi4xLjAuOWJldGEzKQogICAgICAgIG1ha2VmaWxlLnNjbyAgICAgPT4gIEZvciBTQ08gT1NyNSAgRUxGIGFuZCBVbml4d2FyZSA3IHdpdGggTmF0aXZlIGNjCiAgICAgICAgbWFrZWZpbGUubWlwcyAgICA9PiAgTUlQUyBtYWtlZmlsZQogICAgICAgIG1ha2VmaWxlLmFjb3JuICAgPT4gIEFjb3JuIG1ha2VmaWxlCmRpZmYgLS1naXQgYS9UT0RPIGIvVE9ETwppbmRleCBlMWRlODZjLi43NDc2M2E5IDEwMDY0NAotLS0gYS9UT0RPCisrKyBiL1RPRE8KQEAgLTE3LDMgKzE3LDQgQEAKICAgIChjb3VudGluZyBodWZmbWFuIGJpdHMvcHJlY29tcHJlc3Npb24/ICBmaWx0ZXIgaW5lcnRpYT8gIGZpbHRlciBjb3N0cz8pLgogSGlzdG9ncmFtIGNyZWF0aW9uLgogVGV4dCBjb252ZXJzaW9uIGJldHdlZW4gZGlmZmVyZW50IGNvZGUgcGFnZXMgKExhdGluLTEgLT4gTWFjIGFuZCBET1MpLgorU2hvdWxkIHdlIGFsd2F5cyBtYWxsb2MgMl5iaXRfZGVwdGggUExURS90Uk5TL2hJU1QgZW50cmllcyBmb3Igc2FmZXR5PwpkaWZmIC0tZ2l0IGEvWTJLSU5GTyBiL1kyS0lORk8KaW5kZXggYzM1NDJhNC4uNzI1N2Q0YSAxMDA2NDQKLS0tIGEvWTJLSU5GTworKysgYi9ZMktJTkZPCkBAIC0xLDEzICsxLDEzIEBACiAgICBZMksgY29tcGxpYW5jZSBpbiBsaWJwbmc6CiAgICA9PT09PT09PT09PT09PT09PT09PT09PT09CiAKLSAgICAgIE5vdmVtYmVyIDE5LCAyMDAwCisgICAgICBOb3ZlbWJlciAyMywgMjAwMAogCiAgICAgICBTaW5jZSB0aGUgUE5HIERldmVsb3BtZW50IGdyb3VwIGlzIGFuIGFkLWhvYyBib2R5LCB3ZSBjYW4ndCBtYWtlCiAgICAgICBhbiBvZmZpY2lhbCBkZWNsYXJhdGlvbi4KIAogICAgICAgVGhpcyBpcyB5b3VyIHVub2ZmaWNpYWwgYXNzdXJhbmNlIHRoYXQgbGlicG5nIGZyb20gdmVyc2lvbiAwLjcxIGFuZAotICAgICAgdXB3YXJkIHRocm91Z2ggMS4wLjliZXRhMiBhcmUgWTJLIGNvbXBsaWFudC4gIEl0IGlzIG15IGJlbGllZiB0aGF0IGVhcmxpZXIKKyAgICAgIHVwd2FyZCB0aHJvdWdoIDEuMC45YmV0YTMgYXJlIFkySyBjb21wbGlhbnQuICBJdCBpcyBteSBiZWxpZWYgdGhhdCBlYXJsaWVyCiAgICAgICB2ZXJzaW9ucyB3ZXJlIGFsc28gWTJLIGNvbXBsaWFudC4KIAogICAgICAgTGlicG5nIG9ubHkgaGFzIHRocmVlIHllYXIgZmllbGRzLiAgT25lIGlzIGEgMi1ieXRlIHVuc2lnbmVkIGludGVnZXIKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQppbmRleCA1M2E5MjFlLi40NjI5ZDI0IDEwMDc1NQotLS0gYS9jb25maWd1cmUKKysrIGIvY29uZmlndXJlCkBAIC0xLDUgKzEsNSBAQAogZWNobyAiCi0gIFRoZXJlIGlzIG5vIFwiY29uZmlndXJlXCIgc2NyaXB0IGZvciBMaWJwbmctMS4wLjliZXRhMi4gIEluc3RlYWQsIHBsZWFzZQorICBUaGVyZSBpcyBubyBcImNvbmZpZ3VyZVwiIHNjcmlwdCBmb3IgTGlicG5nLTEuMC45YmV0YTMuICBJbnN0ZWFkLCBwbGVhc2UKICAgY29weSB0aGUgYXBwcm9wcmlhdGUgbWFrZWZpbGUgZm9yIHlvdXIgc3lzdGVtIGZyb20gdGhlIFwic2NyaXB0c1wiCiAgIGRpcmVjdG9yeS4gIFJlYWQgdGhlIElOU1RBTEwgZmlsZSBmb3IgbW9yZSBkZXRhaWxzLgogIgpkaWZmIC0tZ2l0IGEvbGlicG5nLjMgYi9saWJwbmcuMwppbmRleCAyYTU0YWMyLi5kMzJlNmMxIDEwMDY0NAotLS0gYS9saWJwbmcuMworKysgYi9saWJwbmcuMwpAQCAtMSw2ICsxLDYgQEAKLS5USCBMSUJQTkcgMyAiTm92ZW1iZXIgMTksIDIwMDAiCisuVEggTElCUE5HIDMgIk5vdmVtYmVyIDIzLCAyMDAwIgogLlNIIE5BTUUKLWxpYnBuZyBcLSBQb3J0YWJsZSBOZXR3b3JrIEdyYXBoaWNzIChQTkcpIFJlZmVyZW5jZSBMaWJyYXJ5IDEuMC45YmV0YTIKK2xpYnBuZyBcLSBQb3J0YWJsZSBOZXR3b3JrIEdyYXBoaWNzIChQTkcpIFJlZmVyZW5jZSBMaWJyYXJ5IDEuMC45YmV0YTMKIC5TSCBTWU5PUFNJUwogXGZJXGZCCiAKQEAgLTc0Nyw3ICs3NDcsNyBAQAogLlNIIExJQlBORy5UWFQKIGxpYnBuZy50eHQgLSBBIGRlc2NyaXB0aW9uIG9uIGhvdyB0byB1c2UgYW5kIG1vZGlmeSBsaWJwbmcKIAotIGxpYnBuZyB2ZXJzaW9uIDEuMC45YmV0YTIgLSBOb3ZlbWJlciAxOSwgMjAwMAorIGxpYnBuZyB2ZXJzaW9uIDEuMC45YmV0YTMgLSBOb3ZlbWJlciAyMywgMjAwMAogIFVwZGF0ZWQgYW5kIGRpc3RyaWJ1dGVkIGJ5IEdsZW5uIFJhbmRlcnMtUGVocnNvbgogIDxyYW5kZWdAYWx1bS5ycGkuZWR1PgogIENvcHlyaWdodCAoYykgMTk5OCwgMTk5OSwgMjAwMCBHbGVubiBSYW5kZXJzLVBlaHJzb24KQEAgLTgxNCw3ICs4MTQsNyBAQAogCiBMaWJwbmcgdXNlcyB6bGliIGZvciBpdHMgY29tcHJlc3Npb24gYW5kIGRlY29tcHJlc3Npb24gb2YgUE5HIGZpbGVzLgogRnVydGhlciBpbmZvcm1hdGlvbiBhYm91dCB6bGliLCBhbmQgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHpsaWIsIGNhbgotYmUgZm91bmQgYXQgdGhlIHpsaWIgaG9tZSBwYWdlLCA8ZnRwOi8vZnRwLmZyZWVzb2Z0d2FyZS5jb20vcHViL2luZm96aXAvemxpYi8+LgorYmUgZm91bmQgYXQgdGhlIHpsaWIgaG9tZSBwYWdlLCA8aHR0cDovL3d3dy5pbmZvLXppcC5vcmcvcHViL2luZm96aXAvemxpYi8+LgogVGhlIHpsaWIgY29tcHJlc3Npb24gdXRpbGl0eSBpcyBhIGdlbmVyYWwgcHVycG9zZSB1dGlsaXR5IHRoYXQgaXMKIHVzZWZ1bCBmb3IgbW9yZSB0aGFuIFBORyBmaWxlcywgYW5kIGNhbiBiZSB1c2VkIHdpdGhvdXQgbGlicG5nLgogU2VlIHRoZSBkb2N1bWVudGF0aW9uIGRlbGl2ZXJlZCB3aXRoIHpsaWIgZm9yIG1vcmUgZGV0YWlscy4KQEAgLTExMTgsNyArMTExOCw3IEBACiAgICByb3dfcG9pbnRlcnMgPSBwbmdfbWFsbG9jKHBuZ19wdHIsIGhlaWdodCpzaXplb2YocG5nX2J5dGVwKSk7CiAgICBmb3IgKGludCBpPTA7IGk8aGVpZ2h0LCBpKyspCiAgICAgICByb3dfcG9pbnRlcnNbaV09cG5nX21hbGxvYyhwbmdfcHRyLCB3aWR0aCpwaXhlbF9zaXplKTsKLSAgIHBuZ19zZXRfcm93cyhwbmdfcHRyLCBpbmZvX3B0ciwgJnJvd19wb2ludGVycyk7IAorICAgcG5nX3NldF9yb3dzKHBuZ19wdHIsIGluZm9fcHRyLCAmcm93X3BvaW50ZXJzKTsKIAogQWx0ZXJuYXRpdmVseSB5b3UgY291bGQgYWxsb2NhdGUgeW91ciBpbWFnZSBpbiBvbmUgYmlnIGJsb2NrIGFuZCBkZWZpbmUKIHJvd19wb2ludGVyc1tpXSB0byBwb2ludCBpbnRvIHRoZSBwcm9wZXIgcGxhY2VzIGluIHlvdXIgYmxvY2suCkBAIC0xMzExLDcgKzEzMTEsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgIChlbXB0eSBzdHJpbmcgZm9yIHVua25vd24pLgogICAgIG51bV90ZXh0ICAgICAgIC0gbnVtYmVyIG9mIGNvbW1lbnRzIChzYW1lIGFzIG51bV9jb21tZW50czsKICAgICAgICAgICAgICAgICAgICAgIHlvdSBjYW4gcHV0IE5VTEwgaGVyZSB0byBhdm9pZCB0aGUgZHVwbGljYXRpb24pCi0gICAgTm90ZSB3aGlsZSBwbmdfc2V0X3RleHQoKSB3aWxsIGFjY2VwdCB0ZXh0LCBsYW5ndWFnZSwgYW5kIAorICAgIE5vdGUgd2hpbGUgcG5nX3NldF90ZXh0KCkgd2lsbCBhY2NlcHQgdGV4dCwgbGFuZ3VhZ2UsIGFuZAogICAgIHRyYW5zbGF0ZWQga2V5d29yZHMgdGhhdCBjYW4gYmUgTlVMTCBwb2ludGVycywgdGhlIHN0cnVjdHVyZQogICAgIHJldHVybmVkIGJ5IHBuZ19nZXRfdGV4dCB3aWxsIGFsd2F5cyBjb250YWluIHJlZ3VsYXIKICAgICB6ZXJvLXRlcm1pbmF0ZWQgQyBzdHJpbmdzLiAgVGhleSBtaWdodCBiZSBlbXB0eSBzdHJpbmdzIGJ1dApAQCAtMTk5NCw3ICsxOTk0LDcgQEAKICAgICBwbmdfc2V0X2ludmFsaWQocG5nX3B0ciwgaW5mb19wdHIsIG1hc2spOwogICAgIG1hc2sgLSBpZGVudGlmaWVzIHRoZSBjaHVua3MgdG8gYmUgbWFkZSBpbnZhbGlkLAogICAgICAgICAgICBjb250YWluaW5nIHRoZSBsb2dpY2FsIE9SIG9mIG9uZSBvcgotICAgICAgICAgICBtb3JlIG9mIAorICAgICAgICAgICBtb3JlIG9mCiAgICAgICAgICAgICAgUE5HX0lORk9fZ0FNQSwgUE5HX0lORk9fc0JJVCwKICAgICAgICAgICAgICBQTkdfSU5GT19jSFJNLCBQTkdfSU5GT19QTFRFLAogICAgICAgICAgICAgIFBOR19JTkZPX3RSTlMsIFBOR19JTkZPX2JLR0QsCkBAIC0zMzc5LDEzICszMzc5LDEzIEBACiAKIC5TSCBWSUkuIFkySyBDb21wbGlhbmNlIGluIGxpYnBuZwogCi1Ob3ZlbWJlciAxOSwgMjAwMAorTm92ZW1iZXIgMjMsIDIwMDAKIAogU2luY2UgdGhlIFBORyBEZXZlbG9wbWVudCBncm91cCBpcyBhbiBhZC1ob2MgYm9keSwgd2UgY2FuJ3QgbWFrZQogYW4gb2ZmaWNpYWwgZGVjbGFyYXRpb24uCiAKIFRoaXMgaXMgeW91ciB1bm9mZmljaWFsIGFzc3VyYW5jZSB0aGF0IGxpYnBuZyBmcm9tIHZlcnNpb24gMC43MSBhbmQKLXVwd2FyZCB0aHJvdWdoIDEuMC45YmV0YTIgYXJlIFkySyBjb21wbGlhbnQuICBJdCBpcyBteSBiZWxpZWYgdGhhdCBlYXJsaWVyCit1cHdhcmQgdGhyb3VnaCAxLjAuOWJldGEzIGFyZSBZMksgY29tcGxpYW50LiAgSXQgaXMgbXkgYmVsaWVmIHRoYXQgZWFybGllcgogdmVyc2lvbnMgd2VyZSBhbHNvIFkySyBjb21wbGlhbnQuCiAKIExpYnBuZyBvbmx5IGhhcyB0aHJlZSB5ZWFyIGZpZWxkcy4gIE9uZSBpcyBhIDItYnl0ZSB1bnNpZ25lZCBpbnRlZ2VyIHRoYXQKQEAgLTM1MjYsNyArMzUyNiw3IEBACiAKIFRoYW5rcyB0byBGcmFuayBKLiBULiBXb2pjaWsgZm9yIGhlbHBpbmcgd2l0aCB0aGUgZG9jdW1lbnRhdGlvbi4KIAotTGlicG5nIHZlcnNpb24gMS4wLjliZXRhMiAtIE5vdmVtYmVyIDE5LCAyMDAwOgorTGlicG5nIHZlcnNpb24gMS4wLjliZXRhMyAtIE5vdmVtYmVyIDIzLCAyMDAwOgogSW5pdGlhbGx5IGNyZWF0ZWQgaW4gMTk5NSBieSBHdXkgRXJpYyBTY2hhbG5hdCwgdGhlbiBvZiBHcm91cCA0MiwgSW5jLgogQ3VycmVudGx5IG1haW50YWluZWQgYnkgR2xlbm4gUmFuZGVycy1QZWhyc29uIChyYW5kZWdAYWx1bS5ycGkuZWR1KS4KIApAQCAtMzU0Myw3ICszNTQzLDcgQEAKIElmIHlvdSBtb2RpZnkgbGlicG5nIHlvdSBtYXkgaW5zZXJ0IGFkZGl0aW9uYWwgbm90aWNlcyBpbW1lZGlhdGVseSBmb2xsb3dpbmcKIHRoaXMgc2VudGVuY2UuCiAKLWxpYnBuZyB2ZXJzaW9ucyAxLjAuNywgSnVseSAxLCAyMDAwLCB0aHJvdWdoICAxLjAuOWJldGEyLCBOb3ZlbWJlciAxOSwgMjAwMCwgYXJlCitsaWJwbmcgdmVyc2lvbnMgMS4wLjcsIEp1bHkgMSwgMjAwMCwgdGhyb3VnaCAgMS4wLjliZXRhMywgTm92ZW1iZXIgMjMsIDIwMDAsIGFyZQogQ29weXJpZ2h0IChjKSAyMDAwIEdsZW5uIFJhbmRlcnMtUGVocnNvbiwgYW5kIGFyZQogZGlzdHJpYnV0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzYW1lIGRpc2NsYWltZXIgYW5kIGxpY2Vuc2UgYXMgbGlicG5nLTEuMC42CiB3aXRoIHRoZSBmb2xsb3dpbmcgaW5kaXZpZHVhbHMgYWRkZWQgdG8gdGhlIGxpc3Qgb2YgQ29udHJpYnV0aW5nIEF1dGhvcnMKQEAgLTM2MzQsNyArMzYzNCw3IEBACiAKIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogcmFuZGVnQGFsdW0ucnBpLmVkdQotTm92ZW1iZXIgMTksIDIwMDAKK05vdmVtYmVyIDIzLCAyMDAwCiAKIC5cIiBlbmQgb2YgbWFuIHBhZ2UKIApkaWZmIC0tZ2l0IGEvbGlicG5nLnR4dCBiL2xpYnBuZy50eHQKaW5kZXggZTk1YWQwMC4uODI5OWVkMiAxMDA2NDQKLS0tIGEvbGlicG5nLnR4dAorKysgYi9saWJwbmcudHh0CkBAIC0xLDYgKzEsNiBAQAogbGlicG5nLnR4dCAtIEEgZGVzY3JpcHRpb24gb24gaG93IHRvIHVzZSBhbmQgbW9kaWZ5IGxpYnBuZwogCi0gbGlicG5nIHZlcnNpb24gMS4wLjliZXRhMiAtIE5vdmVtYmVyIDE5LCAyMDAwCisgbGlicG5nIHZlcnNpb24gMS4wLjliZXRhMyAtIE5vdmVtYmVyIDIzLCAyMDAwCiAgVXBkYXRlZCBhbmQgZGlzdHJpYnV0ZWQgYnkgR2xlbm4gUmFuZGVycy1QZWhyc29uCiAgPHJhbmRlZ0BhbHVtLnJwaS5lZHU+CiAgQ29weXJpZ2h0IChjKSAxOTk4LCAxOTk5LCAyMDAwIEdsZW5uIFJhbmRlcnMtUGVocnNvbgpAQCAtNjcsNyArNjcsNyBAQAogCiBMaWJwbmcgdXNlcyB6bGliIGZvciBpdHMgY29tcHJlc3Npb24gYW5kIGRlY29tcHJlc3Npb24gb2YgUE5HIGZpbGVzLgogRnVydGhlciBpbmZvcm1hdGlvbiBhYm91dCB6bGliLCBhbmQgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHpsaWIsIGNhbgotYmUgZm91bmQgYXQgdGhlIHpsaWIgaG9tZSBwYWdlLCA8ZnRwOi8vZnRwLmZyZWVzb2Z0d2FyZS5jb20vcHViL2luZm96aXAvemxpYi8+LgorYmUgZm91bmQgYXQgdGhlIHpsaWIgaG9tZSBwYWdlLCA8aHR0cDovL3d3dy5pbmZvLXppcC5vcmcvcHViL2luZm96aXAvemxpYi8+LgogVGhlIHpsaWIgY29tcHJlc3Npb24gdXRpbGl0eSBpcyBhIGdlbmVyYWwgcHVycG9zZSB1dGlsaXR5IHRoYXQgaXMKIHVzZWZ1bCBmb3IgbW9yZSB0aGFuIFBORyBmaWxlcywgYW5kIGNhbiBiZSB1c2VkIHdpdGhvdXQgbGlicG5nLgogU2VlIHRoZSBkb2N1bWVudGF0aW9uIGRlbGl2ZXJlZCB3aXRoIHpsaWIgZm9yIG1vcmUgZGV0YWlscy4KQEAgLTM3MSw3ICszNzEsNyBAQAogICAgcm93X3BvaW50ZXJzID0gcG5nX21hbGxvYyhwbmdfcHRyLCBoZWlnaHQqc2l6ZW9mKHBuZ19ieXRlcCkpOwogICAgZm9yIChpbnQgaT0wOyBpPGhlaWdodCwgaSsrKQogICAgICAgcm93X3BvaW50ZXJzW2ldPXBuZ19tYWxsb2MocG5nX3B0ciwgd2lkdGgqcGl4ZWxfc2l6ZSk7Ci0gICBwbmdfc2V0X3Jvd3MocG5nX3B0ciwgaW5mb19wdHIsICZyb3dfcG9pbnRlcnMpOyAKKyAgIHBuZ19zZXRfcm93cyhwbmdfcHRyLCBpbmZvX3B0ciwgJnJvd19wb2ludGVycyk7CiAKIEFsdGVybmF0aXZlbHkgeW91IGNvdWxkIGFsbG9jYXRlIHlvdXIgaW1hZ2UgaW4gb25lIGJpZyBibG9jayBhbmQgZGVmaW5lCiByb3dfcG9pbnRlcnNbaV0gdG8gcG9pbnQgaW50byB0aGUgcHJvcGVyIHBsYWNlcyBpbiB5b3VyIGJsb2NrLgpAQCAtNTY0LDcgKzU2NCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtcHR5IHN0cmluZyBmb3IgdW5rbm93bikuCiAgICAgbnVtX3RleHQgICAgICAgLSBudW1iZXIgb2YgY29tbWVudHMgKHNhbWUgYXMgbnVtX2NvbW1lbnRzOwogICAgICAgICAgICAgICAgICAgICAgeW91IGNhbiBwdXQgTlVMTCBoZXJlIHRvIGF2b2lkIHRoZSBkdXBsaWNhdGlvbikKLSAgICBOb3RlIHdoaWxlIHBuZ19zZXRfdGV4dCgpIHdpbGwgYWNjZXB0IHRleHQsIGxhbmd1YWdlLCBhbmQgCisgICAgTm90ZSB3aGlsZSBwbmdfc2V0X3RleHQoKSB3aWxsIGFjY2VwdCB0ZXh0LCBsYW5ndWFnZSwgYW5kCiAgICAgdHJhbnNsYXRlZCBrZXl3b3JkcyB0aGF0IGNhbiBiZSBOVUxMIHBvaW50ZXJzLCB0aGUgc3RydWN0dXJlCiAgICAgcmV0dXJuZWQgYnkgcG5nX2dldF90ZXh0IHdpbGwgYWx3YXlzIGNvbnRhaW4gcmVndWxhcgogICAgIHplcm8tdGVybWluYXRlZCBDIHN0cmluZ3MuICBUaGV5IG1pZ2h0IGJlIGVtcHR5IHN0cmluZ3MgYnV0CkBAIC0xMjQ3LDcgKzEyNDcsNyBAQAogICAgIHBuZ19zZXRfaW52YWxpZChwbmdfcHRyLCBpbmZvX3B0ciwgbWFzayk7CiAgICAgbWFzayAtIGlkZW50aWZpZXMgdGhlIGNodW5rcyB0byBiZSBtYWRlIGludmFsaWQsCiAgICAgICAgICAgIGNvbnRhaW5pbmcgdGhlIGxvZ2ljYWwgT1Igb2Ygb25lIG9yCi0gICAgICAgICAgIG1vcmUgb2YgCisgICAgICAgICAgIG1vcmUgb2YKICAgICAgICAgICAgICBQTkdfSU5GT19nQU1BLCBQTkdfSU5GT19zQklULAogICAgICAgICAgICAgIFBOR19JTkZPX2NIUk0sIFBOR19JTkZPX1BMVEUsCiAgICAgICAgICAgICAgUE5HX0lORk9fdFJOUywgUE5HX0lORk9fYktHRCwKQEAgLTI2MzIsMTMgKzI2MzIsMTMgQEAKIAogVklJLiBZMksgQ29tcGxpYW5jZSBpbiBsaWJwbmcKIAotTm92ZW1iZXIgMTksIDIwMDAKK05vdmVtYmVyIDIzLCAyMDAwCiAKIFNpbmNlIHRoZSBQTkcgRGV2ZWxvcG1lbnQgZ3JvdXAgaXMgYW4gYWQtaG9jIGJvZHksIHdlIGNhbid0IG1ha2UKIGFuIG9mZmljaWFsIGRlY2xhcmF0aW9uLgogCiBUaGlzIGlzIHlvdXIgdW5vZmZpY2lhbCBhc3N1cmFuY2UgdGhhdCBsaWJwbmcgZnJvbSB2ZXJzaW9uIDAuNzEgYW5kCi11cHdhcmQgdGhyb3VnaCAxLjAuOWJldGEyIGFyZSBZMksgY29tcGxpYW50LiAgSXQgaXMgbXkgYmVsaWVmIHRoYXQgZWFybGllcgordXB3YXJkIHRocm91Z2ggMS4wLjliZXRhMyBhcmUgWTJLIGNvbXBsaWFudC4gIEl0IGlzIG15IGJlbGllZiB0aGF0IGVhcmxpZXIKIHZlcnNpb25zIHdlcmUgYWxzbyBZMksgY29tcGxpYW50LgogCiBMaWJwbmcgb25seSBoYXMgdGhyZWUgeWVhciBmaWVsZHMuICBPbmUgaXMgYSAyLWJ5dGUgdW5zaWduZWQgaW50ZWdlciB0aGF0CmRpZmYgLS1naXQgYS9saWJwbmdwZi4zIGIvbGlicG5ncGYuMwppbmRleCA0NDA0MDU5Li4xZmY5ZmQyIDEwMDY0NAotLS0gYS9saWJwbmdwZi4zCisrKyBiL2xpYnBuZ3BmLjMKQEAgLTEsNiArMSw2IEBACi0uVEggTElCUE5HUEYgMyAiTm92ZW1iZXIgMTksIDIwMDAiCisuVEggTElCUE5HUEYgMyAiTm92ZW1iZXIgMjMsIDIwMDAiCiAuU0ggTkFNRQotbGlicG5nIFwtIFBvcnRhYmxlIE5ldHdvcmsgR3JhcGhpY3MgKFBORykgUmVmZXJlbmNlIExpYnJhcnkgMS4wLjliZXRhMgorbGlicG5nIFwtIFBvcnRhYmxlIE5ldHdvcmsgR3JhcGhpY3MgKFBORykgUmVmZXJlbmNlIExpYnJhcnkgMS4wLjliZXRhMwogKHByaXZhdGUgZnVuY3Rpb25zKQogLlNIIFNZTk9QU0lTCiBcZkIjaW5jbHVkZSA8cG5nLmg+XGZQCmRpZmYgLS1naXQgYS9wbmcuNSBiL3BuZy41CmluZGV4IGExY2NlNWQuLjEzM2I4ZjYgMTAwNjQ0Ci0tLSBhL3BuZy41CisrKyBiL3BuZy41CkBAIC0xLDQgKzEsNCBAQAotLlRIIFBORyA1ICJOb3ZlbWJlciAxOSwgMjAwMCIKKy5USCBQTkcgNSAiTm92ZW1iZXIgMjMsIDIwMDAiCiAuU0ggTkFNRQogcG5nIFwtIFBvcnRhYmxlIE5ldHdvcmsgR3JhcGhpY3MgKFBORykgZm9ybWF0CiAuU0ggREVTQ1JJUFRJT04KZGlmZiAtLWdpdCBhL3BuZy5jIGIvcG5nLmMKaW5kZXggMTY0ZWJmMy4uMDllZDZkMiAxMDA2NDQKLS0tIGEvcG5nLmMKKysrIGIvcG5nLmMKQEAgLTEsNyArMSw3IEBACiAKIC8qIHBuZy5jIC0gbG9jYXRpb24gZm9yIGdlbmVyYWwgcHVycG9zZSBsaWJwbmcgZnVuY3Rpb25zCiAgKgotICogbGlicG5nIHZlcnNpb24gMS4wLjliZXRhMiAtIE5vdmVtYmVyIDE5LCAyMDAwCisgKiBsaWJwbmcgdmVyc2lvbiAxLjAuOWJldGEzIC0gTm92ZW1iZXIgMjMsIDIwMDAKICAqIENvcHlyaWdodCAoYykgMTk5OCwgMTk5OSwgMjAwMCBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQogICogKFZlcnNpb24gMC44OCBDb3B5cmlnaHQgKGMpIDE5OTUsIDE5OTYgR3V5IEVyaWMgU2NoYWxuYXQsIEdyb3VwIDQyLCBJbmMuKQpAQCAtMTMsMTQgKzEzLDE0IEBACiAjaW5jbHVkZSAicG5nLmgiCiAKIC8qIEdlbmVyYXRlIGEgY29tcGlsZXIgZXJyb3IgaWYgdGhlcmUgaXMgYW4gb2xkIHBuZy5oIGluIHRoZSBzZWFyY2ggcGF0aC4gKi8KLXR5cGVkZWYgdmVyc2lvbl8xXzBfOWJldGEyIFlvdXJfcG5nX2hfaXNfbm90X3ZlcnNpb25fMV8wXzliZXRhMjsKK3R5cGVkZWYgdmVyc2lvbl8xXzBfOWJldGEzIFlvdXJfcG5nX2hfaXNfbm90X3ZlcnNpb25fMV8wXzliZXRhMzsKIAogLyogVmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgQyBmaWxlcy4gIFRoaXMgaGFkIGJldHRlciBtYXRjaCB0aGUgdmVyc2lvbgogICogc3RyaW5nIGRlZmluZWQgaW4gcG5nLmguICAqLwogCiAjaWZkZWYgUE5HX1VTRV9HTE9CQUxfQVJSQVlTCiAvKiBwbmdfbGlicG5nX3ZlciB3YXMgY2hhbmdlZCB0byBhIGZ1bmN0aW9uIGluIHZlcnNpb24gMS4wLjVjICovCi1jb25zdCBjaGFyIHBuZ19saWJwbmdfdmVyWzE4XSA9ICIxLjAuOWJldGEyIjsKK2NvbnN0IGNoYXIgcG5nX2xpYnBuZ192ZXJbMThdID0gIjEuMC45YmV0YTMiOwogCiAvKiBwbmdfc2lnIHdhcyBjaGFuZ2VkIHRvIGEgZnVuY3Rpb24gaW4gdmVyc2lvbiAxLjAuNWMgKi8KIC8qIFBsYWNlIHRvIGhvbGQgdGhlIHNpZ25hdHVyZSBzdHJpbmcgZm9yIGEgUE5HIGZpbGUuICovCkBAIC01MjYsNyArNTI2LDcgQEAKICAgIHBuZ19kZWJ1ZygxLCAiaW4gcG5nX2luZm9fZGVzdHJveVxuIik7CiAKICAgIHBuZ19mcmVlX2RhdGEocG5nX3B0ciwgaW5mb19wdHIsIFBOR19GUkVFX0FMTCwgLTEpOwotICAgIAorCiAjaWYgZGVmaW5lZChQTkdfVU5LTk9XTl9DSFVOS1NfU1VQUE9SVEVEKQogICAgaWYgKHBuZ19wdHItPm51bV9jaHVua19saXN0KQogICAgewpAQCAtNjI2LDcgKzYyNiw3IEBACiBwbmdfZ2V0X2NvcHlyaWdodChwbmdfc3RydWN0cCBwbmdfcHRyKQogewogICAgaWYgKHBuZ19wdHIgIT0gTlVMTCB8fCBwbmdfcHRyID09IE5VTEwpICAvKiBzaWxlbmNlIGNvbXBpbGVyIHdhcm5pbmcgKi8KLSAgIHJldHVybiAoKHBuZ19jaGFycCkgIlxuIGxpYnBuZyB2ZXJzaW9uIDEuMC45YmV0YTIgLSBOb3ZlbWJlciAxOSwgMjAwMFxuXAorICAgcmV0dXJuICgocG5nX2NoYXJwKSAiXG4gbGlicG5nIHZlcnNpb24gMS4wLjliZXRhMyAtIE5vdmVtYmVyIDIzLCAyMDAwXG5cCiAgICBDb3B5cmlnaHQgKGMpIDE5OTgtMjAwMCBHbGVubiBSYW5kZXJzLVBlaHJzb25cblwKICAgIENvcHlyaWdodCAoYykgMTk5NiwgMTk5NyBBbmRyZWFzIERpbGdlclxuXAogICAgQ29weXJpZ2h0IChjKSAxOTk1LCAxOTk2IEd1eSBFcmljIFNjaGFsbmF0LCBHcm91cCA0MiwgSW5jLlxuIik7CkBAIC02NDQsOCArNjQ0LDggQEAKIHsKICAgIC8qIFZlcnNpb24gb2YgKi5jIGZpbGVzIHVzZWQgd2hlbiBidWlsZGluZyBsaWJwbmcgKi8KICAgIGlmKHBuZ19wdHIgIT0gTlVMTCkgLyogc2lsZW5jZSBjb21waWxlciB3YXJuaW5nIGFib3V0IHVudXNlZCBwbmdfcHRyICovCi0gICAgICByZXR1cm4oKHBuZ19jaGFycCkgIjEuMC45YmV0YTIiKTsKLSAgIHJldHVybigocG5nX2NoYXJwKSAiMS4wLjliZXRhMiIpOworICAgICAgcmV0dXJuKChwbmdfY2hhcnApICIxLjAuOWJldGEzIik7CisgICByZXR1cm4oKHBuZ19jaGFycCkgIjEuMC45YmV0YTMiKTsKIH0KIAogcG5nX2NoYXJwIFBOR0FQSQpkaWZmIC0tZ2l0IGEvcG5nLmggYi9wbmcuaAppbmRleCBjYTRjOGE5Li4xMWZiMjM3IDEwMDY0NAotLS0gYS9wbmcuaAorKysgYi9wbmcuaApAQCAtMSw3ICsxLDcgQEAKIAogLyogcG5nLmggLSBoZWFkZXIgZmlsZSBmb3IgUE5HIHJlZmVyZW5jZSBsaWJyYXJ5CiAgKgotICogbGlicG5nIHZlcnNpb24gMS4wLjliZXRhMiAtIE5vdmVtYmVyIDE5LCAyMDAwCisgKiBsaWJwbmcgdmVyc2lvbiAxLjAuOWJldGEzIC0gTm92ZW1iZXIgMjMsIDIwMDAKICAqIENvcHlyaWdodCAoYykgMTk5OCwgMTk5OSwgMjAwMCBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQogICogKFZlcnNpb24gMC44OCBDb3B5cmlnaHQgKGMpIDE5OTUsIDE5OTYgR3V5IEVyaWMgU2NoYWxuYXQsIEdyb3VwIDQyLCBJbmMuKQpAQCAtOSw3ICs5LDcgQEAKICAqIEF1dGhvcnMgYW5kIG1haW50YWluZXJzOgogICogIGxpYnBuZyB2ZXJzaW9ucyAwLjcxLCBNYXkgMTk5NSwgdGhyb3VnaCAwLjg4LCBKYW51YXJ5IDE5OTY6IEd1eSBTY2hhbG5hdAogICogIGxpYnBuZyB2ZXJzaW9ucyAwLjg5YywgSnVuZSAxOTk2LCB0aHJvdWdoIDAuOTYsIE1heSAxOTk3OiBBbmRyZWFzIERpbGdlcgotICogIGxpYnBuZyB2ZXJzaW9ucyAwLjk3LCBKYW51YXJ5IDE5OTgsIHRocm91Z2ggMS4wLjliZXRhMiAtIE5vdmVtYmVyIDE5LCAyMDAwOiBHbGVubgorICogIGxpYnBuZyB2ZXJzaW9ucyAwLjk3LCBKYW51YXJ5IDE5OTgsIHRocm91Z2ggMS4wLjliZXRhMyAtIE5vdmVtYmVyIDIzLCAyMDAwOiBHbGVubgogICogIFNlZSBhbHNvICJDb250cmlidXRpbmcgQXV0aG9ycyIsIGJlbG93LgogICoKICAqIE5vdGUgYWJvdXQgbGlicG5nIHZlcnNpb24gbnVtYmVyczoKQEAgLTg1LDcgKzg1LDcgQEAKICAqIElmIHlvdSBtb2RpZnkgbGlicG5nIHlvdSBtYXkgaW5zZXJ0IGFkZGl0aW9uYWwgbm90aWNlcyBpbW1lZGlhdGVseSBmb2xsb3dpbmcKICAqIHRoaXMgc2VudGVuY2UuCiAgKgotICogbGlicG5nIHZlcnNpb25zIDEuMC43LCBKdWx5IDEsIDIwMDAsIHRocm91Z2ggIDEuMC45YmV0YTIsIE5vdmVtYmVyIDE5LCAyMDAwLCBhcmUKKyAqIGxpYnBuZyB2ZXJzaW9ucyAxLjAuNywgSnVseSAxLCAyMDAwLCB0aHJvdWdoICAxLjAuOWJldGEzLCBOb3ZlbWJlciAyMywgMjAwMCwgYXJlCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDAgR2xlbm4gUmFuZGVycy1QZWhyc29uLCBhbmQgYXJlCiAgKiBkaXN0cmlidXRlZCBhY2NvcmRpbmcgdG8gdGhlIHNhbWUgZGlzY2xhaW1lciBhbmQgbGljZW5zZSBhcyBsaWJwbmctMS4wLjYKICAqIHdpdGggdGhlIGZvbGxvd2luZyBpbmRpdmlkdWFscyBhZGRlZCB0byB0aGUgbGlzdCBvZiBDb250cmlidXRpbmcgQXV0aG9ycwpAQCAtMTkwLDEzICsxOTAsMTMgQEAKICAqIFkySyBjb21wbGlhbmNlIGluIGxpYnBuZzoKICAqID09PT09PT09PT09PT09PT09PT09PT09PT0KICAqCi0gKiAgICBOb3ZlbWJlciAxOSwgMjAwMAorICogICAgTm92ZW1iZXIgMjMsIDIwMDAKICAqCiAgKiAgICBTaW5jZSB0aGUgUE5HIERldmVsb3BtZW50IGdyb3VwIGlzIGFuIGFkLWhvYyBib2R5LCB3ZSBjYW4ndCBtYWtlCiAgKiAgICBhbiBvZmZpY2lhbCBkZWNsYXJhdGlvbi4KICAqCiAgKiAgICBUaGlzIGlzIHlvdXIgdW5vZmZpY2lhbCBhc3N1cmFuY2UgdGhhdCBsaWJwbmcgZnJvbSB2ZXJzaW9uIDAuNzEgYW5kCi0gKiAgICB1cHdhcmQgdGhyb3VnaCAxLjAuOWJldGEyIGFyZSBZMksgY29tcGxpYW50LiAgSXQgaXMgbXkgYmVsaWVmIHRoYXQgZWFybGllcgorICogICAgdXB3YXJkIHRocm91Z2ggMS4wLjliZXRhMyBhcmUgWTJLIGNvbXBsaWFudC4gIEl0IGlzIG15IGJlbGllZiB0aGF0IGVhcmxpZXIKICAqICAgIHZlcnNpb25zIHdlcmUgYWxzbyBZMksgY29tcGxpYW50LgogICoKICAqICAgIExpYnBuZyBvbmx5IGhhcyB0aHJlZSB5ZWFyIGZpZWxkcy4gIE9uZSBpcyBhIDItYnl0ZSB1bnNpZ25lZCBpbnRlZ2VyCkBAIC0yNTIsNyArMjUyLDcgQEAKICAqLwogCiAvKiBWZXJzaW9uIGluZm9ybWF0aW9uIGZvciBwbmcuaCAtIHRoaXMgc2hvdWxkIG1hdGNoIHRoZSB2ZXJzaW9uIGluIHBuZy5jICovCi0jZGVmaW5lIFBOR19MSUJQTkdfVkVSX1NUUklORyAiMS4wLjliZXRhMiIKKyNkZWZpbmUgUE5HX0xJQlBOR19WRVJfU1RSSU5HICIxLjAuOWJldGEzIgogCiAjZGVmaW5lIFBOR19MSUJQTkdfVkVSX1NPTlVNICAgMgogCkBAIC0yNjIsOCArMjYyLDE2IEBACiAjZGVmaW5lIFBOR19MSUJQTkdfVkVSX1JFTEVBU0UgOQogLyogVGhpcyBzaG91bGQgbWF0Y2ggdGhlIG51bWVyaWMgcGFydCBvZiB0aGUgZmluYWwgY29tcG9uZW50IG9mCiAgKiBQTkdfTElCUE5HX1ZFUl9TVFJJTkcsIG9taXR0aW5nIGFueSBsZWFkaW5nIHplcm86ICovCi0jZGVmaW5lIFBOR19MSUJQTkdfVkVSX0JVSUxEICAyCi0jZGVmaW5lIFBOR19MSUJQTkdfQlVJTERfVFlQRSBiZXRhIC8qIGFscGhhLCBiZXRhLCByYywgc3RhYmxlLCBwYXRjaGVkICovCisKKyNkZWZpbmUgUE5HX0xJQlBOR19WRVJfQlVJTEQgIDMKKworI2RlZmluZSBQTkdfTElCUE5HX0JVSUxEX0FMUEhBICAgIDEKKyNkZWZpbmUgUE5HX0xJQlBOR19CVUlMRF9CRVRBICAgICAyCisjZGVmaW5lIFBOR19MSUJQTkdfQlVJTERfUkMgICAgICAgMworI2RlZmluZSBQTkdfTElCUE5HX0JVSUxEX1NUQUJMRSAgIDQKKyNkZWZpbmUgUE5HX0xJQlBOR19CVUlMRF9UWVBFTUFTSyA3CisjZGVmaW5lIFBOR19MSUJQTkdfQlVJTERfUEFUQ0ggICAgOCAvKiBDYW4gYmUgT1InZWQgd2l0aCBTVEFCTEUgb25seSAqLworI2RlZmluZSBQTkdfTElCUE5HX0JVSUxEX1RZUEUgMgogCiAvKiBDYXJlZnVsIGhlcmUuICBBdCBvbmUgdGltZSwgR3V5IHdhbnRlZCB0byB1c2UgMDgyLCBidXQgdGhhdCB3b3VsZCBiZSBvY3RhbC4KICAqIFdlIG11c3Qgbm90IGluY2x1ZGUgbGVhZGluZyB6ZXJvcy4KQEAgLTkwOSw4ICs5MTcsMTAgQEAKICNkZWZpbmUgUE5HX1RSQU5TRk9STV9TVFJJUF9GSUxMRVIgICAweDA4MDAgICAgLyogV1JJVEUgb25seSAqLwogCiAvKiBGbGFncyBmb3IgTU5HIHN1cHBvcnRlZCBmZWF0dXJlcyAqLwotI2RlZmluZSBQTkdfRkxBR19NTkdfRU1QVFlfUExURSAweDAxCi0jZGVmaW5lIFBOR19BTExfTU5HX0ZFQVRVUkVTICAgIDB4MDEKKyNkZWZpbmUgUE5HX0ZMQUdfTU5HX0VNUFRZX1BMVEUgICAgIDB4MDEKKyNkZWZpbmUgUE5HX01PREVfRU1CRURERURfSU5fTU5HICAgIDB4MDIKKyNkZWZpbmUgUE5HX0ZMQUdfTU5HX0ZJTFRFUl82NCAgICAgIDB4MDQKKyNkZWZpbmUgUE5HX0FMTF9NTkdfRkVBVFVSRVMgICAgICAgIDB4MDcKIAogdHlwZWRlZiBwbmdfdm9pZHAgKCpwbmdfbWFsbG9jX3B0cikgUE5HQVJHKChwbmdfc3RydWN0cCwgcG5nX3NpemVfdCkpOwogdHlwZWRlZiB2b2lkICgqcG5nX2ZyZWVfcHRyKSBQTkdBUkcoKHBuZ19zdHJ1Y3RwLCBwbmdfdm9pZHApKTsKQEAgLTExNTksOSArMTE2OSw5IEBACiB9OwogCiAvKiBUaGlzIHByZXZlbnRzIGEgY29tcGlsZXIgZXJyb3IgaW4gcG5nX2dldF9jb3B5cmlnaHQoKSBpbiBwbmcuYyBpZiBwbmcuYwotYW5kIHBuZy5oIGFyZSBib3RoIGF0ICogdmVyc2lvbiAxLjAuOWJldGEyCithbmQgcG5nLmggYXJlIGJvdGggYXQgKiB2ZXJzaW9uIDEuMC45YmV0YTMKICAqLwotdHlwZWRlZiBwbmdfc3RydWN0cCB2ZXJzaW9uXzFfMF85YmV0YTI7Cit0eXBlZGVmIHBuZ19zdHJ1Y3RwIHZlcnNpb25fMV8wXzliZXRhMzsKIAogdHlwZWRlZiBwbmdfc3RydWN0IEZBUiAqIEZBUiAqIHBuZ19zdHJ1Y3RwcDsKIApAQCAtMjIwMCw3ICsyMjEwLDcgQEAKICNlbmRpZgogCiAjZGVmaW5lIFBOR19IRUFERVJfVkVSU0lPTl9TVFJJTkcgXAotICAgIiBsaWJwbmcgdmVyc2lvbiAxLjAuOWJldGEyIC0gTm92ZW1iZXIgMTksIDIwMDAgKGhlYWRlcilcbiIKKyAgICIgbGlicG5nIHZlcnNpb24gMS4wLjliZXRhMyAtIE5vdmVtYmVyIDIzLCAyMDAwIChoZWFkZXIpXG4iCiAKICNpZmRlZiBQTkdfUkVBRF9DT01QT1NJVEVfTk9ESVZfU1VQUE9SVEVECiAvKiBXaXRoIHRoZXNlIHJvdXRpbmVzIHdlIGF2b2lkIGFuIGludGVnZXIgZGl2aWRlLCB3aGljaCB3aWxsIGJlIHNsb3dlciBvbgpkaWZmIC0tZ2l0IGEvcG5nYXNtcmQuaCBiL3BuZ2FzbXJkLmgKaW5kZXggMDI5MzkyMC4uMDBiOWFiOCAxMDA2NDQKLS0tIGEvcG5nYXNtcmQuaAorKysgYi9wbmdhc21yZC5oCkBAIC0xLDYgKzEsNiBAQAogLyogcG5nYXNtcmQuaCAtIGFzc2VtYmxlciB2ZXJzaW9uIG9mIHV0aWxpdGllcyB0byByZWFkIGEgUE5HIGZpbGUKICAqCi0gKiBsaWJwbmcgMS4wLjliZXRhMiAtIE5vdmVtYmVyIDE5LCAyMDAwCisgKiBsaWJwbmcgMS4wLjliZXRhMyAtIE5vdmVtYmVyIDIzLCAyMDAwCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKICAqIENvcHlyaWdodCAoYykgMTk5OSwgMjAwMCBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqCmRpZmYgLS1naXQgYS9wbmdjb25mLmggYi9wbmdjb25mLmgKaW5kZXggMTJkMTJkZC4uYTdlMDQxMiAxMDA2NDQKLS0tIGEvcG5nY29uZi5oCisrKyBiL3BuZ2NvbmYuaApAQCAtMSw2ICsxLDYgQEAKIC8qIHBuZ2NvbmYuaCAtIG1hY2hpbmUgY29uZmlndXJhYmxlIGZpbGUgZm9yIGxpYnBuZwogICoKLSAqIGxpYnBuZyAxLjAuOWJldGEyIC0gTm92ZW1iZXIgMTksIDIwMDAKKyAqIGxpYnBuZyAxLjAuOWJldGEzIC0gTm92ZW1iZXIgMjMsIDIwMDAKICAqIEZvciBjb25kaXRpb25zIG9mIGRpc3RyaWJ1dGlvbiBhbmQgdXNlLCBzZWUgY29weXJpZ2h0IG5vdGljZSBpbiBwbmcuaAogICogQ29weXJpZ2h0IChjKSAxOTk4LCAxOTk5LCAyMDAwIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogKFZlcnNpb24gMC45NiBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXIpCkBAIC0zMyw3ICszMyw3IEBACiAjZGVmaW5lIFBOR19aQlVGX1NJWkUgODE5MgogI2VuZGlmCiAKLSNpZm5kZWYgUE5HX05PX0ZMT0FUSU5HX1BPSU5UX1NVUFBPUlRFRCAKKyNpZm5kZWYgUE5HX05PX0ZMT0FUSU5HX1BPSU5UX1NVUFBPUlRFRAogI2RlZmluZSBQTkdfRkxPQVRJTkdfUE9JTlRfU1VQUE9SVEVECiAjZW5kaWYKIApAQCAtNTMsNyArNTMsNyBAQAogICogJ05vcm1hbCcgcG5nLW9uLXdpbjMyIGRlZmluZXMvZGVmYXVsdHM6CiAgKiAgIFBOR19CVUlMRF9ETEwgLS0gYnVpbGRpbmcgZGxsCiAgKiAgIFBOR19VU0VfRExMICAgLS0gYnVpbGRpbmcgYW4gYXBwbGljYXRpb24sIGxpbmtpbmcgdG8gZGxsCi0gKiAgIChubyBkZWZpbmUpICAgLS0gYnVpbGRpbmcgc3RhdGljIGxpYnJhcnksIG9yIGJ1aWxkaW5nIGFuIAorICogICAobm8gZGVmaW5lKSAgIC0tIGJ1aWxkaW5nIHN0YXRpYyBsaWJyYXJ5LCBvciBidWlsZGluZyBhbgogICogICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIGFuZCBsaW5raW5nIHRvIHRoZSBzdGF0aWMgbGliCiAgKiAnQ3lnd2luJyBkZWZpbmVzL2RlZmF1bHRzOgogICogICBQTkdfQlVJTERfRExMIC0tIGJ1aWxkaW5nIHRoZSBkbGwKQEAgLTEwMTUsMTEgKzEwMTUsMTEgQEAKICAqIEl0IGlzIGVxdWl2YWxlbnQgdG8gTWljcm9zb2Z0IHByZWRlZmluZWQgbWFjcm8gX0RMTCB3aGljaCBpcwogICogYXV0b21hdGljYWxseSBkZWZpbmVkIHdoZW4geW91IGNvbXBpbGUgdXNpbmcgdGhlIHNoYXJlCiAgKiB2ZXJzaW9uIG9mIHRoZSBDUlQgKEMgUnVuLVRpbWUgbGlicmFyeSkKLSAqIAotICogVGhlIGN5Z3dpbiBtb2RzIG1ha2UgdGhpcyBiZWhhdmlvciBhIGxpdHRsZSBkaWZmZXJlbnQ6IAorICoKKyAqIFRoZSBjeWd3aW4gbW9kcyBtYWtlIHRoaXMgYmVoYXZpb3IgYSBsaXR0bGUgZGlmZmVyZW50OgogICogRGVmaW5lIFBOR19CVUlMRF9ETEwgaWYgeW91IGFyZSBidWlsZGluZyBhIGRsbCBmb3IgdXNlIHdpdGggY3lnd2luCiAgKiBEZWZpbmUgUE5HX1NUQVRJQyBpZiB5b3UgYXJlIGJ1aWxkaW5nIGEgc3RhdGljIGxpYnJhcnkgZm9yIHVzZSB3aXRoIGN5Z3dpbiwKLSAqICAgLW9yLSBpZiB5b3UgYXJlIGJ1aWxkaW5nIGFuIGFwcGxpY2F0aW9uIHRoYXQgeW91IHdhbnQgdG8gbGluayB0byB0aGUgCisgKiAgIC1vci0gaWYgeW91IGFyZSBidWlsZGluZyBhbiBhcHBsaWNhdGlvbiB0aGF0IHlvdSB3YW50IHRvIGxpbmsgdG8gdGhlCiAgKiAgIHN0YXRpYyBsaWJyYXJ5LgogICogUE5HX1VTRV9ETEwgaXMgZGVmaW5lZCBieSBkZWZhdWx0IChubyB1c2VyIGFjdGlvbiBuZWVkZWQpIHVubGVzcyBvbmUgb2YKICAqICAgdGhlIG90aGVyIGZsYWdzIGlzIGRlZmluZWQuCkBAIC0xMDUxLDcgKzEwNTEsNyBAQAogIyAgICBkZWZpbmUgUE5HX1VTRV9MT0NBTF9BUlJBWVMKICMgIGVuZGlmCiAjZW5kaWYKLSAgICAKKwogLyogRG8gbm90IHVzZSBnbG9iYWwgYXJyYXlzIChoZWxwcyB3aXRoIGJ1aWxkaW5nIERMTCdzKQogICogVGhleSBhcmUgbm8gbG9uZ2VyIHVzZWQgaW4gbGlicG5nIGl0c2VsZiwgc2luY2UgdmVyc2lvbiAxLjAuNWMsCiAgKiBidXQgbWlnaHQgYmUgcmVxdWlyZWQgZm9yIHNvbWUgcHJlLTEuMC41YyBhcHBsaWNhdGlvbnMuCkBAIC0xMDcxLDggKzEwNzEsOCBAQAogIyAgaWZuZGVmIFBOR19OT19NT0RVTEVERUYKICMgICAgZGVmaW5lIFBOR19OT19NT0RVTEVERUYKICMgIGVuZGlmCi0jZW5kaWYgCi0gCisjZW5kaWYKKwogI2lmICFkZWZpbmVkKFBOR19JTVBFWFApICYmIGRlZmluZWQoUE5HX0JVSUxEX0RMTCkgJiYgIWRlZmluZWQoUE5HX05PX01PRFVMRURFRikKICMgIGRlZmluZSBQTkdfSU1QRVhQCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3BuZ2Vycm9yLmMgYi9wbmdlcnJvci5jCmluZGV4IDQzYmY1OTcuLjBiNzc5OTEgMTAwNjQ0Ci0tLSBhL3BuZ2Vycm9yLmMKKysrIGIvcG5nZXJyb3IuYwpAQCAtMSw3ICsxLDcgQEAKIAogLyogcG5nZXJyb3IuYyAtIHN0dWIgZnVuY3Rpb25zIGZvciBpL28gYW5kIG1lbW9yeSBhbGxvY2F0aW9uCiAgKgotICogbGlicG5nIDEuMC45YmV0YTIgLSBOb3ZlbWJlciAxOSwgMjAwMAorICogbGlicG5nIDEuMC45YmV0YTMgLSBOb3ZlbWJlciAyMywgMjAwMAogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTksIDIwMDAgR2xlbm4gUmFuZGVycy1QZWhyc29uCiAgKiAoVmVyc2lvbiAwLjk2IENvcHlyaWdodCAoYykgMTk5NiwgMTk5NyBBbmRyZWFzIERpbGdlcikKZGlmZiAtLWdpdCBhL3BuZ2djY3JkLmMgYi9wbmdnY2NyZC5jCmluZGV4IGQ2ZTQ5YjQuLjQ4M2M3NDEgMTAwNjQ0Ci0tLSBhL3BuZ2djY3JkLmMKKysrIGIvcG5nZ2NjcmQuYwpAQCAtNiw3ICs2LDcgQEAKICAqICAgICBhbmQgaHR0cDovL3d3dy5pbnRlbC5jb20vZHJnL3BlbnRpdW1JSS9hcHBub3Rlcy85MjMvOTIzLmh0bQogICogICAgIGZvciBJbnRlbCdzIHBlcmZvcm1hbmNlIGFuYWx5c2lzIG9mIHRoZSBNTVggdnMuIG5vbi1NTVggY29kZS4KICAqCi0gKiBsaWJwbmcgMS4wLjliZXRhMiAtIE5vdmVtYmVyIDE5LCAyMDAwCisgKiBsaWJwbmcgMS4wLjliZXRhMyAtIE5vdmVtYmVyIDIzLCAyMDAwCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKICAqIENvcHlyaWdodCAoYykgMTk5OCwgMTk5OSwgMjAwMCBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIENvcHlyaWdodCAoYykgMTk5OCwgSW50ZWwgQ29ycG9yYXRpb24KQEAgLTE5OCw3ICsxOTgsNyBAQAogICogICAgIGNvcnJlY3RseSAoYnV0IDQ4LWJpdCBSR0IganVzdCBmaW5lKQogICoKICAqIDIwMDAwOTE2OgotICogIC0gZml4ZWQgYnVnIGluIHBuZ19yZWFkX2ZpbHRlcl9yb3dfbW14X2F2ZygpLCBicHAgPT0gMiBjYXNlOyB0aHJlZSBlcnJvcnM6ICAKKyAqICAtIGZpeGVkIGJ1ZyBpbiBwbmdfcmVhZF9maWx0ZXJfcm93X21teF9hdmcoKSwgYnBwID09IDIgY2FzZTsgdGhyZWUgZXJyb3JzOgogICogICAgIC0gIl9TaGlmdEJwcC51c2UgPSAyNDsiICAgICAgc2hvdWxkIGhhdmUgYmVlbiAgICJfU2hpZnRCcHAudXNlID0gMTY7IgogICogICAgIC0gIl9TaGlmdFJlbS51c2UgPSA0MDsiICAgICAgc2hvdWxkIGhhdmUgYmVlbiAgICJfU2hpZnRSZW0udXNlID0gNDg7IgogICogICAgIC0gInBzbGxxIF9TaGlmdFJlbSwgJSVtbTIiICAgc2hvdWxkIGhhdmUgYmVlbiAgICJwc3JscSBfU2hpZnRSZW0sICUlbW0yIgpAQCAtMjQwLDIyICsyNDAsMjIgQEAKICMgIGRlZmluZSBfdW5tYXNrICAgICAgICAgdW5tYXNrCiAjICBkZWZpbmUgX2NvbnN0NCAgICAgICAgIGNvbnN0NAogIyAgZGVmaW5lIF9jb25zdDYgICAgICAgICBjb25zdDYKLSMgIGRlZmluZSBfbWFzazhfMCAgICAgICAgbWFzazhfMCAgCi0jICBkZWZpbmUgX21hc2sxNl8xICAgICAgIG1hc2sxNl8xIAotIyAgZGVmaW5lIF9tYXNrMTZfMCAgICAgICBtYXNrMTZfMCAKLSMgIGRlZmluZSBfbWFzazI0XzIgICAgICAgbWFzazI0XzIgCi0jICBkZWZpbmUgX21hc2syNF8xICAgICAgIG1hc2syNF8xIAotIyAgZGVmaW5lIF9tYXNrMjRfMCAgICAgICBtYXNrMjRfMCAKLSMgIGRlZmluZSBfbWFzazMyXzMgICAgICAgbWFzazMyXzMgCi0jICBkZWZpbmUgX21hc2szMl8yICAgICAgIG1hc2szMl8yIAotIyAgZGVmaW5lIF9tYXNrMzJfMSAgICAgICBtYXNrMzJfMSAKLSMgIGRlZmluZSBfbWFzazMyXzAgICAgICAgbWFzazMyXzAgCi0jICBkZWZpbmUgX21hc2s0OF81ICAgICAgIG1hc2s0OF81IAotIyAgZGVmaW5lIF9tYXNrNDhfNCAgICAgICBtYXNrNDhfNCAKLSMgIGRlZmluZSBfbWFzazQ4XzMgICAgICAgbWFzazQ4XzMgCi0jICBkZWZpbmUgX21hc2s0OF8yICAgICAgIG1hc2s0OF8yIAotIyAgZGVmaW5lIF9tYXNrNDhfMSAgICAgICBtYXNrNDhfMSAKLSMgIGRlZmluZSBfbWFzazQ4XzAgICAgICAgbWFzazQ4XzAgCisjICBkZWZpbmUgX21hc2s4XzAgICAgICAgIG1hc2s4XzAKKyMgIGRlZmluZSBfbWFzazE2XzEgICAgICAgbWFzazE2XzEKKyMgIGRlZmluZSBfbWFzazE2XzAgICAgICAgbWFzazE2XzAKKyMgIGRlZmluZSBfbWFzazI0XzIgICAgICAgbWFzazI0XzIKKyMgIGRlZmluZSBfbWFzazI0XzEgICAgICAgbWFzazI0XzEKKyMgIGRlZmluZSBfbWFzazI0XzAgICAgICAgbWFzazI0XzAKKyMgIGRlZmluZSBfbWFzazMyXzMgICAgICAgbWFzazMyXzMKKyMgIGRlZmluZSBfbWFzazMyXzIgICAgICAgbWFzazMyXzIKKyMgIGRlZmluZSBfbWFzazMyXzEgICAgICAgbWFzazMyXzEKKyMgIGRlZmluZSBfbWFzazMyXzAgICAgICAgbWFzazMyXzAKKyMgIGRlZmluZSBfbWFzazQ4XzUgICAgICAgbWFzazQ4XzUKKyMgIGRlZmluZSBfbWFzazQ4XzQgICAgICAgbWFzazQ4XzQKKyMgIGRlZmluZSBfbWFzazQ4XzMgICAgICAgbWFzazQ4XzMKKyMgIGRlZmluZSBfbWFzazQ4XzIgICAgICAgbWFzazQ4XzIKKyMgIGRlZmluZSBfbWFzazQ4XzEgICAgICAgbWFzazQ4XzEKKyMgIGRlZmluZSBfbWFzazQ4XzAgICAgICAgbWFzazQ4XzAKICMgIGRlZmluZSBfRnVsbExlbmd0aCAgICAgRnVsbExlbmd0aAogIyAgZGVmaW5lIF9NTVhMZW5ndGggICAgICBNTVhMZW5ndGgKICMgIGRlZmluZSBfZGlmICAgICAgICAgICAgZGlmCkBAIC02NDIsNyArNjQyLDcgQEAKICAgICAgICAgICAgICAgICAgIHBuZ19tZW1jcHkoZHN0cHRyLCBzcmNwdHIsIHJlcF9ieXRlcyk7CiAgICAgICAgICAgICAgICAgICBzcmNwdHIgKz0gc3RyaWRlOwogICAgICAgICAgICAgICAgICAgZHN0cHRyICs9IHN0cmlkZTsKLSAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IC8qIGVuZCBvZiBlbHNlICovCiAKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNzc0LDcgKzc3NCw3IEBACiAgICAgICAgICAgICAgICAgICBwbmdfbWVtY3B5KGRzdHB0ciwgc3JjcHRyLCByZXBfYnl0ZXMpOwogICAgICAgICAgICAgICAgICAgc3JjcHRyICs9IHN0cmlkZTsKICAgICAgICAgICAgICAgICAgIGRzdHB0ciArPSBzdHJpZGU7Ci0gICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSAvKiBlbmQgb2YgZWxzZSAqLwogCiAgICAgICAgICAgICBicmVhazsKQEAgLTkyMSw3ICs5MjEsNyBAQAogICAgICAgICAgICAgICAgICAgcG5nX21lbWNweShkc3RwdHIsIHNyY3B0ciwgcmVwX2J5dGVzKTsKICAgICAgICAgICAgICAgICAgIHNyY3B0ciArPSBzdHJpZGU7CiAgICAgICAgICAgICAgICAgICBkc3RwdHIgKz0gc3RyaWRlOwotICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gLyogZW5kIG9mIGVsc2UgKi8KIAogICAgICAgICAgICAgYnJlYWs7CkBAIC0xMjQ2LDcgKzEyNDYsNyBAQAogICAgICAgICAgICAgICAgICAgcG5nX21lbWNweShkc3RwdHIsIHNyY3B0ciwgcmVwX2J5dGVzKTsKICAgICAgICAgICAgICAgICAgIHNyY3B0ciArPSBzdHJpZGU7CiAgICAgICAgICAgICAgICAgICBkc3RwdHIgKz0gc3RyaWRlOwotICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gLyogZW5kIG9mIGVsc2UgKi8KIAogICAgICAgICAgICAgYnJlYWs7CkBAIC0xMjczLDcgKzEyNzMsNyBAQAogICAgICAgICAgICAgICAgcG5nX21lbWNweShkc3RwdHIsIHNyY3B0ciwgcmVwX2J5dGVzKTsKICAgICAgICAgICAgICAgIHNyY3B0ciArPSBzdHJpZGU7CiAgICAgICAgICAgICAgICBkc3RwdHIgKz0gc3RyaWRlOwotICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfSAgICAgICAvLyBlbmQgNjQgYnBwCiAKQEAgLTIwOTUsNyArMjA5NSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICI9YyIgKGR1bW15X3ZhbHVlX2MpLCAgICAgICAgLy8gb3V0cHV0IHJlZ3MgKGR1bW15KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPVMiIChkdW1teV92YWx1ZV9TKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj1EIiAoZHVtbXlfdmFsdWVfRCkKLSAKKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiMSIgKHNwdHIpLCAgICAgIC8vIGVzaSAgICAgIC8vIGlucHV0IHJlZ3MKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjIiIChkcCksICAgICAgICAvLyBlZGkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjAiICh3aWR0aF9tbXgpICAvLyBlY3gKQEAgLTIxNTMsNyArMjE1Myw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICI9YyIgKGR1bW15X3ZhbHVlX2MpLCAgICAgICAgLy8gb3V0cHV0IHJlZ3MgKGR1bW15KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPVMiIChkdW1teV92YWx1ZV9TKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj1EIiAoZHVtbXlfdmFsdWVfRCkKLSAKKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiMSIgKHNwdHIpLCAgICAgIC8vIGVzaSAgICAgIC8vIGlucHV0IHJlZ3MKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjIiIChkcCksICAgICAgICAvLyBlZGkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjAiICh3aWR0aF9tbXgpICAvLyBlY3gKZGlmZiAtLWdpdCBhL3BuZ2dldC5jIGIvcG5nZ2V0LmMKaW5kZXggNDJiYTUyOC4uMDhiZjU5OSAxMDA2NDQKLS0tIGEvcG5nZ2V0LmMKKysrIGIvcG5nZ2V0LmMKQEAgLTEsNyArMSw3IEBACiAKIC8qIHBuZ2dldC5jIC0gcmV0cmlldmFsIG9mIHZhbHVlcyBmcm9tIGluZm8gc3RydWN0CiAgKgotICogbGlicG5nIDEuMC45YmV0YTIgLSBOb3ZlbWJlciAxOSwgMjAwMAorICogbGlicG5nIDEuMC45YmV0YTMgLSBOb3ZlbWJlciAyMywgMjAwMAogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTksIDIwMDAgR2xlbm4gUmFuZGVycy1QZWhyc29uCiAgKiAoVmVyc2lvbiAwLjk2IENvcHlyaWdodCAoYykgMTk5NiwgMTk5NyBBbmRyZWFzIERpbGdlcikKZGlmZiAtLWdpdCBhL3BuZ21lbS5jIGIvcG5nbWVtLmMKaW5kZXggNmEwNDc0Zi4uMzk0M2Y4YiAxMDA2NDQKLS0tIGEvcG5nbWVtLmMKKysrIGIvcG5nbWVtLmMKQEAgLTEsNyArMSw3IEBACiAKIC8qIHBuZ21lbS5jIC0gc3R1YiBmdW5jdGlvbnMgZm9yIG1lbW9yeSBhbGxvY2F0aW9uCiAgKgotICogbGlicG5nIDEuMC45YmV0YTIgLSBOb3ZlbWJlciAxOSwgMjAwMAorICogbGlicG5nIDEuMC45YmV0YTMgLSBOb3ZlbWJlciAyMywgMjAwMAogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTksIDIwMDAgR2xlbm4gUmFuZGVycy1QZWhyc29uCiAgKiAoVmVyc2lvbiAwLjk2IENvcHlyaWdodCAoYykgMTk5NiwgMTk5NyBBbmRyZWFzIERpbGdlcikKZGlmZiAtLWdpdCBhL3BuZ3ByZWFkLmMgYi9wbmdwcmVhZC5jCmluZGV4IDBlNTY0NjYuLmNlZTY3MGQgMTAwNjQ0Ci0tLSBhL3BuZ3ByZWFkLmMKKysrIGIvcG5ncHJlYWQuYwpAQCAtMSw3ICsxLDcgQEAKIAogLyogcG5ncHJlYWQuYyAtIHJlYWQgYSBwbmcgZmlsZSBpbiBwdXNoIG1vZGUKICAqCi0gKiBsaWJwbmcgMS4wLjliZXRhMiAtIE5vdmVtYmVyIDE5LCAyMDAwCisgKiBsaWJwbmcgMS4wLjliZXRhMyAtIE5vdmVtYmVyIDIzLCAyMDAwCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKICAqIENvcHlyaWdodCAoYykgMTk5OCwgMTk5OSwgMjAwMCBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQpkaWZmIC0tZ2l0IGEvcG5ncmVhZC5jIGIvcG5ncmVhZC5jCmluZGV4IGFmODhkZTUuLjRkMWJmNDQgMTAwNjQ0Ci0tLSBhL3BuZ3JlYWQuYworKysgYi9wbmdyZWFkLmMKQEAgLTEsNyArMSw3IEBACiAKIC8qIHBuZ3JlYWQuYyAtIHJlYWQgYSBQTkcgZmlsZQogICoKLSAqIGxpYnBuZyAxLjAuOWJldGEyIC0gTm92ZW1iZXIgMTksIDIwMDAKKyAqIGxpYnBuZyAxLjAuOWJldGEzIC0gTm92ZW1iZXIgMjMsIDIwMDAKICAqIEZvciBjb25kaXRpb25zIG9mIGRpc3RyaWJ1dGlvbiBhbmQgdXNlLCBzZWUgY29weXJpZ2h0IG5vdGljZSBpbiBwbmcuaAogICogQ29weXJpZ2h0IChjKSAxOTk4LCAxOTk5LCAyMDAwIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogKFZlcnNpb24gMC45NiBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXIpCkBAIC0xMDMsNyArMTAzLDcgQEAKICAgICAgICAgcmVtb3ZlZCBmcm9tIHZlcnNpb24gMi4wLjAgYW5kIGJleW9uZCBiZWNhdXNlIHRoZSBwcmV2aW91cyB0ZXN0CiAgICAgICAgIHdvdWxkIGhhdmUgYWxyZWFkeSByZWplY3RlZCBpdC4gKi8KIAotICAgICBpZiAodXNlcl9wbmdfdmVyWzRdID09ICc2JyAmJiB1c2VyX3BuZ192ZXJbMl0gPT0gJzAnICYmIAorICAgICBpZiAodXNlcl9wbmdfdmVyWzRdID09ICc2JyAmJiB1c2VyX3BuZ192ZXJbMl0gPT0gJzAnICYmCiAgICAgICAgICB1c2VyX3BuZ192ZXJbMF0gPT0gJzEnICYmIHVzZXJfcG5nX3Zlcls1XSA9PSAnXDAnKQogICAgICB7CiAgICAgICAgIHBuZ19lcnJvcihwbmdfcHRyLApAQCAtNzAxLDcgKzcwMSw3IEBACiAgKiBub3QgY2FsbGVkIHBuZ19zZXRfaW50ZXJsYWNlX2hhbmRsaW5nKCksIHRoZSBkaXNwbGF5X3JvdyBidWZmZXIgd2lsbAogICogYmUgaWdub3JlZCwgc28gcGFzcyBOVUxMIHRvIGl0LgogICoKLSAqIFsqXSBwbmdfaGFuZGxlX2FscGhhKCkgZG9lcyBub3QgZXhpc3QgeWV0LCBhcyBvZiBsaWJwbmcgdmVyc2lvbiAxLjAuOWJldGEyCisgKiBbKl0gcG5nX2hhbmRsZV9hbHBoYSgpIGRvZXMgbm90IGV4aXN0IHlldCwgYXMgb2YgbGlicG5nIHZlcnNpb24gMS4wLjliZXRhMwogICovCiAKIHZvaWQgUE5HQVBJCkBAIC03NTAsNyArNzUwLDcgQEAKICAqIG9ubHkgY2FsbCB0aGlzIGZ1bmN0aW9uIG9uY2UuICBJZiB5b3UgZGVzaXJlIHRvIGhhdmUgYW4gaW1hZ2UgZm9yCiAgKiBlYWNoIHBhc3Mgb2YgYSBpbnRlcmxhY2VkIGltYWdlLCB1c2UgcG5nX3JlYWRfcm93cygpIGluc3RlYWQuCiAgKgotICogWypdIHBuZ19oYW5kbGVfYWxwaGEoKSBkb2VzIG5vdCBleGlzdCB5ZXQsIGFzIG9mIGxpYnBuZyB2ZXJzaW9uIDEuMC45YmV0YTIKKyAqIFsqXSBwbmdfaGFuZGxlX2FscGhhKCkgZG9lcyBub3QgZXhpc3QgeWV0LCBhcyBvZiBsaWJwbmcgdmVyc2lvbiAxLjAuOWJldGEzCiAgKi8KIHZvaWQgUE5HQVBJCiBwbmdfcmVhZF9pbWFnZShwbmdfc3RydWN0cCBwbmdfcHRyLCBwbmdfYnl0ZXBwIGltYWdlKQpkaWZmIC0tZ2l0IGEvcG5ncmlvLmMgYi9wbmdyaW8uYwppbmRleCA1Y2QzZGRjLi42NjcxYzk3IDEwMDY0NAotLS0gYS9wbmdyaW8uYworKysgYi9wbmdyaW8uYwpAQCAtMSw3ICsxLDcgQEAKIAogLyogcG5ncmlvLmMgLSBmdW5jdGlvbnMgZm9yIGRhdGEgaW5wdXQKICAqCi0gKiBsaWJwbmcgMS4wLjliZXRhMiAtIE5vdmVtYmVyIDE5LCAyMDAwCisgKiBsaWJwbmcgMS4wLjliZXRhMyAtIE5vdmVtYmVyIDIzLCAyMDAwCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKICAqIENvcHlyaWdodCAoYykgMTk5OCwgMTk5OSwgMjAwMCBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQpkaWZmIC0tZ2l0IGEvcG5ncnRyYW4uYyBiL3BuZ3J0cmFuLmMKaW5kZXggNTczOTFiYS4uYWE1ZjA1ZCAxMDA2NDQKLS0tIGEvcG5ncnRyYW4uYworKysgYi9wbmdydHJhbi5jCkBAIC0xLDcgKzEsNyBAQAogCiAvKiBwbmdydHJhbi5jIC0gdHJhbnNmb3JtcyB0aGUgZGF0YSBpbiBhIHJvdyBmb3IgUE5HIHJlYWRlcnMKICAqCi0gKiBsaWJwbmcgMS4wLjliZXRhMiAtIE5vdmVtYmVyIDE5LCAyMDAwCisgKiBsaWJwbmcgMS4wLjliZXRhMyAtIE5vdmVtYmVyIDIzLCAyMDAwCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKICAqIENvcHlyaWdodCAoYykgMTk5OCwgMTk5OSwgMjAwMCBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQpkaWZmIC0tZ2l0IGEvcG5ncnV0aWwuYyBiL3BuZ3J1dGlsLmMKaW5kZXggZTg3ZWU1My4uOWZmNjBkZSAxMDA2NDQKLS0tIGEvcG5ncnV0aWwuYworKysgYi9wbmdydXRpbC5jCkBAIC0xLDcgKzEsNyBAQAogCiAvKiBwbmdydXRpbC5jIC0gdXRpbGl0aWVzIHRvIHJlYWQgYSBQTkcgZmlsZQogICoKLSAqIGxpYnBuZyAxLjAuOWJldGEyIC0gTm92ZW1iZXIgMTksIDIwMDAKKyAqIGxpYnBuZyAxLjAuOWJldGEzIC0gTm92ZW1iZXIgMjMsIDIwMDAKICAqIEZvciBjb25kaXRpb25zIG9mIGRpc3RyaWJ1dGlvbiBhbmQgdXNlLCBzZWUgY29weXJpZ2h0IG5vdGljZSBpbiBwbmcuaAogICogQ29weXJpZ2h0IChjKSAxOTk4LCAxOTk5LCAyMDAwIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogKFZlcnNpb24gMC45NiBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXIpCmRpZmYgLS1naXQgYS9wbmdzZXQuYyBiL3BuZ3NldC5jCmluZGV4IDExNDAxMjYuLjVmOWVkMjkgMTAwNjQ0Ci0tLSBhL3BuZ3NldC5jCisrKyBiL3BuZ3NldC5jCkBAIC0xLDcgKzEsNyBAQAogCiAvKiBwbmdzZXQuYyAtIHN0b3JhZ2Ugb2YgaW1hZ2UgaW5mb3JtYXRpb24gaW50byBpbmZvIHN0cnVjdAogICoKLSAqIGxpYnBuZyAxLjAuOWJldGEyIC0gTm92ZW1iZXIgMTksIDIwMDAKKyAqIGxpYnBuZyAxLjAuOWJldGEzIC0gTm92ZW1iZXIgMjMsIDIwMDAKICAqIEZvciBjb25kaXRpb25zIG9mIGRpc3RyaWJ1dGlvbiBhbmQgdXNlLCBzZWUgY29weXJpZ2h0IG5vdGljZSBpbiBwbmcuaAogICogQ29weXJpZ2h0IChjKSAxOTk4LCAxOTk5LCAyMDAwIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogKFZlcnNpb24gMC45NiBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXIpCkBAIC03MzAsNyArNzMwLDcgQEAKIHBuZ19zZXRfdW5rbm93bl9jaHVua19sb2NhdGlvbihwbmdfc3RydWN0cCBwbmdfcHRyLCBwbmdfaW5mb3AgaW5mb19wdHIsCiAgICBpbnQgY2h1bmssIGludCBsb2NhdGlvbikKIHsKLSAgIGlmKHBuZ19wdHIgIT0gTlVMTCAmJiBpbmZvX3B0ciAhPSBOVUxMICYmIGNodW5rID49IDAgJiYgY2h1bmsgPCAKKyAgIGlmKHBuZ19wdHIgIT0gTlVMTCAmJiBpbmZvX3B0ciAhPSBOVUxMICYmIGNodW5rID49IDAgJiYgY2h1bmsgPAogICAgICAgICAgKGludClpbmZvX3B0ci0+dW5rbm93bl9jaHVua3NfbnVtKQogICAgICAgaW5mb19wdHItPnVua25vd25fY2h1bmtzW2NodW5rXS5sb2NhdGlvbiA9IChwbmdfYnl0ZSlsb2NhdGlvbjsKIH0KZGlmZiAtLWdpdCBhL3BuZ3Rlc3QuYyBiL3BuZ3Rlc3QuYwppbmRleCAyY2VkNDIwLi4wZGM2ZTllIDEwMDY0NAotLS0gYS9wbmd0ZXN0LmMKKysrIGIvcG5ndGVzdC5jCkBAIC0xLDcgKzEsNyBAQAogCiAvKiBwbmd0ZXN0LmMgLSBhIHNpbXBsZSB0ZXN0IHByb2dyYW0gdG8gdGVzdCBsaWJwbmcKICAqCi0gKiBsaWJwbmcgMS4wLjliZXRhMiAtIE5vdmVtYmVyIDE5LCAyMDAwCisgKiBsaWJwbmcgMS4wLjliZXRhMyAtIE5vdmVtYmVyIDIzLCAyMDAwCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKICAqIENvcHlyaWdodCAoYykgMTk5OCwgMTk5OSwgMjAwMCBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQpAQCAtMTQ0OSw0ICsxNDQ5LDQgQEAKIH0KIAogLyogR2VuZXJhdGUgYSBjb21waWxlciBlcnJvciBpZiB0aGVyZSBpcyBhbiBvbGQgcG5nLmggaW4gdGhlIHNlYXJjaCBwYXRoLiAqLwotdHlwZWRlZiB2ZXJzaW9uXzFfMF85YmV0YTIgeW91cl9wbmdfaF9pc19ub3RfdmVyc2lvbl8xXzBfOWJldGEyOwordHlwZWRlZiB2ZXJzaW9uXzFfMF85YmV0YTMgeW91cl9wbmdfaF9pc19ub3RfdmVyc2lvbl8xXzBfOWJldGEzOwpkaWZmIC0tZ2l0IGEvcG5ndHJhbnMuYyBiL3BuZ3RyYW5zLmMKaW5kZXggMTQwOTA1Yy4uYWY1NTNiYyAxMDA2NDQKLS0tIGEvcG5ndHJhbnMuYworKysgYi9wbmd0cmFucy5jCkBAIC0xLDcgKzEsNyBAQAogCiAvKiBwbmd0cmFucy5jIC0gdHJhbnNmb3JtcyB0aGUgZGF0YSBpbiBhIHJvdyAodXNlZCBieSBib3RoIHJlYWRlcnMgYW5kIHdyaXRlcnMpCiAgKgotICogbGlicG5nIDEuMC45YmV0YTIgLSBOb3ZlbWJlciAxOSwgMjAwMAorICogbGlicG5nIDEuMC45YmV0YTMgLSBOb3ZlbWJlciAyMywgMjAwMAogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTksIDIwMDAgR2xlbm4gUmFuZGVycy1QZWhyc29uCiAgKiAoVmVyc2lvbiAwLjk2IENvcHlyaWdodCAoYykgMTk5NiwgMTk5NyBBbmRyZWFzIERpbGdlcikKZGlmZiAtLWdpdCBhL3BuZ3ZjcmQuYyBiL3BuZ3ZjcmQuYwppbmRleCA0Yjg1YTFmLi4zZDM5NGRmNiAxMDA2NDQKLS0tIGEvcG5ndmNyZC5jCisrKyBiL3BuZ3ZjcmQuYwpAQCAtMiw3ICsyLDcgQEAKICAqCiAgKiBGb3IgSW50ZWwgeDg2IENQVSBhbmQgTWljcm9zb2Z0IFZpc3VhbCBDKysgY29tcGlsZXIKICAqCi0gKiBsaWJwbmcgMS4wLjliZXRhMiAtIE5vdmVtYmVyIDE5LCAyMDAwCisgKiBsaWJwbmcgMS4wLjliZXRhMyAtIE5vdmVtYmVyIDIzLCAyMDAwCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKICAqIENvcHlyaWdodCAoYykgMTk5OCwgMTk5OSwgMjAwMCBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIENvcHlyaWdodCAoYykgMTk5OCwgSW50ZWwgQ29ycG9yYXRpb24KZGlmZiAtLWdpdCBhL3BuZ3dpby5jIGIvcG5nd2lvLmMKaW5kZXggZDYyZmU4NS4uMzIwOTg5ZiAxMDA2NDQKLS0tIGEvcG5nd2lvLmMKKysrIGIvcG5nd2lvLmMKQEAgLTEsNyArMSw3IEBACiAKIC8qIHBuZ3dpby5jIC0gZnVuY3Rpb25zIGZvciBkYXRhIG91dHB1dAogICoKLSAqIGxpYnBuZyAxLjAuOWJldGEyIC0gTm92ZW1iZXIgMTksIDIwMDAKKyAqIGxpYnBuZyAxLjAuOWJldGEzIC0gTm92ZW1iZXIgMjMsIDIwMDAKICAqIEZvciBjb25kaXRpb25zIG9mIGRpc3RyaWJ1dGlvbiBhbmQgdXNlLCBzZWUgY29weXJpZ2h0IG5vdGljZSBpbiBwbmcuaAogICogQ29weXJpZ2h0IChjKSAxOTk4LCAxOTk5LCAyMDAwIEdsZW5uIFJhbmRlcnMtUGVocnNvbgogICogKFZlcnNpb24gMC45NiBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTcgQW5kcmVhcyBEaWxnZXIpCmRpZmYgLS1naXQgYS9wbmd3cml0ZS5jIGIvcG5nd3JpdGUuYwppbmRleCBiYTc5YzdiLi5iZmZhZDBmIDEwMDY0NAotLS0gYS9wbmd3cml0ZS5jCisrKyBiL3BuZ3dyaXRlLmMKQEAgLTEsNyArMSw3IEBACiAKIC8qIHBuZ3dyaXRlLmMgLSBnZW5lcmFsIHJvdXRpbmVzIHRvIHdyaXRlIGEgUE5HIGZpbGUKICAqCi0gKiBsaWJwbmcgMS4wLjliZXRhMiAtIE5vdmVtYmVyIDE5LCAyMDAwCisgKiBsaWJwbmcgMS4wLjliZXRhMyAtIE5vdmVtYmVyIDIzLCAyMDAwCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKICAqIENvcHlyaWdodCAoYykgMTk5OCwgMTk5OSwgMjAwMCBHbGVubiBSYW5kZXJzLVBlaHJzb24KICAqIChWZXJzaW9uIDAuOTYgQ29weXJpZ2h0IChjKSAxOTk2LCAxOTk3IEFuZHJlYXMgRGlsZ2VyKQpAQCAtMzc1LDcgKzM3NSwxMSBAQAogCiAgICAvKiB3cml0ZSBlbmQgb2YgUE5HIGZpbGUgKi8KICAgIHBuZ193cml0ZV9JRU5EKHBuZ19wdHIpOworI2lmIDAKKy8qIFRoaXMgZmx1c2gsIGFkZGVkIGluIGxpYnBuZy0xLjAuOCwgIGNhdXNlcyBzb21lIGFwcGxpY2F0aW9ucyB0byBjcmFzaAorICAgYmVjYXVzZSB0aGV5IGRvIG5vdCBzZXQgcG5nX3B0ci0+b3V0cHV0X2ZsdXNoX2ZuICovCiAgICBwbmdfZmx1c2gocG5nX3B0cik7CisjZW5kaWYKIH0KIAogI2lmIGRlZmluZWQoUE5HX1dSSVRFX3RJTUVfU1VQUE9SVEVEKQpAQCAtNDg4LDcgKzQ5Miw3IEBACiAgICAgICAgIHJlbW92ZWQgZnJvbSB2ZXJzaW9uIDIuMC4wIGFuZCBiZXlvbmQgYmVjYXVzZSB0aGUgcHJldmlvdXMgdGVzdAogICAgICAgICB3b3VsZCBoYXZlIGFscmVhZHkgcmVqZWN0ZWQgaXQuICovCiAKLSAgICAgaWYgKHVzZXJfcG5nX3Zlcls0XSA9PSAnNicgJiYgdXNlcl9wbmdfdmVyWzJdID09ICcwJyAmJiAKKyAgICAgaWYgKHVzZXJfcG5nX3Zlcls0XSA9PSAnNicgJiYgdXNlcl9wbmdfdmVyWzJdID09ICcwJyAmJgogICAgICAgICAgdXNlcl9wbmdfdmVyWzBdID09ICcxJyAmJiB1c2VyX3BuZ192ZXJbNV0gPT0gJ1wwJykKICAgICAgewogICAgICAgICBwbmdfZXJyb3IocG5nX3B0ciwKZGlmZiAtLWdpdCBhL3BuZ3d0cmFuLmMgYi9wbmd3dHJhbi5jCmluZGV4IGQwZjVkZDcuLmFjZTY1MzIgMTAwNjQ0Ci0tLSBhL3BuZ3d0cmFuLmMKKysrIGIvcG5nd3RyYW4uYwpAQCAtMSw3ICsxLDcgQEAKIAogLyogcG5nd3RyYW4uYyAtIHRyYW5zZm9ybXMgdGhlIGRhdGEgaW4gYSByb3cgZm9yIFBORyB3cml0ZXJzCiAgKgotICogbGlicG5nIDEuMC45YmV0YTIgLSBOb3ZlbWJlciAxOSwgMjAwMAorICogbGlicG5nIDEuMC45YmV0YTMgLSBOb3ZlbWJlciAyMywgMjAwMAogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTksIDIwMDAgR2xlbm4gUmFuZGVycy1QZWhyc29uCiAgKiAoVmVyc2lvbiAwLjk2IENvcHlyaWdodCAoYykgMTk5NiwgMTk5NyBBbmRyZWFzIERpbGdlcikKZGlmZiAtLWdpdCBhL3BuZ3d1dGlsLmMgYi9wbmd3dXRpbC5jCmluZGV4IGVmODEwMDguLjZhYTFjNGUgMTAwNjQ0Ci0tLSBhL3BuZ3d1dGlsLmMKKysrIGIvcG5nd3V0aWwuYwpAQCAtMSw3ICsxLDcgQEAKIAogLyogcG5nd3V0aWwuYyAtIHV0aWxpdGllcyB0byB3cml0ZSBhIFBORyBmaWxlCiAgKgotICogbGlicG5nIDEuMC45YmV0YTIgLSBOb3ZlbWJlciAxOSwgMjAwMAorICogbGlicG5nIDEuMC45YmV0YTMgLSBOb3ZlbWJlciAyMywgMjAwMAogICogRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTgsIDE5OTksIDIwMDAgR2xlbm4gUmFuZGVycy1QZWhyc29uCiAgKiAoVmVyc2lvbiAwLjk2IENvcHlyaWdodCAoYykgMTk5NiwgMTk5NyBBbmRyZWFzIERpbGdlcikKZGlmZiAtLWdpdCBhL3Byb2plY3RzL21zdmMvUkVBRE1FLnR4dCBiL3Byb2plY3RzL21zdmMvUkVBRE1FLnR4dAppbmRleCA4YzRjNTM0Li5mMmE1Zjg2IDEwMDY0NAotLS0gYS9wcm9qZWN0cy9tc3ZjL1JFQURNRS50eHQKKysrIGIvcHJvamVjdHMvbXN2Yy9SRUFETUUudHh0CkBAIC0xLDUgKzEsNSBAQAogTWljcm9zb2Z0IERldmVsb3BlciBTdHVkaW8gQnVpbGQgRmlsZSwgRm9ybWF0IFZlcnNpb24gNi4wMCBmb3IKLWxpYnBuZyAxLjAuOWJldGEyIChOb3ZlbWJlciAxOSwgMjAwMCkgYW5kIHpsaWIKK2xpYnBuZyAxLjAuOWJldGEzIChOb3ZlbWJlciAyMywgMjAwMCkgYW5kIHpsaWIKIAogQ29weXJpZ2h0IChDKSAyMDAwIFNpbW9uLVBpZXJyZSBDYWRpZXV4CiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2VlIGNvcHlyaWdodCBub3RpY2UgaW4gcG5nLmgKZGlmZiAtLWdpdCBhL3Byb2plY3RzL21zdmMvcG5nLnJjIGIvcHJvamVjdHMvbXN2Yy9wbmcucmMKaW5kZXggNjkyMTk4My4uYjllZjJkNiAxMDA2NDQKLS0tIGEvcHJvamVjdHMvbXN2Yy9wbmcucmMKKysrIGIvcHJvamVjdHMvbXN2Yy9wbmcucmMKQEAgLTUwLDIzICs1MCwxOCBAQAogIyAgZGVmaW5lIFZTX1NQRUNJQUxCVUlMRCAwCiAjZW5kaWYgLyogU1BFQ0lBTEJVSUxEICovCiAKLSNpZiBkZWZpbmVkKFBOR19MSUJQTkdfQlVJTERfVFlQRSkKLSMgIGlmIChQTkdfTElCUE5HX0JVSUxEX1RZUEUgIT0gc3RhYmxlKQotIyAgICBpZihQTkdfTElCUE5HX0JVSUxEX1RZUEUgPT0gcGF0Y2hlZCkKLSMgICAgICBkZWZpbmUgVlNfUEFUQ0hFRCBWU19GRl9QQVRDSEVECi0jICAgICAgZGVmaW5lIFZTX1BSRVJFTEVBU0UgMAotIyAgICBlbHNlCi0jICAgICAgZGVmaW5lIFZTX1BSRVJFTEVBU0UgVlNfRkZfUFJFUkVMRUFTRQotIyAgICAgIGRlZmluZSBWU19QQVRDSEVEIDAKLSMgICAgZW5kaWYKLSMgIGVsc2UKLSMgICAgZGVmaW5lIFZTX1BSRVJFTEVBU0UgMAotIyAgICBkZWZpbmUgVlNfUEFUQ0hFRCAwCi0jICBlbmRpZiAvKiBQTkdfTElCUE5HX0JVSUxEX1RZUEUgIT0gc3RhYmxlICovCisjaWYgKChQTkdfTElCUE5HX0JVSUxEX1RZUEUgJiBQTkdfTElCUE5HX0JVSUxEX1RZUEVNQVNLKSAhPSBcCisgICAgICBQTkdfTElCUE5HX0JVSUxEX1NUQUJMRSkKKyMgIGRlZmluZSBWU19QUkVSRUxFQVNFIFZTX0ZGX1BSRVJFTEVBU0UKKyMgIGRlZmluZSBWU19QQVRDSEVEIDAKICNlbHNlCiAjICBkZWZpbmUgVlNfUFJFUkVMRUFTRSAwCi0jICBkZWZpbmUgVlNfUEFUQ0hFRCAwCi0jZW5kaWYgLyogUE5HX0xJQlBOR19CVUlMRF9UWVBFICovCisjICBpZiAoUE5HX0xJQlBOR19CVUlMRF9UWVBFICYgUE5HX0xJQlBOR19CVUlMRF9QQVRDSEVEKQorIyAgICBkZWZpbmUgVlNfUEFUQ0hFRCBWU19GRl9QQVRDSEVECisjICBlbHNlCisjICAgIGRlZmluZSBWU19QQVRDSEVEIDAKKyMgIGVuZGlmCisjZW5kaWYKIAogVlNfVkVSU0lPTl9JTkZPIFZFUlNJT05JTkZPIAogRklMRVZFUlNJT04gUE5HX0xJQlBOR19WRVJfTUFKT1IsIFBOR19MSUJQTkdfVkVSX01JTk9SLCBQTkdfTElCUE5HX1ZFUl9SRUxFQVNFLCBQTkdfTElCUE5HX1ZFUl9CVUlMRApkaWZmIC0tZ2l0IGEvcHJvamVjdHMvbXN2Yy9wbmczMm1zLmRlZiBiL3Byb2plY3RzL21zdmMvcG5nMzJtcy5kZWYKaW5kZXggNjk5Njg1MS4uOWFhODg4NSAxMDA2NDQKLS0tIGEvcHJvamVjdHMvbXN2Yy9wbmczMm1zLmRlZgorKysgYi9wcm9qZWN0cy9tc3ZjL3BuZzMybXMuZGVmCkBAIC02LDcgKzYsNyBAQAogREVTQ1JJUFRJT04gIlBORyBpbWFnZSBjb21wcmVzc2lvbiBsaWJyYXJ5IGZvciBXaW5kb3dzIgogCiBFWFBPUlRTCi07VmVyc2lvbiAxLjAuOWJldGEyCis7VmVyc2lvbiAxLjAuOWJldGEzCiAgIHBuZ19idWlsZF9ncmF5c2NhbGVfcGFsZXR0ZSAgQDEKICAgcG5nX2NoZWNrX3NpZyAgICAgICAgQDIKICAgcG5nX2NodW5rX2Vycm9yICAgICAgQDMKZGlmZiAtLWdpdCBhL3Byb2plY3RzL3dpbmNlL1JFQURNRUUuV0NFIGIvcHJvamVjdHMvd2luY2UvUkVBRE1FRS5XQ0UKaW5kZXggZWNmZWU1NC4uNTRmNjk3ZSAxMDA2NDQKLS0tIGEvcHJvamVjdHMvd2luY2UvUkVBRE1FRS5XQ0UKKysrIGIvcHJvamVjdHMvd2luY2UvUkVBRE1FRS5XQ0UKQEAgLTgsOSArOCw5IEBACiAKIEludHJvZHVjdGlvbgogPT09PT09PT09PT09Ci1UaGlzIGlzIGxpYnBuZyAxLjAuOWJldGEyIHBvcnRlZCB0byBXaW5kb3dzQ0UgMi4wIGFuZCAyLjExLgotbGlicG5nIDEuMC45YmV0YTIgaXMgYSBQTkcgcmVmZXJlbmNlIGxpYnJhcnkuCi1TZWUgUkVBRE1FLCBhIGRvY3VtZW50IG9mIG9yaWdpbmFsIGxpYnBuZyAxLjAuOWJldGEyLgorVGhpcyBpcyBsaWJwbmcgMS4wLjliZXRhMyBwb3J0ZWQgdG8gV2luZG93c0NFIDIuMCBhbmQgMi4xMS4KK2xpYnBuZyAxLjAuOWJldGEzIGlzIGEgUE5HIHJlZmVyZW5jZSBsaWJyYXJ5LgorU2VlIFJFQURNRSwgYSBkb2N1bWVudCBvZiBvcmlnaW5hbCBsaWJwbmcgMS4wLjliZXRhMy4KIAogemxpYiBmb3IgV2luZG93c0NFCiA9PT09PT09PT09PT09PT09PT0KQEAgLTIzLDcgKzIzLDcgQEAKIHdhcnJhbnR5LiAgSW4gbm8gZXZlbnQgd2lsbCB0aGUgYXV0aG9ycyBiZSBoZWxkIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMKIGFyaXNpbmcgZnJvbSB0aGUgdXNlIG9mIHRoaXMgc29mdHdhcmUuCiAKLVNlZSBSRUFETUUgYW5kIExJQ0VOU0UsIGRvY3VtZW50cyBvZiBvcmlnaW5hbCBsaWJwbmcgMS4wLjliZXRhMiwgZm9yIGNvbmRpdGlvbnMKK1NlZSBSRUFETUUgYW5kIExJQ0VOU0UsIGRvY3VtZW50cyBvZiBvcmlnaW5hbCBsaWJwbmcgMS4wLjliZXRhMywgZm9yIGNvbmRpdGlvbnMKIG9mIHVzZSBhbmQgZGlzdHJpYnV0aW9uLgogCiBGaWxlcwpkaWZmIC0tZ2l0IGEvcHJvamVjdHMvd2luY2UvUkVBRE1FSi5XQ0UgYi9wcm9qZWN0cy93aW5jZS9SRUFETUVKLldDRQppbmRleCBkOTRjOWQ3Li5iZjBlZjU5IDEwMDY0NAotLS0gYS9wcm9qZWN0cy93aW5jZS9SRUFETUVKLldDRQorKysgYi9wcm9qZWN0cy93aW5jZS9SRUFETUVKLldDRQpAQCAtMjQsNyArMjQsNyBAQAoggsmCyILBgr2CooKpgsiC6ZTtilGCyYLCgqKCxILggUGN7I7SgUGUepV6jtKBQYK7gsyRvJeYl3CO0ojIik+CzJBslaiBQQogkmORzILJkNOUQ4LwgsaC6YtglrGCzYLIgqKC4ILMgsaCtYLcgreBQgogCi2Cu4LMkbyBQYKxgsyDXIN0g2eDRYNGg0GCzJeYl3CP8IyPgsmCwoKigsSCzYFBjLSUxYLFgqCC6SBsaWJwbmcgMS4wLjliZXRhMoLJCiuCu4LMkbyBQYKxgsyDXIN0g2eDRYNGg0GCzJeYl3CP8IyPgsmCwoKigsSCzYFBjLSUxYLFgqCC6SBsaWJwbmcgMS4wLjliZXRhM4LJCiCPgIuSgreC6YLggsyCxoK1gtyCt4FCj9qCtYKtgs2BQZV0ka6CzCBSRUFETUUsTElDRU5TRSCC8IKok8eC3YKtgr6Cs4KigUIKIAogjvuYXpPgl2UKZGlmZiAtLWdpdCBhL3Byb2plY3RzL3dpbmNlL3BuZzMyY2UuZGVmIGIvcHJvamVjdHMvd2luY2UvcG5nMzJjZS5kZWYKaW5kZXggYzllZGRjNS4uYWY3MGIxNiAxMDA2NDQKLS0tIGEvcHJvamVjdHMvd2luY2UvcG5nMzJjZS5kZWYKKysrIGIvcHJvamVjdHMvd2luY2UvcG5nMzJjZS5kZWYKQEAgLTUsNyArNSw3IEBACiBMSUJSQVJZIGxwbmdjZQogCiBFWFBPUlRTCi07VmVyc2lvbiAxLjAuOWJldGEyCis7VmVyc2lvbiAxLjAuOWJldGEzCiAgIHBuZ19idWlsZF9ncmF5c2NhbGVfcGFsZXR0ZSAgQDEKICAgcG5nX2NoZWNrX3NpZyAgICAgICAgQDIKICAgcG5nX2NodW5rX2Vycm9yICAgICAgQDMKZGlmZiAtLWdpdCBhL3NjcmlwdHMvbWFrZWZpbGUuYWNvcm4gYi9zY3JpcHRzL21ha2VmaWxlLmFjb3JuCmluZGV4IDUwNGExN2YuLjQ3MGNmODkgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvbWFrZWZpbGUuYWNvcm4KKysrIGIvc2NyaXB0cy9tYWtlZmlsZS5hY29ybgpAQCAtMiw0MCArMiw0MCBAQAogCiAKICMgVG9vbGZsYWdzOgotQ0NmbGFncyA9IC1jIC1kZXBlbmQgIURlcGVuZCAtSUM6LFpsaWI6IC1nIC10aHJvd2JhY2sgIC1EUklTQ09TICAtZm5haCAKK0NDZmxhZ3MgPSAtYyAtZGVwZW5kICFEZXBlbmQgLUlDOixabGliOiAtZyAtdGhyb3diYWNrICAtRFJJU0NPUyAgLWZuYWgKIEMrK2ZsYWdzID0gLWMgLWRlcGVuZCAhRGVwZW5kIC1JQzogLXRocm93YmFjawogTGlua2ZsYWdzID0gLWFpZiAtYysrIC1vICRACiBPYmpBc21mbGFncyA9IC10aHJvd2JhY2sgLU5vQ2FjaGUgLWRlcGVuZCAhRGVwZW5kCiBDTUhHZmxhZ3MgPSAKLUxpYkZpbGVmbGFncyA9IC1jIC1sIC1vICRAIAorTGliRmlsZWZsYWdzID0gLWMgLWwgLW8gJEAKIFNxdWVlemVmbGFncyA9IC1vICRACiAKIAogIyBGaW5hbCB0YXJnZXRzOgogQC5saWJwbmctbGliOiAgIEAuby5wbmcgQC5vLnBuZ2Vycm9yIEAuby5wbmdyaW8gQC5vLnBuZ3dpbyBALm8ucG5nbWVtIFwKIAlALm8ucG5ncHJlYWQgQC5vLnBuZ3NldCBALm8ucG5nZ2V0IEAuby5wbmdyZWFkIEAuby5wbmdydHJhbiBcCi0JQC5vLnBuZ3J1dGlsIEAuby5wbmd0cmFucyBALm8ucG5nd3JpdGUgQC5vLnBuZ3d0cmFuIEAuby5wbmd3dXRpbCAKKwlALm8ucG5ncnV0aWwgQC5vLnBuZ3RyYW5zIEAuby5wbmd3cml0ZSBALm8ucG5nd3RyYW4gQC5vLnBuZ3d1dGlsCiAJTGliRmlsZSAkKExpYkZpbGVmbGFncykgQC5vLnBuZyBALm8ucG5nZXJyb3IgQC5vLnBuZ3JpbyBALm8ucG5ncnRyYW4gXAogCUAuby5wbmdtZW0gQC5vLnBuZ3ByZWFkIEAuby5wbmdzZXQgQC5vLnBuZ2dldCBALm8ucG5ncmVhZCBALm8ucG5nd2lvIFwKLQlALm8ucG5ncnV0aWwgQC5vLnBuZ3RyYW5zICBALm8ucG5nd3JpdGUgQC5vLnBuZ3d0cmFuIEAuby5wbmd3dXRpbCAKKwlALm8ucG5ncnV0aWwgQC5vLnBuZ3RyYW5zICBALm8ucG5nd3JpdGUgQC5vLnBuZ3d0cmFuIEAuby5wbmd3dXRpbAogQC5tbS1saWJwbmctbGliOiAgIEAubW0ucG5nIEAubW0ucG5nZXJyb3IgQC5tbS5wbmdyaW8gQC5tbS5wbmd3aW8gQC5tbS5wbmdtZW0gXAogCUAubW0ucG5ncHJlYWQgQC5tbS5wbmdzZXQgQC5tbS5wbmdnZXQgQC5tbS5wbmdyZWFkIEAubW0ucG5ncnRyYW4gXAotCUAubW0ucG5ncnV0aWwgQC5tbS5wbmd0cmFucyBALm1tLnBuZ3dyaXRlIEAubW0ucG5nd3RyYW4gQC5tbS5wbmd3dXRpbCAKKwlALm1tLnBuZ3J1dGlsIEAubW0ucG5ndHJhbnMgQC5tbS5wbmd3cml0ZSBALm1tLnBuZ3d0cmFuIEAubW0ucG5nd3V0aWwKIAlMaWJGaWxlICQoTGliRmlsZWZsYWdzKSBALm1tLnBuZyBALm1tLnBuZ2Vycm9yIEAubW0ucG5ncmlvIFwKIAlALm1tLnBuZ3dpbyBALm1tLnBuZ21lbSBALm1tLnBuZ3ByZWFkIEAubW0ucG5nc2V0IEAubW0ucG5nZ2V0IFwKIAlALm1tLnBuZ3JlYWQgQC5tbS5wbmdydHJhbiBALm1tLnBuZ3J1dGlsIEAubW0ucG5ndHJhbnMgQC5tbS5wbmd3cml0ZSBcCi0JQC5tbS5wbmd3dHJhbiBALm1tLnBuZ3d1dGlsIAorCUAubW0ucG5nd3RyYW4gQC5tbS5wbmd3dXRpbAogCiAKICMgVXNlci1lZGl0YWJsZSBkZXBlbmRlbmNpZXM6CiAjIChDKSBDb3B5cmlnaHQgMTk5NyBUb20gVGFubmVyCi1UZXN0OiBALnBuZ3Rlc3QgCitUZXN0OiBALnBuZ3Rlc3QKIAk8UHJlZml4JERpcj4ucG5ndGVzdAogCUByZW1vdmUgPFByZWZpeCREaXI+LnBuZ3Rlc3QKIAogI0l0IHdvdWxkIGJlIG5pY2UgaWYgeW91IGNvdWxkIHN0b3AgIm1ha2UiIGxpc3RpbmcgZnJvbSBoZXJlIG9uIQotQC5wbmd0ZXN0OiAgIEAuby5wbmd0ZXN0IEAubGlicG5nLWxpYiBDOm8uU3R1YnMgWmxpYjp6bGliX2xpYiAKLQlMaW5rICQoTGlua2ZsYWdzKSBALm8ucG5ndGVzdCBALmxpYnBuZy1saWIgQzpvLlN0dWJzIFpsaWI6emxpYl9saWIgCitALnBuZ3Rlc3Q6ICAgQC5vLnBuZ3Rlc3QgQC5saWJwbmctbGliIEM6by5TdHVicyBabGliOnpsaWJfbGliCisJTGluayAkKExpbmtmbGFncykgQC5vLnBuZ3Rlc3QgQC5saWJwbmctbGliIEM6by5TdHVicyBabGliOnpsaWJfbGliCiAKIC5TVUZGSVhFUzogLm8gLm1tIC5jCiAKZGlmZiAtLWdpdCBhL3NjcmlwdHMvbWFrZWZpbGUuYWl4IGIvc2NyaXB0cy9tYWtlZmlsZS5haXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTUzZDhiNwotLS0gL2Rldi9udWxsCisrKyBiL3NjcmlwdHMvbWFrZWZpbGUuYWl4CkBAIC0wLDAgKzEsODQgQEAKKyMgbWFrZWZpbGUgZm9yIGxpYnBuZyB1c2luZyBnY2MgKGdlbmVyaWMsIHN0YXRpYyBsaWJyYXJ5KQorIyBDb3B5cmlnaHQgKEMpIDE5OTUgR3V5IEVyaWMgU2NoYWxuYXQsIEdyb3VwIDQyLCBJbmMuCisjIENvcHlyaWdodCAoQykgMjAwMCBDb3NtaW4gVHJ1dGEKKyMgQ29weXJpZ2h0IChDKSAyMDAwIE1hcmMgTy4gR2xvb3IgKEFJWCBzdXBwb3J0IGFkZGVkLCBmcm9tIG1ha2VmaWxlLmdjYykKKyMgRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCisKKyMgTG9jYXRpb24gb2YgdGhlIHpsaWIgbGlicmFyeSBhbmQgaW5jbHVkZSBmaWxlcworWkxJQklOQyA9IC4uL3psaWIKK1pMSUJMSUIgPSAuLi96bGliCisKKyMgQ29tcGlsZXIsIGxpbmtlciwgbGliIGFuZCBvdGhlciB0b29scworQ0MgPSBnY2MKK0xEID0gJChDQykKK0FSID0gYXIgcmNzCitSQU5MSUIgPSByYW5saWIKK1JNID0gcm0gLWYKKworIyByZWFkIGxpYnBuZy50eHQgb3IgcG5nLmggdG8gc2VlIHdoeSBQTkdNQUogaXMgMi4gIFlvdSBzaG91bGQgbm90CisjIGhhdmUgdG8gY2hhbmdlIGl0LgorUE5HTUFKID0gMgorUE5HTUlOID0gMS4wLjliZXRhMworUE5HVkVSID0gJChQTkdNQUopLiQoUE5HTUlOKQorCitwcmVmaXg9L3Vzci9sb2NhbAorSU5DUEFUSD0kKHByZWZpeCkvaW5jbHVkZQorTElCUEFUSD0kKHByZWZpeCkvbGliCisKK0NERUJVRyA9IC1nIC1EUE5HX0RFQlVHPTUKK0xEREVCVUcgPQorQ1JFTEVBU0UgPSAtTzIKK0xEUkVMRUFTRSA9IC1zCitDRkxBR1MgPSAtSSQoWkxJQklOQykgLVdhbGwgJChDUkVMRUFTRSkKK0xERkxBR1MgPSAtTC4gLUwkKFpMSUJMSUIpIC1scG5nIC1seiAtbG0gJChMRFJFTEVBU0UpCisKKyMgRmlsZSBleHRlbnNpb25zCitPPS5vCitBPS5hCitFPQorCisjIFZhcmlhYmxlcworT0JKUyA9IHBuZyQoTykgcG5nZXJyb3IkKE8pIHBuZ2dldCQoTykgcG5nbWVtJChPKSBwbmdwcmVhZCQoTykgXAorCXBuZ3JlYWQkKE8pIHBuZ3JpbyQoTykgcG5ncnRyYW4kKE8pIHBuZ3J1dGlsJChPKSBwbmdzZXQkKE8pIFwKKwlwbmd0cmFucyQoTykgcG5nd2lvJChPKSBwbmd3cml0ZSQoTykgcG5nd3RyYW4kKE8pIHBuZ3d1dGlsJChPKQorCisjIFRhcmdldHMKK2FsbDogbGlicG5nJChBKSBwbmd0ZXN0JChFKQorCitsaWJwbmckKEEpOiAkKE9CSlMpCisJJChBUikgJEAgJChPQkpTKQorCSQoUkFOTElCKSAkQAorCit0ZXN0OiBwbmd0ZXN0JChFKQorCS4vcG5ndGVzdCQoRSkKKworcG5ndGVzdCQoRSk6IHBuZ3Rlc3QkKE8pIGxpYnBuZyQoQSkKKwkkKExEKSAtbyAkQCBwbmd0ZXN0JChPKSAkKExERkxBR1MpCisKK2luc3RhbGw6IGxpYnBuZy5hCisJLUBpZiBbICEgLWQgJChJTkNQQVRIKSAgXTsgdGhlbiBta2RpciAkKElOQ1BBVEgpOyBmaQorCS1AaWYgWyAhIC1kICQoTElCUEFUSCkgXTsgdGhlbiBta2RpciAkKExJQlBBVEgpOyBmaQorCWNwIHBuZy5oIHBuZ2NvbmYuaCAkKElOQ1BBVEgpCisJY2htb2QgNjQ0ICQoSU5DUEFUSCkvcG5nLmggJChJTkNQQVRIKS9wbmdjb25mLmgKKwljcCBsaWJwbmcuYSAkKExJQlBBVEgpCisKK2NsZWFuOgorCS9iaW4vcm0gLWYgKi5vIGxpYnBuZy5hIGxpYnBuZy5zbyogcG5ndGVzdCBwbmdvdXQucG5nCisKK3BuZyQoTyk6IHBuZy5oIHBuZ2NvbmYuaAorcG5nZXJyb3IkKE8pOiBwbmcuaCBwbmdjb25mLmgKK3BuZ2dldCQoTyk6IHBuZy5oIHBuZ2NvbmYuaAorcG5nbWVtJChPKTogcG5nLmggcG5nY29uZi5oCitwbmdwcmVhZCQoTyk6IHBuZy5oIHBuZ2NvbmYuaAorcG5ncmVhZCQoTyk6IHBuZy5oIHBuZ2NvbmYuaAorcG5ncmlvJChPKTogcG5nLmggcG5nY29uZi5oCitwbmdydHJhbiQoTyk6IHBuZy5oIHBuZ2NvbmYuaAorcG5ncnV0aWwkKE8pOiBwbmcuaCBwbmdjb25mLmgKK3BuZ3NldCQoTyk6IHBuZy5oIHBuZ2NvbmYuaAorcG5ndGVzdCQoTyk6IHBuZy5oIHBuZ2NvbmYuaAorcG5ndHJhbnMkKE8pOiBwbmcuaCBwbmdjb25mLmgKK3BuZ3dpbyQoTyk6IHBuZy5oIHBuZ2NvbmYuaAorcG5nd3JpdGUkKE8pOiBwbmcuaCBwbmdjb25mLmgKK3BuZ3d0cmFuJChPKTogcG5nLmggcG5nY29uZi5oCitwbmd3dXRpbCQoTyk6IHBuZy5oIHBuZ2NvbmYuaAorCmRpZmYgLS1naXQgYS9zY3JpcHRzL21ha2VmaWxlLmFtaWdhIGIvc2NyaXB0cy9tYWtlZmlsZS5hbWlnYQppbmRleCA0NTg3MDg4Li43OWNiNDI0IDEwMDY0NAotLS0gYS9zY3JpcHRzL21ha2VmaWxlLmFtaWdhCisrKyBiL3NjcmlwdHMvbWFrZWZpbGUuYW1pZ2EKQEAgLTE0LDcgKzE0LDcgQEAKICMgICAgICAgICAgU28gdXNlIFY2LjU1IG9yIHNldCBOT09QVEdPISEhISEhISEhCiBDRkxBR1M9IE5PU1RLQ0hLIFBBUk1TPVJFRyBPUFRJTUlaRSBPUFRHTyBPUFRQRUVQIE9QVElOTE9DQUwgT1BUSU5MXAogCU9QVExPT1AgT1BUUkRFUD00IE9QVERFUD00IE9QVENPTVA9NCBJTkNMVURFRElSPSQoWkxJQikgXAotCURFRklORT1QTkdfSU5URVJOQUwgCisJREVGSU5FPVBOR19JTlRFUk5BTAogI2xpbmtlciBmbGFncwogTERGTEFHUz0gU0QgTkQgQkFUQ0gKICNsaW5rIGxpYnMKZGlmZiAtLWdpdCBhL3NjcmlwdHMvbWFrZWZpbGUuYmQzMiBiL3NjcmlwdHMvbWFrZWZpbGUuYmQzMgppbmRleCBiYzdlMTkzLi45MmE1N2FiIDEwMDY0NAotLS0gYS9zY3JpcHRzL21ha2VmaWxlLmJkMzIKKysrIGIvc2NyaXB0cy9tYWtlZmlsZS5iZDMyCkBAIC0yMSw3ICsyMSw3IEBACiAKIENDPWJjYzMyCiBDRkxBR1M9IC1wcyAtTzIgLU4tIC1rLSAtZCAtci0gLXctcGFyIC13LWF1cyAtSSQoWkxJQkRJUikgXAotICAtRFBOR19OT19HTE9CQUxfQVJSQVlTICMtRFBOR19ERUJVRz01CisJLURQTkdfTk9fR0xPQkFMX0FSUkFZUyAjLURQTkdfREVCVUc9NQogI0xJTks9dGxpbmszMgogI0xJTks9aWxpbmszMgogTElOSz1iY2MzMgpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9tYWtlZmlsZS5iZW9zIGIvc2NyaXB0cy9tYWtlZmlsZS5iZW9zCmluZGV4IDI2MzM0ZTkuLjNmN2MxNmIgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvbWFrZWZpbGUuYmVvcworKysgYi9zY3JpcHRzL21ha2VmaWxlLmJlb3MKQEAgLTMxLDcgKzMxLDcgQEAKICMgcmVhZCBsaWJwbmcudHh0IG9yIHBuZy5oIHRvIHNlZSB3aHkgUE5HTUFKIGlzIDIuICBZb3Ugc2hvdWxkIG5vdAogIyBoYXZlIHRvIGNoYW5nZSBpdC4KIFBOR01BSiA9IDIKLVBOR01JTiA9IDEuMC45YmV0YTIKK1BOR01JTiA9IDEuMC45YmV0YTMKIFBOR1ZFUiA9ICQoUE5HTUFKKS4kKFBOR01JTikKIAogIyB3aGVyZSBtYWtlIGluc3RhbGwgcHV0cyBsaWJwbmcuYSwgbGlicG5nLnNvKiwgYW5kIHBuZy5oCmRpZmYgLS1naXQgYS9zY3JpcHRzL21ha2VmaWxlLmN5Z3dpbiBiL3NjcmlwdHMvbWFrZWZpbGUuY3lnd2luCmluZGV4IGYzOGQ3MDEuLmJlNjc0YjMgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvbWFrZWZpbGUuY3lnd2luCisrKyBiL3NjcmlwdHMvbWFrZWZpbGUuY3lnd2luCkBAIC0yLDcgKzIsNyBAQAogIyAgIGJ1aWxkcyBib3RoIGRsbCAod2l0aCBpbXBvcnQgbGliKSBhbmQgc3RhdGljIGxpYiB2ZXJzaW9ucwogIyAgIG9mIHRoZSBsaWJyYXJ5LCBhbmQgYnVpbGRzIHR3byBjb3BpZXMgb2YgcG5ndGVzdDogb25lCiAjICAgc3RhdGljYWxseSBsaW5rZWQgYW5kIG9uZSBkeW5hbWljYWxseSBsaW5rZWQuCi0jICAgCisjCiAjICAgYmFzZWQgb24gbWFrZWZpbGUgZm9yIGxpbnV4LWVsZiB3L21teCBieToKICMgQ29weXJpZ2h0IChDKSAxOTk4LTIwMDAgR3JlZyBSb2Vsb2ZzCiAjIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NyBBbmRyZWFzIERpbGdlcgpAQCAtMzMsMTIgKzMzLDEyIEBACiAjQ0ZMQUdTPS1EUE5HX1VTRV9QTkdHQ0NSRCAtSSQoWkxJQklOQykgLVdhbGwgLU8zICQoQUxJR04pIC1mdW5yb2xsLWxvb3BzIFwKICMgICAgICAgIC1mb21pdC1mcmFtZS1wb2ludGVyICAjICQoV0FSTk1PUkUpIC1nIC1EUE5HX0RFQlVHPTUKIENGTEFHUz0tSSQoWkxJQklOQykgLVdhbGwgLU8zICQoQUxJR04pIC1mdW5yb2xsLWxvb3BzIFwKLSAgICAgICAgLWZvbWl0LWZyYW1lLXBvaW50ZXIgCisJLWZvbWl0LWZyYW1lLXBvaW50ZXIKIAogIyByZWFkIGxpYnBuZy50eHQgb3IgcG5nLmggdG8gc2VlIHdoeSBQTkdNQUogaXMgMi4gIFlvdSBzaG91bGQgbm90CiAjIGhhdmUgdG8gY2hhbmdlIGl0LgogUE5HTUFKID0gMgotUE5HTUlOID0gMS4wLjliZXRhMgorUE5HTUlOID0gMS4wLjliZXRhMwogUE5HVkVSID0gJChQTkdNQUopLiQoUE5HTUlOKQogCiBTSEFSRURMSUI9Y3lncG5nJChQTkdNQUopLmRsbApAQCAtMTA4LDcgKzEwOCw3IEBACiAJY2F0ICQ8IHwgc2VkIC1lICcxe0c7cy9eXCguKlwpXChcblwpL0VYUE9SVFMvO307MiwvXkVYUE9SVFMvZCcgPiAkQAogCiAkKFNIQVJFRExJQik6ICQoT0JKU0RMTCkgJChTSEFSRURERUYpCi0JJChMRFNIQVJFRCkgLW8gJEAgJChMREVYVFJBKSAkKE9CSlNETEwpIC1MLiAtTCQoWkxJQkxJQikgLWx6IAorCSQoTERTSEFSRUQpIC1vICRAICQoTERFWFRSQSkgJChPQkpTRExMKSAtTC4gLUwkKFpMSUJMSUIpIC1segogCiBwbmd0ZXN0JChFWEUpOiBwbmd0ZXN0LnBpYy5vICQoU0hBUkVETElCKQogCSQoQ0MpICQoQ0ZMQUdTKSAkPCAkKExERkxBR1MpIC1vICRACkBAIC0xMzIsNyArMTMyLDcgQEAKIAogaW5zdGFsbDogaW5zdGFsbC1zdGF0aWMgaW5zdGFsbC1zaGFyZWQKIAotaW5zdGFsbC1zdGF0aWM6ICQoU1RBVExJQikgaW5zdGFsbC1oZWFkZXJzIGluc3RhbGwtZG9jcyBpbnN0YWxsLW1hbiAKK2luc3RhbGwtc3RhdGljOiAkKFNUQVRMSUIpIGluc3RhbGwtaGVhZGVycyBpbnN0YWxsLWRvY3MgaW5zdGFsbC1tYW4KIAktQGlmIFsgISAtZCAkKExJQlBBVEgpIF07IHRoZW4gbWtkaXIgLXAgJChMSUJQQVRIKTsgZmkKIAlpbnN0YWxsIC1tIDc1NSAkKFNUQVRMSUIpICQoTElCUEFUSCkKIApkaWZmIC0tZ2l0IGEvc2NyaXB0cy9tYWtlZmlsZS5kZWMgYi9zY3JpcHRzL21ha2VmaWxlLmRlYwppbmRleCBiNTkwYzQwLi4xNjY1YzU4IDEwMDY0NAotLS0gYS9zY3JpcHRzL21ha2VmaWxlLmRlYworKysgYi9zY3JpcHRzL21ha2VmaWxlLmRlYwpAQCAtMTcsNyArMTcsNyBAQAogIyByZWFkIGxpYnBuZy50eHQgb3IgcG5nLmggdG8gc2VlIHdoeSBQTkdNQUogaXMgMi4gIFlvdSBzaG91bGQgbm90CiAjIGhhdmUgdG8gY2hhbmdlIGl0LgogUE5HTUFKID0gMgotUE5HTUlOID0gMS4wLjliZXRhMgorUE5HTUlOID0gMS4wLjliZXRhMwogUE5HVkVSID0gJChQTkdNQUopLiQoUE5HTUlOKQogCiBDQz1jYwpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9tYWtlZmlsZS5nY21teCBiL3NjcmlwdHMvbWFrZWZpbGUuZ2NtbXgKaW5kZXggNDU4YWYwMi4uODA4OTFiOSAxMDA2NDQKLS0tIGEvc2NyaXB0cy9tYWtlZmlsZS5nY21teAorKysgYi9zY3JpcHRzL21ha2VmaWxlLmdjbW14CkBAIC0yNyw3ICsyNyw3IEBACiAjIGZvciBwZ2NjIHZlcnNpb24gMi45NS4xLCAtTzMgaXMgYnVnZ3k7IGRvbid0IHVzZSBpdC4KIAogQ0ZMQUdTPS1EUE5HX1VTRV9QTkdHQ0NSRCAtSSQoWkxJQklOQykgLVdhbGwgLU8zICQoQUxJR04pIC1mdW5yb2xsLWxvb3BzIFwKLSAgICAgICAgLWZvbWl0LWZyYW1lLXBvaW50ZXIgICMgJChXQVJOTU9SRSkgLWcgLURQTkdfREVCVUc9NQorCS1mb21pdC1mcmFtZS1wb2ludGVyICAjICQoV0FSTk1PUkUpIC1nIC1EUE5HX0RFQlVHPTUKIExERkxBR1M9LUwuIC1XbCwtcnBhdGgsLiAtTCQoWkxJQkxJQikgLVdsLC1ycGF0aCwkKFpMSUJMSUIpIC1scG5nIC1seiAtbG0KIExERkxBR1NfQT0tTCQoWkxJQkxJQikgLVdsLC1ycGF0aCwkKFpMSUJMSUIpIGxpYnBuZy5hIC1seiAtbG0KIApAQCAtMzcsNyArMzcsNyBAQAogIyByZWFkIGxpYnBuZy50eHQgb3IgcG5nLmggdG8gc2VlIHdoeSBQTkdNQUogaXMgMi4gIFlvdSBzaG91bGQgbm90CiAjIGhhdmUgdG8gY2hhbmdlIGl0LgogUE5HTUFKID0gMgotUE5HTUlOID0gMS4wLjliZXRhMgorUE5HTUlOID0gMS4wLjliZXRhMwogUE5HVkVSID0gJChQTkdNQUopLiQoUE5HTUlOKQogCiBJTkNQQVRIPSQocHJlZml4KS9pbmNsdWRlCmRpZmYgLS1naXQgYS9zY3JpcHRzL21ha2VmaWxlLmhwdXggYi9zY3JpcHRzL21ha2VmaWxlLmhwdXgKaW5kZXggNjVlMGViYS4uYmFmNjcwNCAxMDA2NDQKLS0tIGEvc2NyaXB0cy9tYWtlZmlsZS5ocHV4CisrKyBiL3NjcmlwdHMvbWFrZWZpbGUuaHB1eApAQCAtMTgsNyArMTgsNyBAQAogIyByZWFkIGxpYnBuZy50eHQgb3IgcG5nLmggdG8gc2VlIHdoeSBQTkdNQUogaXMgMi4gIFlvdSBzaG91bGQgbm90CiAjIGhhdmUgdG8gY2hhbmdlIGl0LgogUE5HTUFKID0gMgotUE5HTUlOID0gMS4wLjliZXRhMgorUE5HTUlOID0gMS4wLjliZXRhMwogUE5HVkVSID0gJChQTkdNQUopLiQoUE5HTUlOKQogCiAjIHdoZXJlIG1ha2UgaW5zdGFsbCBwdXRzIGxpYnBuZy5hIGFuZCBwbmcuaApkaWZmIC0tZ2l0IGEvc2NyaXB0cy9tYWtlZmlsZS5pbnRlbCBiL3NjcmlwdHMvbWFrZWZpbGUuaW50ZWwKaW5kZXggYjU1MjI2My4uYjc0NzA3MCAxMDA2NDQKLS0tIGEvc2NyaXB0cy9tYWtlZmlsZS5pbnRlbAorKysgYi9zY3JpcHRzL21ha2VmaWxlLmludGVsCkBAIC00Miw5ICs0Miw5IEBACiAKIE89Lm9iagogCi1PQkpTPXBuZyQoTykgcG5nc2V0JChPKSBwbmdnZXQkKE8pIHBuZ3J1dGlsJChPKSBwbmd0cmFucyQoTykgcG5nd3V0aWwkKE8pXAotICAgICBwbmdtZW0kKE8pIHBuZ3ByZWFkJChPKSBwbmdyZWFkJChPKSBwbmdlcnJvciQoTykgcG5nd3JpdGUkKE8pXAotICAgICBwbmdydHJhbiQoTykgcG5nd3RyYW4kKE8pIHBuZ3JpbyQoTykgcG5nd2lvJChPKSBwbmd2Y3JkJChPKQorT0JKUz1wbmckKE8pIHBuZ3NldCQoTykgcG5nZ2V0JChPKSBwbmdydXRpbCQoTykgcG5ndHJhbnMkKE8pIHBuZ3d1dGlsJChPKSBcCitwbmdtZW0kKE8pIHBuZ3ByZWFkJChPKSBwbmdyZWFkJChPKSBwbmdlcnJvciQoTykgcG5nd3JpdGUkKE8pIFwKK3BuZ3J0cmFuJChPKSBwbmd3dHJhbiQoTykgcG5ncmlvJChPKSBwbmd3aW8kKE8pIHBuZ3ZjcmQkKE8pCiAKIAogYWxsOiB0ZXN0CmRpZmYgLS1naXQgYS9zY3JpcHRzL21ha2VmaWxlLmxpbnV4IGIvc2NyaXB0cy9tYWtlZmlsZS5saW51eAppbmRleCAxYmI4ZWMzLi4zYjg4MTc2IDEwMDY0NAotLS0gYS9zY3JpcHRzL21ha2VmaWxlLmxpbnV4CisrKyBiL3NjcmlwdHMvbWFrZWZpbGUubGludXgKQEAgLTM0LDcgKzM0LDcgQEAKICMgcmVhZCBsaWJwbmcudHh0IG9yIHBuZy5oIHRvIHNlZSB3aHkgUE5HTUFKIGlzIDIuICBZb3Ugc2hvdWxkIG5vdAogIyBoYXZlIHRvIGNoYW5nZSBpdC4KIFBOR01BSiA9IDIKLVBOR01JTiA9IDEuMC45YmV0YTIKK1BOR01JTiA9IDEuMC45YmV0YTMKIFBOR1ZFUiA9ICQoUE5HTUFKKS4kKFBOR01JTikKIAogSU5DUEFUSD0kKHByZWZpeCkvaW5jbHVkZQpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9tYWtlZmlsZS5tYWNvc3ggYi9zY3JpcHRzL21ha2VmaWxlLm1hY29zeApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTNlYTc3Ci0tLSAvZGV2L251bGwKKysrIGIvc2NyaXB0cy9tYWtlZmlsZS5tYWNvc3gKQEAgLTAsMCArMSw3MiBAQAorIyBtYWtlZmlsZSBmb3IgbGlicG5nLCBNQUNPUyBYCisjIENvcHlyaWdodCAoQykgMTk5NSBHdXkgRXJpYyBTY2hhbG5hdCwgR3JvdXAgNDIsIEluYy4KKyMgRm9yIGNvbmRpdGlvbnMgb2YgZGlzdHJpYnV0aW9uIGFuZCB1c2UsIHNlZSBjb3B5cmlnaHQgbm90aWNlIGluIHBuZy5oCisKKyMgd2hlcmUgbWFrZSBpbnN0YWxsIHB1dHMgbGlicG5nLmEgYW5kIHBuZy5oCitwcmVmaXg9L3Vzci9sb2NhbAorCisjIFdoZXJlIHRoZSB6bGliIGxpYnJhcnkgYW5kIGluY2x1ZGUgZmlsZXMgYXJlIGxvY2F0ZWQKKyNaTElCTElCPS91c3IvbG9jYWwvbGliCisjWkxJQklOQz0vdXNyL2xvY2FsL2luY2x1ZGUKK1pMSUJMSUI9Li4vemxpYgorWkxJQklOQz0uLi96bGliCisKK0NDPWNjCitDRkxBR1M9LUkkKFpMSUJJTkMpIC1PICMgLWcgLURQTkdfREVCVUc9NQorTERGTEFHUz0tTC4gLUwkKFpMSUJMSUIpIC1scG5nIC1segorCisjUkFOTElCPWVjaG8KK1JBTkxJQj1yYW5saWIKKworT0JKUyA9IHBuZy5vIHBuZ3NldC5vIHBuZ2dldC5vIHBuZ3J1dGlsLm8gcG5ndHJhbnMubyBwbmd3dXRpbC5vIFwKKwlwbmdyZWFkLm8gcG5ncmlvLm8gcG5nd2lvLm8gcG5nd3JpdGUubyBwbmdydHJhbi5vIFwKKwlwbmd3dHJhbi5vIHBuZ21lbS5vIHBuZ2Vycm9yLm8gcG5ncHJlYWQubworCithbGw6IGxpYnBuZy5hIHBuZ3Rlc3QKKworbGlicG5nLmE6ICQoT0JKUykKKwlhciByYyAkQCAgJChPQkpTKQorCSQoUkFOTElCKSAkQAorCitwbmd0ZXN0OiBwbmd0ZXN0Lm8gbGlicG5nLmEKKwkkKENDKSAtbyBwbmd0ZXN0ICQoQ0ZMQUdTKSBwbmd0ZXN0Lm8gJChMREZMQUdTKQorCit0ZXN0OiBwbmd0ZXN0CisJLi9wbmd0ZXN0CisKK2luc3RhbGw6IGxpYnBuZy5hCisJLUBta2RpciAkKHByZWZpeCkvaW5jbHVkZQorCS1AbWtkaXIgJChwcmVmaXgpL2xpYgorCWNwIHBuZy5oICQocHJlZml4KS9pbmNsdWRlCisJY3AgcG5nY29uZi5oICQocHJlZml4KS9pbmNsdWRlCisJY2htb2QgNjQ0ICQocHJlZml4KS9pbmNsdWRlL3BuZy5oCisJY2htb2QgNjQ0ICQocHJlZml4KS9pbmNsdWRlL3BuZ2NvbmYuaAorCWNwIGxpYnBuZy5hICQocHJlZml4KS9saWIKKwljaG1vZCA2NDQgJChwcmVmaXgpL2xpYi9saWJwbmcuYQorCitjbGVhbjoKKwlybSAtZiAqLm8gbGlicG5nLmEgcG5ndGVzdCBwbmdvdXQucG5nCisKK0RPQ1MgPSBBTk5PVU5DRSBDSEFOR0VTIElOU1RBTEwgS05PV05CVUcgTElDRU5TRSBSRUFETUUgVE9ETyBZMktJTkZPCit3cml0ZWxvY2s6CisJY2htb2QgYS13ICouW2NoMzVdICQoRE9DUykgc2NyaXB0cy8qCisKKyMgRE8gTk9UIERFTEVURSBUSElTIExJTkUgLS0gbWFrZSBkZXBlbmQgZGVwZW5kcyBvbiBpdC4KKworcG5nLm86IHBuZy5oIHBuZ2NvbmYuaAorcG5nZXJyb3IubzogcG5nLmggcG5nY29uZi5oCitwbmdyaW8ubzogcG5nLmggcG5nY29uZi5oCitwbmd3aW8ubzogcG5nLmggcG5nY29uZi5oCitwbmdtZW0ubzogcG5nLmggcG5nY29uZi5oCitwbmdzZXQubzogcG5nLmggcG5nY29uZi5oCitwbmdnZXQubzogcG5nLmggcG5nY29uZi5oCitwbmdyZWFkLm86IHBuZy5oIHBuZ2NvbmYuaAorcG5ncnRyYW4ubzogcG5nLmggcG5nY29uZi5oCitwbmdydXRpbC5vOiBwbmcuaCBwbmdjb25mLmgKK3BuZ3Rlc3QubzogcG5nLmggcG5nY29uZi5oCitwbmd0cmFucy5vOiBwbmcuaCBwbmdjb25mLmgKK3BuZ3dyaXRlLm86IHBuZy5oIHBuZ2NvbmYuaAorcG5nd3RyYW4ubzogcG5nLmggcG5nY29uZi5oCitwbmd3dXRpbC5vOiBwbmcuaCBwbmdjb25mLmgKK3BuZ3ByZWFkLm86IHBuZy5oIHBuZ2NvbmYuaAorCmRpZmYgLS1naXQgYS9zY3JpcHRzL21ha2VmaWxlLm1zYyBiL3NjcmlwdHMvbWFrZWZpbGUubXNjCmluZGV4IDY1MTI4MWMuLjFjYmZkOTEgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvbWFrZWZpbGUubXNjCisrKyBiL3NjcmlwdHMvbWFrZWZpbGUubXNjCkBAIC05LDcgKzksNyBAQAogIy1PeCBnZW5lcmF0ZXMgYmFkIGNvZGUgd2l0aCBNU0MgNS4xCiBDQz1jbAogTEQ9bGluawotTERGTEFHUz0vZS9zdDoweDE1MDAvbm9lIAorTERGTEFHUz0vZS9zdDoweDE1MDAvbm9lCiBPPS5vYmoKIAogI3VuY29tbWVudCBuZXh0IHRvIHB1dCBlcnJvciBtZXNzYWdlcyBpbiBhIGZpbGUKQEAgLTc2LDcgKzc2LDcgQEAKIAlsaWIgbGlicG5nICQoT0JKUzIpOwogCWxpYiBsaWJwbmcgJChPQkpTMyk7CiAKLXBuZ3Rlc3QuZXhlOiBwbmd0ZXN0Lm9iaiBsaWJwbmcubGliIAorcG5ndGVzdC5leGU6IHBuZ3Rlc3Qub2JqIGxpYnBuZy5saWIKIAkkKExEKSAkKExERkxBR1MpIHBuZ3Rlc3Qub2JqLCwsbGlicG5nLmxpYiAuLlx6bGliXHpsaWIubGliIDsKIAogdGVzdDogcG5ndGVzdC5leGUKZGlmZiAtLWdpdCBhL3NjcmlwdHMvbWFrZWZpbGUuc2NvIGIvc2NyaXB0cy9tYWtlZmlsZS5zY28KaW5kZXggZmY5NzlmYS4uMzhmOTJiMSAxMDA2NDQKLS0tIGEvc2NyaXB0cy9tYWtlZmlsZS5zY28KKysrIGIvc2NyaXB0cy9tYWtlZmlsZS5zY28KQEAgLTE2LDcgKzE2LDcgQEAKIFpMSUJMSUI9Li4vemxpYgogWkxJQklOQz0uLi96bGliCiAKLUNGTEFHUz0gLWR5IC1iZWxmIC1JJChaTElCSU5DKSAtTzMgCitDRkxBR1M9IC1keSAtYmVsZiAtSSQoWkxJQklOQykgLU8zCiBMREZMQUdTPS1MLiAtTCQoWkxJQkxJQikgLWxwbmcgLWx6IC1sbQogCiAjUkFOTElCPXJhbmxpYgpAQCAtMjUsNyArMjUsNyBAQAogIyByZWFkIGxpYnBuZy50eHQgb3IgcG5nLmggdG8gc2VlIHdoeSBQTkdNQUogaXMgMi4gIFlvdSBzaG91bGQgbm90CiAjIGhhdmUgdG8gY2hhbmdlIGl0LgogUE5HTUFKID0gMgotUE5HTUlOID0gMS4wLjliZXRhMgorUE5HTUlOID0gMS4wLjliZXRhMwogUE5HVkVSID0gJChQTkdNQUopLiQoUE5HTUlOKQogCiBJTkNQQVRIPSQocHJlZml4KS9pbmNsdWRlCmRpZmYgLS1naXQgYS9zY3JpcHRzL21ha2VmaWxlLnNnZ2NjIGIvc2NyaXB0cy9tYWtlZmlsZS5zZ2djYwppbmRleCA2NTBjNmE5Li45NzhiYWVmIDEwMDY0NAotLS0gYS9zY3JpcHRzL21ha2VmaWxlLnNnZ2NjCisrKyBiL3NjcmlwdHMvbWFrZWZpbGUuc2dnY2MKQEAgLTE5LDggKzE5LDggQEAKIExERkxBR1M9LUwuIC1MJChaTElCTElCKSAtbHBuZyAtbHogLWxtCiBMRFNIQVJFRD1nY2MgLXNoYXJlZAogCi1WRVI9MS4wLjliZXRhMgotTElCUz1saWJwbmcuc28uMS4wLjliZXRhMgorVkVSPTEuMC45YmV0YTMKK0xJQlM9bGlicG5nLnNvLjEuMC45YmV0YTMKIFNIQVJFRExJQj1saWJwbmcuc28KIGxpYmRpcj0kKHByZWZpeCkvbGliMzIKIApkaWZmIC0tZ2l0IGEvc2NyaXB0cy9tYWtlZmlsZS5zb2xhcmlzIGIvc2NyaXB0cy9tYWtlZmlsZS5zb2xhcmlzCmluZGV4IGY4ZTY0MjUuLmViOGNmMzIgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvbWFrZWZpbGUuc29sYXJpcworKysgYi9zY3JpcHRzL21ha2VmaWxlLnNvbGFyaXMKQEAgLTMxLDcgKzMxLDcgQEAKICMgcmVhZCBsaWJwbmcudHh0IG9yIHBuZy5oIHRvIHNlZSB3aHkgUE5HTUFKIGlzIDIuICBZb3Ugc2hvdWxkIG5vdAogIyBoYXZlIHRvIGNoYW5nZSBpdC4KIFBOR01BSiA9IDIKLVBOR01JTiA9IDEuMC45YmV0YTIKK1BOR01JTiA9IDEuMC45YmV0YTMKIFBOR1ZFUiA9ICQoUE5HTUFKKS4kKFBOR01JTikKIAogSU5DUEFUSD0kKHByZWZpeCkvaW5jbHVkZQpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9tYWtlZmlsZS52Y2F3aW4zMiBiL3NjcmlwdHMvbWFrZWZpbGUudmNhd2luMzIKaW5kZXggNGMwNWZmNC4uNTdjZTUxMCAxMDA2NDQKLS0tIGEvc2NyaXB0cy9tYWtlZmlsZS52Y2F3aW4zMgorKysgYi9zY3JpcHRzL21ha2VmaWxlLnZjYXdpbjMyCkBAIC04NCw3ICs4NCw3IEBACiAJZGVsIGxpYnBuZy5saWIKIAlsaWIgL09VVDpsaWJwbmcubGliICQoT0JKUzEpICQoT0JKUzIpICQoT0JKUzMpCiAKLXBuZ3Rlc3QuZXhlOiBwbmd0ZXN0Lm9iaiBsaWJwbmcubGliIAorcG5ndGVzdC5leGU6IHBuZ3Rlc3Qub2JqIGxpYnBuZy5saWIKIAkkKExEKSAkKExERkxBR1MpIHBuZ3Rlc3Qub2JqIGxpYnBuZy5saWIgLi5cemxpYlx6bGliLmxpYiAvT1VUOnBuZ3Rlc3QuZXhlIC9TVUJTWVNURU06Q09OU09MRQogCiB0ZXN0OiBwbmd0ZXN0LmV4ZQpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9tYWtlZmlsZS52Y3dpbjMyIGIvc2NyaXB0cy9tYWtlZmlsZS52Y3dpbjMyCmluZGV4IGEyZDhlMjcuLmE1ZTg4ZDggMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvbWFrZWZpbGUudmN3aW4zMgorKysgYi9zY3JpcHRzL21ha2VmaWxlLnZjd2luMzIKQEAgLTc3LDcgKzc3LDcgQEAKIAlkZWwgbGlicG5nLmxpYgogCWxpYiAvT1VUOmxpYnBuZy5saWIgJChPQkpTMSkgJChPQkpTMikgJChPQkpTMykKIAotcG5ndGVzdC5leGU6IHBuZ3Rlc3Qub2JqIGxpYnBuZy5saWIgCitwbmd0ZXN0LmV4ZTogcG5ndGVzdC5vYmogbGlicG5nLmxpYgogCSQoTEQpICQoTERGTEFHUykgcG5ndGVzdC5vYmogbGlicG5nLmxpYiAuLlx6bGliXHpsaWIubGliIC9PVVQ6cG5ndGVzdC5leGUgL1NVQlNZU1RFTTpDT05TT0xFCiAKIHRlc3Q6IHBuZ3Rlc3QuZXhlCmRpZmYgLS1naXQgYS9zY3JpcHRzL21ha2V2bXMuY29tIGIvc2NyaXB0cy9tYWtldm1zLmNvbQppbmRleCAwMDM3MzI2Li5iOWUzODk1IDEwMDY0NAotLS0gYS9zY3JpcHRzL21ha2V2bXMuY29tCisrKyBiL3NjcmlwdHMvbWFrZXZtcy5jb20KQEAgLTE0LDcgKzE0LDcgQEAKICQgICBzZXQgZGVmIFstLnBuZ21pbnVzXQogJCAgIEBtYWtldm1zCiAkICAgc2V0IGRlZiBbLS1dCi0kICAgZXhpdCAKKyQgICBleGl0CiAkIGVuZGlmCiAkIE1ha2UgPSAiIgogJCBJZiBGJFNlYXJjaCAoIlN5cyRTeXN0ZW06TU1TLkVYRSIpIC5uZXMuICIiIFRoZW4gTWFrZSA9ICJNTVMiCkBAIC01NCw3ICs1NCw3IEBACiAkICB0aGVuCiAkICAgZGVsZSBwbmd0ZXN0Lm9iajsqCiAkICAgQ0FMTCBNQUtFIHBuZy5PQkogImNjICcnQ0NPUFQnIHBuZyIgLQotCXBuZy5jIHBuZy5oIHBuZ2NvbmYuaCAgIAorCXBuZy5jIHBuZy5oIHBuZ2NvbmYuaAogJCAgIENBTEwgTUFLRSBwbmdwcmVhZC5PQkogImNjICcnQ0NPUFQnIHBuZ3ByZWFkIiAtCiAJCQkJCSBwbmdwcmVhZC5jIHBuZy5oIHBuZ2NvbmYuaAogJCAgIENBTEwgTUFLRSBwbmdzZXQuT0JKICJjYyAnJ0NDT1BUJyBwbmdzZXQiIC0KQEAgLTkwLDggKzkwLDggQEAKICQgICB3cml0ZSBzeXMkb3V0cHV0ICJCdWlsZGluZyBwbmd0ZXN0Li4uIgogJCAgIENBTEwgTUFLRSBwbmd0ZXN0Lk9CSiAiY2MgJydDQ09QVCcgcG5ndGVzdCIgLQogCXBuZ3Rlc3QuYyBwbmcuaCBwbmdjb25mLmgKLSQgICBjYWxsIG1ha2UgcG5ndGVzdC5leGUgLSAKLQkiTElOSyBwbmd0ZXN0LGxpYnBuZy5vbGIvbGliLCcnemxpYnNyYydsaWJ6Lm9sYi9saWIiIC0gCiskICAgY2FsbCBtYWtlIHBuZ3Rlc3QuZXhlIC0KKwkiTElOSyBwbmd0ZXN0LGxpYnBuZy5vbGIvbGliLCcnemxpYnNyYydsaWJ6Lm9sYi9saWIiIC0KIAlwbmd0ZXN0Lm9iaiBsaWJwbmcub2xiCiAkICAgd3JpdGUgc3lzJG91dHB1dCAiVGVzdGluZyBMaWJwbmcuLi4iCiAkICAgcnVuIHBuZ3Rlc3QKZGlmZiAtLWdpdCBhL3NjcmlwdHMvcG5nZGVmLnBhcyBiL3NjcmlwdHMvcG5nZGVmLnBhcwppbmRleCA5MGUzODFmLi4yMzk0NmFhIDEwMDY0NAotLS0gYS9zY3JpcHRzL3BuZ2RlZi5wYXMKKysrIGIvc2NyaXB0cy9wbmdkZWYucGFzCkBAIC01LDcgKzUsNyBAQAogaW50ZXJmYWNlCiAKIGNvbnN0Ci0gIFBOR19MSUJQTkdfVkVSX1NUUklORyA9ICcxLjAuOWJldGEyJzsKKyAgUE5HX0xJQlBOR19WRVJfU1RSSU5HID0gJzEuMC45YmV0YTMnOwogICBQTkdfTElCUE5HX1ZFUiAgICAgICAgPSAgMTAwMDk7CiAKIHR5cGUKQEAgLTIwOSw3ICsyMDksNyBAQAogICBQTkdfQ1JDX1dBUk5fRElTQ0FSRCA9IDI7ICAvLyAoSU5WQUxJRCkgICAgICAgICAgIHdhcm4vZGlzY2FyZCBkYXRhCiAgIFBOR19DUkNfV0FSTl9VU0UgICAgID0gMzsgIC8vIHdhcm4vdXNlIGRhdGEgICAgICAgd2Fybi91c2UgZGF0YQogICBQTkdfQ1JDX1FVSUVUX1VTRSAgICA9IDQ7ICAvLyBxdWlldC91c2UgZGF0YSAgICAgIHF1aWV0L3VzZSBkYXRhCi0gIFBOR19DUkNfTk9fQ0hBTkdFICAgID0gNTsgIC8vIHVzZSBjdXJyZW50IHZhbHVlICAgdXNlIGN1cnJlbnQgdmFsdWUgCisgIFBOR19DUkNfTk9fQ0hBTkdFICAgID0gNTsgIC8vIHVzZSBjdXJyZW50IHZhbHVlICAgdXNlIGN1cnJlbnQgdmFsdWUKIAogLy8gRmxhZ3MgZm9yIHBuZ19zZXRfZmlsdGVyKCkgdG8gc2F5IHdoaWNoIGZpbHRlcnMgdG8gdXNlLiAgVGhlIGZsYWdzCiAvLyBhcmUgY2hvc2VuIHNvIHRoYXQgdGhleSBkb24ndCBjb25mbGljdCB3aXRoIHJlYWwgZmlsdGVyIHR5cGVzCkBAIC0yNDEsNyArMjQxLDcgQEAKICAgUE5HX0ZJTFRFUl9IRVVSSVNUSUNfREVGQVVMVCAgICA9IDA7ICAvLyBDdXJyZW50bHkgIlVOV0VJR0hURUQiCiAgIFBOR19GSUxURVJfSEVVUklTVElDX1VOV0VJR0hURUQgPSAxOyAgLy8gVXNlZCBieSBsaWJwbmcgPCAwLjk1CiAgIFBOR19GSUxURVJfSEVVUklTVElDX1dFSUdIVEVEICAgPSAyOyAgLy8gRXhwZXJpbWVudGFsIGZlYXR1cmUKLSAgUE5HX0ZJTFRFUl9IRVVSSVNUSUNfTEFTVCAgICAgICA9IDM7ICAvLyBOb3QgYSB2YWxpZCB2YWx1ZSAKKyAgUE5HX0ZJTFRFUl9IRVVSSVNUSUNfTEFTVCAgICAgICA9IDM7ICAvLyBOb3QgYSB2YWxpZCB2YWx1ZQogCiBwcm9jZWR1cmUgcG5nX2J1aWxkX2dyYXlzY2FsZV9wYWxldHRlKGJpdF9kZXB0aDogaW50OyBwYWxldHRlOiBwbmdfY29sb3JwKTsKICAgICAgICAgICAgICBzdGRjYWxsOwpAQCAtMzQwLDcgKzM0MCw3IEBACiAgICAgICAgICAgICAgdmFyIHVuaXRfdHlwZTogaW50KTogcG5nX3VpbnRfMzI7CiAgICAgICAgICAgICAgc3RkY2FsbDsKIGZ1bmN0aW9uIHBuZ19nZXRfc0NBTChwbmdfcHRyOiBwbmdfc3RydWN0cDsgaW5mb19wdHI6IHBuZ19pbmZvcDsKLSAgICAgICAgICAgICB2YXIgdW5pdDppbnQ7IHZhciB3aWR0aDogcG5nX3VpbnRfMzI7IGhlaWdodDogcG5nX3VpbnRfMzIpOiAKKyAgICAgICAgICAgICB2YXIgdW5pdDppbnQ7IHZhciB3aWR0aDogcG5nX3VpbnRfMzI7IGhlaWdodDogcG5nX3VpbnRfMzIpOgogICAgICAgICAgICAgIHBuZ191aW50XzMyOwogICAgICAgICAgICAgIHN0ZGNhbGwKIGZ1bmN0aW9uIHBuZ19nZXRfcENBTChwbmdfcHRyOiBwbmdfc3RydWN0cDsgaW5mb19wdHI6IHBuZ19pbmZvcDsKQEAgLTM3Myw3ICszNzMsNyBAQAogICAgICAgICAgICAgIHN0ZGNhbGw7CiBmdW5jdGlvbiBwbmdfZ2V0X3NSR0IocG5nX3B0cjogcG5nX3N0cnVjdHA7IGluZm9fcHRyOiBwbmdfaW5mb3A7CiAgICAgICAgICAgICAgdmFyIGZpbGVfc3JnYl9pbnRlbnQ6IGludCk6IHBuZ191aW50XzMyOwotICAgICAgICAgICAgIHN0ZGNhbGw7IAorICAgICAgICAgICAgIHN0ZGNhbGw7CiBmdW5jdGlvbiBwbmdfZ2V0X3NpZ25hdHVyZShwbmdfcHRyOiBwbmdfc3RydWN0cDsgaW5mb19wdHI6IHBuZ19pbmZvcCk6CiAgICAgICAgICAgICAgcG5nX2J5dGVwOwogICAgICAgICAgICAgIHN0ZGNhbGw7CmRpZmYgLS1naXQgYS9zY3JpcHRzL3BuZ29zMi5kZWYgYi9zY3JpcHRzL3BuZ29zMi5kZWYKaW5kZXggZGNiOWEzMi4uMzMzZjA1NiAxMDA2NDQKLS0tIGEvc2NyaXB0cy9wbmdvczIuZGVmCisrKyBiL3NjcmlwdHMvcG5nb3MyLmRlZgpAQCAtMjk3LDExICsyOTcsMTEgQEAKICAgcG5nX3Bhc3NfZHNwX21hc2sKIDsgcG5nX3Bhc3Nfd2lkdGgKIDsgcG5nX3Bhc3NfaGVpZ2h0Ci0gIHBuZ19nZXRfaUNDUCAKKyAgcG5nX2dldF9pQ0NQCiAgIHBuZ19nZXRfc0NBTAotICBwbmdfZ2V0X3NQTFQgCi0gIHBuZ19zZXRfaUNDUCAKLSAgcG5nX3NldF9zUExUIAorICBwbmdfZ2V0X3NQTFQKKyAgcG5nX3NldF9pQ0NQCisgIHBuZ19zZXRfc1BMVAogICBwbmdfZnJlZV9kYXRhCiAKICAgcG5nX0lIRFIK