ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBmZWE1ZGIwLi4wMDcwYzg1IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOCBAQAorMjAwMi0wNi0yMiAgUm9iZXJ0byBBbGFtZWRhICA8b2phbmNhbm9AZ2Vla21haWwuZGU+LgorCisgICAgKiBpbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL3Q0MnR5cGVzLmgsIHNyYy9iYXNlL2Z0dHlwZTEuYywKKyAgICBzcmMvdHlwZTQyL3Q0Mm9ianMuaDogcmVtb3ZlZCBkdXBsaWNhdGUgZGVmaW5pdGlvbiBvZiBUNDJfRmFjZVJlYworCiAyMDAyLTA2LTIyICBEZXRsZWYgV/xya25lciAgPFRldGlTb2Z0QGFwZy5sYWhuLmRlPgogCiAgICAgKiBzcmMvcGZyL3Bmcmdsb2FkLmMgKHBmcl9nbHlwaF9sb2FkX2NvbXBvdW5kKTogZml4aW5nIGEgc21hbGwgY29tcG9zaXRlCmRpZmYgLS1naXQgYS9pbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL3Q0MnR5cGVzLmggYi9pbmNsdWRlL2ZyZWV0eXBlL2ludGVybmFsL3Q0MnR5cGVzLmgKaW5kZXggYWE3MjhiZi4uNDY3NTMzMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9mcmVldHlwZS9pbnRlcm5hbC90NDJ0eXBlcy5oCisrKyBiL2luY2x1ZGUvZnJlZXR5cGUvaW50ZXJuYWwvdDQydHlwZXMuaApAQCAtMjksNDEgKzI5LDEwIEBACiAKIEZUX0JFR0lOX0hFQURFUgogCi0KLSAgdHlwZWRlZiBzdHJ1Y3QgIFQ0Ml9Gb250UmVjXyAKLSAgewotICAgIC8qIGZvbnQgaW5mbyBkaWN0aW9uYXJ5ICovCi0gICAgUFNfRm9udEluZm9SZWMgICBmb250X2luZm87IAotCi0gICAgLyogdG9wLWxldmVsIGRpY3Rpb25hcnkgKi8KLSAgICBGVF9TdHJpbmcqICAgICAgIGZvbnRfbmFtZTsKLQotICAgIFQxX0VuY29kaW5nVHlwZSAgZW5jb2RpbmdfdHlwZTsgCi0gICAgVDFfRW5jb2RpbmdSZWMgICBlbmNvZGluZzsKLQotICAgIEZUX0J5dGUqICAgICAgICAgY2hhcnN0cmluZ3NfYmxvY2s7Ci0gICAgRlRfQnl0ZSogICAgICAgICBnbHlwaF9uYW1lc19ibG9jazsKLQotICAgIEZUX0ludCAgICAgICAgICAgbnVtX2dseXBoczsKLSAgICBGVF9TdHJpbmcqKiAgICAgIGdseXBoX25hbWVzOyAgICAgICAvKiBhcnJheSBvZiBnbHlwaCBuYW1lcyAgICAgICAqLwotICAgIEZUX0J5dGUqKiAgICAgICAgY2hhcnN0cmluZ3M7ICAgICAgIC8qIGFycmF5IG9mIGdseXBoIGNoYXJzdHJpbmdzICovCi0gICAgRlRfSW50KiAgICAgICAgICBjaGFyc3RyaW5nc19sZW47Ci0KLSAgICBGVF9CeXRlICAgICAgICAgIHBhaW50X3R5cGU7Ci0gICAgRlRfQnl0ZSAgICAgICAgICBmb250X3R5cGU7Ci0gICAgRlRfTWF0cml4ICAgICAgICBmb250X21hdHJpeDsgLyogRnJvbSBGb250TWF0cml4IGZpZWxkOiBhLCBiLCBjLCBkICovCi0gICAgRlRfVmVjdG9yICAgICAgICBmb250X29mZnNldDsgLyogRnJvbSBGb250TWF0cml4IGZpZWxkOiB0eCwgdHkgKi8KLSAgICBGVF9CQm94ICAgICAgICAgIGZvbnRfYmJveDsKLQotICAgIEZUX0ludCAgICAgICAgICAgc3Ryb2tlX3dpZHRoOyAgCi0KLSAgfSBUNDJfRm9udFJlYywgKlQ0Ml9Gb250OwotCi0KICAgdHlwZWRlZiBzdHJ1Y3QgIFQ0Ml9GYWNlUmVjXwogICB7CiAgICAgRlRfRmFjZVJlYyAgICAgcm9vdDsKLSAgICBUNDJfRm9udFJlYyAgICB0eXBlNDI7CisgICAgVDFfRm9udFJlYyAgICAgdHlwZTE7CiAgICAgY29uc3Qgdm9pZCogICAgcHNuYW1lczsKICAgICBjb25zdCB2b2lkKiAgICBwc2F1eDsKICAgICBjb25zdCB2b2lkKiAgICBhZm1fZGF0YTsKZGlmZiAtLWdpdCBhL3NyYy9iYXNlL2Z0dHlwZTEuYyBiL3NyYy9iYXNlL2Z0dHlwZTEuYwppbmRleCAzYTg0YmU3Li45MWRkYTI3IDEwMDY0NAotLS0gYS9zcmMvYmFzZS9mdHR5cGUxLmMKKysrIGIvc3JjL2Jhc2UvZnR0eXBlMS5jCkBAIC00MSw3ICs0MSw3IEBACiAgICAgICBlbHNlIGlmICggZnRfc3RyY21wKCBkcml2ZXJfbmFtZSwgInQxY2lkIiApID09IDAgKQogICAgICAgICBmb250X2luZm8gPSAmKChDSURfRmFjZSlmYWNlKS0+Y2lkLmZvbnRfaW5mbzsKICAgICAgIGVsc2UgaWYgKCBmdF9zdHJjbXAoIGRyaXZlcl9uYW1lLCAidHlwZTQyIiApID09IDAgKQotICAgICAgICBmb250X2luZm8gPSAmKChUNDJfRmFjZSlmYWNlKS0+dHlwZTQyLmZvbnRfaW5mbzsKKyAgICAgICAgZm9udF9pbmZvID0gJigoVDQyX0ZhY2UpZmFjZSktPnR5cGUxLmZvbnRfaW5mbzsKICAgICB9CiAgICAgaWYgKCBmb250X2luZm8gIT0gTlVMTCApCiAgICAgewpAQCAtNjYsOCArNjYsOCBAQAogCiAgICAgaWYgKCBmYWNlICYmIGZhY2UtPmRyaXZlciAmJiBmYWNlLT5kcml2ZXItPnJvb3QuY2xhenogKQogICAgIHsKLSAgICAgIC8qIEN1cnJlbnRseSwgb25seSB0aGUgdHlwZTEgYW5kIGNmZiBkcml2ZXJzIHByb3ZpZGUgcmVsaWFibGUgKi8KLSAgICAgIC8qIGdseXBoIG5hbWVzLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgIC8qIEN1cnJlbnRseSwgb25seSB0aGUgdHlwZTEsIHR5cGU0MiBhbmQgY2ZmIGRyaXZlcnMgcHJvdmlkZSByZWxpYWJsZSAqLworICAgICAgLyogZ2x5cGggbmFtZXMuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAKICAgICAgIC8qIFdlIGNvdWxkIHByb2JhYmx5IGhhY2sgdGhlIFRydWVUeXBlIGRyaXZlciB0byByZWNvZ25pemUgICAgKi8KICAgICAgIC8qIGNlcnRhaW4gY2FzZXMgd2hlcmUgdGhlIGdseXBoIG5hbWVzIGFyZSBtb3N0IGNlcnRhaW5seSAgICAgKi8KQEAgLTc1LDggKzc1LDkgQEAKICAgICAgIC8qIHRoaXMgd2lsbCBwcm9iYWJseSBoYXBwZW4gbGF0ZXIuLi4gICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAogICAgICAgZHJpdmVyX25hbWUgPSBmYWNlLT5kcml2ZXItPnJvb3QuY2xhenotPm1vZHVsZV9uYW1lOwotICAgICAgcmVzdWx0ICAgICAgPSAoIGZ0X3N0cmNtcCggZHJpdmVyX25hbWUsICJ0eXBlMSIgKSA9PSAwIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgZnRfc3RyY21wKCBkcml2ZXJfbmFtZSwgImNmZiIgICApID09IDAgKTsKKyAgICAgIHJlc3VsdCAgICAgID0gKCBmdF9zdHJjbXAoIGRyaXZlcl9uYW1lLCAidHlwZTEiICApID09IDAgfHwKKyAgICAgICAgICAgICAgICAgICAgICBmdF9zdHJjbXAoIGRyaXZlcl9uYW1lLCAidHlwZTQyIiApID09IDAgfHwKKyAgICAgICAgICAgICAgICAgICAgICBmdF9zdHJjbXAoIGRyaXZlcl9uYW1lLCAiY2ZmIiAgICApID09IDAgKTsKICAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvc3JjL3R5cGU0Mi90NDJvYmpzLmggYi9zcmMvdHlwZTQyL3Q0Mm9ianMuaAppbmRleCA3MTdiMTA3Li5hZTAwYTMzIDEwMDY0NAotLS0gYS9zcmMvdHlwZTQyL3Q0Mm9ianMuaAorKysgYi9zcmMvdHlwZTQyL3Q0Mm9ianMuaApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgRlRfRlJFRVRZUEVfSAogI2luY2x1ZGUgRlRfVFlQRTFfVEFCTEVTX0gKICNpbmNsdWRlIEZUX0lOVEVSTkFMX1RZUEUxX1RZUEVTX0gKKyNpbmNsdWRlIEZUX0lOVEVSTkFMX1RZUEU0Ml9UWVBFU19ICiAjaW5jbHVkZSBGVF9JTlRFUk5BTF9PQkpFQ1RTX0gKICNpbmNsdWRlIEZUX0lOVEVSTkFMX0RSSVZFUl9ICiAjaW5jbHVkZSBGVF9JTlRFUk5BTF9QT1NUU0NSSVBUX05BTUVTX0gKQEAgLTMwLDI2ICszMSw2IEBACiAKIEZUX0JFR0lOX0hFQURFUgogCi0gIC8qIFR5cGU0MiBmYWNlICovCi0gIHR5cGVkZWYgc3RydWN0ICBUNDJfRmFjZVJlY18KLSAgewotICAgIEZUX0ZhY2VSZWMgICAgIHJvb3Q7Ci0gICAgVDFfRm9udFJlYyAgICAgdHlwZTE7Ci0gICAgY29uc3Qgdm9pZCogICAgcHNuYW1lczsKLSAgICBjb25zdCB2b2lkKiAgICBwc2F1eDsKLSAgICBjb25zdCB2b2lkKiAgICBhZm1fZGF0YTsKLQotICAgIEZUX0NoYXJNYXBSZWMgIGNoYXJtYXByZWNzWzJdOwotICAgIEZUX0NoYXJNYXAgICAgIGNoYXJtYXBzWzJdOwotICAgIFBTX1VuaWNvZGVzICAgIHVuaWNvZGVfbWFwOwotCi0gICAgRlRfQnl0ZSogICAgICAgdHRmX2RhdGE7Ci0gICAgRlRfVUxvbmcgICAgICAgdHRmX3NpemU7Ci0gICAgRlRfRmFjZSAgICAgICAgdHRmX2ZhY2U7Ci0KLSAgfSBUNDJfRmFjZVJlYywgKlQ0Ml9GYWNlOwotCi0KICAgLyogVHlwZTQyIHNpemUgKi8KICAgdHlwZWRlZiBzdHJ1Y3QgIFQ0Ml9TaXplUmVjXwogICB7Cg==